From b2cde6170fc483175109f910b60b8163bc30debe Mon Sep 17 00:00:00 2001 From: Andrea Bianco Date: Mon, 6 Jun 2016 12:42:24 +0200 Subject: [PATCH] Built motion from commit 03529b7.|0.0.108 --- package.json | 2 +- public/app/4fe18a52.app.js | 72 - public/app/80df8e19.vendor.js | 112 + public/app/9003b42a.vendor.js | 128 - public/app/b01e0669.app.js | 88 + public/assets/plugins/angular-pdf/.bower.json | 26 - public/assets/plugins/angular-pdf/CONTRIBUTING.md | 25 - public/assets/plugins/angular-pdf/Gruntfile.js | 144 - public/assets/plugins/angular-pdf/LICENSE | 21 - public/assets/plugins/angular-pdf/bower.json | 16 - .../assets/plugins/angular-pdf/dist/angular-pdf.js | 142 - .../plugins/angular-pdf/dist/angular-pdf.min.js | 2 - .../assets/plugins/angular-pdf/example/index.html | 29 - .../angular-pdf/example/js/controllers/docCtrl.js | 25 - .../example/js/directives/angular-pdf.js | 137 - .../angular-pdf/example/js/lib/angular.min.js | 251 - .../angular-pdf/example/js/lib/angular.min.js.map | 8 - .../plugins/angular-pdf/example/js/lib/pdf.js | 8021 ---- .../angular-pdf/example/js/lib/pdf.worker.js |39372 -------------------- .../angular-pdf/example/partials/viewer.html | 13 - .../pdf/4e99fa5a-1d29-4bf8-a083-48ab91f9a623.pdf | Bin 12350 -> 0 bytes .../plugins/angular-pdf/example/pdf/relativity.pdf | Bin 409413 -> 0 bytes .../assets/plugins/angular-pdf/example/style.css | 8 - public/assets/plugins/angular-pdf/ng-pdf.gif | Bin 1458242 -> 0 bytes public/assets/plugins/angular-pdf/readme.md | 219 - public/assets/plugins/ckeditor/.bower.json | 29 + public/assets/plugins/ckeditor/CHANGES.md | 1080 + public/assets/plugins/ckeditor/LICENSE.md | 1420 + public/assets/plugins/ckeditor/README.md | 82 + public/assets/plugins/ckeditor/adapters/jquery.js | 10 + public/assets/plugins/ckeditor/bower.json | 10 + public/assets/plugins/ckeditor/ckeditor.js | 998 + public/assets/plugins/ckeditor/composer.json | 20 + public/assets/plugins/ckeditor/config.js | 38 + public/assets/plugins/ckeditor/contents.css | 135 + .../plugins/ckeditor/lang/_translationstatus.txt | 63 + public/assets/plugins/ckeditor/lang/af.js | 5 + public/assets/plugins/ckeditor/lang/ar.js | 5 + public/assets/plugins/ckeditor/lang/bg.js | 5 + public/assets/plugins/ckeditor/lang/bn.js | 5 + public/assets/plugins/ckeditor/lang/bs.js | 5 + public/assets/plugins/ckeditor/lang/ca.js | 5 + public/assets/plugins/ckeditor/lang/cs.js | 5 + public/assets/plugins/ckeditor/lang/cy.js | 5 + public/assets/plugins/ckeditor/lang/da.js | 5 + public/assets/plugins/ckeditor/lang/de-ch.js | 5 + public/assets/plugins/ckeditor/lang/de.js | 5 + public/assets/plugins/ckeditor/lang/el.js | 5 + public/assets/plugins/ckeditor/lang/en-au.js | 5 + public/assets/plugins/ckeditor/lang/en-ca.js | 5 + public/assets/plugins/ckeditor/lang/en-gb.js | 5 + public/assets/plugins/ckeditor/lang/en.js | 5 + public/assets/plugins/ckeditor/lang/eo.js | 5 + public/assets/plugins/ckeditor/lang/es.js | 5 + public/assets/plugins/ckeditor/lang/et.js | 5 + public/assets/plugins/ckeditor/lang/eu.js | 5 + public/assets/plugins/ckeditor/lang/fa.js | 5 + public/assets/plugins/ckeditor/lang/fi.js | 5 + public/assets/plugins/ckeditor/lang/fo.js | 5 + public/assets/plugins/ckeditor/lang/fr-ca.js | 5 + public/assets/plugins/ckeditor/lang/fr.js | 5 + public/assets/plugins/ckeditor/lang/gl.js | 5 + public/assets/plugins/ckeditor/lang/gu.js | 5 + public/assets/plugins/ckeditor/lang/he.js | 5 + public/assets/plugins/ckeditor/lang/hi.js | 5 + public/assets/plugins/ckeditor/lang/hr.js | 5 + public/assets/plugins/ckeditor/lang/hu.js | 5 + public/assets/plugins/ckeditor/lang/id.js | 5 + public/assets/plugins/ckeditor/lang/is.js | 5 + public/assets/plugins/ckeditor/lang/it.js | 5 + public/assets/plugins/ckeditor/lang/ja.js | 5 + public/assets/plugins/ckeditor/lang/ka.js | 5 + public/assets/plugins/ckeditor/lang/km.js | 5 + public/assets/plugins/ckeditor/lang/ko.js | 5 + public/assets/plugins/ckeditor/lang/ku.js | 5 + public/assets/plugins/ckeditor/lang/lt.js | 5 + public/assets/plugins/ckeditor/lang/lv.js | 5 + public/assets/plugins/ckeditor/lang/mk.js | 5 + public/assets/plugins/ckeditor/lang/mn.js | 5 + public/assets/plugins/ckeditor/lang/ms.js | 5 + public/assets/plugins/ckeditor/lang/nb.js | 5 + public/assets/plugins/ckeditor/lang/nl.js | 5 + public/assets/plugins/ckeditor/lang/no.js | 5 + public/assets/plugins/ckeditor/lang/pl.js | 5 + public/assets/plugins/ckeditor/lang/pt-br.js | 5 + public/assets/plugins/ckeditor/lang/pt.js | 5 + public/assets/plugins/ckeditor/lang/ro.js | 5 + public/assets/plugins/ckeditor/lang/ru.js | 5 + public/assets/plugins/ckeditor/lang/si.js | 5 + public/assets/plugins/ckeditor/lang/sk.js | 5 + public/assets/plugins/ckeditor/lang/sl.js | 5 + public/assets/plugins/ckeditor/lang/sq.js | 5 + public/assets/plugins/ckeditor/lang/sr-latn.js | 5 + public/assets/plugins/ckeditor/lang/sr.js | 5 + public/assets/plugins/ckeditor/lang/sv.js | 5 + public/assets/plugins/ckeditor/lang/th.js | 5 + public/assets/plugins/ckeditor/lang/tr.js | 5 + public/assets/plugins/ckeditor/lang/tt.js | 5 + public/assets/plugins/ckeditor/lang/ug.js | 5 + public/assets/plugins/ckeditor/lang/uk.js | 5 + public/assets/plugins/ckeditor/lang/vi.js | 5 + public/assets/plugins/ckeditor/lang/zh-cn.js | 5 + public/assets/plugins/ckeditor/lang/zh.js | 5 + public/assets/plugins/ckeditor/package.json | 26 + .../ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js | 10 + .../a11yhelp/dialogs/lang/_translationstatus.txt | 25 + .../ckeditor/plugins/a11yhelp/dialogs/lang/af.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ar.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/bg.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ca.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/cs.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/cy.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/da.js | 11 + .../plugins/a11yhelp/dialogs/lang/de-ch.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/de.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/el.js | 12 + .../plugins/a11yhelp/dialogs/lang/en-gb.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/en.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/eo.js | 13 + .../ckeditor/plugins/a11yhelp/dialogs/lang/es.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/et.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/eu.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/fa.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/fi.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/fo.js | 11 + .../plugins/a11yhelp/dialogs/lang/fr-ca.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/fr.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/gl.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/gu.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/he.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/hi.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/hr.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/hu.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/id.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/it.js | 13 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ja.js | 9 + .../ckeditor/plugins/a11yhelp/dialogs/lang/km.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ko.js | 10 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ku.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/lt.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/lv.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/mk.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/mn.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/nb.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/nl.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/no.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/pl.js | 13 + .../plugins/a11yhelp/dialogs/lang/pt-br.js | 13 + .../ckeditor/plugins/a11yhelp/dialogs/lang/pt.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ro.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ru.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/si.js | 10 + .../ckeditor/plugins/a11yhelp/dialogs/lang/sk.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/sl.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/sq.js | 11 + .../plugins/a11yhelp/dialogs/lang/sr-latn.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/sr.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/sv.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/th.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/tr.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/tt.js | 11 + .../ckeditor/plugins/a11yhelp/dialogs/lang/ug.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/uk.js | 12 + .../ckeditor/plugins/a11yhelp/dialogs/lang/vi.js | 11 + .../plugins/a11yhelp/dialogs/lang/zh-cn.js | 9 + .../ckeditor/plugins/a11yhelp/dialogs/lang/zh.js | 9 + .../ckeditor/plugins/about/dialogs/about.js | 7 + .../plugins/about/dialogs/hidpi/logo_ckeditor.png | Bin 0 -> 13339 bytes .../plugins/about/dialogs/logo_ckeditor.png | Bin 0 -> 6757 bytes .../plugins/ckeditor/plugins/adobeair/plugin.js | 9 + .../assets/plugins/ckeditor/plugins/ajax/plugin.js | 7 + .../plugins/ckeditor/plugins/autoembed/lang/cs.js | 1 + .../ckeditor/plugins/autoembed/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/de.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/en.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/eo.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/eu.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/fr.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/it.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/ko.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/ku.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/mk.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/nb.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/pl.js | 1 + .../ckeditor/plugins/autoembed/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/ru.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/tr.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/ug.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/uk.js | 1 + .../ckeditor/plugins/autoembed/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/autoembed/lang/zh.js | 1 + .../plugins/ckeditor/plugins/autoembed/plugin.js | 9 + .../plugins/ckeditor/plugins/autogrow/plugin.js | 8 + .../plugins/ckeditor/plugins/autolink/plugin.js | 5 + .../plugins/ckeditor/plugins/bbcode/plugin.js | 22 + .../ckeditor/plugins/bidi/icons/bidiltr.png | Bin 0 -> 769 bytes .../ckeditor/plugins/bidi/icons/bidirtl.png | Bin 0 -> 768 bytes .../ckeditor/plugins/bidi/icons/hidpi/bidiltr.png | Bin 0 -> 1579 bytes .../ckeditor/plugins/bidi/icons/hidpi/bidirtl.png | Bin 0 -> 1596 bytes .../plugins/ckeditor/plugins/bidi/lang/af.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/ar.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/bg.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/bn.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/bs.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/ca.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/cs.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/cy.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/da.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/de.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/el.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/en-au.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/en-ca.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/en.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/eo.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/es.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/et.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/eu.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/fa.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/fi.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/fo.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/fr.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/gl.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/gu.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/he.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/hi.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/hr.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/hu.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/id.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/is.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/it.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/ja.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/ka.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/km.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/ko.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/ku.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/lt.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/lv.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/mk.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/mn.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/ms.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/nb.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/nl.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/no.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/pl.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/pt.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/ro.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/ru.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/si.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/sk.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/sl.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/sq.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/sr.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/sv.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/th.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/tr.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/tt.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/ug.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/uk.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/vi.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/bidi/lang/zh.js | 1 + .../assets/plugins/ckeditor/plugins/bidi/plugin.js | 13 + .../ckeditor/plugins/clipboard/dialogs/paste.js | 12 + .../plugins/codesnippet/dialogs/codesnippet.js | 6 + .../plugins/codesnippet/icons/codesnippet.png | Bin 0 -> 597 bytes .../codesnippet/icons/hidpi/codesnippet.png | Bin 0 -> 1887 bytes .../ckeditor/plugins/codesnippet/lang/ar.js | 5 + .../ckeditor/plugins/codesnippet/lang/bg.js | 5 + .../ckeditor/plugins/codesnippet/lang/ca.js | 5 + .../ckeditor/plugins/codesnippet/lang/cs.js | 5 + .../ckeditor/plugins/codesnippet/lang/da.js | 5 + .../ckeditor/plugins/codesnippet/lang/de-ch.js | 5 + .../ckeditor/plugins/codesnippet/lang/de.js | 5 + .../ckeditor/plugins/codesnippet/lang/el.js | 5 + .../ckeditor/plugins/codesnippet/lang/en-gb.js | 5 + .../ckeditor/plugins/codesnippet/lang/en.js | 5 + .../ckeditor/plugins/codesnippet/lang/eo.js | 5 + .../ckeditor/plugins/codesnippet/lang/es.js | 5 + .../ckeditor/plugins/codesnippet/lang/et.js | 5 + .../ckeditor/plugins/codesnippet/lang/eu.js | 5 + .../ckeditor/plugins/codesnippet/lang/fa.js | 5 + .../ckeditor/plugins/codesnippet/lang/fi.js | 5 + .../ckeditor/plugins/codesnippet/lang/fr-ca.js | 5 + .../ckeditor/plugins/codesnippet/lang/fr.js | 5 + .../ckeditor/plugins/codesnippet/lang/gl.js | 5 + .../ckeditor/plugins/codesnippet/lang/he.js | 5 + .../ckeditor/plugins/codesnippet/lang/hr.js | 5 + .../ckeditor/plugins/codesnippet/lang/hu.js | 5 + .../ckeditor/plugins/codesnippet/lang/id.js | 5 + .../ckeditor/plugins/codesnippet/lang/it.js | 5 + .../ckeditor/plugins/codesnippet/lang/ja.js | 5 + .../ckeditor/plugins/codesnippet/lang/km.js | 5 + .../ckeditor/plugins/codesnippet/lang/ko.js | 5 + .../ckeditor/plugins/codesnippet/lang/ku.js | 5 + .../ckeditor/plugins/codesnippet/lang/lt.js | 5 + .../ckeditor/plugins/codesnippet/lang/lv.js | 5 + .../ckeditor/plugins/codesnippet/lang/nb.js | 5 + .../ckeditor/plugins/codesnippet/lang/nl.js | 5 + .../ckeditor/plugins/codesnippet/lang/no.js | 5 + .../ckeditor/plugins/codesnippet/lang/pl.js | 5 + .../ckeditor/plugins/codesnippet/lang/pt-br.js | 5 + .../ckeditor/plugins/codesnippet/lang/pt.js | 5 + .../ckeditor/plugins/codesnippet/lang/ro.js | 5 + .../ckeditor/plugins/codesnippet/lang/ru.js | 5 + .../ckeditor/plugins/codesnippet/lang/sk.js | 5 + .../ckeditor/plugins/codesnippet/lang/sl.js | 5 + .../ckeditor/plugins/codesnippet/lang/sq.js | 5 + .../ckeditor/plugins/codesnippet/lang/sv.js | 5 + .../ckeditor/plugins/codesnippet/lang/th.js | 5 + .../ckeditor/plugins/codesnippet/lang/tr.js | 5 + .../ckeditor/plugins/codesnippet/lang/tt.js | 5 + .../ckeditor/plugins/codesnippet/lang/ug.js | 5 + .../ckeditor/plugins/codesnippet/lang/uk.js | 5 + .../ckeditor/plugins/codesnippet/lang/vi.js | 5 + .../ckeditor/plugins/codesnippet/lang/zh-cn.js | 5 + .../ckeditor/plugins/codesnippet/lang/zh.js | 5 + .../plugins/ckeditor/plugins/codesnippet/plugin.js | 12 + .../ckeditor/plugins/codesnippetgeshi/plugin.js | 10 + .../ckeditor/plugins/colorbutton/icons/bgcolor.png | Bin 0 -> 906 bytes .../plugins/colorbutton/icons/hidpi/bgcolor.png | Bin 0 -> 2169 bytes .../plugins/colorbutton/icons/hidpi/textcolor.png | Bin 0 -> 1725 bytes .../plugins/colorbutton/icons/textcolor.png | Bin 0 -> 813 bytes .../ckeditor/plugins/colorbutton/lang/af.js | 2 + .../ckeditor/plugins/colorbutton/lang/ar.js | 2 + .../ckeditor/plugins/colorbutton/lang/bg.js | 2 + .../ckeditor/plugins/colorbutton/lang/bn.js | 2 + .../ckeditor/plugins/colorbutton/lang/bs.js | 2 + .../ckeditor/plugins/colorbutton/lang/ca.js | 2 + .../ckeditor/plugins/colorbutton/lang/cs.js | 2 + .../ckeditor/plugins/colorbutton/lang/cy.js | 2 + .../ckeditor/plugins/colorbutton/lang/da.js | 2 + .../ckeditor/plugins/colorbutton/lang/de-ch.js | 2 + .../ckeditor/plugins/colorbutton/lang/de.js | 2 + .../ckeditor/plugins/colorbutton/lang/el.js | 2 + .../ckeditor/plugins/colorbutton/lang/en-au.js | 2 + .../ckeditor/plugins/colorbutton/lang/en-ca.js | 2 + .../ckeditor/plugins/colorbutton/lang/en-gb.js | 2 + .../ckeditor/plugins/colorbutton/lang/en.js | 2 + .../ckeditor/plugins/colorbutton/lang/eo.js | 2 + .../ckeditor/plugins/colorbutton/lang/es.js | 2 + .../ckeditor/plugins/colorbutton/lang/et.js | 2 + .../ckeditor/plugins/colorbutton/lang/eu.js | 2 + .../ckeditor/plugins/colorbutton/lang/fa.js | 2 + .../ckeditor/plugins/colorbutton/lang/fi.js | 3 + .../ckeditor/plugins/colorbutton/lang/fo.js | 2 + .../ckeditor/plugins/colorbutton/lang/fr-ca.js | 2 + .../ckeditor/plugins/colorbutton/lang/fr.js | 2 + .../ckeditor/plugins/colorbutton/lang/gl.js | 2 + .../ckeditor/plugins/colorbutton/lang/gu.js | 2 + .../ckeditor/plugins/colorbutton/lang/he.js | 2 + .../ckeditor/plugins/colorbutton/lang/hi.js | 2 + .../ckeditor/plugins/colorbutton/lang/hr.js | 2 + .../ckeditor/plugins/colorbutton/lang/hu.js | 2 + .../ckeditor/plugins/colorbutton/lang/id.js | 2 + .../ckeditor/plugins/colorbutton/lang/is.js | 2 + .../ckeditor/plugins/colorbutton/lang/it.js | 2 + .../ckeditor/plugins/colorbutton/lang/ja.js | 2 + .../ckeditor/plugins/colorbutton/lang/ka.js | 2 + .../ckeditor/plugins/colorbutton/lang/km.js | 2 + .../ckeditor/plugins/colorbutton/lang/ko.js | 2 + .../ckeditor/plugins/colorbutton/lang/ku.js | 2 + .../ckeditor/plugins/colorbutton/lang/lt.js | 2 + .../ckeditor/plugins/colorbutton/lang/lv.js | 2 + .../ckeditor/plugins/colorbutton/lang/mk.js | 2 + .../ckeditor/plugins/colorbutton/lang/mn.js | 2 + .../ckeditor/plugins/colorbutton/lang/ms.js | 2 + .../ckeditor/plugins/colorbutton/lang/nb.js | 2 + .../ckeditor/plugins/colorbutton/lang/nl.js | 2 + .../ckeditor/plugins/colorbutton/lang/no.js | 2 + .../ckeditor/plugins/colorbutton/lang/pl.js | 2 + .../ckeditor/plugins/colorbutton/lang/pt-br.js | 2 + .../ckeditor/plugins/colorbutton/lang/pt.js | 2 + .../ckeditor/plugins/colorbutton/lang/ro.js | 2 + .../ckeditor/plugins/colorbutton/lang/ru.js | 2 + .../ckeditor/plugins/colorbutton/lang/si.js | 2 + .../ckeditor/plugins/colorbutton/lang/sk.js | 2 + .../ckeditor/plugins/colorbutton/lang/sl.js | 2 + .../ckeditor/plugins/colorbutton/lang/sq.js | 3 + .../ckeditor/plugins/colorbutton/lang/sr-latn.js | 2 + .../ckeditor/plugins/colorbutton/lang/sr.js | 2 + .../ckeditor/plugins/colorbutton/lang/sv.js | 2 + .../ckeditor/plugins/colorbutton/lang/th.js | 2 + .../ckeditor/plugins/colorbutton/lang/tr.js | 2 + .../ckeditor/plugins/colorbutton/lang/tt.js | 2 + .../ckeditor/plugins/colorbutton/lang/ug.js | 2 + .../ckeditor/plugins/colorbutton/lang/uk.js | 2 + .../ckeditor/plugins/colorbutton/lang/vi.js | 2 + .../ckeditor/plugins/colorbutton/lang/zh-cn.js | 2 + .../ckeditor/plugins/colorbutton/lang/zh.js | 2 + .../plugins/ckeditor/plugins/colorbutton/plugin.js | 14 + .../plugins/colordialog/dialogs/colordialog.css | 20 + .../plugins/colordialog/dialogs/colordialog.js | 14 + .../ckeditor/plugins/colordialog/lang/af.js | 1 + .../ckeditor/plugins/colordialog/lang/ar.js | 1 + .../ckeditor/plugins/colordialog/lang/bg.js | 1 + .../ckeditor/plugins/colordialog/lang/bn.js | 1 + .../ckeditor/plugins/colordialog/lang/bs.js | 1 + .../ckeditor/plugins/colordialog/lang/ca.js | 1 + .../ckeditor/plugins/colordialog/lang/cs.js | 1 + .../ckeditor/plugins/colordialog/lang/cy.js | 1 + .../ckeditor/plugins/colordialog/lang/da.js | 1 + .../ckeditor/plugins/colordialog/lang/de-ch.js | 1 + .../ckeditor/plugins/colordialog/lang/de.js | 1 + .../ckeditor/plugins/colordialog/lang/el.js | 1 + .../ckeditor/plugins/colordialog/lang/en-au.js | 1 + .../ckeditor/plugins/colordialog/lang/en-ca.js | 1 + .../ckeditor/plugins/colordialog/lang/en-gb.js | 1 + .../ckeditor/plugins/colordialog/lang/en.js | 1 + .../ckeditor/plugins/colordialog/lang/eo.js | 1 + .../ckeditor/plugins/colordialog/lang/es.js | 1 + .../ckeditor/plugins/colordialog/lang/et.js | 1 + .../ckeditor/plugins/colordialog/lang/eu.js | 1 + .../ckeditor/plugins/colordialog/lang/fa.js | 1 + .../ckeditor/plugins/colordialog/lang/fi.js | 1 + .../ckeditor/plugins/colordialog/lang/fo.js | 1 + .../ckeditor/plugins/colordialog/lang/fr-ca.js | 1 + .../ckeditor/plugins/colordialog/lang/fr.js | 1 + .../ckeditor/plugins/colordialog/lang/gl.js | 1 + .../ckeditor/plugins/colordialog/lang/gu.js | 1 + .../ckeditor/plugins/colordialog/lang/he.js | 1 + .../ckeditor/plugins/colordialog/lang/hi.js | 1 + .../ckeditor/plugins/colordialog/lang/hr.js | 1 + .../ckeditor/plugins/colordialog/lang/hu.js | 1 + .../ckeditor/plugins/colordialog/lang/id.js | 1 + .../ckeditor/plugins/colordialog/lang/is.js | 1 + .../ckeditor/plugins/colordialog/lang/it.js | 1 + .../ckeditor/plugins/colordialog/lang/ja.js | 1 + .../ckeditor/plugins/colordialog/lang/ka.js | 1 + .../ckeditor/plugins/colordialog/lang/km.js | 1 + .../ckeditor/plugins/colordialog/lang/ko.js | 1 + .../ckeditor/plugins/colordialog/lang/ku.js | 1 + .../ckeditor/plugins/colordialog/lang/lt.js | 1 + .../ckeditor/plugins/colordialog/lang/lv.js | 1 + .../ckeditor/plugins/colordialog/lang/mk.js | 1 + .../ckeditor/plugins/colordialog/lang/mn.js | 1 + .../ckeditor/plugins/colordialog/lang/ms.js | 1 + .../ckeditor/plugins/colordialog/lang/nb.js | 1 + .../ckeditor/plugins/colordialog/lang/nl.js | 1 + .../ckeditor/plugins/colordialog/lang/no.js | 1 + .../ckeditor/plugins/colordialog/lang/pl.js | 1 + .../ckeditor/plugins/colordialog/lang/pt-br.js | 1 + .../ckeditor/plugins/colordialog/lang/pt.js | 1 + .../ckeditor/plugins/colordialog/lang/ro.js | 1 + .../ckeditor/plugins/colordialog/lang/ru.js | 1 + .../ckeditor/plugins/colordialog/lang/si.js | 1 + .../ckeditor/plugins/colordialog/lang/sk.js | 1 + .../ckeditor/plugins/colordialog/lang/sl.js | 1 + .../ckeditor/plugins/colordialog/lang/sq.js | 1 + .../ckeditor/plugins/colordialog/lang/sr-latn.js | 1 + .../ckeditor/plugins/colordialog/lang/sr.js | 1 + .../ckeditor/plugins/colordialog/lang/sv.js | 1 + .../ckeditor/plugins/colordialog/lang/th.js | 1 + .../ckeditor/plugins/colordialog/lang/tr.js | 1 + .../ckeditor/plugins/colordialog/lang/tt.js | 1 + .../ckeditor/plugins/colordialog/lang/ug.js | 1 + .../ckeditor/plugins/colordialog/lang/uk.js | 1 + .../ckeditor/plugins/colordialog/lang/vi.js | 1 + .../ckeditor/plugins/colordialog/lang/zh-cn.js | 1 + .../ckeditor/plugins/colordialog/lang/zh.js | 1 + .../plugins/ckeditor/plugins/colordialog/plugin.js | 7 + .../plugins/devtools/lang/_translationstatus.txt | 27 + .../plugins/ckeditor/plugins/devtools/lang/ar.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/bg.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/ca.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/cs.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/cy.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/da.js | 5 + .../ckeditor/plugins/devtools/lang/de-ch.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/de.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/el.js | 5 + .../ckeditor/plugins/devtools/lang/en-gb.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/en.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/eo.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/es.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/et.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/eu.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/fa.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/fi.js | 5 + .../ckeditor/plugins/devtools/lang/fr-ca.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/fr.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/gl.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/gu.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/he.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/hr.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/hu.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/id.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/it.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/ja.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/km.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/ko.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/ku.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/lt.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/lv.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/nb.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/nl.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/no.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/pl.js | 5 + .../ckeditor/plugins/devtools/lang/pt-br.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/pt.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/ro.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/ru.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/si.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/sk.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/sl.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/sq.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/sv.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/tr.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/tt.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/ug.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/uk.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/vi.js | 5 + .../ckeditor/plugins/devtools/lang/zh-cn.js | 5 + .../plugins/ckeditor/plugins/devtools/lang/zh.js | 5 + .../plugins/ckeditor/plugins/devtools/plugin.js | 9 + .../ckeditor/plugins/dialog/dialogDefinition.js | 4 + .../ckeditor/plugins/dialogadvtab/plugin.js | 9 + .../plugins/ckeditor/plugins/div/dialogs/div.js | 9 + .../ckeditor/plugins/div/icons/creatediv.png | Bin 0 -> 862 bytes .../ckeditor/plugins/div/icons/hidpi/creatediv.png | Bin 0 -> 3053 bytes .../assets/plugins/ckeditor/plugins/div/lang/af.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/ar.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/bg.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/bn.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/bs.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/ca.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/cs.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/cy.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/da.js | 1 + .../plugins/ckeditor/plugins/div/lang/de-ch.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/de.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/el.js | 1 + .../plugins/ckeditor/plugins/div/lang/en-au.js | 1 + .../plugins/ckeditor/plugins/div/lang/en-ca.js | 1 + .../plugins/ckeditor/plugins/div/lang/en-gb.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/en.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/eo.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/es.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/et.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/eu.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/fa.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/fi.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/fo.js | 1 + .../plugins/ckeditor/plugins/div/lang/fr-ca.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/fr.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/gl.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/gu.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/he.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/hi.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/hr.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/hu.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/id.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/is.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/it.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/ja.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/ka.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/km.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/ko.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/ku.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/lt.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/lv.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/mk.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/mn.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/ms.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/nb.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/nl.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/no.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/pl.js | 1 + .../plugins/ckeditor/plugins/div/lang/pt-br.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/pt.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/ro.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/ru.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/si.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/sk.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/sl.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/sq.js | 1 + .../plugins/ckeditor/plugins/div/lang/sr-latn.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/sr.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/sv.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/th.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/tr.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/tt.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/ug.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/uk.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/vi.js | 1 + .../plugins/ckeditor/plugins/div/lang/zh-cn.js | 1 + .../assets/plugins/ckeditor/plugins/div/lang/zh.js | 1 + .../assets/plugins/ckeditor/plugins/div/plugin.js | 8 + .../plugins/ckeditor/plugins/divarea/plugin.js | 5 + .../ckeditor/plugins/docprops/dialogs/docprops.js | 25 + .../plugins/docprops/icons/docprops-rtl.png | Bin 0 -> 840 bytes .../ckeditor/plugins/docprops/icons/docprops.png | Bin 0 -> 844 bytes .../plugins/docprops/icons/hidpi/docprops-rtl.png | Bin 0 -> 1909 bytes .../plugins/docprops/icons/hidpi/docprops.png | Bin 0 -> 1941 bytes .../plugins/ckeditor/plugins/docprops/lang/af.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/ar.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/bg.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/bn.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/bs.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/ca.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/cs.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/cy.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/da.js | 3 + .../ckeditor/plugins/docprops/lang/de-ch.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/de.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/el.js | 3 + .../ckeditor/plugins/docprops/lang/en-au.js | 3 + .../ckeditor/plugins/docprops/lang/en-ca.js | 3 + .../ckeditor/plugins/docprops/lang/en-gb.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/en.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/eo.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/es.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/et.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/eu.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/fa.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/fi.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/fo.js | 3 + .../ckeditor/plugins/docprops/lang/fr-ca.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/fr.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/gl.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/gu.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/he.js | 2 + .../plugins/ckeditor/plugins/docprops/lang/hi.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/hr.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/hu.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/id.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/is.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/it.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/ja.js | 2 + .../plugins/ckeditor/plugins/docprops/lang/ka.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/km.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/ko.js | 2 + .../plugins/ckeditor/plugins/docprops/lang/ku.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/lt.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/lv.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/mk.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/mn.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/ms.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/nb.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/nl.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/no.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/pl.js | 3 + .../ckeditor/plugins/docprops/lang/pt-br.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/pt.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/ro.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/ru.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/si.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/sk.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/sl.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/sq.js | 3 + .../ckeditor/plugins/docprops/lang/sr-latn.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/sr.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/sv.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/th.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/tr.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/tt.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/ug.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/uk.js | 3 + .../plugins/ckeditor/plugins/docprops/lang/vi.js | 3 + .../ckeditor/plugins/docprops/lang/zh-cn.js | 2 + .../plugins/ckeditor/plugins/docprops/lang/zh.js | 2 + .../plugins/ckeditor/plugins/docprops/plugin.js | 6 + .../plugins/ckeditor/plugins/embed/icons/embed.png | Bin 0 -> 389 bytes .../ckeditor/plugins/embed/icons/hidpi/embed.png | Bin 0 -> 728 bytes .../plugins/ckeditor/plugins/embed/plugin.js | 6 + .../plugins/embedbase/dialogs/embedbase.js | 6 + .../plugins/ckeditor/plugins/embedbase/lang/cs.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/da.js | 1 + .../ckeditor/plugins/embedbase/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/de.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/en.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/eo.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/eu.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/fr.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/gl.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/id.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/it.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/ko.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/ku.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/nb.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/nl.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/pl.js | 1 + .../ckeditor/plugins/embedbase/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/ru.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/sv.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/tr.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/ug.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/uk.js | 1 + .../ckeditor/plugins/embedbase/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/embedbase/lang/zh.js | 1 + .../plugins/ckeditor/plugins/embedbase/plugin.js | 11 + .../plugins/embedsemantic/icons/embedsemantic.png | Bin 0 -> 389 bytes .../embedsemantic/icons/hidpi/embedsemantic.png | Bin 0 -> 728 bytes .../ckeditor/plugins/embedsemantic/plugin.js | 7 + .../plugins/ckeditor/plugins/filetools/lang/cs.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/da.js | 5 + .../ckeditor/plugins/filetools/lang/de-ch.js | 6 + .../plugins/ckeditor/plugins/filetools/lang/de.js | 6 + .../plugins/ckeditor/plugins/filetools/lang/en.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/eo.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/eu.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/fr.js | 6 + .../plugins/ckeditor/plugins/filetools/lang/gl.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/id.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/it.js | 6 + .../plugins/ckeditor/plugins/filetools/lang/ko.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/ku.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/nb.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/nl.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/pl.js | 5 + .../ckeditor/plugins/filetools/lang/pt-br.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/ru.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/sv.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/tr.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/ug.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/uk.js | 5 + .../ckeditor/plugins/filetools/lang/zh-cn.js | 5 + .../plugins/ckeditor/plugins/filetools/lang/zh.js | 5 + .../plugins/ckeditor/plugins/filetools/plugin.js | 13 + .../plugins/ckeditor/plugins/find/dialogs/find.js | 25 + .../ckeditor/plugins/find/icons/find-rtl.png | Bin 0 -> 980 bytes .../plugins/ckeditor/plugins/find/icons/find.png | Bin 0 -> 980 bytes .../ckeditor/plugins/find/icons/hidpi/find-rtl.png | Bin 0 -> 2417 bytes .../ckeditor/plugins/find/icons/hidpi/find.png | Bin 0 -> 2417 bytes .../ckeditor/plugins/find/icons/hidpi/replace.png | Bin 0 -> 2761 bytes .../ckeditor/plugins/find/icons/replace.png | Bin 0 -> 948 bytes .../plugins/ckeditor/plugins/find/lang/af.js | 1 + .../plugins/ckeditor/plugins/find/lang/ar.js | 1 + .../plugins/ckeditor/plugins/find/lang/bg.js | 1 + .../plugins/ckeditor/plugins/find/lang/bn.js | 1 + .../plugins/ckeditor/plugins/find/lang/bs.js | 1 + .../plugins/ckeditor/plugins/find/lang/ca.js | 1 + .../plugins/ckeditor/plugins/find/lang/cs.js | 1 + .../plugins/ckeditor/plugins/find/lang/cy.js | 1 + .../plugins/ckeditor/plugins/find/lang/da.js | 1 + .../plugins/ckeditor/plugins/find/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/find/lang/de.js | 1 + .../plugins/ckeditor/plugins/find/lang/el.js | 1 + .../plugins/ckeditor/plugins/find/lang/en-au.js | 1 + .../plugins/ckeditor/plugins/find/lang/en-ca.js | 1 + .../plugins/ckeditor/plugins/find/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/find/lang/en.js | 1 + .../plugins/ckeditor/plugins/find/lang/eo.js | 1 + .../plugins/ckeditor/plugins/find/lang/es.js | 1 + .../plugins/ckeditor/plugins/find/lang/et.js | 1 + .../plugins/ckeditor/plugins/find/lang/eu.js | 1 + .../plugins/ckeditor/plugins/find/lang/fa.js | 1 + .../plugins/ckeditor/plugins/find/lang/fi.js | 1 + .../plugins/ckeditor/plugins/find/lang/fo.js | 1 + .../plugins/ckeditor/plugins/find/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/find/lang/fr.js | 1 + .../plugins/ckeditor/plugins/find/lang/gl.js | 1 + .../plugins/ckeditor/plugins/find/lang/gu.js | 1 + .../plugins/ckeditor/plugins/find/lang/he.js | 1 + .../plugins/ckeditor/plugins/find/lang/hi.js | 1 + .../plugins/ckeditor/plugins/find/lang/hr.js | 1 + .../plugins/ckeditor/plugins/find/lang/hu.js | 1 + .../plugins/ckeditor/plugins/find/lang/id.js | 1 + .../plugins/ckeditor/plugins/find/lang/is.js | 1 + .../plugins/ckeditor/plugins/find/lang/it.js | 1 + .../plugins/ckeditor/plugins/find/lang/ja.js | 1 + .../plugins/ckeditor/plugins/find/lang/ka.js | 1 + .../plugins/ckeditor/plugins/find/lang/km.js | 1 + .../plugins/ckeditor/plugins/find/lang/ko.js | 1 + .../plugins/ckeditor/plugins/find/lang/ku.js | 1 + .../plugins/ckeditor/plugins/find/lang/lt.js | 1 + .../plugins/ckeditor/plugins/find/lang/lv.js | 1 + .../plugins/ckeditor/plugins/find/lang/mk.js | 1 + .../plugins/ckeditor/plugins/find/lang/mn.js | 1 + .../plugins/ckeditor/plugins/find/lang/ms.js | 1 + .../plugins/ckeditor/plugins/find/lang/nb.js | 1 + .../plugins/ckeditor/plugins/find/lang/nl.js | 1 + .../plugins/ckeditor/plugins/find/lang/no.js | 1 + .../plugins/ckeditor/plugins/find/lang/pl.js | 1 + .../plugins/ckeditor/plugins/find/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/find/lang/pt.js | 1 + .../plugins/ckeditor/plugins/find/lang/ro.js | 1 + .../plugins/ckeditor/plugins/find/lang/ru.js | 1 + .../plugins/ckeditor/plugins/find/lang/si.js | 1 + .../plugins/ckeditor/plugins/find/lang/sk.js | 1 + .../plugins/ckeditor/plugins/find/lang/sl.js | 1 + .../plugins/ckeditor/plugins/find/lang/sq.js | 1 + .../plugins/ckeditor/plugins/find/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/find/lang/sr.js | 1 + .../plugins/ckeditor/plugins/find/lang/sv.js | 1 + .../plugins/ckeditor/plugins/find/lang/th.js | 1 + .../plugins/ckeditor/plugins/find/lang/tr.js | 1 + .../plugins/ckeditor/plugins/find/lang/tt.js | 1 + .../plugins/ckeditor/plugins/find/lang/ug.js | 1 + .../plugins/ckeditor/plugins/find/lang/uk.js | 1 + .../plugins/ckeditor/plugins/find/lang/vi.js | 1 + .../plugins/ckeditor/plugins/find/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/find/lang/zh.js | 1 + .../assets/plugins/ckeditor/plugins/find/plugin.js | 6 + .../ckeditor/plugins/flash/dialogs/flash.js | 24 + .../plugins/ckeditor/plugins/flash/icons/flash.png | Bin 0 -> 1038 bytes .../ckeditor/plugins/flash/icons/hidpi/flash.png | Bin 0 -> 2532 bytes .../ckeditor/plugins/flash/images/placeholder.png | Bin 0 -> 256 bytes .../plugins/ckeditor/plugins/flash/lang/af.js | 2 + .../plugins/ckeditor/plugins/flash/lang/ar.js | 2 + .../plugins/ckeditor/plugins/flash/lang/bg.js | 3 + .../plugins/ckeditor/plugins/flash/lang/bn.js | 2 + .../plugins/ckeditor/plugins/flash/lang/bs.js | 2 + .../plugins/ckeditor/plugins/flash/lang/ca.js | 3 + .../plugins/ckeditor/plugins/flash/lang/cs.js | 3 + .../plugins/ckeditor/plugins/flash/lang/cy.js | 2 + .../plugins/ckeditor/plugins/flash/lang/da.js | 3 + .../plugins/ckeditor/plugins/flash/lang/de-ch.js | 3 + .../plugins/ckeditor/plugins/flash/lang/de.js | 3 + .../plugins/ckeditor/plugins/flash/lang/el.js | 3 + .../plugins/ckeditor/plugins/flash/lang/en-au.js | 2 + .../plugins/ckeditor/plugins/flash/lang/en-ca.js | 2 + .../plugins/ckeditor/plugins/flash/lang/en-gb.js | 2 + .../plugins/ckeditor/plugins/flash/lang/en.js | 2 + .../plugins/ckeditor/plugins/flash/lang/eo.js | 3 + .../plugins/ckeditor/plugins/flash/lang/es.js | 2 + .../plugins/ckeditor/plugins/flash/lang/et.js | 3 + .../plugins/ckeditor/plugins/flash/lang/eu.js | 3 + .../plugins/ckeditor/plugins/flash/lang/fa.js | 2 + .../plugins/ckeditor/plugins/flash/lang/fi.js | 3 + .../plugins/ckeditor/plugins/flash/lang/fo.js | 3 + .../plugins/ckeditor/plugins/flash/lang/fr-ca.js | 3 + .../plugins/ckeditor/plugins/flash/lang/fr.js | 3 + .../plugins/ckeditor/plugins/flash/lang/gl.js | 3 + .../plugins/ckeditor/plugins/flash/lang/gu.js | 2 + .../plugins/ckeditor/plugins/flash/lang/he.js | 2 + .../plugins/ckeditor/plugins/flash/lang/hi.js | 2 + .../plugins/ckeditor/plugins/flash/lang/hr.js | 2 + .../plugins/ckeditor/plugins/flash/lang/hu.js | 3 + .../plugins/ckeditor/plugins/flash/lang/id.js | 2 + .../plugins/ckeditor/plugins/flash/lang/is.js | 2 + .../plugins/ckeditor/plugins/flash/lang/it.js | 3 + .../plugins/ckeditor/plugins/flash/lang/ja.js | 2 + .../plugins/ckeditor/plugins/flash/lang/ka.js | 3 + .../plugins/ckeditor/plugins/flash/lang/km.js | 2 + .../plugins/ckeditor/plugins/flash/lang/ko.js | 2 + .../plugins/ckeditor/plugins/flash/lang/ku.js | 3 + .../plugins/ckeditor/plugins/flash/lang/lt.js | 3 + .../plugins/ckeditor/plugins/flash/lang/lv.js | 3 + .../plugins/ckeditor/plugins/flash/lang/mk.js | 2 + .../plugins/ckeditor/plugins/flash/lang/mn.js | 2 + .../plugins/ckeditor/plugins/flash/lang/ms.js | 2 + .../plugins/ckeditor/plugins/flash/lang/nb.js | 2 + .../plugins/ckeditor/plugins/flash/lang/nl.js | 3 + .../plugins/ckeditor/plugins/flash/lang/no.js | 2 + .../plugins/ckeditor/plugins/flash/lang/pl.js | 3 + .../plugins/ckeditor/plugins/flash/lang/pt-br.js | 3 + .../plugins/ckeditor/plugins/flash/lang/pt.js | 3 + .../plugins/ckeditor/plugins/flash/lang/ro.js | 3 + .../plugins/ckeditor/plugins/flash/lang/ru.js | 3 + .../plugins/ckeditor/plugins/flash/lang/si.js | 2 + .../plugins/ckeditor/plugins/flash/lang/sk.js | 3 + .../plugins/ckeditor/plugins/flash/lang/sl.js | 3 + .../plugins/ckeditor/plugins/flash/lang/sq.js | 3 + .../plugins/ckeditor/plugins/flash/lang/sr-latn.js | 2 + .../plugins/ckeditor/plugins/flash/lang/sr.js | 2 + .../plugins/ckeditor/plugins/flash/lang/sv.js | 3 + .../plugins/ckeditor/plugins/flash/lang/th.js | 3 + .../plugins/ckeditor/plugins/flash/lang/tr.js | 2 + .../plugins/ckeditor/plugins/flash/lang/tt.js | 2 + .../plugins/ckeditor/plugins/flash/lang/ug.js | 3 + .../plugins/ckeditor/plugins/flash/lang/uk.js | 3 + .../plugins/ckeditor/plugins/flash/lang/vi.js | 3 + .../plugins/ckeditor/plugins/flash/lang/zh-cn.js | 2 + .../plugins/ckeditor/plugins/flash/lang/zh.js | 2 + .../plugins/ckeditor/plugins/flash/plugin.js | 9 + .../plugins/ckeditor/plugins/font/lang/af.js | 1 + .../plugins/ckeditor/plugins/font/lang/ar.js | 1 + .../plugins/ckeditor/plugins/font/lang/bg.js | 1 + .../plugins/ckeditor/plugins/font/lang/bn.js | 1 + .../plugins/ckeditor/plugins/font/lang/bs.js | 1 + .../plugins/ckeditor/plugins/font/lang/ca.js | 1 + .../plugins/ckeditor/plugins/font/lang/cs.js | 1 + .../plugins/ckeditor/plugins/font/lang/cy.js | 1 + .../plugins/ckeditor/plugins/font/lang/da.js | 1 + .../plugins/ckeditor/plugins/font/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/font/lang/de.js | 1 + .../plugins/ckeditor/plugins/font/lang/el.js | 1 + .../plugins/ckeditor/plugins/font/lang/en-au.js | 1 + .../plugins/ckeditor/plugins/font/lang/en-ca.js | 1 + .../plugins/ckeditor/plugins/font/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/font/lang/en.js | 1 + .../plugins/ckeditor/plugins/font/lang/eo.js | 1 + .../plugins/ckeditor/plugins/font/lang/es.js | 1 + .../plugins/ckeditor/plugins/font/lang/et.js | 1 + .../plugins/ckeditor/plugins/font/lang/eu.js | 1 + .../plugins/ckeditor/plugins/font/lang/fa.js | 1 + .../plugins/ckeditor/plugins/font/lang/fi.js | 1 + .../plugins/ckeditor/plugins/font/lang/fo.js | 1 + .../plugins/ckeditor/plugins/font/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/font/lang/fr.js | 1 + .../plugins/ckeditor/plugins/font/lang/gl.js | 1 + .../plugins/ckeditor/plugins/font/lang/gu.js | 1 + .../plugins/ckeditor/plugins/font/lang/he.js | 1 + .../plugins/ckeditor/plugins/font/lang/hi.js | 1 + .../plugins/ckeditor/plugins/font/lang/hr.js | 1 + .../plugins/ckeditor/plugins/font/lang/hu.js | 1 + .../plugins/ckeditor/plugins/font/lang/id.js | 1 + .../plugins/ckeditor/plugins/font/lang/is.js | 1 + .../plugins/ckeditor/plugins/font/lang/it.js | 1 + .../plugins/ckeditor/plugins/font/lang/ja.js | 1 + .../plugins/ckeditor/plugins/font/lang/ka.js | 1 + .../plugins/ckeditor/plugins/font/lang/km.js | 1 + .../plugins/ckeditor/plugins/font/lang/ko.js | 1 + .../plugins/ckeditor/plugins/font/lang/ku.js | 1 + .../plugins/ckeditor/plugins/font/lang/lt.js | 1 + .../plugins/ckeditor/plugins/font/lang/lv.js | 1 + .../plugins/ckeditor/plugins/font/lang/mk.js | 1 + .../plugins/ckeditor/plugins/font/lang/mn.js | 1 + .../plugins/ckeditor/plugins/font/lang/ms.js | 1 + .../plugins/ckeditor/plugins/font/lang/nb.js | 1 + .../plugins/ckeditor/plugins/font/lang/nl.js | 1 + .../plugins/ckeditor/plugins/font/lang/no.js | 1 + .../plugins/ckeditor/plugins/font/lang/pl.js | 1 + .../plugins/ckeditor/plugins/font/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/font/lang/pt.js | 1 + .../plugins/ckeditor/plugins/font/lang/ro.js | 1 + .../plugins/ckeditor/plugins/font/lang/ru.js | 1 + .../plugins/ckeditor/plugins/font/lang/si.js | 1 + .../plugins/ckeditor/plugins/font/lang/sk.js | 1 + .../plugins/ckeditor/plugins/font/lang/sl.js | 1 + .../plugins/ckeditor/plugins/font/lang/sq.js | 1 + .../plugins/ckeditor/plugins/font/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/font/lang/sr.js | 1 + .../plugins/ckeditor/plugins/font/lang/sv.js | 1 + .../plugins/ckeditor/plugins/font/lang/th.js | 1 + .../plugins/ckeditor/plugins/font/lang/tr.js | 1 + .../plugins/ckeditor/plugins/font/lang/tt.js | 1 + .../plugins/ckeditor/plugins/font/lang/ug.js | 1 + .../plugins/ckeditor/plugins/font/lang/uk.js | 1 + .../plugins/ckeditor/plugins/font/lang/vi.js | 1 + .../plugins/ckeditor/plugins/font/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/font/lang/zh.js | 1 + .../assets/plugins/ckeditor/plugins/font/plugin.js | 10 + .../ckeditor/plugins/forms/dialogs/button.js | 8 + .../ckeditor/plugins/forms/dialogs/checkbox.js | 9 + .../plugins/ckeditor/plugins/forms/dialogs/form.js | 8 + .../ckeditor/plugins/forms/dialogs/hiddenfield.js | 7 + .../ckeditor/plugins/forms/dialogs/radio.js | 9 + .../ckeditor/plugins/forms/dialogs/select.js | 20 + .../ckeditor/plugins/forms/dialogs/textarea.js | 8 + .../ckeditor/plugins/forms/dialogs/textfield.js | 11 + .../ckeditor/plugins/forms/icons/button.png | Bin 0 -> 528 bytes .../ckeditor/plugins/forms/icons/checkbox.png | Bin 0 -> 756 bytes .../plugins/ckeditor/plugins/forms/icons/form.png | Bin 0 -> 590 bytes .../ckeditor/plugins/forms/icons/hiddenfield.png | Bin 0 -> 239 bytes .../ckeditor/plugins/forms/icons/hidpi/button.png | Bin 0 -> 933 bytes .../plugins/forms/icons/hidpi/checkbox.png | Bin 0 -> 1780 bytes .../ckeditor/plugins/forms/icons/hidpi/form.png | Bin 0 -> 1348 bytes .../plugins/forms/icons/hidpi/hiddenfield.png | Bin 0 -> 2166 bytes .../plugins/forms/icons/hidpi/imagebutton.png | Bin 0 -> 1398 bytes .../ckeditor/plugins/forms/icons/hidpi/radio.png | Bin 0 -> 2435 bytes .../plugins/forms/icons/hidpi/select-rtl.png | Bin 0 -> 1451 bytes .../ckeditor/plugins/forms/icons/hidpi/select.png | Bin 0 -> 1452 bytes .../plugins/forms/icons/hidpi/textarea-rtl.png | Bin 0 -> 1732 bytes .../plugins/forms/icons/hidpi/textarea.png | Bin 0 -> 1680 bytes .../plugins/forms/icons/hidpi/textfield-rtl.png | Bin 0 -> 1324 bytes .../plugins/forms/icons/hidpi/textfield.png | Bin 0 -> 1324 bytes .../ckeditor/plugins/forms/icons/imagebutton.png | Bin 0 -> 680 bytes .../plugins/ckeditor/plugins/forms/icons/radio.png | Bin 0 -> 874 bytes .../ckeditor/plugins/forms/icons/select-rtl.png | Bin 0 -> 617 bytes .../ckeditor/plugins/forms/icons/select.png | Bin 0 -> 616 bytes .../ckeditor/plugins/forms/icons/textarea-rtl.png | Bin 0 -> 706 bytes .../ckeditor/plugins/forms/icons/textarea.png | Bin 0 -> 677 bytes .../ckeditor/plugins/forms/icons/textfield-rtl.png | Bin 0 -> 588 bytes .../ckeditor/plugins/forms/icons/textfield.png | Bin 0 -> 588 bytes .../ckeditor/plugins/forms/images/hiddenfield.gif | Bin 0 -> 178 bytes .../plugins/ckeditor/plugins/forms/lang/af.js | 3 + .../plugins/ckeditor/plugins/forms/lang/ar.js | 3 + .../plugins/ckeditor/plugins/forms/lang/bg.js | 3 + .../plugins/ckeditor/plugins/forms/lang/bn.js | 3 + .../plugins/ckeditor/plugins/forms/lang/bs.js | 3 + .../plugins/ckeditor/plugins/forms/lang/ca.js | 3 + .../plugins/ckeditor/plugins/forms/lang/cs.js | 3 + .../plugins/ckeditor/plugins/forms/lang/cy.js | 3 + .../plugins/ckeditor/plugins/forms/lang/da.js | 3 + .../plugins/ckeditor/plugins/forms/lang/de-ch.js | 3 + .../plugins/ckeditor/plugins/forms/lang/de.js | 3 + .../plugins/ckeditor/plugins/forms/lang/el.js | 3 + .../plugins/ckeditor/plugins/forms/lang/en-au.js | 3 + .../plugins/ckeditor/plugins/forms/lang/en-ca.js | 3 + .../plugins/ckeditor/plugins/forms/lang/en-gb.js | 3 + .../plugins/ckeditor/plugins/forms/lang/en.js | 3 + .../plugins/ckeditor/plugins/forms/lang/eo.js | 3 + .../plugins/ckeditor/plugins/forms/lang/es.js | 3 + .../plugins/ckeditor/plugins/forms/lang/et.js | 3 + .../plugins/ckeditor/plugins/forms/lang/eu.js | 3 + .../plugins/ckeditor/plugins/forms/lang/fa.js | 3 + .../plugins/ckeditor/plugins/forms/lang/fi.js | 3 + .../plugins/ckeditor/plugins/forms/lang/fo.js | 3 + .../plugins/ckeditor/plugins/forms/lang/fr-ca.js | 3 + .../plugins/ckeditor/plugins/forms/lang/fr.js | 3 + .../plugins/ckeditor/plugins/forms/lang/gl.js | 3 + .../plugins/ckeditor/plugins/forms/lang/gu.js | 3 + .../plugins/ckeditor/plugins/forms/lang/he.js | 3 + .../plugins/ckeditor/plugins/forms/lang/hi.js | 3 + .../plugins/ckeditor/plugins/forms/lang/hr.js | 3 + .../plugins/ckeditor/plugins/forms/lang/hu.js | 3 + .../plugins/ckeditor/plugins/forms/lang/id.js | 3 + .../plugins/ckeditor/plugins/forms/lang/is.js | 3 + .../plugins/ckeditor/plugins/forms/lang/it.js | 3 + .../plugins/ckeditor/plugins/forms/lang/ja.js | 2 + .../plugins/ckeditor/plugins/forms/lang/ka.js | 3 + .../plugins/ckeditor/plugins/forms/lang/km.js | 3 + .../plugins/ckeditor/plugins/forms/lang/ko.js | 2 + .../plugins/ckeditor/plugins/forms/lang/ku.js | 3 + .../plugins/ckeditor/plugins/forms/lang/lt.js | 3 + .../plugins/ckeditor/plugins/forms/lang/lv.js | 3 + .../plugins/ckeditor/plugins/forms/lang/mk.js | 3 + .../plugins/ckeditor/plugins/forms/lang/mn.js | 3 + .../plugins/ckeditor/plugins/forms/lang/ms.js | 3 + .../plugins/ckeditor/plugins/forms/lang/nb.js | 3 + .../plugins/ckeditor/plugins/forms/lang/nl.js | 3 + .../plugins/ckeditor/plugins/forms/lang/no.js | 3 + .../plugins/ckeditor/plugins/forms/lang/pl.js | 3 + .../plugins/ckeditor/plugins/forms/lang/pt-br.js | 3 + .../plugins/ckeditor/plugins/forms/lang/pt.js | 3 + .../plugins/ckeditor/plugins/forms/lang/ro.js | 3 + .../plugins/ckeditor/plugins/forms/lang/ru.js | 3 + .../plugins/ckeditor/plugins/forms/lang/si.js | 3 + .../plugins/ckeditor/plugins/forms/lang/sk.js | 3 + .../plugins/ckeditor/plugins/forms/lang/sl.js | 3 + .../plugins/ckeditor/plugins/forms/lang/sq.js | 3 + .../plugins/ckeditor/plugins/forms/lang/sr-latn.js | 3 + .../plugins/ckeditor/plugins/forms/lang/sr.js | 3 + .../plugins/ckeditor/plugins/forms/lang/sv.js | 3 + .../plugins/ckeditor/plugins/forms/lang/th.js | 3 + .../plugins/ckeditor/plugins/forms/lang/tr.js | 3 + .../plugins/ckeditor/plugins/forms/lang/tt.js | 3 + .../plugins/ckeditor/plugins/forms/lang/ug.js | 3 + .../plugins/ckeditor/plugins/forms/lang/uk.js | 3 + .../plugins/ckeditor/plugins/forms/lang/vi.js | 3 + .../plugins/ckeditor/plugins/forms/lang/zh-cn.js | 2 + .../plugins/ckeditor/plugins/forms/lang/zh.js | 2 + .../plugins/ckeditor/plugins/forms/plugin.js | 14 + public/assets/plugins/ckeditor/plugins/icons.png | Bin 0 -> 18319 bytes .../plugins/ckeditor/plugins/icons_hidpi.png | Bin 0 -> 63530 bytes .../ckeditor/plugins/iframe/dialogs/iframe.js | 10 + .../ckeditor/plugins/iframe/icons/hidpi/iframe.png | Bin 0 -> 3091 bytes .../ckeditor/plugins/iframe/icons/iframe.png | Bin 0 -> 989 bytes .../ckeditor/plugins/iframe/images/placeholder.png | Bin 0 -> 265 bytes .../plugins/ckeditor/plugins/iframe/lang/af.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/ar.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/bg.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/bn.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/bs.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/ca.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/cs.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/cy.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/da.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/de.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/el.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/en-au.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/en-ca.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/en.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/eo.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/es.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/et.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/eu.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/fa.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/fi.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/fo.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/fr.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/gl.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/gu.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/he.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/hi.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/hr.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/hu.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/id.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/is.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/it.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/ja.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/ka.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/km.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/ko.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/ku.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/lt.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/lv.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/mk.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/mn.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/ms.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/nb.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/nl.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/no.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/pl.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/pt.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/ro.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/ru.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/si.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/sk.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/sl.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/sq.js | 1 + .../ckeditor/plugins/iframe/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/sr.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/sv.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/th.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/tr.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/tt.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/ug.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/uk.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/vi.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/iframe/lang/zh.js | 1 + .../plugins/ckeditor/plugins/iframe/plugin.js | 8 + .../ckeditor/plugins/iframedialog/plugin.js | 8 + .../ckeditor/plugins/image/dialogs/image.js | 44 + .../ckeditor/plugins/image/images/noimage.png | Bin 0 -> 1610 bytes .../ckeditor/plugins/image2/dialogs/image2.js | 14 + .../ckeditor/plugins/image2/icons/hidpi/image.png | Bin 0 -> 1745 bytes .../ckeditor/plugins/image2/icons/image.png | Bin 0 -> 756 bytes .../plugins/ckeditor/plugins/image2/lang/af.js | 1 + .../plugins/ckeditor/plugins/image2/lang/ar.js | 1 + .../plugins/ckeditor/plugins/image2/lang/bg.js | 1 + .../plugins/ckeditor/plugins/image2/lang/bn.js | 1 + .../plugins/ckeditor/plugins/image2/lang/bs.js | 1 + .../plugins/ckeditor/plugins/image2/lang/ca.js | 1 + .../plugins/ckeditor/plugins/image2/lang/cs.js | 1 + .../plugins/ckeditor/plugins/image2/lang/cy.js | 1 + .../plugins/ckeditor/plugins/image2/lang/da.js | 1 + .../plugins/ckeditor/plugins/image2/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/image2/lang/de.js | 1 + .../plugins/ckeditor/plugins/image2/lang/el.js | 1 + .../plugins/ckeditor/plugins/image2/lang/en-au.js | 1 + .../plugins/ckeditor/plugins/image2/lang/en-ca.js | 1 + .../plugins/ckeditor/plugins/image2/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/image2/lang/en.js | 1 + .../plugins/ckeditor/plugins/image2/lang/eo.js | 1 + .../plugins/ckeditor/plugins/image2/lang/es.js | 1 + .../plugins/ckeditor/plugins/image2/lang/et.js | 1 + .../plugins/ckeditor/plugins/image2/lang/eu.js | 1 + .../plugins/ckeditor/plugins/image2/lang/fa.js | 1 + .../plugins/ckeditor/plugins/image2/lang/fi.js | 1 + .../plugins/ckeditor/plugins/image2/lang/fo.js | 1 + .../plugins/ckeditor/plugins/image2/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/image2/lang/fr.js | 1 + .../plugins/ckeditor/plugins/image2/lang/gl.js | 1 + .../plugins/ckeditor/plugins/image2/lang/gu.js | 1 + .../plugins/ckeditor/plugins/image2/lang/he.js | 1 + .../plugins/ckeditor/plugins/image2/lang/hi.js | 1 + .../plugins/ckeditor/plugins/image2/lang/hr.js | 1 + .../plugins/ckeditor/plugins/image2/lang/hu.js | 1 + .../plugins/ckeditor/plugins/image2/lang/id.js | 1 + .../plugins/ckeditor/plugins/image2/lang/is.js | 1 + .../plugins/ckeditor/plugins/image2/lang/it.js | 1 + .../plugins/ckeditor/plugins/image2/lang/ja.js | 1 + .../plugins/ckeditor/plugins/image2/lang/ka.js | 1 + .../plugins/ckeditor/plugins/image2/lang/km.js | 1 + .../plugins/ckeditor/plugins/image2/lang/ko.js | 1 + .../plugins/ckeditor/plugins/image2/lang/ku.js | 1 + .../plugins/ckeditor/plugins/image2/lang/lt.js | 1 + .../plugins/ckeditor/plugins/image2/lang/lv.js | 1 + .../plugins/ckeditor/plugins/image2/lang/mk.js | 1 + .../plugins/ckeditor/plugins/image2/lang/mn.js | 1 + .../plugins/ckeditor/plugins/image2/lang/ms.js | 1 + .../plugins/ckeditor/plugins/image2/lang/nb.js | 1 + .../plugins/ckeditor/plugins/image2/lang/nl.js | 1 + .../plugins/ckeditor/plugins/image2/lang/no.js | 1 + .../plugins/ckeditor/plugins/image2/lang/pl.js | 1 + .../plugins/ckeditor/plugins/image2/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/image2/lang/pt.js | 1 + .../plugins/ckeditor/plugins/image2/lang/ro.js | 1 + .../plugins/ckeditor/plugins/image2/lang/ru.js | 1 + .../plugins/ckeditor/plugins/image2/lang/si.js | 1 + .../plugins/ckeditor/plugins/image2/lang/sk.js | 1 + .../plugins/ckeditor/plugins/image2/lang/sl.js | 1 + .../plugins/ckeditor/plugins/image2/lang/sq.js | 1 + .../ckeditor/plugins/image2/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/image2/lang/sr.js | 1 + .../plugins/ckeditor/plugins/image2/lang/sv.js | 1 + .../plugins/ckeditor/plugins/image2/lang/th.js | 1 + .../plugins/ckeditor/plugins/image2/lang/tr.js | 1 + .../plugins/ckeditor/plugins/image2/lang/tt.js | 1 + .../plugins/ckeditor/plugins/image2/lang/ug.js | 1 + .../plugins/ckeditor/plugins/image2/lang/uk.js | 1 + .../plugins/ckeditor/plugins/image2/lang/vi.js | 1 + .../plugins/ckeditor/plugins/image2/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/image2/lang/zh.js | 1 + .../plugins/ckeditor/plugins/image2/plugin.js | 30 + .../plugins/ckeditor/plugins/indentblock/plugin.js | 9 + .../plugins/justify/icons/hidpi/justifyblock.png | Bin 0 -> 882 bytes .../plugins/justify/icons/hidpi/justifycenter.png | Bin 0 -> 1142 bytes .../plugins/justify/icons/hidpi/justifyleft.png | Bin 0 -> 1042 bytes .../plugins/justify/icons/hidpi/justifyright.png | Bin 0 -> 1048 bytes .../plugins/justify/icons/justifyblock.png | Bin 0 -> 496 bytes .../plugins/justify/icons/justifycenter.png | Bin 0 -> 609 bytes .../ckeditor/plugins/justify/icons/justifyleft.png | Bin 0 -> 558 bytes .../plugins/justify/icons/justifyright.png | Bin 0 -> 554 bytes .../plugins/ckeditor/plugins/justify/lang/af.js | 1 + .../plugins/ckeditor/plugins/justify/lang/ar.js | 1 + .../plugins/ckeditor/plugins/justify/lang/bg.js | 1 + .../plugins/ckeditor/plugins/justify/lang/bn.js | 1 + .../plugins/ckeditor/plugins/justify/lang/bs.js | 1 + .../plugins/ckeditor/plugins/justify/lang/ca.js | 1 + .../plugins/ckeditor/plugins/justify/lang/cs.js | 1 + .../plugins/ckeditor/plugins/justify/lang/cy.js | 1 + .../plugins/ckeditor/plugins/justify/lang/da.js | 1 + .../plugins/ckeditor/plugins/justify/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/justify/lang/de.js | 1 + .../plugins/ckeditor/plugins/justify/lang/el.js | 1 + .../plugins/ckeditor/plugins/justify/lang/en-au.js | 1 + .../plugins/ckeditor/plugins/justify/lang/en-ca.js | 1 + .../plugins/ckeditor/plugins/justify/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/justify/lang/en.js | 1 + .../plugins/ckeditor/plugins/justify/lang/eo.js | 1 + .../plugins/ckeditor/plugins/justify/lang/es.js | 1 + .../plugins/ckeditor/plugins/justify/lang/et.js | 1 + .../plugins/ckeditor/plugins/justify/lang/eu.js | 1 + .../plugins/ckeditor/plugins/justify/lang/fa.js | 1 + .../plugins/ckeditor/plugins/justify/lang/fi.js | 1 + .../plugins/ckeditor/plugins/justify/lang/fo.js | 1 + .../plugins/ckeditor/plugins/justify/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/justify/lang/fr.js | 1 + .../plugins/ckeditor/plugins/justify/lang/gl.js | 1 + .../plugins/ckeditor/plugins/justify/lang/gu.js | 1 + .../plugins/ckeditor/plugins/justify/lang/he.js | 1 + .../plugins/ckeditor/plugins/justify/lang/hi.js | 1 + .../plugins/ckeditor/plugins/justify/lang/hr.js | 1 + .../plugins/ckeditor/plugins/justify/lang/hu.js | 1 + .../plugins/ckeditor/plugins/justify/lang/id.js | 1 + .../plugins/ckeditor/plugins/justify/lang/is.js | 1 + .../plugins/ckeditor/plugins/justify/lang/it.js | 1 + .../plugins/ckeditor/plugins/justify/lang/ja.js | 1 + .../plugins/ckeditor/plugins/justify/lang/ka.js | 1 + .../plugins/ckeditor/plugins/justify/lang/km.js | 1 + .../plugins/ckeditor/plugins/justify/lang/ko.js | 1 + .../plugins/ckeditor/plugins/justify/lang/ku.js | 1 + .../plugins/ckeditor/plugins/justify/lang/lt.js | 1 + .../plugins/ckeditor/plugins/justify/lang/lv.js | 1 + .../plugins/ckeditor/plugins/justify/lang/mk.js | 1 + .../plugins/ckeditor/plugins/justify/lang/mn.js | 1 + .../plugins/ckeditor/plugins/justify/lang/ms.js | 1 + .../plugins/ckeditor/plugins/justify/lang/nb.js | 1 + .../plugins/ckeditor/plugins/justify/lang/nl.js | 1 + .../plugins/ckeditor/plugins/justify/lang/no.js | 1 + .../plugins/ckeditor/plugins/justify/lang/pl.js | 1 + .../plugins/ckeditor/plugins/justify/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/justify/lang/pt.js | 1 + .../plugins/ckeditor/plugins/justify/lang/ro.js | 1 + .../plugins/ckeditor/plugins/justify/lang/ru.js | 1 + .../plugins/ckeditor/plugins/justify/lang/si.js | 1 + .../plugins/ckeditor/plugins/justify/lang/sk.js | 1 + .../plugins/ckeditor/plugins/justify/lang/sl.js | 1 + .../plugins/ckeditor/plugins/justify/lang/sq.js | 1 + .../ckeditor/plugins/justify/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/justify/lang/sr.js | 1 + .../plugins/ckeditor/plugins/justify/lang/sv.js | 1 + .../plugins/ckeditor/plugins/justify/lang/th.js | 1 + .../plugins/ckeditor/plugins/justify/lang/tr.js | 1 + .../plugins/ckeditor/plugins/justify/lang/tt.js | 1 + .../plugins/ckeditor/plugins/justify/lang/ug.js | 1 + .../plugins/ckeditor/plugins/justify/lang/uk.js | 1 + .../plugins/ckeditor/plugins/justify/lang/vi.js | 1 + .../plugins/ckeditor/plugins/justify/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/justify/lang/zh.js | 1 + .../plugins/ckeditor/plugins/justify/plugin.js | 12 + .../plugins/language/icons/hidpi/language.png | Bin 0 -> 1678 bytes .../ckeditor/plugins/language/icons/language.png | Bin 0 -> 668 bytes .../plugins/ckeditor/plugins/language/lang/ar.js | 5 + .../plugins/ckeditor/plugins/language/lang/bg.js | 5 + .../plugins/ckeditor/plugins/language/lang/ca.js | 5 + .../plugins/ckeditor/plugins/language/lang/cs.js | 5 + .../plugins/ckeditor/plugins/language/lang/cy.js | 5 + .../plugins/ckeditor/plugins/language/lang/da.js | 5 + .../ckeditor/plugins/language/lang/de-ch.js | 5 + .../plugins/ckeditor/plugins/language/lang/de.js | 5 + .../plugins/ckeditor/plugins/language/lang/el.js | 5 + .../ckeditor/plugins/language/lang/en-gb.js | 5 + .../plugins/ckeditor/plugins/language/lang/en.js | 5 + .../plugins/ckeditor/plugins/language/lang/eo.js | 5 + .../plugins/ckeditor/plugins/language/lang/es.js | 5 + .../plugins/ckeditor/plugins/language/lang/eu.js | 5 + .../plugins/ckeditor/plugins/language/lang/fa.js | 5 + .../plugins/ckeditor/plugins/language/lang/fi.js | 5 + .../plugins/ckeditor/plugins/language/lang/fo.js | 5 + .../plugins/ckeditor/plugins/language/lang/fr.js | 5 + .../plugins/ckeditor/plugins/language/lang/gl.js | 5 + .../plugins/ckeditor/plugins/language/lang/he.js | 5 + .../plugins/ckeditor/plugins/language/lang/hr.js | 5 + .../plugins/ckeditor/plugins/language/lang/hu.js | 5 + .../plugins/ckeditor/plugins/language/lang/id.js | 5 + .../plugins/ckeditor/plugins/language/lang/it.js | 5 + .../plugins/ckeditor/plugins/language/lang/ja.js | 5 + .../plugins/ckeditor/plugins/language/lang/km.js | 5 + .../plugins/ckeditor/plugins/language/lang/ko.js | 5 + .../plugins/ckeditor/plugins/language/lang/ku.js | 5 + .../plugins/ckeditor/plugins/language/lang/nb.js | 5 + .../plugins/ckeditor/plugins/language/lang/nl.js | 5 + .../plugins/ckeditor/plugins/language/lang/no.js | 5 + .../plugins/ckeditor/plugins/language/lang/pl.js | 5 + .../ckeditor/plugins/language/lang/pt-br.js | 5 + .../plugins/ckeditor/plugins/language/lang/pt.js | 5 + .../plugins/ckeditor/plugins/language/lang/ru.js | 5 + .../plugins/ckeditor/plugins/language/lang/sk.js | 5 + .../plugins/ckeditor/plugins/language/lang/sl.js | 5 + .../plugins/ckeditor/plugins/language/lang/sq.js | 5 + .../plugins/ckeditor/plugins/language/lang/sv.js | 5 + .../plugins/ckeditor/plugins/language/lang/tr.js | 5 + .../plugins/ckeditor/plugins/language/lang/tt.js | 5 + .../plugins/ckeditor/plugins/language/lang/ug.js | 5 + .../plugins/ckeditor/plugins/language/lang/uk.js | 5 + .../plugins/ckeditor/plugins/language/lang/vi.js | 5 + .../ckeditor/plugins/language/lang/zh-cn.js | 5 + .../plugins/ckeditor/plugins/language/lang/zh.js | 5 + .../plugins/ckeditor/plugins/language/plugin.js | 8 + .../plugins/ckeditor/plugins/lineutils/plugin.js | 22 + .../ckeditor/plugins/link/dialogs/anchor.js | 7 + .../plugins/ckeditor/plugins/link/dialogs/link.js | 26 + .../ckeditor/plugins/link/images/anchor.png | Bin 0 -> 589 bytes .../ckeditor/plugins/link/images/hidpi/anchor.png | Bin 0 -> 1379 bytes .../plugins/liststyle/dialogs/liststyle.js | 10 + .../plugins/ckeditor/plugins/liststyle/lang/af.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/ar.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/bg.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/bn.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/bs.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/ca.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/cs.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/cy.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/da.js | 2 + .../ckeditor/plugins/liststyle/lang/de-ch.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/de.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/el.js | 2 + .../ckeditor/plugins/liststyle/lang/en-au.js | 2 + .../ckeditor/plugins/liststyle/lang/en-ca.js | 2 + .../ckeditor/plugins/liststyle/lang/en-gb.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/en.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/eo.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/es.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/et.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/eu.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/fa.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/fi.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/fo.js | 2 + .../ckeditor/plugins/liststyle/lang/fr-ca.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/fr.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/gl.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/gu.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/he.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/hi.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/hr.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/hu.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/id.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/is.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/it.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/ja.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/ka.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/km.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/ko.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/ku.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/lt.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/lv.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/mk.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/mn.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/ms.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/nb.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/nl.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/no.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/pl.js | 2 + .../ckeditor/plugins/liststyle/lang/pt-br.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/pt.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/ro.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/ru.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/si.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/sk.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/sl.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/sq.js | 2 + .../ckeditor/plugins/liststyle/lang/sr-latn.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/sr.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/sv.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/th.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/tr.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/tt.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/ug.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/uk.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/vi.js | 2 + .../ckeditor/plugins/liststyle/lang/zh-cn.js | 2 + .../plugins/ckeditor/plugins/liststyle/lang/zh.js | 2 + .../plugins/ckeditor/plugins/liststyle/plugin.js | 7 + .../plugins/magicline/images/hidpi/icon-rtl.png | Bin 0 -> 176 bytes .../plugins/magicline/images/hidpi/icon.png | Bin 0 -> 199 bytes .../ckeditor/plugins/magicline/images/icon-rtl.png | Bin 0 -> 138 bytes .../ckeditor/plugins/magicline/images/icon.png | Bin 0 -> 133 bytes .../ckeditor/plugins/mathjax/dialogs/mathjax.js | 7 + .../plugins/mathjax/icons/hidpi/mathjax.png | Bin 0 -> 1437 bytes .../ckeditor/plugins/mathjax/icons/mathjax.png | Bin 0 -> 703 bytes .../ckeditor/plugins/mathjax/images/loader.gif | Bin 0 -> 784 bytes .../plugins/ckeditor/plugins/mathjax/lang/af.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/ar.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/bg.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/ca.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/cs.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/cy.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/da.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/de.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/el.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/en.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/eo.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/es.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/eu.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/fa.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/fi.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/fr.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/gl.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/he.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/hr.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/hu.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/id.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/it.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/ja.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/km.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/ko.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/ku.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/lt.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/nb.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/nl.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/no.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/pl.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/pt.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/ro.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/ru.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/sk.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/sl.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/sq.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/sv.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/tr.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/tt.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/ug.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/uk.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/vi.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/mathjax/lang/zh.js | 1 + .../plugins/ckeditor/plugins/mathjax/plugin.js | 15 + .../plugins/newpage/icons/hidpi/newpage-rtl.png | Bin 0 -> 1070 bytes .../plugins/newpage/icons/hidpi/newpage.png | Bin 0 -> 1112 bytes .../ckeditor/plugins/newpage/icons/newpage-rtl.png | Bin 0 -> 575 bytes .../ckeditor/plugins/newpage/icons/newpage.png | Bin 0 -> 580 bytes .../plugins/ckeditor/plugins/newpage/lang/af.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/ar.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/bg.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/bn.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/bs.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/ca.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/cs.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/cy.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/da.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/de.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/el.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/en-au.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/en-ca.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/en.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/eo.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/es.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/et.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/eu.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/fa.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/fi.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/fo.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/fr.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/gl.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/gu.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/he.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/hi.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/hr.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/hu.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/id.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/is.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/it.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/ja.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/ka.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/km.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/ko.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/ku.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/lt.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/lv.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/mk.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/mn.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/ms.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/nb.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/nl.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/no.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/pl.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/pt.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/ro.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/ru.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/si.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/sk.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/sl.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/sq.js | 1 + .../ckeditor/plugins/newpage/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/sr.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/sv.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/th.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/tr.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/tt.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/ug.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/uk.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/vi.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/newpage/lang/zh.js | 1 + .../plugins/ckeditor/plugins/newpage/plugin.js | 6 + .../ckeditor/plugins/notification/lang/cs.js | 1 + .../ckeditor/plugins/notification/lang/da.js | 1 + .../ckeditor/plugins/notification/lang/de-ch.js | 1 + .../ckeditor/plugins/notification/lang/de.js | 1 + .../ckeditor/plugins/notification/lang/en.js | 1 + .../ckeditor/plugins/notification/lang/eo.js | 1 + .../ckeditor/plugins/notification/lang/eu.js | 1 + .../ckeditor/plugins/notification/lang/fr.js | 1 + .../ckeditor/plugins/notification/lang/gl.js | 1 + .../ckeditor/plugins/notification/lang/id.js | 1 + .../ckeditor/plugins/notification/lang/it.js | 1 + .../ckeditor/plugins/notification/lang/ko.js | 1 + .../ckeditor/plugins/notification/lang/ku.js | 1 + .../ckeditor/plugins/notification/lang/nb.js | 1 + .../ckeditor/plugins/notification/lang/nl.js | 1 + .../ckeditor/plugins/notification/lang/pl.js | 1 + .../ckeditor/plugins/notification/lang/pt-br.js | 1 + .../ckeditor/plugins/notification/lang/ru.js | 1 + .../ckeditor/plugins/notification/lang/sv.js | 1 + .../ckeditor/plugins/notification/lang/tr.js | 1 + .../ckeditor/plugins/notification/lang/ug.js | 1 + .../ckeditor/plugins/notification/lang/uk.js | 1 + .../ckeditor/plugins/notification/lang/zh-cn.js | 1 + .../ckeditor/plugins/notification/lang/zh.js | 1 + .../ckeditor/plugins/notification/plugin.js | 19 + .../plugins/notificationaggregator/plugin.js | 9 + .../pagebreak/icons/hidpi/pagebreak-rtl.png | Bin 0 -> 1318 bytes .../plugins/pagebreak/icons/hidpi/pagebreak.png | Bin 0 -> 1299 bytes .../plugins/pagebreak/icons/pagebreak-rtl.png | Bin 0 -> 629 bytes .../ckeditor/plugins/pagebreak/icons/pagebreak.png | Bin 0 -> 602 bytes .../plugins/pagebreak/images/pagebreak.gif | Bin 0 -> 99 bytes .../plugins/ckeditor/plugins/pagebreak/lang/af.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/ar.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/bg.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/bn.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/bs.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/ca.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/cs.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/cy.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/da.js | 1 + .../ckeditor/plugins/pagebreak/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/de.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/el.js | 1 + .../ckeditor/plugins/pagebreak/lang/en-au.js | 1 + .../ckeditor/plugins/pagebreak/lang/en-ca.js | 1 + .../ckeditor/plugins/pagebreak/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/en.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/eo.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/es.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/et.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/eu.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/fa.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/fi.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/fo.js | 1 + .../ckeditor/plugins/pagebreak/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/fr.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/gl.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/gu.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/he.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/hi.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/hr.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/hu.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/id.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/is.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/it.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/ja.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/ka.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/km.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/ko.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/ku.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/lt.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/lv.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/mk.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/mn.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/ms.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/nb.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/nl.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/no.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/pl.js | 1 + .../ckeditor/plugins/pagebreak/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/pt.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/ro.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/ru.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/si.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/sk.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/sl.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/sq.js | 1 + .../ckeditor/plugins/pagebreak/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/sr.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/sv.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/th.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/tr.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/tt.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/ug.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/uk.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/vi.js | 1 + .../ckeditor/plugins/pagebreak/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/pagebreak/lang/zh.js | 1 + .../plugins/ckeditor/plugins/pagebreak/plugin.js | 9 + .../plugins/ckeditor/plugins/panelbutton/plugin.js | 8 + .../plugins/pastefromword/filter/default.js | 32 + .../plugins/placeholder/dialogs/placeholder.js | 5 + .../placeholder/icons/hidpi/placeholder.png | Bin 0 -> 1775 bytes .../plugins/placeholder/icons/placeholder.png | Bin 0 -> 714 bytes .../ckeditor/plugins/placeholder/lang/af.js | 5 + .../ckeditor/plugins/placeholder/lang/ar.js | 5 + .../ckeditor/plugins/placeholder/lang/bg.js | 5 + .../ckeditor/plugins/placeholder/lang/ca.js | 5 + .../ckeditor/plugins/placeholder/lang/cs.js | 5 + .../ckeditor/plugins/placeholder/lang/cy.js | 5 + .../ckeditor/plugins/placeholder/lang/da.js | 5 + .../ckeditor/plugins/placeholder/lang/de-ch.js | 5 + .../ckeditor/plugins/placeholder/lang/de.js | 5 + .../ckeditor/plugins/placeholder/lang/el.js | 5 + .../ckeditor/plugins/placeholder/lang/en-gb.js | 5 + .../ckeditor/plugins/placeholder/lang/en.js | 5 + .../ckeditor/plugins/placeholder/lang/eo.js | 5 + .../ckeditor/plugins/placeholder/lang/es.js | 5 + .../ckeditor/plugins/placeholder/lang/et.js | 5 + .../ckeditor/plugins/placeholder/lang/eu.js | 5 + .../ckeditor/plugins/placeholder/lang/fa.js | 5 + .../ckeditor/plugins/placeholder/lang/fi.js | 5 + .../ckeditor/plugins/placeholder/lang/fr-ca.js | 5 + .../ckeditor/plugins/placeholder/lang/fr.js | 5 + .../ckeditor/plugins/placeholder/lang/gl.js | 5 + .../ckeditor/plugins/placeholder/lang/he.js | 5 + .../ckeditor/plugins/placeholder/lang/hr.js | 5 + .../ckeditor/plugins/placeholder/lang/hu.js | 5 + .../ckeditor/plugins/placeholder/lang/id.js | 5 + .../ckeditor/plugins/placeholder/lang/it.js | 5 + .../ckeditor/plugins/placeholder/lang/ja.js | 5 + .../ckeditor/plugins/placeholder/lang/km.js | 5 + .../ckeditor/plugins/placeholder/lang/ko.js | 5 + .../ckeditor/plugins/placeholder/lang/ku.js | 5 + .../ckeditor/plugins/placeholder/lang/lv.js | 5 + .../ckeditor/plugins/placeholder/lang/nb.js | 5 + .../ckeditor/plugins/placeholder/lang/nl.js | 5 + .../ckeditor/plugins/placeholder/lang/no.js | 5 + .../ckeditor/plugins/placeholder/lang/pl.js | 5 + .../ckeditor/plugins/placeholder/lang/pt-br.js | 5 + .../ckeditor/plugins/placeholder/lang/pt.js | 5 + .../ckeditor/plugins/placeholder/lang/ru.js | 5 + .../ckeditor/plugins/placeholder/lang/si.js | 5 + .../ckeditor/plugins/placeholder/lang/sk.js | 5 + .../ckeditor/plugins/placeholder/lang/sl.js | 5 + .../ckeditor/plugins/placeholder/lang/sq.js | 5 + .../ckeditor/plugins/placeholder/lang/sv.js | 5 + .../ckeditor/plugins/placeholder/lang/th.js | 5 + .../ckeditor/plugins/placeholder/lang/tr.js | 5 + .../ckeditor/plugins/placeholder/lang/tt.js | 5 + .../ckeditor/plugins/placeholder/lang/ug.js | 5 + .../ckeditor/plugins/placeholder/lang/uk.js | 5 + .../ckeditor/plugins/placeholder/lang/vi.js | 5 + .../ckeditor/plugins/placeholder/lang/zh-cn.js | 5 + .../ckeditor/plugins/placeholder/lang/zh.js | 5 + .../plugins/ckeditor/plugins/placeholder/plugin.js | 7 + .../plugins/preview/icons/hidpi/preview-rtl.png | Bin 0 -> 2145 bytes .../plugins/preview/icons/hidpi/preview.png | Bin 0 -> 2204 bytes .../ckeditor/plugins/preview/icons/preview-rtl.png | Bin 0 -> 850 bytes .../ckeditor/plugins/preview/icons/preview.png | Bin 0 -> 855 bytes .../plugins/ckeditor/plugins/preview/lang/af.js | 1 + .../plugins/ckeditor/plugins/preview/lang/ar.js | 1 + .../plugins/ckeditor/plugins/preview/lang/bg.js | 1 + .../plugins/ckeditor/plugins/preview/lang/bn.js | 1 + .../plugins/ckeditor/plugins/preview/lang/bs.js | 1 + .../plugins/ckeditor/plugins/preview/lang/ca.js | 1 + .../plugins/ckeditor/plugins/preview/lang/cs.js | 1 + .../plugins/ckeditor/plugins/preview/lang/cy.js | 1 + .../plugins/ckeditor/plugins/preview/lang/da.js | 1 + .../plugins/ckeditor/plugins/preview/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/preview/lang/de.js | 1 + .../plugins/ckeditor/plugins/preview/lang/el.js | 1 + .../plugins/ckeditor/plugins/preview/lang/en-au.js | 1 + .../plugins/ckeditor/plugins/preview/lang/en-ca.js | 1 + .../plugins/ckeditor/plugins/preview/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/preview/lang/en.js | 1 + .../plugins/ckeditor/plugins/preview/lang/eo.js | 1 + .../plugins/ckeditor/plugins/preview/lang/es.js | 1 + .../plugins/ckeditor/plugins/preview/lang/et.js | 1 + .../plugins/ckeditor/plugins/preview/lang/eu.js | 1 + .../plugins/ckeditor/plugins/preview/lang/fa.js | 1 + .../plugins/ckeditor/plugins/preview/lang/fi.js | 1 + .../plugins/ckeditor/plugins/preview/lang/fo.js | 1 + .../plugins/ckeditor/plugins/preview/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/preview/lang/fr.js | 1 + .../plugins/ckeditor/plugins/preview/lang/gl.js | 1 + .../plugins/ckeditor/plugins/preview/lang/gu.js | 1 + .../plugins/ckeditor/plugins/preview/lang/he.js | 1 + .../plugins/ckeditor/plugins/preview/lang/hi.js | 1 + .../plugins/ckeditor/plugins/preview/lang/hr.js | 1 + .../plugins/ckeditor/plugins/preview/lang/hu.js | 1 + .../plugins/ckeditor/plugins/preview/lang/id.js | 1 + .../plugins/ckeditor/plugins/preview/lang/is.js | 1 + .../plugins/ckeditor/plugins/preview/lang/it.js | 1 + .../plugins/ckeditor/plugins/preview/lang/ja.js | 1 + .../plugins/ckeditor/plugins/preview/lang/ka.js | 1 + .../plugins/ckeditor/plugins/preview/lang/km.js | 1 + .../plugins/ckeditor/plugins/preview/lang/ko.js | 1 + .../plugins/ckeditor/plugins/preview/lang/ku.js | 1 + .../plugins/ckeditor/plugins/preview/lang/lt.js | 1 + .../plugins/ckeditor/plugins/preview/lang/lv.js | 1 + .../plugins/ckeditor/plugins/preview/lang/mk.js | 1 + .../plugins/ckeditor/plugins/preview/lang/mn.js | 1 + .../plugins/ckeditor/plugins/preview/lang/ms.js | 1 + .../plugins/ckeditor/plugins/preview/lang/nb.js | 1 + .../plugins/ckeditor/plugins/preview/lang/nl.js | 1 + .../plugins/ckeditor/plugins/preview/lang/no.js | 1 + .../plugins/ckeditor/plugins/preview/lang/pl.js | 1 + .../plugins/ckeditor/plugins/preview/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/preview/lang/pt.js | 1 + .../plugins/ckeditor/plugins/preview/lang/ro.js | 1 + .../plugins/ckeditor/plugins/preview/lang/ru.js | 1 + .../plugins/ckeditor/plugins/preview/lang/si.js | 1 + .../plugins/ckeditor/plugins/preview/lang/sk.js | 1 + .../plugins/ckeditor/plugins/preview/lang/sl.js | 1 + .../plugins/ckeditor/plugins/preview/lang/sq.js | 1 + .../ckeditor/plugins/preview/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/preview/lang/sr.js | 1 + .../plugins/ckeditor/plugins/preview/lang/sv.js | 1 + .../plugins/ckeditor/plugins/preview/lang/th.js | 1 + .../plugins/ckeditor/plugins/preview/lang/tr.js | 1 + .../plugins/ckeditor/plugins/preview/lang/tt.js | 1 + .../plugins/ckeditor/plugins/preview/lang/ug.js | 1 + .../plugins/ckeditor/plugins/preview/lang/uk.js | 1 + .../plugins/ckeditor/plugins/preview/lang/vi.js | 1 + .../plugins/ckeditor/plugins/preview/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/preview/lang/zh.js | 1 + .../plugins/ckeditor/plugins/preview/plugin.js | 9 + .../plugins/ckeditor/plugins/preview/preview.html | 13 + .../ckeditor/plugins/print/icons/hidpi/print.png | Bin 0 -> 1648 bytes .../plugins/ckeditor/plugins/print/icons/print.png | Bin 0 -> 765 bytes .../plugins/ckeditor/plugins/print/lang/af.js | 1 + .../plugins/ckeditor/plugins/print/lang/ar.js | 1 + .../plugins/ckeditor/plugins/print/lang/bg.js | 1 + .../plugins/ckeditor/plugins/print/lang/bn.js | 1 + .../plugins/ckeditor/plugins/print/lang/bs.js | 1 + .../plugins/ckeditor/plugins/print/lang/ca.js | 1 + .../plugins/ckeditor/plugins/print/lang/cs.js | 1 + .../plugins/ckeditor/plugins/print/lang/cy.js | 1 + .../plugins/ckeditor/plugins/print/lang/da.js | 1 + .../plugins/ckeditor/plugins/print/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/print/lang/de.js | 1 + .../plugins/ckeditor/plugins/print/lang/el.js | 1 + .../plugins/ckeditor/plugins/print/lang/en-au.js | 1 + .../plugins/ckeditor/plugins/print/lang/en-ca.js | 1 + .../plugins/ckeditor/plugins/print/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/print/lang/en.js | 1 + .../plugins/ckeditor/plugins/print/lang/eo.js | 1 + .../plugins/ckeditor/plugins/print/lang/es.js | 1 + .../plugins/ckeditor/plugins/print/lang/et.js | 1 + .../plugins/ckeditor/plugins/print/lang/eu.js | 1 + .../plugins/ckeditor/plugins/print/lang/fa.js | 1 + .../plugins/ckeditor/plugins/print/lang/fi.js | 1 + .../plugins/ckeditor/plugins/print/lang/fo.js | 1 + .../plugins/ckeditor/plugins/print/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/print/lang/fr.js | 1 + .../plugins/ckeditor/plugins/print/lang/gl.js | 1 + .../plugins/ckeditor/plugins/print/lang/gu.js | 1 + .../plugins/ckeditor/plugins/print/lang/he.js | 1 + .../plugins/ckeditor/plugins/print/lang/hi.js | 1 + .../plugins/ckeditor/plugins/print/lang/hr.js | 1 + .../plugins/ckeditor/plugins/print/lang/hu.js | 1 + .../plugins/ckeditor/plugins/print/lang/id.js | 1 + .../plugins/ckeditor/plugins/print/lang/is.js | 1 + .../plugins/ckeditor/plugins/print/lang/it.js | 1 + .../plugins/ckeditor/plugins/print/lang/ja.js | 1 + .../plugins/ckeditor/plugins/print/lang/ka.js | 1 + .../plugins/ckeditor/plugins/print/lang/km.js | 1 + .../plugins/ckeditor/plugins/print/lang/ko.js | 1 + .../plugins/ckeditor/plugins/print/lang/ku.js | 1 + .../plugins/ckeditor/plugins/print/lang/lt.js | 1 + .../plugins/ckeditor/plugins/print/lang/lv.js | 1 + .../plugins/ckeditor/plugins/print/lang/mk.js | 1 + .../plugins/ckeditor/plugins/print/lang/mn.js | 1 + .../plugins/ckeditor/plugins/print/lang/ms.js | 1 + .../plugins/ckeditor/plugins/print/lang/nb.js | 1 + .../plugins/ckeditor/plugins/print/lang/nl.js | 1 + .../plugins/ckeditor/plugins/print/lang/no.js | 1 + .../plugins/ckeditor/plugins/print/lang/pl.js | 1 + .../plugins/ckeditor/plugins/print/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/print/lang/pt.js | 1 + .../plugins/ckeditor/plugins/print/lang/ro.js | 1 + .../plugins/ckeditor/plugins/print/lang/ru.js | 1 + .../plugins/ckeditor/plugins/print/lang/si.js | 1 + .../plugins/ckeditor/plugins/print/lang/sk.js | 1 + .../plugins/ckeditor/plugins/print/lang/sl.js | 1 + .../plugins/ckeditor/plugins/print/lang/sq.js | 1 + .../plugins/ckeditor/plugins/print/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/print/lang/sr.js | 1 + .../plugins/ckeditor/plugins/print/lang/sv.js | 1 + .../plugins/ckeditor/plugins/print/lang/th.js | 1 + .../plugins/ckeditor/plugins/print/lang/tr.js | 1 + .../plugins/ckeditor/plugins/print/lang/tt.js | 1 + .../plugins/ckeditor/plugins/print/lang/ug.js | 1 + .../plugins/ckeditor/plugins/print/lang/uk.js | 1 + .../plugins/ckeditor/plugins/print/lang/vi.js | 1 + .../plugins/ckeditor/plugins/print/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/print/lang/zh.js | 1 + .../plugins/ckeditor/plugins/print/plugin.js | 6 + .../ckeditor/plugins/save/icons/hidpi/save.png | Bin 0 -> 1648 bytes .../plugins/ckeditor/plugins/save/icons/save.png | Bin 0 -> 716 bytes .../plugins/ckeditor/plugins/save/lang/af.js | 1 + .../plugins/ckeditor/plugins/save/lang/ar.js | 1 + .../plugins/ckeditor/plugins/save/lang/bg.js | 1 + .../plugins/ckeditor/plugins/save/lang/bn.js | 1 + .../plugins/ckeditor/plugins/save/lang/bs.js | 1 + .../plugins/ckeditor/plugins/save/lang/ca.js | 1 + .../plugins/ckeditor/plugins/save/lang/cs.js | 1 + .../plugins/ckeditor/plugins/save/lang/cy.js | 1 + .../plugins/ckeditor/plugins/save/lang/da.js | 1 + .../plugins/ckeditor/plugins/save/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/save/lang/de.js | 1 + .../plugins/ckeditor/plugins/save/lang/el.js | 1 + .../plugins/ckeditor/plugins/save/lang/en-au.js | 1 + .../plugins/ckeditor/plugins/save/lang/en-ca.js | 1 + .../plugins/ckeditor/plugins/save/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/save/lang/en.js | 1 + .../plugins/ckeditor/plugins/save/lang/eo.js | 1 + .../plugins/ckeditor/plugins/save/lang/es.js | 1 + .../plugins/ckeditor/plugins/save/lang/et.js | 1 + .../plugins/ckeditor/plugins/save/lang/eu.js | 1 + .../plugins/ckeditor/plugins/save/lang/fa.js | 1 + .../plugins/ckeditor/plugins/save/lang/fi.js | 1 + .../plugins/ckeditor/plugins/save/lang/fo.js | 1 + .../plugins/ckeditor/plugins/save/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/save/lang/fr.js | 1 + .../plugins/ckeditor/plugins/save/lang/gl.js | 1 + .../plugins/ckeditor/plugins/save/lang/gu.js | 1 + .../plugins/ckeditor/plugins/save/lang/he.js | 1 + .../plugins/ckeditor/plugins/save/lang/hi.js | 1 + .../plugins/ckeditor/plugins/save/lang/hr.js | 1 + .../plugins/ckeditor/plugins/save/lang/hu.js | 1 + .../plugins/ckeditor/plugins/save/lang/id.js | 1 + .../plugins/ckeditor/plugins/save/lang/is.js | 1 + .../plugins/ckeditor/plugins/save/lang/it.js | 1 + .../plugins/ckeditor/plugins/save/lang/ja.js | 1 + .../plugins/ckeditor/plugins/save/lang/ka.js | 1 + .../plugins/ckeditor/plugins/save/lang/km.js | 1 + .../plugins/ckeditor/plugins/save/lang/ko.js | 1 + .../plugins/ckeditor/plugins/save/lang/ku.js | 1 + .../plugins/ckeditor/plugins/save/lang/lt.js | 1 + .../plugins/ckeditor/plugins/save/lang/lv.js | 1 + .../plugins/ckeditor/plugins/save/lang/mk.js | 1 + .../plugins/ckeditor/plugins/save/lang/mn.js | 1 + .../plugins/ckeditor/plugins/save/lang/ms.js | 1 + .../plugins/ckeditor/plugins/save/lang/nb.js | 1 + .../plugins/ckeditor/plugins/save/lang/nl.js | 1 + .../plugins/ckeditor/plugins/save/lang/no.js | 1 + .../plugins/ckeditor/plugins/save/lang/pl.js | 1 + .../plugins/ckeditor/plugins/save/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/save/lang/pt.js | 1 + .../plugins/ckeditor/plugins/save/lang/ro.js | 1 + .../plugins/ckeditor/plugins/save/lang/ru.js | 1 + .../plugins/ckeditor/plugins/save/lang/si.js | 1 + .../plugins/ckeditor/plugins/save/lang/sk.js | 1 + .../plugins/ckeditor/plugins/save/lang/sl.js | 1 + .../plugins/ckeditor/plugins/save/lang/sq.js | 1 + .../plugins/ckeditor/plugins/save/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/save/lang/sr.js | 1 + .../plugins/ckeditor/plugins/save/lang/sv.js | 1 + .../plugins/ckeditor/plugins/save/lang/th.js | 1 + .../plugins/ckeditor/plugins/save/lang/tr.js | 1 + .../plugins/ckeditor/plugins/save/lang/tt.js | 1 + .../plugins/ckeditor/plugins/save/lang/ug.js | 1 + .../plugins/ckeditor/plugins/save/lang/uk.js | 1 + .../plugins/ckeditor/plugins/save/lang/vi.js | 1 + .../plugins/ckeditor/plugins/save/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/save/lang/zh.js | 1 + .../assets/plugins/ckeditor/plugins/save/plugin.js | 6 + .../plugins/ckeditor/plugins/scayt/CHANGELOG.md | 20 + .../plugins/ckeditor/plugins/scayt/LICENSE.md | 28 + .../ckeditor/plugins/scayt/dialogs/options.js | 19 + .../ckeditor/plugins/scayt/dialogs/toolbar.css | 71 + .../plugins/selectall/icons/hidpi/selectall.png | Bin 0 -> 1093 bytes .../ckeditor/plugins/selectall/icons/selectall.png | Bin 0 -> 665 bytes .../plugins/ckeditor/plugins/selectall/lang/af.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/ar.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/bg.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/bn.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/bs.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/ca.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/cs.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/cy.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/da.js | 1 + .../ckeditor/plugins/selectall/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/de.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/el.js | 1 + .../ckeditor/plugins/selectall/lang/en-au.js | 1 + .../ckeditor/plugins/selectall/lang/en-ca.js | 1 + .../ckeditor/plugins/selectall/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/en.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/eo.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/es.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/et.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/eu.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/fa.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/fi.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/fo.js | 1 + .../ckeditor/plugins/selectall/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/fr.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/gl.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/gu.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/he.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/hi.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/hr.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/hu.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/id.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/is.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/it.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/ja.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/ka.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/km.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/ko.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/ku.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/lt.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/lv.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/mk.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/mn.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/ms.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/nb.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/nl.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/no.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/pl.js | 1 + .../ckeditor/plugins/selectall/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/pt.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/ro.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/ru.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/si.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/sk.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/sl.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/sq.js | 1 + .../ckeditor/plugins/selectall/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/sr.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/sv.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/th.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/tr.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/tt.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/ug.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/uk.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/vi.js | 1 + .../ckeditor/plugins/selectall/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/selectall/lang/zh.js | 1 + .../plugins/ckeditor/plugins/selectall/plugin.js | 6 + .../plugins/ckeditor/plugins/sharedspace/plugin.js | 7 + .../showblocks/icons/hidpi/showblocks-rtl.png | Bin 0 -> 1853 bytes .../plugins/showblocks/icons/hidpi/showblocks.png | Bin 0 -> 1895 bytes .../plugins/showblocks/icons/showblocks-rtl.png | Bin 0 -> 691 bytes .../plugins/showblocks/icons/showblocks.png | Bin 0 -> 701 bytes .../plugins/showblocks/images/block_address.png | Bin 0 -> 152 bytes .../plugins/showblocks/images/block_blockquote.png | Bin 0 -> 154 bytes .../plugins/showblocks/images/block_div.png | Bin 0 -> 127 bytes .../plugins/showblocks/images/block_h1.png | Bin 0 -> 120 bytes .../plugins/showblocks/images/block_h2.png | Bin 0 -> 127 bytes .../plugins/showblocks/images/block_h3.png | Bin 0 -> 123 bytes .../plugins/showblocks/images/block_h4.png | Bin 0 -> 123 bytes .../plugins/showblocks/images/block_h5.png | Bin 0 -> 126 bytes .../plugins/showblocks/images/block_h6.png | Bin 0 -> 123 bytes .../ckeditor/plugins/showblocks/images/block_p.png | Bin 0 -> 115 bytes .../plugins/showblocks/images/block_pre.png | Bin 0 -> 128 bytes .../plugins/ckeditor/plugins/showblocks/lang/af.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/ar.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/bg.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/bn.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/bs.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/ca.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/cs.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/cy.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/da.js | 1 + .../ckeditor/plugins/showblocks/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/de.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/el.js | 1 + .../ckeditor/plugins/showblocks/lang/en-au.js | 1 + .../ckeditor/plugins/showblocks/lang/en-ca.js | 1 + .../ckeditor/plugins/showblocks/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/en.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/eo.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/es.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/et.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/eu.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/fa.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/fi.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/fo.js | 1 + .../ckeditor/plugins/showblocks/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/fr.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/gl.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/gu.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/he.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/hi.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/hr.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/hu.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/id.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/is.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/it.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/ja.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/ka.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/km.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/ko.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/ku.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/lt.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/lv.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/mk.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/mn.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/ms.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/nb.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/nl.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/no.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/pl.js | 1 + .../ckeditor/plugins/showblocks/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/pt.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/ro.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/ru.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/si.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/sk.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/sl.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/sq.js | 1 + .../ckeditor/plugins/showblocks/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/sr.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/sv.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/th.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/tr.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/tt.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/ug.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/uk.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/vi.js | 1 + .../ckeditor/plugins/showblocks/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/showblocks/lang/zh.js | 1 + .../plugins/ckeditor/plugins/showblocks/plugin.js | 9 + .../ckeditor/plugins/smiley/dialogs/smiley.js | 11 + .../ckeditor/plugins/smiley/icons/hidpi/smiley.png | Bin 0 -> 3073 bytes .../ckeditor/plugins/smiley/icons/smiley.png | Bin 0 -> 916 bytes .../ckeditor/plugins/smiley/images/angel_smile.gif | Bin 0 -> 1245 bytes .../ckeditor/plugins/smiley/images/angel_smile.png | Bin 0 -> 1172 bytes .../ckeditor/plugins/smiley/images/angry_smile.gif | Bin 0 -> 1219 bytes .../ckeditor/plugins/smiley/images/angry_smile.png | Bin 0 -> 1220 bytes .../plugins/smiley/images/broken_heart.gif | Bin 0 -> 732 bytes .../plugins/smiley/images/broken_heart.png | Bin 0 -> 1139 bytes .../plugins/smiley/images/confused_smile.gif | Bin 0 -> 1202 bytes .../plugins/smiley/images/confused_smile.png | Bin 0 -> 1101 bytes .../ckeditor/plugins/smiley/images/cry_smile.gif | Bin 0 -> 795 bytes .../ckeditor/plugins/smiley/images/cry_smile.png | Bin 0 -> 1214 bytes .../ckeditor/plugins/smiley/images/devil_smile.gif | Bin 0 -> 1239 bytes .../ckeditor/plugins/smiley/images/devil_smile.png | Bin 0 -> 1220 bytes .../plugins/smiley/images/embaressed_smile.gif | Bin 0 -> 786 bytes .../plugins/smiley/images/embarrassed_smile.gif | Bin 0 -> 786 bytes .../plugins/smiley/images/embarrassed_smile.png | Bin 0 -> 1145 bytes .../ckeditor/plugins/smiley/images/envelope.gif | Bin 0 -> 506 bytes .../ckeditor/plugins/smiley/images/envelope.png | Bin 0 -> 760 bytes .../ckeditor/plugins/smiley/images/heart.gif | Bin 0 -> 692 bytes .../ckeditor/plugins/smiley/images/heart.png | Bin 0 -> 999 bytes .../ckeditor/plugins/smiley/images/kiss.gif | Bin 0 -> 683 bytes .../ckeditor/plugins/smiley/images/kiss.png | Bin 0 -> 1003 bytes .../ckeditor/plugins/smiley/images/lightbulb.gif | Bin 0 -> 660 bytes .../ckeditor/plugins/smiley/images/lightbulb.png | Bin 0 -> 919 bytes .../ckeditor/plugins/smiley/images/omg_smile.gif | Bin 0 -> 820 bytes .../ckeditor/plugins/smiley/images/omg_smile.png | Bin 0 -> 1122 bytes .../plugins/smiley/images/regular_smile.gif | Bin 0 -> 1209 bytes .../plugins/smiley/images/regular_smile.png | Bin 0 -> 1084 bytes .../ckeditor/plugins/smiley/images/sad_smile.gif | Bin 0 -> 782 bytes .../ckeditor/plugins/smiley/images/sad_smile.png | Bin 0 -> 1115 bytes .../plugins/smiley/images/shades_smile.gif | Bin 0 -> 1231 bytes .../plugins/smiley/images/shades_smile.png | Bin 0 -> 1204 bytes .../ckeditor/plugins/smiley/images/teeth_smile.gif | Bin 0 -> 1201 bytes .../ckeditor/plugins/smiley/images/teeth_smile.png | Bin 0 -> 1183 bytes .../ckeditor/plugins/smiley/images/thumbs_down.gif | Bin 0 -> 715 bytes .../ckeditor/plugins/smiley/images/thumbs_down.png | Bin 0 -> 985 bytes .../ckeditor/plugins/smiley/images/thumbs_up.gif | Bin 0 -> 714 bytes .../ckeditor/plugins/smiley/images/thumbs_up.png | Bin 0 -> 959 bytes .../plugins/smiley/images/tongue_smile.gif | Bin 0 -> 1210 bytes .../plugins/smiley/images/tongue_smile.png | Bin 0 -> 1132 bytes .../plugins/smiley/images/tounge_smile.gif | Bin 0 -> 1210 bytes .../smiley/images/whatchutalkingabout_smile.gif | Bin 0 -> 775 bytes .../smiley/images/whatchutalkingabout_smile.png | Bin 0 -> 1039 bytes .../ckeditor/plugins/smiley/images/wink_smile.gif | Bin 0 -> 1202 bytes .../ckeditor/plugins/smiley/images/wink_smile.png | Bin 0 -> 1114 bytes .../plugins/ckeditor/plugins/smiley/lang/af.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/ar.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/bg.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/bn.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/bs.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/ca.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/cs.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/cy.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/da.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/de.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/el.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/en-au.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/en-ca.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/en.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/eo.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/es.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/et.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/eu.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/fa.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/fi.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/fo.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/fr.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/gl.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/gu.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/he.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/hi.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/hr.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/hu.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/id.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/is.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/it.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/ja.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/ka.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/km.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/ko.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/ku.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/lt.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/lv.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/mk.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/mn.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/ms.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/nb.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/nl.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/no.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/pl.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/pt.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/ro.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/ru.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/si.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/sk.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/sl.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/sq.js | 1 + .../ckeditor/plugins/smiley/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/sr.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/sv.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/th.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/tr.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/tt.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/ug.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/uk.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/vi.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/smiley/lang/zh.js | 1 + .../plugins/ckeditor/plugins/smiley/plugin.js | 7 + .../plugins/sourcedialog/dialogs/sourcedialog.js | 6 + .../sourcedialog/icons/hidpi/sourcedialog-rtl.png | Bin 0 -> 1968 bytes .../sourcedialog/icons/hidpi/sourcedialog.png | Bin 0 -> 1999 bytes .../sourcedialog/icons/sourcedialog-rtl.png | Bin 0 -> 762 bytes .../plugins/sourcedialog/icons/sourcedialog.png | Bin 0 -> 764 bytes .../ckeditor/plugins/sourcedialog/lang/af.js | 1 + .../ckeditor/plugins/sourcedialog/lang/ar.js | 1 + .../ckeditor/plugins/sourcedialog/lang/bg.js | 1 + .../ckeditor/plugins/sourcedialog/lang/bn.js | 1 + .../ckeditor/plugins/sourcedialog/lang/bs.js | 1 + .../ckeditor/plugins/sourcedialog/lang/ca.js | 1 + .../ckeditor/plugins/sourcedialog/lang/cs.js | 1 + .../ckeditor/plugins/sourcedialog/lang/cy.js | 1 + .../ckeditor/plugins/sourcedialog/lang/da.js | 1 + .../ckeditor/plugins/sourcedialog/lang/de-ch.js | 1 + .../ckeditor/plugins/sourcedialog/lang/de.js | 1 + .../ckeditor/plugins/sourcedialog/lang/el.js | 1 + .../ckeditor/plugins/sourcedialog/lang/en-au.js | 1 + .../ckeditor/plugins/sourcedialog/lang/en-ca.js | 1 + .../ckeditor/plugins/sourcedialog/lang/en-gb.js | 1 + .../ckeditor/plugins/sourcedialog/lang/en.js | 1 + .../ckeditor/plugins/sourcedialog/lang/eo.js | 1 + .../ckeditor/plugins/sourcedialog/lang/es.js | 1 + .../ckeditor/plugins/sourcedialog/lang/et.js | 1 + .../ckeditor/plugins/sourcedialog/lang/eu.js | 1 + .../ckeditor/plugins/sourcedialog/lang/fa.js | 1 + .../ckeditor/plugins/sourcedialog/lang/fi.js | 1 + .../ckeditor/plugins/sourcedialog/lang/fo.js | 1 + .../ckeditor/plugins/sourcedialog/lang/fr-ca.js | 1 + .../ckeditor/plugins/sourcedialog/lang/fr.js | 1 + .../ckeditor/plugins/sourcedialog/lang/gl.js | 1 + .../ckeditor/plugins/sourcedialog/lang/gu.js | 1 + .../ckeditor/plugins/sourcedialog/lang/he.js | 1 + .../ckeditor/plugins/sourcedialog/lang/hi.js | 1 + .../ckeditor/plugins/sourcedialog/lang/hr.js | 1 + .../ckeditor/plugins/sourcedialog/lang/hu.js | 1 + .../ckeditor/plugins/sourcedialog/lang/id.js | 1 + .../ckeditor/plugins/sourcedialog/lang/is.js | 1 + .../ckeditor/plugins/sourcedialog/lang/it.js | 1 + .../ckeditor/plugins/sourcedialog/lang/ja.js | 1 + .../ckeditor/plugins/sourcedialog/lang/ka.js | 1 + .../ckeditor/plugins/sourcedialog/lang/km.js | 1 + .../ckeditor/plugins/sourcedialog/lang/ko.js | 1 + .../ckeditor/plugins/sourcedialog/lang/ku.js | 1 + .../ckeditor/plugins/sourcedialog/lang/lt.js | 1 + .../ckeditor/plugins/sourcedialog/lang/lv.js | 1 + .../ckeditor/plugins/sourcedialog/lang/mn.js | 1 + .../ckeditor/plugins/sourcedialog/lang/ms.js | 1 + .../ckeditor/plugins/sourcedialog/lang/nb.js | 1 + .../ckeditor/plugins/sourcedialog/lang/nl.js | 1 + .../ckeditor/plugins/sourcedialog/lang/no.js | 1 + .../ckeditor/plugins/sourcedialog/lang/pl.js | 1 + .../ckeditor/plugins/sourcedialog/lang/pt-br.js | 1 + .../ckeditor/plugins/sourcedialog/lang/pt.js | 1 + .../ckeditor/plugins/sourcedialog/lang/ro.js | 1 + .../ckeditor/plugins/sourcedialog/lang/ru.js | 1 + .../ckeditor/plugins/sourcedialog/lang/si.js | 1 + .../ckeditor/plugins/sourcedialog/lang/sk.js | 1 + .../ckeditor/plugins/sourcedialog/lang/sl.js | 1 + .../ckeditor/plugins/sourcedialog/lang/sq.js | 1 + .../ckeditor/plugins/sourcedialog/lang/sr-latn.js | 1 + .../ckeditor/plugins/sourcedialog/lang/sr.js | 1 + .../ckeditor/plugins/sourcedialog/lang/sv.js | 1 + .../ckeditor/plugins/sourcedialog/lang/th.js | 1 + .../ckeditor/plugins/sourcedialog/lang/tr.js | 1 + .../ckeditor/plugins/sourcedialog/lang/tt.js | 1 + .../ckeditor/plugins/sourcedialog/lang/ug.js | 1 + .../ckeditor/plugins/sourcedialog/lang/uk.js | 1 + .../ckeditor/plugins/sourcedialog/lang/vi.js | 1 + .../ckeditor/plugins/sourcedialog/lang/zh-cn.js | 1 + .../ckeditor/plugins/sourcedialog/lang/zh.js | 1 + .../ckeditor/plugins/sourcedialog/plugin.js | 6 + .../dialogs/lang/_translationstatus.txt | 20 + .../plugins/specialchar/dialogs/lang/af.js | 13 + .../plugins/specialchar/dialogs/lang/ar.js | 13 + .../plugins/specialchar/dialogs/lang/bg.js | 13 + .../plugins/specialchar/dialogs/lang/ca.js | 14 + .../plugins/specialchar/dialogs/lang/cs.js | 13 + .../plugins/specialchar/dialogs/lang/cy.js | 14 + .../plugins/specialchar/dialogs/lang/da.js | 11 + .../plugins/specialchar/dialogs/lang/de-ch.js | 13 + .../plugins/specialchar/dialogs/lang/de.js | 13 + .../plugins/specialchar/dialogs/lang/el.js | 13 + .../plugins/specialchar/dialogs/lang/en-gb.js | 13 + .../plugins/specialchar/dialogs/lang/en.js | 13 + .../plugins/specialchar/dialogs/lang/eo.js | 12 + .../plugins/specialchar/dialogs/lang/es.js | 13 + .../plugins/specialchar/dialogs/lang/et.js | 13 + .../plugins/specialchar/dialogs/lang/eu.js | 13 + .../plugins/specialchar/dialogs/lang/fa.js | 12 + .../plugins/specialchar/dialogs/lang/fi.js | 13 + .../plugins/specialchar/dialogs/lang/fr-ca.js | 10 + .../plugins/specialchar/dialogs/lang/fr.js | 11 + .../plugins/specialchar/dialogs/lang/gl.js | 13 + .../plugins/specialchar/dialogs/lang/he.js | 12 + .../plugins/specialchar/dialogs/lang/hr.js | 13 + .../plugins/specialchar/dialogs/lang/hu.js | 12 + .../plugins/specialchar/dialogs/lang/id.js | 13 + .../plugins/specialchar/dialogs/lang/it.js | 14 + .../plugins/specialchar/dialogs/lang/ja.js | 9 + .../plugins/specialchar/dialogs/lang/km.js | 13 + .../plugins/specialchar/dialogs/lang/ko.js | 10 + .../plugins/specialchar/dialogs/lang/ku.js | 13 + .../plugins/specialchar/dialogs/lang/lt.js | 13 + .../plugins/specialchar/dialogs/lang/lv.js | 13 + .../plugins/specialchar/dialogs/lang/nb.js | 11 + .../plugins/specialchar/dialogs/lang/nl.js | 13 + .../plugins/specialchar/dialogs/lang/no.js | 11 + .../plugins/specialchar/dialogs/lang/pl.js | 12 + .../plugins/specialchar/dialogs/lang/pt-br.js | 11 + .../plugins/specialchar/dialogs/lang/pt.js | 13 + .../plugins/specialchar/dialogs/lang/ru.js | 13 + .../plugins/specialchar/dialogs/lang/si.js | 13 + .../plugins/specialchar/dialogs/lang/sk.js | 13 + .../plugins/specialchar/dialogs/lang/sl.js | 12 + .../plugins/specialchar/dialogs/lang/sq.js | 13 + .../plugins/specialchar/dialogs/lang/sv.js | 11 + .../plugins/specialchar/dialogs/lang/th.js | 13 + .../plugins/specialchar/dialogs/lang/tr.js | 12 + .../plugins/specialchar/dialogs/lang/tt.js | 13 + .../plugins/specialchar/dialogs/lang/ug.js | 13 + .../plugins/specialchar/dialogs/lang/uk.js | 12 + .../plugins/specialchar/dialogs/lang/vi.js | 14 + .../plugins/specialchar/dialogs/lang/zh-cn.js | 9 + .../plugins/specialchar/dialogs/lang/zh.js | 9 + .../plugins/specialchar/dialogs/specialchar.js | 14 + .../ckeditor/plugins/stylesheetparser/plugin.js | 7 + .../ckeditor/plugins/table/dialogs/table.js | 21 + .../plugins/ckeditor/plugins/tableresize/plugin.js | 13 + .../plugins/tabletools/dialogs/tableCell.js | 17 + .../plugins/templates/dialogs/templates.css | 84 + .../plugins/templates/dialogs/templates.js | 10 + .../templates/icons/hidpi/templates-rtl.png | Bin 0 -> 1387 bytes .../plugins/templates/icons/hidpi/templates.png | Bin 0 -> 1387 bytes .../plugins/templates/icons/templates-rtl.png | Bin 0 -> 639 bytes .../ckeditor/plugins/templates/icons/templates.png | Bin 0 -> 639 bytes .../plugins/ckeditor/plugins/templates/lang/af.js | 1 + .../plugins/ckeditor/plugins/templates/lang/ar.js | 1 + .../plugins/ckeditor/plugins/templates/lang/bg.js | 1 + .../plugins/ckeditor/plugins/templates/lang/bn.js | 1 + .../plugins/ckeditor/plugins/templates/lang/bs.js | 1 + .../plugins/ckeditor/plugins/templates/lang/ca.js | 1 + .../plugins/ckeditor/plugins/templates/lang/cs.js | 1 + .../plugins/ckeditor/plugins/templates/lang/cy.js | 1 + .../plugins/ckeditor/plugins/templates/lang/da.js | 1 + .../ckeditor/plugins/templates/lang/de-ch.js | 1 + .../plugins/ckeditor/plugins/templates/lang/de.js | 1 + .../plugins/ckeditor/plugins/templates/lang/el.js | 1 + .../ckeditor/plugins/templates/lang/en-au.js | 1 + .../ckeditor/plugins/templates/lang/en-ca.js | 1 + .../ckeditor/plugins/templates/lang/en-gb.js | 1 + .../plugins/ckeditor/plugins/templates/lang/en.js | 1 + .../plugins/ckeditor/plugins/templates/lang/eo.js | 1 + .../plugins/ckeditor/plugins/templates/lang/es.js | 1 + .../plugins/ckeditor/plugins/templates/lang/et.js | 1 + .../plugins/ckeditor/plugins/templates/lang/eu.js | 1 + .../plugins/ckeditor/plugins/templates/lang/fa.js | 1 + .../plugins/ckeditor/plugins/templates/lang/fi.js | 1 + .../plugins/ckeditor/plugins/templates/lang/fo.js | 1 + .../ckeditor/plugins/templates/lang/fr-ca.js | 1 + .../plugins/ckeditor/plugins/templates/lang/fr.js | 1 + .../plugins/ckeditor/plugins/templates/lang/gl.js | 1 + .../plugins/ckeditor/plugins/templates/lang/gu.js | 1 + .../plugins/ckeditor/plugins/templates/lang/he.js | 1 + .../plugins/ckeditor/plugins/templates/lang/hi.js | 1 + .../plugins/ckeditor/plugins/templates/lang/hr.js | 1 + .../plugins/ckeditor/plugins/templates/lang/hu.js | 1 + .../plugins/ckeditor/plugins/templates/lang/id.js | 1 + .../plugins/ckeditor/plugins/templates/lang/is.js | 1 + .../plugins/ckeditor/plugins/templates/lang/it.js | 1 + .../plugins/ckeditor/plugins/templates/lang/ja.js | 1 + .../plugins/ckeditor/plugins/templates/lang/ka.js | 1 + .../plugins/ckeditor/plugins/templates/lang/km.js | 1 + .../plugins/ckeditor/plugins/templates/lang/ko.js | 1 + .../plugins/ckeditor/plugins/templates/lang/ku.js | 1 + .../plugins/ckeditor/plugins/templates/lang/lt.js | 1 + .../plugins/ckeditor/plugins/templates/lang/lv.js | 1 + .../plugins/ckeditor/plugins/templates/lang/mk.js | 1 + .../plugins/ckeditor/plugins/templates/lang/mn.js | 1 + .../plugins/ckeditor/plugins/templates/lang/ms.js | 1 + .../plugins/ckeditor/plugins/templates/lang/nb.js | 1 + .../plugins/ckeditor/plugins/templates/lang/nl.js | 1 + .../plugins/ckeditor/plugins/templates/lang/no.js | 1 + .../plugins/ckeditor/plugins/templates/lang/pl.js | 1 + .../ckeditor/plugins/templates/lang/pt-br.js | 1 + .../plugins/ckeditor/plugins/templates/lang/pt.js | 1 + .../plugins/ckeditor/plugins/templates/lang/ro.js | 1 + .../plugins/ckeditor/plugins/templates/lang/ru.js | 1 + .../plugins/ckeditor/plugins/templates/lang/si.js | 1 + .../plugins/ckeditor/plugins/templates/lang/sk.js | 1 + .../plugins/ckeditor/plugins/templates/lang/sl.js | 1 + .../plugins/ckeditor/plugins/templates/lang/sq.js | 1 + .../ckeditor/plugins/templates/lang/sr-latn.js | 1 + .../plugins/ckeditor/plugins/templates/lang/sr.js | 1 + .../plugins/ckeditor/plugins/templates/lang/sv.js | 1 + .../plugins/ckeditor/plugins/templates/lang/th.js | 1 + .../plugins/ckeditor/plugins/templates/lang/tr.js | 1 + .../plugins/ckeditor/plugins/templates/lang/tt.js | 1 + .../plugins/ckeditor/plugins/templates/lang/ug.js | 1 + .../plugins/ckeditor/plugins/templates/lang/uk.js | 1 + .../plugins/ckeditor/plugins/templates/lang/vi.js | 1 + .../ckeditor/plugins/templates/lang/zh-cn.js | 1 + .../plugins/ckeditor/plugins/templates/lang/zh.js | 1 + .../plugins/ckeditor/plugins/templates/plugin.js | 7 + .../plugins/templates/templates/default.js | 7 + .../templates/templates/images/template1.gif | Bin 0 -> 375 bytes .../templates/templates/images/template2.gif | Bin 0 -> 333 bytes .../templates/templates/images/template3.gif | Bin 0 -> 422 bytes .../ckeditor/plugins/uicolor/dialogs/uicolor.js | 9 + .../plugins/uicolor/icons/hidpi/uicolor.png | Bin 0 -> 2287 bytes .../ckeditor/plugins/uicolor/icons/uicolor.png | Bin 0 -> 965 bytes .../plugins/uicolor/lang/_translationstatus.txt | 27 + .../plugins/ckeditor/plugins/uicolor/lang/af.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/ar.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/bg.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/ca.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/cs.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/cy.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/da.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/de-ch.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/de.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/el.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/en-gb.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/en.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/eo.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/es.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/et.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/eu.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/fa.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/fi.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/fr-ca.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/fr.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/gl.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/he.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/hr.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/hu.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/id.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/it.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/ja.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/km.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/ko.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/ku.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/lv.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/mk.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/nb.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/nl.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/no.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/pl.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/pt-br.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/pt.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/ru.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/si.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/sk.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/sl.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/sq.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/sv.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/tr.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/tt.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/ug.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/uk.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/vi.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/zh-cn.js | 5 + .../plugins/ckeditor/plugins/uicolor/lang/zh.js | 5 + .../plugins/ckeditor/plugins/uicolor/plugin.js | 6 + .../ckeditor/plugins/uicolor/yui/assets/hue_bg.png | Bin 0 -> 1120 bytes .../plugins/uicolor/yui/assets/hue_thumb.png | Bin 0 -> 195 bytes .../plugins/uicolor/yui/assets/picker_mask.png | Bin 0 -> 12174 bytes .../plugins/uicolor/yui/assets/picker_thumb.png | Bin 0 -> 192 bytes .../ckeditor/plugins/uicolor/yui/assets/yui.css | 7 + .../plugins/ckeditor/plugins/uicolor/yui/yui.js | 223 + .../plugins/ckeditor/plugins/uploadimage/plugin.js | 7 + .../ckeditor/plugins/uploadwidget/lang/cs.js | 5 + .../ckeditor/plugins/uploadwidget/lang/da.js | 5 + .../ckeditor/plugins/uploadwidget/lang/de-ch.js | 5 + .../ckeditor/plugins/uploadwidget/lang/de.js | 5 + .../ckeditor/plugins/uploadwidget/lang/el.js | 5 + .../ckeditor/plugins/uploadwidget/lang/en.js | 5 + .../ckeditor/plugins/uploadwidget/lang/eo.js | 5 + .../ckeditor/plugins/uploadwidget/lang/eu.js | 5 + .../ckeditor/plugins/uploadwidget/lang/fr.js | 5 + .../ckeditor/plugins/uploadwidget/lang/gl.js | 5 + .../ckeditor/plugins/uploadwidget/lang/hu.js | 5 + .../ckeditor/plugins/uploadwidget/lang/id.js | 5 + .../ckeditor/plugins/uploadwidget/lang/it.js | 5 + .../ckeditor/plugins/uploadwidget/lang/ko.js | 5 + .../ckeditor/plugins/uploadwidget/lang/ku.js | 5 + .../ckeditor/plugins/uploadwidget/lang/nb.js | 5 + .../ckeditor/plugins/uploadwidget/lang/nl.js | 5 + .../ckeditor/plugins/uploadwidget/lang/pl.js | 5 + .../ckeditor/plugins/uploadwidget/lang/pt-br.js | 5 + .../ckeditor/plugins/uploadwidget/lang/ru.js | 5 + .../ckeditor/plugins/uploadwidget/lang/sv.js | 5 + .../ckeditor/plugins/uploadwidget/lang/tr.js | 5 + .../ckeditor/plugins/uploadwidget/lang/ug.js | 5 + .../ckeditor/plugins/uploadwidget/lang/uk.js | 5 + .../ckeditor/plugins/uploadwidget/lang/zh-cn.js | 5 + .../ckeditor/plugins/uploadwidget/lang/zh.js | 5 + .../ckeditor/plugins/uploadwidget/plugin.js | 10 + .../ckeditor/plugins/widget/images/handle.png | Bin 0 -> 220 bytes .../plugins/ckeditor/plugins/widget/lang/af.js | 5 + .../plugins/ckeditor/plugins/widget/lang/ar.js | 5 + .../plugins/ckeditor/plugins/widget/lang/bg.js | 5 + .../plugins/ckeditor/plugins/widget/lang/ca.js | 5 + .../plugins/ckeditor/plugins/widget/lang/cs.js | 5 + .../plugins/ckeditor/plugins/widget/lang/cy.js | 5 + .../plugins/ckeditor/plugins/widget/lang/da.js | 5 + .../plugins/ckeditor/plugins/widget/lang/de-ch.js | 5 + .../plugins/ckeditor/plugins/widget/lang/de.js | 5 + .../plugins/ckeditor/plugins/widget/lang/el.js | 5 + .../plugins/ckeditor/plugins/widget/lang/en-gb.js | 5 + .../plugins/ckeditor/plugins/widget/lang/en.js | 5 + .../plugins/ckeditor/plugins/widget/lang/eo.js | 5 + .../plugins/ckeditor/plugins/widget/lang/es.js | 5 + .../plugins/ckeditor/plugins/widget/lang/eu.js | 5 + .../plugins/ckeditor/plugins/widget/lang/fa.js | 5 + .../plugins/ckeditor/plugins/widget/lang/fi.js | 5 + .../plugins/ckeditor/plugins/widget/lang/fr.js | 5 + .../plugins/ckeditor/plugins/widget/lang/gl.js | 5 + .../plugins/ckeditor/plugins/widget/lang/he.js | 5 + .../plugins/ckeditor/plugins/widget/lang/hr.js | 5 + .../plugins/ckeditor/plugins/widget/lang/hu.js | 5 + .../plugins/ckeditor/plugins/widget/lang/id.js | 5 + .../plugins/ckeditor/plugins/widget/lang/it.js | 5 + .../plugins/ckeditor/plugins/widget/lang/ja.js | 5 + .../plugins/ckeditor/plugins/widget/lang/km.js | 5 + .../plugins/ckeditor/plugins/widget/lang/ko.js | 5 + .../plugins/ckeditor/plugins/widget/lang/ku.js | 5 + .../plugins/ckeditor/plugins/widget/lang/lv.js | 5 + .../plugins/ckeditor/plugins/widget/lang/nb.js | 5 + .../plugins/ckeditor/plugins/widget/lang/nl.js | 5 + .../plugins/ckeditor/plugins/widget/lang/no.js | 5 + .../plugins/ckeditor/plugins/widget/lang/pl.js | 5 + .../plugins/ckeditor/plugins/widget/lang/pt-br.js | 5 + .../plugins/ckeditor/plugins/widget/lang/pt.js | 5 + .../plugins/ckeditor/plugins/widget/lang/ru.js | 5 + .../plugins/ckeditor/plugins/widget/lang/sk.js | 5 + .../plugins/ckeditor/plugins/widget/lang/sl.js | 5 + .../plugins/ckeditor/plugins/widget/lang/sq.js | 5 + .../plugins/ckeditor/plugins/widget/lang/sv.js | 5 + .../plugins/ckeditor/plugins/widget/lang/tr.js | 5 + .../plugins/ckeditor/plugins/widget/lang/tt.js | 5 + .../plugins/ckeditor/plugins/widget/lang/ug.js | 5 + .../plugins/ckeditor/plugins/widget/lang/uk.js | 5 + .../plugins/ckeditor/plugins/widget/lang/vi.js | 5 + .../plugins/ckeditor/plugins/widget/lang/zh-cn.js | 5 + .../plugins/ckeditor/plugins/widget/lang/zh.js | 5 + .../plugins/ckeditor/plugins/widget/plugin.js | 60 + .../assets/plugins/ckeditor/plugins/wsc/LICENSE.md | 28 + .../ckeditor/plugins/wsc/dialogs/ciframe.html | 66 + .../ckeditor/plugins/wsc/dialogs/tmpFrameset.html | 52 + .../plugins/ckeditor/plugins/wsc/dialogs/wsc.css | 82 + .../plugins/ckeditor/plugins/wsc/dialogs/wsc.js | 92 + .../plugins/ckeditor/plugins/wsc/dialogs/wsc_ie.js | 11 + .../assets/plugins/ckeditor/plugins/xml/plugin.js | 7 + .../plugins/ckeditor/samples/css/samples.css | 1640 + .../plugins/ckeditor/samples/img/github-top.png | Bin 0 -> 383 bytes .../plugins/ckeditor/samples/img/header-bg.png | Bin 0 -> 13086 bytes .../ckeditor/samples/img/header-separator.png | Bin 0 -> 123 bytes .../assets/plugins/ckeditor/samples/img/logo.png | Bin 0 -> 5891 bytes .../ckeditor/samples/img/navigation-tip.png | Bin 0 -> 12029 bytes public/assets/plugins/ckeditor/samples/index.html | 128 + .../assets/plugins/ckeditor/samples/js/sample.js | 53 + public/assets/plugins/ckeditor/samples/js/sf.js | 17 + .../assets/plugins/ckeditor/samples/old/ajax.html | 85 + .../assets/plugins/ckeditor/samples/old/api.html | 210 + .../plugins/ckeditor/samples/old/appendto.html | 59 + .../ckeditor/samples/old/assets/inlineall/logo.png | Bin 0 -> 4283 bytes .../samples/old/assets/outputxhtml/outputxhtml.css | 204 + .../ckeditor/samples/old/assets/posteddata.php | 59 + .../plugins/ckeditor/samples/old/assets/sample.jpg | Bin 0 -> 14449 bytes .../samples/old/assets/uilanguages/languages.js | 7 + .../ckeditor/samples/old/autogrow/autogrow.html | 102 + .../ckeditor/samples/old/bbcode/bbcode.html | 114 + .../samples/old/codesnippet/codesnippet.html | 236 + .../ckeditor/samples/old/datafiltering.html | 508 + .../ckeditor/samples/old/devtools/devtools.html | 86 + .../samples/old/dialog/assets/my_dialog.js | 48 + .../ckeditor/samples/old/dialog/dialog.html | 190 + .../ckeditor/samples/old/divarea/divarea.html | 64 + .../plugins/ckeditor/samples/old/divreplace.html | 144 + .../ckeditor/samples/old/docprops/docprops.html | 81 + .../ckeditor/samples/old/enterkey/enterkey.html | 106 + .../assets/outputforflash/outputforflash.fla | Bin 0 -> 85504 bytes .../assets/outputforflash/outputforflash.swf | Bin 0 -> 15571 bytes .../htmlwriter/assets/outputforflash/swfobject.js | 19 + .../samples/old/htmlwriter/outputforflash.html | 283 + .../samples/old/htmlwriter/outputhtml.html | 224 + .../ckeditor/samples/old/image2/assets/image1.jpg | Bin 0 -> 33171 bytes .../ckeditor/samples/old/image2/assets/image2.jpg | Bin 0 -> 26238 bytes .../ckeditor/samples/old/image2/image2.html | 68 + .../assets/plugins/ckeditor/samples/old/index.html | 173 + .../plugins/ckeditor/samples/old/inlineall.html | 314 + .../plugins/ckeditor/samples/old/inlinebycode.html | 124 + .../ckeditor/samples/old/inlinetextarea.html | 113 + .../plugins/ckeditor/samples/old/jquery.html | 103 + .../ckeditor/samples/old/magicline/magicline.html | 209 + .../ckeditor/samples/old/mathjax/mathjax.html | 38 + .../samples/old/placeholder/placeholder.html | 75 + .../plugins/ckeditor/samples/old/readonly.html | 76 + .../ckeditor/samples/old/replacebyclass.html | 60 + .../ckeditor/samples/old/replacebycode.html | 59 + .../assets/plugins/ckeditor/samples/old/sample.css | 357 + .../assets/plugins/ckeditor/samples/old/sample.js | 50 + .../ckeditor/samples/old/sample_posteddata.php | 16 + .../samples/old/sharedspace/sharedspace.html | 122 + .../samples/old/sourcedialog/sourcedialog.html | 121 + .../samples/old/stylesheetparser/assets/sample.css | 70 + .../old/stylesheetparser/stylesheetparser.html | 85 + .../plugins/ckeditor/samples/old/tabindex.html | 78 + .../samples/old/tableresize/tableresize.html | 107 + .../ckeditor/samples/old/toolbar/toolbar.html | 235 + .../plugins/ckeditor/samples/old/uicolor.html | 72 + .../ckeditor/samples/old/uicolor/uicolor.html | 106 + .../plugins/ckeditor/samples/old/uilanguages.html | 122 + .../ckeditor/samples/old/wysiwygarea/fullpage.html | 80 + .../plugins/ckeditor/samples/old/xhtmlstyle.html | 234 + .../samples/toolbarconfigurator/css/fontello.css | 55 + .../samples/toolbarconfigurator/font/LICENSE.txt | 10 + .../samples/toolbarconfigurator/font/config.json | 28 + .../samples/toolbarconfigurator/font/fontello.eot | Bin 0 -> 4988 bytes .../samples/toolbarconfigurator/font/fontello.svg | 14 + .../samples/toolbarconfigurator/font/fontello.ttf | Bin 0 -> 4820 bytes .../samples/toolbarconfigurator/font/fontello.woff | Bin 0 -> 2904 bytes .../samples/toolbarconfigurator/index.html | 446 + .../js/abstracttoolbarmodifier.js | 13 + .../toolbarconfigurator/js/fulltoolbareditor.js | 9 + .../toolbarconfigurator/js/toolbarmodifier.js | 33 + .../toolbarconfigurator/js/toolbartextmodifier.js | 14 + .../assets/plugins/ckeditor/skins/kama/dialog.css | 5 + .../plugins/ckeditor/skins/kama/dialog_ie.css | 5 + .../plugins/ckeditor/skins/kama/dialog_ie7.css | 5 + .../plugins/ckeditor/skins/kama/dialog_ie8.css | 5 + .../ckeditor/skins/kama/dialog_iequirks.css | 5 + .../assets/plugins/ckeditor/skins/kama/editor.css | 5 + .../plugins/ckeditor/skins/kama/editor_ie.css | 5 + .../plugins/ckeditor/skins/kama/editor_ie7.css | 5 + .../plugins/ckeditor/skins/kama/editor_ie8.css | 5 + .../ckeditor/skins/kama/editor_iequirks.css | 5 + .../assets/plugins/ckeditor/skins/kama/icons.png | Bin 0 -> 9855 bytes .../plugins/ckeditor/skins/kama/icons_hidpi.png | Bin 0 -> 16078 bytes .../ckeditor/skins/kama/images/dialog_sides.gif | Bin 0 -> 47 bytes .../ckeditor/skins/kama/images/dialog_sides.png | Bin 0 -> 125 bytes .../skins/kama/images/dialog_sides_rtl.png | Bin 0 -> 128 bytes .../plugins/ckeditor/skins/kama/images/mini.gif | Bin 0 -> 181 bytes .../plugins/ckeditor/skins/kama/images/spinner.gif | Bin 0 -> 2984 bytes .../plugins/ckeditor/skins/kama/images/sprites.png | Bin 0 -> 6117 bytes .../ckeditor/skins/kama/images/sprites_ie6.png | Bin 0 -> 2658 bytes .../ckeditor/skins/kama/images/toolbar_start.gif | Bin 0 -> 102 bytes .../assets/plugins/ckeditor/skins/kama/readme.md | 38 + public/assets/plugins/ckeditor/skins/kama/skin.js | 8 + .../assets/plugins/ckeditor/skins/moono/dialog.css | 5 + .../plugins/ckeditor/skins/moono/dialog_ie.css | 5 + .../plugins/ckeditor/skins/moono/dialog_ie7.css | 5 + .../plugins/ckeditor/skins/moono/dialog_ie8.css | 5 + .../ckeditor/skins/moono/dialog_iequirks.css | 5 + .../assets/plugins/ckeditor/skins/moono/editor.css | 5 + .../plugins/ckeditor/skins/moono/editor_gecko.css | 5 + .../plugins/ckeditor/skins/moono/editor_ie.css | 5 + .../plugins/ckeditor/skins/moono/editor_ie7.css | 5 + .../plugins/ckeditor/skins/moono/editor_ie8.css | 5 + .../ckeditor/skins/moono/editor_iequirks.css | 5 + .../assets/plugins/ckeditor/skins/moono/icons.png | Bin 0 -> 18319 bytes .../plugins/ckeditor/skins/moono/icons_hidpi.png | Bin 0 -> 63530 bytes .../plugins/ckeditor/skins/moono/images/arrow.png | Bin 0 -> 191 bytes .../plugins/ckeditor/skins/moono/images/close.png | Bin 0 -> 468 bytes .../ckeditor/skins/moono/images/hidpi/close.png | Bin 0 -> 1271 bytes .../skins/moono/images/hidpi/lock-open.png | Bin 0 -> 1329 bytes .../ckeditor/skins/moono/images/hidpi/lock.png | Bin 0 -> 1299 bytes .../ckeditor/skins/moono/images/hidpi/refresh.png | Bin 0 -> 1842 bytes .../ckeditor/skins/moono/images/lock-open.png | Bin 0 -> 349 bytes .../plugins/ckeditor/skins/moono/images/lock.png | Bin 0 -> 475 bytes .../ckeditor/skins/moono/images/refresh.png | Bin 0 -> 422 bytes .../ckeditor/skins/moono/images/spinner.gif | Bin 0 -> 2984 bytes .../assets/plugins/ckeditor/skins/moono/readme.md | 49 + public/assets/plugins/ckeditor/styles.js | 111 + public/assets/plugins/jscripty/js/Actions.js | 2 +- public/assets/plugins/jscripty/js/Dialogs.js | 2 +- public/assets/plugins/jscripty/js/Editor.js | 2 +- public/assets/plugins/jscripty/js/EditorUi.js | 2 +- public/assets/plugins/jscripty/js/Graph.js | 2 +- public/assets/plugins/jscripty/js/Menus.js | 2 +- public/assets/plugins/jscripty/js/Shapes.js | 2 +- public/assets/plugins/jscripty/js/Sidebar.js | 2 +- public/assets/plugins/jscripty/js/Toolbar.js | 2 +- public/assets/plugins/jscripty/js/custom.js | 2 +- public/assets/plugins/mxgraph/js/mxClient.js | 2 +- public/assets/plugins/square/js/Actions.js | 2 +- public/assets/plugins/square/js/Dialogs.js | 2 +- public/assets/plugins/square/js/Editor.js | 2 +- public/assets/plugins/square/js/EditorUi.js | 2 +- public/assets/plugins/square/js/Graph.js | 2 +- public/assets/plugins/square/js/Menus.js | 2 +- public/assets/plugins/square/js/Shapes.js | 2 +- public/assets/plugins/square/js/Sidebar.js | 2 +- public/assets/plugins/square/js/Toolbar.js | 2 +- public/assets/plugins/square/js/custom.js | 2 +- public/bower_components/ckeditor/.bower.json | 29 - public/bower_components/ckeditor/CHANGES.md | 1080 - public/bower_components/ckeditor/LICENSE.md | 1420 - public/bower_components/ckeditor/README.md | 82 - .../bower_components/ckeditor/adapters/jquery.js | 10 - public/bower_components/ckeditor/bower.json | 10 - public/bower_components/ckeditor/composer.json | 20 - public/bower_components/ckeditor/config.js | 38 - public/bower_components/ckeditor/contents.css | 135 - .../ckeditor/lang/_translationstatus.txt | 63 - public/bower_components/ckeditor/lang/af.js | 5 - public/bower_components/ckeditor/lang/ar.js | 5 - public/bower_components/ckeditor/lang/bg.js | 5 - public/bower_components/ckeditor/lang/bn.js | 5 - public/bower_components/ckeditor/lang/bs.js | 5 - public/bower_components/ckeditor/lang/ca.js | 5 - public/bower_components/ckeditor/lang/cs.js | 5 - public/bower_components/ckeditor/lang/cy.js | 5 - public/bower_components/ckeditor/lang/da.js | 5 - public/bower_components/ckeditor/lang/de-ch.js | 5 - public/bower_components/ckeditor/lang/de.js | 5 - public/bower_components/ckeditor/lang/el.js | 5 - public/bower_components/ckeditor/lang/en-au.js | 5 - public/bower_components/ckeditor/lang/en-ca.js | 5 - public/bower_components/ckeditor/lang/en-gb.js | 5 - public/bower_components/ckeditor/lang/en.js | 5 - public/bower_components/ckeditor/lang/eo.js | 5 - public/bower_components/ckeditor/lang/es.js | 5 - public/bower_components/ckeditor/lang/et.js | 5 - public/bower_components/ckeditor/lang/eu.js | 5 - public/bower_components/ckeditor/lang/fa.js | 5 - public/bower_components/ckeditor/lang/fi.js | 5 - public/bower_components/ckeditor/lang/fo.js | 5 - public/bower_components/ckeditor/lang/fr-ca.js | 5 - public/bower_components/ckeditor/lang/fr.js | 5 - public/bower_components/ckeditor/lang/gl.js | 5 - public/bower_components/ckeditor/lang/gu.js | 5 - public/bower_components/ckeditor/lang/he.js | 5 - public/bower_components/ckeditor/lang/hi.js | 5 - public/bower_components/ckeditor/lang/hr.js | 5 - public/bower_components/ckeditor/lang/hu.js | 5 - public/bower_components/ckeditor/lang/id.js | 5 - public/bower_components/ckeditor/lang/is.js | 5 - public/bower_components/ckeditor/lang/it.js | 5 - public/bower_components/ckeditor/lang/ja.js | 5 - public/bower_components/ckeditor/lang/ka.js | 5 - public/bower_components/ckeditor/lang/km.js | 5 - public/bower_components/ckeditor/lang/ko.js | 5 - public/bower_components/ckeditor/lang/ku.js | 5 - public/bower_components/ckeditor/lang/lt.js | 5 - public/bower_components/ckeditor/lang/lv.js | 5 - public/bower_components/ckeditor/lang/mk.js | 5 - public/bower_components/ckeditor/lang/mn.js | 5 - public/bower_components/ckeditor/lang/ms.js | 5 - public/bower_components/ckeditor/lang/nb.js | 5 - public/bower_components/ckeditor/lang/nl.js | 5 - public/bower_components/ckeditor/lang/no.js | 5 - public/bower_components/ckeditor/lang/pl.js | 5 - public/bower_components/ckeditor/lang/pt-br.js | 5 - public/bower_components/ckeditor/lang/pt.js | 5 - public/bower_components/ckeditor/lang/ro.js | 5 - public/bower_components/ckeditor/lang/ru.js | 5 - public/bower_components/ckeditor/lang/si.js | 5 - public/bower_components/ckeditor/lang/sk.js | 5 - public/bower_components/ckeditor/lang/sl.js | 5 - public/bower_components/ckeditor/lang/sq.js | 5 - public/bower_components/ckeditor/lang/sr-latn.js | 5 - public/bower_components/ckeditor/lang/sr.js | 5 - public/bower_components/ckeditor/lang/sv.js | 5 - public/bower_components/ckeditor/lang/th.js | 5 - public/bower_components/ckeditor/lang/tr.js | 5 - public/bower_components/ckeditor/lang/tt.js | 5 - public/bower_components/ckeditor/lang/ug.js | 5 - public/bower_components/ckeditor/lang/uk.js | 5 - public/bower_components/ckeditor/lang/vi.js | 5 - public/bower_components/ckeditor/lang/zh-cn.js | 5 - public/bower_components/ckeditor/lang/zh.js | 5 - public/bower_components/ckeditor/package.json | 26 - .../ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js | 10 - .../a11yhelp/dialogs/lang/_translationstatus.txt | 25 - .../ckeditor/plugins/a11yhelp/dialogs/lang/af.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/ar.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/bg.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/ca.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/cs.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/cy.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/da.js | 11 - .../plugins/a11yhelp/dialogs/lang/de-ch.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/de.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/el.js | 12 - .../plugins/a11yhelp/dialogs/lang/en-gb.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/en.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/eo.js | 13 - .../ckeditor/plugins/a11yhelp/dialogs/lang/es.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/et.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/eu.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/fa.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/fi.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/fo.js | 11 - .../plugins/a11yhelp/dialogs/lang/fr-ca.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/fr.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/gl.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/gu.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/he.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/hi.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/hr.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/hu.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/id.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/it.js | 13 - .../ckeditor/plugins/a11yhelp/dialogs/lang/ja.js | 9 - .../ckeditor/plugins/a11yhelp/dialogs/lang/km.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/ko.js | 10 - .../ckeditor/plugins/a11yhelp/dialogs/lang/ku.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/lt.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/lv.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/mk.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/mn.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/nb.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/nl.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/no.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/pl.js | 13 - .../plugins/a11yhelp/dialogs/lang/pt-br.js | 13 - .../ckeditor/plugins/a11yhelp/dialogs/lang/pt.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/ro.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/ru.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/si.js | 10 - .../ckeditor/plugins/a11yhelp/dialogs/lang/sk.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/sl.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/sq.js | 11 - .../plugins/a11yhelp/dialogs/lang/sr-latn.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/sr.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/sv.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/th.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/tr.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/tt.js | 11 - .../ckeditor/plugins/a11yhelp/dialogs/lang/ug.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/uk.js | 12 - .../ckeditor/plugins/a11yhelp/dialogs/lang/vi.js | 11 - .../plugins/a11yhelp/dialogs/lang/zh-cn.js | 9 - .../ckeditor/plugins/a11yhelp/dialogs/lang/zh.js | 9 - .../ckeditor/plugins/about/dialogs/about.js | 7 - .../plugins/about/dialogs/hidpi/logo_ckeditor.png | Bin 13339 -> 0 bytes .../plugins/about/dialogs/logo_ckeditor.png | Bin 6757 -> 0 bytes .../ckeditor/plugins/adobeair/plugin.js | 9 - .../ckeditor/plugins/ajax/plugin.js | 7 - .../ckeditor/plugins/autoembed/lang/cs.js | 1 - .../ckeditor/plugins/autoembed/lang/de-ch.js | 1 - .../ckeditor/plugins/autoembed/lang/de.js | 1 - .../ckeditor/plugins/autoembed/lang/en.js | 1 - .../ckeditor/plugins/autoembed/lang/eo.js | 1 - .../ckeditor/plugins/autoembed/lang/eu.js | 1 - .../ckeditor/plugins/autoembed/lang/fr.js | 1 - .../ckeditor/plugins/autoembed/lang/it.js | 1 - .../ckeditor/plugins/autoembed/lang/ko.js | 1 - .../ckeditor/plugins/autoembed/lang/ku.js | 1 - .../ckeditor/plugins/autoembed/lang/mk.js | 1 - .../ckeditor/plugins/autoembed/lang/nb.js | 1 - .../ckeditor/plugins/autoembed/lang/pl.js | 1 - .../ckeditor/plugins/autoembed/lang/pt-br.js | 1 - .../ckeditor/plugins/autoembed/lang/ru.js | 1 - .../ckeditor/plugins/autoembed/lang/tr.js | 1 - .../ckeditor/plugins/autoembed/lang/ug.js | 1 - .../ckeditor/plugins/autoembed/lang/uk.js | 1 - .../ckeditor/plugins/autoembed/lang/zh-cn.js | 1 - .../ckeditor/plugins/autoembed/lang/zh.js | 1 - .../ckeditor/plugins/autoembed/plugin.js | 9 - .../ckeditor/plugins/autogrow/plugin.js | 8 - .../ckeditor/plugins/autolink/plugin.js | 5 - .../ckeditor/plugins/bbcode/plugin.js | 22 - .../ckeditor/plugins/bidi/icons/bidiltr.png | Bin 769 -> 0 bytes .../ckeditor/plugins/bidi/icons/bidirtl.png | Bin 768 -> 0 bytes .../ckeditor/plugins/bidi/icons/hidpi/bidiltr.png | Bin 1579 -> 0 bytes .../ckeditor/plugins/bidi/icons/hidpi/bidirtl.png | Bin 1596 -> 0 bytes .../ckeditor/plugins/bidi/lang/af.js | 1 - .../ckeditor/plugins/bidi/lang/ar.js | 1 - .../ckeditor/plugins/bidi/lang/bg.js | 1 - .../ckeditor/plugins/bidi/lang/bn.js | 1 - .../ckeditor/plugins/bidi/lang/bs.js | 1 - .../ckeditor/plugins/bidi/lang/ca.js | 1 - .../ckeditor/plugins/bidi/lang/cs.js | 1 - .../ckeditor/plugins/bidi/lang/cy.js | 1 - .../ckeditor/plugins/bidi/lang/da.js | 1 - .../ckeditor/plugins/bidi/lang/de-ch.js | 1 - .../ckeditor/plugins/bidi/lang/de.js | 1 - .../ckeditor/plugins/bidi/lang/el.js | 1 - .../ckeditor/plugins/bidi/lang/en-au.js | 1 - .../ckeditor/plugins/bidi/lang/en-ca.js | 1 - .../ckeditor/plugins/bidi/lang/en-gb.js | 1 - .../ckeditor/plugins/bidi/lang/en.js | 1 - .../ckeditor/plugins/bidi/lang/eo.js | 1 - .../ckeditor/plugins/bidi/lang/es.js | 1 - .../ckeditor/plugins/bidi/lang/et.js | 1 - .../ckeditor/plugins/bidi/lang/eu.js | 1 - .../ckeditor/plugins/bidi/lang/fa.js | 1 - .../ckeditor/plugins/bidi/lang/fi.js | 1 - .../ckeditor/plugins/bidi/lang/fo.js | 1 - .../ckeditor/plugins/bidi/lang/fr-ca.js | 1 - .../ckeditor/plugins/bidi/lang/fr.js | 1 - .../ckeditor/plugins/bidi/lang/gl.js | 1 - .../ckeditor/plugins/bidi/lang/gu.js | 1 - .../ckeditor/plugins/bidi/lang/he.js | 1 - .../ckeditor/plugins/bidi/lang/hi.js | 1 - .../ckeditor/plugins/bidi/lang/hr.js | 1 - .../ckeditor/plugins/bidi/lang/hu.js | 1 - .../ckeditor/plugins/bidi/lang/id.js | 1 - .../ckeditor/plugins/bidi/lang/is.js | 1 - .../ckeditor/plugins/bidi/lang/it.js | 1 - .../ckeditor/plugins/bidi/lang/ja.js | 1 - .../ckeditor/plugins/bidi/lang/ka.js | 1 - .../ckeditor/plugins/bidi/lang/km.js | 1 - .../ckeditor/plugins/bidi/lang/ko.js | 1 - .../ckeditor/plugins/bidi/lang/ku.js | 1 - .../ckeditor/plugins/bidi/lang/lt.js | 1 - .../ckeditor/plugins/bidi/lang/lv.js | 1 - .../ckeditor/plugins/bidi/lang/mk.js | 1 - .../ckeditor/plugins/bidi/lang/mn.js | 1 - .../ckeditor/plugins/bidi/lang/ms.js | 1 - .../ckeditor/plugins/bidi/lang/nb.js | 1 - .../ckeditor/plugins/bidi/lang/nl.js | 1 - .../ckeditor/plugins/bidi/lang/no.js | 1 - .../ckeditor/plugins/bidi/lang/pl.js | 1 - .../ckeditor/plugins/bidi/lang/pt-br.js | 1 - .../ckeditor/plugins/bidi/lang/pt.js | 1 - .../ckeditor/plugins/bidi/lang/ro.js | 1 - .../ckeditor/plugins/bidi/lang/ru.js | 1 - .../ckeditor/plugins/bidi/lang/si.js | 1 - .../ckeditor/plugins/bidi/lang/sk.js | 1 - .../ckeditor/plugins/bidi/lang/sl.js | 1 - .../ckeditor/plugins/bidi/lang/sq.js | 1 - .../ckeditor/plugins/bidi/lang/sr-latn.js | 1 - .../ckeditor/plugins/bidi/lang/sr.js | 1 - .../ckeditor/plugins/bidi/lang/sv.js | 1 - .../ckeditor/plugins/bidi/lang/th.js | 1 - .../ckeditor/plugins/bidi/lang/tr.js | 1 - .../ckeditor/plugins/bidi/lang/tt.js | 1 - .../ckeditor/plugins/bidi/lang/ug.js | 1 - .../ckeditor/plugins/bidi/lang/uk.js | 1 - .../ckeditor/plugins/bidi/lang/vi.js | 1 - .../ckeditor/plugins/bidi/lang/zh-cn.js | 1 - .../ckeditor/plugins/bidi/lang/zh.js | 1 - .../ckeditor/plugins/bidi/plugin.js | 13 - .../ckeditor/plugins/clipboard/dialogs/paste.js | 12 - .../plugins/codesnippet/dialogs/codesnippet.js | 6 - .../plugins/codesnippet/icons/codesnippet.png | Bin 597 -> 0 bytes .../codesnippet/icons/hidpi/codesnippet.png | Bin 1887 -> 0 bytes .../ckeditor/plugins/codesnippet/lang/ar.js | 5 - .../ckeditor/plugins/codesnippet/lang/bg.js | 5 - .../ckeditor/plugins/codesnippet/lang/ca.js | 5 - .../ckeditor/plugins/codesnippet/lang/cs.js | 5 - .../ckeditor/plugins/codesnippet/lang/da.js | 5 - .../ckeditor/plugins/codesnippet/lang/de-ch.js | 5 - .../ckeditor/plugins/codesnippet/lang/de.js | 5 - .../ckeditor/plugins/codesnippet/lang/el.js | 5 - .../ckeditor/plugins/codesnippet/lang/en-gb.js | 5 - .../ckeditor/plugins/codesnippet/lang/en.js | 5 - .../ckeditor/plugins/codesnippet/lang/eo.js | 5 - .../ckeditor/plugins/codesnippet/lang/es.js | 5 - .../ckeditor/plugins/codesnippet/lang/et.js | 5 - .../ckeditor/plugins/codesnippet/lang/eu.js | 5 - .../ckeditor/plugins/codesnippet/lang/fa.js | 5 - .../ckeditor/plugins/codesnippet/lang/fi.js | 5 - .../ckeditor/plugins/codesnippet/lang/fr-ca.js | 5 - .../ckeditor/plugins/codesnippet/lang/fr.js | 5 - .../ckeditor/plugins/codesnippet/lang/gl.js | 5 - .../ckeditor/plugins/codesnippet/lang/he.js | 5 - .../ckeditor/plugins/codesnippet/lang/hr.js | 5 - .../ckeditor/plugins/codesnippet/lang/hu.js | 5 - .../ckeditor/plugins/codesnippet/lang/id.js | 5 - .../ckeditor/plugins/codesnippet/lang/it.js | 5 - .../ckeditor/plugins/codesnippet/lang/ja.js | 5 - .../ckeditor/plugins/codesnippet/lang/km.js | 5 - .../ckeditor/plugins/codesnippet/lang/ko.js | 5 - .../ckeditor/plugins/codesnippet/lang/ku.js | 5 - .../ckeditor/plugins/codesnippet/lang/lt.js | 5 - .../ckeditor/plugins/codesnippet/lang/lv.js | 5 - .../ckeditor/plugins/codesnippet/lang/nb.js | 5 - .../ckeditor/plugins/codesnippet/lang/nl.js | 5 - .../ckeditor/plugins/codesnippet/lang/no.js | 5 - .../ckeditor/plugins/codesnippet/lang/pl.js | 5 - .../ckeditor/plugins/codesnippet/lang/pt-br.js | 5 - .../ckeditor/plugins/codesnippet/lang/pt.js | 5 - .../ckeditor/plugins/codesnippet/lang/ro.js | 5 - .../ckeditor/plugins/codesnippet/lang/ru.js | 5 - .../ckeditor/plugins/codesnippet/lang/sk.js | 5 - .../ckeditor/plugins/codesnippet/lang/sl.js | 5 - .../ckeditor/plugins/codesnippet/lang/sq.js | 5 - .../ckeditor/plugins/codesnippet/lang/sv.js | 5 - .../ckeditor/plugins/codesnippet/lang/th.js | 5 - .../ckeditor/plugins/codesnippet/lang/tr.js | 5 - .../ckeditor/plugins/codesnippet/lang/tt.js | 5 - .../ckeditor/plugins/codesnippet/lang/ug.js | 5 - .../ckeditor/plugins/codesnippet/lang/uk.js | 5 - .../ckeditor/plugins/codesnippet/lang/vi.js | 5 - .../ckeditor/plugins/codesnippet/lang/zh-cn.js | 5 - .../ckeditor/plugins/codesnippet/lang/zh.js | 5 - .../plugins/codesnippet/lib/highlight/CHANGES.md | 827 - .../plugins/codesnippet/lib/highlight/LICENSE | 24 - .../plugins/codesnippet/lib/highlight/README.ru.md | 171 - .../codesnippet/lib/highlight/highlight.pack.js | 1 - .../codesnippet/lib/highlight/styles/arta.css | 160 - .../codesnippet/lib/highlight/styles/ascetic.css | 50 - .../lib/highlight/styles/atelier-dune.dark.css | 93 - .../lib/highlight/styles/atelier-dune.light.css | 93 - .../lib/highlight/styles/atelier-forest.dark.css | 93 - .../lib/highlight/styles/atelier-forest.light.css | 93 - .../lib/highlight/styles/atelier-heath.dark.css | 93 - .../lib/highlight/styles/atelier-heath.light.css | 93 - .../lib/highlight/styles/atelier-lakeside.dark.css | 93 - .../highlight/styles/atelier-lakeside.light.css | 93 - .../lib/highlight/styles/atelier-seaside.dark.css | 93 - .../lib/highlight/styles/atelier-seaside.light.css | 93 - .../lib/highlight/styles/brown_paper.css | 105 - .../lib/highlight/styles/brown_papersq.png | Bin 18198 -> 0 bytes .../codesnippet/lib/highlight/styles/dark.css | 105 - .../codesnippet/lib/highlight/styles/default.css | 153 - .../codesnippet/lib/highlight/styles/docco.css | 132 - .../codesnippet/lib/highlight/styles/far.css | 113 - .../lib/highlight/styles/foundation.css | 133 - .../codesnippet/lib/highlight/styles/github.css | 125 - .../lib/highlight/styles/googlecode.css | 147 - .../codesnippet/lib/highlight/styles/idea.css | 122 - .../codesnippet/lib/highlight/styles/ir_black.css | 105 - .../codesnippet/lib/highlight/styles/magula.css | 122 - .../codesnippet/lib/highlight/styles/mono-blue.css | 62 - .../codesnippet/lib/highlight/styles/monokai.css | 127 - .../lib/highlight/styles/monokai_sublime.css | 149 - .../codesnippet/lib/highlight/styles/obsidian.css | 154 - .../lib/highlight/styles/paraiso.dark.css | 93 - .../lib/highlight/styles/paraiso.light.css | 93 - .../codesnippet/lib/highlight/styles/pojoaque.css | 106 - .../codesnippet/lib/highlight/styles/pojoaque.jpg | Bin 1186 -> 0 bytes .../lib/highlight/styles/railscasts.css | 182 - .../codesnippet/lib/highlight/styles/rainbow.css | 112 - .../lib/highlight/styles/school_book.css | 113 - .../lib/highlight/styles/school_book.png | Bin 486 -> 0 bytes .../lib/highlight/styles/solarized_dark.css | 107 - .../lib/highlight/styles/solarized_light.css | 107 - .../codesnippet/lib/highlight/styles/sunburst.css | 160 - .../lib/highlight/styles/tomorrow-night-blue.css | 93 - .../lib/highlight/styles/tomorrow-night-bright.css | 92 - .../highlight/styles/tomorrow-night-eighties.css | 92 - .../lib/highlight/styles/tomorrow-night.css | 93 - .../codesnippet/lib/highlight/styles/tomorrow.css | 90 - .../codesnippet/lib/highlight/styles/vs.css | 89 - .../codesnippet/lib/highlight/styles/xcode.css | 158 - .../codesnippet/lib/highlight/styles/zenburn.css | 116 - .../ckeditor/plugins/codesnippet/plugin.js | 12 - .../ckeditor/plugins/codesnippetgeshi/plugin.js | 10 - .../ckeditor/plugins/colorbutton/icons/bgcolor.png | Bin 906 -> 0 bytes .../plugins/colorbutton/icons/hidpi/bgcolor.png | Bin 2169 -> 0 bytes .../plugins/colorbutton/icons/hidpi/textcolor.png | Bin 1725 -> 0 bytes .../plugins/colorbutton/icons/textcolor.png | Bin 813 -> 0 bytes .../ckeditor/plugins/colorbutton/lang/af.js | 2 - .../ckeditor/plugins/colorbutton/lang/ar.js | 2 - .../ckeditor/plugins/colorbutton/lang/bg.js | 2 - .../ckeditor/plugins/colorbutton/lang/bn.js | 2 - .../ckeditor/plugins/colorbutton/lang/bs.js | 2 - .../ckeditor/plugins/colorbutton/lang/ca.js | 2 - .../ckeditor/plugins/colorbutton/lang/cs.js | 2 - .../ckeditor/plugins/colorbutton/lang/cy.js | 2 - .../ckeditor/plugins/colorbutton/lang/da.js | 2 - .../ckeditor/plugins/colorbutton/lang/de-ch.js | 2 - .../ckeditor/plugins/colorbutton/lang/de.js | 2 - .../ckeditor/plugins/colorbutton/lang/el.js | 2 - .../ckeditor/plugins/colorbutton/lang/en-au.js | 2 - .../ckeditor/plugins/colorbutton/lang/en-ca.js | 2 - .../ckeditor/plugins/colorbutton/lang/en-gb.js | 2 - .../ckeditor/plugins/colorbutton/lang/en.js | 2 - .../ckeditor/plugins/colorbutton/lang/eo.js | 2 - .../ckeditor/plugins/colorbutton/lang/es.js | 2 - .../ckeditor/plugins/colorbutton/lang/et.js | 2 - .../ckeditor/plugins/colorbutton/lang/eu.js | 2 - .../ckeditor/plugins/colorbutton/lang/fa.js | 2 - .../ckeditor/plugins/colorbutton/lang/fi.js | 3 - .../ckeditor/plugins/colorbutton/lang/fo.js | 2 - .../ckeditor/plugins/colorbutton/lang/fr-ca.js | 2 - .../ckeditor/plugins/colorbutton/lang/fr.js | 2 - .../ckeditor/plugins/colorbutton/lang/gl.js | 2 - .../ckeditor/plugins/colorbutton/lang/gu.js | 2 - .../ckeditor/plugins/colorbutton/lang/he.js | 2 - .../ckeditor/plugins/colorbutton/lang/hi.js | 2 - .../ckeditor/plugins/colorbutton/lang/hr.js | 2 - .../ckeditor/plugins/colorbutton/lang/hu.js | 2 - .../ckeditor/plugins/colorbutton/lang/id.js | 2 - .../ckeditor/plugins/colorbutton/lang/is.js | 2 - .../ckeditor/plugins/colorbutton/lang/it.js | 2 - .../ckeditor/plugins/colorbutton/lang/ja.js | 2 - .../ckeditor/plugins/colorbutton/lang/ka.js | 2 - .../ckeditor/plugins/colorbutton/lang/km.js | 2 - .../ckeditor/plugins/colorbutton/lang/ko.js | 2 - .../ckeditor/plugins/colorbutton/lang/ku.js | 2 - .../ckeditor/plugins/colorbutton/lang/lt.js | 2 - .../ckeditor/plugins/colorbutton/lang/lv.js | 2 - .../ckeditor/plugins/colorbutton/lang/mk.js | 2 - .../ckeditor/plugins/colorbutton/lang/mn.js | 2 - .../ckeditor/plugins/colorbutton/lang/ms.js | 2 - .../ckeditor/plugins/colorbutton/lang/nb.js | 2 - .../ckeditor/plugins/colorbutton/lang/nl.js | 2 - .../ckeditor/plugins/colorbutton/lang/no.js | 2 - .../ckeditor/plugins/colorbutton/lang/pl.js | 2 - .../ckeditor/plugins/colorbutton/lang/pt-br.js | 2 - .../ckeditor/plugins/colorbutton/lang/pt.js | 2 - .../ckeditor/plugins/colorbutton/lang/ro.js | 2 - .../ckeditor/plugins/colorbutton/lang/ru.js | 2 - .../ckeditor/plugins/colorbutton/lang/si.js | 2 - .../ckeditor/plugins/colorbutton/lang/sk.js | 2 - .../ckeditor/plugins/colorbutton/lang/sl.js | 2 - .../ckeditor/plugins/colorbutton/lang/sq.js | 3 - .../ckeditor/plugins/colorbutton/lang/sr-latn.js | 2 - .../ckeditor/plugins/colorbutton/lang/sr.js | 2 - .../ckeditor/plugins/colorbutton/lang/sv.js | 2 - .../ckeditor/plugins/colorbutton/lang/th.js | 2 - .../ckeditor/plugins/colorbutton/lang/tr.js | 2 - .../ckeditor/plugins/colorbutton/lang/tt.js | 2 - .../ckeditor/plugins/colorbutton/lang/ug.js | 2 - .../ckeditor/plugins/colorbutton/lang/uk.js | 2 - .../ckeditor/plugins/colorbutton/lang/vi.js | 2 - .../ckeditor/plugins/colorbutton/lang/zh-cn.js | 2 - .../ckeditor/plugins/colorbutton/lang/zh.js | 2 - .../ckeditor/plugins/colorbutton/plugin.js | 14 - .../plugins/colordialog/dialogs/colordialog.css | 20 - .../plugins/colordialog/dialogs/colordialog.js | 14 - .../ckeditor/plugins/colordialog/lang/af.js | 1 - .../ckeditor/plugins/colordialog/lang/ar.js | 1 - .../ckeditor/plugins/colordialog/lang/bg.js | 1 - .../ckeditor/plugins/colordialog/lang/bn.js | 1 - .../ckeditor/plugins/colordialog/lang/bs.js | 1 - .../ckeditor/plugins/colordialog/lang/ca.js | 1 - .../ckeditor/plugins/colordialog/lang/cs.js | 1 - .../ckeditor/plugins/colordialog/lang/cy.js | 1 - .../ckeditor/plugins/colordialog/lang/da.js | 1 - .../ckeditor/plugins/colordialog/lang/de-ch.js | 1 - .../ckeditor/plugins/colordialog/lang/de.js | 1 - .../ckeditor/plugins/colordialog/lang/el.js | 1 - .../ckeditor/plugins/colordialog/lang/en-au.js | 1 - .../ckeditor/plugins/colordialog/lang/en-ca.js | 1 - .../ckeditor/plugins/colordialog/lang/en-gb.js | 1 - .../ckeditor/plugins/colordialog/lang/en.js | 1 - .../ckeditor/plugins/colordialog/lang/eo.js | 1 - .../ckeditor/plugins/colordialog/lang/es.js | 1 - .../ckeditor/plugins/colordialog/lang/et.js | 1 - .../ckeditor/plugins/colordialog/lang/eu.js | 1 - .../ckeditor/plugins/colordialog/lang/fa.js | 1 - .../ckeditor/plugins/colordialog/lang/fi.js | 1 - .../ckeditor/plugins/colordialog/lang/fo.js | 1 - .../ckeditor/plugins/colordialog/lang/fr-ca.js | 1 - .../ckeditor/plugins/colordialog/lang/fr.js | 1 - .../ckeditor/plugins/colordialog/lang/gl.js | 1 - .../ckeditor/plugins/colordialog/lang/gu.js | 1 - .../ckeditor/plugins/colordialog/lang/he.js | 1 - .../ckeditor/plugins/colordialog/lang/hi.js | 1 - .../ckeditor/plugins/colordialog/lang/hr.js | 1 - .../ckeditor/plugins/colordialog/lang/hu.js | 1 - .../ckeditor/plugins/colordialog/lang/id.js | 1 - .../ckeditor/plugins/colordialog/lang/is.js | 1 - .../ckeditor/plugins/colordialog/lang/it.js | 1 - .../ckeditor/plugins/colordialog/lang/ja.js | 1 - .../ckeditor/plugins/colordialog/lang/ka.js | 1 - .../ckeditor/plugins/colordialog/lang/km.js | 1 - .../ckeditor/plugins/colordialog/lang/ko.js | 1 - .../ckeditor/plugins/colordialog/lang/ku.js | 1 - .../ckeditor/plugins/colordialog/lang/lt.js | 1 - .../ckeditor/plugins/colordialog/lang/lv.js | 1 - .../ckeditor/plugins/colordialog/lang/mk.js | 1 - .../ckeditor/plugins/colordialog/lang/mn.js | 1 - .../ckeditor/plugins/colordialog/lang/ms.js | 1 - .../ckeditor/plugins/colordialog/lang/nb.js | 1 - .../ckeditor/plugins/colordialog/lang/nl.js | 1 - .../ckeditor/plugins/colordialog/lang/no.js | 1 - .../ckeditor/plugins/colordialog/lang/pl.js | 1 - .../ckeditor/plugins/colordialog/lang/pt-br.js | 1 - .../ckeditor/plugins/colordialog/lang/pt.js | 1 - .../ckeditor/plugins/colordialog/lang/ro.js | 1 - .../ckeditor/plugins/colordialog/lang/ru.js | 1 - .../ckeditor/plugins/colordialog/lang/si.js | 1 - .../ckeditor/plugins/colordialog/lang/sk.js | 1 - .../ckeditor/plugins/colordialog/lang/sl.js | 1 - .../ckeditor/plugins/colordialog/lang/sq.js | 1 - .../ckeditor/plugins/colordialog/lang/sr-latn.js | 1 - .../ckeditor/plugins/colordialog/lang/sr.js | 1 - .../ckeditor/plugins/colordialog/lang/sv.js | 1 - .../ckeditor/plugins/colordialog/lang/th.js | 1 - .../ckeditor/plugins/colordialog/lang/tr.js | 1 - .../ckeditor/plugins/colordialog/lang/tt.js | 1 - .../ckeditor/plugins/colordialog/lang/ug.js | 1 - .../ckeditor/plugins/colordialog/lang/uk.js | 1 - .../ckeditor/plugins/colordialog/lang/vi.js | 1 - .../ckeditor/plugins/colordialog/lang/zh-cn.js | 1 - .../ckeditor/plugins/colordialog/lang/zh.js | 1 - .../ckeditor/plugins/colordialog/plugin.js | 7 - .../plugins/devtools/lang/_translationstatus.txt | 27 - .../ckeditor/plugins/devtools/lang/ar.js | 5 - .../ckeditor/plugins/devtools/lang/bg.js | 5 - .../ckeditor/plugins/devtools/lang/ca.js | 5 - .../ckeditor/plugins/devtools/lang/cs.js | 5 - .../ckeditor/plugins/devtools/lang/cy.js | 5 - .../ckeditor/plugins/devtools/lang/da.js | 5 - .../ckeditor/plugins/devtools/lang/de-ch.js | 5 - .../ckeditor/plugins/devtools/lang/de.js | 5 - .../ckeditor/plugins/devtools/lang/el.js | 5 - .../ckeditor/plugins/devtools/lang/en-gb.js | 5 - .../ckeditor/plugins/devtools/lang/en.js | 5 - .../ckeditor/plugins/devtools/lang/eo.js | 5 - .../ckeditor/plugins/devtools/lang/es.js | 5 - .../ckeditor/plugins/devtools/lang/et.js | 5 - .../ckeditor/plugins/devtools/lang/eu.js | 5 - .../ckeditor/plugins/devtools/lang/fa.js | 5 - .../ckeditor/plugins/devtools/lang/fi.js | 5 - .../ckeditor/plugins/devtools/lang/fr-ca.js | 5 - .../ckeditor/plugins/devtools/lang/fr.js | 5 - .../ckeditor/plugins/devtools/lang/gl.js | 5 - .../ckeditor/plugins/devtools/lang/gu.js | 5 - .../ckeditor/plugins/devtools/lang/he.js | 5 - .../ckeditor/plugins/devtools/lang/hr.js | 5 - .../ckeditor/plugins/devtools/lang/hu.js | 5 - .../ckeditor/plugins/devtools/lang/id.js | 5 - .../ckeditor/plugins/devtools/lang/it.js | 5 - .../ckeditor/plugins/devtools/lang/ja.js | 5 - .../ckeditor/plugins/devtools/lang/km.js | 5 - .../ckeditor/plugins/devtools/lang/ko.js | 5 - .../ckeditor/plugins/devtools/lang/ku.js | 5 - .../ckeditor/plugins/devtools/lang/lt.js | 5 - .../ckeditor/plugins/devtools/lang/lv.js | 5 - .../ckeditor/plugins/devtools/lang/nb.js | 5 - .../ckeditor/plugins/devtools/lang/nl.js | 5 - .../ckeditor/plugins/devtools/lang/no.js | 5 - .../ckeditor/plugins/devtools/lang/pl.js | 5 - .../ckeditor/plugins/devtools/lang/pt-br.js | 5 - .../ckeditor/plugins/devtools/lang/pt.js | 5 - .../ckeditor/plugins/devtools/lang/ro.js | 5 - .../ckeditor/plugins/devtools/lang/ru.js | 5 - .../ckeditor/plugins/devtools/lang/si.js | 5 - .../ckeditor/plugins/devtools/lang/sk.js | 5 - .../ckeditor/plugins/devtools/lang/sl.js | 5 - .../ckeditor/plugins/devtools/lang/sq.js | 5 - .../ckeditor/plugins/devtools/lang/sv.js | 5 - .../ckeditor/plugins/devtools/lang/tr.js | 5 - .../ckeditor/plugins/devtools/lang/tt.js | 5 - .../ckeditor/plugins/devtools/lang/ug.js | 5 - .../ckeditor/plugins/devtools/lang/uk.js | 5 - .../ckeditor/plugins/devtools/lang/vi.js | 5 - .../ckeditor/plugins/devtools/lang/zh-cn.js | 5 - .../ckeditor/plugins/devtools/lang/zh.js | 5 - .../ckeditor/plugins/devtools/plugin.js | 9 - .../ckeditor/plugins/dialog/dialogDefinition.js | 4 - .../ckeditor/plugins/dialogadvtab/plugin.js | 9 - .../ckeditor/plugins/div/dialogs/div.js | 9 - .../ckeditor/plugins/div/icons/creatediv.png | Bin 862 -> 0 bytes .../ckeditor/plugins/div/icons/hidpi/creatediv.png | Bin 3053 -> 0 bytes .../ckeditor/plugins/div/lang/af.js | 1 - .../ckeditor/plugins/div/lang/ar.js | 1 - .../ckeditor/plugins/div/lang/bg.js | 1 - .../ckeditor/plugins/div/lang/bn.js | 1 - .../ckeditor/plugins/div/lang/bs.js | 1 - .../ckeditor/plugins/div/lang/ca.js | 1 - .../ckeditor/plugins/div/lang/cs.js | 1 - .../ckeditor/plugins/div/lang/cy.js | 1 - .../ckeditor/plugins/div/lang/da.js | 1 - .../ckeditor/plugins/div/lang/de-ch.js | 1 - .../ckeditor/plugins/div/lang/de.js | 1 - .../ckeditor/plugins/div/lang/el.js | 1 - .../ckeditor/plugins/div/lang/en-au.js | 1 - .../ckeditor/plugins/div/lang/en-ca.js | 1 - .../ckeditor/plugins/div/lang/en-gb.js | 1 - .../ckeditor/plugins/div/lang/en.js | 1 - .../ckeditor/plugins/div/lang/eo.js | 1 - .../ckeditor/plugins/div/lang/es.js | 1 - .../ckeditor/plugins/div/lang/et.js | 1 - .../ckeditor/plugins/div/lang/eu.js | 1 - .../ckeditor/plugins/div/lang/fa.js | 1 - .../ckeditor/plugins/div/lang/fi.js | 1 - .../ckeditor/plugins/div/lang/fo.js | 1 - .../ckeditor/plugins/div/lang/fr-ca.js | 1 - .../ckeditor/plugins/div/lang/fr.js | 1 - .../ckeditor/plugins/div/lang/gl.js | 1 - .../ckeditor/plugins/div/lang/gu.js | 1 - .../ckeditor/plugins/div/lang/he.js | 1 - .../ckeditor/plugins/div/lang/hi.js | 1 - .../ckeditor/plugins/div/lang/hr.js | 1 - .../ckeditor/plugins/div/lang/hu.js | 1 - .../ckeditor/plugins/div/lang/id.js | 1 - .../ckeditor/plugins/div/lang/is.js | 1 - .../ckeditor/plugins/div/lang/it.js | 1 - .../ckeditor/plugins/div/lang/ja.js | 1 - .../ckeditor/plugins/div/lang/ka.js | 1 - .../ckeditor/plugins/div/lang/km.js | 1 - .../ckeditor/plugins/div/lang/ko.js | 1 - .../ckeditor/plugins/div/lang/ku.js | 1 - .../ckeditor/plugins/div/lang/lt.js | 1 - .../ckeditor/plugins/div/lang/lv.js | 1 - .../ckeditor/plugins/div/lang/mk.js | 1 - .../ckeditor/plugins/div/lang/mn.js | 1 - .../ckeditor/plugins/div/lang/ms.js | 1 - .../ckeditor/plugins/div/lang/nb.js | 1 - .../ckeditor/plugins/div/lang/nl.js | 1 - .../ckeditor/plugins/div/lang/no.js | 1 - .../ckeditor/plugins/div/lang/pl.js | 1 - .../ckeditor/plugins/div/lang/pt-br.js | 1 - .../ckeditor/plugins/div/lang/pt.js | 1 - .../ckeditor/plugins/div/lang/ro.js | 1 - .../ckeditor/plugins/div/lang/ru.js | 1 - .../ckeditor/plugins/div/lang/si.js | 1 - .../ckeditor/plugins/div/lang/sk.js | 1 - .../ckeditor/plugins/div/lang/sl.js | 1 - .../ckeditor/plugins/div/lang/sq.js | 1 - .../ckeditor/plugins/div/lang/sr-latn.js | 1 - .../ckeditor/plugins/div/lang/sr.js | 1 - .../ckeditor/plugins/div/lang/sv.js | 1 - .../ckeditor/plugins/div/lang/th.js | 1 - .../ckeditor/plugins/div/lang/tr.js | 1 - .../ckeditor/plugins/div/lang/tt.js | 1 - .../ckeditor/plugins/div/lang/ug.js | 1 - .../ckeditor/plugins/div/lang/uk.js | 1 - .../ckeditor/plugins/div/lang/vi.js | 1 - .../ckeditor/plugins/div/lang/zh-cn.js | 1 - .../ckeditor/plugins/div/lang/zh.js | 1 - .../ckeditor/plugins/div/plugin.js | 8 - .../ckeditor/plugins/divarea/plugin.js | 5 - .../ckeditor/plugins/docprops/dialogs/docprops.js | 25 - .../plugins/docprops/icons/docprops-rtl.png | Bin 840 -> 0 bytes .../ckeditor/plugins/docprops/icons/docprops.png | Bin 844 -> 0 bytes .../plugins/docprops/icons/hidpi/docprops-rtl.png | Bin 1909 -> 0 bytes .../plugins/docprops/icons/hidpi/docprops.png | Bin 1941 -> 0 bytes .../ckeditor/plugins/docprops/lang/af.js | 3 - .../ckeditor/plugins/docprops/lang/ar.js | 3 - .../ckeditor/plugins/docprops/lang/bg.js | 3 - .../ckeditor/plugins/docprops/lang/bn.js | 3 - .../ckeditor/plugins/docprops/lang/bs.js | 3 - .../ckeditor/plugins/docprops/lang/ca.js | 3 - .../ckeditor/plugins/docprops/lang/cs.js | 3 - .../ckeditor/plugins/docprops/lang/cy.js | 3 - .../ckeditor/plugins/docprops/lang/da.js | 3 - .../ckeditor/plugins/docprops/lang/de-ch.js | 3 - .../ckeditor/plugins/docprops/lang/de.js | 3 - .../ckeditor/plugins/docprops/lang/el.js | 3 - .../ckeditor/plugins/docprops/lang/en-au.js | 3 - .../ckeditor/plugins/docprops/lang/en-ca.js | 3 - .../ckeditor/plugins/docprops/lang/en-gb.js | 3 - .../ckeditor/plugins/docprops/lang/en.js | 3 - .../ckeditor/plugins/docprops/lang/eo.js | 3 - .../ckeditor/plugins/docprops/lang/es.js | 3 - .../ckeditor/plugins/docprops/lang/et.js | 3 - .../ckeditor/plugins/docprops/lang/eu.js | 3 - .../ckeditor/plugins/docprops/lang/fa.js | 3 - .../ckeditor/plugins/docprops/lang/fi.js | 3 - .../ckeditor/plugins/docprops/lang/fo.js | 3 - .../ckeditor/plugins/docprops/lang/fr-ca.js | 3 - .../ckeditor/plugins/docprops/lang/fr.js | 3 - .../ckeditor/plugins/docprops/lang/gl.js | 3 - .../ckeditor/plugins/docprops/lang/gu.js | 3 - .../ckeditor/plugins/docprops/lang/he.js | 2 - .../ckeditor/plugins/docprops/lang/hi.js | 3 - .../ckeditor/plugins/docprops/lang/hr.js | 3 - .../ckeditor/plugins/docprops/lang/hu.js | 3 - .../ckeditor/plugins/docprops/lang/id.js | 3 - .../ckeditor/plugins/docprops/lang/is.js | 3 - .../ckeditor/plugins/docprops/lang/it.js | 3 - .../ckeditor/plugins/docprops/lang/ja.js | 2 - .../ckeditor/plugins/docprops/lang/ka.js | 3 - .../ckeditor/plugins/docprops/lang/km.js | 3 - .../ckeditor/plugins/docprops/lang/ko.js | 2 - .../ckeditor/plugins/docprops/lang/ku.js | 3 - .../ckeditor/plugins/docprops/lang/lt.js | 3 - .../ckeditor/plugins/docprops/lang/lv.js | 3 - .../ckeditor/plugins/docprops/lang/mk.js | 3 - .../ckeditor/plugins/docprops/lang/mn.js | 3 - .../ckeditor/plugins/docprops/lang/ms.js | 3 - .../ckeditor/plugins/docprops/lang/nb.js | 3 - .../ckeditor/plugins/docprops/lang/nl.js | 3 - .../ckeditor/plugins/docprops/lang/no.js | 3 - .../ckeditor/plugins/docprops/lang/pl.js | 3 - .../ckeditor/plugins/docprops/lang/pt-br.js | 3 - .../ckeditor/plugins/docprops/lang/pt.js | 3 - .../ckeditor/plugins/docprops/lang/ro.js | 3 - .../ckeditor/plugins/docprops/lang/ru.js | 3 - .../ckeditor/plugins/docprops/lang/si.js | 3 - .../ckeditor/plugins/docprops/lang/sk.js | 3 - .../ckeditor/plugins/docprops/lang/sl.js | 3 - .../ckeditor/plugins/docprops/lang/sq.js | 3 - .../ckeditor/plugins/docprops/lang/sr-latn.js | 3 - .../ckeditor/plugins/docprops/lang/sr.js | 3 - .../ckeditor/plugins/docprops/lang/sv.js | 3 - .../ckeditor/plugins/docprops/lang/th.js | 3 - .../ckeditor/plugins/docprops/lang/tr.js | 3 - .../ckeditor/plugins/docprops/lang/tt.js | 3 - .../ckeditor/plugins/docprops/lang/ug.js | 3 - .../ckeditor/plugins/docprops/lang/uk.js | 3 - .../ckeditor/plugins/docprops/lang/vi.js | 3 - .../ckeditor/plugins/docprops/lang/zh-cn.js | 2 - .../ckeditor/plugins/docprops/lang/zh.js | 2 - .../ckeditor/plugins/docprops/plugin.js | 6 - .../ckeditor/plugins/embed/icons/embed.png | Bin 389 -> 0 bytes .../ckeditor/plugins/embed/icons/hidpi/embed.png | Bin 728 -> 0 bytes .../ckeditor/plugins/embed/plugin.js | 6 - .../plugins/embedbase/dialogs/embedbase.js | 6 - .../ckeditor/plugins/embedbase/lang/cs.js | 1 - .../ckeditor/plugins/embedbase/lang/da.js | 1 - .../ckeditor/plugins/embedbase/lang/de-ch.js | 1 - .../ckeditor/plugins/embedbase/lang/de.js | 1 - .../ckeditor/plugins/embedbase/lang/en.js | 1 - .../ckeditor/plugins/embedbase/lang/eo.js | 1 - .../ckeditor/plugins/embedbase/lang/eu.js | 1 - .../ckeditor/plugins/embedbase/lang/fr.js | 1 - .../ckeditor/plugins/embedbase/lang/gl.js | 1 - .../ckeditor/plugins/embedbase/lang/id.js | 1 - .../ckeditor/plugins/embedbase/lang/it.js | 1 - .../ckeditor/plugins/embedbase/lang/ko.js | 1 - .../ckeditor/plugins/embedbase/lang/ku.js | 1 - .../ckeditor/plugins/embedbase/lang/nb.js | 1 - .../ckeditor/plugins/embedbase/lang/nl.js | 1 - .../ckeditor/plugins/embedbase/lang/pl.js | 1 - .../ckeditor/plugins/embedbase/lang/pt-br.js | 1 - .../ckeditor/plugins/embedbase/lang/ru.js | 1 - .../ckeditor/plugins/embedbase/lang/sv.js | 1 - .../ckeditor/plugins/embedbase/lang/tr.js | 1 - .../ckeditor/plugins/embedbase/lang/ug.js | 1 - .../ckeditor/plugins/embedbase/lang/uk.js | 1 - .../ckeditor/plugins/embedbase/lang/zh-cn.js | 1 - .../ckeditor/plugins/embedbase/lang/zh.js | 1 - .../ckeditor/plugins/embedbase/plugin.js | 11 - .../plugins/embedsemantic/icons/embedsemantic.png | Bin 389 -> 0 bytes .../embedsemantic/icons/hidpi/embedsemantic.png | Bin 728 -> 0 bytes .../ckeditor/plugins/embedsemantic/plugin.js | 7 - .../ckeditor/plugins/filetools/lang/cs.js | 5 - .../ckeditor/plugins/filetools/lang/da.js | 5 - .../ckeditor/plugins/filetools/lang/de-ch.js | 6 - .../ckeditor/plugins/filetools/lang/de.js | 6 - .../ckeditor/plugins/filetools/lang/en.js | 5 - .../ckeditor/plugins/filetools/lang/eo.js | 5 - .../ckeditor/plugins/filetools/lang/eu.js | 5 - .../ckeditor/plugins/filetools/lang/fr.js | 6 - .../ckeditor/plugins/filetools/lang/gl.js | 5 - .../ckeditor/plugins/filetools/lang/id.js | 5 - .../ckeditor/plugins/filetools/lang/it.js | 6 - .../ckeditor/plugins/filetools/lang/ko.js | 5 - .../ckeditor/plugins/filetools/lang/ku.js | 5 - .../ckeditor/plugins/filetools/lang/nb.js | 5 - .../ckeditor/plugins/filetools/lang/nl.js | 5 - .../ckeditor/plugins/filetools/lang/pl.js | 5 - .../ckeditor/plugins/filetools/lang/pt-br.js | 5 - .../ckeditor/plugins/filetools/lang/ru.js | 5 - .../ckeditor/plugins/filetools/lang/sv.js | 5 - .../ckeditor/plugins/filetools/lang/tr.js | 5 - .../ckeditor/plugins/filetools/lang/ug.js | 5 - .../ckeditor/plugins/filetools/lang/uk.js | 5 - .../ckeditor/plugins/filetools/lang/zh-cn.js | 5 - .../ckeditor/plugins/filetools/lang/zh.js | 5 - .../ckeditor/plugins/filetools/plugin.js | 13 - .../ckeditor/plugins/find/dialogs/find.js | 25 - .../ckeditor/plugins/find/icons/find-rtl.png | Bin 980 -> 0 bytes .../ckeditor/plugins/find/icons/find.png | Bin 980 -> 0 bytes .../ckeditor/plugins/find/icons/hidpi/find-rtl.png | Bin 2417 -> 0 bytes .../ckeditor/plugins/find/icons/hidpi/find.png | Bin 2417 -> 0 bytes .../ckeditor/plugins/find/icons/hidpi/replace.png | Bin 2761 -> 0 bytes .../ckeditor/plugins/find/icons/replace.png | Bin 948 -> 0 bytes .../ckeditor/plugins/find/lang/af.js | 1 - .../ckeditor/plugins/find/lang/ar.js | 1 - .../ckeditor/plugins/find/lang/bg.js | 1 - .../ckeditor/plugins/find/lang/bn.js | 1 - .../ckeditor/plugins/find/lang/bs.js | 1 - .../ckeditor/plugins/find/lang/ca.js | 1 - .../ckeditor/plugins/find/lang/cs.js | 1 - .../ckeditor/plugins/find/lang/cy.js | 1 - .../ckeditor/plugins/find/lang/da.js | 1 - .../ckeditor/plugins/find/lang/de-ch.js | 1 - .../ckeditor/plugins/find/lang/de.js | 1 - .../ckeditor/plugins/find/lang/el.js | 1 - .../ckeditor/plugins/find/lang/en-au.js | 1 - .../ckeditor/plugins/find/lang/en-ca.js | 1 - .../ckeditor/plugins/find/lang/en-gb.js | 1 - .../ckeditor/plugins/find/lang/en.js | 1 - .../ckeditor/plugins/find/lang/eo.js | 1 - .../ckeditor/plugins/find/lang/es.js | 1 - .../ckeditor/plugins/find/lang/et.js | 1 - .../ckeditor/plugins/find/lang/eu.js | 1 - .../ckeditor/plugins/find/lang/fa.js | 1 - .../ckeditor/plugins/find/lang/fi.js | 1 - .../ckeditor/plugins/find/lang/fo.js | 1 - .../ckeditor/plugins/find/lang/fr-ca.js | 1 - .../ckeditor/plugins/find/lang/fr.js | 1 - .../ckeditor/plugins/find/lang/gl.js | 1 - .../ckeditor/plugins/find/lang/gu.js | 1 - .../ckeditor/plugins/find/lang/he.js | 1 - .../ckeditor/plugins/find/lang/hi.js | 1 - .../ckeditor/plugins/find/lang/hr.js | 1 - .../ckeditor/plugins/find/lang/hu.js | 1 - .../ckeditor/plugins/find/lang/id.js | 1 - .../ckeditor/plugins/find/lang/is.js | 1 - .../ckeditor/plugins/find/lang/it.js | 1 - .../ckeditor/plugins/find/lang/ja.js | 1 - .../ckeditor/plugins/find/lang/ka.js | 1 - .../ckeditor/plugins/find/lang/km.js | 1 - .../ckeditor/plugins/find/lang/ko.js | 1 - .../ckeditor/plugins/find/lang/ku.js | 1 - .../ckeditor/plugins/find/lang/lt.js | 1 - .../ckeditor/plugins/find/lang/lv.js | 1 - .../ckeditor/plugins/find/lang/mk.js | 1 - .../ckeditor/plugins/find/lang/mn.js | 1 - .../ckeditor/plugins/find/lang/ms.js | 1 - .../ckeditor/plugins/find/lang/nb.js | 1 - .../ckeditor/plugins/find/lang/nl.js | 1 - .../ckeditor/plugins/find/lang/no.js | 1 - .../ckeditor/plugins/find/lang/pl.js | 1 - .../ckeditor/plugins/find/lang/pt-br.js | 1 - .../ckeditor/plugins/find/lang/pt.js | 1 - .../ckeditor/plugins/find/lang/ro.js | 1 - .../ckeditor/plugins/find/lang/ru.js | 1 - .../ckeditor/plugins/find/lang/si.js | 1 - .../ckeditor/plugins/find/lang/sk.js | 1 - .../ckeditor/plugins/find/lang/sl.js | 1 - .../ckeditor/plugins/find/lang/sq.js | 1 - .../ckeditor/plugins/find/lang/sr-latn.js | 1 - .../ckeditor/plugins/find/lang/sr.js | 1 - .../ckeditor/plugins/find/lang/sv.js | 1 - .../ckeditor/plugins/find/lang/th.js | 1 - .../ckeditor/plugins/find/lang/tr.js | 1 - .../ckeditor/plugins/find/lang/tt.js | 1 - .../ckeditor/plugins/find/lang/ug.js | 1 - .../ckeditor/plugins/find/lang/uk.js | 1 - .../ckeditor/plugins/find/lang/vi.js | 1 - .../ckeditor/plugins/find/lang/zh-cn.js | 1 - .../ckeditor/plugins/find/lang/zh.js | 1 - .../ckeditor/plugins/find/plugin.js | 6 - .../ckeditor/plugins/flash/dialogs/flash.js | 24 - .../ckeditor/plugins/flash/icons/flash.png | Bin 1038 -> 0 bytes .../ckeditor/plugins/flash/icons/hidpi/flash.png | Bin 2532 -> 0 bytes .../ckeditor/plugins/flash/images/placeholder.png | Bin 256 -> 0 bytes .../ckeditor/plugins/flash/lang/af.js | 2 - .../ckeditor/plugins/flash/lang/ar.js | 2 - .../ckeditor/plugins/flash/lang/bg.js | 3 - .../ckeditor/plugins/flash/lang/bn.js | 2 - .../ckeditor/plugins/flash/lang/bs.js | 2 - .../ckeditor/plugins/flash/lang/ca.js | 3 - .../ckeditor/plugins/flash/lang/cs.js | 3 - .../ckeditor/plugins/flash/lang/cy.js | 2 - .../ckeditor/plugins/flash/lang/da.js | 3 - .../ckeditor/plugins/flash/lang/de-ch.js | 3 - .../ckeditor/plugins/flash/lang/de.js | 3 - .../ckeditor/plugins/flash/lang/el.js | 3 - .../ckeditor/plugins/flash/lang/en-au.js | 2 - .../ckeditor/plugins/flash/lang/en-ca.js | 2 - .../ckeditor/plugins/flash/lang/en-gb.js | 2 - .../ckeditor/plugins/flash/lang/en.js | 2 - .../ckeditor/plugins/flash/lang/eo.js | 3 - .../ckeditor/plugins/flash/lang/es.js | 2 - .../ckeditor/plugins/flash/lang/et.js | 3 - .../ckeditor/plugins/flash/lang/eu.js | 3 - .../ckeditor/plugins/flash/lang/fa.js | 2 - .../ckeditor/plugins/flash/lang/fi.js | 3 - .../ckeditor/plugins/flash/lang/fo.js | 3 - .../ckeditor/plugins/flash/lang/fr-ca.js | 3 - .../ckeditor/plugins/flash/lang/fr.js | 3 - .../ckeditor/plugins/flash/lang/gl.js | 3 - .../ckeditor/plugins/flash/lang/gu.js | 2 - .../ckeditor/plugins/flash/lang/he.js | 2 - .../ckeditor/plugins/flash/lang/hi.js | 2 - .../ckeditor/plugins/flash/lang/hr.js | 2 - .../ckeditor/plugins/flash/lang/hu.js | 3 - .../ckeditor/plugins/flash/lang/id.js | 2 - .../ckeditor/plugins/flash/lang/is.js | 2 - .../ckeditor/plugins/flash/lang/it.js | 3 - .../ckeditor/plugins/flash/lang/ja.js | 2 - .../ckeditor/plugins/flash/lang/ka.js | 3 - .../ckeditor/plugins/flash/lang/km.js | 2 - .../ckeditor/plugins/flash/lang/ko.js | 2 - .../ckeditor/plugins/flash/lang/ku.js | 3 - .../ckeditor/plugins/flash/lang/lt.js | 3 - .../ckeditor/plugins/flash/lang/lv.js | 3 - .../ckeditor/plugins/flash/lang/mk.js | 2 - .../ckeditor/plugins/flash/lang/mn.js | 2 - .../ckeditor/plugins/flash/lang/ms.js | 2 - .../ckeditor/plugins/flash/lang/nb.js | 2 - .../ckeditor/plugins/flash/lang/nl.js | 3 - .../ckeditor/plugins/flash/lang/no.js | 2 - .../ckeditor/plugins/flash/lang/pl.js | 3 - .../ckeditor/plugins/flash/lang/pt-br.js | 3 - .../ckeditor/plugins/flash/lang/pt.js | 3 - .../ckeditor/plugins/flash/lang/ro.js | 3 - .../ckeditor/plugins/flash/lang/ru.js | 3 - .../ckeditor/plugins/flash/lang/si.js | 2 - .../ckeditor/plugins/flash/lang/sk.js | 3 - .../ckeditor/plugins/flash/lang/sl.js | 3 - .../ckeditor/plugins/flash/lang/sq.js | 3 - .../ckeditor/plugins/flash/lang/sr-latn.js | 2 - .../ckeditor/plugins/flash/lang/sr.js | 2 - .../ckeditor/plugins/flash/lang/sv.js | 3 - .../ckeditor/plugins/flash/lang/th.js | 3 - .../ckeditor/plugins/flash/lang/tr.js | 2 - .../ckeditor/plugins/flash/lang/tt.js | 2 - .../ckeditor/plugins/flash/lang/ug.js | 3 - .../ckeditor/plugins/flash/lang/uk.js | 3 - .../ckeditor/plugins/flash/lang/vi.js | 3 - .../ckeditor/plugins/flash/lang/zh-cn.js | 2 - .../ckeditor/plugins/flash/lang/zh.js | 2 - .../ckeditor/plugins/flash/plugin.js | 9 - .../ckeditor/plugins/font/lang/af.js | 1 - .../ckeditor/plugins/font/lang/ar.js | 1 - .../ckeditor/plugins/font/lang/bg.js | 1 - .../ckeditor/plugins/font/lang/bn.js | 1 - .../ckeditor/plugins/font/lang/bs.js | 1 - .../ckeditor/plugins/font/lang/ca.js | 1 - .../ckeditor/plugins/font/lang/cs.js | 1 - .../ckeditor/plugins/font/lang/cy.js | 1 - .../ckeditor/plugins/font/lang/da.js | 1 - .../ckeditor/plugins/font/lang/de-ch.js | 1 - .../ckeditor/plugins/font/lang/de.js | 1 - .../ckeditor/plugins/font/lang/el.js | 1 - .../ckeditor/plugins/font/lang/en-au.js | 1 - .../ckeditor/plugins/font/lang/en-ca.js | 1 - .../ckeditor/plugins/font/lang/en-gb.js | 1 - .../ckeditor/plugins/font/lang/en.js | 1 - .../ckeditor/plugins/font/lang/eo.js | 1 - .../ckeditor/plugins/font/lang/es.js | 1 - .../ckeditor/plugins/font/lang/et.js | 1 - .../ckeditor/plugins/font/lang/eu.js | 1 - .../ckeditor/plugins/font/lang/fa.js | 1 - .../ckeditor/plugins/font/lang/fi.js | 1 - .../ckeditor/plugins/font/lang/fo.js | 1 - .../ckeditor/plugins/font/lang/fr-ca.js | 1 - .../ckeditor/plugins/font/lang/fr.js | 1 - .../ckeditor/plugins/font/lang/gl.js | 1 - .../ckeditor/plugins/font/lang/gu.js | 1 - .../ckeditor/plugins/font/lang/he.js | 1 - .../ckeditor/plugins/font/lang/hi.js | 1 - .../ckeditor/plugins/font/lang/hr.js | 1 - .../ckeditor/plugins/font/lang/hu.js | 1 - .../ckeditor/plugins/font/lang/id.js | 1 - .../ckeditor/plugins/font/lang/is.js | 1 - .../ckeditor/plugins/font/lang/it.js | 1 - .../ckeditor/plugins/font/lang/ja.js | 1 - .../ckeditor/plugins/font/lang/ka.js | 1 - .../ckeditor/plugins/font/lang/km.js | 1 - .../ckeditor/plugins/font/lang/ko.js | 1 - .../ckeditor/plugins/font/lang/ku.js | 1 - .../ckeditor/plugins/font/lang/lt.js | 1 - .../ckeditor/plugins/font/lang/lv.js | 1 - .../ckeditor/plugins/font/lang/mk.js | 1 - .../ckeditor/plugins/font/lang/mn.js | 1 - .../ckeditor/plugins/font/lang/ms.js | 1 - .../ckeditor/plugins/font/lang/nb.js | 1 - .../ckeditor/plugins/font/lang/nl.js | 1 - .../ckeditor/plugins/font/lang/no.js | 1 - .../ckeditor/plugins/font/lang/pl.js | 1 - .../ckeditor/plugins/font/lang/pt-br.js | 1 - .../ckeditor/plugins/font/lang/pt.js | 1 - .../ckeditor/plugins/font/lang/ro.js | 1 - .../ckeditor/plugins/font/lang/ru.js | 1 - .../ckeditor/plugins/font/lang/si.js | 1 - .../ckeditor/plugins/font/lang/sk.js | 1 - .../ckeditor/plugins/font/lang/sl.js | 1 - .../ckeditor/plugins/font/lang/sq.js | 1 - .../ckeditor/plugins/font/lang/sr-latn.js | 1 - .../ckeditor/plugins/font/lang/sr.js | 1 - .../ckeditor/plugins/font/lang/sv.js | 1 - .../ckeditor/plugins/font/lang/th.js | 1 - .../ckeditor/plugins/font/lang/tr.js | 1 - .../ckeditor/plugins/font/lang/tt.js | 1 - .../ckeditor/plugins/font/lang/ug.js | 1 - .../ckeditor/plugins/font/lang/uk.js | 1 - .../ckeditor/plugins/font/lang/vi.js | 1 - .../ckeditor/plugins/font/lang/zh-cn.js | 1 - .../ckeditor/plugins/font/lang/zh.js | 1 - .../ckeditor/plugins/font/plugin.js | 10 - .../ckeditor/plugins/forms/dialogs/button.js | 8 - .../ckeditor/plugins/forms/dialogs/checkbox.js | 9 - .../ckeditor/plugins/forms/dialogs/form.js | 8 - .../ckeditor/plugins/forms/dialogs/hiddenfield.js | 7 - .../ckeditor/plugins/forms/dialogs/radio.js | 9 - .../ckeditor/plugins/forms/dialogs/select.js | 20 - .../ckeditor/plugins/forms/dialogs/textarea.js | 8 - .../ckeditor/plugins/forms/dialogs/textfield.js | 11 - .../ckeditor/plugins/forms/icons/button.png | Bin 528 -> 0 bytes .../ckeditor/plugins/forms/icons/checkbox.png | Bin 756 -> 0 bytes .../ckeditor/plugins/forms/icons/form.png | Bin 590 -> 0 bytes .../ckeditor/plugins/forms/icons/hiddenfield.png | Bin 239 -> 0 bytes .../ckeditor/plugins/forms/icons/hidpi/button.png | Bin 933 -> 0 bytes .../plugins/forms/icons/hidpi/checkbox.png | Bin 1780 -> 0 bytes .../ckeditor/plugins/forms/icons/hidpi/form.png | Bin 1348 -> 0 bytes .../plugins/forms/icons/hidpi/hiddenfield.png | Bin 2166 -> 0 bytes .../plugins/forms/icons/hidpi/imagebutton.png | Bin 1398 -> 0 bytes .../ckeditor/plugins/forms/icons/hidpi/radio.png | Bin 2435 -> 0 bytes .../plugins/forms/icons/hidpi/select-rtl.png | Bin 1451 -> 0 bytes .../ckeditor/plugins/forms/icons/hidpi/select.png | Bin 1452 -> 0 bytes .../plugins/forms/icons/hidpi/textarea-rtl.png | Bin 1732 -> 0 bytes .../plugins/forms/icons/hidpi/textarea.png | Bin 1680 -> 0 bytes .../plugins/forms/icons/hidpi/textfield-rtl.png | Bin 1324 -> 0 bytes .../plugins/forms/icons/hidpi/textfield.png | Bin 1324 -> 0 bytes .../ckeditor/plugins/forms/icons/imagebutton.png | Bin 680 -> 0 bytes .../ckeditor/plugins/forms/icons/radio.png | Bin 874 -> 0 bytes .../ckeditor/plugins/forms/icons/select-rtl.png | Bin 617 -> 0 bytes .../ckeditor/plugins/forms/icons/select.png | Bin 616 -> 0 bytes .../ckeditor/plugins/forms/icons/textarea-rtl.png | Bin 706 -> 0 bytes .../ckeditor/plugins/forms/icons/textarea.png | Bin 677 -> 0 bytes .../ckeditor/plugins/forms/icons/textfield-rtl.png | Bin 588 -> 0 bytes .../ckeditor/plugins/forms/icons/textfield.png | Bin 588 -> 0 bytes .../ckeditor/plugins/forms/images/hiddenfield.gif | Bin 178 -> 0 bytes .../ckeditor/plugins/forms/lang/af.js | 3 - .../ckeditor/plugins/forms/lang/ar.js | 3 - .../ckeditor/plugins/forms/lang/bg.js | 3 - .../ckeditor/plugins/forms/lang/bn.js | 3 - .../ckeditor/plugins/forms/lang/bs.js | 3 - .../ckeditor/plugins/forms/lang/ca.js | 3 - .../ckeditor/plugins/forms/lang/cs.js | 3 - .../ckeditor/plugins/forms/lang/cy.js | 3 - .../ckeditor/plugins/forms/lang/da.js | 3 - .../ckeditor/plugins/forms/lang/de-ch.js | 3 - .../ckeditor/plugins/forms/lang/de.js | 3 - .../ckeditor/plugins/forms/lang/el.js | 3 - .../ckeditor/plugins/forms/lang/en-au.js | 3 - .../ckeditor/plugins/forms/lang/en-ca.js | 3 - .../ckeditor/plugins/forms/lang/en-gb.js | 3 - .../ckeditor/plugins/forms/lang/en.js | 3 - .../ckeditor/plugins/forms/lang/eo.js | 3 - .../ckeditor/plugins/forms/lang/es.js | 3 - .../ckeditor/plugins/forms/lang/et.js | 3 - .../ckeditor/plugins/forms/lang/eu.js | 3 - .../ckeditor/plugins/forms/lang/fa.js | 3 - .../ckeditor/plugins/forms/lang/fi.js | 3 - .../ckeditor/plugins/forms/lang/fo.js | 3 - .../ckeditor/plugins/forms/lang/fr-ca.js | 3 - .../ckeditor/plugins/forms/lang/fr.js | 3 - .../ckeditor/plugins/forms/lang/gl.js | 3 - .../ckeditor/plugins/forms/lang/gu.js | 3 - .../ckeditor/plugins/forms/lang/he.js | 3 - .../ckeditor/plugins/forms/lang/hi.js | 3 - .../ckeditor/plugins/forms/lang/hr.js | 3 - .../ckeditor/plugins/forms/lang/hu.js | 3 - .../ckeditor/plugins/forms/lang/id.js | 3 - .../ckeditor/plugins/forms/lang/is.js | 3 - .../ckeditor/plugins/forms/lang/it.js | 3 - .../ckeditor/plugins/forms/lang/ja.js | 2 - .../ckeditor/plugins/forms/lang/ka.js | 3 - .../ckeditor/plugins/forms/lang/km.js | 3 - .../ckeditor/plugins/forms/lang/ko.js | 2 - .../ckeditor/plugins/forms/lang/ku.js | 3 - .../ckeditor/plugins/forms/lang/lt.js | 3 - .../ckeditor/plugins/forms/lang/lv.js | 3 - .../ckeditor/plugins/forms/lang/mk.js | 3 - .../ckeditor/plugins/forms/lang/mn.js | 3 - .../ckeditor/plugins/forms/lang/ms.js | 3 - .../ckeditor/plugins/forms/lang/nb.js | 3 - .../ckeditor/plugins/forms/lang/nl.js | 3 - .../ckeditor/plugins/forms/lang/no.js | 3 - .../ckeditor/plugins/forms/lang/pl.js | 3 - .../ckeditor/plugins/forms/lang/pt-br.js | 3 - .../ckeditor/plugins/forms/lang/pt.js | 3 - .../ckeditor/plugins/forms/lang/ro.js | 3 - .../ckeditor/plugins/forms/lang/ru.js | 3 - .../ckeditor/plugins/forms/lang/si.js | 3 - .../ckeditor/plugins/forms/lang/sk.js | 3 - .../ckeditor/plugins/forms/lang/sl.js | 3 - .../ckeditor/plugins/forms/lang/sq.js | 3 - .../ckeditor/plugins/forms/lang/sr-latn.js | 3 - .../ckeditor/plugins/forms/lang/sr.js | 3 - .../ckeditor/plugins/forms/lang/sv.js | 3 - .../ckeditor/plugins/forms/lang/th.js | 3 - .../ckeditor/plugins/forms/lang/tr.js | 3 - .../ckeditor/plugins/forms/lang/tt.js | 3 - .../ckeditor/plugins/forms/lang/ug.js | 3 - .../ckeditor/plugins/forms/lang/uk.js | 3 - .../ckeditor/plugins/forms/lang/vi.js | 3 - .../ckeditor/plugins/forms/lang/zh-cn.js | 2 - .../ckeditor/plugins/forms/lang/zh.js | 2 - .../ckeditor/plugins/forms/plugin.js | 14 - public/bower_components/ckeditor/plugins/icons.png | Bin 18319 -> 0 bytes .../ckeditor/plugins/icons_hidpi.png | Bin 63530 -> 0 bytes .../ckeditor/plugins/iframe/dialogs/iframe.js | 10 - .../ckeditor/plugins/iframe/icons/hidpi/iframe.png | Bin 3091 -> 0 bytes .../ckeditor/plugins/iframe/icons/iframe.png | Bin 989 -> 0 bytes .../ckeditor/plugins/iframe/images/placeholder.png | Bin 265 -> 0 bytes .../ckeditor/plugins/iframe/lang/af.js | 1 - .../ckeditor/plugins/iframe/lang/ar.js | 1 - .../ckeditor/plugins/iframe/lang/bg.js | 1 - .../ckeditor/plugins/iframe/lang/bn.js | 1 - .../ckeditor/plugins/iframe/lang/bs.js | 1 - .../ckeditor/plugins/iframe/lang/ca.js | 1 - .../ckeditor/plugins/iframe/lang/cs.js | 1 - .../ckeditor/plugins/iframe/lang/cy.js | 1 - .../ckeditor/plugins/iframe/lang/da.js | 1 - .../ckeditor/plugins/iframe/lang/de-ch.js | 1 - .../ckeditor/plugins/iframe/lang/de.js | 1 - .../ckeditor/plugins/iframe/lang/el.js | 1 - .../ckeditor/plugins/iframe/lang/en-au.js | 1 - .../ckeditor/plugins/iframe/lang/en-ca.js | 1 - .../ckeditor/plugins/iframe/lang/en-gb.js | 1 - .../ckeditor/plugins/iframe/lang/en.js | 1 - .../ckeditor/plugins/iframe/lang/eo.js | 1 - .../ckeditor/plugins/iframe/lang/es.js | 1 - .../ckeditor/plugins/iframe/lang/et.js | 1 - .../ckeditor/plugins/iframe/lang/eu.js | 1 - .../ckeditor/plugins/iframe/lang/fa.js | 1 - .../ckeditor/plugins/iframe/lang/fi.js | 1 - .../ckeditor/plugins/iframe/lang/fo.js | 1 - .../ckeditor/plugins/iframe/lang/fr-ca.js | 1 - .../ckeditor/plugins/iframe/lang/fr.js | 1 - .../ckeditor/plugins/iframe/lang/gl.js | 1 - .../ckeditor/plugins/iframe/lang/gu.js | 1 - .../ckeditor/plugins/iframe/lang/he.js | 1 - .../ckeditor/plugins/iframe/lang/hi.js | 1 - .../ckeditor/plugins/iframe/lang/hr.js | 1 - .../ckeditor/plugins/iframe/lang/hu.js | 1 - .../ckeditor/plugins/iframe/lang/id.js | 1 - .../ckeditor/plugins/iframe/lang/is.js | 1 - .../ckeditor/plugins/iframe/lang/it.js | 1 - .../ckeditor/plugins/iframe/lang/ja.js | 1 - .../ckeditor/plugins/iframe/lang/ka.js | 1 - .../ckeditor/plugins/iframe/lang/km.js | 1 - .../ckeditor/plugins/iframe/lang/ko.js | 1 - .../ckeditor/plugins/iframe/lang/ku.js | 1 - .../ckeditor/plugins/iframe/lang/lt.js | 1 - .../ckeditor/plugins/iframe/lang/lv.js | 1 - .../ckeditor/plugins/iframe/lang/mk.js | 1 - .../ckeditor/plugins/iframe/lang/mn.js | 1 - .../ckeditor/plugins/iframe/lang/ms.js | 1 - .../ckeditor/plugins/iframe/lang/nb.js | 1 - .../ckeditor/plugins/iframe/lang/nl.js | 1 - .../ckeditor/plugins/iframe/lang/no.js | 1 - .../ckeditor/plugins/iframe/lang/pl.js | 1 - .../ckeditor/plugins/iframe/lang/pt-br.js | 1 - .../ckeditor/plugins/iframe/lang/pt.js | 1 - .../ckeditor/plugins/iframe/lang/ro.js | 1 - .../ckeditor/plugins/iframe/lang/ru.js | 1 - .../ckeditor/plugins/iframe/lang/si.js | 1 - .../ckeditor/plugins/iframe/lang/sk.js | 1 - .../ckeditor/plugins/iframe/lang/sl.js | 1 - .../ckeditor/plugins/iframe/lang/sq.js | 1 - .../ckeditor/plugins/iframe/lang/sr-latn.js | 1 - .../ckeditor/plugins/iframe/lang/sr.js | 1 - .../ckeditor/plugins/iframe/lang/sv.js | 1 - .../ckeditor/plugins/iframe/lang/th.js | 1 - .../ckeditor/plugins/iframe/lang/tr.js | 1 - .../ckeditor/plugins/iframe/lang/tt.js | 1 - .../ckeditor/plugins/iframe/lang/ug.js | 1 - .../ckeditor/plugins/iframe/lang/uk.js | 1 - .../ckeditor/plugins/iframe/lang/vi.js | 1 - .../ckeditor/plugins/iframe/lang/zh-cn.js | 1 - .../ckeditor/plugins/iframe/lang/zh.js | 1 - .../ckeditor/plugins/iframe/plugin.js | 8 - .../ckeditor/plugins/iframedialog/plugin.js | 8 - .../ckeditor/plugins/image/dialogs/image.js | 44 - .../ckeditor/plugins/image/images/noimage.png | Bin 1610 -> 0 bytes .../ckeditor/plugins/image2/dialogs/image2.js | 14 - .../ckeditor/plugins/image2/icons/hidpi/image.png | Bin 1745 -> 0 bytes .../ckeditor/plugins/image2/icons/image.png | Bin 756 -> 0 bytes .../ckeditor/plugins/image2/lang/af.js | 1 - .../ckeditor/plugins/image2/lang/ar.js | 1 - .../ckeditor/plugins/image2/lang/bg.js | 1 - .../ckeditor/plugins/image2/lang/bn.js | 1 - .../ckeditor/plugins/image2/lang/bs.js | 1 - .../ckeditor/plugins/image2/lang/ca.js | 1 - .../ckeditor/plugins/image2/lang/cs.js | 1 - .../ckeditor/plugins/image2/lang/cy.js | 1 - .../ckeditor/plugins/image2/lang/da.js | 1 - .../ckeditor/plugins/image2/lang/de-ch.js | 1 - .../ckeditor/plugins/image2/lang/de.js | 1 - .../ckeditor/plugins/image2/lang/el.js | 1 - .../ckeditor/plugins/image2/lang/en-au.js | 1 - .../ckeditor/plugins/image2/lang/en-ca.js | 1 - .../ckeditor/plugins/image2/lang/en-gb.js | 1 - .../ckeditor/plugins/image2/lang/en.js | 1 - .../ckeditor/plugins/image2/lang/eo.js | 1 - .../ckeditor/plugins/image2/lang/es.js | 1 - .../ckeditor/plugins/image2/lang/et.js | 1 - .../ckeditor/plugins/image2/lang/eu.js | 1 - .../ckeditor/plugins/image2/lang/fa.js | 1 - .../ckeditor/plugins/image2/lang/fi.js | 1 - .../ckeditor/plugins/image2/lang/fo.js | 1 - .../ckeditor/plugins/image2/lang/fr-ca.js | 1 - .../ckeditor/plugins/image2/lang/fr.js | 1 - .../ckeditor/plugins/image2/lang/gl.js | 1 - .../ckeditor/plugins/image2/lang/gu.js | 1 - .../ckeditor/plugins/image2/lang/he.js | 1 - .../ckeditor/plugins/image2/lang/hi.js | 1 - .../ckeditor/plugins/image2/lang/hr.js | 1 - .../ckeditor/plugins/image2/lang/hu.js | 1 - .../ckeditor/plugins/image2/lang/id.js | 1 - .../ckeditor/plugins/image2/lang/is.js | 1 - .../ckeditor/plugins/image2/lang/it.js | 1 - .../ckeditor/plugins/image2/lang/ja.js | 1 - .../ckeditor/plugins/image2/lang/ka.js | 1 - .../ckeditor/plugins/image2/lang/km.js | 1 - .../ckeditor/plugins/image2/lang/ko.js | 1 - .../ckeditor/plugins/image2/lang/ku.js | 1 - .../ckeditor/plugins/image2/lang/lt.js | 1 - .../ckeditor/plugins/image2/lang/lv.js | 1 - .../ckeditor/plugins/image2/lang/mk.js | 1 - .../ckeditor/plugins/image2/lang/mn.js | 1 - .../ckeditor/plugins/image2/lang/ms.js | 1 - .../ckeditor/plugins/image2/lang/nb.js | 1 - .../ckeditor/plugins/image2/lang/nl.js | 1 - .../ckeditor/plugins/image2/lang/no.js | 1 - .../ckeditor/plugins/image2/lang/pl.js | 1 - .../ckeditor/plugins/image2/lang/pt-br.js | 1 - .../ckeditor/plugins/image2/lang/pt.js | 1 - .../ckeditor/plugins/image2/lang/ro.js | 1 - .../ckeditor/plugins/image2/lang/ru.js | 1 - .../ckeditor/plugins/image2/lang/si.js | 1 - .../ckeditor/plugins/image2/lang/sk.js | 1 - .../ckeditor/plugins/image2/lang/sl.js | 1 - .../ckeditor/plugins/image2/lang/sq.js | 1 - .../ckeditor/plugins/image2/lang/sr-latn.js | 1 - .../ckeditor/plugins/image2/lang/sr.js | 1 - .../ckeditor/plugins/image2/lang/sv.js | 1 - .../ckeditor/plugins/image2/lang/th.js | 1 - .../ckeditor/plugins/image2/lang/tr.js | 1 - .../ckeditor/plugins/image2/lang/tt.js | 1 - .../ckeditor/plugins/image2/lang/ug.js | 1 - .../ckeditor/plugins/image2/lang/uk.js | 1 - .../ckeditor/plugins/image2/lang/vi.js | 1 - .../ckeditor/plugins/image2/lang/zh-cn.js | 1 - .../ckeditor/plugins/image2/lang/zh.js | 1 - .../ckeditor/plugins/image2/plugin.js | 30 - .../ckeditor/plugins/indentblock/plugin.js | 9 - .../plugins/justify/icons/hidpi/justifyblock.png | Bin 882 -> 0 bytes .../plugins/justify/icons/hidpi/justifycenter.png | Bin 1142 -> 0 bytes .../plugins/justify/icons/hidpi/justifyleft.png | Bin 1042 -> 0 bytes .../plugins/justify/icons/hidpi/justifyright.png | Bin 1048 -> 0 bytes .../plugins/justify/icons/justifyblock.png | Bin 496 -> 0 bytes .../plugins/justify/icons/justifycenter.png | Bin 609 -> 0 bytes .../ckeditor/plugins/justify/icons/justifyleft.png | Bin 558 -> 0 bytes .../plugins/justify/icons/justifyright.png | Bin 554 -> 0 bytes .../ckeditor/plugins/justify/lang/af.js | 1 - .../ckeditor/plugins/justify/lang/ar.js | 1 - .../ckeditor/plugins/justify/lang/bg.js | 1 - .../ckeditor/plugins/justify/lang/bn.js | 1 - .../ckeditor/plugins/justify/lang/bs.js | 1 - .../ckeditor/plugins/justify/lang/ca.js | 1 - .../ckeditor/plugins/justify/lang/cs.js | 1 - .../ckeditor/plugins/justify/lang/cy.js | 1 - .../ckeditor/plugins/justify/lang/da.js | 1 - .../ckeditor/plugins/justify/lang/de-ch.js | 1 - .../ckeditor/plugins/justify/lang/de.js | 1 - .../ckeditor/plugins/justify/lang/el.js | 1 - .../ckeditor/plugins/justify/lang/en-au.js | 1 - .../ckeditor/plugins/justify/lang/en-ca.js | 1 - .../ckeditor/plugins/justify/lang/en-gb.js | 1 - .../ckeditor/plugins/justify/lang/en.js | 1 - .../ckeditor/plugins/justify/lang/eo.js | 1 - .../ckeditor/plugins/justify/lang/es.js | 1 - .../ckeditor/plugins/justify/lang/et.js | 1 - .../ckeditor/plugins/justify/lang/eu.js | 1 - .../ckeditor/plugins/justify/lang/fa.js | 1 - .../ckeditor/plugins/justify/lang/fi.js | 1 - .../ckeditor/plugins/justify/lang/fo.js | 1 - .../ckeditor/plugins/justify/lang/fr-ca.js | 1 - .../ckeditor/plugins/justify/lang/fr.js | 1 - .../ckeditor/plugins/justify/lang/gl.js | 1 - .../ckeditor/plugins/justify/lang/gu.js | 1 - .../ckeditor/plugins/justify/lang/he.js | 1 - .../ckeditor/plugins/justify/lang/hi.js | 1 - .../ckeditor/plugins/justify/lang/hr.js | 1 - .../ckeditor/plugins/justify/lang/hu.js | 1 - .../ckeditor/plugins/justify/lang/id.js | 1 - .../ckeditor/plugins/justify/lang/is.js | 1 - .../ckeditor/plugins/justify/lang/it.js | 1 - .../ckeditor/plugins/justify/lang/ja.js | 1 - .../ckeditor/plugins/justify/lang/ka.js | 1 - .../ckeditor/plugins/justify/lang/km.js | 1 - .../ckeditor/plugins/justify/lang/ko.js | 1 - .../ckeditor/plugins/justify/lang/ku.js | 1 - .../ckeditor/plugins/justify/lang/lt.js | 1 - .../ckeditor/plugins/justify/lang/lv.js | 1 - .../ckeditor/plugins/justify/lang/mk.js | 1 - .../ckeditor/plugins/justify/lang/mn.js | 1 - .../ckeditor/plugins/justify/lang/ms.js | 1 - .../ckeditor/plugins/justify/lang/nb.js | 1 - .../ckeditor/plugins/justify/lang/nl.js | 1 - .../ckeditor/plugins/justify/lang/no.js | 1 - .../ckeditor/plugins/justify/lang/pl.js | 1 - .../ckeditor/plugins/justify/lang/pt-br.js | 1 - .../ckeditor/plugins/justify/lang/pt.js | 1 - .../ckeditor/plugins/justify/lang/ro.js | 1 - .../ckeditor/plugins/justify/lang/ru.js | 1 - .../ckeditor/plugins/justify/lang/si.js | 1 - .../ckeditor/plugins/justify/lang/sk.js | 1 - .../ckeditor/plugins/justify/lang/sl.js | 1 - .../ckeditor/plugins/justify/lang/sq.js | 1 - .../ckeditor/plugins/justify/lang/sr-latn.js | 1 - .../ckeditor/plugins/justify/lang/sr.js | 1 - .../ckeditor/plugins/justify/lang/sv.js | 1 - .../ckeditor/plugins/justify/lang/th.js | 1 - .../ckeditor/plugins/justify/lang/tr.js | 1 - .../ckeditor/plugins/justify/lang/tt.js | 1 - .../ckeditor/plugins/justify/lang/ug.js | 1 - .../ckeditor/plugins/justify/lang/uk.js | 1 - .../ckeditor/plugins/justify/lang/vi.js | 1 - .../ckeditor/plugins/justify/lang/zh-cn.js | 1 - .../ckeditor/plugins/justify/lang/zh.js | 1 - .../ckeditor/plugins/justify/plugin.js | 12 - .../plugins/language/icons/hidpi/language.png | Bin 1678 -> 0 bytes .../ckeditor/plugins/language/icons/language.png | Bin 668 -> 0 bytes .../ckeditor/plugins/language/lang/ar.js | 5 - .../ckeditor/plugins/language/lang/bg.js | 5 - .../ckeditor/plugins/language/lang/ca.js | 5 - .../ckeditor/plugins/language/lang/cs.js | 5 - .../ckeditor/plugins/language/lang/cy.js | 5 - .../ckeditor/plugins/language/lang/da.js | 5 - .../ckeditor/plugins/language/lang/de-ch.js | 5 - .../ckeditor/plugins/language/lang/de.js | 5 - .../ckeditor/plugins/language/lang/el.js | 5 - .../ckeditor/plugins/language/lang/en-gb.js | 5 - .../ckeditor/plugins/language/lang/en.js | 5 - .../ckeditor/plugins/language/lang/eo.js | 5 - .../ckeditor/plugins/language/lang/es.js | 5 - .../ckeditor/plugins/language/lang/eu.js | 5 - .../ckeditor/plugins/language/lang/fa.js | 5 - .../ckeditor/plugins/language/lang/fi.js | 5 - .../ckeditor/plugins/language/lang/fo.js | 5 - .../ckeditor/plugins/language/lang/fr.js | 5 - .../ckeditor/plugins/language/lang/gl.js | 5 - .../ckeditor/plugins/language/lang/he.js | 5 - .../ckeditor/plugins/language/lang/hr.js | 5 - .../ckeditor/plugins/language/lang/hu.js | 5 - .../ckeditor/plugins/language/lang/id.js | 5 - .../ckeditor/plugins/language/lang/it.js | 5 - .../ckeditor/plugins/language/lang/ja.js | 5 - .../ckeditor/plugins/language/lang/km.js | 5 - .../ckeditor/plugins/language/lang/ko.js | 5 - .../ckeditor/plugins/language/lang/ku.js | 5 - .../ckeditor/plugins/language/lang/nb.js | 5 - .../ckeditor/plugins/language/lang/nl.js | 5 - .../ckeditor/plugins/language/lang/no.js | 5 - .../ckeditor/plugins/language/lang/pl.js | 5 - .../ckeditor/plugins/language/lang/pt-br.js | 5 - .../ckeditor/plugins/language/lang/pt.js | 5 - .../ckeditor/plugins/language/lang/ru.js | 5 - .../ckeditor/plugins/language/lang/sk.js | 5 - .../ckeditor/plugins/language/lang/sl.js | 5 - .../ckeditor/plugins/language/lang/sq.js | 5 - .../ckeditor/plugins/language/lang/sv.js | 5 - .../ckeditor/plugins/language/lang/tr.js | 5 - .../ckeditor/plugins/language/lang/tt.js | 5 - .../ckeditor/plugins/language/lang/ug.js | 5 - .../ckeditor/plugins/language/lang/uk.js | 5 - .../ckeditor/plugins/language/lang/vi.js | 5 - .../ckeditor/plugins/language/lang/zh-cn.js | 5 - .../ckeditor/plugins/language/lang/zh.js | 5 - .../ckeditor/plugins/language/plugin.js | 8 - .../ckeditor/plugins/lineutils/plugin.js | 22 - .../ckeditor/plugins/link/dialogs/anchor.js | 7 - .../ckeditor/plugins/link/dialogs/link.js | 26 - .../ckeditor/plugins/link/images/anchor.png | Bin 589 -> 0 bytes .../ckeditor/plugins/link/images/hidpi/anchor.png | Bin 1379 -> 0 bytes .../plugins/liststyle/dialogs/liststyle.js | 10 - .../ckeditor/plugins/liststyle/lang/af.js | 2 - .../ckeditor/plugins/liststyle/lang/ar.js | 2 - .../ckeditor/plugins/liststyle/lang/bg.js | 2 - .../ckeditor/plugins/liststyle/lang/bn.js | 2 - .../ckeditor/plugins/liststyle/lang/bs.js | 2 - .../ckeditor/plugins/liststyle/lang/ca.js | 2 - .../ckeditor/plugins/liststyle/lang/cs.js | 2 - .../ckeditor/plugins/liststyle/lang/cy.js | 2 - .../ckeditor/plugins/liststyle/lang/da.js | 2 - .../ckeditor/plugins/liststyle/lang/de-ch.js | 2 - .../ckeditor/plugins/liststyle/lang/de.js | 2 - .../ckeditor/plugins/liststyle/lang/el.js | 2 - .../ckeditor/plugins/liststyle/lang/en-au.js | 2 - .../ckeditor/plugins/liststyle/lang/en-ca.js | 2 - .../ckeditor/plugins/liststyle/lang/en-gb.js | 2 - .../ckeditor/plugins/liststyle/lang/en.js | 2 - .../ckeditor/plugins/liststyle/lang/eo.js | 2 - .../ckeditor/plugins/liststyle/lang/es.js | 2 - .../ckeditor/plugins/liststyle/lang/et.js | 2 - .../ckeditor/plugins/liststyle/lang/eu.js | 2 - .../ckeditor/plugins/liststyle/lang/fa.js | 2 - .../ckeditor/plugins/liststyle/lang/fi.js | 2 - .../ckeditor/plugins/liststyle/lang/fo.js | 2 - .../ckeditor/plugins/liststyle/lang/fr-ca.js | 2 - .../ckeditor/plugins/liststyle/lang/fr.js | 2 - .../ckeditor/plugins/liststyle/lang/gl.js | 2 - .../ckeditor/plugins/liststyle/lang/gu.js | 2 - .../ckeditor/plugins/liststyle/lang/he.js | 2 - .../ckeditor/plugins/liststyle/lang/hi.js | 2 - .../ckeditor/plugins/liststyle/lang/hr.js | 2 - .../ckeditor/plugins/liststyle/lang/hu.js | 2 - .../ckeditor/plugins/liststyle/lang/id.js | 2 - .../ckeditor/plugins/liststyle/lang/is.js | 2 - .../ckeditor/plugins/liststyle/lang/it.js | 2 - .../ckeditor/plugins/liststyle/lang/ja.js | 2 - .../ckeditor/plugins/liststyle/lang/ka.js | 2 - .../ckeditor/plugins/liststyle/lang/km.js | 2 - .../ckeditor/plugins/liststyle/lang/ko.js | 2 - .../ckeditor/plugins/liststyle/lang/ku.js | 2 - .../ckeditor/plugins/liststyle/lang/lt.js | 2 - .../ckeditor/plugins/liststyle/lang/lv.js | 2 - .../ckeditor/plugins/liststyle/lang/mk.js | 2 - .../ckeditor/plugins/liststyle/lang/mn.js | 2 - .../ckeditor/plugins/liststyle/lang/ms.js | 2 - .../ckeditor/plugins/liststyle/lang/nb.js | 2 - .../ckeditor/plugins/liststyle/lang/nl.js | 2 - .../ckeditor/plugins/liststyle/lang/no.js | 2 - .../ckeditor/plugins/liststyle/lang/pl.js | 2 - .../ckeditor/plugins/liststyle/lang/pt-br.js | 2 - .../ckeditor/plugins/liststyle/lang/pt.js | 2 - .../ckeditor/plugins/liststyle/lang/ro.js | 2 - .../ckeditor/plugins/liststyle/lang/ru.js | 2 - .../ckeditor/plugins/liststyle/lang/si.js | 2 - .../ckeditor/plugins/liststyle/lang/sk.js | 2 - .../ckeditor/plugins/liststyle/lang/sl.js | 2 - .../ckeditor/plugins/liststyle/lang/sq.js | 2 - .../ckeditor/plugins/liststyle/lang/sr-latn.js | 2 - .../ckeditor/plugins/liststyle/lang/sr.js | 2 - .../ckeditor/plugins/liststyle/lang/sv.js | 2 - .../ckeditor/plugins/liststyle/lang/th.js | 2 - .../ckeditor/plugins/liststyle/lang/tr.js | 2 - .../ckeditor/plugins/liststyle/lang/tt.js | 2 - .../ckeditor/plugins/liststyle/lang/ug.js | 2 - .../ckeditor/plugins/liststyle/lang/uk.js | 2 - .../ckeditor/plugins/liststyle/lang/vi.js | 2 - .../ckeditor/plugins/liststyle/lang/zh-cn.js | 2 - .../ckeditor/plugins/liststyle/lang/zh.js | 2 - .../ckeditor/plugins/liststyle/plugin.js | 7 - .../plugins/magicline/images/hidpi/icon-rtl.png | Bin 176 -> 0 bytes .../plugins/magicline/images/hidpi/icon.png | Bin 199 -> 0 bytes .../ckeditor/plugins/magicline/images/icon-rtl.png | Bin 138 -> 0 bytes .../ckeditor/plugins/magicline/images/icon.png | Bin 133 -> 0 bytes .../ckeditor/plugins/mathjax/dialogs/mathjax.js | 7 - .../plugins/mathjax/icons/hidpi/mathjax.png | Bin 1437 -> 0 bytes .../ckeditor/plugins/mathjax/icons/mathjax.png | Bin 703 -> 0 bytes .../ckeditor/plugins/mathjax/images/loader.gif | Bin 784 -> 0 bytes .../ckeditor/plugins/mathjax/lang/af.js | 1 - .../ckeditor/plugins/mathjax/lang/ar.js | 1 - .../ckeditor/plugins/mathjax/lang/bg.js | 1 - .../ckeditor/plugins/mathjax/lang/ca.js | 1 - .../ckeditor/plugins/mathjax/lang/cs.js | 1 - .../ckeditor/plugins/mathjax/lang/cy.js | 1 - .../ckeditor/plugins/mathjax/lang/da.js | 1 - .../ckeditor/plugins/mathjax/lang/de-ch.js | 1 - .../ckeditor/plugins/mathjax/lang/de.js | 1 - .../ckeditor/plugins/mathjax/lang/el.js | 1 - .../ckeditor/plugins/mathjax/lang/en-gb.js | 1 - .../ckeditor/plugins/mathjax/lang/en.js | 1 - .../ckeditor/plugins/mathjax/lang/eo.js | 1 - .../ckeditor/plugins/mathjax/lang/es.js | 1 - .../ckeditor/plugins/mathjax/lang/eu.js | 1 - .../ckeditor/plugins/mathjax/lang/fa.js | 1 - .../ckeditor/plugins/mathjax/lang/fi.js | 1 - .../ckeditor/plugins/mathjax/lang/fr.js | 1 - .../ckeditor/plugins/mathjax/lang/gl.js | 1 - .../ckeditor/plugins/mathjax/lang/he.js | 1 - .../ckeditor/plugins/mathjax/lang/hr.js | 1 - .../ckeditor/plugins/mathjax/lang/hu.js | 1 - .../ckeditor/plugins/mathjax/lang/id.js | 1 - .../ckeditor/plugins/mathjax/lang/it.js | 1 - .../ckeditor/plugins/mathjax/lang/ja.js | 1 - .../ckeditor/plugins/mathjax/lang/km.js | 1 - .../ckeditor/plugins/mathjax/lang/ko.js | 1 - .../ckeditor/plugins/mathjax/lang/ku.js | 1 - .../ckeditor/plugins/mathjax/lang/lt.js | 1 - .../ckeditor/plugins/mathjax/lang/nb.js | 1 - .../ckeditor/plugins/mathjax/lang/nl.js | 1 - .../ckeditor/plugins/mathjax/lang/no.js | 1 - .../ckeditor/plugins/mathjax/lang/pl.js | 1 - .../ckeditor/plugins/mathjax/lang/pt-br.js | 1 - .../ckeditor/plugins/mathjax/lang/pt.js | 1 - .../ckeditor/plugins/mathjax/lang/ro.js | 1 - .../ckeditor/plugins/mathjax/lang/ru.js | 1 - .../ckeditor/plugins/mathjax/lang/sk.js | 1 - .../ckeditor/plugins/mathjax/lang/sl.js | 1 - .../ckeditor/plugins/mathjax/lang/sq.js | 1 - .../ckeditor/plugins/mathjax/lang/sv.js | 1 - .../ckeditor/plugins/mathjax/lang/tr.js | 1 - .../ckeditor/plugins/mathjax/lang/tt.js | 1 - .../ckeditor/plugins/mathjax/lang/ug.js | 1 - .../ckeditor/plugins/mathjax/lang/uk.js | 1 - .../ckeditor/plugins/mathjax/lang/vi.js | 1 - .../ckeditor/plugins/mathjax/lang/zh-cn.js | 1 - .../ckeditor/plugins/mathjax/lang/zh.js | 1 - .../ckeditor/plugins/mathjax/plugin.js | 15 - .../plugins/newpage/icons/hidpi/newpage-rtl.png | Bin 1070 -> 0 bytes .../plugins/newpage/icons/hidpi/newpage.png | Bin 1112 -> 0 bytes .../ckeditor/plugins/newpage/icons/newpage-rtl.png | Bin 575 -> 0 bytes .../ckeditor/plugins/newpage/icons/newpage.png | Bin 580 -> 0 bytes .../ckeditor/plugins/newpage/lang/af.js | 1 - .../ckeditor/plugins/newpage/lang/ar.js | 1 - .../ckeditor/plugins/newpage/lang/bg.js | 1 - .../ckeditor/plugins/newpage/lang/bn.js | 1 - .../ckeditor/plugins/newpage/lang/bs.js | 1 - .../ckeditor/plugins/newpage/lang/ca.js | 1 - .../ckeditor/plugins/newpage/lang/cs.js | 1 - .../ckeditor/plugins/newpage/lang/cy.js | 1 - .../ckeditor/plugins/newpage/lang/da.js | 1 - .../ckeditor/plugins/newpage/lang/de-ch.js | 1 - .../ckeditor/plugins/newpage/lang/de.js | 1 - .../ckeditor/plugins/newpage/lang/el.js | 1 - .../ckeditor/plugins/newpage/lang/en-au.js | 1 - .../ckeditor/plugins/newpage/lang/en-ca.js | 1 - .../ckeditor/plugins/newpage/lang/en-gb.js | 1 - .../ckeditor/plugins/newpage/lang/en.js | 1 - .../ckeditor/plugins/newpage/lang/eo.js | 1 - .../ckeditor/plugins/newpage/lang/es.js | 1 - .../ckeditor/plugins/newpage/lang/et.js | 1 - .../ckeditor/plugins/newpage/lang/eu.js | 1 - .../ckeditor/plugins/newpage/lang/fa.js | 1 - .../ckeditor/plugins/newpage/lang/fi.js | 1 - .../ckeditor/plugins/newpage/lang/fo.js | 1 - .../ckeditor/plugins/newpage/lang/fr-ca.js | 1 - .../ckeditor/plugins/newpage/lang/fr.js | 1 - .../ckeditor/plugins/newpage/lang/gl.js | 1 - .../ckeditor/plugins/newpage/lang/gu.js | 1 - .../ckeditor/plugins/newpage/lang/he.js | 1 - .../ckeditor/plugins/newpage/lang/hi.js | 1 - .../ckeditor/plugins/newpage/lang/hr.js | 1 - .../ckeditor/plugins/newpage/lang/hu.js | 1 - .../ckeditor/plugins/newpage/lang/id.js | 1 - .../ckeditor/plugins/newpage/lang/is.js | 1 - .../ckeditor/plugins/newpage/lang/it.js | 1 - .../ckeditor/plugins/newpage/lang/ja.js | 1 - .../ckeditor/plugins/newpage/lang/ka.js | 1 - .../ckeditor/plugins/newpage/lang/km.js | 1 - .../ckeditor/plugins/newpage/lang/ko.js | 1 - .../ckeditor/plugins/newpage/lang/ku.js | 1 - .../ckeditor/plugins/newpage/lang/lt.js | 1 - .../ckeditor/plugins/newpage/lang/lv.js | 1 - .../ckeditor/plugins/newpage/lang/mk.js | 1 - .../ckeditor/plugins/newpage/lang/mn.js | 1 - .../ckeditor/plugins/newpage/lang/ms.js | 1 - .../ckeditor/plugins/newpage/lang/nb.js | 1 - .../ckeditor/plugins/newpage/lang/nl.js | 1 - .../ckeditor/plugins/newpage/lang/no.js | 1 - .../ckeditor/plugins/newpage/lang/pl.js | 1 - .../ckeditor/plugins/newpage/lang/pt-br.js | 1 - .../ckeditor/plugins/newpage/lang/pt.js | 1 - .../ckeditor/plugins/newpage/lang/ro.js | 1 - .../ckeditor/plugins/newpage/lang/ru.js | 1 - .../ckeditor/plugins/newpage/lang/si.js | 1 - .../ckeditor/plugins/newpage/lang/sk.js | 1 - .../ckeditor/plugins/newpage/lang/sl.js | 1 - .../ckeditor/plugins/newpage/lang/sq.js | 1 - .../ckeditor/plugins/newpage/lang/sr-latn.js | 1 - .../ckeditor/plugins/newpage/lang/sr.js | 1 - .../ckeditor/plugins/newpage/lang/sv.js | 1 - .../ckeditor/plugins/newpage/lang/th.js | 1 - .../ckeditor/plugins/newpage/lang/tr.js | 1 - .../ckeditor/plugins/newpage/lang/tt.js | 1 - .../ckeditor/plugins/newpage/lang/ug.js | 1 - .../ckeditor/plugins/newpage/lang/uk.js | 1 - .../ckeditor/plugins/newpage/lang/vi.js | 1 - .../ckeditor/plugins/newpage/lang/zh-cn.js | 1 - .../ckeditor/plugins/newpage/lang/zh.js | 1 - .../ckeditor/plugins/newpage/plugin.js | 6 - .../ckeditor/plugins/notification/lang/cs.js | 1 - .../ckeditor/plugins/notification/lang/da.js | 1 - .../ckeditor/plugins/notification/lang/de-ch.js | 1 - .../ckeditor/plugins/notification/lang/de.js | 1 - .../ckeditor/plugins/notification/lang/en.js | 1 - .../ckeditor/plugins/notification/lang/eo.js | 1 - .../ckeditor/plugins/notification/lang/eu.js | 1 - .../ckeditor/plugins/notification/lang/fr.js | 1 - .../ckeditor/plugins/notification/lang/gl.js | 1 - .../ckeditor/plugins/notification/lang/id.js | 1 - .../ckeditor/plugins/notification/lang/it.js | 1 - .../ckeditor/plugins/notification/lang/ko.js | 1 - .../ckeditor/plugins/notification/lang/ku.js | 1 - .../ckeditor/plugins/notification/lang/nb.js | 1 - .../ckeditor/plugins/notification/lang/nl.js | 1 - .../ckeditor/plugins/notification/lang/pl.js | 1 - .../ckeditor/plugins/notification/lang/pt-br.js | 1 - .../ckeditor/plugins/notification/lang/ru.js | 1 - .../ckeditor/plugins/notification/lang/sv.js | 1 - .../ckeditor/plugins/notification/lang/tr.js | 1 - .../ckeditor/plugins/notification/lang/ug.js | 1 - .../ckeditor/plugins/notification/lang/uk.js | 1 - .../ckeditor/plugins/notification/lang/zh-cn.js | 1 - .../ckeditor/plugins/notification/lang/zh.js | 1 - .../ckeditor/plugins/notification/plugin.js | 19 - .../plugins/notificationaggregator/plugin.js | 9 - .../pagebreak/icons/hidpi/pagebreak-rtl.png | Bin 1318 -> 0 bytes .../plugins/pagebreak/icons/hidpi/pagebreak.png | Bin 1299 -> 0 bytes .../plugins/pagebreak/icons/pagebreak-rtl.png | Bin 629 -> 0 bytes .../ckeditor/plugins/pagebreak/icons/pagebreak.png | Bin 602 -> 0 bytes .../plugins/pagebreak/images/pagebreak.gif | Bin 99 -> 0 bytes .../ckeditor/plugins/pagebreak/lang/af.js | 1 - .../ckeditor/plugins/pagebreak/lang/ar.js | 1 - .../ckeditor/plugins/pagebreak/lang/bg.js | 1 - .../ckeditor/plugins/pagebreak/lang/bn.js | 1 - .../ckeditor/plugins/pagebreak/lang/bs.js | 1 - .../ckeditor/plugins/pagebreak/lang/ca.js | 1 - .../ckeditor/plugins/pagebreak/lang/cs.js | 1 - .../ckeditor/plugins/pagebreak/lang/cy.js | 1 - .../ckeditor/plugins/pagebreak/lang/da.js | 1 - .../ckeditor/plugins/pagebreak/lang/de-ch.js | 1 - .../ckeditor/plugins/pagebreak/lang/de.js | 1 - .../ckeditor/plugins/pagebreak/lang/el.js | 1 - .../ckeditor/plugins/pagebreak/lang/en-au.js | 1 - .../ckeditor/plugins/pagebreak/lang/en-ca.js | 1 - .../ckeditor/plugins/pagebreak/lang/en-gb.js | 1 - .../ckeditor/plugins/pagebreak/lang/en.js | 1 - .../ckeditor/plugins/pagebreak/lang/eo.js | 1 - .../ckeditor/plugins/pagebreak/lang/es.js | 1 - .../ckeditor/plugins/pagebreak/lang/et.js | 1 - .../ckeditor/plugins/pagebreak/lang/eu.js | 1 - .../ckeditor/plugins/pagebreak/lang/fa.js | 1 - .../ckeditor/plugins/pagebreak/lang/fi.js | 1 - .../ckeditor/plugins/pagebreak/lang/fo.js | 1 - .../ckeditor/plugins/pagebreak/lang/fr-ca.js | 1 - .../ckeditor/plugins/pagebreak/lang/fr.js | 1 - .../ckeditor/plugins/pagebreak/lang/gl.js | 1 - .../ckeditor/plugins/pagebreak/lang/gu.js | 1 - .../ckeditor/plugins/pagebreak/lang/he.js | 1 - .../ckeditor/plugins/pagebreak/lang/hi.js | 1 - .../ckeditor/plugins/pagebreak/lang/hr.js | 1 - .../ckeditor/plugins/pagebreak/lang/hu.js | 1 - .../ckeditor/plugins/pagebreak/lang/id.js | 1 - .../ckeditor/plugins/pagebreak/lang/is.js | 1 - .../ckeditor/plugins/pagebreak/lang/it.js | 1 - .../ckeditor/plugins/pagebreak/lang/ja.js | 1 - .../ckeditor/plugins/pagebreak/lang/ka.js | 1 - .../ckeditor/plugins/pagebreak/lang/km.js | 1 - .../ckeditor/plugins/pagebreak/lang/ko.js | 1 - .../ckeditor/plugins/pagebreak/lang/ku.js | 1 - .../ckeditor/plugins/pagebreak/lang/lt.js | 1 - .../ckeditor/plugins/pagebreak/lang/lv.js | 1 - .../ckeditor/plugins/pagebreak/lang/mk.js | 1 - .../ckeditor/plugins/pagebreak/lang/mn.js | 1 - .../ckeditor/plugins/pagebreak/lang/ms.js | 1 - .../ckeditor/plugins/pagebreak/lang/nb.js | 1 - .../ckeditor/plugins/pagebreak/lang/nl.js | 1 - .../ckeditor/plugins/pagebreak/lang/no.js | 1 - .../ckeditor/plugins/pagebreak/lang/pl.js | 1 - .../ckeditor/plugins/pagebreak/lang/pt-br.js | 1 - .../ckeditor/plugins/pagebreak/lang/pt.js | 1 - .../ckeditor/plugins/pagebreak/lang/ro.js | 1 - .../ckeditor/plugins/pagebreak/lang/ru.js | 1 - .../ckeditor/plugins/pagebreak/lang/si.js | 1 - .../ckeditor/plugins/pagebreak/lang/sk.js | 1 - .../ckeditor/plugins/pagebreak/lang/sl.js | 1 - .../ckeditor/plugins/pagebreak/lang/sq.js | 1 - .../ckeditor/plugins/pagebreak/lang/sr-latn.js | 1 - .../ckeditor/plugins/pagebreak/lang/sr.js | 1 - .../ckeditor/plugins/pagebreak/lang/sv.js | 1 - .../ckeditor/plugins/pagebreak/lang/th.js | 1 - .../ckeditor/plugins/pagebreak/lang/tr.js | 1 - .../ckeditor/plugins/pagebreak/lang/tt.js | 1 - .../ckeditor/plugins/pagebreak/lang/ug.js | 1 - .../ckeditor/plugins/pagebreak/lang/uk.js | 1 - .../ckeditor/plugins/pagebreak/lang/vi.js | 1 - .../ckeditor/plugins/pagebreak/lang/zh-cn.js | 1 - .../ckeditor/plugins/pagebreak/lang/zh.js | 1 - .../ckeditor/plugins/pagebreak/plugin.js | 9 - .../ckeditor/plugins/panelbutton/plugin.js | 8 - .../plugins/pastefromword/filter/default.js | 32 - .../plugins/placeholder/dialogs/placeholder.js | 5 - .../placeholder/icons/hidpi/placeholder.png | Bin 1775 -> 0 bytes .../plugins/placeholder/icons/placeholder.png | Bin 714 -> 0 bytes .../ckeditor/plugins/placeholder/lang/af.js | 5 - .../ckeditor/plugins/placeholder/lang/ar.js | 5 - .../ckeditor/plugins/placeholder/lang/bg.js | 5 - .../ckeditor/plugins/placeholder/lang/ca.js | 5 - .../ckeditor/plugins/placeholder/lang/cs.js | 5 - .../ckeditor/plugins/placeholder/lang/cy.js | 5 - .../ckeditor/plugins/placeholder/lang/da.js | 5 - .../ckeditor/plugins/placeholder/lang/de-ch.js | 5 - .../ckeditor/plugins/placeholder/lang/de.js | 5 - .../ckeditor/plugins/placeholder/lang/el.js | 5 - .../ckeditor/plugins/placeholder/lang/en-gb.js | 5 - .../ckeditor/plugins/placeholder/lang/en.js | 5 - .../ckeditor/plugins/placeholder/lang/eo.js | 5 - .../ckeditor/plugins/placeholder/lang/es.js | 5 - .../ckeditor/plugins/placeholder/lang/et.js | 5 - .../ckeditor/plugins/placeholder/lang/eu.js | 5 - .../ckeditor/plugins/placeholder/lang/fa.js | 5 - .../ckeditor/plugins/placeholder/lang/fi.js | 5 - .../ckeditor/plugins/placeholder/lang/fr-ca.js | 5 - .../ckeditor/plugins/placeholder/lang/fr.js | 5 - .../ckeditor/plugins/placeholder/lang/gl.js | 5 - .../ckeditor/plugins/placeholder/lang/he.js | 5 - .../ckeditor/plugins/placeholder/lang/hr.js | 5 - .../ckeditor/plugins/placeholder/lang/hu.js | 5 - .../ckeditor/plugins/placeholder/lang/id.js | 5 - .../ckeditor/plugins/placeholder/lang/it.js | 5 - .../ckeditor/plugins/placeholder/lang/ja.js | 5 - .../ckeditor/plugins/placeholder/lang/km.js | 5 - .../ckeditor/plugins/placeholder/lang/ko.js | 5 - .../ckeditor/plugins/placeholder/lang/ku.js | 5 - .../ckeditor/plugins/placeholder/lang/lv.js | 5 - .../ckeditor/plugins/placeholder/lang/nb.js | 5 - .../ckeditor/plugins/placeholder/lang/nl.js | 5 - .../ckeditor/plugins/placeholder/lang/no.js | 5 - .../ckeditor/plugins/placeholder/lang/pl.js | 5 - .../ckeditor/plugins/placeholder/lang/pt-br.js | 5 - .../ckeditor/plugins/placeholder/lang/pt.js | 5 - .../ckeditor/plugins/placeholder/lang/ru.js | 5 - .../ckeditor/plugins/placeholder/lang/si.js | 5 - .../ckeditor/plugins/placeholder/lang/sk.js | 5 - .../ckeditor/plugins/placeholder/lang/sl.js | 5 - .../ckeditor/plugins/placeholder/lang/sq.js | 5 - .../ckeditor/plugins/placeholder/lang/sv.js | 5 - .../ckeditor/plugins/placeholder/lang/th.js | 5 - .../ckeditor/plugins/placeholder/lang/tr.js | 5 - .../ckeditor/plugins/placeholder/lang/tt.js | 5 - .../ckeditor/plugins/placeholder/lang/ug.js | 5 - .../ckeditor/plugins/placeholder/lang/uk.js | 5 - .../ckeditor/plugins/placeholder/lang/vi.js | 5 - .../ckeditor/plugins/placeholder/lang/zh-cn.js | 5 - .../ckeditor/plugins/placeholder/lang/zh.js | 5 - .../ckeditor/plugins/placeholder/plugin.js | 7 - .../plugins/preview/icons/hidpi/preview-rtl.png | Bin 2145 -> 0 bytes .../plugins/preview/icons/hidpi/preview.png | Bin 2204 -> 0 bytes .../ckeditor/plugins/preview/icons/preview-rtl.png | Bin 850 -> 0 bytes .../ckeditor/plugins/preview/icons/preview.png | Bin 855 -> 0 bytes .../ckeditor/plugins/preview/lang/af.js | 1 - .../ckeditor/plugins/preview/lang/ar.js | 1 - .../ckeditor/plugins/preview/lang/bg.js | 1 - .../ckeditor/plugins/preview/lang/bn.js | 1 - .../ckeditor/plugins/preview/lang/bs.js | 1 - .../ckeditor/plugins/preview/lang/ca.js | 1 - .../ckeditor/plugins/preview/lang/cs.js | 1 - .../ckeditor/plugins/preview/lang/cy.js | 1 - .../ckeditor/plugins/preview/lang/da.js | 1 - .../ckeditor/plugins/preview/lang/de-ch.js | 1 - .../ckeditor/plugins/preview/lang/de.js | 1 - .../ckeditor/plugins/preview/lang/el.js | 1 - .../ckeditor/plugins/preview/lang/en-au.js | 1 - .../ckeditor/plugins/preview/lang/en-ca.js | 1 - .../ckeditor/plugins/preview/lang/en-gb.js | 1 - .../ckeditor/plugins/preview/lang/en.js | 1 - .../ckeditor/plugins/preview/lang/eo.js | 1 - .../ckeditor/plugins/preview/lang/es.js | 1 - .../ckeditor/plugins/preview/lang/et.js | 1 - .../ckeditor/plugins/preview/lang/eu.js | 1 - .../ckeditor/plugins/preview/lang/fa.js | 1 - .../ckeditor/plugins/preview/lang/fi.js | 1 - .../ckeditor/plugins/preview/lang/fo.js | 1 - .../ckeditor/plugins/preview/lang/fr-ca.js | 1 - .../ckeditor/plugins/preview/lang/fr.js | 1 - .../ckeditor/plugins/preview/lang/gl.js | 1 - .../ckeditor/plugins/preview/lang/gu.js | 1 - .../ckeditor/plugins/preview/lang/he.js | 1 - .../ckeditor/plugins/preview/lang/hi.js | 1 - .../ckeditor/plugins/preview/lang/hr.js | 1 - .../ckeditor/plugins/preview/lang/hu.js | 1 - .../ckeditor/plugins/preview/lang/id.js | 1 - .../ckeditor/plugins/preview/lang/is.js | 1 - .../ckeditor/plugins/preview/lang/it.js | 1 - .../ckeditor/plugins/preview/lang/ja.js | 1 - .../ckeditor/plugins/preview/lang/ka.js | 1 - .../ckeditor/plugins/preview/lang/km.js | 1 - .../ckeditor/plugins/preview/lang/ko.js | 1 - .../ckeditor/plugins/preview/lang/ku.js | 1 - .../ckeditor/plugins/preview/lang/lt.js | 1 - .../ckeditor/plugins/preview/lang/lv.js | 1 - .../ckeditor/plugins/preview/lang/mk.js | 1 - .../ckeditor/plugins/preview/lang/mn.js | 1 - .../ckeditor/plugins/preview/lang/ms.js | 1 - .../ckeditor/plugins/preview/lang/nb.js | 1 - .../ckeditor/plugins/preview/lang/nl.js | 1 - .../ckeditor/plugins/preview/lang/no.js | 1 - .../ckeditor/plugins/preview/lang/pl.js | 1 - .../ckeditor/plugins/preview/lang/pt-br.js | 1 - .../ckeditor/plugins/preview/lang/pt.js | 1 - .../ckeditor/plugins/preview/lang/ro.js | 1 - .../ckeditor/plugins/preview/lang/ru.js | 1 - .../ckeditor/plugins/preview/lang/si.js | 1 - .../ckeditor/plugins/preview/lang/sk.js | 1 - .../ckeditor/plugins/preview/lang/sl.js | 1 - .../ckeditor/plugins/preview/lang/sq.js | 1 - .../ckeditor/plugins/preview/lang/sr-latn.js | 1 - .../ckeditor/plugins/preview/lang/sr.js | 1 - .../ckeditor/plugins/preview/lang/sv.js | 1 - .../ckeditor/plugins/preview/lang/th.js | 1 - .../ckeditor/plugins/preview/lang/tr.js | 1 - .../ckeditor/plugins/preview/lang/tt.js | 1 - .../ckeditor/plugins/preview/lang/ug.js | 1 - .../ckeditor/plugins/preview/lang/uk.js | 1 - .../ckeditor/plugins/preview/lang/vi.js | 1 - .../ckeditor/plugins/preview/lang/zh-cn.js | 1 - .../ckeditor/plugins/preview/lang/zh.js | 1 - .../ckeditor/plugins/preview/plugin.js | 9 - .../ckeditor/plugins/preview/preview.html | 13 - .../ckeditor/plugins/print/icons/hidpi/print.png | Bin 1648 -> 0 bytes .../ckeditor/plugins/print/icons/print.png | Bin 765 -> 0 bytes .../ckeditor/plugins/print/lang/af.js | 1 - .../ckeditor/plugins/print/lang/ar.js | 1 - .../ckeditor/plugins/print/lang/bg.js | 1 - .../ckeditor/plugins/print/lang/bn.js | 1 - .../ckeditor/plugins/print/lang/bs.js | 1 - .../ckeditor/plugins/print/lang/ca.js | 1 - .../ckeditor/plugins/print/lang/cs.js | 1 - .../ckeditor/plugins/print/lang/cy.js | 1 - .../ckeditor/plugins/print/lang/da.js | 1 - .../ckeditor/plugins/print/lang/de-ch.js | 1 - .../ckeditor/plugins/print/lang/de.js | 1 - .../ckeditor/plugins/print/lang/el.js | 1 - .../ckeditor/plugins/print/lang/en-au.js | 1 - .../ckeditor/plugins/print/lang/en-ca.js | 1 - .../ckeditor/plugins/print/lang/en-gb.js | 1 - .../ckeditor/plugins/print/lang/en.js | 1 - .../ckeditor/plugins/print/lang/eo.js | 1 - .../ckeditor/plugins/print/lang/es.js | 1 - .../ckeditor/plugins/print/lang/et.js | 1 - .../ckeditor/plugins/print/lang/eu.js | 1 - .../ckeditor/plugins/print/lang/fa.js | 1 - .../ckeditor/plugins/print/lang/fi.js | 1 - .../ckeditor/plugins/print/lang/fo.js | 1 - .../ckeditor/plugins/print/lang/fr-ca.js | 1 - .../ckeditor/plugins/print/lang/fr.js | 1 - .../ckeditor/plugins/print/lang/gl.js | 1 - .../ckeditor/plugins/print/lang/gu.js | 1 - .../ckeditor/plugins/print/lang/he.js | 1 - .../ckeditor/plugins/print/lang/hi.js | 1 - .../ckeditor/plugins/print/lang/hr.js | 1 - .../ckeditor/plugins/print/lang/hu.js | 1 - .../ckeditor/plugins/print/lang/id.js | 1 - .../ckeditor/plugins/print/lang/is.js | 1 - .../ckeditor/plugins/print/lang/it.js | 1 - .../ckeditor/plugins/print/lang/ja.js | 1 - .../ckeditor/plugins/print/lang/ka.js | 1 - .../ckeditor/plugins/print/lang/km.js | 1 - .../ckeditor/plugins/print/lang/ko.js | 1 - .../ckeditor/plugins/print/lang/ku.js | 1 - .../ckeditor/plugins/print/lang/lt.js | 1 - .../ckeditor/plugins/print/lang/lv.js | 1 - .../ckeditor/plugins/print/lang/mk.js | 1 - .../ckeditor/plugins/print/lang/mn.js | 1 - .../ckeditor/plugins/print/lang/ms.js | 1 - .../ckeditor/plugins/print/lang/nb.js | 1 - .../ckeditor/plugins/print/lang/nl.js | 1 - .../ckeditor/plugins/print/lang/no.js | 1 - .../ckeditor/plugins/print/lang/pl.js | 1 - .../ckeditor/plugins/print/lang/pt-br.js | 1 - .../ckeditor/plugins/print/lang/pt.js | 1 - .../ckeditor/plugins/print/lang/ro.js | 1 - .../ckeditor/plugins/print/lang/ru.js | 1 - .../ckeditor/plugins/print/lang/si.js | 1 - .../ckeditor/plugins/print/lang/sk.js | 1 - .../ckeditor/plugins/print/lang/sl.js | 1 - .../ckeditor/plugins/print/lang/sq.js | 1 - .../ckeditor/plugins/print/lang/sr-latn.js | 1 - .../ckeditor/plugins/print/lang/sr.js | 1 - .../ckeditor/plugins/print/lang/sv.js | 1 - .../ckeditor/plugins/print/lang/th.js | 1 - .../ckeditor/plugins/print/lang/tr.js | 1 - .../ckeditor/plugins/print/lang/tt.js | 1 - .../ckeditor/plugins/print/lang/ug.js | 1 - .../ckeditor/plugins/print/lang/uk.js | 1 - .../ckeditor/plugins/print/lang/vi.js | 1 - .../ckeditor/plugins/print/lang/zh-cn.js | 1 - .../ckeditor/plugins/print/lang/zh.js | 1 - .../ckeditor/plugins/print/plugin.js | 6 - .../ckeditor/plugins/save/icons/hidpi/save.png | Bin 1648 -> 0 bytes .../ckeditor/plugins/save/icons/save.png | Bin 716 -> 0 bytes .../ckeditor/plugins/save/lang/af.js | 1 - .../ckeditor/plugins/save/lang/ar.js | 1 - .../ckeditor/plugins/save/lang/bg.js | 1 - .../ckeditor/plugins/save/lang/bn.js | 1 - .../ckeditor/plugins/save/lang/bs.js | 1 - .../ckeditor/plugins/save/lang/ca.js | 1 - .../ckeditor/plugins/save/lang/cs.js | 1 - .../ckeditor/plugins/save/lang/cy.js | 1 - .../ckeditor/plugins/save/lang/da.js | 1 - .../ckeditor/plugins/save/lang/de-ch.js | 1 - .../ckeditor/plugins/save/lang/de.js | 1 - .../ckeditor/plugins/save/lang/el.js | 1 - .../ckeditor/plugins/save/lang/en-au.js | 1 - .../ckeditor/plugins/save/lang/en-ca.js | 1 - .../ckeditor/plugins/save/lang/en-gb.js | 1 - .../ckeditor/plugins/save/lang/en.js | 1 - .../ckeditor/plugins/save/lang/eo.js | 1 - .../ckeditor/plugins/save/lang/es.js | 1 - .../ckeditor/plugins/save/lang/et.js | 1 - .../ckeditor/plugins/save/lang/eu.js | 1 - .../ckeditor/plugins/save/lang/fa.js | 1 - .../ckeditor/plugins/save/lang/fi.js | 1 - .../ckeditor/plugins/save/lang/fo.js | 1 - .../ckeditor/plugins/save/lang/fr-ca.js | 1 - .../ckeditor/plugins/save/lang/fr.js | 1 - .../ckeditor/plugins/save/lang/gl.js | 1 - .../ckeditor/plugins/save/lang/gu.js | 1 - .../ckeditor/plugins/save/lang/he.js | 1 - .../ckeditor/plugins/save/lang/hi.js | 1 - .../ckeditor/plugins/save/lang/hr.js | 1 - .../ckeditor/plugins/save/lang/hu.js | 1 - .../ckeditor/plugins/save/lang/id.js | 1 - .../ckeditor/plugins/save/lang/is.js | 1 - .../ckeditor/plugins/save/lang/it.js | 1 - .../ckeditor/plugins/save/lang/ja.js | 1 - .../ckeditor/plugins/save/lang/ka.js | 1 - .../ckeditor/plugins/save/lang/km.js | 1 - .../ckeditor/plugins/save/lang/ko.js | 1 - .../ckeditor/plugins/save/lang/ku.js | 1 - .../ckeditor/plugins/save/lang/lt.js | 1 - .../ckeditor/plugins/save/lang/lv.js | 1 - .../ckeditor/plugins/save/lang/mk.js | 1 - .../ckeditor/plugins/save/lang/mn.js | 1 - .../ckeditor/plugins/save/lang/ms.js | 1 - .../ckeditor/plugins/save/lang/nb.js | 1 - .../ckeditor/plugins/save/lang/nl.js | 1 - .../ckeditor/plugins/save/lang/no.js | 1 - .../ckeditor/plugins/save/lang/pl.js | 1 - .../ckeditor/plugins/save/lang/pt-br.js | 1 - .../ckeditor/plugins/save/lang/pt.js | 1 - .../ckeditor/plugins/save/lang/ro.js | 1 - .../ckeditor/plugins/save/lang/ru.js | 1 - .../ckeditor/plugins/save/lang/si.js | 1 - .../ckeditor/plugins/save/lang/sk.js | 1 - .../ckeditor/plugins/save/lang/sl.js | 1 - .../ckeditor/plugins/save/lang/sq.js | 1 - .../ckeditor/plugins/save/lang/sr-latn.js | 1 - .../ckeditor/plugins/save/lang/sr.js | 1 - .../ckeditor/plugins/save/lang/sv.js | 1 - .../ckeditor/plugins/save/lang/th.js | 1 - .../ckeditor/plugins/save/lang/tr.js | 1 - .../ckeditor/plugins/save/lang/tt.js | 1 - .../ckeditor/plugins/save/lang/ug.js | 1 - .../ckeditor/plugins/save/lang/uk.js | 1 - .../ckeditor/plugins/save/lang/vi.js | 1 - .../ckeditor/plugins/save/lang/zh-cn.js | 1 - .../ckeditor/plugins/save/lang/zh.js | 1 - .../ckeditor/plugins/save/plugin.js | 6 - .../ckeditor/plugins/scayt/CHANGELOG.md | 20 - .../ckeditor/plugins/scayt/LICENSE.md | 28 - .../ckeditor/plugins/scayt/dialogs/options.js | 19 - .../ckeditor/plugins/scayt/dialogs/toolbar.css | 71 - .../plugins/selectall/icons/hidpi/selectall.png | Bin 1093 -> 0 bytes .../ckeditor/plugins/selectall/icons/selectall.png | Bin 665 -> 0 bytes .../ckeditor/plugins/selectall/lang/af.js | 1 - .../ckeditor/plugins/selectall/lang/ar.js | 1 - .../ckeditor/plugins/selectall/lang/bg.js | 1 - .../ckeditor/plugins/selectall/lang/bn.js | 1 - .../ckeditor/plugins/selectall/lang/bs.js | 1 - .../ckeditor/plugins/selectall/lang/ca.js | 1 - .../ckeditor/plugins/selectall/lang/cs.js | 1 - .../ckeditor/plugins/selectall/lang/cy.js | 1 - .../ckeditor/plugins/selectall/lang/da.js | 1 - .../ckeditor/plugins/selectall/lang/de-ch.js | 1 - .../ckeditor/plugins/selectall/lang/de.js | 1 - .../ckeditor/plugins/selectall/lang/el.js | 1 - .../ckeditor/plugins/selectall/lang/en-au.js | 1 - .../ckeditor/plugins/selectall/lang/en-ca.js | 1 - .../ckeditor/plugins/selectall/lang/en-gb.js | 1 - .../ckeditor/plugins/selectall/lang/en.js | 1 - .../ckeditor/plugins/selectall/lang/eo.js | 1 - .../ckeditor/plugins/selectall/lang/es.js | 1 - .../ckeditor/plugins/selectall/lang/et.js | 1 - .../ckeditor/plugins/selectall/lang/eu.js | 1 - .../ckeditor/plugins/selectall/lang/fa.js | 1 - .../ckeditor/plugins/selectall/lang/fi.js | 1 - .../ckeditor/plugins/selectall/lang/fo.js | 1 - .../ckeditor/plugins/selectall/lang/fr-ca.js | 1 - .../ckeditor/plugins/selectall/lang/fr.js | 1 - .../ckeditor/plugins/selectall/lang/gl.js | 1 - .../ckeditor/plugins/selectall/lang/gu.js | 1 - .../ckeditor/plugins/selectall/lang/he.js | 1 - .../ckeditor/plugins/selectall/lang/hi.js | 1 - .../ckeditor/plugins/selectall/lang/hr.js | 1 - .../ckeditor/plugins/selectall/lang/hu.js | 1 - .../ckeditor/plugins/selectall/lang/id.js | 1 - .../ckeditor/plugins/selectall/lang/is.js | 1 - .../ckeditor/plugins/selectall/lang/it.js | 1 - .../ckeditor/plugins/selectall/lang/ja.js | 1 - .../ckeditor/plugins/selectall/lang/ka.js | 1 - .../ckeditor/plugins/selectall/lang/km.js | 1 - .../ckeditor/plugins/selectall/lang/ko.js | 1 - .../ckeditor/plugins/selectall/lang/ku.js | 1 - .../ckeditor/plugins/selectall/lang/lt.js | 1 - .../ckeditor/plugins/selectall/lang/lv.js | 1 - .../ckeditor/plugins/selectall/lang/mk.js | 1 - .../ckeditor/plugins/selectall/lang/mn.js | 1 - .../ckeditor/plugins/selectall/lang/ms.js | 1 - .../ckeditor/plugins/selectall/lang/nb.js | 1 - .../ckeditor/plugins/selectall/lang/nl.js | 1 - .../ckeditor/plugins/selectall/lang/no.js | 1 - .../ckeditor/plugins/selectall/lang/pl.js | 1 - .../ckeditor/plugins/selectall/lang/pt-br.js | 1 - .../ckeditor/plugins/selectall/lang/pt.js | 1 - .../ckeditor/plugins/selectall/lang/ro.js | 1 - .../ckeditor/plugins/selectall/lang/ru.js | 1 - .../ckeditor/plugins/selectall/lang/si.js | 1 - .../ckeditor/plugins/selectall/lang/sk.js | 1 - .../ckeditor/plugins/selectall/lang/sl.js | 1 - .../ckeditor/plugins/selectall/lang/sq.js | 1 - .../ckeditor/plugins/selectall/lang/sr-latn.js | 1 - .../ckeditor/plugins/selectall/lang/sr.js | 1 - .../ckeditor/plugins/selectall/lang/sv.js | 1 - .../ckeditor/plugins/selectall/lang/th.js | 1 - .../ckeditor/plugins/selectall/lang/tr.js | 1 - .../ckeditor/plugins/selectall/lang/tt.js | 1 - .../ckeditor/plugins/selectall/lang/ug.js | 1 - .../ckeditor/plugins/selectall/lang/uk.js | 1 - .../ckeditor/plugins/selectall/lang/vi.js | 1 - .../ckeditor/plugins/selectall/lang/zh-cn.js | 1 - .../ckeditor/plugins/selectall/lang/zh.js | 1 - .../ckeditor/plugins/selectall/plugin.js | 6 - .../ckeditor/plugins/sharedspace/plugin.js | 7 - .../showblocks/icons/hidpi/showblocks-rtl.png | Bin 1853 -> 0 bytes .../plugins/showblocks/icons/hidpi/showblocks.png | Bin 1895 -> 0 bytes .../plugins/showblocks/icons/showblocks-rtl.png | Bin 691 -> 0 bytes .../plugins/showblocks/icons/showblocks.png | Bin 701 -> 0 bytes .../plugins/showblocks/images/block_address.png | Bin 152 -> 0 bytes .../plugins/showblocks/images/block_blockquote.png | Bin 154 -> 0 bytes .../plugins/showblocks/images/block_div.png | Bin 127 -> 0 bytes .../plugins/showblocks/images/block_h1.png | Bin 120 -> 0 bytes .../plugins/showblocks/images/block_h2.png | Bin 127 -> 0 bytes .../plugins/showblocks/images/block_h3.png | Bin 123 -> 0 bytes .../plugins/showblocks/images/block_h4.png | Bin 123 -> 0 bytes .../plugins/showblocks/images/block_h5.png | Bin 126 -> 0 bytes .../plugins/showblocks/images/block_h6.png | Bin 123 -> 0 bytes .../ckeditor/plugins/showblocks/images/block_p.png | Bin 115 -> 0 bytes .../plugins/showblocks/images/block_pre.png | Bin 128 -> 0 bytes .../ckeditor/plugins/showblocks/lang/af.js | 1 - .../ckeditor/plugins/showblocks/lang/ar.js | 1 - .../ckeditor/plugins/showblocks/lang/bg.js | 1 - .../ckeditor/plugins/showblocks/lang/bn.js | 1 - .../ckeditor/plugins/showblocks/lang/bs.js | 1 - .../ckeditor/plugins/showblocks/lang/ca.js | 1 - .../ckeditor/plugins/showblocks/lang/cs.js | 1 - .../ckeditor/plugins/showblocks/lang/cy.js | 1 - .../ckeditor/plugins/showblocks/lang/da.js | 1 - .../ckeditor/plugins/showblocks/lang/de-ch.js | 1 - .../ckeditor/plugins/showblocks/lang/de.js | 1 - .../ckeditor/plugins/showblocks/lang/el.js | 1 - .../ckeditor/plugins/showblocks/lang/en-au.js | 1 - .../ckeditor/plugins/showblocks/lang/en-ca.js | 1 - .../ckeditor/plugins/showblocks/lang/en-gb.js | 1 - .../ckeditor/plugins/showblocks/lang/en.js | 1 - .../ckeditor/plugins/showblocks/lang/eo.js | 1 - .../ckeditor/plugins/showblocks/lang/es.js | 1 - .../ckeditor/plugins/showblocks/lang/et.js | 1 - .../ckeditor/plugins/showblocks/lang/eu.js | 1 - .../ckeditor/plugins/showblocks/lang/fa.js | 1 - .../ckeditor/plugins/showblocks/lang/fi.js | 1 - .../ckeditor/plugins/showblocks/lang/fo.js | 1 - .../ckeditor/plugins/showblocks/lang/fr-ca.js | 1 - .../ckeditor/plugins/showblocks/lang/fr.js | 1 - .../ckeditor/plugins/showblocks/lang/gl.js | 1 - .../ckeditor/plugins/showblocks/lang/gu.js | 1 - .../ckeditor/plugins/showblocks/lang/he.js | 1 - .../ckeditor/plugins/showblocks/lang/hi.js | 1 - .../ckeditor/plugins/showblocks/lang/hr.js | 1 - .../ckeditor/plugins/showblocks/lang/hu.js | 1 - .../ckeditor/plugins/showblocks/lang/id.js | 1 - .../ckeditor/plugins/showblocks/lang/is.js | 1 - .../ckeditor/plugins/showblocks/lang/it.js | 1 - .../ckeditor/plugins/showblocks/lang/ja.js | 1 - .../ckeditor/plugins/showblocks/lang/ka.js | 1 - .../ckeditor/plugins/showblocks/lang/km.js | 1 - .../ckeditor/plugins/showblocks/lang/ko.js | 1 - .../ckeditor/plugins/showblocks/lang/ku.js | 1 - .../ckeditor/plugins/showblocks/lang/lt.js | 1 - .../ckeditor/plugins/showblocks/lang/lv.js | 1 - .../ckeditor/plugins/showblocks/lang/mk.js | 1 - .../ckeditor/plugins/showblocks/lang/mn.js | 1 - .../ckeditor/plugins/showblocks/lang/ms.js | 1 - .../ckeditor/plugins/showblocks/lang/nb.js | 1 - .../ckeditor/plugins/showblocks/lang/nl.js | 1 - .../ckeditor/plugins/showblocks/lang/no.js | 1 - .../ckeditor/plugins/showblocks/lang/pl.js | 1 - .../ckeditor/plugins/showblocks/lang/pt-br.js | 1 - .../ckeditor/plugins/showblocks/lang/pt.js | 1 - .../ckeditor/plugins/showblocks/lang/ro.js | 1 - .../ckeditor/plugins/showblocks/lang/ru.js | 1 - .../ckeditor/plugins/showblocks/lang/si.js | 1 - .../ckeditor/plugins/showblocks/lang/sk.js | 1 - .../ckeditor/plugins/showblocks/lang/sl.js | 1 - .../ckeditor/plugins/showblocks/lang/sq.js | 1 - .../ckeditor/plugins/showblocks/lang/sr-latn.js | 1 - .../ckeditor/plugins/showblocks/lang/sr.js | 1 - .../ckeditor/plugins/showblocks/lang/sv.js | 1 - .../ckeditor/plugins/showblocks/lang/th.js | 1 - .../ckeditor/plugins/showblocks/lang/tr.js | 1 - .../ckeditor/plugins/showblocks/lang/tt.js | 1 - .../ckeditor/plugins/showblocks/lang/ug.js | 1 - .../ckeditor/plugins/showblocks/lang/uk.js | 1 - .../ckeditor/plugins/showblocks/lang/vi.js | 1 - .../ckeditor/plugins/showblocks/lang/zh-cn.js | 1 - .../ckeditor/plugins/showblocks/lang/zh.js | 1 - .../ckeditor/plugins/showblocks/plugin.js | 9 - .../ckeditor/plugins/smiley/dialogs/smiley.js | 11 - .../ckeditor/plugins/smiley/icons/hidpi/smiley.png | Bin 3073 -> 0 bytes .../ckeditor/plugins/smiley/icons/smiley.png | Bin 916 -> 0 bytes .../ckeditor/plugins/smiley/images/angel_smile.gif | Bin 1245 -> 0 bytes .../ckeditor/plugins/smiley/images/angel_smile.png | Bin 1172 -> 0 bytes .../ckeditor/plugins/smiley/images/angry_smile.gif | Bin 1219 -> 0 bytes .../ckeditor/plugins/smiley/images/angry_smile.png | Bin 1220 -> 0 bytes .../plugins/smiley/images/broken_heart.gif | Bin 732 -> 0 bytes .../plugins/smiley/images/broken_heart.png | Bin 1139 -> 0 bytes .../plugins/smiley/images/confused_smile.gif | Bin 1202 -> 0 bytes .../plugins/smiley/images/confused_smile.png | Bin 1101 -> 0 bytes .../ckeditor/plugins/smiley/images/cry_smile.gif | Bin 795 -> 0 bytes .../ckeditor/plugins/smiley/images/cry_smile.png | Bin 1214 -> 0 bytes .../ckeditor/plugins/smiley/images/devil_smile.gif | Bin 1239 -> 0 bytes .../ckeditor/plugins/smiley/images/devil_smile.png | Bin 1220 -> 0 bytes .../plugins/smiley/images/embaressed_smile.gif | Bin 786 -> 0 bytes .../plugins/smiley/images/embarrassed_smile.gif | Bin 786 -> 0 bytes .../plugins/smiley/images/embarrassed_smile.png | Bin 1145 -> 0 bytes .../ckeditor/plugins/smiley/images/envelope.gif | Bin 506 -> 0 bytes .../ckeditor/plugins/smiley/images/envelope.png | Bin 760 -> 0 bytes .../ckeditor/plugins/smiley/images/heart.gif | Bin 692 -> 0 bytes .../ckeditor/plugins/smiley/images/heart.png | Bin 999 -> 0 bytes .../ckeditor/plugins/smiley/images/kiss.gif | Bin 683 -> 0 bytes .../ckeditor/plugins/smiley/images/kiss.png | Bin 1003 -> 0 bytes .../ckeditor/plugins/smiley/images/lightbulb.gif | Bin 660 -> 0 bytes .../ckeditor/plugins/smiley/images/lightbulb.png | Bin 919 -> 0 bytes .../ckeditor/plugins/smiley/images/omg_smile.gif | Bin 820 -> 0 bytes .../ckeditor/plugins/smiley/images/omg_smile.png | Bin 1122 -> 0 bytes .../plugins/smiley/images/regular_smile.gif | Bin 1209 -> 0 bytes .../plugins/smiley/images/regular_smile.png | Bin 1084 -> 0 bytes .../ckeditor/plugins/smiley/images/sad_smile.gif | Bin 782 -> 0 bytes .../ckeditor/plugins/smiley/images/sad_smile.png | Bin 1115 -> 0 bytes .../plugins/smiley/images/shades_smile.gif | Bin 1231 -> 0 bytes .../plugins/smiley/images/shades_smile.png | Bin 1204 -> 0 bytes .../ckeditor/plugins/smiley/images/teeth_smile.gif | Bin 1201 -> 0 bytes .../ckeditor/plugins/smiley/images/teeth_smile.png | Bin 1183 -> 0 bytes .../ckeditor/plugins/smiley/images/thumbs_down.gif | Bin 715 -> 0 bytes .../ckeditor/plugins/smiley/images/thumbs_down.png | Bin 985 -> 0 bytes .../ckeditor/plugins/smiley/images/thumbs_up.gif | Bin 714 -> 0 bytes .../ckeditor/plugins/smiley/images/thumbs_up.png | Bin 959 -> 0 bytes .../plugins/smiley/images/tongue_smile.gif | Bin 1210 -> 0 bytes .../plugins/smiley/images/tongue_smile.png | Bin 1132 -> 0 bytes .../plugins/smiley/images/tounge_smile.gif | Bin 1210 -> 0 bytes .../smiley/images/whatchutalkingabout_smile.gif | Bin 775 -> 0 bytes .../smiley/images/whatchutalkingabout_smile.png | Bin 1039 -> 0 bytes .../ckeditor/plugins/smiley/images/wink_smile.gif | Bin 1202 -> 0 bytes .../ckeditor/plugins/smiley/images/wink_smile.png | Bin 1114 -> 0 bytes .../ckeditor/plugins/smiley/lang/af.js | 1 - .../ckeditor/plugins/smiley/lang/ar.js | 1 - .../ckeditor/plugins/smiley/lang/bg.js | 1 - .../ckeditor/plugins/smiley/lang/bn.js | 1 - .../ckeditor/plugins/smiley/lang/bs.js | 1 - .../ckeditor/plugins/smiley/lang/ca.js | 1 - .../ckeditor/plugins/smiley/lang/cs.js | 1 - .../ckeditor/plugins/smiley/lang/cy.js | 1 - .../ckeditor/plugins/smiley/lang/da.js | 1 - .../ckeditor/plugins/smiley/lang/de-ch.js | 1 - .../ckeditor/plugins/smiley/lang/de.js | 1 - .../ckeditor/plugins/smiley/lang/el.js | 1 - .../ckeditor/plugins/smiley/lang/en-au.js | 1 - .../ckeditor/plugins/smiley/lang/en-ca.js | 1 - .../ckeditor/plugins/smiley/lang/en-gb.js | 1 - .../ckeditor/plugins/smiley/lang/en.js | 1 - .../ckeditor/plugins/smiley/lang/eo.js | 1 - .../ckeditor/plugins/smiley/lang/es.js | 1 - .../ckeditor/plugins/smiley/lang/et.js | 1 - .../ckeditor/plugins/smiley/lang/eu.js | 1 - .../ckeditor/plugins/smiley/lang/fa.js | 1 - .../ckeditor/plugins/smiley/lang/fi.js | 1 - .../ckeditor/plugins/smiley/lang/fo.js | 1 - .../ckeditor/plugins/smiley/lang/fr-ca.js | 1 - .../ckeditor/plugins/smiley/lang/fr.js | 1 - .../ckeditor/plugins/smiley/lang/gl.js | 1 - .../ckeditor/plugins/smiley/lang/gu.js | 1 - .../ckeditor/plugins/smiley/lang/he.js | 1 - .../ckeditor/plugins/smiley/lang/hi.js | 1 - .../ckeditor/plugins/smiley/lang/hr.js | 1 - .../ckeditor/plugins/smiley/lang/hu.js | 1 - .../ckeditor/plugins/smiley/lang/id.js | 1 - .../ckeditor/plugins/smiley/lang/is.js | 1 - .../ckeditor/plugins/smiley/lang/it.js | 1 - .../ckeditor/plugins/smiley/lang/ja.js | 1 - .../ckeditor/plugins/smiley/lang/ka.js | 1 - .../ckeditor/plugins/smiley/lang/km.js | 1 - .../ckeditor/plugins/smiley/lang/ko.js | 1 - .../ckeditor/plugins/smiley/lang/ku.js | 1 - .../ckeditor/plugins/smiley/lang/lt.js | 1 - .../ckeditor/plugins/smiley/lang/lv.js | 1 - .../ckeditor/plugins/smiley/lang/mk.js | 1 - .../ckeditor/plugins/smiley/lang/mn.js | 1 - .../ckeditor/plugins/smiley/lang/ms.js | 1 - .../ckeditor/plugins/smiley/lang/nb.js | 1 - .../ckeditor/plugins/smiley/lang/nl.js | 1 - .../ckeditor/plugins/smiley/lang/no.js | 1 - .../ckeditor/plugins/smiley/lang/pl.js | 1 - .../ckeditor/plugins/smiley/lang/pt-br.js | 1 - .../ckeditor/plugins/smiley/lang/pt.js | 1 - .../ckeditor/plugins/smiley/lang/ro.js | 1 - .../ckeditor/plugins/smiley/lang/ru.js | 1 - .../ckeditor/plugins/smiley/lang/si.js | 1 - .../ckeditor/plugins/smiley/lang/sk.js | 1 - .../ckeditor/plugins/smiley/lang/sl.js | 1 - .../ckeditor/plugins/smiley/lang/sq.js | 1 - .../ckeditor/plugins/smiley/lang/sr-latn.js | 1 - .../ckeditor/plugins/smiley/lang/sr.js | 1 - .../ckeditor/plugins/smiley/lang/sv.js | 1 - .../ckeditor/plugins/smiley/lang/th.js | 1 - .../ckeditor/plugins/smiley/lang/tr.js | 1 - .../ckeditor/plugins/smiley/lang/tt.js | 1 - .../ckeditor/plugins/smiley/lang/ug.js | 1 - .../ckeditor/plugins/smiley/lang/uk.js | 1 - .../ckeditor/plugins/smiley/lang/vi.js | 1 - .../ckeditor/plugins/smiley/lang/zh-cn.js | 1 - .../ckeditor/plugins/smiley/lang/zh.js | 1 - .../ckeditor/plugins/smiley/plugin.js | 7 - .../plugins/sourcedialog/dialogs/sourcedialog.js | 6 - .../sourcedialog/icons/hidpi/sourcedialog-rtl.png | Bin 1968 -> 0 bytes .../sourcedialog/icons/hidpi/sourcedialog.png | Bin 1999 -> 0 bytes .../sourcedialog/icons/sourcedialog-rtl.png | Bin 762 -> 0 bytes .../plugins/sourcedialog/icons/sourcedialog.png | Bin 764 -> 0 bytes .../ckeditor/plugins/sourcedialog/lang/af.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ar.js | 1 - .../ckeditor/plugins/sourcedialog/lang/bg.js | 1 - .../ckeditor/plugins/sourcedialog/lang/bn.js | 1 - .../ckeditor/plugins/sourcedialog/lang/bs.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ca.js | 1 - .../ckeditor/plugins/sourcedialog/lang/cs.js | 1 - .../ckeditor/plugins/sourcedialog/lang/cy.js | 1 - .../ckeditor/plugins/sourcedialog/lang/da.js | 1 - .../ckeditor/plugins/sourcedialog/lang/de-ch.js | 1 - .../ckeditor/plugins/sourcedialog/lang/de.js | 1 - .../ckeditor/plugins/sourcedialog/lang/el.js | 1 - .../ckeditor/plugins/sourcedialog/lang/en-au.js | 1 - .../ckeditor/plugins/sourcedialog/lang/en-ca.js | 1 - .../ckeditor/plugins/sourcedialog/lang/en-gb.js | 1 - .../ckeditor/plugins/sourcedialog/lang/en.js | 1 - .../ckeditor/plugins/sourcedialog/lang/eo.js | 1 - .../ckeditor/plugins/sourcedialog/lang/es.js | 1 - .../ckeditor/plugins/sourcedialog/lang/et.js | 1 - .../ckeditor/plugins/sourcedialog/lang/eu.js | 1 - .../ckeditor/plugins/sourcedialog/lang/fa.js | 1 - .../ckeditor/plugins/sourcedialog/lang/fi.js | 1 - .../ckeditor/plugins/sourcedialog/lang/fo.js | 1 - .../ckeditor/plugins/sourcedialog/lang/fr-ca.js | 1 - .../ckeditor/plugins/sourcedialog/lang/fr.js | 1 - .../ckeditor/plugins/sourcedialog/lang/gl.js | 1 - .../ckeditor/plugins/sourcedialog/lang/gu.js | 1 - .../ckeditor/plugins/sourcedialog/lang/he.js | 1 - .../ckeditor/plugins/sourcedialog/lang/hi.js | 1 - .../ckeditor/plugins/sourcedialog/lang/hr.js | 1 - .../ckeditor/plugins/sourcedialog/lang/hu.js | 1 - .../ckeditor/plugins/sourcedialog/lang/id.js | 1 - .../ckeditor/plugins/sourcedialog/lang/is.js | 1 - .../ckeditor/plugins/sourcedialog/lang/it.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ja.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ka.js | 1 - .../ckeditor/plugins/sourcedialog/lang/km.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ko.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ku.js | 1 - .../ckeditor/plugins/sourcedialog/lang/lt.js | 1 - .../ckeditor/plugins/sourcedialog/lang/lv.js | 1 - .../ckeditor/plugins/sourcedialog/lang/mn.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ms.js | 1 - .../ckeditor/plugins/sourcedialog/lang/nb.js | 1 - .../ckeditor/plugins/sourcedialog/lang/nl.js | 1 - .../ckeditor/plugins/sourcedialog/lang/no.js | 1 - .../ckeditor/plugins/sourcedialog/lang/pl.js | 1 - .../ckeditor/plugins/sourcedialog/lang/pt-br.js | 1 - .../ckeditor/plugins/sourcedialog/lang/pt.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ro.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ru.js | 1 - .../ckeditor/plugins/sourcedialog/lang/si.js | 1 - .../ckeditor/plugins/sourcedialog/lang/sk.js | 1 - .../ckeditor/plugins/sourcedialog/lang/sl.js | 1 - .../ckeditor/plugins/sourcedialog/lang/sq.js | 1 - .../ckeditor/plugins/sourcedialog/lang/sr-latn.js | 1 - .../ckeditor/plugins/sourcedialog/lang/sr.js | 1 - .../ckeditor/plugins/sourcedialog/lang/sv.js | 1 - .../ckeditor/plugins/sourcedialog/lang/th.js | 1 - .../ckeditor/plugins/sourcedialog/lang/tr.js | 1 - .../ckeditor/plugins/sourcedialog/lang/tt.js | 1 - .../ckeditor/plugins/sourcedialog/lang/ug.js | 1 - .../ckeditor/plugins/sourcedialog/lang/uk.js | 1 - .../ckeditor/plugins/sourcedialog/lang/vi.js | 1 - .../ckeditor/plugins/sourcedialog/lang/zh-cn.js | 1 - .../ckeditor/plugins/sourcedialog/lang/zh.js | 1 - .../ckeditor/plugins/sourcedialog/plugin.js | 6 - .../dialogs/lang/_translationstatus.txt | 20 - .../plugins/specialchar/dialogs/lang/af.js | 13 - .../plugins/specialchar/dialogs/lang/ar.js | 13 - .../plugins/specialchar/dialogs/lang/bg.js | 13 - .../plugins/specialchar/dialogs/lang/ca.js | 14 - .../plugins/specialchar/dialogs/lang/cs.js | 13 - .../plugins/specialchar/dialogs/lang/cy.js | 14 - .../plugins/specialchar/dialogs/lang/da.js | 11 - .../plugins/specialchar/dialogs/lang/de-ch.js | 13 - .../plugins/specialchar/dialogs/lang/de.js | 13 - .../plugins/specialchar/dialogs/lang/el.js | 13 - .../plugins/specialchar/dialogs/lang/en-gb.js | 13 - .../plugins/specialchar/dialogs/lang/en.js | 13 - .../plugins/specialchar/dialogs/lang/eo.js | 12 - .../plugins/specialchar/dialogs/lang/es.js | 13 - .../plugins/specialchar/dialogs/lang/et.js | 13 - .../plugins/specialchar/dialogs/lang/eu.js | 13 - .../plugins/specialchar/dialogs/lang/fa.js | 12 - .../plugins/specialchar/dialogs/lang/fi.js | 13 - .../plugins/specialchar/dialogs/lang/fr-ca.js | 10 - .../plugins/specialchar/dialogs/lang/fr.js | 11 - .../plugins/specialchar/dialogs/lang/gl.js | 13 - .../plugins/specialchar/dialogs/lang/he.js | 12 - .../plugins/specialchar/dialogs/lang/hr.js | 13 - .../plugins/specialchar/dialogs/lang/hu.js | 12 - .../plugins/specialchar/dialogs/lang/id.js | 13 - .../plugins/specialchar/dialogs/lang/it.js | 14 - .../plugins/specialchar/dialogs/lang/ja.js | 9 - .../plugins/specialchar/dialogs/lang/km.js | 13 - .../plugins/specialchar/dialogs/lang/ko.js | 10 - .../plugins/specialchar/dialogs/lang/ku.js | 13 - .../plugins/specialchar/dialogs/lang/lt.js | 13 - .../plugins/specialchar/dialogs/lang/lv.js | 13 - .../plugins/specialchar/dialogs/lang/nb.js | 11 - .../plugins/specialchar/dialogs/lang/nl.js | 13 - .../plugins/specialchar/dialogs/lang/no.js | 11 - .../plugins/specialchar/dialogs/lang/pl.js | 12 - .../plugins/specialchar/dialogs/lang/pt-br.js | 11 - .../plugins/specialchar/dialogs/lang/pt.js | 13 - .../plugins/specialchar/dialogs/lang/ru.js | 13 - .../plugins/specialchar/dialogs/lang/si.js | 13 - .../plugins/specialchar/dialogs/lang/sk.js | 13 - .../plugins/specialchar/dialogs/lang/sl.js | 12 - .../plugins/specialchar/dialogs/lang/sq.js | 13 - .../plugins/specialchar/dialogs/lang/sv.js | 11 - .../plugins/specialchar/dialogs/lang/th.js | 13 - .../plugins/specialchar/dialogs/lang/tr.js | 12 - .../plugins/specialchar/dialogs/lang/tt.js | 13 - .../plugins/specialchar/dialogs/lang/ug.js | 13 - .../plugins/specialchar/dialogs/lang/uk.js | 12 - .../plugins/specialchar/dialogs/lang/vi.js | 14 - .../plugins/specialchar/dialogs/lang/zh-cn.js | 9 - .../plugins/specialchar/dialogs/lang/zh.js | 9 - .../plugins/specialchar/dialogs/specialchar.js | 14 - .../ckeditor/plugins/stylesheetparser/plugin.js | 7 - .../ckeditor/plugins/table/dialogs/table.js | 21 - .../ckeditor/plugins/tableresize/plugin.js | 13 - .../plugins/tabletools/dialogs/tableCell.js | 17 - .../plugins/templates/dialogs/templates.css | 84 - .../plugins/templates/dialogs/templates.js | 10 - .../templates/icons/hidpi/templates-rtl.png | Bin 1387 -> 0 bytes .../plugins/templates/icons/hidpi/templates.png | Bin 1387 -> 0 bytes .../plugins/templates/icons/templates-rtl.png | Bin 639 -> 0 bytes .../ckeditor/plugins/templates/icons/templates.png | Bin 639 -> 0 bytes .../ckeditor/plugins/templates/lang/af.js | 1 - .../ckeditor/plugins/templates/lang/ar.js | 1 - .../ckeditor/plugins/templates/lang/bg.js | 1 - .../ckeditor/plugins/templates/lang/bn.js | 1 - .../ckeditor/plugins/templates/lang/bs.js | 1 - .../ckeditor/plugins/templates/lang/ca.js | 1 - .../ckeditor/plugins/templates/lang/cs.js | 1 - .../ckeditor/plugins/templates/lang/cy.js | 1 - .../ckeditor/plugins/templates/lang/da.js | 1 - .../ckeditor/plugins/templates/lang/de-ch.js | 1 - .../ckeditor/plugins/templates/lang/de.js | 1 - .../ckeditor/plugins/templates/lang/el.js | 1 - .../ckeditor/plugins/templates/lang/en-au.js | 1 - .../ckeditor/plugins/templates/lang/en-ca.js | 1 - .../ckeditor/plugins/templates/lang/en-gb.js | 1 - .../ckeditor/plugins/templates/lang/en.js | 1 - .../ckeditor/plugins/templates/lang/eo.js | 1 - .../ckeditor/plugins/templates/lang/es.js | 1 - .../ckeditor/plugins/templates/lang/et.js | 1 - .../ckeditor/plugins/templates/lang/eu.js | 1 - .../ckeditor/plugins/templates/lang/fa.js | 1 - .../ckeditor/plugins/templates/lang/fi.js | 1 - .../ckeditor/plugins/templates/lang/fo.js | 1 - .../ckeditor/plugins/templates/lang/fr-ca.js | 1 - .../ckeditor/plugins/templates/lang/fr.js | 1 - .../ckeditor/plugins/templates/lang/gl.js | 1 - .../ckeditor/plugins/templates/lang/gu.js | 1 - .../ckeditor/plugins/templates/lang/he.js | 1 - .../ckeditor/plugins/templates/lang/hi.js | 1 - .../ckeditor/plugins/templates/lang/hr.js | 1 - .../ckeditor/plugins/templates/lang/hu.js | 1 - .../ckeditor/plugins/templates/lang/id.js | 1 - .../ckeditor/plugins/templates/lang/is.js | 1 - .../ckeditor/plugins/templates/lang/it.js | 1 - .../ckeditor/plugins/templates/lang/ja.js | 1 - .../ckeditor/plugins/templates/lang/ka.js | 1 - .../ckeditor/plugins/templates/lang/km.js | 1 - .../ckeditor/plugins/templates/lang/ko.js | 1 - .../ckeditor/plugins/templates/lang/ku.js | 1 - .../ckeditor/plugins/templates/lang/lt.js | 1 - .../ckeditor/plugins/templates/lang/lv.js | 1 - .../ckeditor/plugins/templates/lang/mk.js | 1 - .../ckeditor/plugins/templates/lang/mn.js | 1 - .../ckeditor/plugins/templates/lang/ms.js | 1 - .../ckeditor/plugins/templates/lang/nb.js | 1 - .../ckeditor/plugins/templates/lang/nl.js | 1 - .../ckeditor/plugins/templates/lang/no.js | 1 - .../ckeditor/plugins/templates/lang/pl.js | 1 - .../ckeditor/plugins/templates/lang/pt-br.js | 1 - .../ckeditor/plugins/templates/lang/pt.js | 1 - .../ckeditor/plugins/templates/lang/ro.js | 1 - .../ckeditor/plugins/templates/lang/ru.js | 1 - .../ckeditor/plugins/templates/lang/si.js | 1 - .../ckeditor/plugins/templates/lang/sk.js | 1 - .../ckeditor/plugins/templates/lang/sl.js | 1 - .../ckeditor/plugins/templates/lang/sq.js | 1 - .../ckeditor/plugins/templates/lang/sr-latn.js | 1 - .../ckeditor/plugins/templates/lang/sr.js | 1 - .../ckeditor/plugins/templates/lang/sv.js | 1 - .../ckeditor/plugins/templates/lang/th.js | 1 - .../ckeditor/plugins/templates/lang/tr.js | 1 - .../ckeditor/plugins/templates/lang/tt.js | 1 - .../ckeditor/plugins/templates/lang/ug.js | 1 - .../ckeditor/plugins/templates/lang/uk.js | 1 - .../ckeditor/plugins/templates/lang/vi.js | 1 - .../ckeditor/plugins/templates/lang/zh-cn.js | 1 - .../ckeditor/plugins/templates/lang/zh.js | 1 - .../ckeditor/plugins/templates/plugin.js | 7 - .../plugins/templates/templates/default.js | 7 - .../templates/templates/images/template1.gif | Bin 375 -> 0 bytes .../templates/templates/images/template2.gif | Bin 333 -> 0 bytes .../templates/templates/images/template3.gif | Bin 422 -> 0 bytes .../ckeditor/plugins/uicolor/dialogs/uicolor.js | 9 - .../plugins/uicolor/icons/hidpi/uicolor.png | Bin 2287 -> 0 bytes .../ckeditor/plugins/uicolor/icons/uicolor.png | Bin 965 -> 0 bytes .../plugins/uicolor/lang/_translationstatus.txt | 27 - .../ckeditor/plugins/uicolor/lang/af.js | 5 - .../ckeditor/plugins/uicolor/lang/ar.js | 5 - .../ckeditor/plugins/uicolor/lang/bg.js | 5 - .../ckeditor/plugins/uicolor/lang/ca.js | 5 - .../ckeditor/plugins/uicolor/lang/cs.js | 5 - .../ckeditor/plugins/uicolor/lang/cy.js | 5 - .../ckeditor/plugins/uicolor/lang/da.js | 5 - .../ckeditor/plugins/uicolor/lang/de-ch.js | 5 - .../ckeditor/plugins/uicolor/lang/de.js | 5 - .../ckeditor/plugins/uicolor/lang/el.js | 5 - .../ckeditor/plugins/uicolor/lang/en-gb.js | 5 - .../ckeditor/plugins/uicolor/lang/en.js | 5 - .../ckeditor/plugins/uicolor/lang/eo.js | 5 - .../ckeditor/plugins/uicolor/lang/es.js | 5 - .../ckeditor/plugins/uicolor/lang/et.js | 5 - .../ckeditor/plugins/uicolor/lang/eu.js | 5 - .../ckeditor/plugins/uicolor/lang/fa.js | 5 - .../ckeditor/plugins/uicolor/lang/fi.js | 5 - .../ckeditor/plugins/uicolor/lang/fr-ca.js | 5 - .../ckeditor/plugins/uicolor/lang/fr.js | 5 - .../ckeditor/plugins/uicolor/lang/gl.js | 5 - .../ckeditor/plugins/uicolor/lang/he.js | 5 - .../ckeditor/plugins/uicolor/lang/hr.js | 5 - .../ckeditor/plugins/uicolor/lang/hu.js | 5 - .../ckeditor/plugins/uicolor/lang/id.js | 5 - .../ckeditor/plugins/uicolor/lang/it.js | 5 - .../ckeditor/plugins/uicolor/lang/ja.js | 5 - .../ckeditor/plugins/uicolor/lang/km.js | 5 - .../ckeditor/plugins/uicolor/lang/ko.js | 5 - .../ckeditor/plugins/uicolor/lang/ku.js | 5 - .../ckeditor/plugins/uicolor/lang/lv.js | 5 - .../ckeditor/plugins/uicolor/lang/mk.js | 5 - .../ckeditor/plugins/uicolor/lang/nb.js | 5 - .../ckeditor/plugins/uicolor/lang/nl.js | 5 - .../ckeditor/plugins/uicolor/lang/no.js | 5 - .../ckeditor/plugins/uicolor/lang/pl.js | 5 - .../ckeditor/plugins/uicolor/lang/pt-br.js | 5 - .../ckeditor/plugins/uicolor/lang/pt.js | 5 - .../ckeditor/plugins/uicolor/lang/ru.js | 5 - .../ckeditor/plugins/uicolor/lang/si.js | 5 - .../ckeditor/plugins/uicolor/lang/sk.js | 5 - .../ckeditor/plugins/uicolor/lang/sl.js | 5 - .../ckeditor/plugins/uicolor/lang/sq.js | 5 - .../ckeditor/plugins/uicolor/lang/sv.js | 5 - .../ckeditor/plugins/uicolor/lang/tr.js | 5 - .../ckeditor/plugins/uicolor/lang/tt.js | 5 - .../ckeditor/plugins/uicolor/lang/ug.js | 5 - .../ckeditor/plugins/uicolor/lang/uk.js | 5 - .../ckeditor/plugins/uicolor/lang/vi.js | 5 - .../ckeditor/plugins/uicolor/lang/zh-cn.js | 5 - .../ckeditor/plugins/uicolor/lang/zh.js | 5 - .../ckeditor/plugins/uicolor/plugin.js | 6 - .../ckeditor/plugins/uicolor/yui/assets/hue_bg.png | Bin 1120 -> 0 bytes .../plugins/uicolor/yui/assets/hue_thumb.png | Bin 195 -> 0 bytes .../plugins/uicolor/yui/assets/picker_mask.png | Bin 12174 -> 0 bytes .../plugins/uicolor/yui/assets/picker_thumb.png | Bin 192 -> 0 bytes .../ckeditor/plugins/uicolor/yui/assets/yui.css | 7 - .../ckeditor/plugins/uicolor/yui/yui.js | 223 - .../ckeditor/plugins/uploadimage/plugin.js | 7 - .../ckeditor/plugins/uploadwidget/lang/cs.js | 5 - .../ckeditor/plugins/uploadwidget/lang/da.js | 5 - .../ckeditor/plugins/uploadwidget/lang/de-ch.js | 5 - .../ckeditor/plugins/uploadwidget/lang/de.js | 5 - .../ckeditor/plugins/uploadwidget/lang/el.js | 5 - .../ckeditor/plugins/uploadwidget/lang/en.js | 5 - .../ckeditor/plugins/uploadwidget/lang/eo.js | 5 - .../ckeditor/plugins/uploadwidget/lang/eu.js | 5 - .../ckeditor/plugins/uploadwidget/lang/fr.js | 5 - .../ckeditor/plugins/uploadwidget/lang/gl.js | 5 - .../ckeditor/plugins/uploadwidget/lang/hu.js | 5 - .../ckeditor/plugins/uploadwidget/lang/id.js | 5 - .../ckeditor/plugins/uploadwidget/lang/it.js | 5 - .../ckeditor/plugins/uploadwidget/lang/ko.js | 5 - .../ckeditor/plugins/uploadwidget/lang/ku.js | 5 - .../ckeditor/plugins/uploadwidget/lang/nb.js | 5 - .../ckeditor/plugins/uploadwidget/lang/nl.js | 5 - .../ckeditor/plugins/uploadwidget/lang/pl.js | 5 - .../ckeditor/plugins/uploadwidget/lang/pt-br.js | 5 - .../ckeditor/plugins/uploadwidget/lang/ru.js | 5 - .../ckeditor/plugins/uploadwidget/lang/sv.js | 5 - .../ckeditor/plugins/uploadwidget/lang/tr.js | 5 - .../ckeditor/plugins/uploadwidget/lang/ug.js | 5 - .../ckeditor/plugins/uploadwidget/lang/uk.js | 5 - .../ckeditor/plugins/uploadwidget/lang/zh-cn.js | 5 - .../ckeditor/plugins/uploadwidget/lang/zh.js | 5 - .../ckeditor/plugins/uploadwidget/plugin.js | 10 - .../ckeditor/plugins/widget/images/handle.png | Bin 220 -> 0 bytes .../ckeditor/plugins/widget/lang/af.js | 5 - .../ckeditor/plugins/widget/lang/ar.js | 5 - .../ckeditor/plugins/widget/lang/bg.js | 5 - .../ckeditor/plugins/widget/lang/ca.js | 5 - .../ckeditor/plugins/widget/lang/cs.js | 5 - .../ckeditor/plugins/widget/lang/cy.js | 5 - .../ckeditor/plugins/widget/lang/da.js | 5 - .../ckeditor/plugins/widget/lang/de-ch.js | 5 - .../ckeditor/plugins/widget/lang/de.js | 5 - .../ckeditor/plugins/widget/lang/el.js | 5 - .../ckeditor/plugins/widget/lang/en-gb.js | 5 - .../ckeditor/plugins/widget/lang/en.js | 5 - .../ckeditor/plugins/widget/lang/eo.js | 5 - .../ckeditor/plugins/widget/lang/es.js | 5 - .../ckeditor/plugins/widget/lang/eu.js | 5 - .../ckeditor/plugins/widget/lang/fa.js | 5 - .../ckeditor/plugins/widget/lang/fi.js | 5 - .../ckeditor/plugins/widget/lang/fr.js | 5 - .../ckeditor/plugins/widget/lang/gl.js | 5 - .../ckeditor/plugins/widget/lang/he.js | 5 - .../ckeditor/plugins/widget/lang/hr.js | 5 - .../ckeditor/plugins/widget/lang/hu.js | 5 - .../ckeditor/plugins/widget/lang/id.js | 5 - .../ckeditor/plugins/widget/lang/it.js | 5 - .../ckeditor/plugins/widget/lang/ja.js | 5 - .../ckeditor/plugins/widget/lang/km.js | 5 - .../ckeditor/plugins/widget/lang/ko.js | 5 - .../ckeditor/plugins/widget/lang/ku.js | 5 - .../ckeditor/plugins/widget/lang/lv.js | 5 - .../ckeditor/plugins/widget/lang/nb.js | 5 - .../ckeditor/plugins/widget/lang/nl.js | 5 - .../ckeditor/plugins/widget/lang/no.js | 5 - .../ckeditor/plugins/widget/lang/pl.js | 5 - .../ckeditor/plugins/widget/lang/pt-br.js | 5 - .../ckeditor/plugins/widget/lang/pt.js | 5 - .../ckeditor/plugins/widget/lang/ru.js | 5 - .../ckeditor/plugins/widget/lang/sk.js | 5 - .../ckeditor/plugins/widget/lang/sl.js | 5 - .../ckeditor/plugins/widget/lang/sq.js | 5 - .../ckeditor/plugins/widget/lang/sv.js | 5 - .../ckeditor/plugins/widget/lang/tr.js | 5 - .../ckeditor/plugins/widget/lang/tt.js | 5 - .../ckeditor/plugins/widget/lang/ug.js | 5 - .../ckeditor/plugins/widget/lang/uk.js | 5 - .../ckeditor/plugins/widget/lang/vi.js | 5 - .../ckeditor/plugins/widget/lang/zh-cn.js | 5 - .../ckeditor/plugins/widget/lang/zh.js | 5 - .../ckeditor/plugins/widget/plugin.js | 60 - .../ckeditor/plugins/wsc/LICENSE.md | 28 - .../ckeditor/plugins/wsc/dialogs/ciframe.html | 66 - .../ckeditor/plugins/wsc/dialogs/tmpFrameset.html | 52 - .../ckeditor/plugins/wsc/dialogs/wsc.css | 82 - .../ckeditor/plugins/wsc/dialogs/wsc.js | 92 - .../ckeditor/plugins/wsc/dialogs/wsc_ie.js | 11 - .../ckeditor/plugins/xml/plugin.js | 7 - .../ckeditor/samples/css/samples.css | 1640 - .../ckeditor/samples/img/github-top.png | Bin 383 -> 0 bytes .../ckeditor/samples/img/header-bg.png | Bin 13086 -> 0 bytes .../ckeditor/samples/img/header-separator.png | Bin 123 -> 0 bytes .../bower_components/ckeditor/samples/img/logo.png | Bin 5891 -> 0 bytes .../ckeditor/samples/img/navigation-tip.png | Bin 12029 -> 0 bytes .../bower_components/ckeditor/samples/index.html | 128 - .../bower_components/ckeditor/samples/js/sample.js | 53 - public/bower_components/ckeditor/samples/js/sf.js | 17 - .../ckeditor/samples/old/ajax.html | 85 - .../bower_components/ckeditor/samples/old/api.html | 210 - .../ckeditor/samples/old/appendto.html | 59 - .../ckeditor/samples/old/assets/inlineall/logo.png | Bin 4283 -> 0 bytes .../samples/old/assets/outputxhtml/outputxhtml.css | 204 - .../ckeditor/samples/old/assets/posteddata.php | 59 - .../ckeditor/samples/old/assets/sample.jpg | Bin 14449 -> 0 bytes .../samples/old/assets/uilanguages/languages.js | 7 - .../ckeditor/samples/old/autogrow/autogrow.html | 102 - .../ckeditor/samples/old/bbcode/bbcode.html | 114 - .../samples/old/codesnippet/codesnippet.html | 236 - .../ckeditor/samples/old/datafiltering.html | 508 - .../ckeditor/samples/old/devtools/devtools.html | 86 - .../samples/old/dialog/assets/my_dialog.js | 48 - .../ckeditor/samples/old/dialog/dialog.html | 190 - .../ckeditor/samples/old/divarea/divarea.html | 64 - .../ckeditor/samples/old/divreplace.html | 144 - .../ckeditor/samples/old/docprops/docprops.html | 81 - .../ckeditor/samples/old/enterkey/enterkey.html | 106 - .../assets/outputforflash/outputforflash.fla | Bin 85504 -> 0 bytes .../assets/outputforflash/outputforflash.swf | Bin 15571 -> 0 bytes .../htmlwriter/assets/outputforflash/swfobject.js | 19 - .../samples/old/htmlwriter/outputforflash.html | 283 - .../samples/old/htmlwriter/outputhtml.html | 224 - .../ckeditor/samples/old/image2/assets/image1.jpg | Bin 33171 -> 0 bytes .../ckeditor/samples/old/image2/assets/image2.jpg | Bin 26238 -> 0 bytes .../ckeditor/samples/old/image2/image2.html | 68 - .../ckeditor/samples/old/index.html | 173 - .../ckeditor/samples/old/inlineall.html | 314 - .../ckeditor/samples/old/inlinebycode.html | 124 - .../ckeditor/samples/old/inlinetextarea.html | 113 - .../ckeditor/samples/old/jquery.html | 103 - .../ckeditor/samples/old/magicline/magicline.html | 209 - .../ckeditor/samples/old/mathjax/mathjax.html | 38 - .../samples/old/placeholder/placeholder.html | 75 - .../ckeditor/samples/old/readonly.html | 76 - .../ckeditor/samples/old/replacebyclass.html | 60 - .../ckeditor/samples/old/replacebycode.html | 59 - .../ckeditor/samples/old/sample.css | 357 - .../ckeditor/samples/old/sample.js | 50 - .../ckeditor/samples/old/sample_posteddata.php | 16 - .../samples/old/sharedspace/sharedspace.html | 122 - .../samples/old/sourcedialog/sourcedialog.html | 121 - .../samples/old/stylesheetparser/assets/sample.css | 70 - .../old/stylesheetparser/stylesheetparser.html | 85 - .../ckeditor/samples/old/tabindex.html | 78 - .../samples/old/tableresize/tableresize.html | 107 - .../ckeditor/samples/old/toolbar/toolbar.html | 235 - .../ckeditor/samples/old/uicolor.html | 72 - .../ckeditor/samples/old/uicolor/uicolor.html | 106 - .../ckeditor/samples/old/uilanguages.html | 122 - .../ckeditor/samples/old/wysiwygarea/fullpage.html | 80 - .../ckeditor/samples/old/xhtmlstyle.html | 234 - .../samples/toolbarconfigurator/css/fontello.css | 55 - .../samples/toolbarconfigurator/font/LICENSE.txt | 10 - .../samples/toolbarconfigurator/font/config.json | 28 - .../samples/toolbarconfigurator/font/fontello.eot | Bin 4988 -> 0 bytes .../samples/toolbarconfigurator/font/fontello.svg | 14 - .../samples/toolbarconfigurator/font/fontello.ttf | Bin 4820 -> 0 bytes .../samples/toolbarconfigurator/font/fontello.woff | Bin 2904 -> 0 bytes .../samples/toolbarconfigurator/index.html | 446 - .../js/abstracttoolbarmodifier.js | 13 - .../toolbarconfigurator/js/fulltoolbareditor.js | 9 - .../toolbarconfigurator/js/toolbarmodifier.js | 33 - .../toolbarconfigurator/js/toolbartextmodifier.js | 14 - .../toolbarconfigurator/lib/codemirror/LICENSE | 19 - .../lib/codemirror/codemirror.css | 325 - .../lib/codemirror/codemirror.js | 288 - .../lib/codemirror/javascript.js | 25 - .../toolbarconfigurator/lib/codemirror/neo.css | 36 - .../lib/codemirror/show-hint.css | 38 - .../lib/codemirror/show-hint.js | 16 - .../ckeditor/skins/kama/dialog.css | 5 - .../ckeditor/skins/kama/dialog_ie.css | 5 - .../ckeditor/skins/kama/dialog_ie7.css | 5 - .../ckeditor/skins/kama/dialog_ie8.css | 5 - .../ckeditor/skins/kama/dialog_iequirks.css | 5 - .../ckeditor/skins/kama/editor.css | 5 - .../ckeditor/skins/kama/editor_ie.css | 5 - .../ckeditor/skins/kama/editor_ie7.css | 5 - .../ckeditor/skins/kama/editor_ie8.css | 5 - .../ckeditor/skins/kama/editor_iequirks.css | 5 - .../bower_components/ckeditor/skins/kama/icons.png | Bin 9855 -> 0 bytes .../ckeditor/skins/kama/icons_hidpi.png | Bin 16078 -> 0 bytes .../ckeditor/skins/kama/images/dialog_sides.gif | Bin 47 -> 0 bytes .../ckeditor/skins/kama/images/dialog_sides.png | Bin 125 -> 0 bytes .../skins/kama/images/dialog_sides_rtl.png | Bin 128 -> 0 bytes .../ckeditor/skins/kama/images/mini.gif | Bin 181 -> 0 bytes .../ckeditor/skins/kama/images/spinner.gif | Bin 2984 -> 0 bytes .../ckeditor/skins/kama/images/sprites.png | Bin 6117 -> 0 bytes .../ckeditor/skins/kama/images/sprites_ie6.png | Bin 2658 -> 0 bytes .../ckeditor/skins/kama/images/toolbar_start.gif | Bin 102 -> 0 bytes .../bower_components/ckeditor/skins/kama/readme.md | 38 - .../bower_components/ckeditor/skins/kama/skin.js | 8 - .../ckeditor/skins/moono/dialog.css | 5 - .../ckeditor/skins/moono/dialog_ie.css | 5 - .../ckeditor/skins/moono/dialog_ie7.css | 5 - .../ckeditor/skins/moono/dialog_ie8.css | 5 - .../ckeditor/skins/moono/dialog_iequirks.css | 5 - .../ckeditor/skins/moono/editor.css | 5 - .../ckeditor/skins/moono/editor_gecko.css | 5 - .../ckeditor/skins/moono/editor_ie.css | 5 - .../ckeditor/skins/moono/editor_ie7.css | 5 - .../ckeditor/skins/moono/editor_ie8.css | 5 - .../ckeditor/skins/moono/editor_iequirks.css | 5 - .../ckeditor/skins/moono/icons.png | Bin 18319 -> 0 bytes .../ckeditor/skins/moono/icons_hidpi.png | Bin 63530 -> 0 bytes .../ckeditor/skins/moono/images/arrow.png | Bin 191 -> 0 bytes .../ckeditor/skins/moono/images/close.png | Bin 468 -> 0 bytes .../ckeditor/skins/moono/images/hidpi/close.png | Bin 1271 -> 0 bytes .../skins/moono/images/hidpi/lock-open.png | Bin 1329 -> 0 bytes .../ckeditor/skins/moono/images/hidpi/lock.png | Bin 1299 -> 0 bytes .../ckeditor/skins/moono/images/hidpi/refresh.png | Bin 1842 -> 0 bytes .../ckeditor/skins/moono/images/lock-open.png | Bin 349 -> 0 bytes .../ckeditor/skins/moono/images/lock.png | Bin 475 -> 0 bytes .../ckeditor/skins/moono/images/refresh.png | Bin 422 -> 0 bytes .../ckeditor/skins/moono/images/spinner.gif | Bin 2984 -> 0 bytes .../ckeditor/skins/moono/readme.md | 49 - public/bower_components/ckeditor/styles.js | 111 - public/index.html | 4 +- release-notes/changelog_0.0.108.txt | 3 +- server/api/action/action.controller.js | 2 +- server/api/action/action.socket.js | 2 +- server/api/action/index.js | 2 +- server/api/agent/agent.controller.js | 2 +- server/api/agent/agent.socket.js | 2 +- server/api/agent/index.js | 2 +- server/api/ami/ami.ami.js | 2 +- server/api/ami/ami.controller.js | 2 +- server/api/ami/ami.socket.js | 2 +- server/api/ami/index.js | 2 +- server/api/automation/automation.controller.js | 2 +- server/api/automation/automation.socket.js | 2 +- server/api/automation/index.js | 2 +- .../api/canned_answer/canned_answer.controller.js | 2 +- server/api/canned_answer/canned_answer.socket.js | 2 +- server/api/canned_answer/index.js | 2 +- server/api/chanspy/chanspy.controller.js | 2 +- server/api/chanspy/chanspy.socket.js | 2 +- server/api/chanspy/index.js | 2 +- .../chat_application.controller.js | 2 +- .../chat_application/chat_application.socket.js | 2 +- server/api/chat_application/index.js | 2 +- .../chat_disposition.controller.js | 2 +- .../chat_disposition/chat_disposition.socket.js | 2 +- server/api/chat_disposition/index.js | 2 +- server/api/chat_enquiry/enquiry.controller.js | 2 +- server/api/chat_enquiry/enquiry.socket.js | 2 +- server/api/chat_enquiry/index.js | 2 +- server/api/chat_message/chat_message.controller.js | 2 +- server/api/chat_message/chat_message.socket.js | 2 +- server/api/chat_message/index.js | 2 +- .../chat_proactive_action.controller.js | 2 +- .../chat_proactive_action.socket.js | 2 +- server/api/chat_proactive_action/index.js | 2 +- server/api/chat_queue/chat_queue.controller.js | 2 +- server/api/chat_queue/chat_queue.socket.js | 2 +- server/api/chat_queue/index.js | 2 +- server/api/chat_room/chat_room.controller.js | 2 +- server/api/chat_room/chat_room.socket.js | 2 +- server/api/chat_room/index.js | 2 +- server/api/chat_visitor/chat_visitor.controller.js | 2 +- server/api/chat_visitor/chat_visitor.socket.js | 2 +- server/api/chat_visitor/index.js | 2 +- server/api/chat_website/chat_website.controller.js | 2 +- server/api/chat_website/chat_website.socket.js | 2 +- server/api/chat_website/index.js | 2 +- .../chat_websites_field.controller.js | 2 +- .../chat_websites_field.socket.js | 2 +- server/api/chat_websites_field/index.js | 2 +- server/api/company/company.controller.js | 2 +- server/api/company/company.socket.js | 2 +- server/api/company/index.js | 2 +- .../contact_manager/contact_manager.controller.js | 2 +- .../api/contact_manager/contact_manager.socket.js | 2 +- server/api/contact_manager/index.js | 2 +- .../api/custom_report/custom_report.controller.js | 2 +- server/api/custom_report/custom_report.socket.js | 2 +- server/api/custom_report/index.js | 2 +- server/api/dashboard/dashboard.controller.js | 2 +- server/api/dashboard/dashboard.socket.js | 2 +- server/api/dashboard/index.js | 2 +- .../default_metric/default_metric.controller.js | 2 +- server/api/default_metric/default_metric.socket.js | 2 +- server/api/default_metric/index.js | 2 +- .../default_report/default_report.controller.js | 2 +- server/api/default_report/default_report.socket.js | 2 +- server/api/default_report/index.js | 2 +- server/api/desk_account/desk_account.controller.js | 2 +- server/api/desk_account/desk_account.socket.js | 2 +- server/api/desk_account/index.js | 2 +- .../desk_configuration.controller.js | 2 +- .../desk_configuration.socket.js | 2 +- server/api/desk_configuration/index.js | 2 +- server/api/desk_field/desk_field.controller.js | 2 +- server/api/desk_field/desk_field.socket.js | 2 +- server/api/desk_field/index.js | 2 +- .../extracted_report.controller.js | 2 +- .../extracted_report/extracted_report.socket.js | 2 +- server/api/extracted_report/index.js | 2 +- server/api/fax_account/fax_account.controller.js | 2 +- server/api/fax_account/fax_account.socket.js | 2 +- server/api/fax_account/index.js | 2 +- .../fax_application/fax_application.controller.js | 2 +- .../api/fax_application/fax_application.socket.js | 2 +- server/api/fax_application/index.js | 2 +- .../fax_attachment/fax_attachment.controller.js | 2 +- server/api/fax_attachment/fax_attachment.socket.js | 2 +- server/api/fax_attachment/index.js | 2 +- .../fax_disposition/fax_disposition.controller.js | 2 +- .../api/fax_disposition/fax_disposition.socket.js | 2 +- server/api/fax_disposition/index.js | 2 +- server/api/fax_message/fax_message.ami.js | 2 +- server/api/fax_message/fax_message.controller.js | 2 +- server/api/fax_message/fax_message.socket.js | 2 +- server/api/fax_message/index.js | 2 +- server/api/fax_queue/fax_queue.controller.js | 2 +- server/api/fax_queue/fax_queue.socket.js | 2 +- server/api/fax_queue/index.js | 2 +- server/api/fax_room/fax_room.controller.js | 2 +- server/api/fax_room/fax_room.socket.js | 2 +- server/api/fax_room/index.js | 2 +- .../freshdesk_account.controller.js | 2 +- .../freshdesk_account/freshdesk_account.socket.js | 2 +- server/api/freshdesk_account/index.js | 2 +- server/api/freshdesk_account/index.spec.js | 2 +- .../freshdesk_configuration.controller.js | 2 +- .../freshdesk_configuration.socket.js | 2 +- server/api/freshdesk_configuration/index.js | 2 +- server/api/freshdesk_configuration/index.spec.js | 2 +- .../freshdesk_field/freshdesk_field.controller.js | 2 +- .../api/freshdesk_field/freshdesk_field.socket.js | 2 +- server/api/freshdesk_field/index.js | 2 +- server/api/freshdesk_field/index.spec.js | 2 +- server/api/integration/index.js | 2 +- server/api/integration/integration.controller.js | 2 +- server/api/integration/integration.socket.js | 2 +- server/api/interval/index.js | 2 +- server/api/interval/interval.controller.js | 2 +- server/api/interval/interval.socket.js | 2 +- server/api/jscripty_project/index.js | 2 +- .../jscripty_project.controller.js | 2 +- .../jscripty_project/jscripty_project.socket.js | 2 +- server/api/license/index.js | 2 +- server/api/license/license.controller.js | 2 +- server/api/license/license.socket.js | 2 +- server/api/list/index.js | 2 +- server/api/list/list.controller.js | 2 +- server/api/list/list.socket.js | 2 +- server/api/mail_account/index.js | 2 +- server/api/mail_account/mail_account.controller.js | 2 +- server/api/mail_account/mail_account.socket.js | 2 +- server/api/mail_application/index.js | 2 +- .../mail_application.controller.js | 2 +- .../mail_application/mail_application.socket.js | 2 +- server/api/mail_attachment/index.js | 2 +- .../mail_attachment/mail_attachment.controller.js | 2 +- .../api/mail_attachment/mail_attachment.socket.js | 2 +- server/api/mail_disposition/index.js | 2 +- .../mail_disposition.controller.js | 2 +- .../mail_disposition/mail_disposition.socket.js | 2 +- server/api/mail_message/index.js | 2 +- server/api/mail_message/mail_message.controller.js | 2 +- server/api/mail_message/mail_message.socket.js | 2 +- server/api/mail_queue/index.js | 2 +- server/api/mail_queue/mail_queue.controller.js | 2 +- server/api/mail_queue/mail_queue.socket.js | 2 +- server/api/mail_room/index.js | 2 +- server/api/mail_room/mail_room.controller.js | 2 +- server/api/mail_room/mail_room.socket.js | 2 +- server/api/mail_server_in/index.js | 2 +- .../mail_server_in/mail_server_in.controller.js | 2 +- server/api/mail_server_in/mail_server_in.socket.js | 2 +- server/api/mail_server_out/index.js | 2 +- .../mail_server_out/mail_server_out.controller.js | 2 +- .../api/mail_server_out/mail_server_out.socket.js | 2 +- server/api/metric/index.js | 2 +- server/api/metric/metric.controller.js | 2 +- server/api/metric/metric.socket.js | 2 +- server/api/module/index.js | 2 +- server/api/module/module.controller.js | 2 +- server/api/module/module.socket.js | 2 +- server/api/motionbar/index.js | 2 +- server/api/motionbar/motionbar.controller.js | 2 +- server/api/motionbar/motionbar.socket.js | 2 +- server/api/network_externip/index.js | 2 +- .../network_externip.controller.js | 2 +- .../network_externip/network_externip.socket.js | 2 +- server/api/network_localnet/index.js | 2 +- .../network_localnet.controller.js | 2 +- .../network_localnet/network_localnet.socket.js | 2 +- server/api/pause/index.js | 2 +- server/api/pause/pause.controller.js | 2 +- server/api/pause/pause.socket.js | 2 +- server/api/report_agent/index.js | 2 +- server/api/report_agent/report_agent.controller.js | 2 +- server/api/report_agent/report_agent.socket.js | 2 +- server/api/report_call/index.js | 2 +- server/api/report_call/report_call.controller.js | 2 +- server/api/report_call/report_call.socket.js | 2 +- server/api/report_chat/index.js | 2 +- server/api/report_chat/report_chat.controller.js | 2 +- server/api/report_chat/report_chat.socket.js | 2 +- server/api/report_chat_room/index.js | 2 +- .../report_chat_room.controller.js | 2 +- .../report_chat_room/report_chat_room.socket.js | 2 +- server/api/report_chat_session/index.js | 2 +- .../report_chat_session.controller.js | 2 +- .../report_chat_session.socket.js | 2 +- server/api/report_fax/index.js | 2 +- server/api/report_fax/report_fax.controller.js | 2 +- server/api/report_fax/report_fax.socket.js | 2 +- server/api/report_fax_room/index.js | 2 +- .../report_fax_room/report_fax_room.controller.js | 2 +- .../api/report_fax_room/report_fax_room.socket.js | 2 +- server/api/report_fax_session/index.js | 2 +- .../report_fax_session.controller.js | 2 +- .../report_fax_session.socket.js | 2 +- server/api/report_integration/index.js | 2 +- .../report_integration.controller.js | 2 +- .../report_integration.socket.js | 2 +- server/api/report_mail/index.js | 2 +- server/api/report_mail/report_mail.controller.js | 2 +- server/api/report_mail/report_mail.socket.js | 2 +- server/api/report_mail_room/index.js | 2 +- .../report_mail_room.controller.js | 2 +- .../report_mail_room/report_mail_room.socket.js | 2 +- server/api/report_mail_session/index.js | 2 +- .../report_mail_session.controller.js | 2 +- .../report_mail_session.socket.js | 2 +- server/api/report_member/index.js | 2 +- .../api/report_member/report_member.controller.js | 2 +- server/api/report_member/report_member.socket.js | 2 +- server/api/report_queue/index.js | 2 +- server/api/report_queue/report_queue.controller.js | 2 +- server/api/report_queue/report_queue.socket.js | 2 +- server/api/report_sms/index.js | 2 +- server/api/report_sms/report_sms.controller.js | 2 +- server/api/report_sms/report_sms.socket.js | 2 +- server/api/report_sms_room/index.js | 2 +- .../report_sms_room/report_sms_room.controller.js | 2 +- .../api/report_sms_room/report_sms_room.socket.js | 2 +- server/api/report_sms_session/index.js | 2 +- .../report_sms_session.controller.js | 2 +- .../report_sms_session.socket.js | 2 +- server/api/report_square/index.js | 2 +- .../api/report_square/report_square.controller.js | 2 +- server/api/report_square/report_square.socket.js | 2 +- server/api/report_square_detail/index.js | 2 +- .../report_square_detail.controller.js | 2 +- .../report_square_detail.socket.js | 2 +- server/api/report_tree/index.js | 2 +- server/api/report_tree/report_tree.controller.js | 2 +- server/api/report_tree/report_tree.socket.js | 2 +- server/api/salesforce_account/index.js | 2 +- .../salesforce_account.controller.js | 2 +- .../salesforce_account.socket.js | 2 +- server/api/salesforce_configuration/index.js | 2 +- .../salesforce_configuration.controller.js | 2 +- .../salesforce_configuration.socket.js | 2 +- server/api/salesforce_field/index.js | 2 +- server/api/salesforce_field/index.spec.js | 2 +- .../salesforce_field.controller.js | 2 +- .../salesforce_field/salesforce_field.socket.js | 2 +- server/api/scheduler/index.js | 2 +- server/api/scheduler/scheduler.controller.js | 2 +- server/api/scheduler/scheduler.socket.js | 2 +- server/api/setting/index.js | 2 +- server/api/setting/setting.controller.js | 2 +- server/api/setting/setting.socket.js | 2 +- server/api/sms_account/index.js | 2 +- server/api/sms_account/sms_account.controller.js | 2 +- server/api/sms_account/sms_account.socket.js | 2 +- server/api/sms_account/util.js | 2 +- server/api/sms_application/index.js | 2 +- .../sms_application/sms_application.controller.js | 2 +- .../api/sms_application/sms_application.socket.js | 2 +- server/api/sms_disposition/index.js | 2 +- .../sms_disposition/sms_disposition.controller.js | 2 +- .../api/sms_disposition/sms_disposition.socket.js | 2 +- server/api/sms_message/index.js | 2 +- server/api/sms_message/sms_message.controller.js | 2 +- server/api/sms_message/sms_message.socket.js | 2 +- server/api/sms_queue/index.js | 2 +- server/api/sms_queue/sms_queue.controller.js | 2 +- server/api/sms_queue/sms_queue.socket.js | 2 +- server/api/sms_room/index.js | 2 +- server/api/sms_room/sms_room.controller.js | 2 +- server/api/sms_room/sms_room.socket.js | 2 +- server/api/sound/index.js | 2 +- server/api/sound/sound.controller.js | 2 +- server/api/sound/sound.socket.js | 2 +- server/api/square_odbc/index.js | 2 +- server/api/square_odbc/square_odbc.controller.js | 2 +- server/api/square_odbc/square_odbc.socket.js | 2 +- server/api/square_project/index.js | 2 +- .../square_project/square_project.controller.js | 2 +- server/api/square_project/square_project.socket.js | 2 +- server/api/square_recording/index.js | 2 +- .../square_recording.controller.js | 2 +- .../square_recording/square_recording.socket.js | 2 +- server/api/sugarcrm_account/index.js | 2 +- .../sugarcrm_account.controller.js | 2 +- .../sugarcrm_account/sugarcrm_account.socket.js | 2 +- server/api/sugarcrm_configuration/index.js | 2 +- .../sugarcrm_configuration.controller.js | 2 +- .../sugarcrm_configuration.socket.js | 2 +- server/api/sugarcrm_field/index.js | 2 +- .../sugarcrm_field/sugarcrm_field.controller.js | 2 +- server/api/sugarcrm_field/sugarcrm_field.socket.js | 2 +- server/api/tag/index.js | 2 +- server/api/tag/tag.controller.js | 2 +- server/api/tag/tag.socket.js | 2 +- server/api/team/index.js | 2 +- server/api/team/team.controller.js | 2 +- server/api/team/team.socket.js | 2 +- server/api/telephone/index.js | 2 +- server/api/telephone/telephone.controller.js | 2 +- server/api/telephone/telephone.socket.js | 2 +- server/api/template/index.js | 2 +- server/api/template/template.controller.js | 2 +- server/api/template/template.socket.js | 2 +- server/api/trigger/index.js | 2 +- server/api/trigger/trigger.controller.js | 2 +- server/api/trigger/trigger.socket.js | 2 +- server/api/trunk/index.js | 2 +- server/api/trunk/trunk.controller.js | 2 +- server/api/trunk/trunk.socket.js | 2 +- server/api/update/index.js | 2 +- server/api/update/update.controller.js | 2 +- server/api/user/index.js | 2 +- server/api/user/user.controller.js | 2 +- server/api/user/user.socket.js | 2 +- server/api/user_has_chat_queue/index.js | 2 +- .../user_has_chat_queue.controller.js | 2 +- .../user_has_chat_queue.socket.js | 2 +- server/api/user_has_chat_room/index.js | 2 +- .../user_has_chat_room.controller.js | 2 +- .../user_has_chat_room.socket.js | 2 +- server/api/user_has_fax_queue/index.js | 2 +- .../user_has_fax_queue.controller.js | 2 +- .../user_has_fax_queue.socket.js | 2 +- server/api/user_has_list/index.js | 2 +- .../api/user_has_list/user_has_list.controller.js | 2 +- server/api/user_has_list/user_has_list.socket.js | 2 +- server/api/user_has_mail_queue/index.js | 2 +- .../user_has_mail_queue.controller.js | 2 +- .../user_has_mail_queue.socket.js | 2 +- server/api/user_has_sms_queue/index.js | 2 +- .../user_has_sms_queue.controller.js | 2 +- .../user_has_sms_queue.socket.js | 2 +- server/api/user_has_team/index.js | 2 +- .../api/user_has_team/user_has_team.controller.js | 2 +- server/api/user_has_team/user_has_team.model.js | 2 +- server/api/user_has_team/user_has_team.socket.js | 2 +- server/api/user_has_team/user_has_team.spec.js | 2 +- server/api/user_has_voice_queue/index.js | 2 +- .../user_has_voice_queue.controller.js | 2 +- .../user_has_voice_queue.socket.js | 2 +- server/api/variable/index.js | 2 +- server/api/variable/variable.controller.js | 2 +- server/api/variable/variable.socket.js | 2 +- server/api/voice_context/index.js | 2 +- .../api/voice_context/voice_context.controller.js | 2 +- server/api/voice_context/voice_context.socket.js | 2 +- server/api/voice_disposition/index.js | 2 +- .../voice_disposition.controller.js | 2 +- .../voice_disposition/voice_disposition.socket.js | 2 +- server/api/voice_extension/index.js | 2 +- .../voice_extension/voice_extension.controller.js | 2 +- .../api/voice_extension/voice_extension.socket.js | 2 +- server/api/voice_musiconhold/index.js | 2 +- .../voice_musiconhold.controller.js | 2 +- .../voice_musiconhold/voice_musiconhold.socket.js | 2 +- server/api/voice_queue/index.js | 2 +- server/api/voice_queue/voice_queue.controller.js | 2 +- server/api/voice_queue/voice_queue.socket.js | 2 +- server/api/voice_recording/index.js | 2 +- .../voice_recording/voice_recording.controller.js | 2 +- .../api/voice_recording/voice_recording.socket.js | 2 +- server/api/voice_voicemail/index.js | 2 +- .../voice_voicemail/voice_voicemail.controller.js | 2 +- .../api/voice_voicemail/voice_voicemail.socket.js | 2 +- server/api/voice_voicemail_messages/index.js | 2 +- .../voice_voicemail_messages.controller.js | 2 +- .../voice_voicemail_messages.socket.js | 2 +- server/api/widget/index.js | 2 +- server/api/widget/widget.controller.js | 2 +- server/api/xchatty/index.js | 2 +- server/api/xchatty/xchatty.controller.js | 2 +- server/api/xchatty/xchatty.socket.js | 2 +- server/api/zendesk_account/index.js | 2 +- .../zendesk_account/zendesk_account.controller.js | 2 +- .../api/zendesk_account/zendesk_account.socket.js | 2 +- server/api/zendesk_configuration/index.js | 2 +- .../zendesk_configuration.controller.js | 2 +- .../zendesk_configuration.socket.js | 2 +- server/api/zendesk_field/index.js | 2 +- .../api/zendesk_field/zendesk_field.controller.js | 2 +- server/api/zendesk_field/zendesk_field.socket.js | 2 +- server/api/zendesk_field/zendesk_field.spec.js | 2 +- server/app.js | 2 +- server/auth/auth.service.js | 2 +- server/auth/facebook/index.js | 2 +- server/auth/facebook/passport.js | 2 +- server/auth/google/index.js | 2 +- server/auth/google/passport.js | 2 +- server/auth/index.js | 2 +- server/auth/local/index.js | 2 +- server/auth/local/local.ami.js | 2 +- server/auth/local/passport.js | 2 +- server/auth/twitter/index.js | 2 +- server/auth/twitter/passport.js | 2 +- server/config/agi/agi.js | 2 +- server/config/agi/index.js | 2 +- server/config/ami/action.js | 2 +- server/config/ami/acw.js | 2 +- server/config/ami/agent.js | 2 +- server/config/ami/call.js | 2 +- server/config/ami/fax.js | 2 +- server/config/ami/index.js | 2 +- server/config/ami/member.js | 2 +- server/config/ami/network.js | 2 +- server/config/ami/queue_caller.js | 2 +- server/config/ami/queue_member.js | 2 +- server/config/ami/recording.js | 2 +- server/config/ami/socket.js | 2 +- server/config/ami/transfer.js | 2 +- server/config/ami/trunk.js | 2 +- server/config/ami/user.js | 2 +- server/config/ami/voice_context.js | 2 +- server/config/analytics.js | 2 +- server/config/autodialer/index.js | 2 +- server/config/autodialer/process.js | 2 +- server/config/automations/fax.js | 2 +- server/config/automations/mail.js | 2 +- server/config/express.js | 2 +- server/config/fax.js | 2 +- server/config/history/history.js | 2 +- server/config/history/reportMove.js | 2 +- server/config/imap/imap.js | 2 +- server/config/imap/index.js | 2 +- server/config/integration.js | 2 +- server/config/integrations/index.js | 2 +- server/config/integrations/motionbar.js | 2 +- server/config/integrations/salesforce.js | 2 +- server/config/integrations/zendesk.js | 2 +- server/config/license/index.js | 2 +- server/config/license/license.service.js | 2 +- server/config/local.env.sample.js | 2 +- server/config/logger.js | 2 +- server/config/routing/chat/index.js | 2 +- server/config/routing/chat/session.js | 2 +- server/config/routing/fax/index.js | 2 +- server/config/routing/fax/session.js | 2 +- server/config/routing/mail/index.js | 2 +- server/config/routing/mail/session.js | 2 +- server/config/routing/sms/index.js | 2 +- server/config/routing/sms/session.js | 2 +- server/config/scheduler/index.js | 2 +- server/config/scheduler/reports.js | 2 +- server/config/seed.js | 2 +- server/config/seedp.js | 2 +- server/config/sms/index.js | 2 +- server/config/sms/skebby.js | 2 +- server/config/sms/sms.js | 2 +- server/config/sms/twilio.js | 2 +- server/config/smtp/index.js | 2 +- server/config/smtp/smtp.js | 2 +- server/config/socketio.js | 2 +- server/config/tools/channelSpy.js | 2 +- server/config/tools/chatRoom.js | 2 +- server/config/tools/dashboard.js | 2 +- server/config/tools/faxAccount.js | 2 +- server/config/tools/index.js | 2 +- server/config/tools/interval.js | 2 +- server/config/tools/queueParameters.js | 2 +- server/config/tools/user.js | 2 +- server/config/triggers/chat.js | 2 +- server/config/triggers/cm.js | 2 +- server/config/triggers/index.js | 2 +- server/config/triggers/jscripty.js | 2 +- server/config/triggers/mail.js | 2 +- server/config/triggers/urlForward.js | 2 +- server/config/triggers/util.js | 2 +- server/config/triggers/voice.js | 2 +- server/config/util/error.js | 2 +- server/config/util/index.js | 2 +- server/migrations/20160404155902-motion.js | 2 +- server/migrations/20160405155748-motion.js | 2 +- server/migrations/20160407153439-template.js | 2 +- server/migrations/20160407154803-template.js | 2 +- server/migrations/20160407163943-trunks.js | 2 +- server/migrations/20160411164717-mail-accounts.js | 2 +- server/migrations/20160411182439-chat_website.js | 2 +- .../20160412152558-report_chat_session.js | 2 +- .../20160412152741-report_chat_session_history.js | 2 +- server/migrations/20160412174555-companies.js | 2 +- server/migrations/20160413115611-mail-rooms.js | 2 +- server/migrations/20160413120157-chat-rooms.js | 2 +- .../migrations/20160414100530-voice_extension.js | 2 +- .../20160414113954-int_salesforce_fields.js | 2 +- server/migrations/20160414162957-sms_account.js | 2 +- server/migrations/20160414164310-cm_contacts.js | 2 +- server/migrations/20160418114658-mail-rooms.js | 2 +- server/migrations/20160419112635-modules.js | 2 +- .../migrations/20160419152538-user_has_modules.js | 2 +- server/migrations/20160419162305-sms_message.js | 2 +- server/migrations/20160419172859-sms_room.js | 2 +- .../20160420123742-report_integration.js | 2 +- .../20160420124115-report_integration_history.js | 2 +- server/migrations/20160421121826-modules.js | 2 +- server/migrations/20160426111419-mail-messages.js | 2 +- server/migrations/20160427103718-history.js | 2 +- .../migrations/20160428124018-voice_extensions.js | 2 +- .../migrations/20160428180149-extracted_reports.js | 2 +- server/migrations/20160428182219-chat-messages.js | 2 +- server/migrations/20160429151542-trunks.js | 2 +- server/migrations/20160429190622-chat-rooms.js | 2 +- server/migrations/20160502172532-sms_messages.js | 2 +- .../20160503105145-report_jscripty_sessions.js | 2 +- .../20160503155507-report_integration.js | 2 +- server/migrations/20160503181159-fax_account.js | 2 +- .../20160505122220-report_square_detail.js | 2 +- .../20160506111910-report_square_details.js | 2 +- .../20160506142105-report_integration_history.js | 2 +- .../migrations/20160506171353-fax_applications.js | 2 +- .../migrations/20160506181017-voice_extensions.js | 2 +- .../migrations/20160508105043-voice_extensions.js | 2 +- server/migrations/20160509102203-fax_accounts.js | 2 +- server/migrations/20160509130347-trunks.js | 2 +- server/migrations/20160509145940-report_fields.js | 2 +- server/migrations/20160509160659-mail-server.js | 2 +- .../migrations/20160510114030-voice_recordings.js | 2 +- server/migrations/20160510140808-phone-bar.js | 2 +- server/migrations/20160511115852-users.js | 2 +- server/migrations/20160511162334-mail-rooms.js | 2 +- server/migrations/20160511182718-fax_rooms.js | 2 +- server/migrations/20160512094501-fax_messages.js | 2 +- .../migrations/20160512123554-report_mail_room.js | 2 +- server/migrations/20160512131153-chat_rooms.js | 2 +- .../20160512182519-report_fax_and_sms.js | 2 +- .../20160513153038-report_jscripty_sessions.js | 2 +- .../20160514095244-report_jscripty_questions.js | 2 +- server/migrations/20160515123238-report_call.js | 2 +- server/migrations/20160517180411-fax_rooms.js | 2 +- server/migrations/20160517180628-report_mail.js | 2 +- .../20160518133136-report_jscripty_questions.js | 2 +- server/migrations/20160519141054-sms_rooms.js | 2 +- server/migrations/20160520121915-report_sms.js | 2 +- server/migrations/20160520131839-chat_room.js | 2 +- server/migrations/20160520135050-mail-rooms.js | 2 +- server/migrations/20160520155633-report_fax.js | 2 +- server/migrations/20160523145045-chat_rooms.js | 2 +- server/migrations/20160523154501-mail-messages.js | 2 +- server/migrations/20160524085528-chat_websites.js | 2 +- server/migrations/20160524110213-sms_accounts.js | 2 +- server/migrations/20160526151853-mail-rooms.js | 2 +- server/migrations/20160526163744-chat_websites.js | 2 +- server/migrations/20160528192017-fax_accounts.js | 2 +- server/migrations/20160531181837-fax_messages.js | 2 +- server/migrations/20160601110210-mail.js | 2 +- .../migrations/20160603105451-extracted_reports.js | 2 +- server/migrations/20160603163035-fax_messages.js | 2 +- server/migrations/20160603223141-mail_messages.js | 2 +- .../migrations/20160605163008-tools_schedules.js | 1 + server/models/analytics_extracted_report.js | 8 +- server/models/tools_schedule.js | 5 +- server/routes.js | 2 +- server/utils/report_build.js | 2 +- server/utils/report_extraction.js | 2 +- server/utils/voice_extension.js | 2 +- 5872 files changed, 21071 insertions(+), 75189 deletions(-) delete mode 100644 public/app/4fe18a52.app.js create mode 100644 public/app/80df8e19.vendor.js delete mode 100644 public/app/9003b42a.vendor.js create mode 100644 public/app/b01e0669.app.js delete mode 100644 public/assets/plugins/angular-pdf/.bower.json delete mode 100644 public/assets/plugins/angular-pdf/CONTRIBUTING.md delete mode 100644 public/assets/plugins/angular-pdf/Gruntfile.js delete mode 100644 public/assets/plugins/angular-pdf/LICENSE delete mode 100644 public/assets/plugins/angular-pdf/bower.json delete mode 100644 public/assets/plugins/angular-pdf/dist/angular-pdf.js delete mode 100644 public/assets/plugins/angular-pdf/dist/angular-pdf.min.js delete mode 100644 public/assets/plugins/angular-pdf/example/index.html delete mode 100644 public/assets/plugins/angular-pdf/example/js/controllers/docCtrl.js delete mode 100644 public/assets/plugins/angular-pdf/example/js/directives/angular-pdf.js delete mode 100644 public/assets/plugins/angular-pdf/example/js/lib/angular.min.js delete mode 100644 public/assets/plugins/angular-pdf/example/js/lib/angular.min.js.map delete mode 100644 public/assets/plugins/angular-pdf/example/js/lib/pdf.js delete mode 100644 public/assets/plugins/angular-pdf/example/js/lib/pdf.worker.js delete mode 100644 public/assets/plugins/angular-pdf/example/partials/viewer.html delete mode 100644 public/assets/plugins/angular-pdf/example/pdf/4e99fa5a-1d29-4bf8-a083-48ab91f9a623.pdf delete mode 100644 public/assets/plugins/angular-pdf/example/pdf/relativity.pdf delete mode 100644 public/assets/plugins/angular-pdf/example/style.css delete mode 100644 public/assets/plugins/angular-pdf/ng-pdf.gif delete mode 100644 public/assets/plugins/angular-pdf/readme.md create mode 100644 public/assets/plugins/ckeditor/.bower.json create mode 100644 public/assets/plugins/ckeditor/CHANGES.md create mode 100644 public/assets/plugins/ckeditor/LICENSE.md create mode 100644 public/assets/plugins/ckeditor/README.md create mode 100644 public/assets/plugins/ckeditor/adapters/jquery.js create mode 100644 public/assets/plugins/ckeditor/bower.json create mode 100644 public/assets/plugins/ckeditor/ckeditor.js create mode 100644 public/assets/plugins/ckeditor/composer.json create mode 100644 public/assets/plugins/ckeditor/config.js create mode 100644 public/assets/plugins/ckeditor/contents.css create mode 100644 public/assets/plugins/ckeditor/lang/_translationstatus.txt create mode 100644 public/assets/plugins/ckeditor/lang/af.js create mode 100644 public/assets/plugins/ckeditor/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/lang/da.js create mode 100644 public/assets/plugins/ckeditor/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/lang/de.js create mode 100644 public/assets/plugins/ckeditor/lang/el.js create mode 100644 public/assets/plugins/ckeditor/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/lang/en.js create mode 100644 public/assets/plugins/ckeditor/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/lang/es.js create mode 100644 public/assets/plugins/ckeditor/lang/et.js create mode 100644 public/assets/plugins/ckeditor/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/lang/he.js create mode 100644 public/assets/plugins/ckeditor/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/lang/id.js create mode 100644 public/assets/plugins/ckeditor/lang/is.js create mode 100644 public/assets/plugins/ckeditor/lang/it.js create mode 100644 public/assets/plugins/ckeditor/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/lang/km.js create mode 100644 public/assets/plugins/ckeditor/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/lang/no.js create mode 100644 public/assets/plugins/ckeditor/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/lang/si.js create mode 100644 public/assets/plugins/ckeditor/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/lang/th.js create mode 100644 public/assets/plugins/ckeditor/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/package.json create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/about/dialogs/about.js create mode 100644 public/assets/plugins/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png create mode 100644 public/assets/plugins/ckeditor/plugins/about/dialogs/logo_ckeditor.png create mode 100644 public/assets/plugins/ckeditor/plugins/adobeair/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/ajax/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/autoembed/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/autogrow/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/autolink/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/bbcode/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/icons/bidiltr.png create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/icons/bidirtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/icons/hidpi/bidiltr.png create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/icons/hidpi/bidirtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/bidi/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/clipboard/dialogs/paste.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/dialogs/codesnippet.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/icons/codesnippet.png create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/icons/hidpi/codesnippet.png create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippet/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/codesnippetgeshi/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/icons/bgcolor.png create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/icons/hidpi/bgcolor.png create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/icons/hidpi/textcolor.png create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/icons/textcolor.png create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/colorbutton/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/dialogs/colordialog.css create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/dialogs/colordialog.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/colordialog/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/_translationstatus.txt create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/devtools/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/dialog/dialogDefinition.js create mode 100644 public/assets/plugins/ckeditor/plugins/dialogadvtab/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/dialogs/div.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/icons/creatediv.png create mode 100644 public/assets/plugins/ckeditor/plugins/div/icons/hidpi/creatediv.png create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/div/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/divarea/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/dialogs/docprops.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/icons/docprops-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/icons/docprops.png create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/icons/hidpi/docprops.png create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/docprops/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/embed/icons/embed.png create mode 100644 public/assets/plugins/ckeditor/plugins/embed/icons/hidpi/embed.png create mode 100644 public/assets/plugins/ckeditor/plugins/embed/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/dialogs/embedbase.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedbase/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/embedsemantic/icons/embedsemantic.png create mode 100644 public/assets/plugins/ckeditor/plugins/embedsemantic/icons/hidpi/embedsemantic.png create mode 100644 public/assets/plugins/ckeditor/plugins/embedsemantic/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/filetools/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/dialogs/find.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/icons/find-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/find/icons/find.png create mode 100644 public/assets/plugins/ckeditor/plugins/find/icons/hidpi/find-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/find/icons/hidpi/find.png create mode 100644 public/assets/plugins/ckeditor/plugins/find/icons/hidpi/replace.png create mode 100644 public/assets/plugins/ckeditor/plugins/find/icons/replace.png create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/find/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/dialogs/flash.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/icons/flash.png create mode 100644 public/assets/plugins/ckeditor/plugins/flash/icons/hidpi/flash.png create mode 100644 public/assets/plugins/ckeditor/plugins/flash/images/placeholder.png create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/flash/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/font/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/dialogs/button.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/dialogs/checkbox.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/dialogs/form.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/dialogs/hiddenfield.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/dialogs/radio.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/dialogs/select.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/dialogs/textarea.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/dialogs/textfield.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/button.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/checkbox.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/form.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/hiddenfield.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/hidpi/button.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/hidpi/checkbox.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/hidpi/form.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/hidpi/imagebutton.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/hidpi/radio.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/hidpi/select-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/hidpi/select.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/hidpi/textarea.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/hidpi/textfield.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/imagebutton.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/radio.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/select-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/select.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/textarea-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/textarea.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/textfield-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/icons/textfield.png create mode 100644 public/assets/plugins/ckeditor/plugins/forms/images/hiddenfield.gif create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/forms/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/icons.png create mode 100644 public/assets/plugins/ckeditor/plugins/icons_hidpi.png create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/dialogs/iframe.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/icons/hidpi/iframe.png create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/icons/iframe.png create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/images/placeholder.png create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframe/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/iframedialog/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/image/dialogs/image.js create mode 100644 public/assets/plugins/ckeditor/plugins/image/images/noimage.png create mode 100644 public/assets/plugins/ckeditor/plugins/image2/dialogs/image2.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/icons/hidpi/image.png create mode 100644 public/assets/plugins/ckeditor/plugins/image2/icons/image.png create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/image2/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/indentblock/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/icons/hidpi/justifyblock.png create mode 100644 public/assets/plugins/ckeditor/plugins/justify/icons/hidpi/justifycenter.png create mode 100644 public/assets/plugins/ckeditor/plugins/justify/icons/hidpi/justifyleft.png create mode 100644 public/assets/plugins/ckeditor/plugins/justify/icons/hidpi/justifyright.png create mode 100644 public/assets/plugins/ckeditor/plugins/justify/icons/justifyblock.png create mode 100644 public/assets/plugins/ckeditor/plugins/justify/icons/justifycenter.png create mode 100644 public/assets/plugins/ckeditor/plugins/justify/icons/justifyleft.png create mode 100644 public/assets/plugins/ckeditor/plugins/justify/icons/justifyright.png create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/justify/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/icons/hidpi/language.png create mode 100644 public/assets/plugins/ckeditor/plugins/language/icons/language.png create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/language/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/lineutils/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/link/dialogs/anchor.js create mode 100644 public/assets/plugins/ckeditor/plugins/link/dialogs/link.js create mode 100644 public/assets/plugins/ckeditor/plugins/link/images/anchor.png create mode 100644 public/assets/plugins/ckeditor/plugins/link/images/hidpi/anchor.png create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/dialogs/liststyle.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/liststyle/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/magicline/images/hidpi/icon.png create mode 100644 public/assets/plugins/ckeditor/plugins/magicline/images/icon-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/magicline/images/icon.png create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/dialogs/mathjax.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/icons/mathjax.png create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/images/loader.gif create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/mathjax/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/icons/hidpi/newpage.png create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/icons/newpage-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/icons/newpage.png create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/newpage/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/notification/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/notificationaggregator/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/icons/pagebreak.png create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/images/pagebreak.gif create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/pagebreak/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/panelbutton/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/pastefromword/filter/default.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/dialogs/placeholder.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/icons/placeholder.png create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/placeholder/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/preview/icons/hidpi/preview.png create mode 100644 public/assets/plugins/ckeditor/plugins/preview/icons/preview-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/preview/icons/preview.png create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/preview/preview.html create mode 100644 public/assets/plugins/ckeditor/plugins/print/icons/hidpi/print.png create mode 100644 public/assets/plugins/ckeditor/plugins/print/icons/print.png create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/print/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/icons/hidpi/save.png create mode 100644 public/assets/plugins/ckeditor/plugins/save/icons/save.png create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/save/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/scayt/CHANGELOG.md create mode 100644 public/assets/plugins/ckeditor/plugins/scayt/LICENSE.md create mode 100644 public/assets/plugins/ckeditor/plugins/scayt/dialogs/options.js create mode 100644 public/assets/plugins/ckeditor/plugins/scayt/dialogs/toolbar.css create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/icons/hidpi/selectall.png create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/icons/selectall.png create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/selectall/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/sharedspace/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/icons/showblocks-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/icons/showblocks.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/images/block_address.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/images/block_blockquote.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/images/block_div.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/images/block_h1.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/images/block_h2.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/images/block_h3.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/images/block_h4.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/images/block_h5.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/images/block_h6.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/images/block_p.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/images/block_pre.png create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/showblocks/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/dialogs/smiley.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/icons/hidpi/smiley.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/icons/smiley.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/angel_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/angel_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/angry_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/angry_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/broken_heart.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/broken_heart.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/confused_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/confused_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/cry_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/cry_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/devil_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/devil_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/embaressed_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/embarrassed_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/embarrassed_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/envelope.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/envelope.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/heart.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/heart.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/kiss.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/kiss.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/lightbulb.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/lightbulb.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/omg_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/omg_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/regular_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/regular_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/sad_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/sad_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/shades_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/shades_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/teeth_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/teeth_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/thumbs_down.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/thumbs_down.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/thumbs_up.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/thumbs_up.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/tongue_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/tongue_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/tounge_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/wink_smile.gif create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/images/wink_smile.png create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/smiley/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/icons/sourcedialog.png create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/sourcedialog/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/specialchar/dialogs/specialchar.js create mode 100644 public/assets/plugins/ckeditor/plugins/stylesheetparser/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/table/dialogs/table.js create mode 100644 public/assets/plugins/ckeditor/plugins/tableresize/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/tabletools/dialogs/tableCell.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/dialogs/templates.css create mode 100644 public/assets/plugins/ckeditor/plugins/templates/dialogs/templates.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/templates/icons/hidpi/templates.png create mode 100644 public/assets/plugins/ckeditor/plugins/templates/icons/templates-rtl.png create mode 100644 public/assets/plugins/ckeditor/plugins/templates/icons/templates.png create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/bn.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/bs.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/en-au.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/en-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/fo.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/gu.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/hi.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/is.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/ka.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/lt.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/mn.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/ms.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/ro.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/sr-latn.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/sr.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/th.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/templates/default.js create mode 100644 public/assets/plugins/ckeditor/plugins/templates/templates/images/template1.gif create mode 100644 public/assets/plugins/ckeditor/plugins/templates/templates/images/template2.gif create mode 100644 public/assets/plugins/ckeditor/plugins/templates/templates/images/template3.gif create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/dialogs/uicolor.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/icons/uicolor.png create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/_translationstatus.txt create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/et.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/fr-ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/mk.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/si.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/yui/assets/hue_bg.png create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/yui/assets/picker_mask.png create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/yui/assets/yui.css create mode 100644 public/assets/plugins/ckeditor/plugins/uicolor/yui/yui.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadimage/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/uploadwidget/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/images/handle.png create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/af.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/ar.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/bg.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/ca.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/cs.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/cy.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/da.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/de-ch.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/de.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/el.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/en-gb.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/en.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/eo.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/es.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/eu.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/fa.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/fi.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/fr.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/gl.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/he.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/hr.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/hu.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/id.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/it.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/ja.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/km.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/ko.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/ku.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/lv.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/nb.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/nl.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/no.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/pl.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/pt-br.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/pt.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/ru.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/sk.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/sl.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/sq.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/sv.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/tr.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/tt.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/ug.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/uk.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/vi.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/zh-cn.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/lang/zh.js create mode 100644 public/assets/plugins/ckeditor/plugins/widget/plugin.js create mode 100644 public/assets/plugins/ckeditor/plugins/wsc/LICENSE.md create mode 100644 public/assets/plugins/ckeditor/plugins/wsc/dialogs/ciframe.html create mode 100644 public/assets/plugins/ckeditor/plugins/wsc/dialogs/tmpFrameset.html create mode 100644 public/assets/plugins/ckeditor/plugins/wsc/dialogs/wsc.css create mode 100644 public/assets/plugins/ckeditor/plugins/wsc/dialogs/wsc.js create mode 100644 public/assets/plugins/ckeditor/plugins/wsc/dialogs/wsc_ie.js create mode 100644 public/assets/plugins/ckeditor/plugins/xml/plugin.js create mode 100644 public/assets/plugins/ckeditor/samples/css/samples.css create mode 100644 public/assets/plugins/ckeditor/samples/img/github-top.png create mode 100644 public/assets/plugins/ckeditor/samples/img/header-bg.png create mode 100644 public/assets/plugins/ckeditor/samples/img/header-separator.png create mode 100644 public/assets/plugins/ckeditor/samples/img/logo.png create mode 100644 public/assets/plugins/ckeditor/samples/img/navigation-tip.png create mode 100644 public/assets/plugins/ckeditor/samples/index.html create mode 100644 public/assets/plugins/ckeditor/samples/js/sample.js create mode 100644 public/assets/plugins/ckeditor/samples/js/sf.js create mode 100644 public/assets/plugins/ckeditor/samples/old/ajax.html create mode 100644 public/assets/plugins/ckeditor/samples/old/api.html create mode 100644 public/assets/plugins/ckeditor/samples/old/appendto.html create mode 100644 public/assets/plugins/ckeditor/samples/old/assets/inlineall/logo.png create mode 100644 public/assets/plugins/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css create mode 100644 public/assets/plugins/ckeditor/samples/old/assets/posteddata.php create mode 100644 public/assets/plugins/ckeditor/samples/old/assets/sample.jpg create mode 100644 public/assets/plugins/ckeditor/samples/old/assets/uilanguages/languages.js create mode 100644 public/assets/plugins/ckeditor/samples/old/autogrow/autogrow.html create mode 100644 public/assets/plugins/ckeditor/samples/old/bbcode/bbcode.html create mode 100644 public/assets/plugins/ckeditor/samples/old/codesnippet/codesnippet.html create mode 100644 public/assets/plugins/ckeditor/samples/old/datafiltering.html create mode 100644 public/assets/plugins/ckeditor/samples/old/devtools/devtools.html create mode 100644 public/assets/plugins/ckeditor/samples/old/dialog/assets/my_dialog.js create mode 100644 public/assets/plugins/ckeditor/samples/old/dialog/dialog.html create mode 100644 public/assets/plugins/ckeditor/samples/old/divarea/divarea.html create mode 100644 public/assets/plugins/ckeditor/samples/old/divreplace.html create mode 100644 public/assets/plugins/ckeditor/samples/old/docprops/docprops.html create mode 100644 public/assets/plugins/ckeditor/samples/old/enterkey/enterkey.html create mode 100644 public/assets/plugins/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.fla create mode 100644 public/assets/plugins/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.swf create mode 100644 public/assets/plugins/ckeditor/samples/old/htmlwriter/assets/outputforflash/swfobject.js create mode 100644 public/assets/plugins/ckeditor/samples/old/htmlwriter/outputforflash.html create mode 100644 public/assets/plugins/ckeditor/samples/old/htmlwriter/outputhtml.html create mode 100644 public/assets/plugins/ckeditor/samples/old/image2/assets/image1.jpg create mode 100644 public/assets/plugins/ckeditor/samples/old/image2/assets/image2.jpg create mode 100644 public/assets/plugins/ckeditor/samples/old/image2/image2.html create mode 100644 public/assets/plugins/ckeditor/samples/old/index.html create mode 100644 public/assets/plugins/ckeditor/samples/old/inlineall.html create mode 100644 public/assets/plugins/ckeditor/samples/old/inlinebycode.html create mode 100644 public/assets/plugins/ckeditor/samples/old/inlinetextarea.html create mode 100644 public/assets/plugins/ckeditor/samples/old/jquery.html create mode 100644 public/assets/plugins/ckeditor/samples/old/magicline/magicline.html create mode 100644 public/assets/plugins/ckeditor/samples/old/mathjax/mathjax.html create mode 100644 public/assets/plugins/ckeditor/samples/old/placeholder/placeholder.html create mode 100644 public/assets/plugins/ckeditor/samples/old/readonly.html create mode 100644 public/assets/plugins/ckeditor/samples/old/replacebyclass.html create mode 100644 public/assets/plugins/ckeditor/samples/old/replacebycode.html create mode 100644 public/assets/plugins/ckeditor/samples/old/sample.css create mode 100644 public/assets/plugins/ckeditor/samples/old/sample.js create mode 100644 public/assets/plugins/ckeditor/samples/old/sample_posteddata.php create mode 100644 public/assets/plugins/ckeditor/samples/old/sharedspace/sharedspace.html create mode 100644 public/assets/plugins/ckeditor/samples/old/sourcedialog/sourcedialog.html create mode 100644 public/assets/plugins/ckeditor/samples/old/stylesheetparser/assets/sample.css create mode 100644 public/assets/plugins/ckeditor/samples/old/stylesheetparser/stylesheetparser.html create mode 100644 public/assets/plugins/ckeditor/samples/old/tabindex.html create mode 100644 public/assets/plugins/ckeditor/samples/old/tableresize/tableresize.html create mode 100644 public/assets/plugins/ckeditor/samples/old/toolbar/toolbar.html create mode 100644 public/assets/plugins/ckeditor/samples/old/uicolor.html create mode 100644 public/assets/plugins/ckeditor/samples/old/uicolor/uicolor.html create mode 100644 public/assets/plugins/ckeditor/samples/old/uilanguages.html create mode 100644 public/assets/plugins/ckeditor/samples/old/wysiwygarea/fullpage.html create mode 100644 public/assets/plugins/ckeditor/samples/old/xhtmlstyle.html create mode 100644 public/assets/plugins/ckeditor/samples/toolbarconfigurator/css/fontello.css create mode 100644 public/assets/plugins/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt create mode 100644 public/assets/plugins/ckeditor/samples/toolbarconfigurator/font/config.json create mode 100644 public/assets/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.eot create mode 100644 public/assets/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.svg create mode 100644 public/assets/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.ttf create mode 100644 public/assets/plugins/ckeditor/samples/toolbarconfigurator/font/fontello.woff create mode 100644 public/assets/plugins/ckeditor/samples/toolbarconfigurator/index.html create mode 100644 public/assets/plugins/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js create mode 100644 public/assets/plugins/ckeditor/samples/toolbarconfigurator/js/fulltoolbareditor.js create mode 100644 public/assets/plugins/ckeditor/samples/toolbarconfigurator/js/toolbarmodifier.js create mode 100644 public/assets/plugins/ckeditor/samples/toolbarconfigurator/js/toolbartextmodifier.js create mode 100644 public/assets/plugins/ckeditor/skins/kama/dialog.css create mode 100644 public/assets/plugins/ckeditor/skins/kama/dialog_ie.css create mode 100644 public/assets/plugins/ckeditor/skins/kama/dialog_ie7.css create mode 100644 public/assets/plugins/ckeditor/skins/kama/dialog_ie8.css create mode 100644 public/assets/plugins/ckeditor/skins/kama/dialog_iequirks.css create mode 100644 public/assets/plugins/ckeditor/skins/kama/editor.css create mode 100644 public/assets/plugins/ckeditor/skins/kama/editor_ie.css create mode 100644 public/assets/plugins/ckeditor/skins/kama/editor_ie7.css create mode 100644 public/assets/plugins/ckeditor/skins/kama/editor_ie8.css create mode 100644 public/assets/plugins/ckeditor/skins/kama/editor_iequirks.css create mode 100644 public/assets/plugins/ckeditor/skins/kama/icons.png create mode 100644 public/assets/plugins/ckeditor/skins/kama/icons_hidpi.png create mode 100644 public/assets/plugins/ckeditor/skins/kama/images/dialog_sides.gif create mode 100644 public/assets/plugins/ckeditor/skins/kama/images/dialog_sides.png create mode 100644 public/assets/plugins/ckeditor/skins/kama/images/dialog_sides_rtl.png create mode 100644 public/assets/plugins/ckeditor/skins/kama/images/mini.gif create mode 100644 public/assets/plugins/ckeditor/skins/kama/images/spinner.gif create mode 100644 public/assets/plugins/ckeditor/skins/kama/images/sprites.png create mode 100644 public/assets/plugins/ckeditor/skins/kama/images/sprites_ie6.png create mode 100644 public/assets/plugins/ckeditor/skins/kama/images/toolbar_start.gif create mode 100644 public/assets/plugins/ckeditor/skins/kama/readme.md create mode 100644 public/assets/plugins/ckeditor/skins/kama/skin.js create mode 100644 public/assets/plugins/ckeditor/skins/moono/dialog.css create mode 100644 public/assets/plugins/ckeditor/skins/moono/dialog_ie.css create mode 100644 public/assets/plugins/ckeditor/skins/moono/dialog_ie7.css create mode 100644 public/assets/plugins/ckeditor/skins/moono/dialog_ie8.css create mode 100644 public/assets/plugins/ckeditor/skins/moono/dialog_iequirks.css create mode 100644 public/assets/plugins/ckeditor/skins/moono/editor.css create mode 100644 public/assets/plugins/ckeditor/skins/moono/editor_gecko.css create mode 100644 public/assets/plugins/ckeditor/skins/moono/editor_ie.css create mode 100644 public/assets/plugins/ckeditor/skins/moono/editor_ie7.css create mode 100644 public/assets/plugins/ckeditor/skins/moono/editor_ie8.css create mode 100644 public/assets/plugins/ckeditor/skins/moono/editor_iequirks.css create mode 100644 public/assets/plugins/ckeditor/skins/moono/icons.png create mode 100644 public/assets/plugins/ckeditor/skins/moono/icons_hidpi.png create mode 100644 public/assets/plugins/ckeditor/skins/moono/images/arrow.png create mode 100644 public/assets/plugins/ckeditor/skins/moono/images/close.png create mode 100644 public/assets/plugins/ckeditor/skins/moono/images/hidpi/close.png create mode 100644 public/assets/plugins/ckeditor/skins/moono/images/hidpi/lock-open.png create mode 100644 public/assets/plugins/ckeditor/skins/moono/images/hidpi/lock.png create mode 100644 public/assets/plugins/ckeditor/skins/moono/images/hidpi/refresh.png create mode 100644 public/assets/plugins/ckeditor/skins/moono/images/lock-open.png create mode 100644 public/assets/plugins/ckeditor/skins/moono/images/lock.png create mode 100644 public/assets/plugins/ckeditor/skins/moono/images/refresh.png create mode 100644 public/assets/plugins/ckeditor/skins/moono/images/spinner.gif create mode 100644 public/assets/plugins/ckeditor/skins/moono/readme.md create mode 100644 public/assets/plugins/ckeditor/styles.js delete mode 100644 public/bower_components/ckeditor/.bower.json delete mode 100644 public/bower_components/ckeditor/CHANGES.md delete mode 100644 public/bower_components/ckeditor/LICENSE.md delete mode 100644 public/bower_components/ckeditor/README.md delete mode 100644 public/bower_components/ckeditor/adapters/jquery.js delete mode 100644 public/bower_components/ckeditor/bower.json delete mode 100644 public/bower_components/ckeditor/composer.json delete mode 100644 public/bower_components/ckeditor/config.js delete mode 100644 public/bower_components/ckeditor/contents.css delete mode 100644 public/bower_components/ckeditor/lang/_translationstatus.txt delete mode 100644 public/bower_components/ckeditor/lang/af.js delete mode 100644 public/bower_components/ckeditor/lang/ar.js delete mode 100644 public/bower_components/ckeditor/lang/bg.js delete mode 100644 public/bower_components/ckeditor/lang/bn.js delete mode 100644 public/bower_components/ckeditor/lang/bs.js delete mode 100644 public/bower_components/ckeditor/lang/ca.js delete mode 100644 public/bower_components/ckeditor/lang/cs.js delete mode 100644 public/bower_components/ckeditor/lang/cy.js delete mode 100644 public/bower_components/ckeditor/lang/da.js delete mode 100644 public/bower_components/ckeditor/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/lang/de.js delete mode 100644 public/bower_components/ckeditor/lang/el.js delete mode 100644 public/bower_components/ckeditor/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/lang/en.js delete mode 100644 public/bower_components/ckeditor/lang/eo.js delete mode 100644 public/bower_components/ckeditor/lang/es.js delete mode 100644 public/bower_components/ckeditor/lang/et.js delete mode 100644 public/bower_components/ckeditor/lang/eu.js delete mode 100644 public/bower_components/ckeditor/lang/fa.js delete mode 100644 public/bower_components/ckeditor/lang/fi.js delete mode 100644 public/bower_components/ckeditor/lang/fo.js delete mode 100644 public/bower_components/ckeditor/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/lang/fr.js delete mode 100644 public/bower_components/ckeditor/lang/gl.js delete mode 100644 public/bower_components/ckeditor/lang/gu.js delete mode 100644 public/bower_components/ckeditor/lang/he.js delete mode 100644 public/bower_components/ckeditor/lang/hi.js delete mode 100644 public/bower_components/ckeditor/lang/hr.js delete mode 100644 public/bower_components/ckeditor/lang/hu.js delete mode 100644 public/bower_components/ckeditor/lang/id.js delete mode 100644 public/bower_components/ckeditor/lang/is.js delete mode 100644 public/bower_components/ckeditor/lang/it.js delete mode 100644 public/bower_components/ckeditor/lang/ja.js delete mode 100644 public/bower_components/ckeditor/lang/ka.js delete mode 100644 public/bower_components/ckeditor/lang/km.js delete mode 100644 public/bower_components/ckeditor/lang/ko.js delete mode 100644 public/bower_components/ckeditor/lang/ku.js delete mode 100644 public/bower_components/ckeditor/lang/lt.js delete mode 100644 public/bower_components/ckeditor/lang/lv.js delete mode 100644 public/bower_components/ckeditor/lang/mk.js delete mode 100644 public/bower_components/ckeditor/lang/mn.js delete mode 100644 public/bower_components/ckeditor/lang/ms.js delete mode 100644 public/bower_components/ckeditor/lang/nb.js delete mode 100644 public/bower_components/ckeditor/lang/nl.js delete mode 100644 public/bower_components/ckeditor/lang/no.js delete mode 100644 public/bower_components/ckeditor/lang/pl.js delete mode 100644 public/bower_components/ckeditor/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/lang/pt.js delete mode 100644 public/bower_components/ckeditor/lang/ro.js delete mode 100644 public/bower_components/ckeditor/lang/ru.js delete mode 100644 public/bower_components/ckeditor/lang/si.js delete mode 100644 public/bower_components/ckeditor/lang/sk.js delete mode 100644 public/bower_components/ckeditor/lang/sl.js delete mode 100644 public/bower_components/ckeditor/lang/sq.js delete mode 100644 public/bower_components/ckeditor/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/lang/sr.js delete mode 100644 public/bower_components/ckeditor/lang/sv.js delete mode 100644 public/bower_components/ckeditor/lang/th.js delete mode 100644 public/bower_components/ckeditor/lang/tr.js delete mode 100644 public/bower_components/ckeditor/lang/tt.js delete mode 100644 public/bower_components/ckeditor/lang/ug.js delete mode 100644 public/bower_components/ckeditor/lang/uk.js delete mode 100644 public/bower_components/ckeditor/lang/vi.js delete mode 100644 public/bower_components/ckeditor/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/lang/zh.js delete mode 100644 public/bower_components/ckeditor/package.json delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/about/dialogs/about.js delete mode 100644 public/bower_components/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png delete mode 100644 public/bower_components/ckeditor/plugins/about/dialogs/logo_ckeditor.png delete mode 100644 public/bower_components/ckeditor/plugins/adobeair/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/ajax/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/autoembed/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/autogrow/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/autolink/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/bbcode/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/icons/bidiltr.png delete mode 100644 public/bower_components/ckeditor/plugins/bidi/icons/bidirtl.png delete mode 100644 public/bower_components/ckeditor/plugins/bidi/icons/hidpi/bidiltr.png delete mode 100644 public/bower_components/ckeditor/plugins/bidi/icons/hidpi/bidirtl.png delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/bidi/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/clipboard/dialogs/paste.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/dialogs/codesnippet.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/icons/codesnippet.png delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/icons/hidpi/codesnippet.png delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/CHANGES.md delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/LICENSE delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css delete mode 100644 public/bower_components/ckeditor/plugins/codesnippet/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/codesnippetgeshi/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/icons/bgcolor.png delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/icons/hidpi/bgcolor.png delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/icons/hidpi/textcolor.png delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/icons/textcolor.png delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/colorbutton/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/dialogs/colordialog.css delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/dialogs/colordialog.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/colordialog/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/_translationstatus.txt delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/devtools/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/dialog/dialogDefinition.js delete mode 100644 public/bower_components/ckeditor/plugins/dialogadvtab/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/div/dialogs/div.js delete mode 100644 public/bower_components/ckeditor/plugins/div/icons/creatediv.png delete mode 100644 public/bower_components/ckeditor/plugins/div/icons/hidpi/creatediv.png delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/div/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/div/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/divarea/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/dialogs/docprops.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/icons/docprops-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/docprops/icons/docprops.png delete mode 100644 public/bower_components/ckeditor/plugins/docprops/icons/hidpi/docprops-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/docprops/icons/hidpi/docprops.png delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/docprops/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/embed/icons/embed.png delete mode 100644 public/bower_components/ckeditor/plugins/embed/icons/hidpi/embed.png delete mode 100644 public/bower_components/ckeditor/plugins/embed/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/dialogs/embedbase.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/embedbase/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/embedsemantic/icons/embedsemantic.png delete mode 100644 public/bower_components/ckeditor/plugins/embedsemantic/icons/hidpi/embedsemantic.png delete mode 100644 public/bower_components/ckeditor/plugins/embedsemantic/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/filetools/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/find/dialogs/find.js delete mode 100644 public/bower_components/ckeditor/plugins/find/icons/find-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/find/icons/find.png delete mode 100644 public/bower_components/ckeditor/plugins/find/icons/hidpi/find-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/find/icons/hidpi/find.png delete mode 100644 public/bower_components/ckeditor/plugins/find/icons/hidpi/replace.png delete mode 100644 public/bower_components/ckeditor/plugins/find/icons/replace.png delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/find/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/find/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/dialogs/flash.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/icons/flash.png delete mode 100644 public/bower_components/ckeditor/plugins/flash/icons/hidpi/flash.png delete mode 100644 public/bower_components/ckeditor/plugins/flash/images/placeholder.png delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/flash/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/font/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/font/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/dialogs/button.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/dialogs/checkbox.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/dialogs/form.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/dialogs/hiddenfield.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/dialogs/radio.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/dialogs/select.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/dialogs/textarea.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/dialogs/textfield.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/button.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/checkbox.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/form.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/hiddenfield.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/hidpi/button.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/hidpi/checkbox.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/hidpi/form.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/hidpi/hiddenfield.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/hidpi/imagebutton.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/hidpi/radio.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/hidpi/select-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/hidpi/select.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/hidpi/textarea-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/hidpi/textarea.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/hidpi/textfield-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/hidpi/textfield.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/imagebutton.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/radio.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/select-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/select.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/textarea-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/textarea.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/textfield-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/icons/textfield.png delete mode 100644 public/bower_components/ckeditor/plugins/forms/images/hiddenfield.gif delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/forms/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/icons.png delete mode 100644 public/bower_components/ckeditor/plugins/icons_hidpi.png delete mode 100644 public/bower_components/ckeditor/plugins/iframe/dialogs/iframe.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/icons/hidpi/iframe.png delete mode 100644 public/bower_components/ckeditor/plugins/iframe/icons/iframe.png delete mode 100644 public/bower_components/ckeditor/plugins/iframe/images/placeholder.png delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/iframe/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/iframedialog/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/image/dialogs/image.js delete mode 100644 public/bower_components/ckeditor/plugins/image/images/noimage.png delete mode 100644 public/bower_components/ckeditor/plugins/image2/dialogs/image2.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/icons/hidpi/image.png delete mode 100644 public/bower_components/ckeditor/plugins/image2/icons/image.png delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/image2/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/indentblock/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/icons/hidpi/justifyblock.png delete mode 100644 public/bower_components/ckeditor/plugins/justify/icons/hidpi/justifycenter.png delete mode 100644 public/bower_components/ckeditor/plugins/justify/icons/hidpi/justifyleft.png delete mode 100644 public/bower_components/ckeditor/plugins/justify/icons/hidpi/justifyright.png delete mode 100644 public/bower_components/ckeditor/plugins/justify/icons/justifyblock.png delete mode 100644 public/bower_components/ckeditor/plugins/justify/icons/justifycenter.png delete mode 100644 public/bower_components/ckeditor/plugins/justify/icons/justifyleft.png delete mode 100644 public/bower_components/ckeditor/plugins/justify/icons/justifyright.png delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/justify/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/language/icons/hidpi/language.png delete mode 100644 public/bower_components/ckeditor/plugins/language/icons/language.png delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/language/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/language/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/lineutils/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/link/dialogs/anchor.js delete mode 100644 public/bower_components/ckeditor/plugins/link/dialogs/link.js delete mode 100644 public/bower_components/ckeditor/plugins/link/images/anchor.png delete mode 100644 public/bower_components/ckeditor/plugins/link/images/hidpi/anchor.png delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/dialogs/liststyle.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/liststyle/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/magicline/images/hidpi/icon.png delete mode 100644 public/bower_components/ckeditor/plugins/magicline/images/icon-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/magicline/images/icon.png delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/dialogs/mathjax.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/icons/hidpi/mathjax.png delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/icons/mathjax.png delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/images/loader.gif delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/mathjax/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/icons/hidpi/newpage-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/newpage/icons/hidpi/newpage.png delete mode 100644 public/bower_components/ckeditor/plugins/newpage/icons/newpage-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/newpage/icons/newpage.png delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/newpage/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/notification/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/notificationaggregator/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/icons/hidpi/pagebreak.png delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/icons/pagebreak.png delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/images/pagebreak.gif delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/pagebreak/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/panelbutton/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/pastefromword/filter/default.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/dialogs/placeholder.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/icons/hidpi/placeholder.png delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/icons/placeholder.png delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/placeholder/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/icons/hidpi/preview-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/preview/icons/hidpi/preview.png delete mode 100644 public/bower_components/ckeditor/plugins/preview/icons/preview-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/preview/icons/preview.png delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/preview/preview.html delete mode 100644 public/bower_components/ckeditor/plugins/print/icons/hidpi/print.png delete mode 100644 public/bower_components/ckeditor/plugins/print/icons/print.png delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/print/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/print/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/save/icons/hidpi/save.png delete mode 100644 public/bower_components/ckeditor/plugins/save/icons/save.png delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/save/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/save/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/scayt/CHANGELOG.md delete mode 100644 public/bower_components/ckeditor/plugins/scayt/LICENSE.md delete mode 100644 public/bower_components/ckeditor/plugins/scayt/dialogs/options.js delete mode 100644 public/bower_components/ckeditor/plugins/scayt/dialogs/toolbar.css delete mode 100644 public/bower_components/ckeditor/plugins/selectall/icons/hidpi/selectall.png delete mode 100644 public/bower_components/ckeditor/plugins/selectall/icons/selectall.png delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/selectall/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/sharedspace/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/icons/hidpi/showblocks-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/icons/hidpi/showblocks.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/icons/showblocks-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/icons/showblocks.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/images/block_address.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/images/block_blockquote.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/images/block_div.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/images/block_h1.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/images/block_h2.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/images/block_h3.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/images/block_h4.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/images/block_h5.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/images/block_h6.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/images/block_p.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/images/block_pre.png delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/showblocks/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/dialogs/smiley.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/icons/hidpi/smiley.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/icons/smiley.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/angel_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/angel_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/angry_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/angry_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/broken_heart.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/broken_heart.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/confused_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/confused_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/cry_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/cry_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/devil_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/devil_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/embaressed_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/embarrassed_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/embarrassed_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/envelope.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/envelope.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/heart.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/heart.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/kiss.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/kiss.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/lightbulb.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/lightbulb.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/omg_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/omg_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/regular_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/regular_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/sad_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/sad_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/shades_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/shades_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/teeth_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/teeth_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/thumbs_down.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/thumbs_down.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/thumbs_up.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/thumbs_up.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/tongue_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/tongue_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/tounge_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/wink_smile.gif delete mode 100644 public/bower_components/ckeditor/plugins/smiley/images/wink_smile.png delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/smiley/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/icons/hidpi/sourcedialog.png delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/icons/sourcedialog-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/icons/sourcedialog.png delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/sourcedialog/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/specialchar/dialogs/specialchar.js delete mode 100644 public/bower_components/ckeditor/plugins/stylesheetparser/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/table/dialogs/table.js delete mode 100644 public/bower_components/ckeditor/plugins/tableresize/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/tabletools/dialogs/tableCell.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/dialogs/templates.css delete mode 100644 public/bower_components/ckeditor/plugins/templates/dialogs/templates.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/icons/hidpi/templates-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/templates/icons/hidpi/templates.png delete mode 100644 public/bower_components/ckeditor/plugins/templates/icons/templates-rtl.png delete mode 100644 public/bower_components/ckeditor/plugins/templates/icons/templates.png delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/bn.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/bs.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/en-au.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/en-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/fo.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/gu.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/hi.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/is.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/ka.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/lt.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/mn.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/ms.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/ro.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/sr-latn.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/sr.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/th.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/templates/default.js delete mode 100644 public/bower_components/ckeditor/plugins/templates/templates/images/template1.gif delete mode 100644 public/bower_components/ckeditor/plugins/templates/templates/images/template2.gif delete mode 100644 public/bower_components/ckeditor/plugins/templates/templates/images/template3.gif delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/dialogs/uicolor.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/icons/hidpi/uicolor.png delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/icons/uicolor.png delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/_translationstatus.txt delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/et.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/fr-ca.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/mk.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/si.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/yui/assets/hue_bg.png delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/yui/assets/picker_mask.png delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/yui/assets/yui.css delete mode 100644 public/bower_components/ckeditor/plugins/uicolor/yui/yui.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadimage/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/uploadwidget/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/images/handle.png delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/af.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/ar.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/bg.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/ca.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/cs.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/cy.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/da.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/de-ch.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/de.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/el.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/en-gb.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/en.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/eo.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/es.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/eu.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/fa.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/fi.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/fr.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/gl.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/he.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/hr.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/hu.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/id.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/it.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/ja.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/km.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/ko.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/ku.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/lv.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/nb.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/nl.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/no.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/pl.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/pt-br.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/pt.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/ru.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/sk.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/sl.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/sq.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/sv.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/tr.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/tt.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/ug.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/uk.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/vi.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/zh-cn.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/lang/zh.js delete mode 100644 public/bower_components/ckeditor/plugins/widget/plugin.js delete mode 100644 public/bower_components/ckeditor/plugins/wsc/LICENSE.md delete mode 100644 public/bower_components/ckeditor/plugins/wsc/dialogs/ciframe.html delete mode 100644 public/bower_components/ckeditor/plugins/wsc/dialogs/tmpFrameset.html delete mode 100644 public/bower_components/ckeditor/plugins/wsc/dialogs/wsc.css delete mode 100644 public/bower_components/ckeditor/plugins/wsc/dialogs/wsc.js delete mode 100644 public/bower_components/ckeditor/plugins/wsc/dialogs/wsc_ie.js delete mode 100644 public/bower_components/ckeditor/plugins/xml/plugin.js delete mode 100644 public/bower_components/ckeditor/samples/css/samples.css delete mode 100644 public/bower_components/ckeditor/samples/img/github-top.png delete mode 100644 public/bower_components/ckeditor/samples/img/header-bg.png delete mode 100644 public/bower_components/ckeditor/samples/img/header-separator.png delete mode 100644 public/bower_components/ckeditor/samples/img/logo.png delete mode 100644 public/bower_components/ckeditor/samples/img/navigation-tip.png delete mode 100644 public/bower_components/ckeditor/samples/index.html delete mode 100644 public/bower_components/ckeditor/samples/js/sample.js delete mode 100644 public/bower_components/ckeditor/samples/js/sf.js delete mode 100644 public/bower_components/ckeditor/samples/old/ajax.html delete mode 100644 public/bower_components/ckeditor/samples/old/api.html delete mode 100644 public/bower_components/ckeditor/samples/old/appendto.html delete mode 100644 public/bower_components/ckeditor/samples/old/assets/inlineall/logo.png delete mode 100644 public/bower_components/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css delete mode 100644 public/bower_components/ckeditor/samples/old/assets/posteddata.php delete mode 100644 public/bower_components/ckeditor/samples/old/assets/sample.jpg delete mode 100644 public/bower_components/ckeditor/samples/old/assets/uilanguages/languages.js delete mode 100644 public/bower_components/ckeditor/samples/old/autogrow/autogrow.html delete mode 100644 public/bower_components/ckeditor/samples/old/bbcode/bbcode.html delete mode 100644 public/bower_components/ckeditor/samples/old/codesnippet/codesnippet.html delete mode 100644 public/bower_components/ckeditor/samples/old/datafiltering.html delete mode 100644 public/bower_components/ckeditor/samples/old/devtools/devtools.html delete mode 100644 public/bower_components/ckeditor/samples/old/dialog/assets/my_dialog.js delete mode 100644 public/bower_components/ckeditor/samples/old/dialog/dialog.html delete mode 100644 public/bower_components/ckeditor/samples/old/divarea/divarea.html delete mode 100644 public/bower_components/ckeditor/samples/old/divreplace.html delete mode 100644 public/bower_components/ckeditor/samples/old/docprops/docprops.html delete mode 100644 public/bower_components/ckeditor/samples/old/enterkey/enterkey.html delete mode 100644 public/bower_components/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.fla delete mode 100644 public/bower_components/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.swf delete mode 100644 public/bower_components/ckeditor/samples/old/htmlwriter/assets/outputforflash/swfobject.js delete mode 100644 public/bower_components/ckeditor/samples/old/htmlwriter/outputforflash.html delete mode 100644 public/bower_components/ckeditor/samples/old/htmlwriter/outputhtml.html delete mode 100644 public/bower_components/ckeditor/samples/old/image2/assets/image1.jpg delete mode 100644 public/bower_components/ckeditor/samples/old/image2/assets/image2.jpg delete mode 100644 public/bower_components/ckeditor/samples/old/image2/image2.html delete mode 100644 public/bower_components/ckeditor/samples/old/index.html delete mode 100644 public/bower_components/ckeditor/samples/old/inlineall.html delete mode 100644 public/bower_components/ckeditor/samples/old/inlinebycode.html delete mode 100644 public/bower_components/ckeditor/samples/old/inlinetextarea.html delete mode 100644 public/bower_components/ckeditor/samples/old/jquery.html delete mode 100644 public/bower_components/ckeditor/samples/old/magicline/magicline.html delete mode 100644 public/bower_components/ckeditor/samples/old/mathjax/mathjax.html delete mode 100644 public/bower_components/ckeditor/samples/old/placeholder/placeholder.html delete mode 100644 public/bower_components/ckeditor/samples/old/readonly.html delete mode 100644 public/bower_components/ckeditor/samples/old/replacebyclass.html delete mode 100644 public/bower_components/ckeditor/samples/old/replacebycode.html delete mode 100644 public/bower_components/ckeditor/samples/old/sample.css delete mode 100644 public/bower_components/ckeditor/samples/old/sample.js delete mode 100644 public/bower_components/ckeditor/samples/old/sample_posteddata.php delete mode 100644 public/bower_components/ckeditor/samples/old/sharedspace/sharedspace.html delete mode 100644 public/bower_components/ckeditor/samples/old/sourcedialog/sourcedialog.html delete mode 100644 public/bower_components/ckeditor/samples/old/stylesheetparser/assets/sample.css delete mode 100644 public/bower_components/ckeditor/samples/old/stylesheetparser/stylesheetparser.html delete mode 100644 public/bower_components/ckeditor/samples/old/tabindex.html delete mode 100644 public/bower_components/ckeditor/samples/old/tableresize/tableresize.html delete mode 100644 public/bower_components/ckeditor/samples/old/toolbar/toolbar.html delete mode 100644 public/bower_components/ckeditor/samples/old/uicolor.html delete mode 100644 public/bower_components/ckeditor/samples/old/uicolor/uicolor.html delete mode 100644 public/bower_components/ckeditor/samples/old/uilanguages.html delete mode 100644 public/bower_components/ckeditor/samples/old/wysiwygarea/fullpage.html delete mode 100644 public/bower_components/ckeditor/samples/old/xhtmlstyle.html delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/css/fontello.css delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/font/config.json delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/font/fontello.eot delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/font/fontello.svg delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/font/fontello.ttf delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/font/fontello.woff delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/index.html delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/js/fulltoolbareditor.js delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/js/toolbarmodifier.js delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/js/toolbartextmodifier.js delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/lib/codemirror/LICENSE delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.css delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.js delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/lib/codemirror/javascript.js delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/lib/codemirror/neo.css delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.css delete mode 100644 public/bower_components/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.js delete mode 100644 public/bower_components/ckeditor/skins/kama/dialog.css delete mode 100644 public/bower_components/ckeditor/skins/kama/dialog_ie.css delete mode 100644 public/bower_components/ckeditor/skins/kama/dialog_ie7.css delete mode 100644 public/bower_components/ckeditor/skins/kama/dialog_ie8.css delete mode 100644 public/bower_components/ckeditor/skins/kama/dialog_iequirks.css delete mode 100644 public/bower_components/ckeditor/skins/kama/editor.css delete mode 100644 public/bower_components/ckeditor/skins/kama/editor_ie.css delete mode 100644 public/bower_components/ckeditor/skins/kama/editor_ie7.css delete mode 100644 public/bower_components/ckeditor/skins/kama/editor_ie8.css delete mode 100644 public/bower_components/ckeditor/skins/kama/editor_iequirks.css delete mode 100644 public/bower_components/ckeditor/skins/kama/icons.png delete mode 100644 public/bower_components/ckeditor/skins/kama/icons_hidpi.png delete mode 100644 public/bower_components/ckeditor/skins/kama/images/dialog_sides.gif delete mode 100644 public/bower_components/ckeditor/skins/kama/images/dialog_sides.png delete mode 100644 public/bower_components/ckeditor/skins/kama/images/dialog_sides_rtl.png delete mode 100644 public/bower_components/ckeditor/skins/kama/images/mini.gif delete mode 100644 public/bower_components/ckeditor/skins/kama/images/spinner.gif delete mode 100644 public/bower_components/ckeditor/skins/kama/images/sprites.png delete mode 100644 public/bower_components/ckeditor/skins/kama/images/sprites_ie6.png delete mode 100644 public/bower_components/ckeditor/skins/kama/images/toolbar_start.gif delete mode 100644 public/bower_components/ckeditor/skins/kama/readme.md delete mode 100644 public/bower_components/ckeditor/skins/kama/skin.js delete mode 100644 public/bower_components/ckeditor/skins/moono/dialog.css delete mode 100644 public/bower_components/ckeditor/skins/moono/dialog_ie.css delete mode 100644 public/bower_components/ckeditor/skins/moono/dialog_ie7.css delete mode 100644 public/bower_components/ckeditor/skins/moono/dialog_ie8.css delete mode 100644 public/bower_components/ckeditor/skins/moono/dialog_iequirks.css delete mode 100644 public/bower_components/ckeditor/skins/moono/editor.css delete mode 100644 public/bower_components/ckeditor/skins/moono/editor_gecko.css delete mode 100644 public/bower_components/ckeditor/skins/moono/editor_ie.css delete mode 100644 public/bower_components/ckeditor/skins/moono/editor_ie7.css delete mode 100644 public/bower_components/ckeditor/skins/moono/editor_ie8.css delete mode 100644 public/bower_components/ckeditor/skins/moono/editor_iequirks.css delete mode 100644 public/bower_components/ckeditor/skins/moono/icons.png delete mode 100644 public/bower_components/ckeditor/skins/moono/icons_hidpi.png delete mode 100644 public/bower_components/ckeditor/skins/moono/images/arrow.png delete mode 100644 public/bower_components/ckeditor/skins/moono/images/close.png delete mode 100644 public/bower_components/ckeditor/skins/moono/images/hidpi/close.png delete mode 100644 public/bower_components/ckeditor/skins/moono/images/hidpi/lock-open.png delete mode 100644 public/bower_components/ckeditor/skins/moono/images/hidpi/lock.png delete mode 100644 public/bower_components/ckeditor/skins/moono/images/hidpi/refresh.png delete mode 100644 public/bower_components/ckeditor/skins/moono/images/lock-open.png delete mode 100644 public/bower_components/ckeditor/skins/moono/images/lock.png delete mode 100644 public/bower_components/ckeditor/skins/moono/images/refresh.png delete mode 100644 public/bower_components/ckeditor/skins/moono/images/spinner.gif delete mode 100644 public/bower_components/ckeditor/skins/moono/readme.md delete mode 100644 public/bower_components/ckeditor/styles.js create mode 100644 server/migrations/20160605163008-tools_schedules.js diff --git a/package.json b/package.json index 33dd5d7..bc7a7e3 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "file-base64": "^1.0.0", "formidable": "^1.0.17", "freshdesk": "^0.2.0", - "fs-extra": "^0.26.2", + "fs-extra": "^0.26.7", "geoip-lite": "^1.1.6", "html-pdf": "^1.4.0", "html-to-text": "^1.6.2", diff --git a/public/app/4fe18a52.app.js b/public/app/4fe18a52.app.js deleted file mode 100644 index c484984..0000000 --- a/public/app/4fe18a52.app.js +++ /dev/null @@ -1,72 +0,0 @@ -"use strict";angular.module("xCallyShuttleApp",["adf","adf.structures.base","adf.widget.clock","adf.widget.iframe","adf.widget.counter","adf.widget.pie-chart","angular-md5","angular.filter","angularFileUpload","ngLetterAvatar","vAccordion","btford.socket-io","chart.js","checklist-model","colorpicker.module","frapontillo.bootstrap-switch","infinite-scroll","LocalStorageModule","mgo-angular-wizard","ng-slide-down","ngAnimate","ngBootstrap","ngCookies","ngCsv","ngFileSaver","ngJsTree","ngMap","ngPapaParse","ngResource","ngSanitize","notification","oc.lazyLoad","pascalprecht.translate","pdf","remoteValidation","smart-table","sprintf","timer","toastr","permission","ui-notification","ui.bootstrap.modal","ui.bootstrap.dropdown","ui.bootstrap.popover","ui.bootstrap.timepicker","ui.bootstrap.tooltip","ui.bootstrap.tpls","ui.bootstrap.accordion","ui.bootstrap.progressbar","ui.bootstrap.buttons","ui.bootstrap.typeahead","ui.grid","ui.grid.autoResize","ui.grid.draggable-rows","ui.grid.exporter","ui.grid.grouping","ui.grid.moveColumns","ui.grid.pagination","ui.grid.treeView","ui.grid.selection","ui.grid.exporter","ui.grid.resizeColumns","ui.router","ui.navbar","ui.select","ui.sortable","xeditable","ngAudio","truncate","ngScrollbars","ngEmoticons","angularSpinner","builder","builder.components","validator","angular-clipboard","ng-code-mirror","angularMoment","jsonFormatter","ui.bootstrap-slider","ui.bootstrap.datepicker","prettyBytes","bootstrapLightbox","rzModule","ckeditor"]).config(["$stateProvider","$urlRouterProvider","$locationProvider","$httpProvider","$translateProvider","localStorageServiceProvider","dashboardProvider","ScrollBarsProvider",function(a,b,c,d,e,f,g,h){b.otherwise(function(a){var b=a.get("$state");b.go("landing")}),e.useStaticFilesLoader({prefix:"assets/languages/locale-",suffix:".json"}),e.preferredLanguage("en_EN"),e.useLocalStorage(),e.useSanitizeValueStrategy("sanitize"),c.html5Mode(!0),d.interceptors.push("authInterceptor"),g.structure("4-4-4",{rows:[{columns:[{styleClass:"col-md-4"},{styleClass:"col-md-4"},{styleClass:"col-md-4"}]}]}).structure("3-3-3-3",{rows:[{columns:[{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"}]}]}),f.setPrefix("motion"),h.defaults={scrollButtons:{scrollAmount:"auto",enable:!0},axis:"y"}}]).factory("settings",["$rootScope","$interval","License","localStorageService","Setting",function(a,b,c,d,e){return a.settings={patternName:"[A-Za-z0-9._\\+*!\\-\\[\\]]+",patternGateway:"^(?:yes|no|[0-9]+)$",patternFaxdetect:"^(?:yes|no|t38|cng|[0-9]+)$",layout:{pageSidebarClosed:d.get("sidebarClosed")||!1,pageQuickSidebarOpened:!1,pageBodySolid:!1,pageAutoScrollOnLoad:1e3}},e.get({id:1}).$promise.then(function(b){a.soundPath=b.soundPath||"/var/opt/motion/server/files/sounds/converted"})["catch"](function(a){console.error(a)}),a.settings}]).factory("authInterceptor",["$rootScope","$q","$cookieStore",function(a,b,c){return{request:function(a){return a.headers=a.headers||{},c.get("token")&&(a.headers.Authorization="Bearer "+c.get("token")),a}}}]).run(["$rootScope","$location","$state","$stateParams","$window","$q","Auth","RoleStore","editableThemes","editableOptions","License","User","PermissionStore",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.$state=c,a.$stateParams=d,i.bs3.inputClass="input-sm",i.bs3.buttonsClass="btn-xs",j.theme="bs3",a.$on("$stateChangeStart",function(a,c){g.isLoggedInAsync(function(a){c.authenticate&&!a&&b.path("/login")})}),a.updateTableConfig=function(a,b){var c=_.find(a,{name:"All"});c&&(c.value=b)},k.get().$promise.then(function(b){a.license=b.license,m.definePermission("hasCm",function(){return a.license.cm}),m.definePermission("hasChat",function(){return a.license.chat}),m.definePermission("hasMail",function(){return a.license.mail}),m.definePermission("hasFax",function(){return a.license.fax}),m.definePermission("hasSms",function(){return a.license.messaging}),m.definePermission("hasDialer",function(){return a.license.dialer}),m.definePermission("hasJscripty",function(){return a.license.jscripty}),m.definePermission("hasUpdate",function(){return a.license.update})})["catch"](function(a){console.log(a)}),m.definePermission("agent",function(){return g.isAgent()}),m.definePermission("admin",function(){return g.isAdmin()}),m.definePermission("user",function(a,b){var c=f.defer(),d=g.getCurrentUser().$promise;return d?d.then(function(a){_.includes(_.map(a.Modules,"id"),b.toState.data.permissions.id)&&"user"===a.role?c.resolve():c.reject()})["catch"](function(){c.reject()}):c.resolve(),c.promise})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics",{url:"/analytics",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:17}}})}]),angular.module("xCallyShuttleApp").factory("Extracted",["$resource",function(a){return a("/api/analytics/extracted/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.extracted",{url:"/extracted",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnalyticExtractedListCtrl",["$scope","$translate","gridOptions","Extracted","uiGridConstants",function(a,b,c,d,e){a.moment=moment,a.Extracted=d,a.initView=function(){var b={exporterCsvFilename:"ExtractedReports.csv",columnDefs:[{name:"name"},{name:"startDate",displayName:"APPLICATION_START_DATE",filterHeaderTemplate:'
',filters:[{name:"From",condition:e.filter.GREATER_THAN_OR_EQUAL},{name:"To",condition:e.filter.LESS_THAN_OR_EQUAL}]},{name:"endDate",displayName:"APPLICATION_END_DATE",filterHeaderTemplate:'
',filters:[{name:"From",condition:e.filter.GREATER_THAN_OR_EQUAL},{name:"To",condition:e.filter.LESS_THAN_OR_EQUAL}]},{name:"createdAt",displayName:"APPLICATION_RUN_DATE",filterHeaderTemplate:'
',filters:[{name:"From",condition:e.filter.GREATER_THAN_OR_EQUAL},{name:"To",condition:e.filter.LESS_THAN_OR_EQUAL}]},{name:"output"},{name:"type"},{name:"status"},{name:"action",width:140,buttons:[{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{directive:""}]}]};a.gridOptions=c.gridOptions(d,b,a,{order:"createdAt DESC"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.extracted.list",{url:"/list",templateUrl:"app/analytic/extracted/list/list.html",controller:"AnalyticExtractedListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("DefaultMetric",["$resource",function(a){return a("/api/analytics/metrics/default/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricListCreateModalCtrl",["$scope","$uibModalInstance","Metric","xAlert","$translate","report",function(a,b,c,d,e,f){a.forms={dashboard:void 0},a.item={},a.tables=f.tables,a.ok=function(){return c.save(a.item).$promise.then(function(){b.close()})["catch"](function(a){d.show(e.instant(a.translatedMessage||a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricListCtrl",["$scope","xAlert","Modal","$uibModal","$log","gridOptions","Metric","DefaultMetric","$translate",function(a,b,c,d,e,f,g,h,i){a.$translate=i,a.initView=function(){var b={exporterCsvFilename:"Metrics.csv",columnDefs:[{name:"name"},{name:"table",cellTemplate:"
{{'APPLICATION_'+row.entity.table.toUpperCase() | translate}}
"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/analytics/metrics/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]},c={exporterCsvFilename:"defaultMetrics.csv",columnDefs:[{name:"name"},{name:"table",cellTemplate:"
{{'APPLICATION_'+row.entity.table.toUpperCase() | translate}}
"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",name:"view",onClick:"grid.appScope.showMetric(row.entity)"},{"class":"purple",name:"clone",onClick:"grid.appScope.cloneMetric(row.entity.id)"}]}]};a.gridOptionsDefault=f.gridOptions(h,c,a,null,null,"Default"),a.gridOptions=f.gridOptions(g,b,a)},a.showMetric=function(a){d.open({animation:!0,templateUrl:"app/analytic/metric/list/view.modal.html",controller:"AnalyticMetricListViewModalCtrl",resolve:{metric:a}})},a.cloneMetric=function(c){return h.get({id:c,controller:"clone"}).$promise.then(function(){b.show(i.instant("MESSAGE_WELL_DONE"),"success"),a.gridOptions.getPage()})["catch"](function(a){b.error(a)})},a.create=function(){var c=d.open({animation:!0,templateUrl:"app/analytic/metric/list/create.modal.html",controller:"AnalyticMetricListCreateModalCtrl"});c.result.then(function(){b.show(i.instant("MESSAGE_WELL_DONE")+"!","success"),a.gridOptions.getPage()},function(){e.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics.list",{url:"/list",templateUrl:"app/analytic/metric/list/list.html",controller:"AnalyticMetricListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricListViewModalCtrl",["$scope","$uibModalInstance","metric","xAlert","$translate","report",function(a,b,c,d,e,f){a.item=c,a.tables=f.tables,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").factory("Metric",["$resource",function(a){return a("/api/analytics/metrics/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics",{url:"/metrics",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricViewCtrl",["$scope","xAlert","$translate","$stateParams","$location","Metric","report",function(a,b,c,d,e,f,g){a.tables=g.tables,a.getMetric=function(){return f.get({id:d.id}).$promise.then(function(b){a.metric=b})["catch"](function(a){e.path("/analytics/metrics/list")})},a.updateMetric=function(){return f.update({id:d.id},a.metric).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(c.instant(a.translatedMessage||a.data.translatedMessage),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics.view",{url:"/view/:id",templateUrl:"app/analytic/metric/view/view.html",controller:"AnalyticMetricViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.analytics.metrics.view.settings",{url:"/settings",templateUrl:"app/analytic/metric/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("CustomReport",["$resource",function(a){return a("/api/analytics/reports/custom/:id/:controller/:action",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("DefaultReport",["$resource",function(a){return a("/api/analytics/reports/default/:id/:controller/:action",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("ReportListCopyModalCtrl",["$scope","$uibModalInstance","$log","customTreeData",function(a,b,c,d){a.customTreeData=d,a.forms={dashboard:void 0},a.item={},a.customTreeConfig={multiple:!1,animation:!0,core:{error:function(a){c.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0}},a.ac=function(){return!0},a.initCustomScopeTree=function(){a.customTree=a.customTreeInstance.jstree(!0),a.customTree.deselect_all(),a.customTree.open_all()},a.ok=function(){b.close({parent:a.customTree.get_selected(!0).pop().id})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ReportListCreateModalCtrl",["$scope","$uibModalInstance","path",function(a,b,c){a.path=c,a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ReportListExtractModalCtrl",["$scope","$uibModalInstance","$translate",function(a,b,c){a.daily=!1,a.dailySwitch={onText:c.instant("APPLICATION_TODAY"),offText:c.instant("APPLICATION_RANGE"),isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"primary"},a.dates={startDate:moment().subtract(1,"days").startOf("day"),endDate:moment().subtract(1,"days").endOf("day")},a.ranges={Yesterday:[moment().subtract(1,"days").startOf("day"),moment().subtract(1,"days").endOf("day")],"Last 7 days":[moment().subtract("days",7).startOf("day"),moment().subtract(1,"days").endOf("day")],"Last 30 days":[moment().subtract("days",30),moment()],"This month":[moment().startOf("month"),moment().endOf("month")]},a.yesterday=moment().subtract(1,"days").format("YYYY-MM-DD"),a.today=moment().format("YYYY-MM-DD"),a.extract=function(c){var d={startDate:moment(a.dates.startDate).format("YYYY-MM-DD"),endDate:moment(a.dates.endDate).format("YYYY-MM-DD"),daily:a.daily,action:c};b.close(d)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("AnalyticReportListCtrl",["$scope","xAlert","$translate","$location","$log","Modal","$uibModal","FileSaver","Blob","gridOptions","CustomReport","DefaultReport","ReportTree",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(b,c){var d={parent:c.id};a.selectedNode=b?a.defaultTree.get_path(c," / "):a.customTree.get_path(c," / "),a.gridOptions?a.gridOptions.getPage({parent:c.id},b?l:k):a.gridOptions=j.gridOptions(b?l:k,o,a,d)}var o={exporterCsvFilename:"reports.csv",columnDefs:[{name:"name"},{name:"description"},{name:"manage",width:120,buttons:[{"class":"{{grid.appScope.defaultTreeActive ? 'display-none' : 'blue-hoki'}}",href:"/analytics/reports/view/{{row.entity.id}}/settings",icon:"icon-settings",title:c.instant("APPLICATION_SETTINGS")},{"class":"{{grid.appScope.defaultTreeActive ? 'display-none' : 'red-sunglo'}}",icon:"fa fa-trash-o",title:c.instant("APPLICATION_DELETE"),onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{"class":"green",icon:"fa fa-files-o",title:c.instant("APPLICATION_COPY"),onClick:"grid.appScope.copy(row.entity.id)"},{"class":"purple",icon:"fa fa-download",title:c.instant("APPLICATION_EXPORT"),onClick:"grid.appScope.export(row.entity.id)"}]},{name:"actions",buttons:[{"class":"yellow",name:"preview",onClick:"grid.appScope.preview(row.entity.id)"},{"class":"green-turquoise",name:"run",onClick:"grid.appScope.extract(row.entity.id)"}]}]};a.searchField="",a.ac=function(){return!0},a.initDefaultScopeTree=function(){a.defaultTree=a.defaultTreeInstance.jstree(!0),a.defaultTree.deselect_all(),a.defaultTree.close_all(),a.defaultTree.open_node({id:1}),a.defaultTreeReady=!0,a.defaultTreeActive=!0,a.previousDefaultNode=""},a.initCustomScopeTree=function(){a.customTree=a.customTreeInstance.jstree(!0),a.customTree.deselect_all(),a.customTree.close_all(),a.customTree.open_node({id:1}),a.customTreeReady=!0,a.previousCustomNode=""},a.$watchGroup(["defaultTreeReady","customTreeReady"],function(b,c,d){b[0]&&b[1]&&a.defaultTree.select_node({id:"1"})}),a.updateCustomTree=function(){var d={tree:angular.toJson(a.customTree.get_json("#",{flat:!0}))};return m.update({id:2},d).$promise.then(function(a){console.log("Custom Tree Updated")})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.configTrees=function(){a.defaultTreeConfig={multiple:!1,animation:!0,core:{error:function(a){e.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0,themes:{name:"default",url:"../../../assets/css/jstree-metronic/style.css"}},plugins:["search"]},a.customTreeConfig={multiple:!1,animation:!0,core:{error:function(a){e.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0,themes:{name:"default",url:"../../../assets/css/jstree-metronic/style.css"}},plugins:["contextmenu","dnd","search"],contextmenu:{items:function(b,d){var e={create:{label:c.instant("APPLICATION_CREATE"),action:function(c){a.customTree.create_node(b),a.customTree.open_node(b)}},rename:{label:c.instant("APPLICATION_RENAME"),action:function(c){a.customTree.edit(b)}},remove:{label:c.instant("APPLICATION_REMOVE"),action:function(c){console.log(b),a.deleteNode(b.text,b)}}};return"#"===b.parent&&(delete e.rename,delete e.remove),d(e),e}}}},a.deleteNode=f.confirm["delete"](function(b){a.customTree.delete_node(b),a.previousCustomNode==b.id&&a.customTree.select_node({id:b.parent})}),a.searchTrees=function(){a.defaultTree.search(a.searchField),a.customTree.search(a.searchField)},a.selectDefaultNode=function(){if(a.customTreeReady){a.previousCustomNode="";var b=a.defaultTree.get_selected(!0),c=b.pop();if(a.defaultTree.deselect_node(b[0],!0),a.customTree.deselect_all(),a.defaultTree.select_node(c,!0),c.id===a.previousDefaultNode)return void console.log("def");a.previousDefaultNode=c.id,a.defaultTreeActive=!0,n(!0,c)}},a.selectCustomNode=function(){if(a.defaultTreeReady){a.previousDefaultNode="";var b=a.customTree.get_selected(!0),c=b.pop();if(a.customTree.deselect_node(b[0],!0),a.defaultTree.deselect_all(),a.customTree.select_node(c,!0),c.id===a.previousCustomNode)return void console.log("cus");a.previousCustomNode=c.id,a.defaultTreeActive=!1,n(!1,c)}},a.getTrees=function(){return m.query().$promise.then(function(b){a.defaultTreeData=JSON.parse(b[0].tree),a.customTreeData=JSON.parse(b[1].tree),a.configTrees()})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.create=function(){var c=g.open({animation:!0,templateUrl:"app/analytic/report/list/create.modal.html",controller:"ReportListCreateModalCtrl",resolve:{path:function(){return a.selectedNode}}});c.result.then(function(c){return c.parent=a.previousCustomNode,k.save(c).$promise.then(function(a){d.path("/analytics/reports/view/"+a.id+"/settings")})["catch"](function(a){b.show(a.message,"danger")})},function(){e.info("Modal dismissed at: "+new Date)})},a.copy=function(d){var f=a.defaultTreeActive?l:k,h=g.open({animation:!0,templateUrl:"app/analytic/report/list/copy.modal.html",controller:"ReportListCopyModalCtrl",resolve:{customTreeData:function(){return a.customTree.get_json("#",{flat:!0})}}});h.result.then(function(e){return f.save({id:d,controller:"copy"},e).$promise.then(function(){a.gridOptions.getPage(),b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message,"danger")})},function(){e.info("Modal dismissed at: "+new Date)})},a["export"]=function(c){var d=a.defaultTreeActive?l:k;return d.get({id:c,controller:"export"}).$promise.then(function(a){var b=new i([angular.toJson(a)],{type:"application/json;charset=utf-8"});h.saveAs(b,a.name+".json")})["catch"](function(a){console.error(data),b.show(a.message,"danger")})},a["import"]=function(d){var e=JSON.parse(d);e.parent=a.previousCustomNode;var f=!(!e.name||!e.parent),g=!0;return _.forEach(e.Fields,function(a){a.field&&a.alias||(g=!1)}),f&&g?k.save({controller:"import"},e).$promise.then(function(){a.gridOptions.getPage(),b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message,"danger")}):void b.show(c.instant("MESSAGE_INVALID_JSON"),"danger")},a.preview=function(b){g.open({animation:!0,templateUrl:"app/analytic/report/list/preview.modal.html",controller:"ReportListPreviewModalCtrl",size:"full",resolve:{report:function(){return{id:b,tree:a.defaultTreeActive?"default":"custom"}}}})},a.extract=function(d){var f=g.open({animation:!0,templateUrl:"app/analytic/report/list/extract.modal.html",controller:"ReportListExtractModalCtrl",size:"md",resolve:{report:function(){return{id:d,tree:a.defaultTreeActive?"default":"custom"}}}});f.result.then(function(e){e.daily||delete e.daily;var f=a.defaultTreeActive?l:k;return f.get(_.merge({id:d,controller:"extract"},e)).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message,"danger")})},function(){e.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports.list",{url:"/list",templateUrl:"app/analytic/report/list/list.html",controller:"AnalyticReportListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ReportListPreviewModalCtrl",["$scope","$uibModalInstance","report","xAlert","$translate","$timeout","CustomReport","DefaultReport",function(a,b,c,d,e,f,g,h){a.daily=!1,a.dailySwitch={onText:e.instant("APPLICATION_TODAY"),offText:e.instant("APPLICATION_RANGE"),isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"primary"},a.dates={startDate:moment().subtract(1,"days").startOf("day"),endDate:moment().subtract(1,"days").endOf("day")},a.ranges={Yesterday:[moment().subtract(1,"days").startOf("day"),moment().subtract(1,"days").endOf("day")],"Last 7 days":[moment().subtract("days",7).startOf("day"),moment().subtract(1,"days").endOf("day")],"Last 30 days":[moment().subtract("days",30),moment()],"This month":[moment().startOf("month"),moment().endOf("month")]},a.yesterday=moment().subtract(1,"days").format("YYYY-MM-DD"),a.today=moment().format("YYYY-MM-DD");var i={offset:0,limit:25,sort:null,where:{},order:{}};a.gridOptions={paginationPageSizes:[10,25,50],paginationPageSize:25,useExternalPagination:!0,enableSorting:!1,enableFiltering:!0,useExternalFiltering:!0,enableGrouping:!1,enableColumnMenus:!1,treeRowHeaderAlwaysVisible:!1,gridMenuShowHideColumns:!1,enableGridMenu:!1,onRegisterApi:function(b){a.gridApi=b,b.pagination.on.paginationChanged(a,function(b,c){i.offset=(b-1)*c,i.limit=c,a.getPage()}),b.core.on.filterChanged(a,function(){var b=this.grid,c={};b.columns.forEach(function(a){a.filters[0].term&&(c[a.field]=a.filters[0].term)}),i.where=c,a.getPage()})}},a.getPage=function(){var b={offset:i.offset,limit:i.limit,startDate:moment(a.dates.startDate).format("YYYY-MM-DD"),endDate:moment(a.dates.endDate).format("YYYY-MM-DD"),daily:a.daily};_.forOwn(i.where,function(a,c){b[c]=a});var e="custom"===c.tree?g:h;return e.get(_.merge({id:c.id,controller:"preview"},b)).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.paginationPageSizes[3]=b.count,a.gridOptions.data=b.rows,a.showResult=!0})["catch"](function(a){d.error(a)})},a.cancel=function(){b.dismiss("cancel")},f(function(){a.getPage()})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports",{url:"/reports",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("ReportAgent",["$resource",function(a){return a("/api/report/agents/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ReportIntegration",["$resource",function(a){return a("/api/report/integrations/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ReportMember",["$resource",function(a){return a("/api/report/members/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ReportTree",["$resource",function(a){return a("/api/analytics/reports/trees/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("AnalyticReportViewCtrl",["$scope","xAlert","$translate","$stateParams","$location","ReportAgent","ReportCall","ReportMailSession","ReportSmsSession","ReportMember","ReportQueue","ReportIntegration","ReportChatSession","DefaultReport","CustomReport","Metric","report",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){function r(d){var e=_.find(a.tables,{value:d}).resource;e.get({controller:"describe"}).$promise.then(function(b){a.tableFields=_.map(b,function(a,b){return"$promise"!==b&&"$resolved"!==b?{name:b,value:b}:void 0})})["catch"](function(a){b.show(c.instant(a.message),"danger")})["finally"](function(){s(d)})}function s(d){return p.get({controller:"table",table:d}).$promise.then(function(b){_.forEach(b.rows,function(b){a.tableFields.push({name:"Metric."+b.name,value:b.metric,MetricId:b.id})})})["catch"](function(a){b.show(c.instant(a.message),"danger")})}function t(a){return String(a).replace(//g,">")}function u(a){if(!a)return"";for(var b="(",c=0;c0&&(b+=" "+a.operator+" "),b+=a.rules[c].group?u(a.rules[c].group):a.rules[c].field+" "+t(a.rules[c].condition)+" '"+("like"===a.rules[c].condition?"%"+a.rules[c].value+"%":a.rules[c].value)+"'";return b+")"}a.$translate=c,a.tempReport={},a.tables=q.tables;var v={group:{operator:"AND",rules:[]}};a.getReport=function(){return a.firstLoad=!0,o.get({id:d.id}).$promise.then(function(b){a.report=b,_.forEach(a.report.Fields,function(a){delete a.id}),a.report.conditions=a.report.conditions?JSON.parse(a.report.conditions):_.clone(v,!0),a.report.Fields.length&&a.getPreview()})["catch"](function(a){console.error(a),e.path("/analytics/reports/list")})},a.randomName=function(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")},a.$watch("report.table",function(b,c){b&&(r(b),c&&(a.tempReport[c]={conditions:a.report.conditions,fields:a.report.Fields}),a.firstLoad?a.firstLoad=!1:a.tempReport[b]?(a.report.Fields=a.tempReport[b].fields,a.report.conditions=a.tempReport[b].conditions):(a.report.Fields=[],a.report.conditions=_.clone(v,!0)))},!0),a.setMetricId=function(b,c){a.report.Fields[c].MetricId=b.MetricId?b.MetricId:null},a.groupByField=[{name:"APPLICATION_YES",value:!0},{name:"APPLICATION_NO",value:!1}],a.functions=[{name:"Sum",value:"SUM"},{name:"Count",value:"COUNT"},{name:"Count Distinct",value:"COUNT DISTINCT"},{name:"Maximum",value:"MAX"},{name:"Minimum",value:"MIN"},{name:"Average",value:"AVG"},{name:"Group Concat",value:"GROUP_CONCAT"},{name:"Group Concat(asc)",value:"GROUP_CONCAT ASC"},{name:"Group Concat(desc)",value:"GROUP_CONCAT DESC"}],a.formatFunctions=[{name:"Sec To Time",value:"SEC_TO_TIME"},{name:"Date",value:"DATE"},{name:"Hour",value:"HOUR"},{name:"Round",value:"ROUND"},{name:"Unix TimeStamp",value:"UNIX_TIMESTAMP"}],a.addField=function(){a.report.Fields.push({groupBy:!1})},a.removeField=function(b){a.report.Fields.splice(b,1)},a.sortableOptions={"ui-floating":!0,cancel:".unsortable",handle:".report-field-handle",axis:"y"},a.updateReport=function(){if(a.report.Fields.length){var e=angular.copy(a.report);return e.conditions=angular.toJson(e.conditions),o.update({id:d.id},e).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),a.getPreview()})["catch"](function(a){b.error(a)})}b.show(c.instant("MESSAGE_SELECT_A_FIELD"),"danger")},a.$watch("report.conditions",function(b){a.output=b?u(b.group):"()"},!0),a.getPreview=function(){return a.gridOptions=null,o.get({id:d.id,controller:"preview",limit:20}).$promise.then(function(b){a.gridOptions={enableFiltering:!0,treeRowHeaderAlwaysVisible:!1,enableGridMenu:!0,data:b.rows}})["catch"](function(a){console.log(a),b.show(c.instant(a.message||"MESSAGE_QUERY_NOT_VALID"),"warning")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports.view",{url:"/view/:id",templateUrl:"app/analytic/report/view/view.html",controller:"AnalyticReportViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.analytics.reports.view.settings",{url:"/settings",templateUrl:"app/analytic/report/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels",{url:"/channels",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat",{url:"/chat",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("ChatEnquiry",["$resource",function(a){return a("/api/chat/enquiries/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatReport",["$resource",function(a){return a("/api/report/chats/:id/:controller1/:controller2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatVisitor",["$resource",function(a){return a("/api/chat/visitors/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatMessage",["$resource",function(a){return a("/api/chat/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatRoom",["$resource",function(a){return a("/api/chat/rooms/:id/:controller",{id:"@id"},{me:{method:"GET",isArray:!0,params:{id:"me"}},users:{method:"GET",params:{id:"users"}},externals:{method:"GET",isArray:!0,params:{id:"type",controller:"external"}},groups:{method:"GET",isArray:!0,params:{id:"groups"}},update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").controller("ChatOfflineListCtrl",["$scope","ChatVisitor","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"chat_offline_messages.csv",columnDefs:[{name:"fullname",cellClass:"text-center"},{name:"email",cellClass:"text-center"},{name:"ChatWebsite.name",displayName:"Website",cellClass:"text-center"},{name:"createdAt",displayName:"createdAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
'},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/channels/chat/offline/view/{{row.entity.id}}/detail",name:"detail"}]}]};a.gridOptions=c.gridOptions(b,d,a,{origin:"enquiry"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.offline.list",{url:"/list",templateUrl:"app/channels/chat/offline/list/list.html",controller:"ChatOfflineListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.offline",{url:"/offline",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:8}}})}]),angular.module("xCallyShuttleApp").controller("ChatOfflineViewCtrl",["$scope","$stateParams","ChatVisitor",function(a,b,c){ -a.initView=function(){return c.get({id:b.id}).$promise.then(function(b){a.chatVisitor=b})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.offline.view",{url:"/view/:id",templateUrl:"app/channels/chat/offline/view/view.html",controller:"ChatOfflineViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.chat.offline.view.detail",{url:"/detail",templateUrl:"app/channels/chat/offline/view/view.detail.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/news.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ChatOnlineListCtrl",["$scope","ChatRoom","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"chat_online_messages.csv",columnDefs:[{name:"ChatVisitor.fullname",displayName:"APPLICATION_FULLNAME",cellClass:"text-center"},{name:"ChatVisitor.email",displayName:"APPLICATION_EMAIL",cellClass:"text-center"},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/channels/chat/online/view/{{row.entity.id}}/detail",name:"detail"}]}]};a.gridOptions=c.gridOptions(b,d,a,{id:"online"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.online.list",{url:"/list",templateUrl:"app/channels/chat/online/list/list.html",controller:"ChatOnlineListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.online",{url:"/online",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:8}}})}]),angular.module("xCallyShuttleApp").controller("ChatOnlineViewCtrl",["$scope","$stateParams","ChatRoom",function(a,b,c){a.initView=function(){return a.config={autoHideScrollbar:!1,theme:"light",advanced:{updateOnContentResize:!0},setHeight:400,scrollInertia:0},c.get({id:b.id}).$promise.then(function(b){a.chatRoom=b})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.online.view",{url:"/view/:id",templateUrl:"app/channels/chat/online/view/view.html",controller:"ChatOnlineViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.chat.online.view.detail",{url:"/detail",templateUrl:"app/channels/chat/online/view/view.detail.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/news.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("PreviewCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").directive("preview",function(){return{templateUrl:"app/channels/chat/preview/preview.html",restrict:"EA",link:function(a,b,c){}}}),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("preview",{url:"/preview",templateUrl:"app/channels/chat/preview/preview.html",controller:"PreviewCtrl",data:{permissions:{only:["admin","user"],redirectTo:"landing",id:8}}})}]),angular.module("xCallyShuttleApp").factory("ChatQueue",["$resource",function(a){return a("/api/chat/queues/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("ChatQueueListCtrl",["$scope","ChatQueue","gridOptions","Auth","$uibModal",function(a,b,c,d,e){a.initView=function(){a.Auth=d;var e={exporterCsvFilename:"chat_queues.csv",columnDefs:[{name:"name"},{name:"description"},{name:"strategy"},{name:"timeout"},{name:"action",width:200,buttons:[{"class":"blue-hoki",href:"/channels/chat/queues/view/{{row.entity.id}}/settings",name:"settings"},{"class":"green-meadow",href:"/channels/chat/queues/view/{{row.entity.id}}/agents",name:"agents",hide:"user"===d.getCurrentUser().role},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,e,a)},a.createItem=function(){var b=e.open({animation:!0,templateUrl:"app/channels/chat/queue/list/list.create.modal.html",controller:"ChatQueueListCreateCtrl"});b.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ChatQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","ChatQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.queues.list",{url:"/list",templateUrl:"app/channels/chat/queue/list/list.html",controller:"ChatQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.queues",{url:"/queues",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:8}}})}]),angular.module("xCallyShuttleApp").controller("ChatQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","ChatQueue","Team","Auth",function(a,b,c,d,e,f,g,h){a.Auth=h;var i=function(){return{select:function(b){return f.save({id:a.queue.id,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})},deselect:function(b){return f["delete"]({id:a.queue.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})}}};a.getQueue=function(){b.get("/api/chat/queues/"+e.id).success(function(b){b.penalty=0,a.queue=b}).error(function(a){console.error(a)})},a.updateChatQueue=function(){var f=angular.copy(a.queue);b.put("/api/chat/queues/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){a.queue=f,b.errors.forEach(function(a){c.show(a.message,"danger")})})},a.getTeams=function(){return g.get({controller:"associations"}).$promise.then(function(b){return a.teams=b.rows,f.get({id:e.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindChatQueue(a.teams,_.map(b.rows,function(a){return{id:a.id,penalty:a.UserHasChatQueue.penalty}}),i)})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.queues.view",{url:"/view/:id",templateUrl:"app/channels/chat/queue/view/view.html",controller:"ChatQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.chat.queues.view.settings",{url:"/settings",templateUrl:"app/channels/chat/queue/view/view.settings.html"}).state("main.channels.chat.queues.view.agents",{url:"/agents",templateUrl:"app/channels/chat/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime",{url:"/realtime",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:8}}})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","ChatQueue","usSpinnerService","$q","uiGridConstants","Auth",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){function o(){return k.spin("spinner-grid"),g.get(t).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){q(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function p(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});c&&(c.online=b.online,c.lastLoginAt=b.lastLoginAt,c.pause=b.chatPause,c.pauseType=b.pauseType,c.lastPauseAt=b.lastPauseAt,c.ipaddr=b.ipaddr,c.port=b.port,c.fullcontact=b.fullcontact,c.useragent=b.useragent,c.lastms=b.lastms,c.internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)}))}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_chat_queue:save",function(b){var c=_.includes(_.map(a.CurrentUser.PChatQueues,"id"),b.ChatQueueId)||n.isAdmin();if(c){var d=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0});if(d){var e=a.gridOptions.data.indexOf(d);a.gridOptions.data.splice(e+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,queueId:b.ChatQueueId,agent:b.membername,online:d.online})}}}),e.socket.on("user_has_chat_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queueId:b.ChatQueueId})})}function q(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.chatPause,pauseType:b.pauseType,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.ChatQueues.forEach(function(c){a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,queueId:c.id,agent:b.name,online:b.online})})}function r(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function s(){return j.get().$promise.then(function(b){a.chatQueues=b.rows,e.syncUpdates("chat_queue",a.chatQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.chatQueues=[];var t={controller:"realtime",controller1:"chat",offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{row.entity.agent}} <{{row.entity.internal}}>
'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
({{hhours}}:{{mminutes}}:{{sseconds}})
',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"chatPause",displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
({{row.entity.pauseType}}){{hhours}}:{{mminutes}}:{{sseconds}}
',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){u(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){u(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){u(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?t.order=null:t.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),o()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){t.offset=(a-1)*b,t.limit=b,o()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?t[a.name]=a.filters[0].term:delete t[a.name]}),o()})}},o(),r(),s(),p()};var u=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_chat_queue")}),a.pause=function(b,c,e){return e&&(a.pauseType=null),i.save({name:c,agent:b,type:e||"DEFAULT PAUSE",data4:e||"DEFAULT PAUSE",channel:"chat"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/chat/realtime/view/agent/queue.modal.add.html",controller:"ChatRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.chatQueues,function(b){return!!_.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.chatQueues,function(a){return _.includes(b.queues,a.id)}),channel:"chat",data1:e,data3:b.queues.join(","),data4:"chat"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"chat",data1:a,data3:b,data4:"chat"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/chat/realtime/view/agent/agent.modal.info.html",controller:"ChatRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/chat/realtime/view/agent/agent.html",controller:"ChatRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewApplicationCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","ReportChatSession","usSpinnerService","$q","uiGridConstants","$timeout",function(a,b,c,d,e,f,g,h,i,j,k){function l(){return h.spin("spinner-grid"),g.get({controller:"waiting",controller2:"applications"}).$promise.then(function(b){a.gridOptions.data=b.rows})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){m(),h.stop("spinner-grid")})}function m(){e.socket.on("report_chat_session:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id});c?(_.merge(c,b),b.leaveAt&&k(function(){_.remove(a.gridOptions.data,{id:b.id})},1e4)):b.leaveAt||a.gridOptions.data.push(b)}),e.socket.on("report_chat_session:remove",function(b){_.remove(a.gridOptions.data,{id:b.id})})}a.moment=moment,a.initApplications=function(){a.gridOptions={headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,columnDefs:[{name:"uniqueid",displayName:"APPLICATION_UNIQUEID",headerCellFilter:"translate"},{name:"websitename",displayName:"APPLICATION_WEBSITE",headerCellFilter:"translate"},{name:"application",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate"},{name:"status",displayName:"APPLICATION_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{\'APPLICATION_QUEUESTATUS_WAITING\' | translate}}{{\'APPLICATION_QUEUESTATUS_ABANDON\' | translate}}{{\'APPLICATION_QUEUESTATUS_COMPLETE\' | translate}}{{\'APPLICATION_UNMANAGED\' | translate}} [{{hhours}}:{{mminutes}}:{{sseconds}}]
',enableSorting:!1,enableColumnMenu:!1,enableFiltering:!1},{name:"membername",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.membername || ''}}
"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.queuename || ''}}
"}],data:[],gridMenuTitleFilter:function(a){var b=i.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){n(a.gridOptions.data.length)})}},l()};var n=function(a){var b=a?30*a+60:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("report_chat_session")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view.applications",{url:"/applications",templateUrl:"app/channels/chat/realtime/view/application/application.html",controller:"ChatRealtimeViewApplicationCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"Queues",link:"main.chat.realtime.view.agent.queues"},{name:"Timeline",link:"main.chat.realtime.view.agent.timeline"}],a.sessions=[{name:"Sessions",link:"main.chat.realtime.view.sessions"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view",{url:"/view",templateUrl:"app/channels/chat/realtime/view/view.html",controller:"ChatRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").factory("ReportChatRoom",["$resource",function(a){return a("/api/report/chat/rooms/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ReportChatSession",["$resource",function(a){return a("/api/report/chat/sessions/:id/:controller/:controller2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.room.external",{url:"/external",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatRoomExternalListCtrl",["$scope","$timeout","socket","Auth","ChatRoom","usSpinnerService","Tag","$uibModal",function(a,b,c,d,e,f,g,h){function i(){return g.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a)})}a.openChat=function(b){return e.get({id:b.id}).$promise.then(function(b){var c=_.find(a.workspaces,{id:b.id,type:"chatRoom"});c?c.active=!0:a.workspaces.push({id:b.id,name:b.ChatVisitor.fullname,type:"chatRoom","class":"icon-bubble",active:!0})})["catch"](function(a){console.error(a)})},a.initView=function(){a.id=[],a.query={status:"OPEN",tags:[]},a.gridOptions={enableGridMenu:!1,enableFiltering:!0,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,flatEntityAccess:!0,showGridFooter:!0,fastWatch:!0,columnDefs:[{name:"id",displayName:"",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
#{{row.entity.id}}
",width:75,enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"userpic",displayName:"",width:35,cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',enableColumnMenu:!1,enableSorting:!1,enableFiltering:!1},{name:"fullname",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{row.entity.ChatVisitor.fullname}}
',enableSorting:!0,enableFiltering:!0,enableColumnMenu:!0},{name:"action",cellTemplate:'
{{\'APPLICATION_CHAT\' | translate}}
',cellClass:"ui-grid-vcenter",width:100,enableFiltering:!1,enableSorting:!1,enableColumnMenu:!1}],data:[],onRegisterApi:function(b){a.gridApi=b,a.gridApi.selection&&(a.gridApi.selection.on.rowSelectionChanged(a,function(b){b.isSelected?a.id.push(a.gridApi.grid.options.primaryKey?b.entity[a.gridApi.grid.options.primaryKey]:b.entity.id):_.pull(a.id,a.gridApi.grid.options.primaryKey?b.entity[a.gridApi.grid.options.primaryKey]:b.entity.id)}),a.gridApi.selection.on.rowSelectionChangedBatch(a,function(b){b[0].isSelected?a.id=_.union(a.id,_.map(b,a.gridApi.grid.options.primaryKey?"entity."+a.gridApi.grid.options.primaryKey:"entity.id")):_.map(b,a.gridApi.grid.options.primaryKey?"entity."+a.gridApi.grid.options.primaryKey:"entity.id").forEach(function(b){_.pull(a.id,b)})}))}},a.getPage(),i()},a.tagItems=function(){h.open({animation:!0,templateUrl:"app/channels/chat/room/view.tags.modal.html",controller:"ChatRoomViewModalTagCtrl",resolve:{id:function(){return a.id}}}).result.then(function(){a.gridApi.selection.clearSelectedRows(),a.id=[]})},a.onChanged=function(){a.getPage()},a.$watch("query.status",function(){a.getPage()},!0),a.getPage=function(){return f.spin("spinner-grid"),e.get(_.merge({id:"externals"},a.query)).$promise.then(function(b){a.gridOptions.data=b.rows})["catch"](function(a){console.error(a)})["finally"](function(){f.stop("spinner-grid")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.room.external.list",{url:"/list",templateUrl:"app/channels/chat/room/external/list/list.html",controller:"ChatRoomExternalListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.room.group",{url:"/group",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatRoomGroupListCtrl",["$scope","$timeout","Auth","ChatRoom","usSpinnerService","Tag",function(a,b,c,d,e,f){function g(){return f.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a)})}a.getFullnames=function(a){var b=_.map(a.Users,"fullname");return a.ChatVisitor&&b.unshift(a.ChatVisitor.fullname),_.without(b,c.getCurrentUser().fullname).join(", ")},a.openChat=function(b){return d.get({id:b.id}).$promise.then(function(c){var d=_.find(a.workspaces,{id:c.id,type:"chatRoom"});d?d.active=!0:a.workspaces.push({id:c.id,data:b,name:a.getFullnames(c),type:"chatRoom","class":"icon-bubble",active:!0})})["catch"](function(a){console.error(a)})},a.initView=function(){a.query={status:"OPEN",tags:[]},a.currentUser=c.getCurrentUser(),a.gridOptions={enableGridMenu:!1,enableColumnResizing:!0,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,flatEntityAccess:!0,showGridFooter:!0,fastWatch:!0,columnDefs:[{name:"userpic",displayName:"",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',enableColumnMenu:!1,enableSorting:!1,enableFiltering:!1},{name:"Users",displayName:"",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{grid.appScope.getFullnames(row.entity)}}
",enableSorting:!0,enableFiltering:!0,enableColumnMenu:!0},{name:"action",cellTemplate:'
{{\'APPLICATION_CHAT\' | translate}}
',cellClass:"ui-grid-vcenter",width:100,enableFiltering:!1,enableSorting:!1,enableColumnMenu:!1}],data:[]},a.getPage(),g()},a.onChanged=function(){a.getPage()},a.$watch("query.status",function(){a.getPage()},!0),a.getPage=function(){return e.spin("spinner-grid"),d.get(_.merge({id:"groups"},a.query)).$promise.then(function(b){a.gridOptions.data=b.rows})["catch"](function(a){console.error(a)})["finally"](function(){e.stop("spinner-grid")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.room.group.list",{url:"/list",templateUrl:"app/channels/chat/room/group/list/list.html",controller:"ChatRoomGroupListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.room.internal",{url:"/internal",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatRoomInternalListCtrl",["$scope","$timeout","socket","Auth","ChatRoom","usSpinnerService",function(a,b,c,d,e,f){a.openChat=function(b){return e.users({users:[d.getCurrentUser().id,b.id]}).$promise.then(function(c){var d=_.find(a.workspaces,{id:c.id,type:"chatRoom"});d?d.active=!0:a.workspaces.push({id:c.id,name:b.fullname,type:"chatRoom","class":"icon-bubble",active:!0})})["catch"](function(a){console.error(a)})},a.initView=function(){a.gridOptions={enableGridMenu:!1,enableFiltering:!0,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,flatEntityAccess:!0,showGridFooter:!0,fastWatch:!0,columnDefs:[{name:"userpic",displayName:"",width:35,cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',enableColumnMenu:!1,enableSorting:!1,enableFiltering:!1},{name:"fullname",enableSorting:!0,enableFiltering:!0,enableColumnMenu:!0},{name:"action",cellTemplate:'
{{\'APPLICATION_CHAT\' | translate}}
',cellClass:"ui-grid-vcenter",width:100,enableFiltering:!1,enableSorting:!1,enableColumnMenu:!1}],data:[]},c.socket.on("user:save",function(b){if(b.online&&d.getCurrentUser().id!==b.id){var c=_.find(a.gridOptions.data,{id:b.id});c?_.merge(c,b):a.gridOptions.data.push(b)}else _.remove(a.gridOptions.data,{id:b.id})}),c.socket.on("agent:save",function(b){if(b.online&&d.getCurrentUser().id!==b.id){var c=_.find(a.gridOptions.data,{id:b.id});c?_.merge(c,b):a.gridOptions.data.push(b)}else _.remove(a.gridOptions.data,{id:b.id})}),e.get({id:"agents"}).$promise.then(function(b){a.gridOptions.data=b.rows})["catch"](function(a){console.error(a)})["finally"](function(){f.stop("spinner-grid")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.room.internal.list",{url:"/list",templateUrl:"app/channels/chat/room/internal/list/list.html",controller:"ChatRoomInternalListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatRoomAddCtrl",["$scope","$uibModalInstance","Agent","items",function(a,b,c,d){a.items=d,a.agents=c.get(function(b){a.agents=b,a.items.forEach(function(b){_.remove(a.agents.rows,{id:b.id})})}),a.selected={items:[]},a.ok=function(){b.close(_.union(_.map(a.selected.items,"id"),_.map(a.items,"id")))},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("ChatRoomCloseCtrl",["$scope","$uibModalInstance","closed","ChatWebsite","websiteId",function(a,b,c,d,e){a.modal={title:"APPLICATION_CONFIRM_CLOSE",text:"MESSAGE_ARE_YOU_SURE_YOU_WANT_TO_CLOSE_THE_CHAT"},a.initDisposition=function(){return d.get({websiteId:e,controller:"dispositions"}).$promise.then(function(b){a.dispositions=b.rows})["catch"](function(a){console.error(a)})},a.item={},a.closed=c,a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss(); -}}]),angular.module("xCallyShuttleApp").directive("chatRoom",["$interval","$rootScope","$uibModal","$notification","$window","socket","Auth","ChatRoom","ngAudio","xAlert","Tag","CannedAnswer","List","$translate",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){return{restrict:"E",scope:{workspace:"="},templateUrl:"app/channels/chat/room/room.directive.html",link:function(a){a.user=g.getCurrentUser(),a.message={body:""},a.openContact=function(c){return a.chatRoom.ChatWebsite.List?m.get({listId:a.chatRoom.ChatWebsite.List.id,controller:"contacts",email:c}).$promise.then(function(a){b.$root.workspaces.push({active:!0,"class":"icon-user",contactID:a.id,name:a.email,type:"contact"})})["catch"](function(a){console.error(a)}):void j.show(n.instant("MESSAGE_NO_LIST_CONFIGURED"),"info")},a.modelOptions={debounce:{"default":500,blur:250},getterSetter:!0},a.form={},a.panelLeft="col-md-4",a.panelRight="col-md-8",a.onSelect=function(){a.message.body=a.modelOptions.selectedAnswer,delete a.modelOptions.selectedAnswer},a.togglePanelLeft=function(){a.panelLeft?(a.panelLeft=null,a.panelRight="col-md-12"):(a.panelLeft="col-md-4",a.panelRight="col-md-8")},a.options={link:!0,linkTarget:"_blank",pdf:{embed:!0},image:{embed:!0},audio:{embed:!0},code:{highlight:!0,lineNumbers:!1},basicVideo:!0},a.getAnswers=function(a){return l.get({key:a}).$promise.then(function(a){return console.log(a),_.map(a.rows,"value")})},a.isMyRoom=function(b){return!!_.find(b,{id:a.user.id})},h.get({id:a.workspace.id}).$promise.then(function(c){a.chatRoom=c,a.form.tags=c.tags,a.chatRoom.ChatVisitor&&(a.chatRoom.ChatVisitors=[],a.chatRoom.ChatVisitors.push(a.chatRoom.ChatVisitor)),f.socket.on("chat_room:save",function(b){a.chatRoom.id===b.id&&_.merge(a.chatRoom,b)}),f.socket.on("user_has_chat_room:save",function(b){return b.UserId!=a.user.id&&b.ChatRoomId==a.chatRoom.id?h.get({id:"agents",controller:b.UserId}).$promise.then(function(b){var c=_.map(a.chatRoom.Users,"fullname");a.chatRoom.ChatVisitor&&c.unshift(a.chatRoom.ChatVisitor.fullname),a.chatRoom.Users.push(b),a.workspace.name=_.without(c,g.getCurrentUser().fullname).join(", ")})["catch"](function(a){console.error(a)}):void 0}),f.socket.on("chat_message:save",function(c){a.chatRoom.id==c.ChatRoomId&&(a.user.id!=c.UserId&&a.chatRoom.ChatMessages.push(c),!b.settings.layout.onFocus&&e.Notification&&d("CHAT CHANNEL",{icon:"assets/images/media/channels/chat64.png",body:"NEW Chat Message!",delay:5e3}),a.workspace.active||(i.load("api/xchatty/assets?resource=notification/xc_blubb.mp3").play(),a.workspace.unread++))})})["catch"](function(a){console.error(a)}),k.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a)}),a.closeRoom=function(b){return c.open({animation:!0,templateUrl:"app/channels/chat/room/room.close.html",controller:"ChatRoomCloseCtrl",resolve:{closed:function(){return"CLOSED"===a.chatRoom.status},websiteId:function(){return a.chatRoom.ChatWebsiteId}}}).result.then(function(a){var c={id:b,status:"CLOSED",completeReason:"agent"};return a.disposition&&(c.disposition=a.disposition),h.update(c).$promise["catch"](function(a){j.show(a.data.message,"danger")})})},a.onChanged=function(b){return h.update({id:b},{tags:a.form.tags}).$promise["catch"](function(a){console.error(a)})},a.addAgent=function(b){c.open({animation:!0,templateUrl:"app/channels/chat/room/room.add.html",controller:"ChatRoomAddCtrl",resolve:{items:function(){return _.map(a.chatRoom.Users||[],function(a){return{id:a.id,fullname:a.fullname}})}}}).result.then(function(a){return h.update({id:b,controller:"users"},{users:a}).$promise["catch"](function(a){j.show(a.data.message,"danger")})})},a.sendMessage=function(){var b={body:angular.copy(a.message.body),createdAt:moment(),UserId:a.user.id,User:{fullname:a.user.fullname}};return a.message.body.trim().length?(a.chatRoom.ChatMessages.push(b),a.message.body="",h.save({id:a.chatRoom.id,controller:"messages"},{body:b.body}).$promise["catch"](function(a){console.error(a)})):void 0}}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.room",{url:"/room",templateUrl:"app/channels/chat/room/room.html",data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:8}},resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/inbox.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ChatRoomViewModalTagCtrl",["$scope","$uibModalInstance","$translate","$stateParams","Tag","ChatRoom","xAlert","id",function(a,b,c,d,e,f,g,h){a.initModal=function(){return a.tags=[],a.item={tags:[]},a.modal={dismissable:!0,title:"APPLICATION_MESSAGE_SEND_RETRY",text:"MESSAGE_MESSAGE_SEND_RETRY",buttons:[{"class":"btn-success",text:"APPLICATION_TAG",click:function(){var d={status:!0};return f.patch({id:h},{tags:a.item.tags}).$promise["catch"](function(){d.status=!1,g.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){b.close(d)})}},{"class":"default",text:"APPLICATION_CANCEL",click:function(a){b.dismiss(a)}}]},e.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("ChatVisitorListCtrl",["$scope","ChatVisitor","gridOptions","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"chat_visitors.csv",columnDefs:[{name:"fullname",cellClass:"text-center"},{name:"email",cellClass:"text-center"},{name:"origin",cellClass:"text-center"},{name:"createdAt",displayName:"createdAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
'},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/channels/chat/visitors/view/{{row.entity.id}}/profile",name:"profile"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.visitors.list",{url:"/list",templateUrl:"app/channels/chat/visitor/list/list.html",controller:"ChatVisitorListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatVisitorViewCtrl",["$scope","$stateParams","ChatVisitor",function(a,b,c){a.initView=function(){return c.get({id:b.id}).$promise.then(function(b){a.chatVisitor=b})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.visitors.view",{url:"/view/:id",templateUrl:"app/channels/chat/visitor/view/view.html",controller:"ChatVisitorViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.chat.visitors.view.profile",{url:"/profile",templateUrl:"app/channels/chat/visitor/view/view.profile.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.visitors",{url:"/visitors",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:8}}})}]),angular.module("xCallyShuttleApp").factory("ChatApplication",["$resource",function(a){return a("/api/chat/applications/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatWebsite",["$resource",function(a){return a("/api/chat/websites/:websiteId/:controller/:id",{id:"@websiteId"},{update:{method:"PUT"},updateFields:{method:"PUT",isArray:!0}})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteListCtrl",["$scope","gridOptions","ChatWebsite",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"chat_websites.csv",columnDefs:[{name:"name"},{name:"description"},{name:"address"},{name:"action",buttons:[{"class":"blue-hoki",href:"/channels/chat/websites/view/{{row.entity.id}}/embedding/view",name:"embedding"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.list",{url:"/list",templateUrl:"app/channels/chat/website/list/list.html",controller:"ChatWebsiteListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions",{url:"/actions",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewActionListCtrl",["$scope","gridOptions","ChatWebsite","$http","$translate","$stateParams","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i){a.initActons=function(){var d={draggable:!0,exporterCsvFilename:"chat_applications.csv",columnDefs:[{name:"app",cellClass:"text-center"},{name:"name",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.ChatQueue ? row.entity.ChatQueue.name : row.entity.User.name}}
"},{name:"timeout",cellClass:"text-center"},{name:"interval",cellClass:"text-center"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/chat/websites/view/{{row.entity.ChatWebsiteId}}/actions/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.app, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{websiteId:f.websiteId,controller:"applications"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions.list",{url:"/list",templateUrl:"app/channels/chat/website/view/action/list/list.html",controller:"ChatWebsiteViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval","ChatApplication","ChatQueue","Agent","Interval",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){return a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],k.get({id:c.actionId}).$promise.then(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})})["catch"](function(a){f.show(a.message||a.data.message,"danger")})},a.getQueues=function(){return l.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){f.show(a.message||a.data.message,"danger")})},a.getAgents=function(){return m.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){f.show(a.message||a.data.message,"danger")})},a.getIntervals=function(){return n.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){f.show(a.message||a.data.message,"danger")})},a.updateItem=function(){var b=["*","*","*","*"],e={app:a.application.app,timeout:a.application.timeout,chatAccountId:c.id};switch(a.application.app){case"agent":e.UserId=a.application.UserId,e.ChatQueueId=null;break;case"queue":e.ChatQueueId=a.application.ChatQueueId,e.UserId=null}switch(a.application.intType){case"always":e.interval=b.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(b[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?b[1]="*":b[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?b[2]="*":b[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?b[3]="*":b[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",e.interval=b.join(","),delete a.application.IntervalId;break;case"list":e.IntervalId=a.application.IntervalId}return k.update({id:c.actionId},e).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message||a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions.view",{url:"/view/:actionId",templateUrl:"app/channels/chat/website/view/action/view/view.html",controller:"ChatWebsiteViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewActionWizardCtrl",["$scope","$http","Agent","Interval","ChatQueue","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=l.application,a.$stateParams=f,a.$interval=m.interval,a.forms={},a.application={app:"queue",intType:"always",alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){return e.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return c.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){i.show(a.message||a.data.message,"danger")})},a.getIntervals=function(){return d.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){i.show(a.message||a.data.message,"danger")})},a.createItem=function(){var c=["*","*","*","*"],d={app:a.application.app,timeout:a.application.timeout,ChatWebsiteId:f.websiteId};switch(a.application.app){case"agent":d.UserId=a.application.UserId;break;case"queue":d.ChatQueueId=a.application.ChatQueueId}switch(a.application.intType){case"always":d.interval=c.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(c[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?c[1]="*":c[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?c[2]="*":c[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?c[3]="*":c[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",d.interval=c.join(","),delete a.application.IntervalId;break;case"list":d.IntervalId=a.application.IntervalId}b.post("/api/chat/applications",d).success(function(){h.path("/channels/chat/websites/view/"+f.websiteId+"/actions/list")}).error(function(a){i.show(a.message||a.data.message,"danger")})},a.formValidation=function(a){return a},a.next=function(){j.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions.wizard",{url:"/wizard",templateUrl:"app/channels/chat/website/view/action/wizard/wizard.html",controller:"ChatWebsiteViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("ChatDisposition",["$resource",function(a){return a("/api/chat/dispositions/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewModalDispositionAddCtrl",["$scope","$uibModalInstance","ChatWebsite","id","xAlert","$translate",function(a,b,c,d,e,f){a.ok=function(){return c.save({websiteId:d,controller:"dispositions"},{name:a.name}).$promise.then(function(a){b.close(a)})["catch"](function(a){e.show(f.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteDispositionViewCtrl",["$scope","$stateParams","$uibModal","$translate","ChatWebsite","xAlert",function(a,b,c,d,e,f){a.initView=function(){return e.get({websiteId:b.websiteId,controller:"dispositions"}).$promise.then(function(b){a.dispositions=b.rows})["catch"](function(a){console.error(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateDisposition=function(a,c){return e.update({websiteId:b.websiteId,controller:"dispositions",id:a},{name:c}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){console.error(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.deleteDisposition=function(c){return console.log("delete"),e.remove({websiteId:b.websiteId,controller:"dispositions",id:c}).$promise.then(function(){_.remove(a.dispositions,{id:c})})["catch"](function(a){console.error(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addDisposition=function(){return c.open({animation:!0,templateUrl:"app/channels/chat/website/view/disposition/modal/add.modal.html",controller:"ChatWebsiteViewModalDispositionAddCtrl",resolve:{id:function(){return b.websiteId}}}).result.then(function(b){b&&a.dispositions.push(b)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.dispositions",{url:"/dispositions",controller:"ChatWebsiteDispositionViewCtrl",templateUrl:"app/channels/chat/website/view/disposition/view/view.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.embedding",{url:"/embedding",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewEmbeddingViewCtrl",["$scope","$stateParams","$translate","clipboard","xAlert","ChatWebsite",function(a,b,c,d,e,f){a.initView=function(){return f.get({websiteId:b.websiteId,controller:"snippet"}).$promise.then(function(b){a.snippetCode=b.html})["catch"](function(a){e.show(a.message||a.data.message,"danger")})},a.copyToClipboard=function(){d.copyText(a.snippetCode),e.show(c.instant("MESSAGE_TEXT_COPIED_CLIPBOARD")+"!","success")}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.embedding.view",{url:"/view",templateUrl:"app/channels/chat/website/view/embedding/view/view.html",controller:"ChatWebsiteViewEmbeddingViewCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.form",{url:"/forms",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewFormViewCtrl",["$scope","$builder","$validator","$stateParams","$translate","ChatWebsite","xAlert",function(a,b,c,d,e,f,g){a.saveForm=function(a){var c=angular.copy(b.forms[a]);return c.length>3?g.show("You can insert at least 3 input elements","danger"):(_.forEach(c,function(a){delete a.id}),f.updateFields({websiteId:d.websiteId,controller:"fields",id:a},c).$promise.then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message||a.data.message,"danger")}))},a.getChatWebsiteFields=function(a){return f.query({websiteId:d.websiteId,controller:"fields",id:a}).$promise.then(function(c){_.forEach(c,function(c){b.addFormObject(a,c)})})["catch"](function(a){g.show(a.message||a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.form.view",{url:"/view",templateUrl:"app/channels/chat/website/view/form/view/view.html",controller:"ChatWebsiteViewFormViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewProactiveListCtrl",["$scope","gridOptions","ChatWebsite","$http","$translate","$stateParams","$uibModal",function(a,b,c,d,e,f,g){a.initProactiveActions=function(){var d={exporterCsvFilename:"telephones.csv",columnDefs:[{name:"name"},{name:"type"},{name:"action",width:125,buttons:[{"class":"blue-hoki",onClick:"grid.appScope.createItem(row.entity)",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{websiteId:f.websiteId,controller:"proactive"})},a.createItem=function(b){var c=g.open({animation:!0,templateUrl:"app/channels/chat/website/view/proactive/list/list.create.modal.html",controller:"ChatWebsiteProactiveListCreateCtrl",resolve:{item:b}});c.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteProactiveListCreateCtrl",["$scope","$translate","$uibModalInstance","$stateParams","ChatWebsite","xAlert","item",function(a,b,c,d,e,f,g){a.form={},a.item=g||{},a.title=g?b.instant("APPLICATION_EDIT_PROACTIVE_ACTION"):b.instant("APPLICATION_NEW_PROACTIVE_ACTION"),a.possibleType=[{type:"mouseOver",title:"Mouse Over"},{type:"timeout",title:"Timeout"}],a.save=function(){return g?e.update({websiteId:d.websiteId,controller:"proactive",id:a.item.id},a.item).$promise.then(function(a){f.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){f.show(a.message||a.data.message,"danger")}):e.save({websiteId:d.websiteId,controller:"proactive"},a.item).$promise.then(function(a){f.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){f.show(a.message||a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.proactive.list",{url:"/list",templateUrl:"app/channels/chat/website/view/proactive/list/list.html",controller:"ChatWebsiteViewProactiveListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.proactive",{url:"/proactive",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteSettingViewCtrl",["$scope","$stateParams","$translate","$location","$timeout","socket","xAlert","ChatWebsite","List",function(a,b,c,d,e,f,g,h,i){a.initView=function(){return i.get().$promise.then(function(b){a.lists=b.rows})["catch"](function(a){console.error(a)})},a.updateItemChatWebsite=function(){return h.update({id:b.websiteId},{ListId:a.chatWebsite.ListId}).$promise.then(function(){g.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.settings",{url:"/settings",controller:"ChatWebsiteSettingViewCtrl",templateUrl:"app/channels/chat/website/view/setting/view/view.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.snippet",{url:"/snippet",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewSnippetViewCtrl",["$scope","$http","$stateParams","$translate","Template",function(a,b,c,d,e){a.$translate=d,a.statePreview={state:"online"},a.enquirySwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.fidelitySwitch={isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.lang={HeaderCurrentlyChatting:"Live Chat",HeaderOffline:"Contact us",OperatorOfflineMessage:"It appears as if all operators are currently offline.",OfflineMessage:"We're not online.
It doesn't mean we're not there to help - leave your message below and we'll be in touch as soon as possible.",EnquiryMessagePlaceholder:"Your message...",EnquiryButtonText:"Leave message",EnquirySubmitSuccess:"Your message was sucessfully submitted - we will contact you as soon as possible.",OperatorComposing:"{fullname} is typing...",FirstMessageText:"",ExitChatButtonText:"Exit Chat",ExitChatQuestionText:"Are you sure?",ExitChatButtonConfirmText:"Yes",ExitChatButtonCancelText:"No",MessagePlaceholderText:"Your message...",MessageSendButtonText:"Send",ValidationEmailRequired:"Please enter your email address",ValidationEmailInvalid:"Please enter a valid email address",ValidationEmailMaxLength:"The email address may not exceed 85 characters",ValidationUsernameRequired:"Please enter your name",ValidationUsernameMaxLength:"The name may not exceed 45 characters",ValidationEnquiryRequired:"Please enter your enquiry",ValidationEnquiryMaxLength:"The enquiry may not exceed 1500 characters",ValidationMessageRequired:"Please enter your message",ValidationMessageMaxLength:"The message may not exceed 750 characters"},a.initView=function(){return e.get().$promise.then(function(b){a.templates=b.rows})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.snippet.view",{url:"/view",templateUrl:"app/channels/chat/website/view/snippet/view/view.html",controller:"ChatWebsiteViewSnippetViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewCtrl",["$scope","xAlert","$http","$location","$stateParams","$translate","WizardHandler","ChatApplication","ChatWebsite",function(a,b,c,d,e,f,g,h,i){a.initApplication=function(){a.forms={},a.application={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.deleteItem=function(a){return h["delete"]({id:a}).$promise.then(function(){b.show(f.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(a.message||a.data.message,"danger")})},a.initView=function(){return i.get({id:e.websiteId}).$promise.then(function(b){a.chatWebsite=b})["catch"](function(a){b.show(a.message||a.data.message,"danger")})},a.updateItem=function(){return i.update({id:a.chatWebsite.id},a.chatWebsite).$promise.then(function(){b.show(f.instant("MESSAGE_CHAT_WEBSITE_UPDATE_SUCCESS")+"!","success")})["catch"](function(a){b.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view",{url:"/view/:websiteId",templateUrl:"app/channels/chat/website/view/view.html",controller:"ChatWebsiteViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites",{url:"/websites",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:8}}})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert","ChatWebsite",function(a,b,c,d,e,f,g){a.$translate=d,a.forms={formSetting:void 0,formAppearance:void 0,formLabel:void 0,formFunctionality:void 0},a.next=function(){e.wizard().next()},a.exitValidation=function(a){return a},a.item={},a.createItem=function(){return g.save(a.item).$promise.then(function(){f.show(d.instant("MESSAGE_CHAT_WEBSITE_CREATE_SUCCESS"),"success"),c.path("/channels/chat/websites/list")})["catch"](function(a){f.show(a.message||a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.wizard",{url:"/wizard",templateUrl:"app/channels/chat/website/wizard/wizard.html",controller:"ChatWebsiteWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts",{url:"/accounts",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:10}}})}]),angular.module("xCallyShuttleApp").controller("FaxAccountListCtrl",["$scope","$uibModal","gridOptions","FaxAccount",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"chat_websites.csv",columnDefs:[{name:"name"},{name:"description"},{name:"localstationid"},{name:"TrunkName",displayName:"APPLICATION_TRUNK"},{name:"action",buttons:[{"class":"blue-hoki",href:"/channels/fax/accounts/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(d,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/channels/fax/account/list/list.create.modal.html",controller:"FaxAccountListCreateCtrl"});c.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("FaxAccountListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","FaxAccount","Trunk",function(a,b,c,d,e,f){a.initWizard=function(){return a.form={},a.item={},a.trunks=[],f.get().$promise.then(function(b){a.trunks=b.rows})["catch"](function(a){d.error(a)})},a.save=function(){return e.save(a.item).$promise.then(function(a){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.list",{url:"/list",templateUrl:"app/channels/fax/account/list/list.html",controller:"FaxAccountListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.view.actions",{url:"/actions",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxAccountViewActionListCtrl",["$scope","gridOptions","FaxAccount","$http","$translate","$stateParams",function(a,b,c,d,e,f){a.initActons=function(){var d={draggable:!0,exporterCsvFilename:"fax_applications.csv",enableSorting:!1,enableFiltering:!1,columnDefs:[{name:"app",cellClass:"text-center"},{name:"name",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.FaxQueue ? row.entity.FaxQueue.name : row.entity.User.name}}
"},{name:"timeout",cellClass:"text-center"},{name:"interval",cellClass:"text-center"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/fax/accounts/view/{{row.entity.FaxAccountId}}/actions/view/{{row.entity.id}}", -name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.app, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{accountId:f.accountId,controller:"applications"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.view.actions.list",{url:"/list",templateUrl:"app/channels/fax/account/view/action/list/list.html",controller:"FaxAccountViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxAccountViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval","Agent","Interval","FaxQueue","FaxAccount",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){return a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],n.get({accountId:c.accountId,controller:"applications",id:c.actionId}).$promise.then(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})})["catch"](function(a){f.error(a)})},a.getQueues=function(){return m.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return k.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return l.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.updateItem=function(){var b=["*","*","*","*"],e={app:a.application.app,timeout:a.application.timeout};switch(a.application.app){case"agent":e.UserId=a.application.UserId;break;case"queue":e.FaxQueueId=a.application.FaxQueueId}switch(a.application.intType){case"always":e.interval=b.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(b[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?b[1]="*":b[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?b[2]="*":b[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?b[3]="*":b[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",e.interval=b.join(","),delete a.application.IntervalId;break;case"list":e.IntervalId=a.application.IntervalId}return n.update({accountId:c.accountId,controller:"applications",id:c.actionId},e).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.view.actions.view",{url:"/view/:actionId",templateUrl:"app/channels/fax/account/view/action/view/view.html",controller:"FaxAccountViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxAccountViewActionWizardCtrl",["$scope","$http","Agent","FaxQueue","Interval","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval","FaxAccount",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=l.application,a.$stateParams=f,a.$interval=m.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){return d.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return c.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return e.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.createItem=function(){var b=["*","*","*","*"],c={app:a.application.app,timeout:a.application.timeout};switch(a.application.app){case"agent":c.UserId=a.application.UserId;break;case"queue":c.FaxQueueId=a.application.FaxQueueId}switch(a.application.intType){case"always":c.interval=b.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(b[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?b[1]="*":b[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?b[2]="*":b[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?b[3]="*":b[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",c.interval=b.join(","),delete a.application.IntervalId;break;case"list":c.IntervalId=a.application.IntervalId}return n.save({accountId:f.accountId,controller:"applications"},c).$promise.then(function(){i.show(g.instant("MESSAGE_WELL_DONE"),"success"),h.path("/channels/fax/accounts/view/"+f.accountId+"/actions/list")})["catch"](function(a){i.error(a)})},a.formValidation=function(a){return a},a.next=function(){j.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.view.actions.wizard",{url:"/wizard",templateUrl:"app/channels/fax/account/view/action/wizard/wizard.html",controller:"FaxAccountViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("FaxDisposition",["$resource",function(a){return a("/api/fax/dispositions/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("FaxInboxViewModaDispositionAddCtrl",["$scope","$uibModalInstance","FaxAccount","id","xAlert",function(a,b,c,d,e){a.ok=function(){return c.save({accountId:d,controller:"dispositions"},{name:a.name}).$promise.then(function(a){b.close(a)})["catch"](function(a){e.error(a)})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("FaxAccountDispositionViewCtrl",["$scope","$stateParams","$uibModal","$translate","FaxAccount","xAlert",function(a,b,c,d,e,f){a.initView=function(){return e.get({accountId:b.accountId,controller:"dispositions"}).$promise.then(function(b){a.dispositions=b.rows})["catch"](function(a){f.error(a)})},a.updateDisposition=function(a,c){return e.update({accountId:b.accountId,controller:"dispositions",id:a},{name:c}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){f.error(a)})},a.deleteDisposition=function(c){return e.remove({accountId:b.accountId,controller:"dispositions",id:c}).$promise.then(function(){_.remove(a.dispositions,{id:c})})["catch"](function(a){f.error(a)})},a.addDisposition=function(){return c.open({animation:!0,templateUrl:"app/channels/fax/account/view/disposition/modal/add.modal.html",controller:"FaxInboxViewModaDispositionAddCtrl",resolve:{id:function(){return b.accountId}}}).result.then(function(b){b&&a.dispositions.push(b)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.view.dispositions",{url:"/dispositions",controller:"FaxAccountDispositionViewCtrl",templateUrl:"app/channels/fax/account/view/disposition/view/view.html"})}]),angular.module("xCallyShuttleApp").controller("FaxAccountSettingViewCtrl",["$scope","$stateParams","$translate","FaxAccount","List","Trunk","xAlert",function(a,b,c,d,e,f,g){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){return a.rate=["2400","4800","7200","9600","12000","14400"],a.techs=["SIP","IAX","DADHI","KHOMP"],f.get().$promise.then(function(b){a.trunks=b.rows})["catch"](function(a){g.error(a)}),e.get().$promise.then(function(b){a.lists=b.rows})["catch"](function(a){g.error(a)}),d.get({id:b.accountId}).$promise.then(function(b){a.account=b})["catch"](function(a){g.error(a)})},a.updateItemFaxAccount=function(){return d.update({id:b.accountId},a.account).$promise.then(function(){g.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.view.settings",{url:"/settings",controller:"FaxAccountSettingViewCtrl",templateUrl:"app/channels/fax/account/view/setting/view/view.html"})}]),angular.module("xCallyShuttleApp").controller("FaxAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","FaxAccount",function(a,b,c,d,e,f,g,h,i,j){a.initView=function(){return j.get({id:c.accountId}).$promise.then(function(b){a.account=b})["catch"](function(a){h.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.view",{url:"/view/:accountId",templateUrl:"app/channels/fax/account/view/view.html",controller:"FaxAccountViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}})}]),angular.module("xCallyShuttleApp").controller("FaxAccountWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler","Trunk","FaxAccount",function(a,b,c,d,e,f,g,h){a.translate=d,a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){return a.$translate=d,a.forms={},a.item={},a.rate=["2400","4800","7200","9600","12000","14400"],a.techs=["SIP","IAX","DADHI","KHOMP"],a.item.headerinfo="xCALLY Motion Fax",a.item.ecm="yes",a.item.minrate="4800",a.item.maxrate="14400",a.item.modem="v17,v27,v29",a.item.gateway="no",a.item.faxdetect="no",a.item.t38timeout=5e3,a.item.tech="SIP",g.get().$promise.then(function(b){a.trunks=b.rows})["catch"](function(a){e.error(a)})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){return h.save(a.item).$promise.then(function(a){e.show(d.instant("MESSAGE_WELL_DONE"),"success"),c.path("/channels/fax/accounts/list")})["catch"](function(a){e.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.wizard",{url:"/wizard",templateUrl:"app/channels/fax/account/wizard/wizard.html",controller:"FaxAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax",{url:"/fax",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("FaxAccount",["$resource",function(a){return a("/api/fax/accounts/:accountId/:controller/:id",{id:"@accountId"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("FaxAttachment",["$resource",function(a){return a("/api/fax/attachments/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").factory("FaxMessage",["$resource",function(a){return a("/api/fax/messages/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("FaxReport",["$resource",function(a){return a("/api/report/faxs/:id/:controller1/:controller2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("FaxRoom",["$resource",function(a){return a("/api/fax/rooms/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.inbox",{url:"/inbox",template:"
","abstract":!0,data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:10}}})}]),angular.module("xCallyShuttleApp").directive("faxMessage",["$rootScope","$translate","FaxMessage","List","xAlert",function(a,b,c,d,e){return{restrict:"E",scope:{message:"=",listId:"="},templateUrl:"app/channels/fax/inbox/message/message.directive.html",link:function(f){f.openContact=function(c){return f.listId?d.get({listId:f.listId,controller:"contacts",phone:c}).$promise.then(function(b){a.$root.workspaces.push({active:!0,"class":"icon-user",contactID:b.id,name:b.phone,type:"contact"})})["catch"](function(a){e.error(a)}):void e.show(b.instant("MESSAGE_NO_LIST_CONFIGURED"),"info")},f.retry=function(a){return c.update({id:a,status:"SENDING"}).$promise["catch"](function(a){console.error(a)})}}}}]),angular.module("xCallyShuttleApp").directive("faxNote",["$translate","Modal","Auth","FaxMessage","xAlert",function(a,b,c,d,e){return{restrict:"E",scope:{message:"="},templateUrl:"app/channels/fax/inbox/note/note.directive.html",link:function(f){f.Auth=c,f.deleteNote=b.confirm["delete"](function(){return d.remove({id:f.message.id}).$promise.then(function(){e.show(a.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){e.error(a)})})}}}]),angular.module("xCallyShuttleApp").controller("FaxInboxViewModalNoteCtrl",["$scope","$uibModalInstance","$translate","id","FaxRoom","xAlert",function(a,b,c,d,e,f){a.initModal=function(){a.item={}},a.ok=function(){return e.save({id:d,controller:"messages"},{text:a.item.text,status:"NOTE"}).$promise.then(function(){f.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.error(a)})["finally"](function(){b.close()})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").directive("faxRoom",["$cookieStore","$translate","$uibModal","$timeout","FaxAccount","FaxRoom","FaxMessage","FileUploader","xAlert","usSpinnerService","socket","Tag","Auth","FaxAttachment",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){return{restrict:"E",scope:{workspace:"="},templateUrl:"app/channels/fax/inbox/room/room.directive.html",link:function(o){function p(a){if(a){var b=_.words(a),c=_.map(b,function(a){return a?a[0]:""});return c.join("").toUpperCase()}return!1}o.$on("$destroy",function(){k.unsyncUpdates("fax_message")});var q=[];o.modelOptions={debounce:{"default":500,blur:250},getterSetter:!0},o.panelLeft=null,o.panelRight="col-md-12",o.forms={},o.form={from:"",to:"",disabled:!1},k.socket.on("fax_message:remove",function(a){_.remove(o.faxRoom.FaxMessages,{id:a.id})}),k.socket.on("fax_message:save",function(a){return o.workspace.id&&a.FaxRoomId==o.workspace.id?(o.workspace.active||o.workspace.unread++,g.get({id:a.id}).$promise.then(function(a){o.faxRoom||(o.faxRoom={FaxMessages:[]});var b=_.findIndex(o.faxRoom.FaxMessages,{id:a.id});b>-1?_.merge(o.faxRoom.FaxMessages[b],a):o.faxRoom.FaxMessages.unshift(a),o.panelLeft="col-md-6",o.panelRight="col-md-6"})["catch"](function(a){console.error(a)})):void 0});var r=o.uploader=new h({url:"api/fax/attachments",autoUpload:!0,withCredentials:!0,queueLimit:1,headers:{Authorization:"Bearer "+a.get("token")}});return r.filters.push({name:"pdfFilter",fn:function(a,b){var c="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|pdf|".indexOf(c)}}),r.onWhenAddingFileFailed=function(a,c,d){switch(c.name){case"queueLimit":i.show(b.instant("MESSAGE_QUEUE_LIMIT_EXCEEDED"),"danger");break;case"pdfFilter":i.show(b.instant("MESSAGE_WRONG_FILE_FORMAT"),"danger");break;default:i.show(b.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")}},r.removeFromQueue=function(a){var c=this;return n["delete"]({id:a.basename}).$promise.then(function(){var b=c.getIndexOfItem(a),d=c.queue[b];d.isUploading&&d.cancel(),c.queue.splice(b,1),d._destroy(),c.progress=c._getTotalProgress(),q=_.reject(q,{basename:a.basename})})["catch"](function(){i.show(b.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},r.onErrorItem=function(){i.show(b.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},r.onSuccessItem=function(a,b){var c={path:b.path,name:b.name,basename:b.basename};a=_.merge(a,c),q.push(c)},o.getMessageMailId=function(a){var b=a.UserId?"imgFaxUserId"+a.UserId:"imgFaxVisitorId";return b+=o.faxRoom.id.toString()+a.id.toString()},o.togglePanelLeft=function(){o.panelLeft?(o.panelLeft=null,o.panelRight="col-md-12"):(o.panelLeft="col-md-6",o.panelRight="col-md-6")},o.closeRoom=function(){return c.open({animation:!0,templateUrl:"app/channels/fax/inbox/status/status.modal.html",controller:"FaxInboxStatusModalCtrl",resolve:{status:function(){return o.faxRoom.status},accountId:function(){return o.faxRoom.FaxAccount.id}}}).result.then(function(a){return f.update({id:o.workspace.id},a).$promise["catch"](function(a){i.error(a)})})},o.loadAgents=function(){c.open({animation:!0,templateUrl:"app/channels/fax/inbox/view/view.agents.modal.html",controller:"FaxInboxViewModalAgentCtrl",resolve:{roomId:function(){return o.workspace.id}}})},o.cancel=function(){o.form.disabled=!1,o.form.from="",o.form.to=""},o.loadNote=function(){c.open({animation:!0,templateUrl:"app/channels/fax/inbox/note/note.modal.html",controller:"FaxInboxViewModalNoteCtrl",resolve:{id:function(){return o.workspace.id}}})},o.getMessageFaxId=function(a){var b=a.UserId?"imgFaxUserId"+a.UserId:"imgFaxVisitorId";return b+=o.faxRoom.id.toString()+a.id.toString()},o.getMessageRoomAvatar=function(a,b,c,e){d(function(){var d=b?"#imgFaxUserId"+b:"#imgFaxVisitorId";d+=o.faxRoom.id.toString()+a.toString(),angular.element(d).avatar({useGravatar:!1,initials:e?[]:p(c),fallbackImage:e?"api/users/avatar/"+e:"api/users/avatar/unknown_avatar"})})},o.onChanged=function(){return f.update({id:o.workspace.id},{tags:o.form.tags}).$promise["catch"](function(a){i.error(a)})},o.sendFax=function(){j.spin("spinner-grid"),o.form.disabled=!0;var a={from:o.form.from,to:o.form.to||"",status:"SENDING",FaxAttachments:q};return o.faxRoom?f.save({id:o.workspace.id,controller:"messages"},a).$promise.then(function(){r.queue=[],q=[],i.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){i.error(a)})["finally"](function(){j.stop("spinner-grid"),o.form.disabled=!1}):g.save(a).$promise.then(function(a){return i.show(b.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success"),f.get({id:"messages",controller:a.id}).$promise}).then(function(a){r.queue=[],q=[],o.workspace.id=a.id,o.workspace.name=a.from,o.faxRoom=a})["catch"](function(a){i.error(a)})["finally"](function(){j.stop("spinner-grid"),o.form.disabled=!1})},l.get().$promise.then(function(a){o.tags=_.map(a.rows,"name")})["catch"](function(a){console.error(a)}),e.get().$promise.then(function(a){o.faxAccounts=a.rows})["catch"](function(a){console.error(a)}),o.workspace.id?(o.panelLeft="col-md-6",o.panelRight="col-md-6",f.get({id:o.workspace.id}).$promise.then(function(a){o.faxRoom=a,o.form.from=a.FaxAccount.localstationid,o.form.tags=a.tags;var b=_.findLast(a.FaxMessages,{status:"RECEIVED"});return b&&(o.form.to=b.from),k.socket.on("fax_room:save",function(a){a.id===o.workspace.id&&_.merge(o.faxRoom,a)}),a}).then(function(a){return m.isAgent()&&"CLOSED"!==a.status?f.update({id:o.workspace.id},{status:"OPEN"}):void 0}).then(function(){return m.isAgent()?f.update({id:o.workspace.id,controller:"agents"},{agents:[m.getCurrentUser().id]}).$promise:void 0})["catch"](function(a){i.error(a)})["finally"](function(){j.stop("spinner-grid"),o.form.disabled=!1})):(o.panelLeft=null,o.panelRight="col-md-12",j.stop("spinner-grid"),void 0)}}}]),angular.module("xCallyShuttleApp").controller("FaxInboxStatusModalCtrl",["$scope","$uibModalInstance","FaxAccount","status","accountId",function(a,b,c,d,e){a.modal={title:"APPLICATION_CONFIRM_CLOSE",text:"MESSAGE_ARE_YOU_SURE_YOU_WANT_TO_CLOSE_THE_FAX"},a.initDisposition=function(){return a.item={disposition:null,status:"CLOSED"},c.get({accountId:e,controller:"dispositions"}).$promise.then(function(b){a.dispositions=b.rows})["catch"](function(a){console.error(a)})},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.inbox.view.account",{url:"/account/:id",template:"
","abstract":!0,data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:10}}})}]),angular.module("xCallyShuttleApp").controller("FaxInboxViewAccountListCtrl",["$scope","$rootScope","$uibModal","$translate","$stateParams","$state","Tag","usSpinnerService","socket","FaxAccount","FaxRoom","gridOptions","uiGridConstants","Auth","Modal","xAlert","localStorageService",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){a.openRoom=function(b,c){var d=_.find(a.workspaces,{id:b,type:"faxRoom"});d?d.active=!0:a.workspaces.push({id:b,name:c,type:"faxRoom","class":"icon-paper-plane",active:!0})},a.getPage=function(){h.spin("spinner-grid");var b={accountId:e.id,controller:"rooms"};return a.query&&_.merge(b,a.query),j.query(b).$promise.then(function(b){q.set("faxAccountId",e.id),a.gridOptions.data=b,i.unsyncUpdates("fax_room"),i.socket.on("fax_room:save",function(b){if(b.FaxAccountId==e.id){var c=_.find(a.gridOptions.data,{id:b.id});c&&(c.status!==b.status?_.remove(a.gridOptions.data,{id:b.id}):_.merge(c,b))}}),i.socket.on("fax_room:remove",function(b){_.remove(a.gridOptions.data,{id:b.id})})})["catch"](function(a){p.error(a)})["finally"](function(){h.stop("spinner-grid")})},a.initView=function(){a.id=[],a.isAdmin=n.isAdmin(),a.isAgent=n.isAgent(),a.uncheckable=!1,a.query={status:q.get("faxStatus")?q.get("faxStatus"):"UNMANAGED",tags:q.get("faxTags")?q.get("faxTags"):[]},a.$watch("query.status",function(){q.set("faxStatus",a.query.status),a.getPage(a.query)},!0),j.get().$promise.then(function(b){a.faxAccounts=b.rows})["catch"](function(a){console.error(a)}),g.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a)}),a.gridOptions={exporterCsvFilename:"fax_rooms.csv",enableRowHeaderSelection:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,enableFiltering:!0,enableSorting:!0,enableGridMenu:!1,flatEntityAccess:!0,showGridFooter:!0,fastWatch:!0,enableSelectAll:!1,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,columnDefs:[{name:"lastEvent",displayName:"",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
",width:30,enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"tags",displayName:"",headerCellTemplate:'',cellClass:"text-center ui-grid-vcenter",cellTemplate:"
",width:30,enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"id",displayName:"Id",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
#{{row.entity.id}}
",width:75,enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"from",cellClass:"text-center"},{name:"disposition",displayName:"APPLICATION_DISPOSITION",headerCellFilter:"translate"},{name:"updatedAt",cellFilter:"date:'MM/dd/yyyy HH:mm'",width:120,enableSorting:!1,enableFiltering:!1,sort:{direction:m.DESC}},{name:"action",cellTemplate:'
',enableSorting:!1,cellClass:"ui-grid-vcenter",width:90,enableFiltering:!1,enableColumnMenu:!1}],data:[],onRegisterApi:function(b){a.gridApi=b,a.gridApi.selection&&(a.gridApi.selection.on.rowSelectionChanged(a,function(b){b.isSelected?a.id.push(a.gridApi.grid.options.primaryKey?b.entity[a.gridApi.grid.options.primaryKey]:b.entity.id):_.pull(a.id,a.gridApi.grid.options.primaryKey?b.entity[a.gridApi.grid.options.primaryKey]:b.entity.id)}),a.gridApi.selection.on.rowSelectionChangedBatch(a,function(b){b[0].isSelected?a.id=_.union(a.id,_.map(b,a.gridApi.grid.options.primaryKey?"entity."+a.gridApi.grid.options.primaryKey:"entity.id")):_.map(b,a.gridApi.grid.options.primaryKey?"entity."+a.gridApi.grid.options.primaryKey:"entity.id").forEach(function(b){_.pull(a.id,b)})}))}},a.getPage(a.query)},a.onChanged=function(){q.set("faxTags",a.query.tags),a.getPage(a.query)},a.loadAgents=function(a){c.open({animation:!0,templateUrl:"app/channels/fax/inbox/view/view.agents.modal.html",controller:"FaxInboxViewModalAgentCtrl",resolve:{roomId:a}})},a.tagItems=function(){c.open({animation:!0,templateUrl:"app/channels/fax/inbox/view/view.tags.modal.html",controller:"FaxInboxViewModalTagCtrl",resolve:{id:function(){return a.id}}}).result.then(function(){a.gridApi.selection.clearSelectedRows(),a.id=[]})},a.deleteItem=o.confirm["delete"](function(b){var c={id:b};return k.remove(c).$promise.then(function(){a.getPage(),p.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),a.gridApi.selection.clearSelectedRows(),a.id=[]})["catch"](function(a){p.error(a)})}),a.deleteItems=o.confirm["delete"](function(){var b={ids:a.id};return k["delete"](b).$promise.then(function(){a.getPage(),p.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),a.gridApi.selection.clearSelectedRows(),a.id=[]})["catch"](function(a){p.error(a)})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.inbox.view.account.list",{url:"/list",templateUrl:"app/channels/fax/inbox/view/account/list/list.html",controller:"FaxInboxViewAccountListCtrl",data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:10}}})}]),angular.module("xCallyShuttleApp").controller("FaxInboxViewModalAgentCtrl",["$scope","$uibModalInstance","$translate","$stateParams","Agent","FaxRoom","xAlert","roomId",function(a,b,c,d,e,f,g,h){a.initModal=function(){a.agents=[],a.item={agents:[]},e.get().$promise.then(function(b){b.rows.forEach(function(b){a.agents.push(b)})})["catch"](function(a){console.error(a)}),f.query({id:h,controller:"agents"}).$promise.then(function(b){b.forEach(function(b){a.agents.push(b),a.item.agents.push(b.id)})})["catch"](function(a){console.error(a)}),a.modal={dismissable:!0,title:"APPLICATION_MESSAGE_SEND_RETRY",text:"MESSAGE_MESSAGE_SEND_RETRY",buttons:[{classes:"btn btn-success",text:"APPLICATION_RETRY",click:function(a){b.close(a)}},{classes:"btn default",text:"APPLICATION_CANCEL",click:function(a){b.dismiss(a)}}]}},a.ok=function(){return f.update({id:h,controller:"agents",agents:a.item.agents}).$promise.then(function(){g.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close()})["catch"](function(a){console.error(a)})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("FaxInboxViewCtrl",["$scope","$timeout","$location","FaxAccount","xAlert",function(a,b,c,d,e){a.initView=function(){return d.get().$promise.then(function(b){var d=null;a.faxAccounts=b.rows,a.faxAccounts.length&&(d="/channels/fax/inbox/view/account/"+a.faxAccounts[0].id+"/list"),d&&c.path(d)})["catch"](function(a){e.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.inbox.view",{url:"/view",templateUrl:"app/channels/fax/inbox/view/view.html",controller:"FaxInboxViewCtrl",reload:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/inbox.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxInboxViewModalStatusCtrl",["$scope","$uibModalInstance","$translate","$stateParams","$location","FaxRoom","xAlert","id","status",function(a,b,c,d,e,f,g,h,i){a.initModal=function(){a.modal={dismissable:!0,title:"APPLICATION_STATUS",html:"

"+c.instant("MESSAGE_CHANGE_STATUS")+" "+i+"?

",status:i,buttons:[{classes:"btn btn-success",text:"APPLICATION_CONFIRM",click:function(a){return f.update({id:h},{status:i}).$promise.then(function(){g.show(c.instant("MESSAGE_STATUS_UPDATE_SUCCESS"),"success"),b.close(a)})["catch"](function(a){g.error(a)})}},{classes:"btn default",text:"APPLICATION_CANCEL",click:function(a){b.dismiss(a)}}]}}}]),angular.module("xCallyShuttleApp").controller("FaxInboxViewModalTagCtrl",["$scope","$uibModalInstance","$translate","$stateParams","Tag","FaxRoom","xAlert","id",function(a,b,c,d,e,f,g,h){console.log(h),a.initModal=function(){return a.tags=[],a.item={tags:[]},a.modal={dismissable:!0,title:"APPLICATION_MESSAGE_SEND_RETRY",text:"MESSAGE_MESSAGE_SEND_RETRY",buttons:[{"class":"btn-success",text:"APPLICATION_TAG",click:function(){var d={status:!0};return f.patch({id:h},{tags:a.item.tags}).$promise["catch"](function(){d.status=!1,g.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){b.close(d)})}},{"class":"default",text:"APPLICATION_CANCEL",click:function(a){b.dismiss(a)}}]},e.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").factory("FaxQueue",["$resource",function(a){return a("/api/fax/queues/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("FaxQueueListCtrl",["$scope","FaxQueue","gridOptions","Auth","$uibModal",function(a,b,c,d,e){a.initView=function(){a.Auth=d;var e={exporterCsvFilename:"fax_queues.csv",columnDefs:[{name:"name"},{name:"description"},{name:"strategy"},{name:"timeout"},{name:"action",width:200,buttons:[{"class":"blue-hoki",href:"/channels/fax/queues/view/{{row.entity.id}}/settings",name:"settings"},{"class":"green-meadow", -href:"/channels/fax/queues/view/{{row.entity.id}}/agents",name:"agents",hide:"user"===d.getCurrentUser().role},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,e,a)},a.createItem=function(){var b=e.open({animation:!0,templateUrl:"app/channels/fax/queue/list/list.create.modal.html",controller:"FaxQueueListCreateCtrl"});b.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("FaxQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","FaxQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.queues.list",{url:"/list",templateUrl:"app/channels/fax/queue/list/list.html",controller:"FaxQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.queues",{url:"/queues",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:10}}})}]),angular.module("xCallyShuttleApp").controller("FaxQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","FaxQueue","Team","Auth",function(a,b,c,d,e,f,g,h){a.Auth=h;var i=function(){return{select:function(b){return f.save({id:a.queue.id,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})},deselect:function(b){return f["delete"]({id:a.queue.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})}}};a.getQueue=function(){return f.get({id:d.id}).$promise.then(function(b){b.penalty=0,a.queue=b})["catch"](function(a){e.show(a.message,"danger")})},a.updateFaxQueue=function(){return f.update({id:d.id},{name:a.queue.name,description:a.queue.description,timeout:a.queue.timeout,strategy:a.queue.strategy}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")})},a.getTeams=function(){return g.get({controller:"associations"}).$promise.then(function(b){return a.teams=b.rows,f.get({id:d.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindMailQueue(a.teams,_.map(b.rows,function(a){return{id:a.id,penalty:a.UserHasFaxQueue.penalty}}),i)})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.queues.view",{url:"/view/:id",templateUrl:"app/channels/fax/queue/view/view.html",controller:"FaxQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.fax.queues.view.settings",{url:"/settings",templateUrl:"app/channels/fax/queue/view/view.settings.html"}).state("main.channels.fax.queues.view.agents",{url:"/agents",templateUrl:"app/channels/fax/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.realtime",{url:"/realtime",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:10}}})}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","FaxQueue","usSpinnerService","$q","uiGridConstants","Auth",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){function o(){return k.spin("spinner-grid"),g.get(t).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){q(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function p(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});c&&(c.online=b.online,c.lastLoginAt=b.lastLoginAt,c.pause=b.faxPause,c.pauseType=b.pauseType,c.lastPauseAt=b.lastPauseAt,c.ipaddr=b.ipaddr,c.port=b.port,c.fullcontact=b.fullcontact,c.useragent=b.useragent,c.lastms=b.lastms,c.internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)}))}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_fax_queue:save",function(b){var c=_.includes(_.map(a.CurrentUser.PFaxQueues,"id"),b.FaxQueueId)||n.isAdmin();if(c){var d=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0});if(d){var e=a.gridOptions.data.indexOf(d);a.gridOptions.data.splice(e+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,queueId:b.FaxQueueId,agent:b.membername,online:d.online})}}}),e.socket.on("user_has_fax_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queueId:b.FaxQueueId})})}function q(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.faxPause,pauseType:b.pauseType,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.FaxQueues.forEach(function(c){a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,queueId:c.id,agent:b.name,online:b.online})})}function r(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function s(){return j.get().$promise.then(function(b){a.faxQueues=b.rows,e.syncUpdates("fax_queue",a.faxQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.faxQueues=[];var t={controller:"realtime",controller1:"fax",offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{row.entity.agent}} <{{row.entity.internal}}>
'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
({{hhours}}:{{mminutes}}:{{sseconds}})
',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"faxPause",width:300,displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
({{row.entity.pauseType}}){{hhours}}:{{mminutes}}:{{sseconds}}
',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){u(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){u(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){u(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?t.order=null:t.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),o()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){t.offset=(a-1)*b,t.limit=b,o()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?t[a.name]=a.filters[0].term:delete t[a.name]}),o()})}},o(),r(),s(),p()};var u=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_fax_queue")}),a.pause=function(b,c,e){return e&&(a.pauseType=null),i.save({name:c,agent:b,type:e||"DEFAULT PAUSE",data4:e||"DEFAULT PAUSE",channel:"fax"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/fax/realtime/view/agent/queue.modal.add.html",controller:"FaxRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.faxQueues,function(b){return!!_.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.faxQueues,function(a){return _.includes(b.queues,a.id)}),channel:"fax",data1:e,data3:b.queues.join(","),data4:"fax"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"fax",data1:a,data3:b,data4:"fax"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/fax/realtime/view/agent/agent.modal.info.html",controller:"FaxRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/fax/realtime/view/agent/agent.html",controller:"FaxRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewApplicationCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","ReportFaxSession","usSpinnerService","$q","uiGridConstants","$timeout",function(a,b,c,d,e,f,g,h,i,j,k){function l(){return h.spin("spinner-grid"),g.get({controller:"waiting",controller2:"applications"}).$promise.then(function(b){a.gridOptions.data=b.rows})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){m(),h.stop("spinner-grid")})}function m(){e.socket.on("report_fax_session:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id});c?(_.merge(c,b),b.leaveAt&&k(function(){_.remove(a.gridOptions.data,{id:b.id})},1e4)):b.leaveAt||a.gridOptions.data.push(b)}),e.socket.on("report_fax_session:remove",function(b){_.remove(a.gridOptions.data,{id:b.id})})}a.moment=moment,a.initApplications=function(){a.gridOptions={headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,columnDefs:[{name:"uniqueid",displayName:"APPLICATION_UNIQUEID",headerCellFilter:"translate"},{name:"accountname",displayName:"APPLICATION_ACCOUNT",headerCellFilter:"translate"},{name:"application",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate"},{name:"status",displayName:"APPLICATION_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{\'APPLICATION_QUEUESTATUS_WAITING\' | translate}}{{\'APPLICATION_QUEUESTATUS_COMPLETE\' | translate}}{{\'APPLICATION_UNMANAGED\' | translate}} [{{hhours}}:{{mminutes}}:{{sseconds}}]
',enableSorting:!1,enableColumnMenu:!1,enableFiltering:!1},{name:"membername",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.membername || ''}}
"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.queuename || ''}}
"}],data:[],gridMenuTitleFilter:function(a){var b=i.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){n(a.gridOptions.data.length)})}},l()};var n=function(a){var b=a?30*a+60:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("report_fax_session")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.realtime.view.applications",{url:"/applications",templateUrl:"app/channels/fax/realtime/view/application/application.html",controller:"FaxRealtimeViewApplicationCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewCtrl",["$scope","$state",function(a,b){a.agents=[{name:"Queues",link:"main.channels.fax.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.fax.realtime.view.agents.timeline"}],a.sessions=[{name:"Sessions",link:"main.channels.fax.realtime.view.sessions"}],a.tree={queues:[{name:"Queues",link:"main.channels.fax.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.fax.realtime.view.agents.timeline"}],sessions:[{name:"Sessions",link:"main.channels.fax.realtime.view.sessions"}]}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.realtime.view",{url:"/view",templateUrl:"app/channels/fax/realtime/view/view.html",controller:"FaxRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").factory("ReportFaxRoom",["$resource",function(a){return a("/api/report/fax/rooms/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ReportFaxSession",["$resource",function(a){return a("/api/report/fax/sessions/:id/:controller/:controller2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailAccount",["$resource",function(a){return a("/api/mail/accounts/:accountId/:controller/:id",{id:"@accountId"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts",{url:"/accounts",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:9}}})}]),angular.module("xCallyShuttleApp").controller("MailAccountListCtrl",["$scope","$stateParams","gridOptions","MailAccount","socket",function(a,b,c,d,e){a.$on("$destroy",function(){e.unsyncUpdates("mail_server_in")}),a.initView=function(){e.socket.on("mail_server_in:save",function(b){var c=_.find(a.gridOptions.data,{id:b.MailAccountId});c&&(c.MailServerIn.state=b.state,c.MailServerIn.source=JSON.parse(b.source))});var f={exporterCsvFilename:"mail_accounts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"address"},{name:"MailServerIn.state",width:100,cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.MailServerIn.state}}
",displayName:"IMAP",enableSorting:!1,enableFiltering:!1},{name:"MailServerOut.state",width:110,cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.MailServerOut.state}}
",displayName:"SMTP",enableSorting:!1,enableFiltering:!1},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/mail/accounts/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(d,f,a,{accountId:b.accountId})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.list",{url:"/list",templateUrl:"app/channels/mail/account/list/list.html",controller:"MailAccountListCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailServerIn",["$resource",function(a){return a("/api/mail/servers/in/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailServerOut",["$resource",function(a){return a("/api/mail/servers/out/:id/:controller",{id:"@id"},{update:{method:"PUT"},test:{method:"GET"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions",{url:"/actions",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionListCtrl",["$scope","gridOptions","MailAccount","$http","$translate","$stateParams",function(a,b,c,d,e,f){a.initActons=function(){var d={draggable:!0,exporterCsvFilename:"mail_applications.csv",enableSorting:!1,enableFiltering:!1,columnDefs:[{name:"app",cellClass:"text-center"},{name:"name",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.MailQueue ? row.entity.MailQueue.name : row.entity.User.name}}
"},{name:"timeout",cellClass:"text-center"},{name:"interval",cellClass:"text-center"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/mail/accounts/view/{{row.entity.MailAccountId}}/actions/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.app, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{accountId:f.accountId,controller:"applications"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions.list",{url:"/list",templateUrl:"app/channels/mail/account/view/action/list/list.html",controller:"MailAccountViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval","Agent","Interval","MailQueue",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],b.get("/api/mail/applications/"+c.actionId).success(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})}).error(function(a){console.error(a)})},a.getQueues=function(){return m.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return k.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return l.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.updateItem=function(){var e=["*","*","*","*"],g={app:a.application.app,timeout:a.application.timeout,MailAccountId:c.id};switch(a.application.app){case"agent":g.UserId=a.application.UserId;break;case"queue":g.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":g.interval=e.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(e[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?e[1]="*":e[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?e[2]="*":e[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?e[3]="*":e[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",g.interval=e.join(","),delete a.application.IntervalId;break;case"list":g.IntervalId=a.application.IntervalId}b.put("/api/mail/applications/"+c.actionId,g).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions.view",{url:"/view/:actionId",templateUrl:"app/channels/mail/account/view/action/view/view.html",controller:"MailAccountViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionWizardCtrl",["$scope","$http","Agent","MailQueue","Interval","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=l.application,a.$stateParams=f,a.$interval=m.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){return d.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return c.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return e.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.createItem=function(){var c=["*","*","*","*"],d={app:a.application.app,timeout:a.application.timeout,MailAccountId:f.accountId};switch(a.application.app){case"agent":d.UserId=a.application.UserId;break;case"queue":d.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":d.interval=c.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(c[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?c[1]="*":c[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?c[2]="*":c[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?c[3]="*":c[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",d.interval=c.join(","),delete a.application.IntervalId;break;case"list":d.IntervalId=a.application.IntervalId}b.post("/api/mail/applications",d).success(function(){h.path("/channels/mail/accounts/view/"+f.accountId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){j.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions.wizard",{url:"/wizard",templateUrl:"app/channels/mail/account/view/action/wizard/wizard.html",controller:"MailAccountViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailDisposition",["$resource",function(a){return a("/api/mail/dispositions/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("MailInboxViewModaDispositionAddCtrl",["$scope","$uibModalInstance","MailAccount","id","xAlert","$translate",function(a,b,c,d,e,f){a.ok=function(){return c.save({accountId:d,controller:"dispositions"},{name:a.name}).$promise.then(function(a){b.close(a)})["catch"](function(a){e.show(f.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailAccountDispositionViewCtrl",["$scope","$stateParams","$uibModal","$translate","MailAccount","xAlert",function(a,b,c,d,e,f){a.initView=function(){return e.get({accountId:b.accountId,controller:"dispositions"}).$promise.then(function(b){a.dispositions=b.rows})["catch"](function(a){console.error(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateDisposition=function(a,c){return e.update({accountId:b.accountId,controller:"dispositions",id:a},{name:c}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){console.error(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.deleteDisposition=function(c){return console.log("delete"),e.remove({accountId:b.accountId,controller:"dispositions",id:c}).$promise.then(function(){_.remove(a.dispositions,{id:c})})["catch"](function(a){console.error(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addDisposition=function(){return c.open({animation:!0,templateUrl:"app/channels/mail/account/view/disposition/modal/add.modal.html",controller:"MailInboxViewModaDispositionAddCtrl",resolve:{id:function(){return b.accountId}}}).result.then(function(b){b&&a.dispositions.push(b)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.dispositions",{url:"/dispositions",controller:"MailAccountDispositionViewCtrl",templateUrl:"app/channels/mail/account/view/disposition/view/view.html"})}]),angular.module("xCallyShuttleApp").controller("MailAccountSettingViewCtrl",["$scope","$http","$stateParams","$translate","$location","$timeout","socket","xAlert","MailAccount","MailMessage","MailServerIn","MailServerOut","usSpinnerService","List","Template",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){a.imapDisabled=!1,a.smtpDisabled=!1,a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.CONST_TIMEOUT=3e4,a.$on("$destroy",function(){g.socket.removeAllListeners("mail_message:sent"),g.socket.removeAllListeners("mail_message:failed")}),a.initView=function(){return g.socket.on("mail_message:sent",function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success"),m.stop("spinner-grid")}),g.socket.on("mail_message:failed",function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),m.stop("spinner-grid")}),n.get().$promise.then(function(b){a.lists=b.rows})["catch"](function(a){console.error(a)}),o.get().$promise.then(function(b){a.templates=b.rows})["catch"](function(a){console.error(a)}),i.get({id:c.accountId}).$promise.then(function(b){a.account=b,a.account.MailServerIn.source=JSON.parse(a.account.MailServerIn.source),a.account.MailServerOut.source=JSON.parse(a.account.MailServerOut.source),g.socket.on("mail_server_in:state",function(b){if(b.id===a.account.MailServerIn.id)switch(a.account.MailServerIn.state=b.state, -a.account.MailServerIn.source=JSON.parse(b.source),b.state){case"CONNECTING":break;default:m.stop("spinner-grid"),a.imapDisabled=!1}}),g.socket.on("mail_server_out:state",function(b){if(b.id===a.account.MailServerOut.id)switch(a.account.MailServerOut.state=b.state,a.account.MailServerOut.source=JSON.parse(b.source),b.state){case"CONNECTING":break;default:m.stop("spinner-grid"),a.smtpDisabled=!1}})})["catch"](function(a){h.show(a.message,"danger")})},a.updateItemMailAccount=function(){return i.update({id:c.accountId},{name:a.account.name,description:a.account.description,address:a.account.address,fidelity:a.account.fidelity,timeout:a.account.timeout,ListId:a.account.ListId,TemplateId:a.account.TemplateId}).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})},a.updateItemMailServerIn=function(){var b=angular.copy(a.account.MailServerIn);return delete b.source,m.spin("spinner-grid"),a.imapDisabled=!0,k.update({id:b.id},b).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})},a.updateItemMailServerOut=function(){var b=angular.copy(a.account.MailServerOut);return delete b.source,m.spin("spinner-grid"),a.smtpDisabled=!0,l.update({id:b.id},b).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})},a.test=function(){return m.spin("spinner-grid"),a.smtpDisabled=!0,l.update({id:a.account.MailServerOut.id},{state:"CONNECTING"}).$promise["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.settings",{url:"/settings",controller:"MailAccountSettingViewCtrl",templateUrl:"app/channels/mail/account/view/setting/view/view.html"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewCtrl",["$scope","$stateParams","MailAccount",function(a,b,c){a.initView=function(){return c.get({id:b.accountId}).$promise.then(function(b){a.account=b})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view",{url:"/view/:accountId",controller:"MailAccountViewCtrl",templateUrl:"app/channels/mail/account/view/view.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailAccountWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert","MailAccount",function(a,b,c,d,e,f,g){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.forms={},a.item={MailServerIn:{port:993,ssl:!0,"delete":!1,protocol:"IMAP",filter:"UNSEEN",mailbox:"INBOX",keepalive:!0,authTimeout:5,connTimeout:10},MailServerOut:{port:465,ssl:!0}}},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a},a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/channels/mail/accounts/list")})["catch"](function(a){f.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.wizard",{url:"/wizard",templateUrl:"app/channels/mail/account/wizard/wizard.html",controller:"MailAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.inbox",{url:"/inbox",template:"
","abstract":!0,data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:9}}})}]),angular.module("xCallyShuttleApp").directive("mailMessage",["$rootScope","$translate","MailMessage","List","xAlert","Lightbox",function(a,b,c,d,e,f){return{restrict:"E",scope:{message:"=",listId:"="},templateUrl:"app/channels/mail/inbox/message/message.directive.html",link:function(g){g.openPreview=function(a){f.openModal(["api/mail/attachments/"+a],0)},g.openContact=function(c){return g.listId?d.get({listId:g.listId,controller:"contacts",email:c}).$promise.then(function(b){a.$root.workspaces.push({active:!0,"class":"icon-user",contactID:b.id,name:b.email,type:"contact"})})["catch"](function(a){console.error(a)}):void e.show(b.instant("MESSAGE_NO_LIST_CONFIGURED"),"info")},g.retry=function(a){return c.update({id:a,status:"SENDING"}).$promise["catch"](function(a){console.error(a)})}}}}]),angular.module("xCallyShuttleApp").directive("mailNote",["$translate","Modal","Auth","MailMessage","xAlert",function(a,b,c,d,e){return{restrict:"E",scope:{message:"="},templateUrl:"app/channels/mail/inbox/note/note.directive.html",link:function(f){f.Auth=c,f.deleteNote=b.confirm["delete"](function(){return d.remove({id:f.message.id}).$promise.then(function(){e.show(a.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){e.show(a.message?a.message:a.data.message,"danger")})})}}}]),angular.module("xCallyShuttleApp").controller("MailInboxViewModalNoteCtrl",["$scope","$uibModalInstance","$translate","id","MailRoom","xAlert",function(a,b,c,d,e,f){a.initModal=function(){a.item={}},a.ok=function(){return e.save({id:d,controller:"messages"},{text:a.item.text,status:"NOTE"}).$promise.then(function(){f.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(){f.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){b.close()})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").directive("mailRoom",["$rootScope","$cookieStore","$translate","$uibModal","$timeout","Tag","CannedAnswer","MailAttachment","MailAccount","MailRoom","MailMessage","FileUploader","xAlert","usSpinnerService","socket","Auth",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){return{restrict:"E",scope:{workspace:"="},templateUrl:"app/channels/mail/inbox/room/room.directive.html",link:function(e){function q(a){return a?"
"+a.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\n/g,"
")+"
":void 0}e.$on("$destroy",function(){o.unsyncUpdates("mail_message")});var r=[];e.options={language:a.language,allowedContent:!0,entities:!1,toolbar:[{name:"clipboard",items:["Cut","Copy","Paste","-","Undo","Redo"]},{name:"links",items:["Link","Unlink","Anchor"]},{name:"insert",items:["Image","Table","HorizontalRule","SpecialChar"]},{name:"tools",items:["Maximize"]},"/",{name:"basicstyles",items:["Bold","Italic","Underline","Strike","Subscript","Superscript","-","RemoveFormat"]},{name:"paragraph",items:["NumberedList","BulletedList","-","Outdent","Indent","-","Blockquote"]},{name:"styles",items:["Styles","Format"]}]},e.modelOptions={debounce:{"default":500,blur:250},getterSetter:!0},e.panelLeft=null,e.panelRight="col-md-12",e.forms={},e.form={from:[],to:[],sto:[],cc:[],scc:[],tags:[],html:"",disabled:!1},o.socket.on("mail_message:remove",function(a){_.remove(e.mailRoom.MailMessages,{id:a.id})}),o.socket.on("mail_message:save",function(a){return e.workspace.id&&a.MailRoomId==e.workspace.id?(e.workspace.active||e.workspace.unread++,k.get({id:a.id}).$promise.then(function(a){e.mailRoom||(e.mailRoom={MailMessages:[]});var b=_.findIndex(e.mailRoom.MailMessages,{id:a.id});b>-1?_.merge(e.mailRoom.MailMessages[b],a):e.mailRoom.MailMessages.unshift(a),e.panelLeft="col-md-6",e.panelRight="col-md-6"})["catch"](function(a){console.error(a)})):void 0});var s=e.uploader=new l({url:"api/mail/attachments",autoUpload:!0,withCredentials:!0,headers:{Authorization:"Bearer "+b.get("token")}});return s.removeFromQueue=function(a){var b=this;return h["delete"]({id:a.basename}).$promise.then(function(){var c=b.getIndexOfItem(a),d=b.queue[c];d.isUploading&&d.cancel(),b.queue.splice(c,1),d._destroy(),b.progress=b._getTotalProgress(),r=_.reject(r,{basename:a.basename})})["catch"](function(){m.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},s.onErrorItem=function(){m.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},s.onSuccessItem=function(a,b){var c={size:b.size,path:b.path,name:b.name,basename:b.basename,type:b.type};a=_.merge(a,c),r.push(c)},e.openRoom=function(b){var c=_.find(a.workspaces,{id:b,type:"mailRoom"});c?c.active=!0:a.workspaces.push({id:b,type:"mailRoom","class":"icon-envelope",active:!0})},e.togglePanelLeft=function(){e.panelLeft?(e.panelLeft=null,e.panelRight="col-md-12"):(e.panelLeft="col-md-6",e.panelRight="col-md-6")},e.onSelectAnswer=function(){e.form.html=e.modelOptions.selectedAnswer+e.form.html,delete e.modelOptions.selectedAnswer},e.getAnswers=function(a){return g.get({key:a}).$promise.then(function(a){return _.map(a.rows,"value")})},e.cancel=function(){e.form.disabled=!1,e.form.from=[],e.form.to=[],e.form.sto=[],e.form.cc=[],e.form.scc=[],delete e.form.subject,delete e.form.html},e.updateStatus=function(a){return d.open({animation:!0,templateUrl:"app/channels/mail/inbox/status/status.modal.html",controller:"MailInboxStatusModalCtrl",resolve:{roomId:function(){return e.workspace.id},accountId:function(){return e.mailRoom.MailAccount.id},status:function(){return a}}})},e.loadAgents=function(){return d.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.agents.modal.html",controller:"MailInboxViewModalAgentCtrl",resolve:{roomId:function(){return e.workspace.id}}})},e.loadTemplate=function(){return d.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.templates.modal.html",controller:"MailInboxViewModalTemplateCtrl"}).result.then(function(a){e.form.subject=a.template.subject,e.form.html=a.template.html})},e.closeRoom=function(){return d.open({animation:!0,templateUrl:"app/channels/mail/inbox/status/status.modal.html",controller:"MailInboxStatusModalCtrl",resolve:{status:function(){return e.mailRoom.status},accountId:function(){return e.mailRoom.MailAccount.id}}}).result.then(function(a){return j.update({id:e.workspace.id},a).$promise["catch"](function(a){m.show(a.data.message,"danger")})})},e.loadNote=function(){return d.open({animation:!0,templateUrl:"app/channels/mail/inbox/note/note.modal.html",controller:"MailInboxViewModalNoteCtrl",resolve:{id:function(){return e.workspace.id}}})},e.onChanged=function(){return j.update({id:e.workspace.id},{tags:e.form.tags}).$promise["catch"](function(a){console.error(a)})},e.sendMail=function(){n.spin("spinner-grid"),e.form.disabled=!0;var a={},b={subject:e.form.subject||e.mailRoom.subject,from:e.form.from,to:e.form.sto||[],cc:e.form.scc||[],html:e.form.html||null,text:e.form.text||null,inReplyTo:a.messageId||null,status:"SENDING",MailAttachments:r};return e.mailRoom?(a=_.last(e.mailRoom.MailMessages,{status:"RECEIVED"}),b.inReplyTo=a.messageId||null,j.save({id:e.workspace.id,controller:"messages"},b).$promise.then(function(){e.form.html="",s.queue=[],r=[],m.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(){m.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){n.stop("spinner-grid"),e.form.disabled=!1})):k.save(b).$promise.then(function(a){return m.show(c.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success"),j.get({id:"messages",controller:a.id}).$promise}).then(function(a){e.form.html="",s.queue=[],r=[],e.workspace.id=a.id,e.workspace.name=a.subject,e.mailRoom=a})["catch"](function(){m.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){n.stop("spinner-grid"),e.form.disabled=!1})},f.get().$promise.then(function(a){e.tags=_.map(a.rows,"name")})["catch"](function(a){console.error(a)}),i.get().$promise.then(function(a){e.mailAccounts=a.rows})["catch"](function(a){console.error(a)}),e.workspace.id?(e.panelLeft="col-md-6",e.panelRight="col-md-6",j.get({id:e.workspace.id}).$promise.then(function(a){e.mailRoom=a,e.workspace.name=a.subject||"No subject",e.form.from.push(a.MailAccount.address),e.form.tags=a.tags;var b=_.findLast(e.mailRoom.MailMessages,{status:"RECEIVED"});return b&&(e.form.to=e.form.cc=e.form.bcc=_.union(b.from,b.to,b.cc,b.bcc),e.form.sto=_.remove(e.form.to,function(b){return b!==a.MailAccount.address}),e.form.subject="Re: "+(b.subject||"No subject"),e.form.html=q(b.text)),o.socket.on("mail_room:save",function(a){a.id===e.workspace.id&&_.merge(e.mailRoom,a)}),a}).then(function(a){return p.isAgent()&&"CLOSED"!==a.status?j.update({id:e.workspace.id},{status:"OPEN"}):void 0}).then(function(){return p.isAgent()?j.update({id:e.workspace.id,controller:"agents"},{agents:[p.getCurrentUser().id]}).$promise:void 0})["catch"](function(a){console.error(a)})["finally"](function(){n.stop("spinner-grid"),e.form.disabled=!1})):(e.panelLeft=null,e.panelRight="col-md-12",n.stop("spinner-grid"),void 0)}}}]),angular.module("xCallyShuttleApp").controller("MailInboxStatusModalCtrl",["$scope","$uibModalInstance","MailAccount","status","accountId",function(a,b,c,d,e){a.modal={title:"APPLICATION_CONFIRM_CLOSE",text:"MESSAGE_ARE_YOU_SURE_YOU_WANT_TO_CLOSE_THE_MAIL"},a.initDisposition=function(){return a.item={disposition:null,status:"CLOSED"},c.get({accountId:e,controller:"dispositions"}).$promise.then(function(b){a.dispositions=b.rows})["catch"](function(a){console.error(a)})},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.inbox.view.account",{url:"/account/:id",template:"
","abstract":!0,data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:9}}})}]),angular.module("xCallyShuttleApp").controller("MailInboxViewAccountListCtrl",["$scope","$rootScope","$uibModal","$translate","$stateParams","$state","Tag","usSpinnerService","socket","MailAccount","MailRoom","uiGridConstants","Auth","Modal","xAlert","localStorageService",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){a.openRoom=function(b,c){var d=_.find(a.workspaces,{id:b,type:"mailRoom"});d?d.active=!0:a.workspaces.push({id:b,type:"mailRoom","class":"icon-envelope",active:!0})},a.getPage=function(){h.spin("spinner-grid");var b={accountId:e.id,controller:"rooms"};return a.query&&_.merge(b,a.query),j.query(b).$promise.then(function(b){p.set("mailAccountId",e.id),a.gridOptions.data=b,i.unsyncUpdates("mail_room"),i.socket.on("mail_room:save",function(b){if(b.MailAccountId==e.id){var c=_.find(a.gridOptions.data,{id:b.id});c&&(c.status!==b.status?_.remove(a.gridOptions.data,{id:b.id}):_.merge(c,b))}}),i.socket.on("mail_room:remove",function(b){_.remove(a.gridOptions.data,{id:b.id})})})["catch"](function(a){console.error(a)})["finally"](function(){h.stop("spinner-grid")})},a.initView=function(){a.id=[],a.isAdmin=m.isAdmin(),a.isAgent=m.isAgent(),a.uncheckable=!1,a.query={status:p.get("mailStatus")?p.get("mailStatus"):"UNMANAGED",tags:p.get("mailTags")?p.get("mailTags"):[]},a.$watch("query.status",function(){p.set("mailStatus",a.query.status),a.getPage()},!0),j.get().$promise.then(function(b){a.mailAccounts=b.rows})["catch"](function(a){console.error(a)}),g.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a)}),a.gridOptions={exporterCsvFilename:"mail_rooms.csv",enableRowHeaderSelection:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,enableFiltering:!0,enableSorting:!0,enableGridMenu:!1,flatEntityAccess:!0,showGridFooter:!0,fastWatch:!0,enableSelectAll:!1,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,columnDefs:[{name:"lastEvent",displayName:"",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
",width:30,enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"attachment",displayName:"",headerCellTemplate:'',cellClass:"text-center ui-grid-vcenter",cellTemplate:"
",width:30,enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"tags",displayName:"",headerCellTemplate:'',cellClass:"text-center ui-grid-vcenter",cellTemplate:"
",width:30,enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"id",displayName:"Id",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
#{{row.entity.id}}
",width:75,enableSorting:!1,enableFiltering:!0,enableColumnMenu:!1},{name:"subject"},{name:"from",cellClass:"text-center"},{name:"disposition",displayName:"APPLICATION_DISPOSITION",headerCellFilter:"translate"},{name:"updatedAt",cellFilter:"date:'MM/dd/yyyy HH:mm'",width:120,enableSorting:!1,enableFiltering:!1,sort:{direction:l.DESC}},{name:"action",cellTemplate:'
',enableSorting:!1,cellClass:"ui-grid-vcenter",width:90,enableFiltering:!1,enableColumnMenu:!1}],data:[],onRegisterApi:function(b){a.gridApi=b,a.gridApi.selection&&(a.gridApi.selection.on.rowSelectionChanged(a,function(b){b.isSelected?a.id.push(a.gridApi.grid.options.primaryKey?b.entity[a.gridApi.grid.options.primaryKey]:b.entity.id):_.pull(a.id,a.gridApi.grid.options.primaryKey?b.entity[a.gridApi.grid.options.primaryKey]:b.entity.id)}),a.gridApi.selection.on.rowSelectionChangedBatch(a,function(b){b[0].isSelected?a.id=_.union(a.id,_.map(b,a.gridApi.grid.options.primaryKey?"entity."+a.gridApi.grid.options.primaryKey:"entity.id")):_.map(b,a.gridApi.grid.options.primaryKey?"entity."+a.gridApi.grid.options.primaryKey:"entity.id").forEach(function(b){_.pull(a.id,b)})}))}},a.getPage(a.query)},a.onChanged=function(){p.set("mailTags",a.query.tags),a.getPage(a.query)},a.loadAgents=function(a){return c.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.agents.modal.html",controller:"MailInboxViewModalAgentCtrl",resolve:{roomId:a}})},a.tagItems=function(){return c.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.tags.modal.html",controller:"MailInboxViewModalTagCtrl",resolve:{id:function(){return a.id}}}).result.then(function(){a.gridApi.selection.clearSelectedRows(),a.id=[]})},a.deleteItem=n.confirm["delete"](function(b){var c={id:b};return k.remove(c).$promise.then(function(){a.getPage(),o.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),a.gridApi.selection.clearSelectedRows(),a.id=[]})["catch"](function(a){o.show(a.message?a.message:a.data.message,"danger")})}),a.deleteItems=n.confirm["delete"](function(){var b={ids:a.id};return k["delete"](b).$promise.then(function(){a.getPage(),o.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),a.gridApi.selection.clearSelectedRows(),a.id=[]})["catch"](function(a){o.show(a.message?a.message:a.data.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.inbox.view.account.list",{url:"/list",templateUrl:"app/channels/mail/inbox/view/account/list/list.html",controller:"MailInboxViewAccountListCtrl",data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:9}}})}]),angular.module("xCallyShuttleApp").controller("MailInboxViewModalAgentCtrl",["$scope","$uibModalInstance","$translate","$stateParams","Agent","Auth","MailRoom","xAlert","roomId",function(a,b,c,d,e,f,g,h,i){var j=[];a.initModal=function(){return a.agents=[],a.item={agents:[]},e.get().$promise.then(function(b){for(var c=0;c
","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("MailReport",["$resource",function(a){return a("/api/report/mails/:id/:controller1/:controller2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailRoom",["$resource",function(a){return a("/api/mail/rooms/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").factory("MailAttachment",["$resource",function(a){return a("/api/mail/attachments/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").factory("MailMessage",["$resource",function(a){return a("/api/mail/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("MailQueueListCtrl",["$scope","MailQueue","gridOptions","$uibModal","Auth",function(a,b,c,d,e){a.initView=function(){a.Auth=e;var d={exporterCsvFilename:"voice_queues.csv",columnDefs:[{name:"name"},{name:"description"},{name:"timeout"},{name:"strategy"},{name:"action",width:200,buttons:[{"class":"blue-hoki",href:"/channels/mail/queues/view/{{row.entity.id}}/settings",name:"settings"},{"class":"green-meadow",href:"/channels/mail/queues/view/{{row.entity.id}}/agents",name:"agents",hide:"user"===e.getCurrentUser().role},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/mail/queue/list/list.create.modal.html",controller:"MailQueueListCreateCtrl"});b.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("MailQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","MailQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.queues.list",{url:"/list",templateUrl:"app/channels/mail/queue/list/list.html",controller:"MailQueueListCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailQueue",["$resource",function(a){return a("/api/mail/queues/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.queues",{url:"/queues",template:"
","abstract":!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]},data:{permissions:{only:["admin","user"],redirectTo:"landing",id:9}}})}]),angular.module("xCallyShuttleApp").controller("MailQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","Team","MailQueue","Auth",function(a,b,c,d,e,f,g,h){a.Auth=h;var i=function(){return{select:function(b){return g.save({id:a.queue.id,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})},deselect:function(b){return g["delete"]({id:a.queue.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})}}};a.getQueue=function(){return g.get({id:d.id}).$promise.then(function(b){b.penalty=0,a.queue=b})["catch"](function(a){console.error(a)})},a.updateMailQueue=function(){return g.update({id:d.id},{name:a.queue.name,description:a.queue.description,timeout:a.queue.timeout,strategy:a.queue.strategy}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})},a.getTeams=function(){return f.get({controller:"associations"}).$promise.then(function(b){return a.teams=b.rows,g.get({id:d.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindMailQueue(a.teams,_.map(b.rows,function(a){return{id:a.id,penalty:a.UserHasMailQueue.penalty}}),i)})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.queues.view",{url:"/view/:id",templateUrl:"app/channels/mail/queue/view/view.html",controller:"MailQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.mail.queues.view.settings",{url:"/settings",templateUrl:"app/channels/mail/queue/view/view.settings.html"}).state("main.channels.mail.queues.view.agents",{url:"/agents",templateUrl:"app/channels/mail/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime",{url:"/realtime",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:9}}})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","MailQueue","usSpinnerService","$q","uiGridConstants","Auth",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){function o(){return k.spin("spinner-grid"),g.get(t).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){q(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function p(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});c&&(c.online=b.online,c.lastLoginAt=b.lastLoginAt,c.pause=b.mailPause,c.pauseType=b.pauseType,c.lastPauseAt=b.lastPauseAt,c.ipaddr=b.ipaddr,c.port=b.port,c.fullcontact=b.fullcontact,c.useragent=b.useragent,c.lastms=b.lastms,c.internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)}))}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_mail_queue:save",function(b){var c=_.includes(_.map(a.CurrentUser.PMailQueues,"id"),b.MailQueueId)||n.isAdmin();if(c){var d=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0});if(d){var e=a.gridOptions.data.indexOf(d);a.gridOptions.data.splice(e+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,queueId:b.MailQueueId,agent:b.membername,online:d.online})}}}),e.socket.on("user_has_mail_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queueId:b.MailQueueId})})}function q(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.mailPause,pauseType:b.pauseType,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.MailQueues.forEach(function(c){a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,queueId:c.id,agent:b.name,online:b.online})})}function r(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function s(){return j.get().$promise.then(function(b){a.mailQueues=b.rows,e.syncUpdates("mail_queue",a.mailQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.mailQueues=[];var t={controller:"realtime",controller1:"mail",offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{row.entity.agent}} <{{row.entity.internal}}>
'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
({{hhours}}:{{mminutes}}:{{sseconds}})
', -filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"mailPause",displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
({{row.entity.pauseType}}){{hhours}}:{{mminutes}}:{{sseconds}}
',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){u(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){u(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){u(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?t.order=null:t.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),o()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){t.offset=(a-1)*b,t.limit=b,o()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?t[a.name]=a.filters[0].term:delete t[a.name]}),o()})}},o(),r(),s(),p()};var u=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_mail_queue")}),a.pause=function(b,c,e){return e&&(a.pauseType=null),i.save({name:c,agent:b,type:e||"DEFAULT PAUSE",data4:e||"DEFAULT PAUSE",channel:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/mail/realtime/view/agent/queue.modal.add.html",controller:"MailRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.mailQueues,function(b){return!!_.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.mailQueues,function(a){return _.includes(b.queues,a.id)}),channel:"mail",data1:e,data3:b.queues.join(","),data4:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"mail",data1:a,data3:b,data4:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/mail/realtime/view/agent/agent.modal.info.html",controller:"MailRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/mail/realtime/view/agent/agent.html",controller:"MailRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewApplicationCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","ReportMailSession","usSpinnerService","$q","uiGridConstants","$timeout",function(a,b,c,d,e,f,g,h,i,j,k){function l(){return h.spin("spinner-grid"),g.get({controller:"waiting",controller2:"applications"}).$promise.then(function(b){a.gridOptions.data=b.rows})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){m(),h.stop("spinner-grid")})}function m(){e.socket.on("report_mail_session:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id});c?(_.merge(c,b),b.leaveAt&&k(function(){_.remove(a.gridOptions.data,{id:b.id})},1e4)):b.leaveAt||a.gridOptions.data.push(b)}),e.socket.on("report_mail_session:remove",function(b){_.remove(a.gridOptions.data,{id:b.id})})}a.moment=moment,a.initApplications=function(){a.gridOptions={headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,columnDefs:[{name:"uniqueid",displayName:"APPLICATION_UNIQUEID",headerCellFilter:"translate"},{name:"websitename",displayName:"APPLICATION_WEBSITE",headerCellFilter:"translate"},{name:"application",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate"},{name:"status",displayName:"APPLICATION_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{\'APPLICATION_QUEUESTATUS_WAITING\' | translate}}{{\'APPLICATION_QUEUESTATUS_COMPLETE\' | translate}}{{\'APPLICATION_UNMANAGED\' | translate}} [{{hhours}}:{{mminutes}}:{{sseconds}}]
',enableSorting:!1,enableColumnMenu:!1,enableFiltering:!1},{name:"membername",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.membername || ''}}
"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.queuename || ''}}
"}],data:[],gridMenuTitleFilter:function(a){var b=i.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){n(a.gridOptions.data.length)})}},l()};var n=function(a){var b=a?30*a+60:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("report_mail_session")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.applications",{url:"/applications",templateUrl:"app/channels/mail/realtime/view/application/application.html",controller:"MailRealtimeViewApplicationCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewCtrl",["$scope","$state",function(a,b){a.agents=[{name:"Queues",link:"main.channels.mail.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.mail.realtime.view.agents.timeline"}],a.sessions=[{name:"Sessions",link:"main.channels.mail.realtime.view.sessions"}],a.tree={queues:[{name:"Queues",link:"main.channels.mail.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.mail.realtime.view.agents.timeline"}],sessions:[{name:"Sessions",link:"main.channels.mail.realtime.view.sessions"}]}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view",{url:"/view",templateUrl:"app/channels/mail/realtime/view/view.html",controller:"MailRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").factory("ReportMailRoom",["$resource",function(a){return a("/api/report/mail/rooms/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ReportMailSession",["$resource",function(a){return a("/api/report/mail/sessions/:id/:controller/:controller2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.realtime",{url:"/realtime",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:12}}})}]),angular.module("xCallyShuttleApp").controller("RealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l){function m(b){return j.spin("spinner-grid"),g.get(p).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=b.rows})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){b&&n(),j.stop("spinner-grid")})}function n(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id});c&&_.merge(c,b)}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{id:b.id})})}function o(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}var p={controller:"realtime",offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.name}} <{{row.entity.internal}}>
"},{name:"online",displayName:"APPLICATION_ONLINE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
({{hhours}}:{{mminutes}}:{{sseconds}})
',filter:{type:l.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"pauseStatus",displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
[{{row.entity.pauseType}}] [{{hhours}}:{{mminutes}}:{{sseconds}}]
'},{name:"voicePause",displayName:"APPLICATION_VOICE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',filter:{type:l.filter.SELECT,selectOptions:[{value:"true",label:d.instant("APPLICATION_PAUSED")},{value:"connect",label:d.instant("APPLICATION_NOT_PAUSED")}]},enableSorting:!1,enableColumnMenu:!1},{name:"mailPause",displayName:"APPLICATION_MAIL",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',filter:{type:l.filter.SELECT,selectOptions:[{value:"true",label:d.instant("APPLICATION_PAUSED")},{value:"connect",label:d.instant("APPLICATION_NOT_PAUSED")}]},enableSorting:!1,enableColumnMenu:!1},{name:"chatPause",displayName:"APPLICATION_CHAT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',filter:{type:l.filter.SELECT,selectOptions:[{value:"true",label:d.instant("APPLICATION_PAUSED")},{value:"connect",label:d.instant("APPLICATION_NOT_PAUSED")}]},enableSorting:!1,enableColumnMenu:!1},{name:"faxPause",displayName:"APPLICATION_FAX",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',filter:{type:l.filter.SELECT,selectOptions:[{value:"true",label:d.instant("APPLICATION_PAUSED")},{value:"connect",label:d.instant("APPLICATION_NOT_PAUSED")}]},enableSorting:!1,enableColumnMenu:!1},{name:"smsPause",displayName:"APPLICATION_SMS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',filter:{type:l.filter.SELECT,selectOptions:[{value:"true",label:d.instant("APPLICATION_PAUSED")},{value:"connect",label:d.instant("APPLICATION_NOT_PAUSED")}]},enableSorting:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=k.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){q(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?p.order=null:p.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),m()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){p.offset=(a-1)*b,p.limit=b,m()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?p[a.name]=a.filters[0].term:delete p[a.name]}),m()})}},m(!0),o()};var q=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent")}),a.pause=function(b,c,e,g){return e&&(a.pauseType=null),i.save({name:c,agent:b,type:e||"DEFAULT PAUSE",data4:e||"DEFAULT PAUSE",channel:g||"all"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(d.instant(a.message||a.data.message||a.translatedMessage||a.data.translatedMessage),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/realtime/view/agent/agent.html",controller:"RealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("RealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("RealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("RealtimeViewCtrl",["$scope",function(a){}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.realtime.view",{url:"/view",templateUrl:"app/channels/realtime/view/view.html",controller:"RealtimeViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("ReportCall",["$resource",function(a){return a("/api/report/calls/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SmsAccount",["$resource",function(a){return a("/api/sms/accounts/:accountId/:controller/:id",{id:"@accountId"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts",{url:"/accounts",template:"
",data:{permissions:{only:["admin","user"],redirectTo:"landing",id:11}}})}]),angular.module("xCallyShuttleApp").controller("SmsAccountListCtrl",["$scope","SmsAccount","gridOptions","$stateParams","xAlert","$translate",function(a,b,c,d,e,f){a.message="Hello",a.initView=function(){var e={exporterCsvFilename:"sms_accounts.csv",columnDefs:[{name:"id",displayName:"ID",cellClass:"text-center",width:75,enableSorting:!1,enableFiltering:!1},{name:"name"},{name:"description"},{name:"type",displayName:"APPLICATION_ACCOUNT_TYPE"},{name:"action",buttons:[{"class":"blue-hoki",href:"/channels/sms/accounts/view/{{row.entity.id}}/settings",name:"profile"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK",onClick:"grid.appScope.checkAccount(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,e,a,{accountId:d.accountId})},a.checkAccount=function(a){return b.get({accountId:a,controller:"check"}).$promise.then(function(){e.show(f.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(a){e.show(f.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.list",{url:"/list",templateUrl:"app/channels/sms/account/list/list.html",controller:"SmsAccountListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.view.action",{url:"/actions",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SmsApplication",["$resource",function(a){return a("/api/sms/applications/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SmsAccountViewActionListCtrl",["$scope","gridOptions","SmsAccount","$http","$translate","$stateParams","xAlert",function(a,b,c,d,e,f,g){console.log("SmsAccountViewActionListCtrl"),c.get({accountId:f.accountId,controller:"applications"}).$promise.then(function(a){console.log("apps",a)})["catch"](function(a){g.show(a.message,"danger")}),a.initActions=function(){var d={draggable:!0,exporterCsvFilename:"sms_applications.csv",enableSorting:!1,enableFiltering:!1,columnDefs:[{name:"app",cellClass:"text-center"},{name:"name",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.SmsQueue ? row.entity.SmsQueue.name : row.entity.User.name}}
"},{name:"timeout",cellClass:"text-center"},{name:"interval",cellClass:"text-center"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/sms/accounts/view/{{row.entity.SmsAccountId}}/actions/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.app, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{accountId:f.accountId,controller:"applications"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.view.action.list",{url:"/list",templateUrl:"app/channels/sms/account/view/action/list/list.html",controller:"SmsAccountViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("SmsAccountViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval","Agent","Interval","SmsQueue","SmsApplication",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],b.get("/api/sms/applications/"+c.actionId).success(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})}).error(function(a){console.error(a)})},a.getQueues=function(){return m.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return k.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return l.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.updateItem=function(){var b=["*","*","*","*"],g={app:a.application.app,timeout:a.application.timeout,SmsAccountId:c.id};switch(a.application.app){case"agent":g.UserId=a.application.UserId;break;case"queue":g.SmsQueueId=a.application.SmsQueueId}switch(a.application.intType){case"always":g.interval=b.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(b[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?b[1]="*":b[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?b[2]="*":b[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?b[3]="*":b[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",g.interval=b.join(","),delete a.application.IntervalId;break;case"list":g.IntervalId=a.application.IntervalId}return n.update({id:c.actionId},g).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success"),e.path("/channels/sms/accounts/view/"+c.accountId+"/actions/list")})["catch"](function(a){f.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.view.action.view",{url:"/view/:actionId",templateUrl:"app/channels/sms/account/view/action/view/view.html",controller:"SmsAccountViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("SmsAccountViewActionWizardCtrl",["$scope","$http","Agent","SmsQueue","Interval","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval","SmsApplication",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=l.application,a.$stateParams=f,a.$interval=m.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){return d.get().$promise.then(function(b){console.log(b),a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return c.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return e.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.createItem=function(){var b=["*","*","*","*"];console.log(a.application);var c={app:a.application.app,timeout:a.application.timeout,SmsAccountId:f.accountId};switch(a.application.app){case"agent":c.UserId=a.application.UserId;break;case"queue":c.SmsQueueId=a.application.SmsQueueId}switch(a.application.intType){case"always":c.interval=b.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(b[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?b[1]="*":b[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?b[2]="*":b[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?b[3]="*":b[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",c.interval=b.join(","),delete a.application.IntervalId;break;case"list":c.IntervalId=a.application.IntervalId}return console.log(c),n.save(c).$promise.then(function(){h.path("/channels/sms/accounts/view/"+f.accountId+"/actions/list")})["catch"](function(a){i.show(a.data.message,"danger")})},a.formValidation=function(a){return a},a.next=function(){j.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.view.action.wizard",{url:"/wizard",templateUrl:"app/channels/sms/account/view/action/wizard/wizard.html",controller:"SmsAccountViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("SmsDisposition",["$resource",function(a){return a("/api/sms/dispositions/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SmsInboxViewModaDispositionAddCtrl",["$scope","$uibModalInstance","SmsAccount","id",function(a,b,c,d){a.ok=function(){return c.save({accountId:d,controller:"dispositions"},{name:a.name}).$promise.then(function(a){b.close(a)})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("SmsAccountDispositionViewCtrl",["$scope","$stateParams","$uibModal","$translate","SmsAccount","xAlert",function(a,b,c,d,e,f){a.initView=function(){return e.get({accountId:b.accountId,controller:"dispositions"}).$promise.then(function(b){a.dispositions=b.rows})["catch"](function(a){console.error(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateDisposition=function(a,c){return e.update({accountId:b.accountId,controller:"dispositions",id:a},{name:c}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){console.error(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.deleteDisposition=function(c){return console.log("delete"),e.remove({accountId:b.accountId,controller:"dispositions",id:c}).$promise.then(function(){_.remove(a.dispositions,{id:c})})["catch"](function(a){console.error(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addDisposition=function(){return c.open({animation:!0,templateUrl:"app/channels/sms/account/view/disposition/modal/add.modal.html",controller:"SmsInboxViewModaDispositionAddCtrl",resolve:{id:function(){return b.accountId}}}).result.then(function(b){b&&a.dispositions.push(b); -})["catch"](function(a){console.error(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.view.dispositions",{url:"/dispositions",controller:"SmsAccountDispositionViewCtrl",templateUrl:"app/channels/sms/account/view/disposition/view/view.html"})}]),angular.module("xCallyShuttleApp").controller("SmsAccountViewCtrl",["$scope","SmsAccount","$http","$stateParams","clipboard","$translate","$location","xAlert","List",function(a,b,c,d,e,f,g,h,i){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.CONST_TIMEOUT=3e4,a.copyToClipboard=function(a){e.copyText(a),h.show(f.instant("MESSAGE_TEXT_COPIED_CLIPBOARD")+"!","success")},a.initView=function(){return a.account={},i.get().$promise.then(function(b){a.lists=b.rows})["catch"](function(a){console.error(a)}),b.get({id:d.accountId}).$promise.then(function(b){a.account=b,console.log(b)})["catch"](function(a){h.show(a.message,"danger")})},a.$watch("account.remote",function(){a.deliveryurl=a.account.remote+"/api/sms/accounts/"+a.account.id+"/messageStatus",a.receiveurl=a.account.remote+"/api/sms/accounts/"+a.account.id+"/receive"}),a.updateItemSmsAccount=function(){return b.update({id:d.accountId},a.account).$promise.then(function(){h.show(f.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.view",{url:"/view/:accountId",templateUrl:"app/channels/sms/account/view/view.html",controller:"SmsAccountViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.channels.sms.accounts.view.settings",{url:"/settings",templateUrl:"app/channels/sms/account/view/view.settings.html",controller:"SmsAccountViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("SmsAccountWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert","SmsAccount",function(a,b,c,d,e,f,g){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.forms={},a.item={}},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a},a.createItem=function(){return console.log(a.item),g.save(a.item).$promise.then(function(){c.path("/channels/sms/accounts/list")})["catch"](function(a){f.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.accounts.wizard",{url:"/wizard",templateUrl:"app/channels/sms/account/wizard/wizard.html",controller:"SmsAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.inbox",{url:"/inbox",template:"
",data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:11}}})}]),angular.module("xCallyShuttleApp").directive("smsRoom",["$cookieStore","$translate","$uibModal","$timeout","Tag","CannedAnswer","Auth","SmsAccount","SmsRoom","SmsMessage","xAlert","usSpinnerService","socket","$stateParams",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/channels/sms/inbox/room/room.directive.html",link:function(a){a.modelOptions={debounce:{"default":500,blur:250},getterSetter:!0},a.panelLeft=null,a.panelRight="col-md-12",a.togglePanelLeft=function(){a.panelLeft?(a.panelLeft=null,a.panelRight="col-md-12"):(a.panelLeft="col-md-6",a.panelRight="col-md-6")},a.form={disabled:!1,from:[],to:"",body:""},m.socket.on("sms_message:save",function(b){return a.workspace.id&&b.SmsRoomId==a.workspace.id?j.get({id:b.id}).$promise.then(function(c){a.SmsRoom.SmsMessages.unshift(b),a.panelLeft="col-md-6",a.panelRight="col-md-6"})["catch"](function(a){console.error(a)}):void 0}),m.socket.on("sms_message:update",function(b){if(a.SmsRoom&&b.SmsRoomId==a.workspace.id){var c=_.find(a.SmsRoom.SmsMessages,{id:b.id});c&&_.merge(c,b)}}),m.socket.on("sms_room:update",function(b){a.SmsRoom&&b.id==a.workspace.id&&(a.SmsRoom.status=b.status)}),a.closeRoom=function(b){return c.open({animation:!0,templateUrl:"app/channels/sms/inbox/view/view.status.modal.html",controller:"SmsInboxViewModalStatusCtrl",resolve:{closed:function(){return"CLOSED"===a.SmsRoom.status},accountId:function(){return a.SmsRoom.SmsAccountId}}}).result.then(function(a){var c={id:b,status:"CLOSED"};return a.disposition&&(c.disposition=a.disposition),i.update(c).$promise["catch"](function(a){k.show(a.data.message,"danger")})})},e.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a)}),h.get().$promise.then(function(b){a.smsAccounts=b.rows})["catch"](function(a){console.error(a)}),a.workspace.id?(a.panelLeft="col-md-6",a.panelRight="col-md-6",i.get({id:a.workspace.id}).$promise.then(function(b){return a.SmsRoom=b,a.form.from[0]=a.SmsRoom.SmsAccount.phone,a.form.to=a.SmsRoom.from,a.form.tags=a.SmsRoom.tags,"NEW"==a.SmsRoom.status||"UNMANAGED"==a.SmsRoom.status?i.update({id:a.SmsRoom.id,status:"OPEN"}):void 0}).then(function(b){if(b){var c=[];return c[0]=g.getCurrentUser().id,i.update({id:a.SmsRoom.id,controller:"agents",agents:c})}})["catch"](function(a){console.error(a)})["finally"](function(){l.stop("spinner-grid"),a.form.disabled=!1})):l.stop("spinner-grid"),a.onSelect=function(){a.form.body+=a.modelOptions.selectedAnswer,delete a.modelOptions.selectedAnswer},a.onSelectAnswer=function(b){a.form.body+=b,a.selectedAnswer=""},a.getAnswers=function(a){return f.get({key:a}).$promise.then(function(a){return _.map(a.rows,"value")})},a.loadAgents=function(){c.open({animation:!0,templateUrl:"app/channels/sms/inbox/view/view.agents.modal.html",controller:"SmsInboxViewModalAgentCtrl",resolve:{roomId:function(){return a.workspace.id}}})},a.onChanged=function(){return i.patch({id:a.workspace.id},{tags:a.form.tags}).$promise["catch"](function(a){console.error(a)})},a.cancel=function(){a.forms.compose.$setPristine(),a.form.body=""},a.sendSMS=function(){l.spin("spinner-grid");var c=_.find(a.smsAccounts,{phone:a.form.from[0]}).id;if(c){var d={from:a.form.from[0],to:a.form.to,body:a.form.body};return h.save({accountId:c,controller:"send"},d).$promise.then(function(b){return a.SmsRoom?(a.forms.compose.$setPristine(),void(a.form.body="")):i.get({id:b.SmsRoomId}).$promise}).then(function(b){b&&(a.forms.compose.$setPristine(),a.form.body="",a.workspace.id=b.id,a.workspace.name=b.from,a.SmsRoom=b,a.panelLeft="col-md-6",a.panelRight="col-md-6")})["catch"](function(){k.show(b.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){l.stop("spinner-grid")})}}}}}]),angular.module("xCallyShuttleApp").directive("sms",["$rootScope","SmsMessage","List","xAlert","$translate",function(a,b,c,d,e){return{restrict:"E",scope:{smsMessage:"=message",accounttype:"=accounttype",listId:"="},templateUrl:"app/channels/sms/inbox/sms/sms.html",link:function(b){b.openContact=function(f){return b.listId?c.get({listId:b.listId,controller:"contacts",phone:f}).$promise.then(function(b){a.$root.workspaces.push({active:!0,"class":"icon-user",contactID:b.id,name:b.phone,type:"contact"})})["catch"](function(a){console.error(a)}):void d.show(e.instant("MESSAGE_NO_LIST_CONFIGURED"),"info")}}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.inbox.view.account",{url:"/account/:id",template:"
","abstract":!0,data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:11}}})}]),angular.module("xCallyShuttleApp").controller("SmsInboxViewAccountListCtrl",["$scope","$rootScope","$uibModal","$translate","$stateParams","$state","Tag","usSpinnerService","socket","SmsAccount","SmsRoom","gridOptions","uiGridConstants","Auth","Modal","xAlert",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){a.loadAgents=function(a){c.open({animation:!0,templateUrl:"app/channels/sms/inbox/view/view.agents.modal.html",controller:"SmsInboxViewModalAgentCtrl",resolve:{roomId:a}})},a.initView=function(){a.id=[],a.isAdmin=n.isAdmin(),a.isAgent=n.isAgent(),a.uncheckable=!1,a.query={status:"UNMANAGED",tags:[]},a.$watch("query.status",function(){a.getPage(a.query)},!0),g.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a)}),a.gridOptions={exporterCsvFilename:"sms_rooms.csv",enableRowHeaderSelection:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,enableFiltering:!0,enableSorting:!0,enableGridMenu:!1,flatEntityAccess:!0,showGridFooter:!0,fastWatch:!0,enableSelectAll:!1,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,columnDefs:[{name:"tags",displayName:"",headerCellTemplate:'',cellClass:"text-center ui-grid-vcenter",cellTemplate:"
",width:30,enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"id",displayName:"Id",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
#{{row.entity.id}}
",width:75,enableSorting:!1,enableFiltering:!0,enableColumnMenu:!1},{name:"from",cellClass:"text-center"},{name:"disposition",cellClass:"text-center"},{name:"updatedAt",cellFilter:"date:'MM/dd/yyyy HH:mm'",width:120,enableSorting:!1,enableFiltering:!1,sort:{direction:m.DESC}},{name:"action",cellTemplate:'
',enableSorting:!1,cellClass:"ui-grid-vcenter",width:90,enableFiltering:!1,enableColumnMenu:!1}],data:[],onRegisterApi:function(b){a.gridApi=b,a.gridApi.selection&&(a.gridApi.selection.on.rowSelectionChanged(a,function(b){b.isSelected?a.id.push(a.gridApi.grid.options.primaryKey?b.entity[a.gridApi.grid.options.primaryKey]:b.entity.id):_.pull(a.id,a.gridApi.grid.options.primaryKey?b.entity[a.gridApi.grid.options.primaryKey]:b.entity.id)}),a.gridApi.selection.on.rowSelectionChangedBatch(a,function(b){b[0].isSelected?a.id=_.union(a.id,_.map(b,a.gridApi.grid.options.primaryKey?"entity."+a.gridApi.grid.options.primaryKey:"entity.id")):_.map(b,a.gridApi.grid.options.primaryKey?"entity."+a.gridApi.grid.options.primaryKey:"entity.id").forEach(function(b){_.pull(a.id,b)})}))}},i.socket.on("sms_room:remove",function(b){_.remove(a.workspaces,{id:b.id,type:"smsRoom"}),_.remove(a.gridOptions.data,{id:b.id})}),a.getPage(a.query)},a.onChanged=function(){a.getPage(a.query)},a.tagItems=function(){c.open({animation:!0,templateUrl:"app/channels/sms/inbox/view/view.tags.modal.html",controller:"SmsInboxViewModalTagCtrl",resolve:{id:function(){return a.id}}}).result.then(function(){a.gridApi.selection.clearSelectedRows(),a.id=[],a.getPage()})},a.openRoom=function(b,c){var d=_.find(a.workspaces,{id:b,type:"smsRoom"});d?d.active=!0:a.workspaces.push({id:b,name:c,type:"smsRoom","class":"glyphicon glyphicon-comment",active:!0})},a.getPage=function(b){h.spin("spinner-grid");var c={accountId:e.id,controller:"rooms"};return b&&_.merge(c,b),a.query&&_.merge(c,a.query),j.query(c).$promise.then(function(b){a.gridOptions.data=b})["catch"](function(a){console.error(a)})["finally"](function(){h.stop("spinner-grid")})},a.deleteItem=o.confirm["delete"](function(b){var c={id:b};return console.log(c),k["delete"](c).$promise.then(function(){a.getPage(),p.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),a.gridApi.selection.clearSelectedRows(),a.id=[]})["catch"](function(a){p.show(a.message?a.message:a.data.message,"danger")})}),a.deleteItems=o.confirm["delete"](function(){var b={ids:a.id};return k["delete"](b).$promise.then(function(){a.getPage(),p.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),a.gridApi.selection.clearSelectedRows(),a.id=[]})["catch"](function(a){p.show(a.message?a.message:a.data.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.inbox.view.account.list",{url:"/list",templateUrl:"app/channels/sms/inbox/view/account/list/list.html",controller:"SmsInboxViewAccountListCtrl",data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:11}}})}]),angular.module("xCallyShuttleApp").controller("SmsInboxViewModalAgentCtrl",["$scope","$uibModalInstance","$translate","$stateParams","Agent","SmsRoom","xAlert","roomId",function(a,b,c,d,e,f,g,h){a.initModal=function(){a.agents=[],a.item={agents:[]},e.get().$promise.then(function(b){b.rows.forEach(function(b){a.agents.push(b)})})["catch"](function(a){console.error(a)}),f.query({id:h,controller:"agents"}).$promise.then(function(b){b.forEach(function(b){a.agents.push(b),a.item.agents.push(b.id)})})["catch"](function(a){console.error(a)}),a.modal={dismissable:!0,title:"APPLICATION_MESSAGE_SEND_RETRY",text:"MESSAGE_MESSAGE_SEND_RETRY",buttons:[{classes:"btn btn-success",text:"APPLICATION_RETRY",click:function(a){b.close(a)}},{classes:"btn default",text:"APPLICATION_CANCEL",click:function(a){b.dismiss(a)}}]}},a.ok=function(){return f.update({id:h,controller:"agents",agents:a.item.agents}).$promise.then(function(){g.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close()})["catch"](function(a){console.error(a)})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("SmsInboxViewCtrl",["$scope","$location","$stateParams","$translate","$uibModal","socket","Auth","xAlert","SmsRoom","SmsAccount",function(a,b,c,d,e,f,g,h,i,j){a.initView=function(){j.get().$promise.then(function(c){var d=null;a.smsAccounts=c.rows,a.smsAccounts.length&&(d="/channels/sms/inbox/view/account/"+a.smsAccounts[0].id+"/list"),d&&b.path(d)})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.inbox.view",{url:"/view",templateUrl:"app/channels/sms/inbox/view/view.html",controller:"SmsInboxViewCtrl",reload:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/inbox.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("SmsInboxViewModalStatusCtrl",["$scope","$uibModalInstance","closed","SmsAccount","accountId",function(a,b,c,d,e){a.modal={title:"APPLICATION_CONFIRM_CLOSE",text:"MESSAGE_ARE_YOU_SURE_YOU_WANT_TO_CLOSE_THE_SMS"},a.initDisposition=function(){return d.get({accountId:e,controller:"dispositions"}).$promise.then(function(b){a.dispositions=b.rows})["catch"](function(a){console.error(a)})},a.item={},a.closed=c,a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("SmsInboxViewModalTagCtrl",["$scope","$uibModalInstance","$translate","$stateParams","Tag","SmsRoom","xAlert","id",function(a,b,c,d,e,f,g,h){console.log(h),a.initModal=function(){return a.tags=[],a.item={tags:[]},a.modal={dismissable:!0,title:"APPLICATION_MESSAGE_SEND_RETRY",text:"MESSAGE_MESSAGE_SEND_RETRY",buttons:[{"class":"btn-success",text:"APPLICATION_TAG",click:function(){var d={status:!0};return f.patch({id:h},{tags:a.item.tags}).$promise.then(function(){g.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(){d.status=!1,g.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){b.close(d)})}},{"class":"default",text:"APPLICATION_CANCEL",click:function(a){b.dismiss(a)}}]},e.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("SmsInboxViewModalTemplateCtrl",["$scope","$uibModalInstance","Template",function(a,b,c){a.initModal=function(){return a.item={},c.get().$promise.then(function(b){a.templates=b.rows})["catch"](function(a){console.error(a)})},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("SmsQueueListCtrl",["$scope","SmsQueue","gridOptions","$uibModal","xAlert","Auth",function(a,b,c,d,e,f){a.initView=function(){a.Auth=f;var d={exporterCsvFilename:"voice_queues.csv",columnDefs:[{name:"name"},{name:"description"},{name:"timeout"},{name:"strategy"},{name:"action",width:200,buttons:[{"class":"blue-hoki",href:"/channels/sms/queues/view/{{row.entity.id}}/settings",name:"settings"},{"class":"green-meadow",href:"/channels/sms/queues/view/{{row.entity.id}}/agents",name:"agents",hide:"user"===f.getCurrentUser().role},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/sms/queue/list/list.create.modal.html",controller:"SmsQueueListCreateCtrl"});b.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("SmsQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","SmsQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return console.log(a.item),e.save(a.item).$promise.then(function(a){b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.queues.list",{url:"/list",templateUrl:"app/channels/sms/queue/list/list.html",controller:"SmsQueueListCtrl"})}]),angular.module("xCallyShuttleApp").factory("SmsQueue",["$resource",function(a){return a("/api/sms/queues/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.queues",{url:"/queues",template:"
",data:{permissions:{only:["admin","user"],redirectTo:"landing",id:11}}})}]),angular.module("xCallyShuttleApp").controller("SmsQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","Team","SmsQueue",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return g.save({id:a.queue.id,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(b){console.log("sel",b),a.getTeams()})["catch"](function(a){console.error(a)})},deselect:function(b){return g["delete"]({id:a.queue.id,controller:"agents",agents:b}).$promise.then(function(b){console.log("desel",b),a.getTeams()})["catch"](function(a){console.error(a)})}}};a.getQueue=function(){return g.get({id:d.id}).$promise.then(function(b){b.penalty=0,a.queue=b})["catch"](function(a){console.error(a)})},a.updateSmsQueue=function(){return g.update({id:d.id},{name:a.queue.name,description:a.queue.description,timeout:a.queue.timeout,strategy:a.queue.strategy}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})},a.getTeams=function(){return f.get({controller:"associations"}).$promise.then(function(b){return a.teams=b.rows,console.log(b.rows),g.get({id:d.id,controller:"agents"}).$promise}).then(function(b){console.log(b),ComponentsDropdowns.bindSmsQueue(a.teams,_.map(b.rows,function(a){return{id:a.id,penalty:a.UserHasSmsQueue.penalty}}),h)})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.queues.view",{url:"/view/:id",templateUrl:"app/channels/sms/queue/view/view.html",controller:"SmsQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.sms.queues.view.settings",{url:"/settings",templateUrl:"app/channels/sms/queue/view/view.settings.html"}).state("main.channels.sms.queues.view.agents",{url:"/agents",templateUrl:"app/channels/sms/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.realtime",{url:"/realtime",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:11}}})}]),angular.module("xCallyShuttleApp").controller("SmsRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","SmsQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.error(a)})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});c&&(c.online=b.online,c.lastLoginAt=b.lastLoginAt,c.pause=b.smsPause,c.pauseType=b.pauseType,c.lastPauseAt=b.lastPauseAt,c.ipaddr=b.ipaddr,c.port=b.port,c.fullcontact=b.fullcontact,c.useragent=b.useragent,c.lastms=b.lastms,c.internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)}))}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_sms_queue:save",function(b){console.log("new queue",b);var c=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),d=a.gridOptions.data.indexOf(c);a.gridOptions.data.splice(d+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,queueId:b.SmsQueueId,agent:b.membername,online:c.online})}),e.socket.on("user_has_sms_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queueId:b.SmsQueueId})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.smsPause,pauseType:b.pauseType,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.SmsQueues.forEach(function(c){a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,queueId:c.id,agent:b.name,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.error(a)})}function r(){return j.get().$promise.then(function(b){a.smsQueues=b.rows,e.syncUpdates("sms_queue",a.smsQueues)})["catch"](function(a){f.error(a)})}a.smsQueues=[];var s={controller:"realtime",controller1:"sms",offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{row.entity.agent}} <{{row.entity.internal}}>
'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
({{hhours}}:{{mminutes}}:{{sseconds}})
',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"smsPause",displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
({{row.entity.pauseType}}){{hhours}}:{{mminutes}}:{{sseconds}}
',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_sms_queue")}),a.pause=function(b,c,e){return e&&(a.pauseType=null),i.save({name:c,agent:b,type:e||"DEFAULT PAUSE",data4:e||"DEFAULT PAUSE",channel:"sms"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.error(a)})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/sms/realtime/view/agent/queue.modal.add.html",controller:"SmsRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.smsQueues,function(b){return!!_.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.smsQueues,function(a){return _.includes(b.queues,a.id)}),channel:"sms",data1:e,data3:b.queues.join(","),data4:"sms"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.error(a)})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"sms",data1:a,data3:b,data4:"sms"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.error(a)})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/sms/realtime/view/agent/agent.modal.info.html",controller:"SmsRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/sms/realtime/view/agent/agent.html",controller:"SmsRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("SmsRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("SmsRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("SmsRealtimeViewApplicationCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","ReportSmsSession","usSpinnerService","$q","uiGridConstants","$timeout",function(a,b,c,d,e,f,g,h,i,j,k){function l(){return h.spin("spinner-grid"),g.get({controller:"waiting",controller2:"applications"}).$promise.then(function(b){a.gridOptions.data=b.rows})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){m(),h.stop("spinner-grid")})}function m(){e.socket.on("report_sms_session:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id});c?(_.merge(c,b),b.leaveAt&&k(function(){_.remove(a.gridOptions.data,{id:b.id})},1e4)):b.leaveAt||a.gridOptions.data.push(b)}),e.socket.on("report_sms_session:remove",function(b){_.remove(a.gridOptions.data,{id:b.id})})}a.moment=moment,a.initApplications=function(){a.gridOptions={headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,columnDefs:[{name:"uniqueid",displayName:"APPLICATION_UNIQUEID",headerCellFilter:"translate"},{name:"accountname",displayName:"APPLICATION_ACCOUNT",headerCellFilter:"translate"},{name:"application",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate"},{name:"status",displayName:"APPLICATION_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{\'APPLICATION_QUEUESTATUS_WAITING\' | translate}}{{\'APPLICATION_QUEUESTATUS_COMPLETE\' | translate}}{{\'APPLICATION_UNMANAGED\' | translate}} [{{hhours}}:{{mminutes}}:{{sseconds}}]
', -enableSorting:!1,enableColumnMenu:!1,enableFiltering:!1},{name:"membername",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.membername || ''}}
"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.queuename || ''}}
"}],data:[],gridMenuTitleFilter:function(a){var b=i.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){n(a.gridOptions.data.length)})}},l()};var n=function(a){var b=a?30*a+60:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("report_sms_session")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.realtime.view.applications",{url:"/applications",templateUrl:"app/channels/sms/realtime/view/application/application.html",controller:"SmsRealtimeViewApplicationCtrl"})}]),angular.module("xCallyShuttleApp").controller("SmsRealtimeViewCtrl",["$scope","$state",function(a,b){a.agents=[{name:"Queues",link:"main.channels.sms.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.sms.realtime.view.agents.timeline"}],a.sessions=[{name:"Sessions",link:"main.channels.sms.realtime.view.sessions"}],a.tree={queues:[{name:"Queues",link:"main.channels.sms.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.sms.realtime.view.agents.timeline"}],sessions:[{name:"Sessions",link:"main.channels.sms.realtime.view.sessions"}]}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms.realtime.view",{url:"/view",templateUrl:"app/channels/sms/realtime/view/view.html",controller:"SmsRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").factory("ReportSmsRoom",["$resource",function(a){return a("/api/report/sms/rooms/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ReportSmsSession",["$resource",function(a){return a("/api/report/sms/sessions/:id/:controller/:controller2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.sms",{url:"/sms",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SmsQueue",["$resource",function(a){return a("/api/sms/queues/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SmsReport",["$resource",function(a){return a("/api/report/sms/:id/:controller1/:controller2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SmsMessage",["$resource",function(a){return a("/api/sms/messages/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SmsRoom",["$resource",function(a){return a("/api/sms/rooms/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").factory("ChanSpy",["$resource",function(a){return a("/api/chanspy/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy",{url:"/chanspy",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChanSpyListCtrl",["$scope","$uibModal","ChanSpy","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"chanspy.csv",columnDefs:[{name:"name"},{name:"prefix"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/channels/voice/chanspy/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/channels/voice/chanspy/list/list.create.modal.html",controller:"ChanSpyListCreateCtrl"});c.result.then(function(b){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ChanSpyListCreateCtrl",["$scope","$translate","$uibModalInstance","ChanSpy","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.options=[{name:"APPLICATION_CHANSPY_OPTION_b",value:"b"},{name:"APPLICATION_CHANSPY_OPTION_B",value:"B"},{name:"APPLICATION_CHANSPY_OPTION_E",value:"E"},{name:"APPLICATION_CHANSPY_OPTION_o",value:"o"},{name:"APPLICATION_CHANSPY_OPTION_q",value:"q"},{name:"APPLICATION_CHANSPY_OPTION_s",value:"s"},{name:"APPLICATION_CHANSPY_OPTION_S",value:"S"},{name:"APPLICATION_CHANSPY_OPTION_w",value:"w"},{name:"APPLICATION_CHANSPY_OPTION_W",value:"W"}],a.save=function(){return a.item.options=a.item.options.join(""),d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy.list",{url:"/list",templateUrl:"app/channels/voice/chanspy/list/list.html",controller:"ChanSpyListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChanSpyViewCtrl",["$scope","$translate","$stateParams","xAlert","ChanSpy",function(a,b,c,d,e){a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.options=[{name:"APPLICATION_CHANSPY_OPTION_b",value:"b"},{name:"APPLICATION_CHANSPY_OPTION_B",value:"B"},{name:"APPLICATION_CHANSPY_OPTION_E",value:"E"},{name:"APPLICATION_CHANSPY_OPTION_o",value:"o"},{name:"APPLICATION_CHANSPY_OPTION_q",value:"q"},{name:"APPLICATION_CHANSPY_OPTION_s",value:"s"},{name:"APPLICATION_CHANSPY_OPTION_S",value:"S"},{name:"APPLICATION_CHANSPY_OPTION_w",value:"w"},{name:"APPLICATION_CHANSPY_OPTION_W",value:"W"}],a.getChanSpy=function(){return e.get({id:c.id}).$promise.then(function(b){b.options=b.options.split(""),a.chanspy=b})["catch"](function(a){d.show(a.data.message,"danger")})},a.updateChanSpy=function(){var f=angular.copy(a.chanspy);return f.options=f.options.join(""),e.update({id:c.id},f).$promise.then(function(){d.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy.view",{url:"/view/:id",templateUrl:"app/channels/voice/chanspy/view/view.html",controller:"ChanSpyViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.chanspy.view.settings",{url:"/settings",templateUrl:"app/channels/voice/chanspy/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("VoiceContext",["$resource",function(a){return a("/api/voice/contexts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts",{url:"/contexts",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceContextListCtrl",["$scope","VoiceContext","gridOptions","$uibModal","xAlert","$translate",function(a,b,c,d,e,f){a.initView=function(){var d={exporterCsvFilename:"voice_contexts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:170,buttons:[{"class":"{{row.entity.defaultEntry ? 'blue-hoki disabled' : 'blue-hoki'}}",href:"/channels/voice/contexts/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){var c=d.open({animation:!0,templateUrl:"app/channels/voice/context/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});c.result.then(function(c){return b.save(c).$promise.then(function(){a.gridOptions.getPage(),e.show(f.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){e.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts.list",{url:"/list",templateUrl:"app/channels/voice/context/list/list.html",controller:"VoiceContextListCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceContextViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getContext=function(){b.get("/api/voice/contexts/"+e.id).success(function(b){a.context=b}).error(function(a){console.error(a),f.path("/voice/contexts/list")})},a.updateVoiceContext=function(){var f=angular.copy(a.context);b.put("/api/voice/contexts/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.context=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts.view",{url:"/view/:id",templateUrl:"app/channels/voice/context/view/view.html",controller:"VoiceContextViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.contexts.view.settings",{url:"/settings",templateUrl:"app/channels/voice/context/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.dispositions",{url:"/dispositions",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceDispositionListCtrl",["$scope","$stateParams","$uibModal","$translate","VoiceDisposition","xAlert",function(a,b,c,d,e,f){a.initView=function(){return e.get().$promise.then(function(b){a.dispositions=b.rows})["catch"](function(a){console.error(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateDisposition=function(a,b){return e.update({id:a},{name:b}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){console.error(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.deleteDisposition=function(b){return e.remove({id:b}).$promise.then(function(){_.remove(a.dispositions,{id:b}),f.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){console.error(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addDisposition=function(){return c.open({animation:!0,templateUrl:"app/channels/voice/disposition/list/modal/add.modal.html",controller:"VoiceDispositionListModalDispositionAddCtrl"}).result.then(function(b){b&&(a.dispositions.push(b),f.show(d.instant("MESSAGE_WELL_DONE")+"!","success"))})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.dispositions.list",{url:"/list",templateUrl:"app/channels/voice/disposition/list/list.html",controller:"VoiceDispositionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceDispositionListModalDispositionAddCtrl",["$scope","$uibModalInstance","VoiceDisposition","xAlert","$translate",function(a,b,c,d,e){a.ok=function(){return c.save({name:a.name}).$promise.then(function(a){b.close(a)})["catch"](function(a){d.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").factory("VoiceDisposition",["$resource",function(a){return a("/api/voice/dispositions/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("VoiceMohListCtrl",["$scope","gridOptions","VoiceMoh","$uibModal","xAlert","$translate",function(a,b,c,d,e,f){a.initView=function(){var d={exporterCsvFilename:"voice_mohs.csv",columnDefs:[{name:"name"},{name:"directory"},{name:"sort"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/voice/mohs/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a)},a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/voice/moh/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});b.result.then(function(b){return c.save(b).$promise.then(function(){a.gridOptions.getPage(),e.show(f.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs.list",{url:"/list",templateUrl:"app/channels/voice/moh/list/list.html",controller:"VoiceMohListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("VoiceMoh",["$resource",function(a){return a("/api/voice/musiconholds/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs",{url:"/mohs",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceMohViewCtrl",["$scope","$http","xAlert","$translate","VoiceMoh","$stateParams","socket","Modal","$sce","$location","Sound",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=d,a.audioSources={},a.sortOptions=[{value:"random",name:"APPLICATION_RANDOM"},{value:"alpha",name:"APPLICATION_ALPHABETICAL"}],a.getMoh=function(){return e.get({id:f.id}).$promise.then(function(b){delete b.stamp,a.moh=b})["catch"](function(a){c.show(a.message,"danger")})},a.updateVoiceMoh=function(){return console.log("update"),e.update({id:f.id},a.moh).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){c.show(a.message,"danger")})},a.addMohs=function(){return e.save({id:f.id,controller:"files"},a.item).$promise.then(function(){j.path("/channels/voice/mohs/view/"+f.id+"/audios")})["catch"](function(a){c.show(a.message,"danger")})},a.getAudioFiles=function(){return e.get({id:f.id,controller:"files"}).$promise.then(function(b){a.audioFiles=b.files,a.mohPath=b.path,a.audioFiles.forEach(function(a){l(a)})})["catch"](function(a){c.show(a.message,"danger")})},a.getSecureSrc=function(a){return i.trustAsResourceUrl(a)},a.getSounds=function(){return a.item={sounds:[]},k.get().$promise.then(function(b){a.soundList=b.rows})["catch"](function(a){c.show(a.message,"danger")})};var l=function(c){b.get("/api/voice/musiconholds/stream",{params:{path:encodeURI(a.mohPath+"/"+c)}}).success(function(b){a.audioSources[c]="data:audio/ogg;base64,"+b}).error(function(a){console.error(a)})};a.deleteItem=h.confirm["delete"](function(e){b["delete"]("/api/voice/musiconholds/"+f.id+"/files",{params:{filename:e}}).success(function(){_.remove(a.audioFiles,function(a){return a===e}),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs.view",{url:"/view/:id",templateUrl:"app/channels/voice/moh/view/view.html",controller:"VoiceMohViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.mohs.view.settings",{url:"/settings",templateUrl:"app/channels/voice/moh/view/view.settings.html"}).state("main.channels.voice.mohs.view.audios",{url:"/audios",templateUrl:"app/channels/voice/moh/view/view.audios.html",cache:!1}).state("main.channels.voice.mohs.view.add",{url:"/add",templateUrl:"app/channels/voice/moh/view/view.addFiles.html",cache:!1})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCtrl",["$scope","$rootScope","$uibModal","VoiceQueue","gridOptions","Auth",function(a,b,c,d,e,f){a.initView=function(){a.Auth=f;var b={exporterCsvFilename:"voice_queues.csv",primaryKey:"name",columnDefs:[{name:"name"},{name:"strategy"},{name:"description"},{name:"action",width:200,buttons:[{"class":"blue-hoki",href:"/channels/voice/queues/view/{{row.entity.name}}/settings",name:"settings"},{"class":"green-meadow",href:"/channels/voice/queues/view/{{row.entity.name}}/agents",name:"agents",hide:"user"===f.getCurrentUser().role},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.name)"}]}]};a.gridOptions=e.gridOptions(d,b,a)},a.createItem=function(){var b=c.open({animation:!0,templateUrl:"app/channels/voice/queue/list/list.create.modal.html",controller:"VoiceQueueListCreateCtrl"});b.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","VoiceQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.queues.list",{url:"/list",templateUrl:"app/channels/voice/queue/list/list.html",controller:"VoiceQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.queues",{url:"/queues",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("ReportQueue",["$resource",function(a){return a("/api/report/queues/:id/:controller/:controller2",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","VoiceQueue","VoiceContext","Team","Auth",function(a,b,c,d,e,f,g,h,i,j,k){a.penalty=0,a.Auth=k,a.binaryChoices=[{name:"Yes",value:1},{name:"No",value:0}],a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.monitorFormats=[{name:"wav",value:"wav"},{name:"gsm",value:"gsm"},{name:"Inactive",value:""}],a.queueAnnounces=[{display_name:"Default",value:null},{display_name:"Disabled",value:""}];var l=function(){return{select:function(b){return h.save({id:a.queue.name,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})},deselect:function(b){return h["delete"]({id:a.queue.name,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})}}};a.getQueue=function(){return h.get({id:e.id}).$promise.then(function(b){b.joinempty=""===b.joinempty?[]:b.joinempty.split(","),b.leavewhenempty=""===b.leavewhenempty?[]:b.leavewhenempty.split(","),b.periodic_announce=""===b.periodic_announce?[]:b.periodic_announce.split(","),b.penalty=0,a.queue=b})["catch"](function(a){g.path("/channels/voice/queues/list")})},a.updateVoiceQueue=function(){var b=angular.copy(a.queue);return b.joinempty=b.joinempty.join(","),b.leavewhenempty=b.leavewhenempty.join(","),b.periodic_announce=b.periodic_announce.join(","),b.context||(b.context=null),h.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(d.instant(a.data.message),"danger")})},a.getTeams=function(){return j.get({controller:"associations"}).$promise.then(function(b){return a.teams=b.rows,h.get({id:e.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindQueue(a.teams,_.map(b.rows,function(a){return{id:a.id,penalty:a.UserHasVoiceQueue.penalty}}),l)})["catch"](function(a){console.error(a)})},a.getContexts=function(){return i.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){c.show(d.instant(data.message),"danger")})},a.getMohs=function(){b.get("/api/voice/musiconholds").success(function(b){a.voiceMohs=b.rows,f.syncUpdates("voice_musiconhold",a.voiceMohs)}).error(function(a){c.show(a.message,"danger")})},a.getSounds=function(){b.get("/api/sounds").success(function(b){a.queueAnnounces=a.queueAnnounces.concat(b),a.periodicAnnounces=angular.copy(b.rows),b.rows.unshift({display_name:"None",converted_path:null,value:""}),a.sounds=b.rows,f.syncUpdates("sound",a.sounds)}).error(function(a){console.error(a)})},a.returnAnnouncePath=function(a){return a.converted_path?a.converted_path+"/"+a.save_name:null===a.value?null:a.value}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.queues.view",{url:"/view/:id",templateUrl:"app/channels/voice/queue/view/view.html",controller:"VoiceQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.queues.view.settings",{url:"/settings",templateUrl:"app/channels/voice/queue/view/view.settings.html"}).state("main.channels.voice.queues.view.agents",{url:"/agents",templateUrl:"app/channels/voice/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").factory("VoiceQueue",["$resource",function(a){return a("/api/voice/queues/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime",{url:"/realtime",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","VoiceQueue","usSpinnerService","$q","uiGridConstants","Auth",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){function o(){return k.spin("spinner-grid"),g.get(t).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){q(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function p(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});c&&(c.online=b.online,c.lastLoginAt=b.lastLoginAt,c.pause=b.voicePause,c.pauseType=b.pauseType,c.lastPauseAt=b.lastPauseAt,c.status=b.status,c.statusAt=b.statusAt,c.queueStatus=b.queueStatus,c.queueStatusAt=b.queueStatusAt,c.lastQueue=b.lastQueue,c.ipaddr=b.ipaddr,c.port=b.port,c.fullcontact=b.fullcontact,c.useragent=b.useragent,c.lastms=b.lastms,c.internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)}))}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_voice_queue:save",function(b){var c=_.includes(_.map(a.CurrentUser.PVoiceQueues,"name"),b.queue)||n.isAdmin(),d=_.find(a.gridOptions.data,{agentId:b.UserId,queue:b.queue});if(!d&&b.logged&&c){var e=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),f=a.gridOptions.data.indexOf(e);a.gridOptions.data.splice(f+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,agent:b.membername,callstaken:b.callstaken?b.callstaken:0,online:e.online})}else d&&!b.logged?_.remove(a.gridOptions.data,{agentId:b.UserId,queue:b.queue}):d&&b.logged&&c&&(d.callstaken=b.callstaken?b.callstaken:0)}),e.socket.on("user_has_voice_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queue:b.queue})})}function q(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.voicePause,pauseType:b.pauseType,status:b.status||"UNKNOWN",statusAt:b.statusAt,queueStatus:b.queueStatus||"READY",queueStatusAt:b.queueStatusAt,lastQueue:b.lastQueue,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.VoiceQueues.forEach(function(c){c.UserHasVoiceQueue.logged&&a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,agent:b.name,callstaken:c.UserHasVoiceQueue.callstaken?c.UserHasVoiceQueue.callstaken:0,online:b.online})})}function r(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function s(){return j.get().$promise.then(function(b){a.voiceQueues=b.rows,e.syncUpdates("voice_queue",a.voiceQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.voiceQueues=[];var t={controller:"realtime",controller1:"voice",offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{row.entity.agent}} <{{row.entity.internal}}>
'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
({{hhours}}:{{mminutes}}:{{sseconds}})
',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"status",displayName:"APPLICATION_PHONE_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{'APPLICATION_'+row.entity.status | translate}} ({{hhours}}:{{mminutes}}:{{sseconds}})
",filter:{type:m.filter.SELECT,selectOptions:[{value:"UNKNOWN",label:d.instant("APPLICATION_UNKNOWN")},{value:"NOT_INUSE",label:d.instant("APPLICATION_NOT_INUSE")},{value:"INUSE",label:d.instant("APPLICATION_INUSE")},{value:"BUSY",label:d.instant("APPLICATION_BUSY")},{value:"INVALID",label:d.instant("APPLICATION_INVALID")},{value:"UNAVAILABLE",label:d.instant("APPLICATION_UNAVAILABLE")},{value:"RINGING",label:d.instant("APPLICATION_RINGING")},{value:"RINGINUSE",label:d.instant("APPLICATION_RINGINUSE")},{value:"ONHOLD",label:d.instant("APPLICATION_ONHOLD")}]}},{name:"queueStatus",displayName:"APPLICATION_QUEUE_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{\'APPLICATION_\'+row.entity.queueStatus.toUpperCase() | translate}} [{{row.entity.lastQueue}}] [{{row.entity.pauseType}}] [{{hhours}}:{{mminutes}}:{{sseconds}}]
',filter:{type:m.filter.SELECT,selectOptions:[{value:"paused",label:d.instant("APPLICATION_PAUSED")},{value:"connect",label:d.instant("APPLICATION_CONNECT")},{value:"complete",label:d.instant("APPLICATION_COMPLETE")},{value:"called",label:d.instant("APPLICATION_CALLED")}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"callstaken",displayName:"APPLICATION_CALLS_TAKEN",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{row.entity.callstaken}}
',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1,width:100},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){u(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){u(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length); -}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){u(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?t.order=null:t.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),o()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){t.offset=(a-1)*b,t.limit=b,o()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?t[a.name]=a.filters[0].term:delete t[a.name]}),o()})}},o(),r(),s(),p()};var u=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_voice_queue")}),a.pause=function(b,c,e){return e&&(a.pauseType=null),i.save({name:c,agent:b,type:e||"DEFAULT PAUSE",data4:e||"DEFAULT PAUSE",channel:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(d.instant(a.message||a.data.message||a.translatedMessage||a.data.translatedMessage),"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/voice/realtime/view/agent/queue.modal.add.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.voiceQueues,function(b){return!!_.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})})}}});g.result.then(function(a){return i.save({name:"QueueAdd",agent:e,queues:a.queues,channel:"voice",data1:e,data3:a.queues.join(","),data4:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queue:b,channel:"voice",data1:a,data3:b,data4:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/voice/realtime/view/agent/agent.modal.info.html",controller:"VoiceRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/voice/realtime/view/agent/agent.html",controller:"VoiceRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","agent",function(a,b,c){a.agent=c,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewParameterCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","ReportQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j){function k(){return h.spin("spinner-grid"),g.get(m).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=b.rows})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){h.stop("spinner-grid")})}function l(){e.socket.on("voice_queue:save",function(b){_.find(a.gridOptions.data,{name:b.name})||a.gridOptions.data.push({abandoned:0,active:0,answered:0,holdtime:"00:00:00",name:b.name,talktime:"00:00:00",totalcalls:0,unmanaged:0,waiting:0})}),e.socket.on("voice_queue:remove",function(b){_.remove(a.gridOptions.data,{name:b.name})}),e.socket.on("report_queue:parameters",function(b){var c=_.find(a.gridOptions.data,{name:b.name});c&&_.merge(c,b)})}var m={offset:0,limit:10,controller:"parameters"};a.moment=moment,a.initParameters=function(){a.gridOptions={headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,enableSorting:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalFiltering:!0,useExternalSorting:!0,columnDefs:[{name:"name",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter"},{name:"waiting",displayName:"APPLICATION_WAITING",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"active",displayName:"APPLICATION_ACTIVE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"answered",displayName:"APPLICATION_ANSWERED",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableColumnMenu:!1,filters:[{condition:j.filter.GREATER_THAN_OR_EQUAL,placeholder:"from"},{condition:j.filter.LESS_THAN_OR_EQUAL,placeholder:"to"}]},{name:"abandoned",displayName:"APPLICATION_ABANDONED",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableColumnMenu:!1,filters:[{condition:j.filter.GREATER_THAN,placeholder:"from"},{condition:j.filter.LESS_THAN,placeholder:"to"}]},{name:"unmanaged",displayName:"APPLICATION_UNMANAGED",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableColumnMenu:!1,filters:[{condition:j.filter.GREATER_THAN,placeholder:"from"},{condition:j.filter.LESS_THAN,placeholder:"to"}]},{name:"holdtime",displayName:"APPLICATION_HOLDTIME",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"talktime",displayName:"APPLICATION_TALKTIME",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"totalcalls",displayName:"APPLICATION_TOTAL_CALLS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=i.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){n(a.gridOptions.data.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?m.order=null:m.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),k()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){m.offset=(a-1)*b,m.limit=b,k()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){if(a.filters.length>1){a.filters.forEach(function(b){b.term?64===b.condition?m[a.name+"_uiFrom"]=b.term:256===b.condition&&(m[a.name+"_uiTo"]=b.term):64===b.condition?delete m[a.name+"_uiFrom"]:256===b.condition&&delete m[a.name+"_uiTo"]})}else a.filters.length&&a.filters[0].term?m[a.name]=a.filters[0].term:delete m[a.name]}),k()})}},k(),l()};var n=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("voice_queue")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view.parameters",{url:"/parameters",templateUrl:"app/channels/voice/realtime/view/parameter/parameter.html",controller:"VoiceRealtimeViewParameterCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","ReportQueue","Pause","Action","usSpinnerService","$q","uiGridConstants","$timeout","Auth",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){function o(){return j.spin("spinner-grid"),g.get({controller:"waiting",controller2:"calls"}).$promise.then(function(b){a.gridOptions.data=b.rows})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){p(),j.stop("spinner-grid")})}function p(){e.socket.on("report_queue:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id});c?(_.merge(c,b),b.queuecallerleaveAt&&m(function(){_.remove(a.gridOptions.data,{id:b.id})},1e4)):b.queuecallerleaveAt||a.gridOptions.data.push(b)}),e.socket.on("report_queue:remove",function(b){_.remove(a.gridOptions.data,{id:b.id})})}a.moment=moment,a.initQueues=function(){a.gridOptions={headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,columnDefs:[{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate"},{name:"status",displayName:"APPLICATION_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{\'APPLICATION_QUEUESTATUS_WAITING\' | translate}}{{\'APPLICATION_QUEUESTATUS_ABANDON\' | translate}}{{\'APPLICATION_QUEUESTATUS_COMPLETE\' | translate}} [{{hhours}}:{{mminutes}}:{{sseconds}}]
',enableSorting:!1,enableColumnMenu:!1,enableFiltering:!1},{name:"caller",displayName:"APPLICATION_CALLER",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.calleridnum || ''}} {{row.entity.calleridname || ''}}
",enableSorting:!1,enableColumnMenu:!1,enableFiltering:!1},{name:"agent",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.connectedlinenum || ''}} {{row.entity.connectedlinename || ''}}
",enableSorting:!1,enableColumnMenu:!1,enableFiltering:!1}],data:[],gridMenuTitleFilter:function(a){var b=k.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){q(a.gridOptions.data.length)})}},o()};var q=function(a){var b=a?30*a+60:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("report_queue")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view.queues",{url:"/queues",templateUrl:"app/channels/voice/realtime/view/queue/queue.html",controller:"VoiceRealtimeViewQueueCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewTelephoneCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Telephone","Pause","Action","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l){function m(){return j.spin("spinner-grid"),g.get(o).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=b.rows})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){j.stop("spinner-grid")})}function n(){e.socket.on("telephone:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id});c&&(c.status=b.status,c.statusAt=b.statusAt,c.ipaddr=b.ipaddr,c.port=b.port,c.fullcontact=b.fullcontact,c.useragent=b.useragent,c.lastms=b.lastms,c.internal=b.internal)}),e.socket.on("telephone:remove",function(b){_.remove(a.gridOptions.data,{id:b.id})})}var o={offset:0,limit:10};a.moment=moment,a.initTelephones=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_TELEPHONE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.name}} <{{row.entity.internal}}>
"},{name:"status",displayName:"APPLICATION_PHONE_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{'APPLICATION_'+row.entity.status | translate}} ({{hhours}}:{{mminutes}}:{{sseconds}})
",filter:{type:l.filter.SELECT,selectOptions:[{value:"UNKNOWN",label:d.instant("APPLICATION_UNKNOWN")},{value:"NOT_INUSE",label:d.instant("APPLICATION_NOT_INUSE")},{value:"INUSE",label:d.instant("APPLICATION_INUSE")},{value:"BUSY",label:d.instant("APPLICATION_BUSY")},{value:"INVALID",label:d.instant("APPLICATION_INVALID")},{value:"UNAVAILABLE",label:d.instant("APPLICATION_UNAVAILABLE")},{value:"RINGING",label:d.instant("APPLICATION_RINGING")},{value:"RINGINUSE",label:d.instant("APPLICATION_RINGINUSE")},{value:"ONHOLD",label:d.instant("APPLICATION_ONHOLD")}]}},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'
',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=k.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){p(a.gridOptions.data.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?o.order=null:o.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),m()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){o.offset=(a-1)*b,o.limit=b,m()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?o[a.name]=a.filters[0].term:delete o[a.name]}),m()})}},m(),n()};var p=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("telephone")}),a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/voice/realtime/view/telephone/telephone.modal.info.html",controller:"VoiceRealtimeViewTelephoneInfoModalCtrl",resolve:{telephone:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view.telephones",{url:"/telephones",templateUrl:"app/channels/voice/realtime/view/telephone/telephone.html",controller:"VoiceRealtimeViewTelephoneCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewTelephoneInfoModalCtrl",["$scope","$uibModalInstance","$http","telephone",function(a,b,c,d){a.telephone=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewCtrl",["$scope","Auth",function(a,b){a.Auth=b}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view",{url:"/view",templateUrl:"app/channels/voice/realtime/view/view.html",controller:"VoiceRealtimeViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRecordingListCtrl",["$scope","$translate","$sce","Recording","gridOptions","xAlert","uiGridConstants",function(a,b,c,d,e,f,g){a.Recording=d;a.updateRating=function(a,c){return d.update({id:a,rating:c}).$promise.then(function(){f.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.initView=function(){var b={exporterCsvFilename:"recordings.csv",rowHeight:30,primaryKey:"uniqueid",columnDefs:[{name:"uniqueid"},{name:"calleridnum"},{name:"membername"},{name:"type",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
",filter:{type:g.filter.SELECT,selectOptions:[{value:"inbound",label:"Inbound"},{value:"outbound",label:"Outbound"}]}},{name:"queue"},{name:"createdAt",displayName:"APPLICATION_DATE",headerCellFilter:"translate",filterHeaderTemplate:'
',filters:[{name:"From",condition:g.filter.GREATER_THAN_OR_EQUAL},{name:"To",condition:g.filter.LESS_THAN_OR_EQUAL}]},{name:"rating",filter:{type:g.filter.SELECT,selectOptions:[{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"},{value:4,label:"4"},{value:5,label:"5"}]},cellClass:"ui-grid-vcenter",width:"100",cellTemplate:'
'},{name:"audio",displayName:"",width:225,enableSorting:!1,enableFiltering:!1,buttons:[{directive:''}]},{name:"action",width:150,buttons:[{directive:''},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.uniqueid, row.entity.uniqueid)"}]}]};a.gridOptions=e.gridOptions(d,b,a,{order:"createdAt DESC"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.recordings.list",{url:"/list",templateUrl:"app/channels/voice/recording/list/list.html",controller:"VoiceRecordingListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Recording",["$resource",function(a){return a("/api/voice/recordings/:id/:controller",{id:"@id"},{update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.recordings",{url:"/recordings",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound",{url:"/inbound",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCreateCtrl",["$scope","$uibModalInstance","Route","application","xAlert","$location","$translate",function(a,b,c,d,e,f,g){a.$application=d.application,a.forms={route:void 0},a.item={type:"inbound",appdata:"Inbound Call",context:"from-voip-provider"},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),f.path("/channels/voice/routes/inbound/view/"+a.id+"/applications")})["catch"](function(a){console.log(a),e.show(g.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"InboundRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_PHONE_NUMBER"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'
{{app.app}}({{app.appdata[0]}}), ...
{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}
',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/inbound/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"inbound"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/inbound/list/create.modal.html",controller:"VoiceRouteInboundListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound.list",{url:"/list",templateUrl:"app/channels/voice/route/inbound/list/list.html",controller:"VoiceRouteInboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundViewCtrl",["$scope","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval","Route","VoiceQueue","Sound","SquareProject","VoiceContext","Interval","VoiceMail","User","Trunk",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){function t(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function u(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=b,a.selectedApp=void 0,a.showGrid=!0,a.$application=i.application,a.$interval=j.interval,a.gridOptions={enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableSorting:!1,rowTemplate:'
',columnDefs:[{name:"app",headerCellFilter:"translate",displayName:"APPLICATION_APPLICATION",enableColumnMenu:!1},{name:"appType",headerCellFilter:"translate",displayName:"APPLICATION_INFO",enableColumnMenu:!1},{name:"appdata",headerCellFilter:"translate",displayName:"APPLICATION_ARGUMENTS",cellClass:"ui-grid-vcenter",cellTemplate:"
{{row.entity.appdata.join(',')}}
",enableColumnMenu:!1},{name:"interval",headerCellFilter:"translate",displayName:"APPLICATION_TIME",enableColumnMenu:!1},{name:"action",enableColumnMenu:!1,headerCellFilter:"translate",displayName:"APPLICATION_ACTION",width:125,cellClass:"ui-grid-vcenter",cellTemplate:'
'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()}),b.grid.registerDataChangeCallback(function(){v(a.gridOptions.data.length)})}};var v=function(a){var b=a?30*a+120:177;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px")};a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={settings:void 0,interval:void 0},a.application={},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.$watch("interval",function(a){a&&t(a)},!0),a.updateSetAppdata=function(){a.application.variable&&a.application.value&&"Set"===a.main.app.value?a.application.appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.updateSetAppdataSettings=function(){a.application.variable&&a.application.value&&"Set"===a.main.app.value?a.route.Applications[a.selectedApp].appdata[0]=a.application.variable+"="+a.application.value:a.route.Applications[a.selectedApp].appdata[0]=null},a.$watch("main.app",function(c){if(c){var d,e,f={},g={};switch(void 0===a.selectedApp&&(a.application={appType:c.type,app:c.value,interval:a.application.interval||"*,*,*,*",appdata:[]}),c.value){case"Queue":d=l,e=m;break;case"Playback":d=m;break;case"AGI":d=n;break;case"Goto":d=o;break;case"Voicemail":d=q;break;case"Dial":switch(c.type){case"internalDial":d=r,f={controller:"all"};break;case"externalDial":d=s}}if(d)return d.get(f).$promise.then(function(b){a.items=b.rows}).then(function(){return e?e.get(g).$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){h.show(b.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,e.path(b)},a.getIntervals=function(){return p.get().$promise.then(function(b){a.Intervals=b.rows,d.syncUpdates("interval",a.Intervals)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:c.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications,v(a.gridOptions.data.length)})["catch"](function(a){e.path("/channels/voice/routes/inbound/list")})},a.getApplication=function(){if(void 0===a.selectedApp)e.path("/channels/voice/routes/inbound/list");else{if(a.showGrid=!0,a.route.Applications[a.selectedApp].appType)a.main.app=_.find(a.$application.applications,{type:a.route.Applications[a.selectedApp].appType});else{var b=_.find(a.$application.applications,{value:a.route.Applications[a.selectedApp].app});if(b)a.main.app=b;else{a.main.app=_.find(a.$application.applications,{type:"custom"});var c=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[c],a.route.Applications[a.selectedApp].appType="custom"}}if("Set"===a.main.app.value){var d=a.route.Applications[a.selectedApp].appdata[0].split("=");a.application.variable=d[0],a.application.value=d[1]}u()}},a.openApplication=function(b){a.selectedApp=b,a.showGrid=!1,e.path("/channels/voice/routes/inbound/view/"+c.id+"/applications/settings")},a.updateRoute=function(d){return a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(f){a.selectedApp=void 0,h.show(b.instant("MESSAGE_WELL_DONE")+"!","success"),d&&e.path("/channels/voice/routes/inbound/view/"+c.id+"/"+d)})["catch"](function(a){console.log(a),h.show(b.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return o.get().$promise.then(function(b){a.voiceContexts=b.rows,d.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.deleteApp=g.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("applications")},a.goNext=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){d.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound.view",{url:"/view/:id",templateUrl:"app/channels/voice/route/inbound/view/view.html",controller:"VoiceRouteInboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.routes.inbound.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/inbound/view/view.settings.html"}).state("main.channels.voice.routes.inbound.view.applications",{url:"/applications",templateUrl:"app/channels/voice/route/inbound/view/view.applications.html"}).state("main.channels.voice.routes.inbound.view.application",{url:"/application",templateUrl:"app/channels/voice/route/view.application.html"}).state("main.channels.voice.routes.inbound.view.applications.settings",{url:"/settings",templateUrl:"app/channels/voice/route/view.applicationSettings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal",{url:"/internal",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCreateCtrl",["$scope","$uibModalInstance","Route","application","$location","$translate","xAlert",function(a,b,c,d,e,f,g){a.$application=d.application,a.forms={route:void 0},a.item={type:"internal",appdata:"Internal Call",context:"from-sip"},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),e.path("/channels/voice/routes/internal/view/"+a.id+"/applications")})["catch"](function(a){g.error(a)})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"InternalRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_PHONE_NUMBER"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'
{{app.app}}({{app.appdata[0]}}),...
{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}
',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/internal/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)" -}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"internal"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/internal/list/create.modal.html",controller:"VoiceRouteInternalListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal.list",{url:"/list",templateUrl:"app/channels/voice/route/internal/list/list.html",controller:"VoiceRouteInternalListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalViewCtrl",["$scope","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval","Route","VoiceQueue","Sound","SquareProject","VoiceContext","Interval","VoiceMail","User","Trunk",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){function t(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function u(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=b,a.selectedApp=void 0,a.showGrid=!0,a.$application=i.application,a.$interval=j.interval,a.gridOptions={enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableSorting:!1,rowTemplate:'
',columnDefs:[{name:"app",headerCellFilter:"translate",displayName:"APPLICATION_APPLICATION",enableColumnMenu:!1},{name:"appType",headerCellFilter:"translate",displayName:"APPLICATION_INFO",enableColumnMenu:!1},{name:"appdata",headerCellFilter:"translate",displayName:"APPLICATION_ARGUMENTS",cellClass:"ui-grid-vcenter",cellTemplate:"
{{row.entity.appdata.join(',')}}
",enableColumnMenu:!1},{name:"interval",headerCellFilter:"translate",displayName:"APPLICATION_TIME",enableColumnMenu:!1},{name:"action",enableColumnMenu:!1,headerCellFilter:"translate",displayName:"APPLICATION_ACTION",width:125,cellClass:"ui-grid-vcenter",cellTemplate:'
'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()}),b.grid.registerDataChangeCallback(function(){v(a.gridOptions.data.length)})}};var v=function(a){var b=a?30*a+120:177;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px")};a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={settings:void 0,interval:void 0},a.application={},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.$watch("interval",function(a){a&&t(a)},!0),a.updateSetAppdata=function(){a.application.variable&&a.application.value&&"Set"===a.main.app.value?a.application.appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.updateSetAppdataSettings=function(){a.application.variable&&a.application.value&&"Set"===a.main.app.value?a.route.Applications[a.selectedApp].appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.$watch("main.app",function(c){if(c){var d,e,f={},g={};switch(void 0===a.selectedApp&&(a.application={appType:c.type,app:c.value,interval:a.application.interval||"*,*,*,*",appdata:[]}),c.value){case"Queue":d=l,e=m;break;case"Playback":d=m;break;case"AGI":d=n;break;case"Goto":d=o;break;case"Voicemail":d=q;break;case"Dial":switch(c.type){case"internalDial":d=r,f={controller:"all"};break;case"externalDial":d=s}}if(d)return d.get(f).$promise.then(function(b){a.items=b.rows}).then(function(){return e?e.get(g).$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){h.show(b.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,e.path(b)},a.getIntervals=function(){return p.get().$promise.then(function(b){a.Intervals=b.rows,d.syncUpdates("interval",a.Intervals)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:c.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications,v(a.gridOptions.data.length)})["catch"](function(a){e.path("/channels/voice/routes/internal/list")})},a.getApplication=function(){if(void 0===a.selectedApp)e.path("/channels/voice/routes/inbound/list");else{if(a.showGrid=!0,a.route.Applications[a.selectedApp].appType)a.main.app=_.find(a.$application.applications,{type:a.route.Applications[a.selectedApp].appType});else{var b=_.find(a.$application.applications,{value:a.route.Applications[a.selectedApp].app});if(b)a.main.app=b;else{a.main.app=_.find(a.$application.applications,{type:"custom"});var c=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[c],a.route.Applications[a.selectedApp].appType="custom"}}if("Set"===a.main.app.value){var d=a.route.Applications[a.selectedApp].appdata[0].split("=");a.application.variable=d[0],a.application.value=d[1]}u()}},a.openApplication=function(b){a.selectedApp=b,a.showGrid=!1,e.path("/channels/voice/routes/internal/view/"+c.id+"/applications/settings")},a.updateRoute=function(d){return a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(f){a.selectedApp=void 0,h.show(b.instant("MESSAGE_WELL_DONE")+"!","success"),d&&e.path("/channels/voice/routes/internal/view/"+c.id+"/"+d)})["catch"](function(a){h.show(b.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return o.get().$promise.then(function(b){a.voiceContexts=b.rows,d.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.deleteApp=g.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("applications")},a.goNext=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){d.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal.view",{url:"/view/:id",templateUrl:"app/channels/voice/route/internal/view/view.html",controller:"VoiceRouteInternalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.routes.internal.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/internal/view/view.settings.html"}).state("main.channels.voice.routes.internal.view.applications",{url:"/applications",templateUrl:"app/channels/voice/route/internal/view/view.applications.html"}).state("main.channels.voice.routes.internal.view.application",{url:"/application",templateUrl:"app/channels/voice/route/view.application.html"}).state("main.channels.voice.routes.internal.view.applications.settings",{url:"/settings",templateUrl:"app/channels/voice/route/view.applicationSettings.html"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCreateCtrl",["$scope","$uibModalInstance","Route","application","xAlert","$translate","$location","Tag",function(a,b,c,d,e,f,g,h){a.$application=d.application,a.forms={route:void 0},a.item={type:"outbound",appdata:"Outbound Call",context:"from-sip"},a.getTags=function(){return h.get().$promise.then(function(b){b.rows.unshift({name:"--"}),a.tags=b.rows})["catch"](function(a){e.show(f.instant(a.data.translatedMessage),"danger")})},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),g.path("/channels/voice/routes/outbound/view/"+a.id+"/routes")})["catch"](function(a){e.show(f.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"OutboundRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_DESTINATION_PATTERN"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'
{{app.app}}({{app.appdata[0]}}),...
{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}
',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/outbound/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"outbound"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/outbound/list/create.modal.html",controller:"VoiceRouteOutboundListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.outbound.list",{url:"/list",templateUrl:"app/channels/voice/route/outbound/list/list.html",controller:"VoiceRouteOutboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.outbound",{url:"/outbound",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundViewCtrl",["$scope","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","application","interval","Route","Trunk","VoiceContext","Interval","Tag",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){function p(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function q(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=c,a.selectedApp=void 0,a.showGrid=!0,a.$application=i.application,a.$interval=j.interval,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.gridOptions={enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableSorting:!1,rowTemplate:'
',columnDefs:[{name:"app",displayName:"APPLICATION_APPLICATION",cellClass:"ui-grid-vcenter",cellTemplate:"
Default{{row.entity.app}}
",headerCellFilter:"translate",enableColumnMenu:!1},{name:"appdata",displayName:"APPLICATION_ARGUMENTS",headerCellFilter:"translate",cellClass:"ui-grid-vcenter",cellTemplate:"
{{row.entity.appdata.join(',')}}
",enableColumnMenu:!1},{name:"interval",displayName:"APPLICATION_TIME",headerCellFilter:"translate",enableColumnMenu:!1},{name:"action",displayName:"APPLICATION_ACTION",headerCellFilter:"translate",width:125,enableColumnMenu:!1,cellClass:"ui-grid-vcenter",cellTemplate:'
'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()}),b.grid.registerDataChangeCallback(function(){r(a.gridOptions.data.length)})}};var r=function(a){var b=a?30*a+120:177;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px")};a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={info:void 0,interval:void 0},a.application={},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""},a.applications=[{name:"Default",value:"Dial",type:"outboundDial"},{name:"Custom",value:"custom",type:"custom"}]},a.$watch("interval",function(a){a&&p(a)},!0),a.$watch("main.app",function(d){if(d){var e,f;switch(void 0===a.selectedApp&&(a.application={appType:d.type,app:d.value,interval:a.application.interval||"*,*,*,*",appdata:[]}),d.value){case"Dial":e=l;break;default:e=null,f=null}if(e)return e.get().$promise.then(function(b){a.items=b.rows}).then(function(){return f?f.get().$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){b.show(c.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,f.path(b)},a.getIntervals=function(){return n.get().$promise.then(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:d.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications,r(a.gridOptions.data.length)})["catch"](function(a){f.path("/channels/voice/routes/outbound/list")})},a.getApplication=function(){if(void 0===a.selectedApp)f.path("/channels/voice/routes/outbound/list");else{if(a.showGrid=!0,a.route.Applications[a.selectedApp].appType)a.main.app=_.find(a.applications,{type:a.route.Applications[a.selectedApp].appType});else{a.main.app=_.find(a.applications,{type:"custom"});var b=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[b],a.route.Applications[a.selectedApp].appType="custom"}q()}},a.openApplication=function(b){a.selectedApp=b,a.showGrid=!1,f.path("/channels/voice/routes/outbound/view/"+d.id+"/routes/settings")},a.updateRoute=function(e){return a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(g){a.selectedApp=void 0,b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),e&&f.path("/channels/voice/routes/outbound/view/"+d.id+"/"+e)})["catch"](function(a){b.show(c.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return m.get().$promise.then(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.getTags=function(){return o.get().$promise.then(function(b){b.rows.unshift({name:"--"}),a.tags=b.rows})["catch"](function(a){b.show(c.instant(a.data.translatedMessage),"danger")})},a.deleteApp=h.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("routes")},a.goNext=function(){g.wizard().next()},a.previous=function(){g.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){e.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.outbound.view",{url:"/view/:id",templateUrl:"app/channels/voice/route/outbound/view/view.html",controller:"VoiceRouteOutboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.routes.outbound.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/outbound/view/view.settings.html"}).state("main.channels.voice.routes.outbound.view.routes",{url:"/routes",templateUrl:"app/channels/voice/route/outbound/view/view.routes.html"}).state("main.channels.voice.routes.outbound.view.route",{url:"/route",templateUrl:"app/channels/voice/route/outbound/view/view.route.html"}).state("main.channels.voice.routes.outbound.view.routes.settings",{url:"/settings",templateUrl:"app/channels/voice/route/outbound/view/view.routeSettings.html"})}]),angular.module("xCallyShuttleApp").factory("Route",["$resource",function(a){return a("/api/voice/extensions/:id",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes",{url:"/routes",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice",{url:"/voice",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:7}}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailListCtrl",["$scope","VoiceMail","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"voice_mails.csv",primaryKey:"uniqueid",columnDefs:[{name:"mailbox"},{name:"fullname"},{name:"email"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/voice/voicemails/view/{{row.entity.uniqueid}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.mailbox, row.entity.uniqueid)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.list",{url:"/list",templateUrl:"app/channels/voice/voicemail/list/list.html",controller:"VoiceVoicemailListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailViewCtrl",["$scope","VoiceMail","VoiceMailMessage","VoiceContext","$http","xAlert","$translate","$stateParams","socket","$sce","Modal","$location","gridOptions",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){var b={exporterCsvFilename:"voice_mail_messages.csv",primaryKey:"id",columnDefs:[{name:"callerid"},{name:"stamp",displayName:"APPLICATION_DATE",cellClass:"ui-grid-vcenter",cellTemplate:"
{{grid.appScope.moment(row.entity.stamp).format('YYYY-MM-DD HH:mm:ss')}}
"},{name:"duration",cellClass:"ui-grid-vcenter",cellTemplate:"
{{row.entity.duration*1000 | date:'mm:ss'}}
"},{name:"audio",displayName:"",width:225,enableSorting:!1,enableFiltering:!1,buttons:[{directive:''}]},{name:"action",width:150,buttons:[{directive:''},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.id, row.entity.id)"}]}]};a.gridOptions=m.gridOptions(c,b,a,{mailbox:a.voicemail.mailbox,context:a.voicemail.context})}a.moment=moment,a.VoiceMailMessage=c,a.getVoicemail=function(){return b.get({id:h.uniqueid}).$promise.then(function(b){delete b.password,delete b.stamp,a.voicemail=b})["catch"](function(a){l.path("/voice/voicemails/list")})},a.updateVoiceVoicemail=function(){return b.update({id:h.uniqueid},a.voicemail).$promise.then(function(){f.show(g.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(g.instant(a.message),"danger")})},a.getContexts=function(){return d.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){f.show(a.message,"danger")})},a.getMessages=function(){return a.voicemail?void n():b.get({id:h.uniqueid}).$promise.then(function(b){delete b.password,delete b.stamp,a.voicemail=b,n()})["catch"](function(a){l.path("/voice/voicemails/view/"+h.uniqueid+"/settings")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.view",{url:"/view/:uniqueid",templateUrl:"app/channels/voice/voicemail/view/view.html",controller:"VoiceVoicemailViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.voicemails.view.settings",{url:"/settings",templateUrl:"app/channels/voice/voicemail/view/view.settings.html"}).state("main.channels.voice.voicemails.view.messages",{url:"/messages",templateUrl:"app/channels/voice/voicemail/view/view.messages.html"})}]),angular.module("xCallyShuttleApp").factory("VoiceMail",["$resource",function(a){return a("/api/voice/voicemails/:id/:controller",{uniqueid:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails",{url:"/voicemails",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("VoiceMailMessage",["$resource",function(a){return a("/api/voice/voicemails/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailWizardCtrl",["$scope","VoiceMail","xAlert","WizardHandler","$location","Setting",function(a,b,c,d,e,f){a.initWizard=function(){a.form={},a.item={context:"from-voicemail"}},a.next=function(){d.wizard().next()},a.previous=function(){d.wizard().previous()},a.exitValidation=function(a){return a},a.getFirstFreeMailbox=function(){f.get({controller:"mailbox"}).$promise.then(function(b){a.item.mailbox=b.value})["catch"](function(a){c.show(a.data.message,"danger")})},a.createItem=function(){return a.item.customer_id=a.item.mailbox,b.save(a.item).$promise.then(function(){e.path("/channels/voice/voicemails/list")})["catch"](function(a){c.show(data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.wizard",{url:"/wizard",templateUrl:"app/channels/voice/voicemail/wizard/wizard.html",controller:"VoiceVoicemailWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("VoiceQueue",["$resource",function(a){return a("/api/voice/queues/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("Company",["$resource",function(a){return a("/api/contactmanager/companies/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies",{url:"/companies",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:5}}})}]),angular.module("xCallyShuttleApp").controller("CompanyListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerCompanyListCtrl",["$scope","$translate","xAlert","Modal","$uibModal","$log","Company","gridOptions","$location",function(a,b,c,d,e,f,g,h,i){a.initView=function(){var b={exporterCsvFilename:"Companies.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:190,buttons:[{"class":"blue-hoki",name:"profile",href:"/contactmanager/companies/view/{{row.entity.id}}/settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{"class":"green-turquoise",name:"contacts",uisref:"main.contactmanager.contacts.list({companyId:{{row.entity.id}}})"}]}]};a.gridOptions=h.gridOptions(g,b,a)},a.create=function(){var a=e.open({animation:!0,size:"lg",templateUrl:"app/contactmanager/company/list/create.modal.html",controller:"CompanyListCreateModalCtrl"});a.result.then(function(a){return g.save(a).$promise.then(function(a){i.path("/contactmanager/companies/view/"+a.id+"/settings")})["catch"](function(a){c.show(a.data.message,"danger")})},function(){f.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.list",{url:"/list",templateUrl:"app/contactmanager/company/list/list.html",controller:"ContactManagerCompanyListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ContactManagerCompanyViewCtrl",["$scope","xAlert","$translate","$stateParams","$location","Company",function(a,b,c,d,e,f){a.getCompany=function(){return f.get({id:d.id}).$promise.then(function(b){a.company=b})["catch"](function(a){e.path("/contactmanager/companies/list")})},a.updateCompany=function(){return f.update({id:d.id},a.company).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(c.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.view",{url:"/view/:id",templateUrl:"app/contactmanager/company/view/view.html",controller:"ContactManagerCompanyViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.contactmanager.companies.view.settings",{url:"/settings",templateUrl:"app/contactmanager/company/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("Contact",["$resource",function(a){return a("/api/contactmanager/contacts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.contacts",{url:"/contacts",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerListImportModalCtrl",["$scope","$uibModalInstance","indexes","csv","xAlert","socket","List","Contact","$translate",function(a,b,c,d,e,f,g,h,i){function j(b){if(b>=a.csvLength||a.stopped)return void(a.importing=!1);for(var c,f=[],g=b;b+200>g&&g
","abstract":!0,data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:5}}})}]),angular.module("xCallyShuttleApp").factory("List",["$resource",function(a){return a("/api/contactmanager/lists/:listId/:controller/:id",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.lists",{url:"/lists",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:5}}})}]),angular.module("xCallyShuttleApp").controller("ContactManagerListListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerListListCtrl",["$scope","$http","$translate","Modal","xAlert","$uibModal","$log","List","gridOptions",function(a,b,c,d,e,f,g,h,i){a.initView=function(){var b={exporterCsvFilename:"Lists.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:190,buttons:[{"class":"blue-hoki",name:"settings",href:"/contactmanager/lists/view/{{row.entity.id}}/settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{"class":"green-turquoise",name:"contacts",uisref:"main.contactmanager.contacts.list({listId:{{row.entity.id}}})"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var d=f.open({animation:!0,templateUrl:"app/contactmanager/list/list/create.modal.html",controller:"ContactManagerListListCreateModalCtrl"});d.result.then(function(d){b.post("/api/contactmanager/lists/",d).then(function(b){a.gridOptions.getPage(),e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.lists.list",{url:"/list",templateUrl:"app/contactmanager/list/list/list.html",controller:"ContactManagerListListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ContactManagerListCustomFieldViewCreateModalCtrl",["$scope","$uibModalInstance","$translate",function(a,b,c){a.$translate=c,a.forms={dashboard:void 0},a.item={},a.choices=[{value:""}],a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)},a.types=[{name:"APPLICATION_TEXT",value:"text"},{name:"APPLICATION_SELECT",value:"select"}],a.ok=function(){"select"===a.item.type&&(a.item.values=angular.toJson(a.choices)),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerListViewCtrl",["$scope","xAlert","$translate","$stateParams","socket","$location","$uibModal","$log","Modal","List","Team","gridOptions",function(a,b,c,d,e,f,g,h,i,j,k,l){var m=function(){return{select:function(b){return j.save({listId:a.list.id,controller:"agents"},{agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})},deselect:function(b){return j["delete"]({listId:a.list.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})}}};a.getList=function(){return j.get({listId:d.id}).$promise.then(function(b){a.list=b})["catch"](function(a){f.path("/contactmanager/lists/list")})},a.updateList=function(){return j.update({id:d.id},a.list).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.getTeams=function(){return k.get({controller:"associations"}).$promise.then(function(b){return a.teams=b.rows,a.list?void 0:a.getList()}).then(function(){return a.list.defaultEntry&&f.path("/contactmanager/lists/list"),j.get({listId:d.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindQueue(a.teams,_.map(b.rows,function(a){return{id:a.id}}),m)})["catch"](function(a){console.error(a)})},a.initCustomFields=function(){var b={exporterCsvFilename:"customfields.csv",primaryKey:"id",columnDefs:[{name:"alias",displayName:"APPLICATION_NAME"},{name:"name",displayName:"APPLICATION_FIELD"},{name:"type"},{name:"description"},{name:"action",width:200,buttons:[{"class":"blue-hoki",href:"/contactmanager/lists/view/{{grid.appScope.$stateParams.id}}/customfields/settings/{{row.entity.id}}",name:"settings"},{"class":"red-sunglo",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)",name:"delete"}]}]};a.gridOptions=l.gridOptions(j,b,a,{listId:d.id,controller:"customfields"})},a.create=function(){var e=g.open({animation:!0,templateUrl:"app/contactmanager/list/view/create.modal.html",controller:"ContactManagerListCustomFieldViewCreateModalCtrl"});e.result.then(function(e){return j.save({listId:d.id,controller:"customfields"},e).$promise.then(function(d){a.gridOptions.getPage(),b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message||a.data.message,"danger")})},function(){h.info("Modal dismissed at: "+new Date)})},a.getCustomField=function(){return j.get({listId:d.id,controller:"customfields",id:d.cfId}).$promise.then(function(b){console.log(b),a.customField=b,"select"===a.customField.type&&(a.choices=JSON.parse(a.customField.values))})["catch"](function(a){console.error(a)})},a.updateCustomField=function(){var e=angular.copy(a.customField);return"select"===e.type&&(e.values=angular.toJson(a.choices)),j.update({listId:d.id,controller:"customfields",id:d.cfId},e).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.lists.view",{url:"/view/:id",templateUrl:"app/contactmanager/list/view/view.html",controller:"ContactManagerListViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.contactmanager.lists.view.settings",{url:"/settings",templateUrl:"app/contactmanager/list/view/view.settings.html"}).state("main.contactmanager.lists.view.agents",{url:"/agents",templateUrl:"app/contactmanager/list/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}}).state("main.contactmanager.lists.view.customfields",{url:"/customfields",templateUrl:"app/contactmanager/list/view/view.customFields.html"}).state("main.contactmanager.lists.view.customfields.settings",{url:"/settings/:cfId",templateUrl:"app/contactmanager/list/view/view.customFieldSettings.html",controller:"ContactManagerListViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("DashboardChatCtrl",["$scope","Auth","ReportChatRoom","socket","Agent","$q","$translate","ReportChatSession","$timeout",function(a,b,c,d,e,f,g,h,i){a.Auth=b,a.moment=moment;var j=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.initAgent=function(){a.table1={enableGridMenu:!1,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,multiSelect:!0,columnDefs:[{name:"UserHasChatQueue.queue",headerCellFilter:"translate",displayName:"APPLICATION_QUEUE",cellClass:"text-center ui-grid-vcenter"}],data:[],onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){j(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)})}},a.table2={headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,columnDefs:[{name:"uniqueid",displayName:"APPLICATION_UNIQUEID",headerCellFilter:"translate"},{name:"websitename",displayName:"APPLICATION_WEBSITE",headerCellFilter:"translate"},{name:"application",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate"},{name:"status",displayName:"APPLICATION_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{\'APPLICATION_QUEUESTATUS_WAITING\' | translate}}{{\'APPLICATION_QUEUESTATUS_ABANDON\' | translate}}{{\'APPLICATION_QUEUESTATUS_COMPLETE\' | translate}}{{\'APPLICATION_UNMANAGED\' | translate}} [{{hhours}}:{{mminutes}}:{{sseconds}}]
',enableSorting:!1,enableColumnMenu:!1,enableFiltering:!1},{name:"membername",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.membername || ''}}
"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.queuename || ''}}
"}],data:[],gridMenuTitleFilter:function(a){var b=f.defer();return b.resolve(g.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){j(a.table2.data.length)})}},e.get({id:b.getCurrentUser().id,controller:"chat",controller1:"queues"}).$promise.then(function(b){a.table1.data=b.rows})["finally"](function(){d.socket.on("user_has_chat_queue:save",function(c){c.UserId!=b.getCurrentUser().id||_.find(a.table1.data,{id:c.ChatQueueId})||a.table1.data.push({id:c.ChatQueueId,UserHasChatQueue:c})}),d.socket.on("user_has_chat_queue:remove",function(c){c.UserId===b.getCurrentUser().id&&_.remove(a.table1.data,{id:c.ChatQueueId})})})["catch"](function(a){console.error(a)}),h.get({controller:"waiting",controller2:"applications"}).$promise.then(function(b){a.table2.data=b.rows})["finally"](function(){d.socket.on("report_chat_session:save",function(b){var c=_.find(a.table2.data,{id:b.id});c?(_.merge(c,b),b.leaveAt&&i(function(){_.remove(a.table2.data,{id:b.id})},1e4)):b.leaveAt||a.table2.data.push(b)}),d.socket.on("report_chat_session:remove",function(b){_.remove(a.table2.data,{id:b.id})})})["catch"](function(a){console.log(a)})},a.initOpen=function(){return c.get({id:"open"}).$promise.then(function(b){a.open=b.value,d.socket.on("chat_dashboard:open",function(b){a.open=b.value})})["catch"](function(a){console.error(a)})},a.initClosed=function(){return c.get({id:"closed"}).$promise.then(function(b){a.closed=b.value,d.socket.on("chat_dashboard:closed",function(b){a.closed=b.value})})["catch"](function(a){console.error(a)})},a.initNew=function(){return c.get({id:"new"}).$promise.then(function(b){a["new"]=b.value,d.socket.on("chat_dashboard:new",function(b){a["new"]=b.value})})["catch"](function(a){console.error(a)})},a.initUnmanaged=function(){return c.get({id:"unmanaged"}).$promise.then(function(b){a.unmanaged=b.value,d.socket.on("chat_dashboard:unmanaged",function(b){a.umanaged=b.value})})["catch"](function(a){console.error(a)})},a.initAbandoned=function(){return c.get({id:"abandoned"}).$promise.then(function(b){a.abandoned=b.value,d.socket.on("chat_dashboard:unmanaged",function(b){a.abandoned=b.value})})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("DashboardCtrl",["$scope","$translate","Auth",function(a,b,c){a.Auth=c}]),angular.module("xCallyShuttleApp").factory("Dashboard",["$resource",function(a){return a("/api/dashboards/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.dashboard",{"abstract":!0,url:"/dashboard",templateUrl:"app/dashboard/dashboard.html",controller:"DashboardCtrl",data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:1}}}).state("main.dashboard.voice",{url:"/voice",controller:"DashboardVoiceCtrl",templateUrl:"app/dashboard/voice/voice.html"}).state("main.dashboard.chat",{url:"/chat",controller:"DashboardChatCtrl",templateUrl:"app/dashboard/chat/chat.html",data:{permissions:{redirectTo:"landing",id:8}}}).state("main.dashboard.mail",{url:"/mail",controller:"DashboardMailCtrl",templateUrl:"app/dashboard/mail/mail.html",data:{permissions:{redirectTo:"landing",id:9}}}).state("main.dashboard.fax",{url:"/fax",controller:"DashboardFaxCtrl",templateUrl:"app/dashboard/fax/fax.html",data:{permissions:{redirectTo:"landing",id:10}}}).state("main.dashboard.sms",{url:"/sms",controller:"DashboardSmsCtrl",templateUrl:"app/dashboard/sms/sms.html",data:{permissions:{redirectTo:"landing",id:11}}})}]),angular.module("xCallyShuttleApp").controller("DashboardFaxCtrl",["$scope","Auth","ReportFaxRoom","socket","Agent","$translate","$q","ReportFaxSession","$timeout",function(a,b,c,d,e,f,g,h,i){a.Auth=b,a.moment=moment,a.initAgent=function(){a.table1={enableGridMenu:!1,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,multiSelect:!0,columnDefs:[{name:"UserHasFaxQueue.queue",headerCellFilter:"translate",displayName:"APPLICATION_QUEUE",cellClass:"text-center ui-grid-vcenter"}],data:[],onRegisterApi:function(b){a.gridApi=b}},a.table2={headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,columnDefs:[{name:"uniqueid",displayName:"APPLICATION_UNIQUEID",headerCellFilter:"translate"},{name:"accountname",displayName:"APPLICATION_ACCOUNT",headerCellFilter:"translate"},{name:"application",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate"},{name:"status",displayName:"APPLICATION_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{\'APPLICATION_QUEUESTATUS_WAITING\' | translate}}{{\'APPLICATION_QUEUESTATUS_ABANDON\' | translate}}{{\'APPLICATION_QUEUESTATUS_COMPLETE\' | translate}}{{\'APPLICATION_UNMANAGED\' | translate}} [{{hhours}}:{{mminutes}}:{{sseconds}}]
',enableSorting:!1,enableColumnMenu:!1,enableFiltering:!1},{name:"membername",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.membername || ''}}
"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.queuename || ''}}
"}],data:[],gridMenuTitleFilter:function(a){var b=g.defer();return b.resolve(f.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b}},e.get({id:b.getCurrentUser().id,controller:"fax",controller1:"queues"}).$promise.then(function(b){a.table1.data=b.rows})["finally"](function(){d.socket.on("user_has_fax_queue:save",function(c){c.UserId!=b.getCurrentUser().id||_.find(a.table1.data,{id:c.FaxQueueId})||a.table1.data.push({id:c.FaxQueueId,UserHasFaxQueue:c})}),d.socket.on("user_has_fax_queue:remove",function(c){c.UserId===b.getCurrentUser().id&&_.remove(a.table1.data,{id:c.FaxQueueId})})})["catch"](function(a){console.error(a)}),h.get({controller:"waiting",controller2:"applications"}).$promise.then(function(b){a.table2.data=b.rows})["finally"](function(){d.socket.on("report_fax_session:save",function(b){var c=_.find(a.table2.data,{id:b.id});c?(_.merge(c,b),b.leaveAt&&i(function(){_.remove(a.table2.data,{id:b.id})},1e4)):b.leaveAt||a.table2.data.push(b)}),d.socket.on("report_fax_session:remove",function(b){_.remove(a.table2.data,{id:b.id})})})["catch"](function(a){console.log(a)})},a.initOpen=function(){return c.get({id:"open"}).$promise.then(function(b){a.open=b.value,d.socket.on("fax_dashboard:open",function(b){a.open=b.value})})["catch"](function(a){console.error(a)})},a.initClosed=function(){return c.get({id:"closed"}).$promise.then(function(b){a.closed=b.value,d.socket.on("fax_dashboard:closed",function(b){a.closed=b.value})})["catch"](function(a){console.error(a)})},a.initNew=function(){return c.get({id:"new"}).$promise.then(function(b){a["new"]=b.value,d.socket.on("fax_dashboard:new",function(b){a["new"]=b.value})})["catch"](function(a){console.error(a)})},a.initUnmanaged=function(){return c.get({id:"unmanaged"}).$promise.then(function(b){a.unmanaged=b.value,d.socket.on("fax_dashboard:unmanaged",function(b){a.umanaged=b.value})})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("DashboardMailCtrl",["$scope","Auth","ReportMailRoom","socket","Agent","$translate","$q","ReportMailSession","$timeout",function(a,b,c,d,e,f,g,h,i){a.Auth=b,a.moment=moment,a.initAgent=function(){a.table1={enableGridMenu:!1,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,multiSelect:!0,columnDefs:[{name:"UserHasMailQueue.queue",headerCellFilter:"translate",displayName:"APPLICATION_QUEUE",cellClass:"text-center ui-grid-vcenter"}],data:[],onRegisterApi:function(b){a.gridApi=b}},a.table2={headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,columnDefs:[{name:"uniqueid",displayName:"APPLICATION_UNIQUEID",headerCellFilter:"translate"},{name:"accountname",displayName:"APPLICATION_ACCOUNT",headerCellFilter:"translate"},{name:"application",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate"},{name:"status",displayName:"APPLICATION_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{\'APPLICATION_QUEUESTATUS_WAITING\' | translate}}{{\'APPLICATION_QUEUESTATUS_ABANDON\' | translate}}{{\'APPLICATION_QUEUESTATUS_COMPLETE\' | translate}}{{\'APPLICATION_UNMANAGED\' | translate}} [{{hhours}}:{{mminutes}}:{{sseconds}}]
',enableSorting:!1,enableColumnMenu:!1,enableFiltering:!1},{name:"membername",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.membername || ''}}
"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.queuename || ''}}
"}],data:[],gridMenuTitleFilter:function(a){var b=g.defer();return b.resolve(f.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){reSize(a.table2.data.length)})}},e.get({id:b.getCurrentUser().id,controller:"mail",controller1:"queues"}).$promise.then(function(b){a.table1.data=b.rows})["finally"](function(){d.socket.on("user_has_mail_queue:save",function(c){c.UserId!=b.getCurrentUser().id||_.find(a.table1.data,{id:c.MailQueueId})||a.table1.data.push({id:c.MailQueueId,UserHasMailQueue:c})}),d.socket.on("user_has_mail_queue:remove",function(c){console.log(c),c.UserId===b.getCurrentUser().id&&_.remove(a.table1.data,{id:c.MailQueueId})})})["catch"](function(a){console.error(a)}),h.get({controller:"waiting",controller2:"applications"}).$promise.then(function(b){a.table2.data=b.rows})["finally"](function(){d.socket.on("report_mail_session:save",function(b){var c=_.find(a.table2.data,{id:b.id});c?(_.merge(c,b),b.leaveAt&&i(function(){_.remove(a.table2.data,{id:b.id})},1e4)):b.leaveAt||a.table2.data.push(b)}),d.socket.on("report_mail_session:remove",function(b){_.remove(a.table2.data,{id:b.id})})})["catch"](function(a){console.log(a)})},a.initOpen=function(){return c.get({id:"open"}).$promise.then(function(b){a.open=b.value,d.socket.on("mail_dashboard:open",function(b){a.open=b.value})})["catch"](function(a){console.error(a)})},a.initClosed=function(){return c.get({id:"closed"}).$promise.then(function(b){a.closed=b.value,d.socket.on("mail_dashboard:closed",function(b){a.closed=b.value})})["catch"](function(a){console.error(a)})},a.initNew=function(){return c.get({id:"new"}).$promise.then(function(b){a["new"]=b.value,d.socket.on("mail_dashboard:new",function(b){a["new"]=b.value})})["catch"](function(a){console.error(a)})},a.initUnmanaged=function(){return c.get({id:"unmanaged"}).$promise.then(function(b){a.unmanaged=b.value,d.socket.on("mail_dashboard:unmanaged",function(b){a.umanaged=b.value})})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("DashboardSmsCtrl",["$scope","Auth","ReportSmsRoom","socket","Agent","$translate","$q","ReportSmsSession","$timeout",function(a,b,c,d,e,f,g,h,i){a.Auth=b,a.moment=moment,a.initAgent=function(){a.table1={enableGridMenu:!1,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,multiSelect:!0,columnDefs:[{name:"UserHasSmsQueue.queue",headerCellFilter:"translate",displayName:"APPLICATION_QUEUE",cellClass:"text-center ui-grid-vcenter"}],data:[],onRegisterApi:function(b){a.gridApi=b}},a.table2={headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,columnDefs:[{name:"uniqueid",displayName:"APPLICATION_UNIQUEID",headerCellFilter:"translate"},{name:"accountname",displayName:"APPLICATION_ACCOUNT",headerCellFilter:"translate"},{name:"application",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate"},{name:"status",displayName:"APPLICATION_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
{{\'APPLICATION_QUEUESTATUS_WAITING\' | translate}}{{\'APPLICATION_QUEUESTATUS_ABANDON\' | translate}}{{\'APPLICATION_QUEUESTATUS_COMPLETE\' | translate}}{{\'APPLICATION_UNMANAGED\' | translate}} [{{hhours}}:{{mminutes}}:{{sseconds}}]
',enableSorting:!1,enableColumnMenu:!1,enableFiltering:!1},{name:"membername",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.membername || ''}}
"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"
{{row.entity.queuename || ''}}
"}],data:[],gridMenuTitleFilter:function(a){var b=g.defer();return b.resolve(f.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b}},e.get({id:b.getCurrentUser().id,controller:"sms",controller1:"queues"}).$promise.then(function(b){a.table1.data=b.rows})["finally"](function(){d.socket.on("user_has_sms_queue:save",function(c){c.UserId!=b.getCurrentUser().id||_.find(a.table1.data,{id:c.SmsQueueId})||a.table1.data.push({id:c.SmsQueueId,UserHasSmsQueue:c})}),d.socket.on("user_has_sms_queue:remove",function(c){c.UserId===b.getCurrentUser().id&&_.remove(a.table1.data,{id:c.SmsQueueId})})})["catch"](function(a){console.error(a)}),h.get({controller:"waiting",controller2:"applications"}).$promise.then(function(b){a.table2.data=b.rows})["finally"](function(){d.socket.on("report_sms_session:save",function(b){var c=_.find(a.table2.data,{id:b.id});c?(_.merge(c,b),b.leaveAt&&i(function(){_.remove(a.table2.data,{id:b.id})},1e4)):b.leaveAt||a.table2.data.push(b)}),d.socket.on("report_sms_session:remove",function(b){_.remove(a.table2.data,{id:b.id})})})["catch"](function(a){console.log(a)})},a.initOpen=function(){return c.get({id:"open"}).$promise.then(function(b){a.open=b.value,d.socket.on("sms_dashboard:open",function(b){a.open=b.value})})["catch"](function(a){console.error(a)})},a.initClosed=function(){return c.get({id:"closed"}).$promise.then(function(b){a.closed=b.value,d.socket.on("sms_dashboard:closed",function(b){a.closed=b.value})})["catch"](function(a){console.error(a)})},a.initNew=function(){return c.get({id:"new"}).$promise.then(function(b){a["new"]=b.value,d.socket.on("sms_dashboard:new",function(b){a["new"]=b.value})})["catch"](function(a){console.error(a)})},a.initUnmanaged=function(){return c.get({id:"unmanaged"}).$promise.then(function(b){a.unmanaged=b.value,d.socket.on("sms_dashboard:unmanaged",function(b){a.umanaged=b.value})})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("DashboardVoiceCtrl",["$scope","Auth","ReportQueue","ReportCall","Agent","socket",function(a,b,c,d,e,f){a.Auth=b;var g=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.initAgent=function(){a.table1={enableGridMenu:!1,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,multiSelect:!0,columnDefs:[{name:"UserHasVoiceQueue.queue",headerCellFilter:"translate",displayName:"APPLICATION_QUEUE",cellClass:"text-center ui-grid-vcenter"},{name:"UserHasVoiceQueue.loggedAt",displayName:"logged At",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
'},{name:"UserHasVoiceQueue.lastcall",headerCellFilter:"translate",displayName:"APPLICATION_LAST_CALL",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
'},{name:"UserHasVoiceQueue.callstaken",headerCellFilter:"translate",displayName:"APPLICATION_CALLS_TAKEN",cellClass:"text-center ui-grid-vcenter"}],data:[],onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){g(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)})}},a.table2={enableGridMenu:!1,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,multiSelect:!0,columnDefs:[{name:"calleridnum",headerCellFilter:"translate",displayName:"APPLICATION_NUMBER",cellClass:"text-center ui-grid-vcenter"},{name:"calleridname",headerCellFilter:"translate",displayName:"APPLICATION_NAME",cellClass:"text-center ui-grid-vcenter"},{name:"queue",headerCellFilter:"translate",displayName:"APPLICATION_QUEUE",cellClass:"text-center ui-grid-vcenter"}],data:[],onRegisterApi:function(b){a.gridApi1=b,a.gridApi1.grid.registerDataChangeCallback(function(){g(a.gridApi1.core.getVisibleRows(a.gridApi1.grid).length)})}},e.get({id:b.getCurrentUser().id,controller:"voice",controller1:"queues"}).$promise.then(function(b){a.table1.data=b.rows})["finally"](function(){f.socket.on("user_has_voice_queue:save",function(c){if(c.UserId===b.getCurrentUser().id){var d=_.findIndex(a.table1.data,{name:c.queue});d>-1?(a.table1.data[d].UserHasVoiceQueue.loggedAt=c.loggedAt,a.table1.data[d].UserHasVoiceQueue.lastcall=c.lastcall,a.table1.data[d].UserHasVoiceQueue.callstaken=c.callstaken):(c.callstaken=0,a.table1.data.push({name:c.queue,UserHasVoiceQueue:c}))}}),f.socket.on("user_has_voice_queue:remove",function(c){c.UserId===b.getCurrentUser().id&&_.remove(a.table1.data,{name:c.queue})})})["catch"](function(a){console.error(a)}),c.get({id:"waiting",controller:"list"}).$promise.then(function(b){a.table2.data=b.rows})["finally"](function(){f.socket.on("report_queue:save",function(b){b.queuecallerleaveAt?_.remove(a.table2.data,{id:b.id}):_.find(a.table1.data,{name:b.queue})&&a.table2.data.push(b)})})["catch"](function(a){console.error(a)})},a.initWaiting=function(){return c.get({id:"waiting"}).$promise.then(function(b){a.waiting=b.value,f.socket.on("dashboard:waiting",function(b){a.waiting=b.value})})["catch"](function(a){console.error(a)})},a.initActive=function(){return c.get({id:"active"}).$promise.then(function(b){a.active=b.value,f.socket.on("dashboard:active",function(b){a.active=b.value})})["catch"](function(a){console.error(a)})},a.initAnswered=function(){return c.get({id:"answered"}).$promise.then(function(b){a.answered=b.value,f.socket.on("dashboard:answered",function(b){a.answered=b.value})})["catch"](function(a){console.error(a)})},a.initAbandoned=function(){return c.get({id:"abandoned"}).$promise.then(function(b){a.abandoned=b.value,f.socket.on("dashboard:abandoned",function(b){a.abandoned=b.value})})["catch"](function(a){console.error(a)}); -},a.initAvgAnswerTime=function(){return c.get({id:"avganswertime"}).$promise.then(function(b){a.avganswertime=b.value,f.socket.on("dashboard:avganswertime",function(b){a.avganswertime=b.value})})["catch"](function(a){console.error(a)})},a.initAvgTalkTime=function(){return c.get({id:"avgtalktime"}).$promise.then(function(b){a.avgtalktime=b.value,f.socket.on("dashboard:avgtalktime",function(b){a.avgtalktime=b.value})})["catch"](function(a){console.error(a)})},a.initAnswerRate=function(){return c.get({id:"answerrate"}).$promise.then(function(b){a.answerrate=b.value,f.socket.on("dashboard:answerrate",function(b){a.answerrate=b.value})})["catch"](function(a){console.error(a)})},a.initTotalOffered=function(){return c.get({id:"totaloffered"}).$promise.then(function(b){a.totaloffered=b.value,f.socket.on("dashboard:totaloffered",function(b){a.totaloffered=b.value})})["catch"](function(a){console.error(a)})},a.initUnmanaged=function(){return c.get({id:"unmanaged"}).$promise.then(function(b){a.unmanaged=b.value,f.socket.on("dashboard:unmanaged",function(b){a.unmanaged=b.value})})["catch"](function(a){console.error(a)})},a.initAbandonRate=function(){return c.get({id:"abandonrate"}).$promise.then(function(b){a.abandonrate=b.value,f.socket.on("dashboard:abandonrate",function(b){a.abandonrate=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutbound=function(){return d.get({id:"manualoutbound"}).$promise.then(function(b){a.manualoutbound=b.value,f.socket.on("dashboard:manualoutbound",function(b){a.manualoutbound=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutboundGlobalDuration=function(){return d.get({id:"manualoutboundglobalduration"}).$promise.then(function(b){a.manualoutboundglobalduration=b.value,f.socket.on("dashboard:manualoutboundglobalduration",function(b){a.manualoutboundglobalduration=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutboundAvgDuration=function(){return d.get({id:"manualoutboundavgduration"}).$promise.then(function(b){a.manualoutboundavgduration=b.value,f.socket.on("dashboard:manualoutboundavgduration",function(b){a.manualoutboundavgduration=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutboundAnswered=function(){return d.get({id:"manualoutboundanswered"}).$promise.then(function(b){a.manualoutboundanswered=b.value,f.socket.on("dashboard:manualoutboundanswered",function(b){a.manualoutboundanswered=b.value})})["catch"](function(a){console.error(a)})},a.initManualOutboundAnswerRate=function(){return d.get({id:"manualoutboundanswerrate"}).$promise.then(function(b){a.manualoutboundanswerrate=b.value,f.socket.on("dashboard:manualoutboundanswerrate",function(b){a.manualoutboundanswerrate=b.value})})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk",{url:"/desk",template:"
","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("DeskAccount",["$resource",function(a){return a("/api/desk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("DeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.map(a.displayedDeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedDeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("desk_account"),b.url="/api/desk/accounts",h.getPage(b).then(function(d){a.displayedDeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedDeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedDeskAccounts.length)}),f.socket.on("desk_account:save",function(){a.initList(b)}),f.socket.on("desk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/desk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/desk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/desk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.list",{url:"/list",templateUrl:"app/desk/list/list.html",controller:"DeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("DeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","desk_com",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){g.unsyncUpdates("desk_configuration"),g.unsyncUpdates("desk_field")}),a.initView=function(){b.get("/api/desk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/desk/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/desk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("desk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.deleteConfiguration=i.confirm["delete"](function(a){b["delete"]("api/desk/configurations/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/desk/configurations",a.configuration).success(function(a){e.path("desk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){h.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/desk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=j.fields.concat(b)}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/desk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,g.socket.on("desk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){h.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/desk/fields/"+a.id).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/desk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/desk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/desk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/desk/fields/"+a.id,a).success(function(){}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&(b.customField=_.result(c,"custom",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.data.choices?c.data.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.view",{url:"/view/:id",templateUrl:"app/desk/view/view.html",controller:"DeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.desk.view.account",{url:"/account",templateUrl:"app/desk/view/view.account.html"}).state("main.desk.view.configurations",{url:"/configurations",templateUrl:"app/desk/view/view.configurations.html"}).state("main.desk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/desk/view/view.configurationSettings.html",controller:"DeskViewCtrl"}).state("main.desk.view.configuration",{url:"/configuration",templateUrl:"app/desk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("DeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/desk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/desk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.wizard",{url:"/wizard",templateUrl:"app/desk/wizard/wizard.html",controller:"DeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk",{url:"/freshdesk",template:"
","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("FreshdeskAccount",["$resource",function(a){return a("/api/freshdesk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("FreshdeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.map(a.displayedFreshdeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedFreshdeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("freshdesk_account"),b.url="/api/freshdesk/accounts",h.getPage(b).then(function(d){a.displayedFreshdeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedFreshdeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedFreshdeskAccounts.length)}),f.socket.on("freshdesk_account:save",function(){a.initList(b)}),f.socket.on("freshdesk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/freshdesk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/freshdesk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/freshdesk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.list",{url:"/list",templateUrl:"app/freshdesk/list/list.html",controller:"FreshdeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FreshdeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("freshdesk_configuration"),h.unsyncUpdates("freshdesk_field")}),a.initView=function(){b.get("/api/freshdesk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/freshdesk/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/freshdesk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("freshdesk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/freshdesk/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/freshdesk/configurations",a.configuration).success(function(a){e.path("freshdesk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/freshdesk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=[],b=f("freshdesk")(b),_.forEach(b,function(b){a.accountFields.push(b.ticket_field)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/freshdesk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("freshdesk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/freshdesk/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/freshdesk/fields/"+a.id,a).success(function(){}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.idField){var c=_.find(a.accountFields,"name",b.idField);c&&(b.customField=!_.result(c,"default",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);return c?c.choices.length>0?c.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.view",{url:"/view/:id",templateUrl:"app/freshdesk/view/view.html",controller:"FreshdeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.freshdesk.view.account",{url:"/account",templateUrl:"app/freshdesk/view/view.account.html"}).state("main.freshdesk.view.configurations",{url:"/configurations",templateUrl:"app/freshdesk/view/view.configurations.html"}).state("main.freshdesk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/freshdesk/view/view.configurationSettings.html",controller:"FreshdeskViewCtrl"}).state("main.freshdesk.view.configuration",{url:"/configuration",templateUrl:"app/freshdesk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("FreshdeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/freshdesk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/freshdesk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.wizard",{url:"/wizard",templateUrl:"app/freshdesk/wizard/wizard.html",controller:"FreshdeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations",{url:"/integrations",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:19}}})}]),angular.module("xCallyShuttleApp").factory("Integration",["$resource",function(a){return a("/api/integrations/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").controller("IntegrationListCtrl",["$scope","Modal","socket","FileUploader","Integration","xAlert",function(a,b,c,d,e,f){a.integrationsByPage=10;var g=a.uploader=new d({url:"api/integrations",autoUpload:!0,removeAfterUpload:!0});g.filters.push({name:"zipFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|zip|".indexOf(b)}}),g.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),f.show(b.name,"success")},g.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),b.errors.forEach(function(a){f.show(a.message,"danger")})},a.deleteItem=b.confirm["delete"](function(a){e["delete"]({id:a},function(){f.show("Integration Removed","success")},function(a){f.show(a.data.errors,"danger")})}),a.initList=function(){a.integrations=e.query({},function(a){c.syncUpdates("integration",a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations.list",{url:"/list",templateUrl:"app/integration/list/list.html",controller:"IntegrationListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty",{url:"/jscripty",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("JscriptyProject",["$resource",function(a){return a("/api/jscripty/projects/:id/:controller/:action/:action2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectListCtrl",["$scope","$uibModal","JscriptyProject","gridOptions","Auth",function(a,b,c,d,e){a.isAdmin=e.isAdmin(),a.initView=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:300,buttons:[{"class":"blue-hoki",icon:"icon-settings",href:"/jscripty/projects/view/{{row.entity.id}}",hide:!e.isAdmin()},{"class":" green-turquoise",icon:"fa fa-play",onClick:"grid.appScope.openJscriptyTab(row.entity)"},{"class":"purple",icon:"icon-book-open",href:"/jscripty/projects/report/{{row.entity.id}}/sessions",hide:!e.isAdmin()},{"class":"red-sunglo",icon:"fa fa-trash",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)",hide:!e.isAdmin()}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/jscripty/project/list/list.create.modal.html",controller:"JscriptyProjectListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectListCreateCtrl",["$scope","$translate","$uibModalInstance","JscriptyProject","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){console.log(a),e.show(b.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.list",{url:"/list",templateUrl:"app/jscripty/project/list/list.html",controller:"JscriptyProjectListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects",{url:"/projects",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectReportCtrl",["$scope","uiGridConstants","$http","$state","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope","gridOptions","JscriptyProject","$location",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a.projectStats={started:0,incomplete:0,completed:0},a.projectId=e.id,a.initView=function(){m.get({id:e.id}).$promise.then(function(b){a.project=b})["catch"](function(a){i.show(a.message,"danger")}),m.get({id:e.id,controller:"sessions"}).$promise.then(function(b){var c=_.groupBy(b.rows,"status");a.projectStats.started=c.started?c.started.length:0,a.projectStats.completed=c.completed?c.completed.length:0,a.projectStats.incomplete=c.incomplete?c.incomplete.length:0})["catch"](function(a){i.show(a.message,"danger")})},a.pdf=function(a,b){var c=[];if(a){var d=html2canvas(document.getElementById(a)),e=d.parse(),f=d.render(e),g=f.toDataURL("image/png");c.push({image:g,width:500,style:"img"})}b.length&&_.forEach(b,function(a){var b=html2canvas(document.getElementById(a.question_id)),d=b.parse(),e=b.render(d),f=e.toDataURL("image/png");c.push({image:f,width:500,style:"img"})});var h={content:c};pdfMake.createPdf(h).download("Project_summary.pdf")},a.getProjectSessions=function(){var c={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"session_id",displayName:"APPLICATION_SESSIONID"},{name:"queue",displayName:"APPLICATION_QUEUE"},{name:"membername",displayName:"APPLICATION_AGENT"},{name:"calleridnum",displayName:"APPLICATION_CALLERIDNUM"},{name:"createdAt",displayName:"APPLICATION_STARTEDAT",filterHeaderTemplate:'
',filters:[{name:"From",condition:b.filter.GREATER_THAN_OR_EQUAL},{name:"To",condition:b.filter.LESS_THAN_OR_EQUAL}]},{name:"completedAt",displayName:"APPLICATION_COMPLETEDAT",filterHeaderTemplate:'
',filters:[{name:"From",condition:b.filter.GREATER_THAN_OR_EQUAL},{name:"To",condition:b.filter.LESS_THAN_OR_EQUAL}]},{name:"status",displayName:"APPLICATION_STATUS"},{name:"last_question_id",displayName:"APPLICATION_LASTQUESTIONID"},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/jscripty/projects/report/{{row.entity.projectId}}/session/{{row.entity.session_id}}",name:"Detail"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteSession(row.entity.session_id)"}]}]};a.gridOptions=l.gridOptions(m,c,a,{id:e.id,controller:"sessions"})},a.deleteSession=function(b){m["delete"]({id:e.id,controller:"sessions",action:b}).$promise.then(function(b){a.gridOptions.getPage(),a.initView(),i.show(j.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){i.show(a.message,"danger")})},a.getSessionDetails=function(){m.get({id:e.id,controller:"sessions",action:e.sessionId}).$promise.then(function(b){a.session=b,a.sessionQuestions=b.ReportJscriptyQuestions})["catch"](function(a){i.show(a.message,"danger")})},a.getQuestionSummary=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"question_id",displayName:"APPLICATION_QUESTIONID"},{name:"question_type",displayName:"APPLICATION_QUESTIONTYPE"},{name:"question_label",displayName:"APPLICATION_QUESTIONLABEL"},{name:"question_text",displayName:"APPLICATION_QUESTION"},{name:"count",displayName:"APPLICATION_COUNT",enableFiltering:!1},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/jscripty/projects/report/"+e.id+"/detail/{{row.entity.question_id}}",name:"Detail"}]}]};a.gridOptions=l.gridOptions(m,b,a,{id:e.id,controller:"questions",action:"summary"})},a.getQuestionInputs=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"session_id",displayName:"APPLICATION_SESSIONID"},{name:"question_id",displayName:"APPLICATION_QUESTIONID",enableFiltering:!1},{name:"question_label",displayName:"APPLICATION_QUESTIONLABEL",enableFiltering:!1},{name:"question_text",displayName:"APPLICATION_QUESTION",enableFiltering:!1},{name:"input_label",displayName:"APPLICATION_INPUTLABEL",enableFiltering:!1},{name:"input_value",cellTemplate:'
{{row.entity.input_value}}
',displayName:"APPLICATION_INPUTVALUE",enableFiltering:!1}]};a.gridOptions=l.gridOptions(m,b,a,{id:e.id,controller:"inputs"})},a.getProjectDetail=function(){a.projectDetail=[],m.query({id:e.id,controller:"questions",action:"detail"}).$promise.then(function(b){console.log(e.questionId),e.questionId?a.projectDetail.push(_.find(b,function(a){return a.question_id==parseInt(e.questionId)})):a.projectDetail=b,console.log(a.projectDetail)})["catch"](function(a){i.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.report",{url:"/report/:id",templateUrl:"app/jscripty/project/report/report.html",controller:"JscriptyProjectReportCtrl"}).state("main.jscripty.projects.report.sessions",{url:"/sessions",templateUrl:"app/jscripty/project/report/report.sessions.html"}).state("main.jscripty.projects.report.summary",{url:"/summary",templateUrl:"app/jscripty/project/report/report.summary.html"}).state("main.jscripty.projects.report.inputs",{url:"/inputs",templateUrl:"app/jscripty/project/report/report.inputs.html"}).state("main.jscripty.projects.report.detail",{url:"/detail",templateUrl:"app/jscripty/project/report/report.detail.html"}).state("main.jscripty.projects.report.questionDetail",{url:"/detail/:questionId",controller:"JscriptyProjectReportCtrl",templateUrl:"app/jscripty/project/report/report.detail.html"}).state("main.jscripty.projects.report.sessionDetail",{url:"/session/:sessionId",controller:"JscriptyProjectReportCtrl",templateUrl:"app/jscripty/project/report/report.session.detail.html"})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectViewCtrl",["$scope","$http","$state","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope",function(a,b,c,d,e,f,g,h,i,j){a.jscriptyProject={},a.getProject=function(){b.get("/api/jscripty/projects/"+d.id).success(function(b){a.jscriptyProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!=a&&-1!=a.indexOf("Script error."));else{var d=new Image;d.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(e){}},b.token=f.getToken();var a=new EditorUi(new Editor);a.openString(b.draft,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}}),e.syncUpdates("jscripty_project",[b],function(a,c,d){c.id===b.id})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.view",{url:"/view/:id",templateUrl:"app/jscripty/project/view/view.html",controller:"JscriptyProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/jscripty/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/jscripty/js/Editor.js","assets/plugins/jscripty/js/Graph.js","assets/plugins/jscripty/js/EditorUi.js","assets/plugins/jscripty/js/Actions.js","assets/plugins/jscripty/js/Menus.js","assets/plugins/jscripty/js/Sidebar.js","assets/plugins/jscripty/js/Toolbar.js","assets/plugins/jscripty/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("LandingCtrl",["$scope","$location","$window","$timeout","Auth",function(a,b,c,d,e){a.initLanding=function(){var c,f,g;return(g=e.getCurrentUser().$promise)?g.then(function(e){switch(f=e,f.role){case"user":for(var g=0;g1?a.filters.forEach(function(b){b.term?64===b.condition?o[a.name+"_uiFrom"]=b.term:256===b.condition&&(o[a.name+"_uiTo"]=b.term):64===b.condition?delete o[a.name+"_uiFrom"]:256===b.condition&&delete o[a.name+"_uiTo"]}):a.filters.length&&a.filters[0].term?o[a.name]=a.filters[0].term:delete o[a.name])}h.id=[];var n=k?"gridOptions"+k:"gridOptions",o={offset:0,limit:10};g.draggable&&(g.rowTemplate='
',g.useExternalPagination=!1,g.enablePaginationControls=!1,g.showGridFooter=!1);var p=function(a){var b=a?30*a+120:177,c=angular.element(document.getElementsByName(n)).length?angular.element(document.getElementsByName(n)[0]):angular.element(document.getElementsByClassName("ui-grid")[0]);c.css("height",b+"px")},q=function(a,b){return h[n].enablePaginationControls||(delete o.offset,delete o.limit),f.spin("spinner-grid"),i=a||i,d=b||d,d.get(i?_.merge(o,i):o).$promise.then(function(a){h[n].totalItems=a.count,h[n].data=a.rows,p(a.rows.length),l&&l()})["catch"](function(a){console.error(a)})["finally"](function(){f.stop("spinner-grid")})};return h.deleteItem=a.confirm["delete"](function(a){var e=i?angular.copy(i):{};return _.merge(e,{id:a}),d.remove(e).$promise.then(function(){q(),b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),h.gridApi.selection.clearSelectedRows(),h.id=[]})["catch"](function(a){b.show(a.message?a.message:a.data.message,"danger")})}),h.deleteItems=a.confirm["delete"](function(){var a=i?angular.copy(i):{};return _.merge(a,{ids:h.id}),d["delete"](a).$promise.then(function(){q(),b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),h.gridApi.selection.clearSelectedRows(),h.id=[]})["catch"](function(a){b.show(a.message?a.message:a.data.message,"danger")})}),g.columnDefs.forEach(function(a){m(a,!0),a.hasOwnProperty("displayName")||(a.displayName="APPLICATION_"+a.name.toUpperCase()),a.headerCellFilter="translate",a.hasOwnProperty("buttons")&&(a.displayName="",a.cellClass="ui-grid-vcenter",a.enableSorting=!1,a.enableFiltering=!1,a.enableColumnMenu=!1,a.cellTemplate="
",a.buttons.forEach(function(b){if(b.directive)a.cellTemplate+=b.directive;else{if(a.cellTemplate+="':"",b.name)switch(b.name){case"delete":a.cellTemplate+='';break;case"profile":case"settings":case"detail":case"embedding":a.cellTemplate+='';break;case"agents":a.cellTemplate+='';break;case"run":a.cellTemplate+='';break;default:a.cellTemplate+="{{'APPLICATION_"+b.name.toUpperCase()+"' | translate}}"}else a.cellTemplate+=b.displayName?"{{'"+b.displayName+"' | translate}}":"";a.cellTemplate+=" "}}),a.cellTemplate+="
",delete a.buttons)}),_.merge({enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableRowSelection:!0,enableSelectAll:!0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,getPage:q,gridMenuTitleFilter:function(a){var b=e.defer();return b.resolve(c.instant(a)),b.promise},onRegisterApi:function(a){h.gridApi=a,h.gridApi.selection&&(h.gridApi.selection.on.rowSelectionChanged(h,function(a){a.isSelected?h.id.push(h.gridApi.grid.options.primaryKey?a.entity[h.gridApi.grid.options.primaryKey]:a.entity.id):_.pull(h.id,h.gridApi.grid.options.primaryKey?a.entity[h.gridApi.grid.options.primaryKey]:a.entity.id)}),h.gridApi.selection.on.rowSelectionChangedBatch(h,function(a){a[0].isSelected?h.id=_.union(h.id,_.map(a,h.gridApi.grid.options.primaryKey?"entity."+h.gridApi.grid.options.primaryKey:"entity.id")):_.map(a,h.gridApi.grid.options.primaryKey?"entity."+h.gridApi.grid.options.primaryKey:"entity.id").forEach(function(a){_.pull(h.id,a)})})),h.gridApi.core.on.sortChanged(h,function(a,b){0===b.length?o.order=null:o.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),q()}),h.gridApi.pagination.on.paginationChanged(h,function(a,b){o.offset=(a-1)*b,o.limit=b,q()}),h.gridApi.core.on.filterChanged(h,function(){var a=this.grid;a.columns.forEach(function(a){m(a)}),q()}),h.gridApi.draggableRows&&h.gridApi.draggableRows.on.rowDropped(h,function(a){a.fromIndex!==a.toIndex&&d.update(i,h[n].data).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(a.message,"danger")})}),j||q()}},g)}}}]),angular.module("xCallyShuttleApp").controller("MainCtrl",["$scope","$rootScope","$translate","$timeout","socket","Auth","xAlert","$uibModal","$log","$state","Contact","$window",function(a,b,c,d,e,f,g,h,i,j,k,l){a.awesomeThings=[],b.workspaces=[],a.select=function(a){switch(a.type){case"chatRoom":case"mailRoom":a.unread=0}},a.deselect=function(){},a.isAdmin=f.isAdmin,a.isLoggedIn=f.isLoggedIn,a.getCurrentUser=f.getCurrentUser,a.CurrentUser=f.getCurrentUser(),e.socket.on("user_has_voice_queue_permit:change",function(){a.CurrentUser=f.getCurrentUser()}),e.socket.on("user_has_chat_queue_permit:change",function(){a.CurrentUser=f.getCurrentUser()}),e.socket.on("user_has_mail_queue_permit:change",function(){a.CurrentUser=f.getCurrentUser()}),e.socket.on("user_has_fax_queue_permit:change",function(){a.CurrentUser=f.getCurrentUser()}),e.socket.on("user_has_sms_queue_permit:change",function(){a.CurrentUser=f.getCurrentUser()}),a.mainTab={active:!0},a.closeJscriptyTab=function(a){if(b.workspaces[a].edited){var c=h.open({animation:!0,templateUrl:"app/main/closeEditedTab.modal.jscripty.html",controller:"CloseEditedTabModalJscriptyCtrl",resolve:{project:b.workspaces[a]}});c.result.then(function(){b.workspaces.splice(a,1)})}else b.workspaces.splice(a,1)},a.closeTab=function(a){var c;b.workspaces[a].edited?"jscripty"==b.workspaces[a].type?b.workspaces[a].end():(c=h.open({animation:!0,templateUrl:"app/main/closeEditedTab.modal.html",controller:"CloseEditedTabModalCtrl"}),c.result.then(function(){b.workspaces.splice(a,1)},function(){i.info("Modal dismissed at: "+new Date)})):b.workspaces.splice(a,1)},a.createContact=function(d,e){return e.tags=e.tags?e.tags.join(","):void 0,e.CompanyId||delete e.CompanyId,k.save(e).$promise.then(function(e){b.workspaces.splice(d,1);var f=e.firstName;e.lastName&&(f+=" "+e.lastName),a.openContactTab({firstName:e.firstName,lastName:e.lastName,id:e.id}),g.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){g.show(a.message,"danger")})};var m=function(b){var c=h.open({animation:!0,templateUrl:"app/main/chooseContact.modal.html",controller:"ChooseContactModalCtrl",resolve:{eventId:function(){return b.id}}});c.result.then(function(c){c?a.openContactTab(c,b):a.newContact(b)},function(){i.info("Modal dismissed at: "+new Date)})};a.updateContact=function(a,d){var e=angular.copy(d);return e.tags=e.tags?e.tags.join(","):void 0,e.CompanyId||(e.CompanyId=null),k.update({id:e.id},e).$promise.then(function(){b.workspaces[a].edited=!1,g.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){g.show(c.instant(a.message)+"!","danger")})},e.socket.on("report_integration:contactmanager",function(a){console.log("choosecontact"),m(a)}),e.socket.on("report_integration:jscripty",function(b){a.openJscriptyTab({name:"Jscripty",id:b.projectId,calleridnum:b.calleridnum,calleridname:b.calleridname,queue:b.queue,membername:b.membername})}),e.socket.on("report_integration:salesforce",function(a){l.open(a.url,"_blank")}),a.openContactTab=function(a,c){var d=_.find(b.workspaces,{contactID:a.id});if(d)d.active=!0;else{var e=a.firstName;a.lastName&&(e+=" "+a.lastName),b.workspaces.push({name:e,type:"contact",contactID:a.id,"class":"icon-user",active:!0,eventData:a.uniqueid?a:null,data:c||null})}},a.openJscriptyTab=function(a){b.workspaces.push({name:a.name,type:"jscripty",active:!0,data:a})},a.newContact=function(a){b.workspaces.push({name:"New Contact",type:"newContact","class":"icon-user",active:!0,data:a||null,eventData:a&&a.uniqueid?a:""})},b.language=c.use(),a.changeLanguage=function(a){c.use(a).then(function(a){b.language=a,-1!==["main.jscripty.projects.view","main.square.projects.view"].indexOf(j.current.name)&&l.location.reload()})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").directive("ngSpinnerBar",["$rootScope",function(a){return{link:function(b,c){c.addClass("hide"),a.$on("$stateChangeStart",function(){"spinner-page"===c[0].id&&c.removeClass("hide")}),a.$on("$stateChangeSuccess",function(){"spinner-page"===c[0].id&&(c.addClass("hide"),$("body").removeClass("page-on-load"),Layout.setSidebarMenuActiveLink("match"),setTimeout(function(){Metronic.scrollTop()},1e3))}),a.$on("$spinnerStart",function(){"spinner-request"===c[0].id&&c.removeClass("hide")}),a.$on("$spinnerStop",function(){"spinner-request"===c[0].id&&c.addClass("hide")}),a.$on("$stateNotFound",function(){"spinner-page"===c[0].id&&c.addClass("hide")}),a.$on("$stateChangeError",function(){"spinner-page"===c[0].id&&c.addClass("hide")})}}}]).directive("a",function(){return{restrict:"E",link:function(a,b,c){(c.ngClick||""===c.href||"#"===c.href)&&b.on("click",function(a){a.preventDefault()})}}}).directive("nxEqual",function(){return{require:"ngModel",link:function(a,b,c,d){return c.nxEqual?(a.$watch(c.nxEqual,function(a){d.$setValidity("nxEqual",a===d.$viewValue)}),void d.$parsers.push(function(b){var e=b===a.$eval(c.nxEqual);return d.$setValidity("nxEqual",e),e?b:void 0})):void console.error("nxEqual expects a model as an argument!")}}}).directive("ngEnter",function(){return function(a,b,c){b.bind("keydown keypress",function(b){13===b.which&&(a.$apply(function(){a.$eval(c.ngEnter)}),b.preventDefault())})}}).directive("dropdownMenuHover",function(){return{link:function(a,b){b.dropdownHover()}}}).directive("uiSelectRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.uiSelectRequired=function(a){return a&&a.length}}}}).directive("rpattern",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(a,b){return null==b||""===b||!h||a.test(b)?(d.$setValidity("pattern",!0),b):void d.$setValidity("pattern",!1)}var f,g=c.rpattern,h=!0;g&&(g.match(/^\/(.*)\/$/)?(g=new RegExp(g.substr(1,g.length-2)),f=function(a){return e(g,a)}):f=function(b){var c=a.$eval(g);if(!c||!c.test)throw new Error("Expected "+g+" to be a RegExp but was "+c);return e(c,b)}),d.$formatters.push(f),d.$parsers.push(f),c.$observe("required",function(a){h=a,f(d.$viewValue)})}}}).directive("conditionBuilder",["$compile","xAlert","$timeout",function(a,b,c){return{restrict:"E",scope:{element:"=",serviceindex:"=",service:"=",form:"="},templateUrl:"app/main/template/template.conditionBuilder.html",compile:function(d,e){var f,g;return f=d.contents().remove(),function(d,e,h){function i(a){var c=_.find(d.service.services[d.serviceindex].conditions,{value:a});if(c)if(d.elementType=c.type,c.arr)d.values=c.arr;else if(c.resource)return c.resource.get().$promise.then(function(a){d.values=_.map(a.rows,function(a){return{name:a[c.resValue],value:a[c.resValue]}})})["catch"](function(a){b.show($translate.instant(a.message),"danger")})}function j(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}d._=_,d.randomName=j(),c(function(){d.element.field&&i(d.element.field)}),d.checkCondition=function(a){d.element.value="",d.element.operator="",i(a)},g||(g=a(f)),e.append(g(d,function(a){return a}))}}}}]).directive("newContact",["$compile","xAlert","socket","$translate","$timeout","List","Tag","Company","ReportCall","$uibModal",function(a,b,c,d,e,f,g,h,i,j){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.contactTab.html",compile:function(a,k){return function(a,k,l){function m(){a.$watch("contact",function(b,c){angular.equals(b,c)||(a.workspace.edited=!0)},!0)}a.forms={general:{}},a.firstLoad=!0,a.detail={tab:"main"},a.contact={CompanyId:"",disposed:!1},a.submitButtonLabel=d.instant("APPLICATION_CONFIRM"),a.dispose=function(){return j.open({animation:!0,templateUrl:"app/main/cm.disposition.html",controller:"ContactManagerSetDisposition"}).result.then(function(c){return i.update({id:a.workspace.data.uniqueid},c).$promise.then(function(){a.contact.disposed=!0,b.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.data.message,"danger")})})},a.init=function(){a.workspace.data&&(a.contact.firstName=a.workspace.data.calleridname?a.workspace.data.calleridname:a.workspace.data.messageId?a.workspace.data.messageId:a.workspace.data.uniqueid?a.workspace.data.uniqueid:"",a.workspace.data.calleridnum&&(a.contact.phone=a.workspace.data.calleridnum),a.workspace.data.from&&(a.contact.email=a.workspace.data.from)),a.getTags(),a.getCompanies(),a.getLists()},a.getLists=function(){return f.get().$promise.then(function(b){a.lists=b.rows,c.syncUpdates("list",a.lists),a.contact.ListId=a.lists[0]?a.lists[0].id:null,a.getCustomFields()})["catch"](function(a){b.show(d.instant(a.message)+"!","danger")})},a.getCustomFields=function(){return f.get({listId:a.contact.ListId,controller:"customfields"}).$promise.then(function(b){a.customFields=b.rows,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),c.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),c.socket.on("custom_field:save",function(b){if(b.ListId===a.contact.ListId){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}}),!a.firstLoad||a.workspace.data?(a.workspace.edited=!0,a.firstLoad=!1):(a.firstLoad=!1,m())})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getTags=function(){return g.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){return h.get().$promise.then(function(b){a.companies=b.rows,a.companies.unshift({id:"",name:"-- None --"}),c.syncUpdates("company",a.companies)})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},e(function(){a.init()})}}}}]).directive("contact",["$compile","xAlert","socket","$timeout","List","Tag","Company","Contact","$translate","gridOptions","$uibModal","ReportCall",function(a,b,c,d,e,f,g,h,i,j,k,l){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.contactTab.html",compile:function(a,m){return function(a,m,n){function o(b){var c=[];_.forEach(a.columns[a.log[b].show][a.log[b].detail].indexes,function(d,e){c.push({name:d,displayName:a.columns[a.log[b].show][a.log[b].detail].header[e],headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1})});var d={enablePaginationControls:!0,exporterCsvFilename:b+".csv",columnDefs:c};a["gridOptions"+b]=j.gridOptions(h,d,a,_.merge({id:a.workspace.contactID,controller:"log",logType:b,order:"createdAt DESC"},a.log[b]),!0,b),a["gridOptions"+b].getPage()}a.moment=moment,a.submitButtonLabel=i.instant("APPLICATION_UPDATE"),a.forms={general:{}},a.detail={tab:"main"},a.log={daily:{show:"phone",type:"inbound",detail:"general"},history:{show:"phone",type:"inbound",detail:"general"}},a.columns={phone:{general:{header:["APPLICATION_SOURCE","APPLICATION_DESTINATION","APPLICATION_DISPOSITION","APPLICATION_DATE"],indexes:["source","destination","disposition","createdAt"]},queue:{header:["APPLICATION_CALLERID","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["calleridnum","queue","createdAt"]}},email:{general:{header:["APPLICATION_FROM","APPLICATION_TO","APPLICATION_DISPOSITION","APPLICATION_DATE"],indexes:["from","accountaddress","disposition","createdAt"]}}},a.dispose=function(){return k.open({animation:!0,templateUrl:"app/main/cm.disposition.html",controller:"ContactManagerSetDisposition"}).result.then(function(c){return l.update({id:a.workspace.data.uniqueid},c).$promise.then(function(){a.contact.disposed=!0,b.show(i.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.data.message,"danger")})})},a.companyInfo=function(b){k.open({animation:!0,size:"lg",templateUrl:"app/main/company.info.html",controller:["$scope","$uibModalInstance","company",function(a,b,c){a.company=c,a.close=function(){b.dismiss("cancel")}}],resolve:{company:_.find(a.companies,{id:b})}})},a.updateLog=function(b,c,d,e){c&&(a.log[b].show=c),d&&(a.log[b].detail=d),e&&(a.log[b].type=e),o(b)},a.getContact=function(){return h.get({id:a.workspace.contactID}).$promise.then(function(b){b.tags=b.tags?b.tags.split(","):[],a.contact=b,a.contact.CompanyId||(a.contact.CompanyId=""),a.getCustomFields(b.ListId),a.updateLog("daily"),a.updateLog("history")})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getTags=function(){return f.get().$promise.then(function(b){a.tags=_.map(b.rows,"name")})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){return g.get().$promise.then(function(b){a.companies=b.rows,a.companies.unshift({id:"",name:"-- None --"}),c.syncUpdates("company",a.companies)})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},a.getCustomFields=function(d){return e.get({listId:d,controller:"customfields"}).$promise.then(function(b){a.customFields=b.rows,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),c.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),c.socket.on("custom_field:save",function(b){if(b.ListId===d){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}})})["catch"](function(a){console.error(a),b.show(a.message,"danger")})},d(function(){a.getTags(),a.getCompanies(),a.getContact()})}}}}]).directive("jscripty",["$compile","xAlert","$http","socket","JscriptyProject",function(a,b,c,d,e){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.jscriptyTab.html",compile:function(a,d){return function(a,d,f){a.count=0,a.questions=[];var g,h=a.workspace.data.id;c.get("/api/jscripty/projects/"+h+"/download").success(function(b){b?c.post("/api/jscripty/projects/"+h+"/sessions",{projectId:h,status:"started",queue:a.workspace.data.queue,calleridnum:a.workspace.data.calleridnum,callername:a.workspace.data.callername,membername:a.workspace.data.membername}).success(function(c){g=c.session_id,a.workspace.edited=!0,a.workspace.sessionId=g,a.workspace.projectId=h;var d=mxUtils.parseXml(b),e=new mxCodec(d);a.decObj=e.decode(d.documentElement);var f=_.find(a.decObj.cells,function(a){return a.vertex&&"start"==a.value.nodeName});if("OFF"==f.getAttribute("state")){var j=_.find(f.edges,function(a){return a.source.id==f.id}).target;a.questions[a.count]=a.currentQuestion=i(j)}else a.questions[a.count]=a.currentQuestion=f;a.saveQuestions()}):(console.log("No project published!"),alert("No project published!"),a.submit({index:a.index}))}),a.next=function(b,c){switch(a.currentQuestion.answer&&a.currentQuestion.answer!=c&&(a.questions=_.take(a.questions,a.count+1)),a.currentQuestion.answer=c,b.value.nodeName){case"question":b=i(b)}a.questions[a.count]=a.currentQuestion,a.currentQuestion=b,a.count++,a.questions[a.count]=b,a.saveQuestions()};var i=function(a){var b=[];return a.options=[],_.forEach(a.edges,function(c,d){if(c.source.id==a.id&&c.value){var e=String(c.value).split(",");e.length>1?(_.forEach(e,function(b,d){var e=Object.create(c);e.setValue(b),a.edges.push(e),a.options.push(b)}),b.push(c)):a.options.push(e[0]); -}}),_.forEach(b,function(b){_.remove(a.edges,function(a){return a.value==b.value&&a.id==b.id})}),a};a.end=function(){a.saveQuestions(),a.workspace.lastQuestionId=a.questions[a.questions.length-1].id,"end"==a.questions[a.questions.length-1].value.nodeName&&(a.workspace.edited=!1,e.update({id:h,controller:"sessions",action:g},{status:"completed",completedAt:Date(),last_question_id:a.questions[a.questions.length-1].id}).$promise.then(function(a){b.show("Project Ended","success")})),a.submit({index:a.index})},a.workspace.end=a.end,a.back=function(){a.count--,a.currentQuestion=a.questions[a.count]},a.setCurrentQuestion=function(b){a.count=b,a.currentQuestion=a.questions[a.count]},a.saveQuestions=function(){for(var c=[],d=[],f=0;f"},{name:">="},{name:"LIKE"}],b.addCondition=function(){b.group.rules.push({condition:"=",field:"",value:""})},b.removeCondition=function(a){b.group.rules.splice(a,1)},b.addGroup=function(){b.group.rules.push({group:{operator:"AND",rules:[{condition:"=",field:"",value:""}]}})},b.randomName=function(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")},b.removeGroup=function(){b.$parent.group&&b.$parent.group.rules.splice(b.$parent.$index,1)},e||(e=a(d)),c.append(e(b,function(a){return a}))}}}}]).directive("dynamicName",["$compile",function(a){return{restrict:"A",terminal:!0,priority:1e3,link:function(b,c,d){c.attr("name",b.$eval(d.dynamicName)),c.removeAttr("dynamic-name"),a(c)(b)}}}]).directive("onReadFile",["$parse",function(a){return{restrict:"A",scope:!1,link:function(b,c,d){var e=a(d.onReadFile);c.on("change",function(a){var c=new FileReader;c.onload=function(a){b.$apply(function(){e(b,{$fileContent:a.target.result})})},c.readAsText((a.srcElement||a.target).files[0])})}}}]).directive("motionFileDownload",["xAlert","$translate","$timeout","$location","FileSaver","$compile",function(a,b,c,d,e,f){return{restrict:"E",template:'{{btncontent || \'\'}}',scope:{mimetype:"=",filename:"=",resource:"=",params:"=",btnclass:"@",btncontent:"@",tooltiptext:"@"},link:function(c,d,f){var g=d.children()[0];c.$on("download-start",function(){$(g).attr("disabled","disabled")}),c.$on("downloaded",function(a,b){var d=base64ToBlob(b,c.mimetype);e.saveAs(d,c.filename),$(g).attr("disabled",!1)}),c.download=function(){return c.$emit("download-start"),c.resource.get(c.params).$promise.then(function(a){c.$emit("downloaded",a.downloadString)})["catch"](function(d){a.show(b.instant(d.translatedMessage||d.data.translatedMessage||d.message||d.data.message),"danger"),c.download=function(){}})}}}}]).directive("audioFileDownload",["xAlert","$translate","$sce",function(a,b,c){return{restrict:"E",template:'',scope:{resource:"=",params:"="},link:function(d,e,f){var g=e.children()[0];d.$on("download-start",function(a,b){$(g).attr("disabled","disabled").html(' Loading...')}),d.$on("downloaded",function(a,b){var d=new Audio(c.trustAsResourceUrl("data:audio/ogg;base64,"+b));d.controls=!0,$(g).remove(),e.append(d),d.play()}),d.$on("error",function(a,b){$(g).removeClass("blue-stripe").addClass("red-stripe").html(' Error!')}),d.download=function(){return d.$emit("download-start"),d.resource.get(d.params).$promise.then(function(a){d.$emit("downloaded",a.downloadString)})["catch"](function(c){a.show(b.instant(c.translatedMessage||c.data.translatedMessage||c.message||c.data.message),"danger")})}}}}]).directive("uiRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.required=function(a,b){return!(b&&0===b.length&&"true"===c.uiRequired)},c.$observe("uiRequired",function(){d.$setValidity("required",!("true"===c.uiRequired&&d.$viewValue&&0===d.$viewValue.length))})}}}).directive("schrollBottom",function(){return{scope:{schrollBottom:"="},link:function(a,b){a.$watchCollection("schrollBottom",function(a){a&&$(b).scrollTop($(b)[0].scrollHeight)})}}}).directive("customGridDateFilterHeader",function(){return{templateUrl:"app/main/customDateFilterHeader.html",controller:"gridDatePickerFilterCtrl"}}),angular.module("xCallyShuttleApp").filter("propsFilter",function(){return function(a,b){var c=[];return angular.isArray(a)?a.forEach(function(a){for(var d=!1,e=Object.keys(b),f=0;f=0}),b}}).filter("freshdesk",function(){var a=["requester","subject","agent","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.ticket_field.name)>=0}),b}}).filter("zendesk",function(){var a=["subject","assignee","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.type)>=0}),b}}).filter("slice",function(){return function(a,b,c){return a?a.slice(b,c):void 0}}),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main",{"abstract":!0,templateUrl:"app/main/main.html",controller:"MainCtrl",resolve:{authorization:["$q","Auth","$state","$timeout","$location",function(a,b,c,d,e){return b.getToken()?a.when():(d(function(){e.path("/login")}),a.reject())}],deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/mxgraph/js/mxClient.js"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("xAlert",["$translate","Notification",function(a,b){return{show:function(c,d){switch(d){case"success":b.success({message:c,title:' '+a.instant("MESSAGE_SUCCESS")+"!",delay:5e3});break;case"info":b.info({message:c,title:' '+a.instant("MESSAGE_INFO")+"!",delay:5e3});break;case"danger":b.error({message:c,title:' '+a.instant("MESSAGE_ERROR")+"!",delay:1e4});break;case"warning":b.warning({message:c,title:' '+a.instant("MESSAGE_WARNING")+"!",delay:1e4});break;default:b.info(c)}},error:function(c){var d;d=c?c.data?c.data.translatedMessage||c.data.message||"Generic Error":c.translatedMessage||c.message||"Generic Error":"Generic Error",b.error({message:a.instant(d),title:' '+a.instant("MESSAGE_ERROR")+"!",delay:1e4})}}}]).factory("stResource",["$q","$filter","$timeout","$rootScope","$http","$translate","xAlert",function(a,b,c,d,e,f,g){return{getPage:function(b){var c={page:Math.ceil(b.pagination.start/b.pagination.number),per_page:b.pagination.number};b.sort.predicate&&(c.sort_by=b.sort.predicate,c.sort_order=b.sort.reverse?"DESC":"ASC"),_.forIn(b.search.predicateObject,function(a,b){c[b]=a}),b.search.params&&(c.clientQuery={},_.forIn(b.search.params,function(a,b){c.clientQuery[b]=a})),d.$broadcast("$spinnerStart"),e.get(b.url,{params:c}).success(function(a){h.resolve(a),d.$broadcast("$spinnerStop")}).error(function(a){g.show(f.instant(a.message),"danger"),d.$broadcast("$spinnerStop")});var h=a.defer();return h.promise}}}]).factory("xNotification",["$translate","Notification","$rootScope",function(a,b,c){return{show:function(d,e,f,g,h,i){var j=c.$new();switch(j.acceptBtn=a.instant("APPLICATION_ACCEPT"),j.rejectBtn=a.instant("APPLICATION_REJECT"),j.nAccept=h,j.nReject=i,f){case"chat":return b.info({message:e,title:d,templateUrl:"app/main/template/template.notification.html",delay:g,scope:j});case"mail":return b.success({message:e,title:d,templateUrl:"app/main/template/template.notification.html",delay:g,scope:j});case"fax":return b.warning({message:e,title:d,templateUrl:"app/main/template/template.notification.html",delay:g,scope:j});case"sms":return b.error({message:e,title:d,templateUrl:"app/main/template/template.notification.html",delay:g,scope:j});default:return b.primary({message:e,title:d,templateUrl:"app/main/template/template.notification.html",delay:g,scope:j})}}}}]),angular.module("xCallyShuttleApp").factory("Widget",["$resource",function(a){return a("/api/widgets/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("MarketCtrl",["$scope","$http","$translate","socket","xAlert","Modal","$timeout",function(a,b,c,d,e,f,g){function h(a,b){return Math.floor(Math.random()*(b-a+1))+a}a.initView=function(){b.get("/api/integrations").success(function(b){a.integrations=b.rows,a.groupedIntegration=_.chunk(a.integrations,4),d.syncUpdates("integration",a.integrations,function(){a.groupedIntegration=_.chunk(a.integrations,4)})}).error(function(a){e.show(a.message,"danger")})},a.isProgressing=!1,a.$on("$destroy",function(){d.unsyncUpdates("integration")}),a.installIntegration=function(d){a.status="Downloading",a.percentage=h(1,50),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!0}).success(function(){g(function(){a.percentage=h(51,99),a.status="Installing"},2500),g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.uninstallIntegration=function(d){a.status="Uninstalling",a.percentage=h(1,99),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!1}).success(function(){g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.market",{url:"/market",templateUrl:"app/market/market.html",controller:"MarketCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MotionbarCtrl",["$scope","$stateParams","$cookieStore","$window","$location","settings","Auth",function(a,b,c,d,e,f,g){console.log(b),b.token&&b.userId&&b.role&&b.redirectTo?(g.loginWithToken(b.token,b.userId,b.role),d.location.href=decodeURIComponent(b.redirectTo)):e.path("/login")}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("motionbar",{url:"/motionbar?redirectTo&token&userId&role",template:"
",controller:"MotionbarCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.motiondialer.blacklist",{url:"/blacklist",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MotionDialerBlackListListCtrl",["$scope","$uibModal","$translate","xAlert","Modal","MotionDialerBlackList","uiGridConstants",function(a,b,c,d,e,f,g){a.initView=function(){a.gridOptions={paginationPageSizes:[10,25,50,75],paginationPageSize:10,enableFiltering:!0,enableSorting:!0,enableGridMenu:!0,flatEntityAccess:!0,showGridFooter:!0,fastWatch:!0,columnDefs:[{name:"id",width:60},{name:"phone"},{name:"description",enableSorting:!1},{name:"updatedtime",sort:{direction:g.DESC},enableFiltering:!1},{name:"action",cellTemplate:'',enableSorting:!1,cellClass:"ui-grid-vcenter",enableFiltering:!1}]},f.list({page:1,size:6e5}).$promise.then(function(b){b.status>0?a.gridOptions.data=b.response.RMI.rows:d.show("Please, check your connection!","danger")})["catch"](function(a){d.show(a.message?a.message:a.data.message,"danger")})},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/motiondialer/blacklist/list/list.create.modal.html",controller:"MotionDialerBlackListListCreateCtrl"});c.result.then(function(b){a.gridOptions.data.push(b.response.RMI)})},a.deleteItem=e.confirm["delete"](function(b){return f["delete"]({id:b}).$promise.then(function(e){e.status>0?(_.remove(a.gridOptions.data,{id:b}),d.show(c.instant("MESSAGE_WELL_DONE"),"success")):d.show(e.message||"Please, check your connection!","danger")})["catch"](function(a){d.show(a.message?a.message:a.data.message,"danger")})})}]),angular.module("xCallyShuttleApp").controller("MotionDialerBlackListListCreateCtrl",["$scope","$translate","$uibModalInstance","MotionDialerBlackList","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.insert(a.item).$promise.then(function(a){a.status>0?(e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)):e.show(a.message||"Please, check your connection!","danger")})["catch"](function(a){e.show(a.message?a.message:a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.motiondialer.blacklist.list",{url:"/list",templateUrl:"app/motiondialer/blacklist/list/list.html",controller:"MotionDialerBlackListListCtrl",authenticate:!0})}]),angular.module("xCallyShuttleApp").factory("MotionDialerBlackList",["$resource",function(a){return a("/api/rest/blacklist/:controller",null,{list:{method:"POST",params:{controller:"list"}},insert:{method:"POST",params:{controller:"insert"}},"delete":{method:"POST",params:{controller:"delete"}},find:{method:"POST",params:{controller:"find"}},update:{method:"POST",params:{controller:"update"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.motiondialer.info",{url:"/info",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("MotionDialerSystem",["$resource",function(a){return a("/api/rest/system/:controller",null,{properties:{method:"POST",params:{controller:"properties"}}})}]),angular.module("xCallyShuttleApp").controller("MotionDialerInfoViewCtrl",["$scope","xAlert","MotionDialerSystem",function(a,b,c){a.getProperties=function(){return c.properties().$promise.then(function(c){console.log(c),c.status>0?a.properties=c.response.RMI:b.show(c.message||"Please, check your connection!","danger")})["catch"](function(a){b.show(a.message?a.message:a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.motiondialer.info.view",{url:"/view",templateUrl:"app/motiondialer/info/view/view.html",controller:"MotionDialerInfoViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.motiondialer.info.view.about",{url:"/about",templateUrl:"app/motiondialer/info/view/view.about.html"}).state("main.motiondialer.info.view.details",{url:"/details",templateUrl:"app/motiondialer/info/view/view.details.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.motiondialer.lists",{url:"/lists",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MotionDialerListListCtrl",["$scope","$uibModal","$translate","xAlert","Modal","MotionDialerList","uiGridConstants","usSpinnerService",function(a,b,c,d,e,f,g,h){a.initView=function(){return a.gridOptions={paginationPageSizes:[10,25,50,75],paginationPageSize:10,enableFiltering:!0,enableSorting:!0,enableGridMenu:!0,flatEntityAccess:!0,showGridFooter:!0,fastWatch:!0,columnDefs:[{name:"id",width:60},{name:"name"},{name:"description",enableSorting:!1},{name:"updatedtime",sort:{direction:g.DESC},enableFiltering:!1},{name:"action",cellTemplate:'',enableSorting:!1,cellClass:"ui-grid-vcenter",enableFiltering:!1}]},f.list({page:1,size:6e5}).$promise.then(function(b){b.status>0?a.gridOptions.data=b.response.RMI.rows:d.show("Please, check your connection!","danger")})["catch"](function(a){d.show(a.message?a.message:a.data.message,"danger")})["finally"](function(){h.stop("spinner-grid")})},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/motiondialer/list/list/list.create.modal.html",controller:"MotionDialerListListCreateCtrl"});c.result.then(function(b){a.gridOptions.data.push(b.response.RMI)})},a.deleteItem=e.confirm["delete"](function(b){return f["delete"]({id:b}).$promise.then(function(e){e.status>0?(_.remove(a.gridOptions.data,{id:b}),d.show(c.instant("MESSAGE_WELL_DONE"),"success")):d.show(e.message||"Please, check your connection!","danger")})["catch"](function(a){d.show(a.message?a.message:a.data.message,"danger")})})}]),angular.module("xCallyShuttleApp").controller("MotionDialerListListCreateCtrl",["$scope","$translate","$uibModalInstance","MotionDialerList","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.insert(a.item).$promise.then(function(a){a.status>0?(e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)):e.show(a.message||"Please, check your connection!","danger")})["catch"](function(a){e.show(a.message?a.message:a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.motiondialer.lists.list",{url:"/list",templateUrl:"app/motiondialer/list/list/list.html",controller:"MotionDialerListListCtrl",authenticate:!0})}]),angular.module("xCallyShuttleApp").factory("MotionDialerContact",["$resource",function(a){return a("/api/rest/contact/:controller",null,{list:{method:"POST",params:{controller:"list"}},insert:{method:"POST",params:{controller:"insert"}},"delete":{method:"POST",params:{controller:"delete"}},find:{method:"POST",params:{controller:"find"}},update:{method:"POST",params:{controller:"update"}}})}]),angular.module("xCallyShuttleApp").factory("MotionDialerList",["$resource",function(a){return a("/api/rest/list/:controller",null,{list:{method:"POST",params:{controller:"list"}},insert:{method:"POST",params:{controller:"insert"}},"delete":{method:"POST",params:{controller:"delete"}},find:{method:"POST",params:{controller:"find"}},update:{method:"POST",params:{controller:"update"}}})}]),angular.module("xCallyShuttleApp").controller("MotionDialerViewContactCreateCtrl",["$scope","$translate","$uibModalInstance","$stateParams","MotionDialerContact","xAlert","MotionDialerTimezone",function(a,b,c,d,e,f,g){a.form={},a.item={},a.timezones=g.list(),a.save=function(){return console.log(a.item),e.insert({id_list:parseInt(d.id),name:a.item.name,phones:a.item.phones.trim().split(","),description:a.item.description||""}).$promise.then(function(a){console.log(a),a.status>0?(f.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)):f.show(a.message||"Please, check your connection!","danger")})["catch"](function(a){f.show(a.message?a.message:a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").controller("MotionDialerListContactImportModalCtrl",["$scope","$uibModalInstance","$stateParams","indexes","csv","xAlert","MotionDialerContact","MotionDialerTimezone",function(a,b,c,d,e,f,g,h){function i(b){if(b>=a.csvLength||a.stopped)return void(a.importing=!1);var d={id_list:parseInt(c.id),name:"",phones:[],description:""};return _.forOwn(a.item,function(a,c){"phones"===c?d[c].push(e[b][a]):d[c]=e[b][a]}),g.insert(d).$promise.then(function(b){b.status>0?(a["import"].success+=j,a["import"].succeeded++,k.push(b.response.RMI)):(console.log(b),a["import"].fail+=j,a["import"].failed++)})["catch"](function(b){console.log(b),a["import"].fail+=j,a["import"].failed++})["finally"](function(){i(b+1)})}a.form={},a.item={},a.timezones=h.list(),console.log(d),console.log(e),a.indexes=d,a.importing=!1,a.submitted=!1,a.stopped=!1,a["import"]={success:0,fail:0,succeeded:0,failed:0},a.csvLength=e.length;var j=100/a.csvLength,k=[];a.start=function(){a.importing=!0,a.submitted=!0,i(0)},a.close=function(){b.close(k)},a.stop=function(){a.stopped=!0}}]),angular.module("xCallyShuttleApp").controller("MotionDialerListViewCtrl",["$scope","$translate","$stateParams","$uibModal","xAlert","uiGridConstants","usSpinnerService","MotionDialerList","MotionDialerContact","Modal","FileUploader","Papa",function(a,b,c,d,e,f,g,h,i,j,k,l){a.getList=function(){return h.find({id:parseInt(c.id)}).$promise.then(function(b){b.status>0?a.list=b.response.RMI:e.show(b.message||"Please, check your connection!","danger")})["catch"](function(a){e.show(a.message?a.message:a.data.message,"danger")})},a.updateList=function(){return h.update({id:a.list.id,name:a.list.name,description:a.list.description}).$promise.then(function(a){a.status>0?e.show(b.instant("MESSAGE_WELL_DONE"),"success"):e.show(a.message||"Please, check your connection!","danger")})["catch"](function(a){e.show(a.data.message,"danger")})},a.getContacts=function(){return a.gridOptions={paginationPageSizes:[10,25,50,75],paginationPageSize:10,enableFiltering:!0,enableSorting:!0,enableGridMenu:!0,flatEntityAccess:!0,showGridFooter:!0,fastWatch:!0,columnDefs:[{name:"name"},{name:"phones"},{name:"description",enableSorting:!1},{name:"updatedtime",sort:{direction:f.DESC},enableFiltering:!1},{name:"action",cellTemplate:'',enableSorting:!1,cellClass:"ui-grid-vcenter",enableFiltering:!1}]},i.list({id_list:parseInt(c.id),page:1,size:6e5}).$promise.then(function(b){b.status>0?a.gridOptions.data=b.response.RMI.rows:e.show(b.message||"Please, check your connection!","danger")})["catch"](function(a){e.show(a.message?a.message:a.data.message,"danger")})["finally"](function(){g.stop("spinner-grid")})},a.deleteContact=j.confirm["delete"](function(c){return i["delete"]({id:c}).$promise.then(function(d){d.status>0?(_.remove(a.gridOptions.data,{id:c}),e.show(b.instant("MESSAGE_WELL_DONE"),"success")):e.show(d.message||"Please, check your connection!","danger")})["catch"](function(a){e.show(a.message?a.message:a.data.message,"danger")})}),a.createContact=function(){var b=d.open({animation:!0,templateUrl:"app/motiondialer/list/view/view.contact.create.modal.html",controller:"MotionDialerViewContactCreateCtrl"});b.result.then(function(b){a.gridOptions.data.push(b.response.RMI)})};var m=a.uploader=new k({queueLimit:1,clearInputAfterAddedToQueue:!0});m.onAfterAddingFile=function(b){l.parse(b._file,{header:!0,complete:function(b){a.uploader.clearQueue(),a["import"](b.data)},error:function(a){e.show(a,"danger")}})},a["import"]=function(b){var c=d.open({animation:!0,backdrop:"static",keyboard:!1,templateUrl:"app/motiondialer/list/view/view.contact.import.modal.html",controller:"MotionDialerListContactImportModalCtrl",resolve:{indexes:function(){return _.keys(b[0])},csv:function(){return b}}});c.result.then(function(b){console.log(b),a.gridOptions.data=a.gridOptions.data.concat(b)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.motiondialer.lists.view",{url:"/view/:id",templateUrl:"app/motiondialer/list/view/view.html",controller:"MotionDialerListViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.motiondialer.lists.view.settings",{url:"/settings",templateUrl:"app/motiondialer/list/view/view.settings.html"}).state("main.motiondialer.lists.view.contacts",{url:"/contacts",templateUrl:"app/motiondialer/list/view/view.contacts.html"})}]),angular.module("xCallyShuttleApp").factory("MotionDialerTimezone",function(){return{list:function(){return[{group:"US (Common)",zones:[{value:"America/Puerto_Rico",name:"Puerto Rico (Atlantic)"},{value:"America/New_York",name:"New York (Eastern)"},{value:"America/Chicago",name:"Chicago (Central)"},{value:"America/Denver",name:"Denver (Mountain)"},{value:"America/Phoenix",name:"Phoenix (MST)"},{value:"America/Los_Angeles",name:"Los Angeles (Pacific)"},{value:"America/Anchorage",name:"Anchorage (Alaska)"},{value:"Pacific/Honolulu",name:"Honolulu (Hawaii)"}]},{group:"America",zones:[{value:"America/Adak",name:"Adak"},{value:"America/Anchorage",name:"Anchorage"},{value:"America/Anguilla",name:"Anguilla"},{value:"America/Antigua",name:"Antigua"},{value:"America/Araguaina",name:"Araguaina"},{value:"America/Argentina/Buenos_Aires",name:"Argentina - Buenos Aires"},{value:"America/Argentina/Catamarca",name:"Argentina - Catamarca"},{value:"America/Argentina/ComodRivadavia",name:"Argentina - ComodRivadavia"},{value:"America/Argentina/Cordoba",name:"Argentina - Cordoba"},{value:"America/Argentina/Jujuy",name:"Argentina - Jujuy"},{value:"America/Argentina/La_Rioja",name:"Argentina - La Rioja"},{value:"America/Argentina/Mendoza",name:"Argentina - Mendoza"},{value:"America/Argentina/Rio_Gallegos",name:"Argentina - Rio Gallegos"},{value:"America/Argentina/Salta",name:"Argentina - Salta"},{value:"America/Argentina/San_Juan",name:"Argentina - San Juan"},{value:"America/Argentina/San_Luis",name:"Argentina - San Luis"},{value:"America/Argentina/Tucuman",name:"Argentina - Tucuman"},{value:"America/Argentina/Ushuaia",name:"Argentina - Ushuaia"},{value:"America/Aruba",name:"Aruba"},{value:"America/Asuncion",name:"Asuncion"},{value:"America/Atikokan",name:"Atikokan"},{value:"America/Atka",name:"Atka"},{value:"America/Bahia",name:"Bahia"},{value:"America/Barbados",name:"Barbados"},{value:"America/Belem",name:"Belem"},{value:"America/Belize",name:"Belize"},{value:"America/Blanc-Sablon",name:"Blanc-Sablon"},{value:"America/Boa_Vista",name:"Boa Vista"},{value:"America/Bogota",name:"Bogota"},{value:"America/Boise",name:"Boise"},{value:"America/Buenos_Aires",name:"Buenos Aires"},{value:"America/Cambridge_Bay",name:"Cambridge Bay"},{value:"America/Campo_Grande",name:"Campo Grande"},{value:"America/Cancun",name:"Cancun"},{value:"America/Caracas",name:"Caracas"},{value:"America/Catamarca",name:"Catamarca"},{value:"America/Cayenne",name:"Cayenne"},{value:"America/Cayman",name:"Cayman"},{value:"America/Chicago",name:"Chicago"},{value:"America/Chihuahua",name:"Chihuahua"},{value:"America/Coral_Harbour",name:"Coral Harbour"},{value:"America/Cordoba",name:"Cordoba"},{value:"America/Costa_Rica",name:"Costa Rica"},{value:"America/Cuiaba",name:"Cuiaba"},{value:"America/Curacao",name:"Curacao"},{value:"America/Danmarkshavn",name:"Danmarkshavn"},{value:"America/Dawson",name:"Dawson"},{value:"America/Dawson_Creek",name:"Dawson Creek"},{value:"America/Denver",name:"Denver"},{value:"America/Detroit",name:"Detroit"},{value:"America/Dominica",name:"Dominica"},{value:"America/Edmonton",name:"Edmonton"},{value:"America/Eirunepe",name:"Eirunepe"},{value:"America/El_Salvador",name:"El Salvador"},{value:"America/Ensenada",name:"Ensenada"},{value:"America/Fortaleza",name:"Fortaleza"},{value:"America/Fort_Wayne",name:"Fort Wayne"},{value:"America/Glace_Bay",name:"Glace Bay"},{value:"America/Godthab",name:"Godthab"},{value:"America/Goose_Bay",name:"Goose Bay"},{value:"America/Grand_Turk",name:"Grand Turk"},{value:"America/Grenada",name:"Grenada"},{value:"America/Guadeloupe",name:"Guadeloupe"},{value:"America/Guatemala",name:"Guatemala"},{value:"America/Guayaquil",name:"Guayaquil"},{value:"America/Guyana",name:"Guyana"},{value:"America/Halifax",name:"Halifax"},{value:"America/Havana",name:"Havana"},{value:"America/Hermosillo",name:"Hermosillo"},{value:"America/Indiana/Indianapolis",name:"Indiana - Indianapolis"},{value:"America/Indiana/Knox",name:"Indiana - Knox"},{value:"America/Indiana/Marengo",name:"Indiana - Marengo"},{value:"America/Indiana/Petersburg",name:"Indiana - Petersburg"},{value:"America/Indiana/Tell_City",name:"Indiana - Tell City"},{value:"America/Indiana/Vevay",name:"Indiana - Vevay"},{value:"America/Indiana/Vincennes",name:"Indiana - Vincennes"},{value:"America/Indiana/Winamac",name:"Indiana - Winamac"},{value:"America/Indianapolis",name:"Indianapolis"},{value:"America/Inuvik",name:"Inuvik"},{value:"America/Iqaluit",name:"Iqaluit"},{value:"America/Jamaica",name:"Jamaica"},{value:"America/Jujuy",name:"Jujuy"},{value:"America/Juneau",name:"Juneau"},{value:"America/Kentucky/Louisville",name:"Kentucky - Louisville"},{value:"America/Kentucky/Monticello",name:"Kentucky - Monticello"},{value:"America/Knox_IN",name:"Knox IN"},{value:"America/La_Paz",name:"La Paz"},{value:"America/Lima",name:"Lima"},{value:"America/Los_Angeles",name:"Los Angeles"},{value:"America/Louisville",name:"Louisville"},{value:"America/Maceio",name:"Maceio"},{value:"America/Managua",name:"Managua"},{value:"America/Manaus",name:"Manaus"},{value:"America/Marigot",name:"Marigot"},{value:"America/Martinique",name:"Martinique"},{value:"America/Matamoros",name:"Matamoros"},{value:"America/Mazatlan",name:"Mazatlan"},{value:"America/Mendoza",name:"Mendoza"},{value:"America/Menominee",name:"Menominee"},{value:"America/Merida",name:"Merida"},{value:"America/Mexico_City",name:"Mexico City"},{value:"America/Miquelon",name:"Miquelon"},{value:"America/Moncton",name:"Moncton"},{value:"America/Monterrey",name:"Monterrey"},{value:"America/Montevideo",name:"Montevideo"},{value:"America/Montreal",name:"Montreal"},{value:"America/Montserrat",name:"Montserrat"},{value:"America/Nassau",name:"Nassau"},{value:"America/New_York", -name:"New York"},{value:"America/Nipigon",name:"Nipigon"},{value:"America/Nome",name:"Nome"},{value:"America/Noronha",name:"Noronha"},{value:"America/North_Dakota/Center",name:"North Dakota - Center"},{value:"America/North_Dakota/New_Salem",name:"North Dakota - New Salem"},{value:"America/Ojinaga",name:"Ojinaga"},{value:"America/Panama",name:"Panama"},{value:"America/Pangnirtung",name:"Pangnirtung"},{value:"America/Paramaribo",name:"Paramaribo"},{value:"America/Phoenix",name:"Phoenix"},{value:"America/Port-au-Prince",name:"Port-au-Prince"},{value:"America/Porto_Acre",name:"Porto Acre"},{value:"America/Port_of_Spain",name:"Port of Spain"},{value:"America/Porto_Velho",name:"Porto Velho"},{value:"America/Puerto_Rico",name:"Puerto Rico"},{value:"America/Rainy_River",name:"Rainy River"},{value:"America/Rankin_Inlet",name:"Rankin Inlet"},{value:"America/Recife",name:"Recife"},{value:"America/Regina",name:"Regina"},{value:"America/Resolute",name:"Resolute"},{value:"America/Rio_Branco",name:"Rio Branco"},{value:"America/Rosario",name:"Rosario"},{value:"America/Santa_Isabel",name:"Santa Isabel"},{value:"America/Santarem",name:"Santarem"},{value:"America/Santiago",name:"Santiago"},{value:"America/Santo_Domingo",name:"Santo Domingo"},{value:"America/Sao_Paulo",name:"Sao Paulo"},{value:"America/Scoresbysund",name:"Scoresbysund"},{value:"America/Shiprock",name:"Shiprock"},{value:"America/St_Barthelemy",name:"St Barthelemy"},{value:"America/St_Johns",name:"St Johns"},{value:"America/St_Kitts",name:"St Kitts"},{value:"America/St_Lucia",name:"St Lucia"},{value:"America/St_Thomas",name:"St Thomas"},{value:"America/St_Vincent",name:"St Vincent"},{value:"America/Swift_Current",name:"Swift Current"},{value:"America/Tegucigalpa",name:"Tegucigalpa"},{value:"America/Thule",name:"Thule"},{value:"America/Thunder_Bay",name:"Thunder Bay"},{value:"America/Tijuana",name:"Tijuana"},{value:"America/Toronto",name:"Toronto"},{value:"America/Tortola",name:"Tortola"},{value:"America/Vancouver",name:"Vancouver"},{value:"America/Virgin",name:"Virgin"},{value:"America/Whitehorse",name:"Whitehorse"},{value:"America/Winnipeg",name:"Winnipeg"},{value:"America/Yakutat",name:"Yakutat"},{value:"America/Yellowknife",name:"Yellowknife"}]},{group:"Europe",zones:[{value:"Europe/Amsterdam",name:"Amsterdam"},{value:"Europe/Andorra",name:"Andorra"},{value:"Europe/Athens",name:"Athens"},{value:"Europe/Belfast",name:"Belfast"},{value:"Europe/Belgrade",name:"Belgrade"},{value:"Europe/Berlin",name:"Berlin"},{value:"Europe/Bratislava",name:"Bratislava"},{value:"Europe/Brussels",name:"Brussels"},{value:"Europe/Bucharest",name:"Bucharest"},{value:"Europe/Budapest",name:"Budapest"},{value:"Europe/Chisinau",name:"Chisinau"},{value:"Europe/Copenhagen",name:"Copenhagen"},{value:"Europe/Dublin",name:"Dublin"},{value:"Europe/Gibraltar",name:"Gibraltar"},{value:"Europe/Guernsey",name:"Guernsey"},{value:"Europe/Helsinki",name:"Helsinki"},{value:"Europe/Isle_of_Man",name:"Isle of Man"},{value:"Europe/Istanbul",name:"Istanbul"},{value:"Europe/Jersey",name:"Jersey"},{value:"Europe/Kaliningrad",name:"Kaliningrad"},{value:"Europe/Kiev",name:"Kiev"},{value:"Europe/Lisbon",name:"Lisbon"},{value:"Europe/Ljubljana",name:"Ljubljana"},{value:"Europe/London",name:"London"},{value:"Europe/Luxembourg",name:"Luxembourg"},{value:"Europe/Madrid",name:"Madrid"},{value:"Europe/Malta",name:"Malta"},{value:"Europe/Mariehamn",name:"Mariehamn"},{value:"Europe/Minsk",name:"Minsk"},{value:"Europe/Monaco",name:"Monaco"},{value:"Europe/Moscow",name:"Moscow"},{value:"Europe/Nicosia",name:"Nicosia"},{value:"Europe/Oslo",name:"Oslo"},{value:"Europe/Paris",name:"Paris"},{value:"Europe/Podgorica",name:"Podgorica"},{value:"Europe/Prague",name:"Prague"},{value:"Europe/Riga",name:"Riga"},{value:"Europe/Rome",name:"Rome"},{value:"Europe/Samara",name:"Samara"},{value:"Europe/San_Marino",name:"San Marino"},{value:"Europe/Sarajevo",name:"Sarajevo"},{value:"Europe/Simferopol",name:"Simferopol"},{value:"Europe/Skopje",name:"Skopje"},{value:"Europe/Sofia",name:"Sofia"},{value:"Europe/Stockholm",name:"Stockholm"},{value:"Europe/Tallinn",name:"Tallinn"},{value:"Europe/Tirane",name:"Tirane"},{value:"Europe/Tiraspol",name:"Tiraspol"},{value:"Europe/Uzhgorod",name:"Uzhgorod"},{value:"Europe/Vaduz",name:"Vaduz"},{value:"Europe/Vatican",name:"Vatican"},{value:"Europe/Vienna",name:"Vienna"},{value:"Europe/Vilnius",name:"Vilnius"},{value:"Europe/Volgograd",name:"Volgograd"},{value:"Europe/Warsaw",name:"Warsaw"},{value:"Europe/Zagreb",name:"Zagreb"},{value:"Europe/Zaporozhye",name:"Zaporozhye"},{value:"Europe/Zurich",name:"Zurich"}]},{group:"Asia",zones:[{value:"Asia/Aden",name:"Aden"},{value:"Asia/Almaty",name:"Almaty"},{value:"Asia/Amman",name:"Amman"},{value:"Asia/Anadyr",name:"Anadyr"},{value:"Asia/Aqtau",name:"Aqtau"},{value:"Asia/Aqtobe",name:"Aqtobe"},{value:"Asia/Ashgabat",name:"Ashgabat"},{value:"Asia/Ashkhabad",name:"Ashkhabad"},{value:"Asia/Baghdad",name:"Baghdad"},{value:"Asia/Bahrain",name:"Bahrain"},{value:"Asia/Baku",name:"Baku"},{value:"Asia/Bangkok",name:"Bangkok"},{value:"Asia/Beirut",name:"Beirut"},{value:"Asia/Bishkek",name:"Bishkek"},{value:"Asia/Brunei",name:"Brunei"},{value:"Asia/Calcutta",name:"Calcutta"},{value:"Asia/Choibalsan",name:"Choibalsan"},{value:"Asia/Chongqing",name:"Chongqing"},{value:"Asia/Chungking",name:"Chungking"},{value:"Asia/Colombo",name:"Colombo"},{value:"Asia/Dacca",name:"Dacca"},{value:"Asia/Damascus",name:"Damascus"},{value:"Asia/Dhaka",name:"Dhaka"},{value:"Asia/Dili",name:"Dili"},{value:"Asia/Dubai",name:"Dubai"},{value:"Asia/Dushanbe",name:"Dushanbe"},{value:"Asia/Gaza",name:"Gaza"},{value:"Asia/Harbin",name:"Harbin"},{value:"Asia/Ho_Chi_Minh",name:"Ho Chi Minh"},{value:"Asia/Hong_Kong",name:"Hong Kong"},{value:"Asia/Hovd",name:"Hovd"},{value:"Asia/Irkutsk",name:"Irkutsk"},{value:"Asia/Istanbul",name:"Istanbul"},{value:"Asia/Jakarta",name:"Jakarta"},{value:"Asia/Jayapura",name:"Jayapura"},{value:"Asia/Jerusalem",name:"Jerusalem"},{value:"Asia/Kabul",name:"Kabul"},{value:"Asia/Kamchatka",name:"Kamchatka"},{value:"Asia/Karachi",name:"Karachi"},{value:"Asia/Kashgar",name:"Kashgar"},{value:"Asia/Kathmandu",name:"Kathmandu"},{value:"Asia/Katmandu",name:"Katmandu"},{value:"Asia/Kolkata",name:"Kolkata"},{value:"Asia/Krasnoyarsk",name:"Krasnoyarsk"},{value:"Asia/Kuala_Lumpur",name:"Kuala Lumpur"},{value:"Asia/Kuching",name:"Kuching"},{value:"Asia/Kuwait",name:"Kuwait"},{value:"Asia/Macao",name:"Macao"},{value:"Asia/Macau",name:"Macau"},{value:"Asia/Magadan",name:"Magadan"},{value:"Asia/Makassar",name:"Makassar"},{value:"Asia/Manila",name:"Manila"},{value:"Asia/Muscat",name:"Muscat"},{value:"Asia/Nicosia",name:"Nicosia"},{value:"Asia/Novokuznetsk",name:"Novokuznetsk"},{value:"Asia/Novosibirsk",name:"Novosibirsk"},{value:"Asia/Omsk",name:"Omsk"},{value:"Asia/Oral",name:"Oral"},{value:"Asia/Phnom_Penh",name:"Phnom Penh"},{value:"Asia/Pontianak",name:"Pontianak"},{value:"Asia/Pyongyang",name:"Pyongyang"},{value:"Asia/Qatar",name:"Qatar"},{value:"Asia/Qyzylorda",name:"Qyzylorda"},{value:"Asia/Rangoon",name:"Rangoon"},{value:"Asia/Riyadh",name:"Riyadh"},{value:"Asia/Saigon",name:"Saigon"},{value:"Asia/Sakhalin",name:"Sakhalin"},{value:"Asia/Samarkand",name:"Samarkand"},{value:"Asia/Seoul",name:"Seoul"},{value:"Asia/Shanghai",name:"Shanghai"},{value:"Asia/Singapore",name:"Singapore"},{value:"Asia/Taipei",name:"Taipei"},{value:"Asia/Tashkent",name:"Tashkent"},{value:"Asia/Tbilisi",name:"Tbilisi"},{value:"Asia/Tehran",name:"Tehran"},{value:"Asia/Tel_Aviv",name:"Tel Aviv"},{value:"Asia/Thimbu",name:"Thimbu"},{value:"Asia/Thimphu",name:"Thimphu"},{value:"Asia/Tokyo",name:"Tokyo"},{value:"Asia/Ujung_Pandang",name:"Ujung Pandang"},{value:"Asia/Ulaanbaatar",name:"Ulaanbaatar"},{value:"Asia/Ulan_Bator",name:"Ulan Bator"},{value:"Asia/Urumqi",name:"Urumqi"},{value:"Asia/Vientiane",name:"Vientiane"},{value:"Asia/Vladivostok",name:"Vladivostok"},{value:"Asia/Yakutsk",name:"Yakutsk"},{value:"Asia/Yekaterinburg",name:"Yekaterinburg"},{value:"Asia/Yerevan",name:"Yerevan"}]},{group:"Africa",zones:[{value:"Africa/Abidjan",name:"Abidjan"},{value:"Africa/Accra",name:"Accra"},{value:"Africa/Addis_Ababa",name:"Addis Ababa"},{value:"Africa/Algiers",name:"Algiers"},{value:"Africa/Asmara",name:"Asmara"},{value:"Africa/Asmera",name:"Asmera"},{value:"Africa/Bamako",name:"Bamako"},{value:"Africa/Bangui",name:"Bangui"},{value:"Africa/Banjul",name:"Banjul"},{value:"Africa/Bissau",name:"Bissau"},{value:"Africa/Blantyre",name:"Blantyre"},{value:"Africa/Brazzaville",name:"Brazzaville"},{value:"Africa/Bujumbura",name:"Bujumbura"},{value:"Africa/Cairo",name:"Cairo"},{value:"Africa/Casablanca",name:"Casablanca"},{value:"Africa/Ceuta",name:"Ceuta"},{value:"Africa/Conakry",name:"Conakry"},{value:"Africa/Dakar",name:"Dakar"},{value:"Africa/Dar_es_Salaam",name:"Dar es Salaam"},{value:"Africa/Djibouti",name:"Djibouti"},{value:"Africa/Douala",name:"Douala"},{value:"Africa/El_Aaiun",name:"El Aaiun"},{value:"Africa/Freetown",name:"Freetown"},{value:"Africa/Gaborone",name:"Gaborone"},{value:"Africa/Harare",name:"Harare"},{value:"Africa/Johannesburg",name:"Johannesburg"},{value:"Africa/Kampala",name:"Kampala"},{value:"Africa/Khartoum",name:"Khartoum"},{value:"Africa/Kigali",name:"Kigali"},{value:"Africa/Kinshasa",name:"Kinshasa"},{value:"Africa/Lagos",name:"Lagos"},{value:"Africa/Libreville",name:"Libreville"},{value:"Africa/Lome",name:"Lome"},{value:"Africa/Luanda",name:"Luanda"},{value:"Africa/Lubumbashi",name:"Lubumbashi"},{value:"Africa/Lusaka",name:"Lusaka"},{value:"Africa/Malabo",name:"Malabo"},{value:"Africa/Maputo",name:"Maputo"},{value:"Africa/Maseru",name:"Maseru"},{value:"Africa/Mbabane",name:"Mbabane"},{value:"Africa/Mogadishu",name:"Mogadishu"},{value:"Africa/Monrovia",name:"Monrovia"},{value:"Africa/Nairobi",name:"Nairobi"},{value:"Africa/Ndjamena",name:"Ndjamena"},{value:"Africa/Niamey",name:"Niamey"},{value:"Africa/Nouakchott",name:"Nouakchott"},{value:"Africa/Ouagadougou",name:"Ouagadougou"},{value:"Africa/Porto-Novo",name:"Porto-Novo"},{value:"Africa/Sao_Tome",name:"Sao Tome"},{value:"Africa/Timbuktu",name:"Timbuktu"},{value:"Africa/Tripoli",name:"Tripoli"},{value:"Africa/Tunis",name:"Tunis"},{value:"Africa/Windhoek",name:"Windhoek"}]},{group:"Australia",zones:[{value:"Australia/ACT",name:"ACT"},{value:"Australia/Adelaide",name:"Adelaide"},{value:"Australia/Brisbane",name:"Brisbane"},{value:"Australia/Broken_Hill",name:"Broken Hill"},{value:"Australia/Canberra",name:"Canberra"},{value:"Australia/Currie",name:"Currie"},{value:"Australia/Darwin",name:"Darwin"},{value:"Australia/Eucla",name:"Eucla"},{value:"Australia/Hobart",name:"Hobart"},{value:"Australia/LHI",name:"LHI"},{value:"Australia/Lindeman",name:"Lindeman"},{value:"Australia/Lord_Howe",name:"Lord Howe"},{value:"Australia/Melbourne",name:"Melbourne"},{value:"Australia/North",name:"North"},{value:"Australia/NSW",name:"NSW"},{value:"Australia/Perth",name:"Perth"},{value:"Australia/Queensland",name:"Queensland"},{value:"Australia/South",name:"South"},{value:"Australia/Sydney",name:"Sydney"},{value:"Australia/Tasmania",name:"Tasmania"},{value:"Australia/Victoria",name:"Victoria"},{value:"Australia/West",name:"West"},{value:"Australia/Yancowinna",name:"Yancowinna"}]},{group:"Indian",zones:[{value:"Indian/Antananarivo",name:"Antananarivo"},{value:"Indian/Chagos",name:"Chagos"},{value:"Indian/Christmas",name:"Christmas"},{value:"Indian/Cocos",name:"Cocos"},{value:"Indian/Comoro",name:"Comoro"},{value:"Indian/Kerguelen",name:"Kerguelen"},{value:"Indian/Mahe",name:"Mahe"},{value:"Indian/Maldives",name:"Maldives"},{value:"Indian/Mauritius",name:"Mauritius"},{value:"Indian/Mayotte",name:"Mayotte"},{value:"Indian/Reunion",name:"Reunion"}]},{group:"Atlantic",zones:[{value:"Atlantic/Azores",name:"Azores"},{value:"Atlantic/Bermuda",name:"Bermuda"},{value:"Atlantic/Canary",name:"Canary"},{value:"Atlantic/Cape_Verde",name:"Cape Verde"},{value:"Atlantic/Faeroe",name:"Faeroe"},{value:"Atlantic/Faroe",name:"Faroe"},{value:"Atlantic/Jan_Mayen",name:"Jan Mayen"},{value:"Atlantic/Madeira",name:"Madeira"},{value:"Atlantic/Reykjavik",name:"Reykjavik"},{value:"Atlantic/South_Georgia",name:"South Georgia"},{value:"Atlantic/Stanley",name:"Stanley"},{value:"Atlantic/St_Helena",name:"St Helena"}]},{group:"Pacific",zones:[{value:"Pacific/Apia",name:"Apia"},{value:"Pacific/Auckland",name:"Auckland"},{value:"Pacific/Chatham",name:"Chatham"},{value:"Pacific/Easter",name:"Easter"},{value:"Pacific/Efate",name:"Efate"},{value:"Pacific/Enderbury",name:"Enderbury"},{value:"Pacific/Fakaofo",name:"Fakaofo"},{value:"Pacific/Fiji",name:"Fiji"},{value:"Pacific/Funafuti",name:"Funafuti"},{value:"Pacific/Galapagos",name:"Galapagos"},{value:"Pacific/Gambier",name:"Gambier"},{value:"Pacific/Guadalcanal",name:"Guadalcanal"},{value:"Pacific/Guam",name:"Guam"},{value:"Pacific/Honolulu",name:"Honolulu"},{value:"Pacific/Johnston",name:"Johnston"},{value:"Pacific/Kiritimati",name:"Kiritimati"},{value:"Pacific/Kosrae",name:"Kosrae"},{value:"Pacific/Kwajalein",name:"Kwajalein"},{value:"Pacific/Majuro",name:"Majuro"},{value:"Pacific/Marquesas",name:"Marquesas"},{value:"Pacific/Midway",name:"Midway"},{value:"Pacific/Nauru",name:"Nauru"},{value:"Pacific/Niue",name:"Niue"},{value:"Pacific/Norfolk",name:"Norfolk"},{value:"Pacific/Noumea",name:"Noumea"},{value:"Pacific/Pago_Pago",name:"Pago Pago"},{value:"Pacific/Palau",name:"Palau"},{value:"Pacific/Pitcairn",name:"Pitcairn"},{value:"Pacific/Ponape",name:"Ponape"},{value:"Pacific/Port_Moresby",name:"Port Moresby"},{value:"Pacific/Rarotonga",name:"Rarotonga"},{value:"Pacific/Saipan",name:"Saipan"},{value:"Pacific/Samoa",name:"Samoa"},{value:"Pacific/Tahiti",name:"Tahiti"},{value:"Pacific/Tarawa",name:"Tarawa"},{value:"Pacific/Tongatapu",name:"Tongatapu"},{value:"Pacific/Truk",name:"Truk"},{value:"Pacific/Wake",name:"Wake"},{value:"Pacific/Wallis",name:"Wallis"},{value:"Pacific/Yap",name:"Yap"}]},{group:"Antarctica",zones:[{value:"Antarctica/Casey",name:"Casey"},{value:"Antarctica/Davis",name:"Davis"},{value:"Antarctica/DumontDUrville",name:"DumontDUrville"},{value:"Antarctica/Macquarie",name:"Macquarie"},{value:"Antarctica/Mawson",name:"Mawson"},{value:"Antarctica/McMurdo",name:"McMurdo"},{value:"Antarctica/Palmer",name:"Palmer"},{value:"Antarctica/Rothera",name:"Rothera"},{value:"Antarctica/South_Pole",name:"South Pole"},{value:"Antarctica/Syowa",name:"Syowa"},{value:"Antarctica/Vostok",name:"Vostok"}]},{group:"Arctic",zones:[{value:"Arctic/Longyearbyen",name:"Longyearbyen"}]},{group:"UTC",zones:[{value:"UTC",name:"UTC"}]},{group:"Manual Offsets",zones:[{value:"UTC-12",name:"UTC-12"},{value:"UTC-11",name:"UTC-11"},{value:"UTC-10",name:"UTC-10"},{value:"UTC-9",name:"UTC-9"},{value:"UTC-8",name:"UTC-8"},{value:"UTC-7",name:"UTC-7"},{value:"UTC-6",name:"UTC-6"},{value:"UTC-5",name:"UTC-5"},{value:"UTC-4",name:"UTC-4"},{value:"UTC-3",name:"UTC-3"},{value:"UTC-2",name:"UTC-2"},{value:"UTC-1",name:"UTC-1"},{value:"UTC+0",name:"UTC+0"},{value:"UTC+1",name:"UTC+1"},{value:"UTC+2",name:"UTC+2"},{value:"UTC+3",name:"UTC+3"},{value:"UTC+4",name:"UTC+4"},{value:"UTC+5",name:"UTC+5"},{value:"UTC+6",name:"UTC+6"},{value:"UTC+7",name:"UTC+7"},{value:"UTC+8",name:"UTC+8"},{value:"UTC+9",name:"UTC+9"},{value:"UTC+10",name:"UTC+10"},{value:"UTC+11",name:"UTC+11"},{value:"UTC+12",name:"UTC+12"},{value:"UTC+13",name:"UTC+13"},{value:"UTC+14",name:"UTC+14"}]}]}}}),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.motiondialer",{url:"/motiondialer",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:16}}})}]),angular.module("xCallyShuttleApp").controller("MotionDialerProcessListCtrl",["$scope","$uibModal","$translate","xAlert","Modal","MotionDialerProcess","uiGridConstants","usSpinnerService",function(a,b,c,d,e,f,g,h){a.initView=function(){return a.gridOptions={paginationPageSizes:[10,25,50,75],paginationPageSize:10,enableFiltering:!0,enableSorting:!0,enableGridMenu:!0,flatEntityAccess:!0,showGridFooter:!0,fastWatch:!0,columnDefs:[{name:"id",width:60},{name:"name"},{name:"queue",enableSorting:!1},{name:"extension",enableSorting:!1},{name:"id_list",enableSorting:!1,cellTemplate:'',cellClass:"ui-grid-vcenter"},{name:"status",cellTemplate:"",cellClass:"ui-grid-vcenter",filter:{type:g.filter.SELECT,selectOptions:[{value:"RUN",label:"RUNNING"},{value:"STOP",label:"STOPPED"}]}},{name:"updatedtime",sort:{direction:g.DESC},enableFiltering:!1},{name:"action",cellTemplate:'',enableSorting:!1,cellClass:"ui-grid-vcenter",enableFiltering:!1}]},f.list({page:1,size:6e5}).$promise.then(function(b){console.log(b),b.status>0?a.gridOptions.data=b.response.RMI.rows:d.show("Please, check your connection!","danger")})["catch"](function(a){d.show(a.message?a.message:a.data.message,"danger")})["finally"](function(){h.stop("spinner-grid")})},a.createProcessQueue=function(){var c=b.open({animation:!0,templateUrl:"app/motiondialer/process/list/list.create.queue.modal.html",controller:"MotionDialerProcessListCreateQueueCtrl"});c.result.then(function(b){a.gridOptions.data.push(b.response.RMI)})},a.createProcessSquare=function(){var c=b.open({animation:!0,templateUrl:"app/motiondialer/process/list/list.create.square.modal.html",controller:"MotionDialerProcessListCreateSquareCtrl"});c.result.then(function(b){a.gridOptions.data.push(b.response.RMI)})},a.deleteItem=e.confirm["delete"](function(b){return f["delete"]({id:b}).$promise.then(function(e){e.status>0?(_.remove(a.gridOptions.data,{id:b}),d.show(c.instant("MESSAGE_WELL_DONE"),"success")):d.show(e.message||"Please, check your connection!","danger")})["catch"](function(a){d.show(a.message?a.message:a.data.message,"danger")})})}]),angular.module("xCallyShuttleApp").controller("MotionDialerProcessListCreateQueueCtrl",["$scope","$translate","$uibModalInstance","MotionDialerProcess","MotionDialerList","Trunk","VoiceQueue","Route","xAlert",function(a,b,c,d,e,f,g,h,i){a.form={},a.item={fetch_sort:"ASC",timeout:3},a.initModal=function(){return g.get().$promise.then(function(b){return a.queues={},b&&(a.queues=b.rows),f.get().$promise}).then(function(b){return a.trunks={},b&&(a.trunks=b.rows),a.trunks.push({name:"fake"}),e.list({page:1,size:6e5}).$promise}).then(function(b){a.lists={},b.status>0?a.lists=b.response.RMI.rows:i.show("Please, check your connection!","danger")})["catch"](function(a){i.show(a.message?a.message:a.data.message,"danger")})},a.save=function(){console.log(a.item);var e="process_"+a.item.name+"_queue_"+a.item.queue.name+"_"+Math.round(1e5*Math.random()),f="Generated by Motion Dialer, Process Queue"+(a.item.description?", "+a.item.description:"");return h.save({appdata:"Internal Call",context:"from-sip",exten:e.replace(/\s/g,"_"),type:"internal",description:f,Applications:[{appdata:["QUEUE_PRIO=99"],app:"Set",interval:"*,*,*,*",type:"internal"},{appdata:[a.item.queue.name,"","","",a.item.timeout],app:"Queue",interval:"*,*,*,*",type:"internal"}]}).$promise.then(function(b){return console.log(b),d.insert({name:a.item.name,id_list:a.item.list.id,queue:a.item.queue.name,device:a.item.device.name,context:"from-sip",extension:e.replace(/\s/g,"_"),description:a.item.description,auto_closed:!0,fetch_sort:a.item.fetch_sort}).$promise}).then(function(a){a.status>0?(i.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)):i.show(a.message||"Please, check your connection!","danger")})["catch"](function(a){i.show(a.message?a.message:a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").controller("MotionDialerProcessListCreateSquareCtrl",["$scope","$translate","$uibModalInstance","MotionDialerProcess","MotionDialerList","SquareProject","Trunk","Route","xAlert",function(a,b,c,d,e,f,g,h,i){a.form={},a.item={fetch_sort:"ASC"},a.initModal=function(){return f.get().$promise.then(function(b){return a.projects={},b&&(a.projects=b.rows),g.get().$promise}).then(function(b){return a.trunks={},b&&(a.trunks=b.rows),a.trunks.push({name:"fake"}),e.list({page:1,size:6e5}).$promise}).then(function(b){a.lists={},b.status>0?a.lists=b.response.RMI.rows:i.show("Please, check your connection!","danger")})["catch"](function(a){i.show(a.message?a.message:a.data.message,"danger")})},a.save=function(){console.log(a.item);var e="process_"+a.item.name+"_square_"+a.item.project.name+"_"+Math.round(1e5*Math.random()),f="Generated by Motion Dialer, Process Square"+(a.item.description?", "+a.item.description:"");return h.save({appdata:"Internal Call",context:"from-sip",exten:e.replace(/\s/g,"_"),type:"internal",description:f,Applications:[{appdata:["agi://127.0.0.1/square",a.item.project.name],app:"AGI",interval:"*,*,*,*",type:"internal"}]}).$promise.then(function(b){return console.log(b),d.insert({name:a.item.name,id_list:a.item.list.id,queue:"none",device:a.item.device.name,context:"from-sip",extension:e.replace(/\s/g,"_"),description:a.item.description,auto_closed:!0,channel_limit:15,fetch_sort:a.item.fetch_sort}).$promise}).then(function(a){a.status>0?(i.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)):i.show(a.message||"Please, check your connection!","danger")})["catch"](function(a){i.show(a.message?a.message:a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.motiondialer.processes.list",{url:"/list",templateUrl:"app/motiondialer/process/list/list.html",controller:"MotionDialerProcessListCtrl",authenticate:!0})}]),angular.module("xCallyShuttleApp").factory("MotionDialerProcess",["$resource",function(a){return a("/api/rest/process/:controller",null,{list:{method:"POST",params:{controller:"list"}},insert:{method:"POST",params:{controller:"insert"}},"delete":{method:"POST",params:{controller:"delete"}},find:{method:"POST",params:{controller:"find"}},update:{method:"POST",params:{controller:"update"}}})}]),angular.module("xCallyShuttleApp").factory("MotionDialerSpooler",["$resource",function(a){return a("/api/rest/spooler/:controller/:retrieve",null,{list:{method:"POST",params:{controller:"list"}},"delete":{method:"POST",params:{controller:"delete"}},find:{method:"POST",params:{controller:"find"}},summary:{method:"POST",params:{controller:"summary"}},close:{method:"POST",params:{controller:"retrieve",retrieve:"close"}},open:{method:"POST",params:{controller:"retrieve",retrieve:"open"}},blacklist:{method:"POST",params:{controller:"retrieve",retrieve:"blacklist"}},planning:{method:"POST",params:{controller:"retrieve",retrieve:"planning"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.motiondialer.processes",{url:"/processes",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MotionDialerProcessViewCtrl",["$scope","$translate","$stateParams","$uibModal","xAlert","uiGridConstants","usSpinnerService","MotionDialerProcess","MotionDialerSpooler","Modal","VoiceQueue",function(a,b,c,d,e,f,g,h,i,j,k){a.process={},a.techs=["SIP","IAX","LOCAL","KHOMP"],a.dialFormats=["tech/device/number","tech/number@device"],a.checkDuplicates=["ALWAYS","IFOPEN","NO"],a.codecs=["g729","ilbc","gsm","ulaw","alaw"],a.getProcess=function(){return h.find({id:parseInt(c.id)}).$promise.then(function(b){console.log(b),b.status>0?(b.response.RMI.codecs=b.response.RMI.codecs.split(","),a.process=b.response.RMI):e.show(b.message||"Please, check your connection!","danger")})["catch"](function(a){e.show(a.message?a.message:a.data.message,"danger")})},a.getSummary=function(){return i.summary({id_process:parseInt(c.id)}).$promise.then(function(b){if(b.status>0){a.summary=b.response.RMI.totals,a.total=0;for(var c=0;c0?(c.response.RMI.codecs=c.response.RMI.codecs.split(","),a.process=c.response.RMI,e.show(b.instant("MESSAGE_WELL_DONE"),"success")):c.response.RMI.errors.forEach(function(a){a?e.show(a.field+": "+a.error,"danger"):e.show("Please, check your connection!","danger")})})["catch"](function(a){e.show(a.message?a.message:a.data.message,"danger")})},a.getSpooler=function(){return a.gridOptions={paginationPageSizes:[10,25,50,75],paginationPageSize:10,enableFiltering:!0,enableSorting:!0,enableGridMenu:!0,flatEntityAccess:!0,showGridFooter:!0,fastWatch:!0,headerCellFilter:"translate",columnDefs:[{name:"name"},{name:"phones"},{name:"retrieve",filter:{type:f.filter.SELECT,selectOptions:[{value:"PLANNED_PEER",label:"PLANNED PEER"},{value:"PLANNED",label:"PLANNED"},{value:"BLACK_LIST",label:"BLACKLIST"},{value:"OPEN",label:"OPEN"},{value:"CLOSED",label:"CLOSED"},{value:"MAX_ATTEMPTS",label:"MAX ATTEMPTS"},{value:"COUNTER_BLOCK",label:"COUNTER BLOCK"},{value:"PLANNED_REQUEST",label:"PLANNED REQUEST"},{value:"DELETE",label:"DELETE"}]}},{name:"counter",enableFiltering:!1},{name:"updatedtime",enableFiltering:!1},{name:"action",cellTemplate:'',enableSorting:!1,cellClass:"ui-grid-vcenter",enableFiltering:!1}]},i.list({id_process:parseInt(c.id),page:1,size:6e5}).$promise.then(function(b){b.status>0?a.gridOptions.data=b.response.RMI.rows:e.show(b.message||"Please, check your connection!","danger")})["catch"](function(a){e.show(a.message?a.message:a.data.message,"danger")})["finally"](function(){g.stop("spinner-grid")})},a.deleteSpooler=j.confirm["delete"](function(c){return i["delete"]({id:c}).$promise.then(function(d){d.status>0?(_.remove(a.gridOptions.data,{id:c}),e.show(b.instant("MESSAGE_WELL_DONE"),"success")):e.show(d.message||"Please, check your connection!","danger")})["catch"](function(a){e.show(a.message?a.message:a.data.message,"danger")})}),a.historySpooler=function(b){var c=d.open({animation:!0,templateUrl:"app/motiondialer/process/view/view.spooler.history.modal.html",controller:"MotionDialerViewSpoolerHistoryCtrl",resolve:{historySpooler:function(){return b}}});c.result.then(function(b){a.gridOptions.data.push(b.response.RMI)})},a.initSettings=function(){return a.queues=null,k.get().$promise.then(function(b){b&&(a.queues=b.rows,a.process.queue&&"none"!==a.process.queue&&(a.queue=_.find(b.rows,{name:a.process.queue})))})["catch"](function(a){e.show(a.message?a.message:a.data.message,"danger")})},a.createInterval=function(b){var c=d.open({animation:!0,templateUrl:"app/motiondialer/process/view/view.create.interval.modal.html",controller:"MotionDialerViewCreateIntervalCtrl",resolve:{objectProcess:function(){return a.process},intervalType:function(){return b},intervalValue:function(){return b?"8:00-20:00|MON-FRI|*|*":"00:01-07:59|SAT-SUN|*|*"}}});c.result.then(function(b){a.process=b})},a.editInterval=function(b,c){var e=d.open({animation:!0,templateUrl:"app/motiondialer/process/view/view.create.interval.modal.html",controller:"MotionDialerViewCreateIntervalCtrl",resolve:{objectProcess:function(){return a.process},intervalType:function(){return b},intervalValue:function(){return c}}});e.result.then(function(b){a.process=b})},a.deleteInterval=j.confirm["delete"](function(c,d){var f={id:a.process.id};return d?(f.intervals=[],f.intervals=f.intervals.concat(a.process.intervals),f.intervals.splice(c,1)):(f.not_intervals=[],f.not_intervals=f.not_intervals.concat(a.process.not_intervals),f.not_intervals.splice(c,1)),h.update(f).$promise.then(function(c){c.status>0?(c.response.RMI.codecs=c.response.RMI.codecs.split(","),a.process=c.response.RMI,e.show(b.instant("MESSAGE_WELL_DONE"),"success")):c.response.RMI.errors.forEach(function(a){a?e.show(a.field+": "+a.error,"danger"):e.show("Please, check your connection!","danger")})})["catch"](function(a){e.show(a.message?a.message:a.data.message,"danger")})}),a.runOrStop=function(){var b=d.open({animation:!0,templateUrl:"app/motiondialer/process/view/view.run.process.modal.html",controller:"MotionDialerViewRunProcessCtrl",resolve:{statusProcess:function(){return a.process.status}}});b.result.then(function(b){a.process.status=b.status})}}]),angular.module("xCallyShuttleApp").controller("MotionDialerViewCreateIntervalCtrl",["$scope","$translate","$uibModalInstance","$stateParams","MotionDialerProcess","xAlert","objectProcess","intervalType","intervalValue","interval",function(a,b,c,d,e,f,g,h,i,j){function k(a){var b,c=a.split("|"),d={};return c.forEach(function(a,c){switch(c){case 0:"*"!==a?(b=a.split("-"),d.t_from=moment(b[0],"HH:mm"),d.t_to=moment(b[1],"HH:mm"),d.alwaysTime=!1):(d.t_from=moment(new Date),d.t_to=moment(new Date),d.alwaysTime=!0);break;case 1:"*"!==a?(b=a.split("-"),d.wd_from=b[0].toLowerCase(),d.wd_to=b[1]?b[1].toLowerCase():"always"):(d.wd_from="always",d.wd_to="always");break;case 2:"*"!==a?(b=a.split("-"),d.md_from=b[0],d.md_to=b[1]?b[1]:"always"):(d.md_from="always",d.md_to="always");break;case 3:"*"!==a?(b=a.split("-"),d.m_from=b[0],d.m_to=b[1]?b[1]:"always"):(d.m_from="always",d.m_to="always")}}),d}function l(a){var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toUpperCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toUpperCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from,a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to)):e="*",b+"|"+c+"|"+d+"|"+e}a.form={},a.$interval=j.interval,a.splittedInterval=k(i),a.save=function(){var d=l(a.splittedInterval);console.log(d);var i={id:g.id};return h?(i.intervals=[],i.intervals=i.intervals.concat(g.intervals),i.intervals.push(d)):(i.not_intervals=[],i.not_intervals=i.not_intervals.concat(g.not_intervals),i.not_intervals.push(d)),console.log(i),e.update(i).$promise.then(function(a){a.status>0?(a.response.RMI.codecs=a.response.RMI.codecs.split(","),f.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a.response.RMI)):a.response.RMI.errors.forEach(function(a){a?f.show(a.field+": "+a.error,"danger"):f.show("Please, check your connection!","danger")})})["catch"](function(a){f.show(a.message?a.message:a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.motiondialer.processes.view",{url:"/view/:id",templateUrl:"app/motiondialer/process/view/view.html",controller:"MotionDialerProcessViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.motiondialer.processes.view.overview",{url:"/overview",templateUrl:"app/motiondialer/process/view/view.overview.html"}).state("main.motiondialer.processes.view.settings",{url:"/settings",templateUrl:"app/motiondialer/process/view/view.settings.html" -}).state("main.motiondialer.processes.view.intervals",{url:"/intervals",templateUrl:"app/motiondialer/process/view/view.intervals.html"}).state("main.motiondialer.processes.view.spooler",{url:"/spooler",templateUrl:"app/motiondialer/process/view/view.spooler.html"})}]),angular.module("xCallyShuttleApp").controller("MotionDialerViewRunProcessCtrl",["$scope","$stateParams","$uibModalInstance","$translate","statusProcess","MotionDialerProcess","xAlert",function(a,b,c,d,e,f,g){a.status="RUN"===e?"STOP":"RUN",a.yes=function(){f.update({id:parseInt(b.id),status:a.status}).$promise.then(function(a){a.status>0?(g.show(d.instant("MESSAGE_WELL_DONE"),"success"),c.close(a.response.RMI)):g.show(a.message||"Please, check your connection!","danger")})["catch"](function(a){g.show(a.message?a.message:a.data.message,"danger")})},a.no=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").controller("MotionDialerViewSpoolerHistoryCtrl",["$scope","$translate","$uibModalInstance","$stateParams","MotionDialerSpooler","xAlert","historySpooler",function(a,b,c,d,e,f,g){a.historySpooler=g,a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").controller("SalesforceListCtrl",["$scope","SalesforceAccount","gridOptions","xAlert","$translate",function(a,b,c,d,e){a.initView=function(){var d={exporterCsvFilename:"salesforce_account.csv",columnDefs:[{name:"name",displayName:"APPLICATION_NAME"},{name:"username"},{name:"remoteUri",displayName:"APPLICATION_URI"},{name:"action",buttons:[{"class":"blue-hoki",href:"/salesforce/view/{{row.entity.id}}/account",name:"account"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK",onClick:"grid.appScope.checkAccount(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.checkAccount=function(a){return b.check({id:a}).$promise.then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.list",{url:"/list",templateUrl:"app/salesforce/list/list.html",controller:"SalesforceListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("SalesforceAccount",["$resource",function(a){return a("/api/salesforce/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"},fields:{params:{controller:"fields"},isArray:!0},check:{params:{controller:"check"}}})}]).factory("SalesforceConfiguration",["$resource",function(a){return a("/api/salesforce/accounts/:accountId/configurations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]).factory("SalesforceField",["$resource",function(a){return a("/api/salesforce/accounts/:accountId/configurations/:configurationId/fields/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce",{url:"/salesforce",template:"
","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.view.configurations",{url:"/configurations",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SalesforceViewConfigurationListCtrl",["$scope","$stateParams","$translate","gridOptions","SalesforceConfiguration","$uibModal",function(a,b,c,d,e,f){a.initView=function(){var c={exporterCsvFilename:"salesforce_configurations.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/salesforce/view/{{row.entity.AccountId}}/configurations/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(e,c,a,{accountId:b.id})},a.createItem=function(){var b=f.open({animation:!0,templateUrl:"app/salesforce/view/configuration/list/create.modal.html",controller:"SalesforceCreateConfigurationCtrl"});b.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("SalesforceCreateConfigurationCtrl",["$scope","$translate","$uibModalInstance","SalesforceConfiguration","xAlert","$stateParams","channel",function(a,b,c,d,e,f,g){a.form={},a.item={},a.channels=g,a.item.channel="voice",a.save=function(){return d.save({accountId:f.id},a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.error(a)})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.view.configurations.list",{url:"/list",templateUrl:"app/salesforce/view/configuration/list/list.html",controller:"SalesforceViewConfigurationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("SalesforceViewConfigurationViewCtrl",["$scope","$filter","$stateParams","$translate","socket","variable","xAlert","SalesforceAccount","SalesforceConfiguration","SalesforceField","Variable",function(a,b,c,d,e,f,g,h,i,j,k){a.$on("$destroy",function(){e.unsyncUpdates("salesforce_field")}),a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:300,scrollInertia:0},a.fieldType=[{type:"string",title:"String"},{type:"variable",title:"Variable"},{type:"customVariable",title:"Custom Variable"}],a.descFieldType=[{type:"string",title:"String"},{type:"keyValue",title:"Key Value"}],a.groupVariableByGroup=function(a){switch(a.group){case"voice_queue":return"Voice: Queue";default:return"Other"}},a.initView=function(){a.configurationName="",a.subjectConfig=[],a.descriptionConfig=[],a.fieldConfig=[],a.variables=f},a.getConfiguration=function(){return i.get({accountId:c.id,id:c.configurationId}).$promise.then(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,e.socket.on("salesforce_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})})["catch"](function(a){g.error(a)})},a.getCustomVariables=function(){return k.get().$promise.then(function(b){a.customVariables=b.rows})["catch"](function(a){g.error(a)})},a.getFields=function(){return h.fields({id:c.id}).$promise.then(function(c){a.accountFields=_.sortByOrder(b("salesforce")(c),"name","asc"),console.log(a.accountFields)})["catch"](function(a){g.error(a)})},a.addItem=function(b){var d={};switch(b){case"subject":case"description":d={type:"string",content:""};break;case"field":d={content:""}}return i.save({accountId:c.id,id:c.configurationId,controller:b},d).$promise.then(function(c){switch(b){case"subject":a.subjectConfig.push(c);break;case"description":a.descriptionConfig.push(c);break;case"field":a.fieldConfig.push(c)}})["catch"](function(a){g.error(a)})},a.changeType=function(b){"variable"===b.type?(b.content="",b.variableName=""):"string"===b.type?(b.VariableId=null,b.variableName=""):"customVariable"===b.type&&(b.VariableId=null,b.content=""),a.updateField(b)},a.updateField=function(a){return j.update({accountId:c.id,configurationId:c.configurationId,id:a.id},a).$promise.then(function(){})["catch"](function(a){g.error(a)})},a.removeItem=function(a){return j["delete"]({accountId:c.id,configurationId:c.configurationId,id:a.id}).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){g.error(a)})},a.changeDescType=function(b){"keyValue"===b.type?(b.content="","string"===b.keyType?(b.VariableId=null,b.variableName=""):"variable"===b.keyType?(b.keyContent="",b.VariableId=null):"customVariable"===b.keyType&&(b.keyContent="",b.variableName="")):"string"===b.type&&(b.VariableId=null,b.variableName="",b.key="",b.keyContent=""),a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);if(c)switch(c.type){case"picklist":return c.picklistValues;default:return}}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.view.configurations.view",{url:"/view/:configurationId",templateUrl:"app/salesforce/view/configuration/view/view.html",controller:"SalesforceViewConfigurationViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("SalesforceViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","$filter","SalesforceAccount",function(a,b,c,d,e,f,g,h,i,j,k){a.initView=function(){return k.get({id:c.id}).$promise.then(function(b){a.account=b})["catch"](function(a){h.error(a)})},a.updateItem=function(){return k.update({id:c.id},a.account).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE")+".","success")})["catch"](function(a){h.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.view",{url:"/view/:id",templateUrl:"app/salesforce/view/view.html",controller:"SalesforceViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.salesforce.view.account",{url:"/account",templateUrl:"app/salesforce/view/view.account.html"})}]),angular.module("xCallyShuttleApp").controller("SalesforceWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/salesforce/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/salesforce/list")}).error(function(a){e.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.wizard",{url:"/wizard",templateUrl:"app/salesforce/wizard/wizard.html",controller:"SalesforceWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("License",["$resource",function(a){return a("/api/licenses/:id/:controller",{id:"@id"},{request:{method:"POST",params:{id:"request"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license",{url:"/license",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("LicenseUpdateCtrl",["$scope","$translate","$uibModalInstance","xAlert","Setting",function(a,b,c,d,e){a.form={},a.item={},a.getLicense=function(){return e.get({id:1}).$promise.then(function(b){a.item.license=b.license})["catch"](function(a){d.show(a.data.message,"danger")})},a.update=function(){return e.update({id:1},a.item).$promise.then(function(a){d.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").controller("LicenseViewCtrl",["$scope","$rootScope","$translate","License","xAlert","$window","$uibModal",function(a,b,c,d,e,f,g){a.initView=function(){return d.get(function(b){a.item=b.license})},a.submitRequest=function(){return d.request(a.item,function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")},function(a){switch(a.status){case 304:e.show(a.statusText,"info");break;default:e.show(a.statusText,"danger")}})},a.updateLicense=function(){var a=g.open({animation:!0,templateUrl:"app/setting/license/view/update.modal.html",controller:"LicenseUpdateCtrl"});a.result.then(function(){f.location.reload()})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license.view",{url:"/view",templateUrl:"app/setting/license/view/view.html",controller:"LicenseViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/pricing-tables.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Externip",["$resource",function(a){return a("/api/network/externips/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("Localnet",["$resource",function(a){return a("/api/network/localnets/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.network",{url:"/network",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ExternipCtrl",["$scope","$uibModal","gridOptions","Externip",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"network_externip.csv",columnDefs:[{name:"value"},{name:"action",buttons:[{"class":"blue-hoki",onClick:"grid.appScope.createItem(row.entity)",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(d,b,a)},a.createItem=function(c){var d=b.open({animation:!0,templateUrl:"app/setting/network/view/externip/externip.create.modal.html",controller:"ExternipCreateCtrl",resolve:{item:c}});d.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ExternipCreateCtrl",["$scope","$translate","$uibModalInstance","$stateParams","Externip","xAlert","item",function(a,b,c,d,e,f,g){a.initModal=function(){a.form={},a.item=g||{},a.title=g?b.instant("APPLICATION_EDIT_EXTERNIP"):b.instant("APPLICATION_NEW_EXTERNIP")},a.save=function(){return g?e.update({id:a.item.id},a.item).$promise.then(function(a){f.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){f.error(a)}):e.save({},a.item).$promise.then(function(a){f.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){f.error(a)})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.network.view.externip",{url:"/externip",templateUrl:"app/setting/network/view/externip/externip.html",controller:"ExternipCtrl"})}]),angular.module("xCallyShuttleApp").controller("LocalnetCtrl",["$scope","gridOptions","Localnet","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"network_localnet.csv",columnDefs:[{name:"value"},{name:"action",buttons:[{"class":"blue-hoki",onClick:"grid.appScope.createItem(row.entity)",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a)},a.createItem=function(b){var c=d.open({animation:!0,templateUrl:"app/setting/network/view/localnet/localnet.create.modal.html",controller:"LocalnetCreateCtrl",resolve:{item:b}});c.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("LocalnetCreateCtrl",["$scope","$translate","$uibModalInstance","$stateParams","Localnet","xAlert","item",function(a,b,c,d,e,f,g){a.initModal=function(){if(a.form={},a.item=g||{},a.title=g?b.instant("APPLICATION_EDIT_LOCALNET"):b.instant("APPLICATION_NEW_LOCALNET"),g&&g.value){var c=a.item.value.split("/");c.length>1&&(a.item.address=c[0],a.item.mask=c[1])}},a.save=function(){var d=a.item.address+"/"+a.item.mask;return g?e.update({id:a.item.id},{value:d}).$promise.then(function(a){f.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){f.error(a)}):e.save({},{value:d}).$promise.then(function(a){f.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){f.error(a)})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.network.view.localnet",{url:"/localnet",templateUrl:"app/setting/network/view/localnet/localnet.html",controller:"LocalnetCtrl"})}]),angular.module("xCallyShuttleApp").controller("NetworkViewCtrl",["$scope","gridOptions","Localnet","Externip",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"network_localnet.csv",columnDefs:[{name:"value"},{name:"action",buttons:[{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.network.view",{url:"/view",templateUrl:"app/setting/network/view/view.html",controller:"NetworkViewCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting",{url:"/setting",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:18}}})}]),angular.module("xCallyShuttleApp").factory("Setting",["$resource",function(a){return a("/api/settings/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("Smtp",["$resource",function(a){return a("/api/mail/servers/out/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp",{url:"/smtp",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SmtpViewCtrl",["$scope","$stateParams","$translate","socket","MailServerOut","Setting","MailAccount","xAlert","usSpinnerService",function(a,b,c,d,e,f,g,h,i){a.initMailAccounts=function(){return e.query().$promise.then(function(b){a.servers=b})["catch"](function(a){h.show(a.message,"danger")})},a.initView=function(){a.smtpDisabled=!1,a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.CONST_TIMEOUT=3e4,a.item={type:"custom",account:{ssl:!1}},e.get({id:"service"}).$promise.then(function(b){b&&(a.item.account=b,d.socket.on("mail_server_out:state",function(b){if(b.id===a.item.account.id)switch(a.item.account.state=b.state,a.item.account.source=JSON.parse(b.source),b.state){case"CONNECTING":break;default:i.stop("spinner-grid"),a.smtpDisabled=!1}}),a.item.account.MailAccountId?a.item.type="account":(a.item.type="custom",a.item.account.ssl=!1))})["catch"](function(a){h.show(a.message,"danger")})},a.updateItem=function(){return a.item.account.service=!0,a.item.account.id?f.update({id:"smtp",controller:a.item.account.id},a.item.account).$promise.then(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")}):f.save({id:"smtp"},a.item.account).$promise.then(function(b){a.item.account=b,h.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})},a.test=function(){return i.spin("spinner-grid"),a.smtpDisabled=!0,e.update({id:a.item.account.id},{state:"CONNECTING"}).$promise["catch"](function(a){console.error(a)})["finally"](function(){i.stop("spinner-grid")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp.view",{url:"/view",templateUrl:"app/setting/smtp/view/view.html",controller:"SmtpViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("UpdateListCtrl",["$scope","gridOptions","$uibModal","$location","Update",function(a,b,c,d,e){a.initCounter=function(){a.$on("timer-stopped",function(a,b){console.log("Timer Stopped - data = ",b),d.path("/dashboard/voice")})},a.initView=function(){var c={exporterCsvFilename:"updates.csv",enableFiltering:!1,enableSorting:!1,enablePaginationControls:!1,enableSelectAll:!1,columnDefs:[{name:"message"},{width:125,name:"version",cellClass:"text-center ui-grid-vcenter"},{width:125,name:"createdAt",displayName:"APPLICATION_UPDATED_AT",cellClass:"text-center ui-grid-vcenter",cellTemplate:'
'}]};a.gridOptions=b.gridOptions(e,c,a)},a.pull=function(){c.open({animation:!0,templateUrl:"app/setting/update/list/list.pull.html",controller:"UpdateListPullCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates.list",{url:"/list",templateUrl:"app/setting/update/list/list.html",controller:"UpdateListCtrl"}).state("main.setting.updates.landing",{url:"/landing",templateUrl:"app/setting/update/list/landing.html",controller:"UpdateListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/error.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("UpdateListPullCtrl",["$scope","$uibModalInstance","$translate","$location","Update",function(a,b,c,d,e){a.modal={dismissable:!0,title:"Confirm Checkout",html:"Are you sure you want to checkout?",buttons:[{classes:"btn btn-success",text:"Checkout",click:function(){return e.pull().$promise["finally"](function(){b.dismiss("close"),d.path("/setting/updates/landing")})}},{classes:"btn default",text:"Cancel",click:function(){b.dismiss("cancel")}}]}}]),angular.module("xCallyShuttleApp").factory("Update",["$resource",function(a){return a("/api/updates/:id/:controller",{id:"@id"},{pull:{method:"GET",params:{id:"pull"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates",{url:"/updates",template:"
","abstract":!0,data:{permissions:{only:["hasUpdate"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCtrl",["$scope","$uibModal","$translate","SquareOdbc","gridOptions","xAlert",function(a,b,c,d,e,f){a.initView=function(){var b={exporterCsvFilename:"odbc.csv",columnDefs:[{name:"name"},{name:"dsn",displayName:"APPLICATION_ODBC"},{name:"description"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/square/odbc/view/{{row.entity.id}}/settings",name:"settings"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK",onClick:"grid.appScope.checkConnection(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=e.gridOptions(d,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/square/odbc/list/list.create.modal.html",controller:"SquareOdbcListCreateCtrl"});c.result.then(function(){a.gridOptions.getPage()})},a.checkConnection=function(a){return d.get({id:a,controller:"check"}).$promise.then(function(){f.show(c.instant("MESSAGE_CONNECTION_VERIFIED"),"success")})["catch"](function(){f.show(c.instant("MESSAGE_CONNECTION_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCreateCtrl",["$scope","$translate","$uibModalInstance","SquareOdbc","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.item.dsn||(a.item.dsn="DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion"),a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc.list",{url:"/list",templateUrl:"app/square/odbc/list/list.html",controller:"SquareOdbcListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc",{url:"/odbc",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SquareOdbc",["$resource",function(a){return a("/api/square/odbc/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcViewCtrl",["$scope","$translate","$stateParams","SquareOdbc","xAlert",function(a,b,c,d,e){a.odbc={},a.getOdbc=function(){return d.get({id:c.id}).$promise.then(function(b){a.odbc=b})["catch"](function(a){e.show(a.data.message,"danger")})},a.updateOdbc=function(){var f=angular.copy(a.odbc);return d.update({id:c.id},f).$promise.then(function(){e.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc.view",{url:"/view/:id",templateUrl:"app/square/odbc/view/view.html",controller:"SquareOdbcViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.square.odbc.view.settings",{url:"/settings",templateUrl:"app/square/odbc/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCtrl",["$scope","$uibModal","SquareProject","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"projects.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/square/projects/view/{{row.entity.id}}",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/square/project/list/list.create.modal.html",controller:"SquareProjectListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCreateCtrl",["$scope","$translate","$uibModalInstance","SquareProject","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.list",{url:"/list",templateUrl:"app/square/project/list/list.html",controller:"SquareProjectListCtrl",authenticate:!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects",{url:"/projects",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SquareProject",["$resource",function(a){return a("/api/square/projects/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SquareProjectViewCtrl",["$scope","$stateParams","Auth","xAlert","SquareProject",function(a,b,c,d,e){a.squareProject={},a.getProject=function(){return e.get({id:b.id}).$promise.then(function(b){a.squareProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!==a&&-1!==a.indexOf("Script error."));else{var e=new Image;e.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(f){d.show(f,"danger")}},b.token=c.getToken();var a=new EditorUi(new Editor);a.openString(b.preproduction,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}})})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.view",{url:"/view/:id",templateUrl:"app/square/project/view/view.html",controller:"SquareProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/square/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/square/js/Editor.js","assets/plugins/square/js/Graph.js","assets/plugins/square/js/EditorUi.js","assets/plugins/square/js/Actions.js","assets/plugins/square/js/Menus.js","assets/plugins/square/js/Sidebar.js","assets/plugins/square/js/Toolbar.js","assets/plugins/square/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.realtime",{url:"/realtime",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:14}}})}]),angular.module("xCallyShuttleApp").factory("ReportSquare",["$resource",function(a){return a("/api/report/square/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ReportSquareDetail",["$resource",function(a){return a("/api/report/square/details/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SquareRealtimeViewGeneralCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","ReportSquare","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j){function k(b){return h.spin("spinner-grid"),g.get(m).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=b.rows})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){b&&l(),h.stop("spinner-grid")})}function l(){e.socket.on("report_square:save",function(b){if(b.leaveAt){var c=_.remove(a.gridOptions.data,{id:b.id});c&&k()}else{var d=_.find(a.gridOptions.data,{id:b.id});if(!d&&a.gridOptions.data.length{{hhours}}:{{mminutes}}:{{sseconds}}
',enableSorting:!1,enableColumnMenu:!1,enableFiltering:!1}],data:[],gridMenuTitleFilter:function(a){var b=i.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){n(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?m.order=null:m.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),k()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){m.offset=(a-1)*b,m.limit=b,k()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?m[a.name]=a.filters[0].term:delete m[a.name]}),k()})}},k(!0)};var n=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("report_square")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.realtime.view.general",{url:"/general",templateUrl:"app/square/realtime/view/general/general.html",controller:"SquareRealtimeViewGeneralCtrl"})}]),angular.module("xCallyShuttleApp").controller("SquareRealtimeViewCtrl",["$scope",function(a){}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){ -a.state("main.square.realtime.view",{url:"/view",templateUrl:"app/square/realtime/view/view.html",controller:"SquareRealtimeViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("SquareRecordingListCtrl",["$scope","SquareRecording","gridOptions",function(a,b,c){a.SquareRecording=b;a.initView=function(){var d={exporterCsvFilename:"recordings.csv",rowHeight:30,columnDefs:[{name:"uniqueid"},{name:"callerid",displayName:"APPLICATION_CALLERIDNUM"},{name:"filename"},{name:"extension"},{name:"projectName",displayName:"APPLICATION_PROJECT"},{name:"audio",displayName:"",width:225,enableSorting:!1,enableFiltering:!1,buttons:[{directive:''}]},{name:"action",width:150,buttons:[{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.filename || row.entity.uniqueid, row.entity.id)"},{directive:''}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.recordings.list",{url:"/list",templateUrl:"app/square/recording/list/list.html",controller:"SquareRecordingListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.recordings",{url:"/recordings",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SquareRecording",["$resource",function(a){return a("/api/square/recordings/:id/:controller",{id:"@id"},{update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square",{url:"/square",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:14}}})}]),angular.module("xCallyShuttleApp").factory("Agent",["$resource",function(a){return a("/api/agents/:id/:controller/:controller1",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents",{url:"/agents",template:"
","abstract":!0,data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:4}}})}]),angular.module("xCallyShuttleApp").controller("AgentListCtrl",["$scope","$timeout","Agent","Auth","gridOptions",function(a,b,c,d,e){a.initView=function(){a.Auth=d;var b={exporterCsvFilename:"agents.csv",columnDefs:[{name:"fullname"},{name:"name",displayName:"APPLICATION_USERNAME"},{name:"internal"},{name:"email"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/agents/view/{{row.entity.id}}/account",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=e.gridOptions(c,b,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.list",{url:"/list",templateUrl:"app/staff/agent/list/list.html",controller:"AgentListCtrl",data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:4}}})}]),angular.module("xCallyShuttleApp").controller("AgentViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$cookieStore","Agent","FileUploader","Auth","User",function(a,b,c,d,e,f,g,h,i,j){a.Auth=i,a.radioSwitch={isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"default",onColor:"success"},a.updatePassword=function(){var b={newPassword:a.agent.newPwd};return i.isAdmin()?b.id=e.id:b.oldPassword=a.agent.currentPwd,j.changePassword(b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})};var k=a.uploader=new h({url:"api/users/"+e.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});k.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),k.onSuccessItem=function(b,e){a.agent.userpic=e.userpic,a.agent.id===i.getCurrentUser().id&&(i.getCurrentUser().userpic=e.userpic),c.show(d.instant("MESSAGE_WELL_DONE"),"success")},k.onErrorItem=function(){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},k.onCompleteAll=function(){k.clearQueue()},a.initView=function(){return g.get({id:e.id}).$promise.then(function(b){a.agent=b,a.agent.transport=a.agent.transport?a.agent.transport.split(","):[],a.agent.allow=a.agent.allow?a.agent.allow.split(";"):[],a.agent.nat=a.agent.nat?a.agent.nat.split(","):[]})["catch"](function(a){c.show(a.message,"danger")})},a.patchItem=function(){return g.update({id:e.id},{chatCapacity:a.agent.chatCapacity,mailCapacity:a.agent.mailCapacity,faxCapacity:a.agent.faxCapacity,smsCapacity:a.agent.smsCapacity}).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.agent);return delete b.password,delete b.md5secret,b.transport=b.transport.join(","),b.allow=b.allow.join(";"),b.nat=b.nat.join(","),g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.view",{url:"/view/:id",templateUrl:"app/staff/agent/view/view.html",controller:"AgentViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]},data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:4}}}).state("main.staff.agents.view.account",{url:"/account",templateUrl:"app/staff/agent/view/view.account.html",data:{permissions:{only:["admin","user","agent"],redirectTo:"landing",id:4}},resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}}).state("main.staff.agents.view.voice",{url:"/voice",templateUrl:"app/staff/agent/view/view.voice.html",data:{permissions:{only:["admin","user"],redirectTo:"landing",id:4}}}).state("main.staff.agents.view.chat",{url:"/chat",templateUrl:"app/staff/agent/view/view.chat.html",data:{permissions:{only:["admin","user"],redirectTo:"landing",id:4}}}).state("main.staff.agents.view.mail",{url:"/mail",templateUrl:"app/staff/agent/view/view.mail.html",data:{permissions:{only:["admin","user"],redirectTo:"landing",id:4}}}).state("main.staff.agents.view.fax",{url:"/fax",templateUrl:"app/staff/agent/view/view.fax.html",data:{permissions:{only:["admin","user"],redirectTo:"landing",id:4}}}).state("main.staff.agents.view.sms",{url:"/sms",templateUrl:"app/staff/agent/view/view.sms.html",data:{permissions:{only:["admin","user"],redirectTo:"landing",id:4}}}).state("main.staff.agents.view.motionbar",{url:"/motionbar",templateUrl:"app/staff/agent/view/view.motionbar.html",data:{permissions:{only:["admin","user"],redirectTo:"landing",id:4}}})}]),angular.module("xCallyShuttleApp").controller("AgentWizardCtrl",["$scope","$rootScope","Agent","Setting","xAlert","$location","$translate","$http","WizardHandler",function(a,b,c,d,e,f,g,h,i){a.forms={info:void 0,voice:void 0},a.item={role:"agent",allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},a.next=function(){i.wizard().next()},a.exitValidation=function(a){return a},a.getFirstFreeInternal=function(){return d.get({controller:"internal"}).$promise.then(function(b){a.item.internal=b.value})["catch"](function(a){e.show(a.data.message,"danger")})},a.createItem=function(){var b=angular.copy(a.item);return b.transport&&(b.transport=b.transport.join(",")),a.item.allow&&(b.allow=b.allow.join(";")),c.save(b).$promise.then(function(){f.path("/staff/agents/list")})["catch"](function(a){console.log(a),e.show(a.message||a.data.message,"danger")})},a.createItems=function(){var b=[];a.item.transport&&(a.item.transport=a.item.transport.join(",")),a.item.allow&&(a.item.allow=a.item.allow.join(";"));for(var d=0;d
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TeamCreateCtrl",["$scope","$uibModalInstance","Team","xAlert",function(a,b,c,d){a.form={},a.item={},a.ok=function(){return c.save(a.item).$promise.then(function(){b.close(a.item)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("TeamListCtrl",["$scope","Team","gridOptions","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"teams.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"{{row.entity.defaultEntry ? 'blue-hoki disabled' : 'blue-hoki'}}",href:"/staff/teams/view/{{row.entity.id}}/settings",name:"profile"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){d.open({animation:!0,templateUrl:"app/staff/team/list/create.modal.html",controller:"TeamCreateCtrl"}).result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams.list",{url:"/list",templateUrl:"app/staff/team/list/list.html",controller:"TeamListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Team",["$resource",function(a){return a("/api/teams/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams",{url:"/teams",template:"
","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"landing"}}})}]),angular.module("xCallyShuttleApp").controller("TeamViewCtrl",["$scope","$http","$stateParams","$translate","Team","Agent","xAlert",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return console.log("agents",b),e.save({id:a.team.id,controller:"agents"},{agents:b})},deselect:function(b){return e["delete"]({id:a.team.id,controller:"agents",agents:b})}}};a.initView=function(){return e.get({id:c.id}).$promise.then(function(b){a.team=b})["catch"](function(a){g.show(a.message,"danger")})},a.initAgents=function(){return f.get().$promise.then(function(b){return a.agents=b.rows,e.get({id:c.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindTeam(_.map(b.rows,"id"),_.map(a.agents,function(a){return{id:a.id,name:a.name,fullname:a.fullname,internal:a.internal}}),h)})["catch"](function(a){g.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.team);return e.update({id:c.id},b).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams.view",{url:"/view/:id",templateUrl:"app/staff/team/view/view.html",controller:"TeamViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.staff.teams.view.agents",{url:"/agents",templateUrl:"app/staff/team/view/view.agents.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]}])}]}}).state("main.staff.teams.view.settings",{url:"/settings",templateUrl:"app/staff/team/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TelephoneListCtrl",["$scope","Telephone","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"telephones.csv",columnDefs:[{name:"fullname"},{name:"name"},{name:"internal"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/telephones/view/{{row.entity.id}}/account",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.list",{url:"/list",templateUrl:"app/staff/telephone/list/list.html",controller:"TelephoneListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Telephone",["$resource",function(a){return a("/api/telephones/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones",{url:"/telephones",template:"
","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"landing"}}})}]),angular.module("xCallyShuttleApp").controller("TelephoneViewCtrl",["$scope","$http","$stateParams","$translate","$cookieStore","Auth","xAlert","Telephone",function(a,b,c,d,e,f,g,h){a.initView=function(){return a.Auth=f,a.forms={},h.get({id:c.id}).$promise.then(function(b){delete b.password,a.item=b,a.item.transport=a.item.transport?a.item.transport.split(","):[],a.item.allow=a.item.allow?a.item.allow.split(";"):[]})["catch"](function(a){g.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.item);return b.transport=b.transport.join(","),b.allow=b.allow.join(";"),h.update(b).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.view",{url:"/view/:id",templateUrl:"app/staff/telephone/view/view.html",controller:"TelephoneViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.staff.telephones.view.account",{url:"/account",templateUrl:"app/staff/telephone/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}}).state("main.staff.telephones.view.voice",{url:"/voice",templateUrl:"app/staff/telephone/view/view.voice.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("TelephoneWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert","$translate","Telephone","Setting",function(a,b,c,d,e,f,g,h){a.forms={},a.item={allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.getFirstFreeInternal=function(){return h.get({controller:"internal"}).$promise.then(function(b){a.item.internal=b.value})["catch"](function(a){e.show(a.data.message,"danger")})},a.createItem=function(){var b=angular.copy(a.item);return b.transport&&(b.transport=b.transport.join(",")),a.item.allow&&(b.allow=b.allow.join(";")),g.save(b).$promise.then(function(){c.path("/staff/telephones/list")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.wizard",{url:"/wizard",templateUrl:"app/staff/telephone/wizard/wizard.html",controller:"TelephoneWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("UserListCtrl",["$scope","$timeout","User","Auth","gridOptions",function(a,b,c,d,e){function f(a){if(a){var b=_.words(a),c=_.map(b,function(a){return a?a[0]:""});return c.join("").toUpperCase()}return!1}a.getUserAvatar=function(a,c,d){b(function(){angular.element("#userImg"+a).avatar({useGravatar:!1,initials:d?[]:f(c),fallbackImage:"api/users/avatar/"+d,size:80})})},a.isAdmin=function(a){return"admin"===a},a.initView=function(){var b={exporterCsvFilename:"users.csv",columnDefs:[{name:"fullname"},{name:"name",displayName:"APPLICATION_USERNAME"},{name:"internal"},{name:"email"},{name:"description"},{name:"action",width:200,buttons:[{"class":"blue-hoki",href:"/staff/users/view/{{row.entity.id}}/account",name:"profile"},{"class":"green-meadow",href:"/staff/users/view/{{row.entity.id}}/permit/voice",name:"permits",hide:"grid.appScope.isAdmin(row.entity.role)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=e.gridOptions(c,b,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.list",{url:"/list",templateUrl:"app/staff/user/list/list.html",controller:"UserListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Module",["$resource",function(a){return a("/api/modules/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("User",["$resource",function(a){return a("/api/users/:id/:controller/:controller2/:controller3",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"},me:{method:"GET",params:{id:"me"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users",{url:"/users",template:"
","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"landing"}}})}]),angular.module("xCallyShuttleApp").controller("UserViewCtrl",["$scope","$stateParams","$cookieStore","$translate","FileUploader","User","Auth","xAlert","MailQueue","VoiceQueue","ChatQueue","FaxQueue","SmsQueue","Team","Module","$location",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){function q(b){var c=_.find(a.modules,{id:b.ModuleId});if(b.status===!0)c.status=!0;else{var d=_.filter(a.modules,{ModuleId:b.ModuleId,status:!0});d.length||(c.status=!1)}c.ModuleId&&q(c)}function r(b,c){b.forEach(function(b){b.status=c;var d=_.filter(a.modules,{ModuleId:b.id});d.length&&r(d,c)})}a.Auth=g,a._=_,a.moduleSwitch={onText:"On",offText:"Off",isActive:!0,size:"mini",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.initVoiceQueues=function(){var a={},c={};return j.get().$promise.then(function(b){return a.queues=_.map(b.rows,function(a){return{name:a.name}}),i.get().$promise}).then(function(){return f.query({id:b.id,controller:"allowed",controller2:"voice",controller3:"queues"}).$promise}).then(function(a){c.queues=_.map(a,function(a){return{name:a.name}})}).then(function(){ComponentsDropdowns.bindPermit(a,c,"voice",b.id,f)})["catch"](function(a){console.error(a)})},a.initChatQueues=function(){var a={},c={};return k.get().$promise.then(function(b){return a.queues=_.map(b.rows,function(a){return{id:a.id,name:a.name}}),i.get().$promise}).then(function(){return f.query({id:b.id,controller:"allowed",controller2:"chat",controller3:"queues"}).$promise}).then(function(a){c.queues=_.map(a,function(a){return{id:a.id,name:a.name}})}).then(function(){ComponentsDropdowns.bindPermit(a,c,"chat",b.id,f)})["catch"](function(a){console.error(a)})},a.initMailQueues=function(){var a={},c={};return i.get().$promise.then(function(b){return a.queues=_.map(b.rows,function(a){return{id:a.id,name:a.name}}),i.get().$promise}).then(function(){return f.query({id:b.id,controller:"allowed",controller2:"mail",controller3:"queues"}).$promise}).then(function(a){c.queues=_.map(a,function(a){return{id:a.id,name:a.name}})}).then(function(){ComponentsDropdowns.bindPermit(a,c,"mail",b.id,f)})["catch"](function(a){console.error(a)})},a.initSmsQueues=function(){var a={},c={};return m.get().$promise.then(function(b){return a.queues=_.map(b.rows,function(a){return{id:a.id,name:a.name}}),m.get().$promise}).then(function(){return f.query({id:b.id,controller:"allowed",controller2:"sms",controller3:"queues"}).$promise}).then(function(a){console.log("permits",a),c.queues=_.map(a,function(a){return{id:a.id,name:a.name}})}).then(function(){ComponentsDropdowns.bindPermit(a,c,"sms",b.id,f)})["catch"](function(a){console.error(a)})},a.initFaxQueues=function(){var a={},c={};return l.get().$promise.then(function(b){return a.queues=_.map(b.rows,function(a){return{id:a.id,name:a.name}}),i.get().$promise}).then(function(){return f.query({id:b.id,controller:"allowed",controller2:"fax",controller3:"queues"}).$promise}).then(function(a){c.queues=_.map(a,function(a){return{id:a.id,name:a.name}})}).then(function(){ComponentsDropdowns.bindPermit(a,c,"fax",b.id,f)})["catch"](function(a){console.error(a)})},a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.user=b,a.user.transport=a.user.transport?a.user.transport.split(","):[],a.user.allow=a.user.allow?a.user.allow.split(";"):[]})["catch"](function(a){h.show(a.message,"danger")})},a.updateItem=function(){var c=angular.copy(a.user);return delete c.password,delete c.md5secret,c.transport=c.transport.join(","),c.allow=c.allow.join(";"),f.update({id:b.id},c).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})},a.updatePassword=function(){var c={newPassword:a.user.newPwd};return g.isAdmin()?c.id=b.id:c.oldPassword=a.user.currentPwd,f.changePassword(c).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})};var s=a.uploader=new e({url:"api/users/"+b.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+c.get("token")}});s.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),a.getModules=function(){return a.associatedModules=[],o.get().$promise.then(function(c){return a.modules=c.rows,f.query({id:b.id,controller:"allowed",controller2:"modules"}).$promise}).then(function(b){a.modules.forEach(function(a){_.find(b,{id:a.id})?a.status=!0:a.status=!1})})["catch"](function(a){h.show(a.message,"danger")})},a.updatePermissions=function(c){c.ModuleId&&q(c);var e=_.filter(a.modules,{ModuleId:c.id});return e&&r(e,c.status),f.save({id:b.id,controller:"allowed",controller2:"modules"},{modules:_.map(_.filter(a.modules,{status:!0}),"id")}).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.error(a)})},s.onSuccessItem=function(b,c){a.user.userpic=c.userpic,a.user.id===g.getCurrentUser().id&&(g.getCurrentUser().userpic=c.userpic),h.show(d.instant("MESSAGE_WELL_DONE"),"success")},s.onErrorItem=function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},s.onCompleteAll=function(){s.clearQueue()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.view",{url:"/view/:id",templateUrl:"app/staff/user/view/view.html",controller:"UserViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.staff.users.view.account",{url:"/account",templateUrl:"app/staff/user/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}}).state("main.staff.users.view.voice",{url:"/voice",templateUrl:"app/staff/user/view/view.voice.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.users.view.permit",{url:"/permit",templateUrl:"app/staff/user/view/view.permit.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}},cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}}).state("main.staff.users.view.permit.voice",{url:"/voice",templateUrl:"app/staff/user/view/view.permit.voice.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.users.view.permit.chat",{url:"/chat",templateUrl:"app/staff/user/view/view.permit.chat.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.chat"}}}).state("main.staff.users.view.permit.mail",{url:"/mail",templateUrl:"app/staff/user/view/view.permit.mail.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.mail"}}}).state("main.staff.users.view.permit.fax",{url:"/fax",templateUrl:"app/staff/user/view/view.permit.fax.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.fax"}}}).state("main.staff.users.view.permit.sms",{url:"/sms",templateUrl:"app/staff/user/view/view.permit.sms.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.sms"}}}).state("main.staff.users.view.permit.modules",{url:"/modules",templateUrl:"app/staff/user/view/view.permit.modules.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("UserWizardCtrl",["$scope","$location","WizardHandler","xAlert","$translate","User","Setting",function(a,b,c,d,e,f,g){a.forms={info:void 0,voice:void 0},a.item={role:"user",host:"dynamic",context:"from-sip"},a.next=function(){c.wizard().next()},a.exitValidation=function(a){return a},a.getFirstFreeInternal=function(){return g.get({controller:"internal"}).$promise.then(function(b){a.item.internal=b.value})["catch"](function(a){d.show(a.data.message,"danger")})},a.createItem=function(){return f.save(a.item).$promise.then(function(){b.path("/staff/users/list")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.wizard",{url:"/wizard",templateUrl:"app/staff/user/wizard/wizard.html",controller:"UserWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("SugarcrmListCtrl",["$scope","SugarcrmAccount","gridOptions","xAlert","$translate","Modal",function(a,b,c,d,e,f){a.initView=function(){var d={exporterCsvFilename:"sugarcrm_account.csv",columnDefs:[{name:"name",displayName:"APPLICATION_NAME"},{name:"username"},{name:"remoteUri",displayName:"APPLICATION_REMOTE_ADDRESS"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/sugarcrm/view/{{row.entity.id}}/account",name:"profile"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK",onClick:"grid.appScope.checkAccount(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.checkAccount=function(a){return b.get({id:a,controller:"check"}).$promise.then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(a){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.list",{url:"/list",templateUrl:"app/sugarcrm/list/list.html",controller:"SugarcrmListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm",{url:"/sugarcrm",template:"
","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmAccount",["$resource",function(a){return a("/api/sugarcrm/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmConfiguration",["$resource",function(a){return a("/api/sugarcrm/configurations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmField",["$resource",function(a){return a("/api/sugarcrm/fields/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SugarcrmViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("sugarcrm_configuration"),h.unsyncUpdates("sugarcrm_field")}),a.initView=function(){b.get("/api/sugarcrm/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/sugarcrm/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/sugarcrm/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("sugarcrm_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/sugarcrm/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"); -})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/sugarcrm/configurations",a.configuration).success(function(a){e.path("sugarcrm/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/sugarcrm/accounts/"+c.id+"/fields").success(function(b){a.accountFields=_.sortByOrder(f("sugarcrm")(_.toArray(b)),"name","asc"),_.forEach(b,function(a){a.options=_.toArray(a.options)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/sugarcrm/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("sugarcrm_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/sugarcrm/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/sugarcrm/fields/"+a.id,a).success(function(){}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){b.content="",a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);return c?c.options.length>0?c.options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.view",{url:"/view/:id",templateUrl:"app/sugarcrm/view/view.html",controller:"SugarcrmViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.sugarcrm.view.account",{url:"/account",templateUrl:"app/sugarcrm/view/view.account.html"}).state("main.sugarcrm.view.configurations",{url:"/configurations",templateUrl:"app/sugarcrm/view/view.configurations.html"}).state("main.sugarcrm.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/sugarcrm/view/view.configurationSettings.html",controller:"SugarcrmViewCtrl"}).state("main.sugarcrm.view.configuration",{url:"/configuration",templateUrl:"app/sugarcrm/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("SugarcrmkWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/sugarcrm/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/sugarcrm/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.wizard",{url:"/wizard",templateUrl:"app/sugarcrm/wizard/wizard.html",controller:"SugarcrmkWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("CannedAnswer",["$resource",function(a){return a("/api/answers/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers",{url:"/answers",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:13}}})}]),angular.module("xCallyShuttleApp").controller("AnswerListCtrl",["$scope","$uibModal","CannedAnswer","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"answers.csv",columnDefs:[{name:"key",displayName:"APPLICATION_NAME"},{name:"value"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/answers/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.key, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){b.open({animation:!0,templateUrl:"app/tools/answer/list/list.create.modal.html",controller:"AnswerListCreateCtrl"}).result.then(function(b){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("AnswerListCreateCtrl",["$scope","$translate","$uibModalInstance","CannedAnswer","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers.list",{url:"/list",templateUrl:"app/tools/answer/list/list.html",controller:"AnswerListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AnswerViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","CannedAnswer",function(a,b,c,d,e,f,g){a.getAnswer=function(){return g.get({id:e.id}).$promise.then(function(b){a.answer=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updateAnswer=function(){var b=angular.copy(a.answer);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers.view",{url:"/view/:id",templateUrl:"app/tools/answer/view/view.html",controller:"AnswerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.answers.view.settings",{url:"/settings",templateUrl:"app/tools/answer/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("Automation",["$resource",function(a){return a("/api/automations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations",{url:"/automations",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:13}}})}]),angular.module("xCallyShuttleApp").controller("AutomationListCtrl",["$scope","$http","$translate","xAlert","Automation","gridOptions",function(a,b,c,d,e,f){a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){var b={exporterCsvFilename:"Automations.csv",columnDefs:[{name:"name"},{name:"description"},{name:"channel"},{name:"status",cellTemplate:'
',width:100,enableFiltering:!1},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/automations/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=f.gridOptions(e,b,a)},a.updateItem=function(a){return e.update({id:a.id},a).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.list",{url:"/list",templateUrl:"app/tools/automation/list/list.html",controller:"AutomationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AutomationViewCtrl",["$scope","$stateParams","$http","$translate","xAlert","automations","Automation","$location",function(a,b,c,d,e,f,g,h){a.$automations=f,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.forms={general:{}},a.addCondition=function(b){a.automation[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.automation[b].splice(c,1)},a.addAction=function(){a.automation.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.automation.Actions.splice(b,1)},a.initView=function(){return g.get({id:b.id}).$promise.then(function(b){a.automation=b})["catch"](function(a){e.show(a.message,"danger"),h.path("/tools/automations/list")})},a.updateAutomation=function(){return g.update({id:b.id},a.automation).$promise.then(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),e.show(a.message,"danger")})},a.exitValidation=function(b){return console.log(b&&(a.automation.All.length||a.automation.Any.length)&&a.automation.Actions.length),!(!b||!a.automation.All.length&&!a.automation.Any.length||!a.automation.Actions.length)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.view",{url:"/view/:id",templateUrl:"app/tools/automation/view/view.html",controller:"AutomationViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.tools.automations.view.settings",{url:"/settings",templateUrl:"app/tools/automation/view/view.settings.html"}).state("main.tools.automations.view.routes",{url:"/routes",templateUrl:"app/tools/automation/view/view.routes.html"}).state("main.tools.automations.view.application",{url:"/application",templateUrl:"app/tools/automation/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("AutomationWizardCtrl",["$scope","$http","$location","xAlert","automations","WizardHandler","Automation",function(a,b,c,d,e,f,g){a.$automations=e,a.statusSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={All:[],Any:[],Actions:[]},a.forms={general:void 0,settings:void 0},a.addCondition=function(b){a.item[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.item[b].splice(c,1)},a.addAction=function(){a.item.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.item.Actions.splice(b,1)},a.$watch("item.channel",function(b,c){c&&(a.tempData[c].All=_.clone(a.item.All,!0),a.tempData[c].Any=_.clone(a.item.Any,!0),a.tempData[c].Actions=_.clone(a.item.Actions,!0)),a.item.All=a.tempData[b].All?a.tempData[b].All:[],a.item.Any=a.tempData[b].Any?a.tempData[b].Any:[],a.item.Actions=a.tempData[b].Actions?a.tempData[b].Actions:[]},!0),a.item.channel="mail",a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/tools/automations/list")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a},a.exitSettingsValidation=function(b){return!(!b||!a.item.All.length&&!a.item.Any.length||!a.item.Actions.length)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.wizard",{url:"/wizard",templateUrl:"app/tools/automation/wizard/wizard.html",controller:"AutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("Interval",["$resource",function(a){return a("/api/intervals/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals",{url:"/intervals",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:13}}})}]),angular.module("xCallyShuttleApp").controller("IntervalListCtrl",["$scope","$uibModal","Interval","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"intervals.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/intervals/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/interval/list/list.create.modal.html",controller:"IntervalListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("IntervalListCreateCtrl",["$scope","$translate","$uibModalInstance","Interval","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(b.instant(a.data.message),"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals.list",{url:"/list",templateUrl:"app/tools/interval/list/list.html",controller:"IntervalListCtrl"})}]),angular.module("xCallyShuttleApp").controller("IntervalViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","interval",function(a,b,c,d,e,f,g,h,i,j){function k(b){console.log(b);var c,d,e,f;c=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(d=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(d+="-"+b.wd_to)):d="*",b.md_from&&"always"!==b.md_from?(e=b.md_from,b.md_to&&"always"!==b.md_to&&(e+="-"+b.md_to)):e="*",b.m_from&&"always"!==b.m_from?(f=b.m_from,b.m_to&&"always"!==b.m_to&&(f+="-"+b.m_to)):f="*",void 0!==a.selectedSubInterval?a.interval.SubIntervals[a.selectedSubInterval].interval=c+","+d+","+e+","+f:a.subinterval.interval=c+","+d+","+e+","+f}a.$translate=d,a.$interval=j.interval,a.selectedSubInterval=void 0,a.gridOptions={columnDefs:[{name:"name",displayName:"APPLICATION_NAME",headerCellFilter:"translate"},{name:"interval",displayName:"APPLICATION_INTERVAL",headerCellFilter:"translate"},{name:"action",displayName:"APPLICATION_ACTION",headerCellFilter:"translate",width:125,cellTemplate:'{{\'APPLICATION_SETTINGS\' | translate}}{{\'APPLICATION_DELETE\' | translate}}'}]},a.forms={subinterval:void 0,general:void 0},a.initSubInterval=function(b){b&&(a.selectedSubInterval=void 0),a.subinterval={},a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0}},a.next=function(){h.wizard().next()},a.previous=function(){h.wizard().previous()},a.exitValidation=function(a){return a},a.deselectAndRedirect=function(b){a.selectedSubInterval=void 0,g.path(b)},a.getInterval=function(){b.get("/api/intervals/"+e.id).success(function(b){a.interval=b,a.gridOptions.data=b.SubIntervals}).error(function(a){console.error(a),g.path("/tools/intervals/list")})},a.openSubInterval=function(b){a.selectedSubInterval=b,g.path("/tools/intervals/view/"+e.id+"/subintervals/settings")},a.updateInterval=function(f){a.selectedSubInterval=void 0,b.put("/api/intervals/"+e.id,a.interval).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),f&&g.path("/tools/intervals/view/"+e.id+"/"+f)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getSubInterval=function(){void 0===a.selectedSubInterval&&g.path("/tools/intervals/list"),a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date)};var b,c=a.interval.SubIntervals[a.selectedSubInterval]?a.interval.SubIntervals[a.selectedSubInterval].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.splittedInterval.t_from=moment(b[0],"HH:mm"),a.splittedInterval.t_to=moment(b[1],"HH:mm"),a.splittedInterval.alwaysTime=!1):(a.splittedInterval.t_from=moment(new Date),a.splittedInterval.t_to=moment(new Date),a.splittedInterval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.splittedInterval.wd_from=b[0],a.splittedInterval.wd_to=b[1]?b[1]:"always"):(a.splittedInterval.wd_from="always",a.splittedInterval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.splittedInterval.md_from=b[0],a.splittedInterval.md_to=b[1]?b[1]:"always"):(a.splittedInterval.md_from="always",a.splittedInterval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.splittedInterval.m_from=b[0],a.splittedInterval.m_to=b[1]?b[1]:"always"):(a.splittedInterval.m_from="always",a.splittedInterval.m_to="always")}})},a.$watch("splittedInterval",function(a){a&&k(a)},!0),a.addSubInterval=function(){a.interval.SubIntervals.push(a.subinterval),a.updateInterval("subintervals")},a.deleteSubInterval=i.confirm["delete"](function(b){a.interval.SubIntervals.splice(b,1),a.updateInterval()})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals.view",{url:"/view/:id",templateUrl:"app/tools/interval/view/view.html",controller:"IntervalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.intervals.view.settings",{url:"/settings",templateUrl:"app/tools/interval/view/view.settings.html"}).state("main.tools.intervals.view.subintervals",{url:"/subintervals",templateUrl:"app/tools/interval/view/view.subintervals.html"}).state("main.tools.intervals.view.subinterval",{url:"/subinterval",templateUrl:"app/tools/interval/view/view.subinterval.html"}).state("main.tools.intervals.view.subintervals.settings",{url:"/settings",templateUrl:"app/tools/interval/view/view.subintervalSettings.html"})}]),angular.module("xCallyShuttleApp").controller("PauseListCtrl",["$scope","$log","$uibModal","$translate","Pause","gridOptions",function(a,b,c,d,e,f){a.initView=function(){var b={exporterCsvFilename:"pauses.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/pauses/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=f.gridOptions(e,b,a)},a.createItem=function(){var b=c.open({animation:!0,templateUrl:"app/tools/pause/list/list.create.modal.html",controller:"PauseListCreateCtrl"});b.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("PauseListCreateCtrl",["$scope","$translate","$uibModalInstance","Pause","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses.list",{url:"/list",templateUrl:"app/tools/pause/list/list.html",controller:"PauseListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Pause",["$resource",function(a){return a("/api/pauses/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses",{url:"/pauses",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:13}}})}]),angular.module("xCallyShuttleApp").controller("PauseViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","Pause",function(a,b,c,d,e,f,g){a.getPause=function(){return g.get({id:e.id}).$promise.then(function(b){a.pause=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updatePause=function(){var b=angular.copy(a.pause);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses.view",{url:"/view/:id",templateUrl:"app/tools/pause/view/view.html",controller:"PauseViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.pauses.view.settings",{url:"/settings",templateUrl:"app/tools/pause/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SchedulerListCtrl",["$scope","Scheduler","gridOptions","xAlert","$translate","socket",function(a,b,c,d,e,f){a._=_,a.switches={isActive:!0,size:"mini",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.scheduleTypes=[{name:"APPLICATION_REPORT_EXTRACTION",value:"report"},{name:"APPLICATION_HISTORY_MOVE",value:"history"},{name:"APPLICATION_DB_BACKUP",value:"backup"}],a.initView=function(){var d={exporterCsvFilename:"Schedules.csv",columnDefs:[{name:"name"},{name:"type"},{name:"description",cellTemplate:'
{{grid.appScope._.find(grid.appScope.scheduleTypes,{value:row.entity.type}).name | translate}}
'},{name:"active",cellTemplate:'
',enableFiltering:!1,enableSorting:!1},{name:"sendMail",displayName:"APPLICATION_SEND_MAIL",cellTemplate:'
',enableFiltering:!1,enableSorting:!1},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/scheduler/view/{{row.entity.id}}/settings",name:"settings"},{"class":"green-turquoise",name:"run",onClick:"grid.appScope.runSchedule(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.updateItem=function(a){return b.update({id:a.id},a).$promise.then(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.runSchedule=function(a){return b.get({id:a,controller:"run"}).$promise.then(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.scheduler.list",{url:"/list",templateUrl:"app/tools/scheduler/list/list.html",controller:"SchedulerListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Scheduler",["$resource",function(a){return a("/api/scheduler/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.scheduler",{url:"/scheduler",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:13}}})}]),angular.module("xCallyShuttleApp").controller("SchedulerViewCtrl",["$scope","xAlert","$translate","$stateParams","socket","$location","ReportTree","Scheduler","DefaultReport","CustomReport","$timeout",function(a,b,c,d,e,f,g,h,i,j,k){function l(b){var c;switch(b.cronType){case"daily":a.rangeExec.hour=Number(b.cron.split(" ")[1]),a.rangeExec.type=b.cronType;break;case"weekly":c=b.cron.split(" "),a.rangeExec.hour=Number(c[1]),c[4].split(",").forEach(function(b){a.rangeExec.weekDays.push(Number(b))}),a.rangeExec.type=b.cronType;break;case"monthly":c=b.cron.split(" "),a.rangeExec.hour=Number(c[1]),a.rangeExec.monthDay=Number(c[2]),a.rangeExec.type=b.cronType;break;case"currentDay":a.switchValues.today=!0}a.$watch("rangeExec",function(b){a.switchValues.today||m()},!0)}function m(){switch(a.schedule.cronType=a.rangeExec.type,a.rangeExec.type){case"daily":a.schedule.cron="* "+a.rangeExec.hour+" * * *";break;case"weekly":a.schedule.cron="* "+a.rangeExec.hour+" * * "+a.rangeExec.weekDays.join(",");break;case"monthly":a.schedule.cron="* "+a.rangeExec.hour+" "+a.rangeExec.monthDay+" * *"}}a.forms={},a.rangeExec={weekDays:[],monthDay:null,hour:0,type:null},a.initReports=function(){return a.reports=[],a.tempTodayCron=null,g.query().$promise.then(function(b){return a.defaultTreeData=JSON.parse(b[0].tree),a.customTreeData=JSON.parse(b[1].tree),i.get().$promise}).then(function(b){return b.rows.length&&(_.forEach(b.rows,function(b){b.parent="Default - "+_.find(a.defaultTreeData,{id:b.parent}).text,b.type="default"}),a.reports=a.reports.concat(b.rows)),j.get().$promise}).then(function(b){b.rows.length&&(_.forEach(b.rows,function(b){b.parent="Custom - "+_.find(a.customTreeData,{id:b.parent}).text,b.type="custom"}),a.reports=a.reports.concat(b.rows))})["catch"](function(a){b.error(a)})},a.initView=function(){return h.get({id:d.id}).$promise.then(function(b){a.schedule=b,l(b)}).then(function(){e.socket.on("schedule:update",function(b){a.schedule.id===b.id&&(a.schedule.active=b.active,a.schedule.sendMail=b.sendMail)})})["catch"](function(a){console.error(a),f.path("/tools/scheduler/list")})},a.refreshSlider=function(){k(function(){a.$broadcast("rzSliderForceRender"),a.refreshSlider=null})},a.monthDays=function(){for(var a=[],b=1;31>=b;b++)a.push(b);return a}(),a.hours=function(){for(var a=[],b=0;23>=b;b++)a.push(b);return a}(),a.setReportTree=function(b){a.schedule.reportType=b.type},a.validitySlider={ceil:24,floor:0,showTicks:!0},a.switchValues={today:!1},a.switches={isActive:!0,size:"mini",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.scheduleTypes=[{name:"APPLICATION_REPORT_EXTRACTION",value:"report"}],a.todayCron=[{name:"15 min",value:"*/15 * * * *"},{name:"30 min",value:"*/30 * * * *"},{name:"1 h",value:"0 * * * *"}],a.reportRanges=[{name:"APPLICATION_PREVIOUS_DAY",value:"yesterday"},{name:"APPLICATION_LAST_SEVEN_DAYS",value:"last7"},{name:"APPLICATION_LAST_THIRTY_DAYS",value:"last30"},{name:"APPLICATION_LAST_MONTH",value:"lastMonth"}],a.cronTypes=[{name:"APPLICATION_DAY",value:"daily"},{name:"APPLICATION_WEEK",value:"weekly"},{name:"APPLICATION_MONTH",value:"monthly"}],a.weekDays=[{name:"APPLICATION_MONDAY",value:1},{name:"APPLICATION_TUESDAY",value:2},{name:"APPLICATION_WEDNESDAY",value:3},{name:"APPLICATION_THURSDAY",value:4},{name:"APPLICATION_FRIDAY",value:5},{name:"APPLICATION_SATURDAY",value:6},{name:"APPLICATION_SUNDAY",value:0}],a.checkToday=function(){a.switchValues.today?(a.schedule.cron=angular.copy(a.tempTodayCron),a.schedule.cronType="currentDay"):(a.tempTodayCron=angular.copy(a.schedule.cron),a.schedule.cron=void 0,m())},a.updateSchedule=function(){return h.update({id:a.schedule.id},a.schedule).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),b.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.scheduler.view",{url:"/view/:id",templateUrl:"app/tools/scheduler/view/view.html",controller:"SchedulerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.scheduler.view.settings",{url:"/settings",templateUrl:"app/tools/scheduler/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SchedulerWizardCtrl",["$scope","WizardHandler","$location","xAlert","Scheduler","ReportTree","$translate","DefaultReport","CustomReport",function(a,b,c,d,e,f,g,h,i){function j(){switch(a.item.cronType=a.rangeExec.type,a.rangeExec.type){case"daily":a.item.cron="* "+a.rangeExec.hour+" * * *";break;case"weekly":a.item.cron="* "+a.rangeExec.hour+" * * "+a.rangeExec.weekDays.join(",");break;case"monthly":a.item.cron="* "+a.rangeExec.hour+" "+a.rangeExec.monthDay+" * *"}}a.forms={}, -a.item={validityStart:8,validityEnd:16},a.initReports=function(){return a.reports=[],f.query().$promise.then(function(b){return a.defaultTreeData=JSON.parse(b[0].tree),a.customTreeData=JSON.parse(b[1].tree),h.get().$promise}).then(function(b){return b.rows.length&&(_.forEach(b.rows,function(b){b.parent="Default - "+_.find(a.defaultTreeData,{id:b.parent}).text,b.type="default"}),a.reports=a.reports.concat(b.rows)),i.get().$promise}).then(function(b){b.rows.length&&(_.forEach(b.rows,function(b){b.parent="Custom - "+_.find(a.customTreeData,{id:b.parent}).text,b.type="custom"}),a.reports=a.reports.concat(b.rows))})["catch"](function(a){d.error(a)})},a.setReportTree=function(b){a.item.reportType=b.type},a.validitySlider={ceil:24,floor:0,showTicks:!0},a.switchValues={today:!1},a.switches={isActive:!0,size:"mini",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.scheduleTypes=[{name:"APPLICATION_REPORT_EXTRACTION",value:"report"}],a.todayCron=[{name:"15 min",value:"*/15 * * * *"},{name:"30 min",value:"*/30 * * * *"},{name:"1 h",value:"0 * * * *"}],a.reportRanges=[{name:"APPLICATION_PREVIOUS_DAY",value:"yesterday"},{name:"APPLICATION_LAST_SEVEN_DAYS",value:"last7"},{name:"APPLICATION_LAST_THIRTY_DAYS",value:"last30"},{name:"APPLICATION_LAST_MONTH",value:"lastMonth"}],a.cronTypes=[{name:"APPLICATION_DAY",value:"daily"},{name:"APPLICATION_WEEK",value:"weekly"},{name:"APPLICATION_MONTH",value:"monthly"}],a.weekDays=[{name:"APPLICATION_MONDAY",value:1},{name:"APPLICATION_TUESDAY",value:2},{name:"APPLICATION_WEDNESDAY",value:3},{name:"APPLICATION_THURSDAY",value:4},{name:"APPLICATION_FRIDAY",value:5},{name:"APPLICATION_SATURDAY",value:6},{name:"APPLICATION_SUNDAY",value:0}],a.tempTodayCron=null,a.checkToday=function(){a.switchValues.today?(a.item.cron=angular.copy(a.tempTodayCron),a.item.cronType="currentDay"):(a.tempTodayCron=angular.copy(a.item.cron),a.item.cron=void 0,j())},a.monthDays=function(){for(var a=[],b=1;31>=b;b++)a.push(b);return a}(),a.hours=function(){for(var a=[],b=0;23>=b;b++)a.push(b);return a}(),a.rangeExec={weekDays:[],monthDay:null,hour:0,type:null},a.$watch("rangeExec",function(b){a.switchValues.today||j()},!0),a.next=function(){b.wizard().next()},a.previous=function(){b.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){return e.save(a.item).$promise.then(function(){c.path("/tools/scheduler/list")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.scheduler.wizard",{url:"/wizard",templateUrl:"app/tools/scheduler/wizard/wizard.html",controller:"SchedulerWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("SoundListCtrl",["$scope","$http","socket","Modal","$q","FileUploader","$translate","xAlert","$cookieStore","$sce","Sound",function(a,b,c,d,e,f,g,h,i,j,k){a.Sound=k,a.isCollapsed=!0,a.downloadButtonContent='',a.downloadButtonClass="btn btn-xs blue-hoki",a["delete"]=d.confirm["delete"](function(a){b["delete"]("/api/sounds/"+a).success(function(a){}).error(function(a){console.log(a)})}),a.updateAudio=function(a,c){var d=e.defer();return b.put("/api/sounds/"+a,c).success(function(a){d.resolve()}).error(function(a){console.log(a.message),d.reject(a.message)}),d.promise},a.$on("$destroy",function(){c.unsyncUpdates("sound")}),a.initList=function(){b.get("/api/sounds").success(function(b){a.sounds=b.rows,b.rows.length||(a.isCollapsed=!1),c.syncUpdates("sound",a.sounds,function(){a.sounds.length||(a.isCollapsed=!1)})}).error(function(a){})};var l=a.uploader=new f({url:"/api/sounds",withCredentials:!0,headers:{Authorization:"Bearer "+i.get("token")}});l.filters.push({name:"customFilter",fn:function(a,b){return this.queue.length<10}}),l.onWhenAddingFileFailed=function(a,b,c){console.info("onWhenAddingFileFailed",a,b,c)},l.onAfterAddingFile=function(a){console.info("onAfterAddingFile",a)},l.onAfterAddingAll=function(a){console.info("onAfterAddingAll",a)},l.onBeforeUploadItem=function(a){console.info("onBeforeUploadItem",a)},l.onProgressItem=function(a,b){console.info("onProgressItem",a,b),a.isUploading=!0},l.onProgressAll=function(a){console.info("onProgressAll",a)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),a.isUploading=!1},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),a.responseMessage=b,a.isUploading=!1},l.onCancelItem=function(a,b,c,d){console.info("onCancelItem",a,b,c,d),a.isUploading=!1},l.onCompleteItem=function(a,b,c,d){console.info("onCompleteItem",a,b,c,d),a.isUploading=!1},l.onCompleteAll=function(){console.info("onCompleteAll")},console.info("uploader",l)}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.sounds.list",{url:"/list",templateUrl:"app/tools/sound/list/list.html",controller:"SoundListCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").factory("Sound",["$resource",function(a){return a("/api/sounds/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.sounds",{url:"/sounds",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:13}}})}]),angular.module("xCallyShuttleApp").controller("TagListCtrl",["$scope","$uibModal","Tag","gridOptions","$rootScope",function(a,b,c,d,e){a.initView=function(){var b={exporterCsvFilename:"tag.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/tags/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/tag/list/list.create.modal.html",controller:"TagListCreateCtrl"});c.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("TagListCreateCtrl",["$scope","$translate","$uibModalInstance","Tag","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags.list",{url:"/list",templateUrl:"app/tools/tag/list/list.html",controller:"TagListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Tag",["$resource",function(a){return a("/api/tags/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags",{url:"/tags",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:13}}})}]),angular.module("xCallyShuttleApp").controller("TagViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","Tag",function(a,b,c,d,e,f,g){a.getTag=function(){return g.get({id:e.id}).$promise.then(function(b){a.tag=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updateTag=function(){var b=angular.copy(a.tag);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags.view",{url:"/view/:id",templateUrl:"app/tools/tag/view/view.html",controller:"TagViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.tags.view.settings",{url:"/settings",templateUrl:"app/tools/tag/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TemplateListCtrl",["$scope","Template","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"templates.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/tools/templates/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.list",{url:"/list",templateUrl:"app/tools/template/list/list.html",controller:"TemplateListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Template",["$resource",function(a){return a("/api/templates/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates",{url:"/templates",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:13}}})}]),angular.module("xCallyShuttleApp").controller("TemplateViewCtrl",["$scope","$rootScope","$http","$translate","$stateParams","xAlert","Template","templateVariable",function(a,b,c,d,e,f,g,h){a.initItem=function(){CKEDITOR.plugins.addExternal("richparams","/assets/plugins/ckeditor-richparams/"),a.options={language:b.language,allowedContent:!0,entities:!1,contentsCss:"/assets/css/global/richparams.css",extraPlugins:"richparams",richparams:h,toolbar:[{name:"clipboard",items:["Cut","Copy","Paste","PasteText","PasteFromWord","-","Undo","Redo"]},{name:"links",items:["Link","Unlink","Anchor"]},{name:"insert",items:["Image","Table","HorizontalRule","SpecialChar"]},{name:"tools",items:["Maximize"]},{name:"document",items:["Source"]},"/",{name:"basicstyles",items:["Bold","Italic","Underline","Strike","Subscript","Superscript","-","RemoveFormat"]},{name:"paragraph",items:["NumberedList","BulletedList","-","Outdent","Indent","-","Blockquote"]},{name:"styles",items:["Styles","Format"]},"/",{name:"motion",items:["chat","mail"]}]},a.form={},a.item={},a.item=g.get({id:e.id})},a.updateItem=function(){return g.update(a.item).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.view",{url:"/view/:id",templateUrl:"app/tools/template/view/view.html",controller:"TemplateViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.templates.view.settings",{url:"/settings",templateUrl:"app/tools/template/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TemplateWizardCtrl",["$scope","$rootScope","$location","$http","WizardHandler","xAlert","Template","templateVariable",function(a,b,c,d,e,f,g,h){a.initWizard=function(){CKEDITOR.plugins.addExternal("richparams","/assets/plugins/ckeditor-richparams/"),a.options={language:b.language,allowedContent:!0,entities:!1,contentsCss:"/assets/css/global/richparams.css",extraPlugins:"richparams",richparams:h,toolbar:[{name:"clipboard",items:["Cut","Copy","Paste","PasteText","PasteFromWord","-","Undo","Redo"]},{name:"links",items:["Link","Unlink","Anchor"]},{name:"insert",items:["Image","Table","HorizontalRule","SpecialChar"]},{name:"tools",items:["Maximize"]},{name:"document",items:["Source"]},"/",{name:"basicstyles",items:["Bold","Italic","Underline","Strike","Subscript","Superscript","-","RemoveFormat"]},{name:"paragraph",items:["NumberedList","BulletedList","-","Outdent","Indent","-","Blockquote"]},{name:"styles",items:["Styles","Format"]},"/",{name:"motion",items:["chat","mail"]}]},a.item={},a.form={}},a.exitValidation=function(a){return a},a.createItem=function(){return g.save({name:a.item.name,description:a.item.description,subject:a.item.subject||null,html:a.item.html||null,text:a.item.text||null}).$promise.then(function(){c.path("/tools/templates/list")})["catch"](function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.wizard",{url:"/wizard",templateUrl:"app/tools/template/wizard/wizard.html",controller:"TemplateWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools",{url:"/tools",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TriggerListCtrl",["$scope","$http","$translate","Modal","xAlert","Trigger","gridOptions",function(a,b,c,d,e,f,g){a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){var b={exporterCsvFilename:"Triggers.csv",columnDefs:[{name:"name"},{name:"description"},{name:"channel"},{name:"status",cellTemplate:'
',width:100,enableFiltering:!1},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/triggers/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=g.gridOptions(f,b,a)},a.updateItem=function(a){return f.update({id:a.id},a).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.list",{url:"/list",templateUrl:"app/tools/trigger/list/list.html",controller:"TriggerListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Trigger",["$resource",function(a){return a("/api/triggers/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers",{url:"/triggers",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:13}}})}]),angular.module("xCallyShuttleApp").controller("TriggerViewCtrl",["$scope","$stateParams","$translate","xAlert","triggers","Trigger","$location",function(a,b,c,d,e,f,g){a.$triggers=e,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.forms={general:{}},a.addCondition=function(b){a.trigger[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.trigger[b].splice(c,1)},a.addAction=function(){a.trigger.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.trigger.Actions.splice(b,1)},a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.trigger=b})["catch"](function(a){d.show(a.message,"danger"),g.path("/tools/triggers/list")})},a.updateTrigger=function(){return f.update({id:b.id},a.trigger).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.exitValidation=function(b){return console.log(b&&(a.trigger.All.length||a.trigger.Any.length)&&a.trigger.Actions.length),!(!b||!a.trigger.All.length&&!a.trigger.Any.length||!a.trigger.Actions.length)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.view",{url:"/view/:id",templateUrl:"app/tools/trigger/view/view.html",controller:"TriggerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.tools.triggers.view.settings",{url:"/settings",templateUrl:"app/tools/trigger/view/view.settings.html"}).state("main.tools.triggers.view.routes",{url:"/routes",templateUrl:"app/tools/trigger/view/view.routes.html"}).state("main.tools.triggers.view.application",{url:"/application",templateUrl:"app/tools/trigger/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("TriggerWizardCtrl",["$scope","$http","$location","xAlert","triggers","WizardHandler","Trigger",function(a,b,c,d,e,f,g){a.$triggers=e,a.statusSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={All:[],Any:[],Actions:[]},a.forms={general:void 0,settings:void 0},a.addCondition=function(b){a.item[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.item[b].splice(c,1)},a.addAction=function(){a.item.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.item.Actions.splice(b,1)},a.$watch("item.channel",function(b,c){c&&(a.tempData[c].All=_.clone(a.item.All,!0),a.tempData[c].Any=_.clone(a.item.Any,!0),a.tempData[c].Actions=_.clone(a.item.Actions,!0)),a.item.All=a.tempData[b].All?a.tempData[b].All:[],a.item.Any=a.tempData[b].Any?a.tempData[b].Any:[],a.item.Actions=a.tempData[b].Actions?a.tempData[b].Actions:[]},!0),a.item.channel="voice",a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/tools/triggers/list")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a},a.exitSettingsValidation=function(b){return!(!b||!a.item.All.length&&!a.item.Any.length||!a.item.Actions.length)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.wizard",{url:"/wizard",templateUrl:"app/tools/trigger/wizard/wizard.html",controller:"TriggerWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("TrunkListCtrl",["$scope","Trunk","gridOptions","xAlert","$translate","socket",function(a,b,c,d,e,f){function g(){f.socket.on("trunk:update",function(b){var c=_.find(a.gridOptions.data,{name:b.name});c&&(c.status=b.status,c.peerstatus=b.peerstatus)})}a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){var d={exporterCsvFilename:"Trunks.csv",columnDefs:[{name:"name"},{name:"active",cellTemplate:'
'},{name:"host"},{name:"description"},{name:"status",cellTemplate:'
{{row.entity.status}}
'},{name:"peerstatus",cellTemplate:'
{{row.entity.peerstatus}}
'},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/trunks/view/{{row.entity.name}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.name)"}]}]};a.gridOptions=c.gridOptions(b,d,a,null,null,null,g)},a.updateItem=function(a){return b.update({id:a.name},a).$promise.then(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.list",{url:"/list",templateUrl:"app/tools/trunk/list/list.html",controller:"TrunkListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Trunk",["$resource",function(a){return a("/api/trunks/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks",{url:"/trunks",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:13}}})}]),angular.module("xCallyShuttleApp").controller("TrunkViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","Trunk","VoiceContext",function(a,b,c,d,e,f,g,h,i){a.activeSwitch={isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.initView=function(){return h.get({id:e.id}).$promise.then(function(b){b.nat=b.nat?b.nat.split(","):[],b.allow=b.allow?b.allow.split(";"):[],b.insecure=b.insecure?b.insecure.split(","):[],b.transport=b.transport?b.transport.split(","):[],a.trunk=b}).then(function(){f.socket.on("trunk:update",function(b){a.trunk.name===b.name&&(a.trunk.status=b.status)})})["catch"](function(a){console.error(a),g.path("/tools/trunks/list")})},a.updateTrunk=function(){""===a.trunk.password&&delete a.trunk.password;var b=angular.copy(a.trunk);return b.nat=b.nat.join(","),b.allow=b.allow.join(";"),b.insecure=b.insecure.join(","),b.transport=b.transport.join(","),h.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){c.show(a.data.message,"danger")})},a.getContexts=function(){return i.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.view",{url:"/view/:id",templateUrl:"app/tools/trunk/view/view.html",controller:"TrunkViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.trunks.view.settings",{url:"/settings",templateUrl:"app/tools/trunk/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TrunkWizardCtrl",["$scope","WizardHandler","$location","xAlert","Trunk",function(a,b,c,d,e){a.initWizard=function(){a.forms={},a.item={context:"from-voip-provider"}},a.next=function(){b.wizard().next()},a.previous=function(){b.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){return a.item.fromuser=a.item.defaultuser,a.item.fromdomain=a.item.host,e.save(a.item).$promise.then(function(){c.path("/tools/trunks/list")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.wizard",{url:"/wizard",templateUrl:"app/tools/trunk/wizard/wizard.html",controller:"TrunkWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VariableListCtrl",["$scope","$uibModal","Variable","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"variables.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/variables/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/variable/list/list.create.modal.html",controller:"VariableListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("VariableListCreateCtrl",["$scope","$translate","$uibModalInstance","Variable","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables.list",{url:"/list",templateUrl:"app/tools/variable/list/list.html",controller:"VariableListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Variable",["$resource",function(a){return a("/api/variables/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables",{url:"/variables",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:13}}})}]),angular.module("xCallyShuttleApp").controller("VariableViewCtrl",["$scope","$translate","$stateParams","xAlert","Variable",function(a,b,c,d,e){a.getVariable=function(){return e.get({id:c.id}).$promise.then(function(b){a.variable=b})["catch"](function(a){d.show(a.data.message,"danger")})},a.updateVariable=function(){return e.update({id:c.id},a.variable).$promise.then(function(){d.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables.view",{url:"/view/:id",templateUrl:"app/tools/variable/view/view.html",controller:"VariableViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.variables.view.settings",{url:"/settings",templateUrl:"app/tools/variable/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCloneModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCtrl",["$scope","$http","$translate","xAlert","Modal","$uibModal","$log","YourDashboard","gridOptions",function(a,b,c,d,e,f,g,h,i){a.initView=function(){var b={exporterCsvFilename:"voice_contexts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:220,buttons:[{"class":"green",href:"/tools/yourdashboards/show/{{row.entity.id}}",name:"view"},{"class":"blue-hoki",href:"/tools/yourdashboards/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{"class":"purple",name:"clone",onClick:"grid.appScope.clone(row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var b=f.open({animation:!0,templateUrl:"app/tools/yourdashboard/list/create.modal.html",controller:"YourdashboardListCreateModalCtrl"});b.result.then(function(b){return h.save(b).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),a.gridOptions.getPage()})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})},a.clone=function(b){var e=f.open({animation:!0,templateUrl:"app/tools/yourdashboard/list/clone.modal.html",controller:"YourdashboardListCloneModalCtrl"});e.result.then(function(e){return h.save({id:b,controller:"clone"},e).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),a.gridOptions.getPage()})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards.list",{url:"/list",templateUrl:"app/tools/yourdashboard/list/list.html",controller:"YourdashboardListCtrl"})}]),angular.module("xCallyShuttleApp").controller("LeaveEditedDashboardModalCtrl",["$scope","$uibModalInstance",function(a,b){a.close=function(){b.close()},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("YourdashboardShowCtrl",["$scope","$rootScope","localStorageService","xAlert","$translate","Auth","$stateParams","$location","$uibModal","$log","YourDashboard",function(a,b,c,d,e,f,g,h,i,j,k){a.Auth=f,a.editMode=!1,a.getDashboard=function(){return k.get({id:g.id}).$promise.then(function(b){var c={name:"dashboard",structure:"4-8",enableconfirmdelete:!0,maximizable:!0,collapsible:!0};b.model=JSON.parse(b.model||'{"title":"Dashboard"}'),b.editable=!(!f.isAdmin()||!b.editable),a.dashboard=_.merge(c,b)})["catch"](function(a){h.path("/tools/yourdashboards/list")})},a.$on("$locationChangeStart",function(b,c,d){if(a.editMode){b.preventDefault();var e=i.open({animation:!0,templateUrl:"app/tools/yourdashboard/show/leaveEditedDashboard.modal.html",controller:"LeaveEditedDashboardModalCtrl"});e.result.then(function(b){a.editMode=!1;var d=location.protocol+"//"+location.host;h.path(c.replace(d,""))},function(){j.info("Modal dismissed at: "+new Date)})}});var l=function(b,c,f){var h=angular.copy(a.dashboard);return h.name=a.dashboard.model.title,h.model=JSON.stringify(h.model),k.update({id:g.id},h).$promise.then(function(){d.show(e.instant("MESSAGE_DASHBOARD_SAVED")+"!","success"),a.editMode=!1})["catch"](function(b){d.show(b.message,"danger"),h.model=JSON.parse(h.model),h.name="dashboard",a.dashboard=h})};a.$on("adfDashboardChanged",l),a.$on("adfIsEditMode",function(){a.editMode=!0}),a.$on("destroy",function(){console.log("main dashboard")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards.show",{url:"/show/:id",templateUrl:"app/tools/yourdashboard/show/show.html",controller:"YourdashboardShowCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.radioSwitch={isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.getDashboard=function(){b.get("/api/dashboards/"+e.id).success(function(b){delete b.model,a.dashboard=b}).error(function(a){f.path("/tools/yourdashboards/list")})},a.updateDashboard=function(){ -var f=angular.copy(a.dashboard);b.put("/api/dashboards/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.dashboard=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards.view",{url:"/view/:id",templateUrl:"app/tools/yourdashboard/view/view.html",controller:"YourdashboardViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.yourdashboards.view.settings",{url:"/settings",templateUrl:"app/tools/yourdashboard/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("YourDashboard",["$resource",function(a){return a("/api/dashboards/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards",{url:"/yourdashboards",template:"
","abstract":!0,data:{permissions:{only:["admin","user"],redirectTo:"landing",id:2}}})}]),angular.module("xCallyShuttleApp").controller("ZendeskListCtrl",["$scope","ZendeskAccount","gridOptions","xAlert","$translate",function(a,b,c,d,e){a.initView=function(){var d={exporterCsvFilename:"zendesk_account.csv",columnDefs:[{name:"name",displayName:"APPLICATION_NAME"},{name:"username"},{name:"remoteUri",displayName:"APPLICATION_URI"},{name:"action",buttons:[{"class":"blue-hoki",href:"/zendesk/view/{{row.entity.id}}/account",name:"account"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK",onClick:"grid.appScope.checkAccount(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.checkAccount=function(a){return b.check({id:a}).$promise.then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.list",{url:"/list",templateUrl:"app/zendesk/list/list.html",controller:"ZendeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view.configurations",{url:"/configurations",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewConfigurationListCtrl",["$scope","$stateParams","$translate","gridOptions","ZendeskConfiguration","$uibModal",function(a,b,c,d,e,f){a.initView=function(){var c={exporterCsvFilename:"zendesk_configurations.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/zendesk/view/{{row.entity.AccountId}}/configurations/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(e,c,a,{accountId:b.id})},a.createItem=function(){var b=f.open({animation:!0,templateUrl:"app/zendesk/view/configuration/list/create.modal.html",controller:"ZendeskCreateConfigurationCtrl"});b.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ZendeskCreateConfigurationCtrl",["$scope","$translate","$uibModalInstance","ZendeskConfiguration","xAlert","$stateParams","channel",function(a,b,c,d,e,f,g){a.form={},a.item={},a.channels=g,a.item.channel="voice",a.save=function(){return d.save({accountId:f.id},a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.error(a)})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view.configurations.list",{url:"/list",templateUrl:"app/zendesk/view/configuration/list/list.html",controller:"ZendeskViewConfigurationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewConfigurationViewCtrl",["$scope","$stateParams","$filter","$translate","socket","ZendeskConfiguration","xAlert","variable","Variable","ZendeskAccount","Tag","ZendeskField",function(a,b,c,d,e,f,g,h,i,j,k,l){a.$on("$destroy",function(){e.unsyncUpdates("zendesk_field")}),a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:300,scrollInertia:0},a.fieldType=[{type:"string",title:"String"},{type:"variable",title:"Variable"},{type:"customVariable",title:"Custom Variable"}],a.descFieldType=[{type:"string",title:"String"},{type:"keyValue",title:"Key Value"}],a.groupVariableByGroup=function(a){switch(a.group){case"voice_queue":return"Voice: Queue";default:return"Other"}},a.initView=function(){a.configurationName="",a.subjectConfig=[],a.descriptionConfig=[],a.fieldConfig=[],a.selectedTags={tags:[]},a.variables=h},a.getConfiguration=function(){return f.get({accountId:b.id,id:b.configurationId}).$promise.then(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,a.selectedTags={tags:_.map(b.Tags,function(a){return a.id})},e.socket.on("zendesk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})})["catch"](function(a){g.error(a)})},a.getCustomVariables=function(){return i.get().$promise.then(function(b){a.customVariables=b.rows})["catch"](function(a){g.error(a)})},a.getFields=function(){return j.fields({id:b.id}).$promise.then(function(b){a.accountFields=c("zendesk")(b)})["catch"](function(a){g.error(a)})},a.getTags=function(){return k.get().$promise.then(function(b){a.tags=b.rows})["catch"](function(a){g.error(a)})},a.addItem=function(c){var d={};switch(c){case"subject":case"description":d={type:"string",content:""};break;case"field":d={content:""}}return f.save({accountId:b.id,id:b.configurationId,controller:c},d).$promise.then(function(b){switch(c){case"subject":a.subjectConfig.push(b);break;case"description":a.descriptionConfig.push(b);break;case"field":a.fieldConfig.push(b)}})["catch"](function(a){g.error(a)})},a.changeType=function(b){"variable"===b.type?(b.content="",b.variableName=""):"string"===b.type?(b.VariableId=null,b.variableName=""):"customVariable"===b.type&&(b.VariableId=null,b.content=""),a.updateField(b)},a.updateField=function(a){return l.update({accountId:b.id,configurationId:b.configurationId,id:a.id},a).$promise.then(function(){})["catch"](function(a){g.error(a)})},a.removeItem=function(a){return l["delete"]({accountId:b.id,configurationId:b.configurationId,id:a.id}).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){g.error(a)})},a.changeDescType=function(b){"keyValue"===b.type?(b.content="","string"===b.keyType?(b.VariableId=null,b.variableName=""):"variable"===b.keyType?(b.keyContent="",b.VariableId=null):"customVariable"===b.keyType&&(b.keyContent="",b.variableName="")):"string"===b.type&&(b.VariableId=null,b.variableName="",b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.variableName="",b.nameField="",b.VariableId=null,b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&(c.system_field_options?(b.customField=!1,b.nameField=c.title.toLowerCase()):b.customField=!0)}a.updateField(b)},a.updateTags=function(){return f.update({accountId:b.id,id:b.configurationId,controller:"tags"},a.selectedTags.tags).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE")+".","success")})["catch"](function(a){g.error(a)})},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.system_field_options?c.system_field_options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view.configurations.view",{url:"/view/:configurationId",templateUrl:"app/zendesk/view/configuration/view/view.html",controller:"ZendeskViewConfigurationViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewCtrl",["$scope","$stateParams","$translate","xAlert","Modal","ZendeskAccount",function(a,b,c,d,e,f){a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.account=b})["catch"](function(a){d.error(a)})},a.updateItem=function(){return f.update({id:b.id},a.account).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE")+".","success")})["catch"](function(a){d.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view",{url:"/view/:id",templateUrl:"app/zendesk/view/view.html",controller:"ZendeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.zendesk.view.account",{url:"/account",templateUrl:"app/zendesk/view/view.account.html"})}]),angular.module("xCallyShuttleApp").controller("ZendeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler","ZendeskAccount",function(a,b,c,d,e,f,g){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.authType="password"},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){return g.save(a.item).$promise.then(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/zendesk/list")})["catch"](function(a){e.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.wizard",{url:"/wizard",templateUrl:"app/zendesk/wizard/wizard.html",controller:"ZendeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("ZendeskAccount",["$resource",function(a){return a("/api/zendesk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"},fields:{params:{controller:"fields"},isArray:!0},check:{params:{controller:"check"}}})}]).factory("ZendeskConfiguration",["$resource",function(a){return a("/api/zendesk/accounts/:accountId/configurations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]).factory("ZendeskField",["$resource",function(a){return a("/api/zendesk/accounts/:accountId/configurations/:configurationId/fields/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk",{url:"/zendesk",template:"
","abstract":!0})}]),angular.module("xCallyShuttleApp").service("application",function(){var a={applications:[{type:null,name:"APPLICATION_QUEUE",value:"Queue"},{type:null,name:"APPLICATION_PLAYBACK",value:"Playback"},{type:null,name:"Dial",value:"Dial"},{type:"internalDial",name:"APPLICATION_INTERNAL_DIAL",value:"Dial"},{type:"externalDial",name:"APPLICATION_EXTERNAL_DIAL",value:"Dial"},{type:null,name:"Cally-Square Project",value:"AGI"},{type:null,name:"GoTo",value:"Goto"},{type:null,name:"Hangup",value:"Hangup"},{type:null,name:"Set",value:"Set"},{type:"custom",name:"Custom",value:"custom"},{type:null,name:"APPLICATION_VOICEMAIL",value:"Voicemail"}],queueOptions:[{value:"C",name:"APPLICATION_QUEUE_OPTION_C"},{value:"c",name:"APPLICATION_QUEUE_OPTION_c"},{value:"d",name:"APPLICATION_QUEUE_OPTION_d"},{value:"F",name:"APPLICATION_QUEUE_OPTION_F"},{value:"h",name:"APPLICATION_QUEUE_OPTION_h"},{value:"H",name:"APPLICATION_QUEUE_OPTION_H"},{value:"n",name:"APPLICATION_QUEUE_OPTION_n"},{value:"i",name:"APPLICATION_QUEUE_OPTION_i"},{value:"I",name:"APPLICATION_QUEUE_OPTION_I"},{value:"r",name:"APPLICATION_QUEUE_OPTION_r"},{value:"R",name:"APPLICATION_QUEUE_OPTION_R"},{value:"t",name:"APPLICATION_QUEUE_OPTION_t"},{value:"T",name:"APPLICATION_QUEUE_OPTION_T"},{value:"w",name:"APPLICATION_QUEUE_OPTION_w"},{value:"W",name:"APPLICATION_QUEUE_OPTION_W"},{value:"k",name:"APPLICATION_QUEUE_OPTION_k"},{value:"K",name:"APPLICATION_QUEUE_OPTION_K"},{value:"x",name:"APPLICATION_QUEUE_OPTION_x"},{value:"X",name:"APPLICATION_QUEUE_OPTION_X"}],audioOptions:[{value:"skip",name:"APPLICATION_PLAYBACK_OPTION_SKIP"},{value:"noanswer",name:"APPLICATION_PLAYBACK_OPTION_NOANSWER"},{value:"j",name:"APPLICATION_PLAYBACK_OPTION_J"},{value:"say",name:"APPLICATION_PLAYBACK_OPTION_SAY"}],hangupCauses:[{value:"",name:"--"},{value:"1",name:"APPLICATION_HANGUP_CAUSE_1"},{value:"16",name:"APPLICATION_HANGUP_CAUSE_16"},{value:"17",name:"APPLICATION_HANGUP_CAUSE_17"},{value:"18",name:"APPLICATION_HANGUP_CAUSE_18"},{value:"21",name:"APPLICATION_HANGUP_CAUSE_21"},{value:"22",name:"APPLICATION_HANGUP_CAUSE_22"},{value:"27",name:"APPLICATION_HANGUP_CAUSE_27"},{value:"38",name:"APPLICATION_HANGUP_CAUSE_38"},{value:"41",name:"APPLICATION_HANGUP_CAUSE_41"}],intTypes:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"custom",name:"APPLICATION_CUSTOM"},{value:"list",name:"APPLICATION_FROM_LIST"}],checkUnderscore:function(a){return 0===a.indexOf("_")?a:"_"+a}};return{application:a}}),angular.module("xCallyShuttleApp").factory("Auth",["$location","$rootScope","$http","User","$cookieStore","$q",function(a,b,c,d,e,f){var g={};return e.get("token")&&(g=d.me()),{login:function(a,h){var i=h||angular.noop,j=f.defer();return c.post("/auth/local",{name:a.name,password:a.password,remember:a.remember}).success(function(a){return e.put("role",a.role),e.put("token",a.token),e.put("userId",a.userId),g=d.me({},function(){b.$broadcast("login")}),j.resolve(a),i()}).error(function(a){return this.logout(),j.reject(a),i(a)}.bind(this)),j.promise},loginWithToken:function(a,c,f){e.put("role",f),e.put("token",a),e.put("userId",c),g=d.me({},function(){b.$broadcast("login")})},logout:function(){c.put("/api/users/"+g.id,{online:!1}).success(function(){e.remove("role"),e.remove("token"),e.remove("userId"),g={},b.$broadcast("logout")}).error(function(a){return a})},createUser:function(a,b){var c=b||angular.noop;return d.save(a,function(b){return e.put("token",b.token),g=d.me(),c(a)},function(a){return this.logout(),c(a)}.bind(this)).$promise},changePassword:function(a,b,c){var e=c||angular.noop;return d.changePassword({id:g.id},{oldPassword:a,newPassword:b},function(a){return e(null,a)},function(a){return e(a)}).$promise},getCurrentUser:function(){return g},isLoggedIn:function(){return g.hasOwnProperty("role")},isLoggedInAsync:function(a){g.hasOwnProperty("$promise")?g.$promise.then(function(){a(!0)})["catch"](function(){a(!1)}):a(g.hasOwnProperty("role")?!0:!1)},isAdmin:function(){return"admin"===(e.get("role")||g.role)},isUser:function(){return"user"===(e.get("role")||g.role)},isAgent:function(){return"agent"===(e.get("role")||g.role)},getRole:function(){return g.role},getToken:function(){return e.get("token")}}}]),angular.module("xCallyShuttleApp").service("automations",function(){var a={mail:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]},fax:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]}},b=["mail","chat","fax"];return{services:a,channels:b}}),angular.module("xCallyShuttleApp").service("channel",function(){var a=[{name:"Voice",value:"voice"}];return a}),angular.module("xCallyShuttleApp").service("desk_com",function(){var a=[{id:"priority",label:"Priority",custom:!1,data:{choices:[1,2,3,4,5,6,7,8,9,10]}},{id:"status",label:"Status",custom:!1,data:{choices:["new","open","pending","resolved","closed"]}},{id:"type",label:"Type",custom:!1,data:{choices:["chat","twitter","email","qna","facebook","phone"]}}];return{fields:a}}),angular.module("xCallyShuttleApp").controller("FooterController",["$scope","$http",function(a,b){a.year=moment().year(),a.$on("$includeContentLoaded",function(){Layout.initFooter()}),a.initFooter=function(){b.get("/api/settings/info").success(function(b){a.info=b}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("HeaderController",["$scope","$rootScope","$location","$state","$http","$notification","Auth","xAlert","socket","ngAudio","settings","toastr","localStorageService","Agent","SmsReport","MailReport","ChatReport","ChatRoom","xNotification","$timeout","$translate","$window","User","Pause","Action","FaxReport",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z){function A(){return a.headerAgent=g.getCurrentUser(),a.readyTimer=1e3*moment().unix(),x.get().$promise.then(function(b){a.headerPauses=b.rows,i.syncUpdates("pause",a.headerPauses)})["finally"](function(){i.socket.on("agent:save",function(b){a.headerAgent.id===b.id&&(_.merge(a.headerAgent,b),b.voicePause&&b.mailPause&&b.chatPause&&b.faxPause&&b.smsPause||(a.readyTimer=1e3*moment().unix()))})})["catch"](function(a){console.log("Error synchronizing agent status:",a)})}function B(a,b,c){return null===b&&(b=50),null===c&&(c="..."),a&&a.length>b?a.substring(0,b-c.length)+c:a}a.moment=moment,a.headerPause=function(b,c,d){return y.save({name:b,agent:a.headerAgent.id,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:d||"all"}).$promise.then(function(){h.show(u.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(u.instant(a.message||a.data.message||a.translatedMessage||a.data.translatedMessage),"danger")})},"agent"===g.getCurrentUser().role&&A(),i.socket.on("report_chat:save",function(a){j.load("api/xchatty/assets?resource=notification/xc_blubb.mp3").play(),v.Notification&&f("CHAT CHANNEL",{icon:"assets/images/media/channels/chat64.png",body:"NEW Incoming Chat Visitor!",delay:1e3*a.timeslot});var b=""+u.instant("APPLICATION_FROM")+": "+a.visitorname+"
"+u.instant("APPLICATION_EMAIL")+": "+a.visitoremail;"queue"===a.application&&(b+="
"+u.instant("APPLICATION_QUEUE")+": "+a.queuename),s.show(u.instant("APPLICATION_NEW_CHAT_REQUEST"),b,"chat",1e3*a.timeslot,function(){return q.get({id:a.id,controller1:"accept",controller2:a.uniqueid}).$promise.then(function(){h.show("Chat properly assigned","success")})["catch"](function(a){switch(a.status){case 504:h.show(u.instant("MESSAGE_CHAT_ALREADY_MANAGED"),"info");break;default:h.error(a)}})},function(){return q.get({id:a.id,controller1:"reject"}).$promise.then(function(){h.show("Chat properly rejected","success")})["catch"](function(a){h.show(a.data.message,"danger")})})}),i.socket.on("user_has_chat_room:save",function(b){var c;return r.get({id:Number(b.ChatRoomId)}).$promise.then(function(b){c=b;var d=_.find(a.workspaces,{id:Number(c.id),type:"chatRoom"});d?d.name=a.getFullnames(c):a.workspaces.push({id:c.id,name:a.getFullnames(c),type:"chatRoom","class":"icon-bubble",unread:1})})["catch"](function(a){console.error(a)})}),i.socket.on("chat_message:save",function(b){var c;if(b.UserId!==g.getCurrentUser().id){var d=_.find(a.workspaces,{id:Number(b.ChatRoomId),type:"chatRoom"});if(!d)return r.get({id:Number(b.ChatRoomId)}).$promise.then(function(b){c=b,a.workspaces.push({id:c.id,name:a.getFullnames(b),type:"chatRoom","class":"icon-bubble",unread:1})})["catch"](function(a){console.error(a)})}}),a.getFullnames=function(a){var b=_.map(a.Users,"fullname");return a.ChatVisitor&&b.unshift(a.ChatVisitor.fullname),_.without(b,g.getCurrentUser().fullname).join(", ")},a.toggleQuickSidebar=function(){k.layout.pageQuickSidebarOpened=!k.layout.pageQuickSidebarOpened,k.layout.pageQuickSidebarOpened||m.remove("chatRoomId")};var C=function(){return v.Notification},D=function(){b.settings.layout.onFocus=!0},E=function(){b.settings.layout.onFocus=!1};v.onfocus=D,v.onblur=E,a.toogleSidebar=function(){k.layout.pageSidebarClosed=!k.layout.pageSidebarClosed,m.set("sidebarClosed",k.layout.pageSidebarClosed)},a.initHeader=function(){var c=j.load("api/xchatty/assets?resource=notification/xc_blubb.mp3");"agent"===g.getCurrentUser().role&&(i.socket.on("report_mail:save",function(c){var d=_.find(a.workspaces,{id:c.roomid,type:"mailRoom"});if(!d){j.load("api/xchatty/assets?resource=notification/xc_blubb.mp3").play();var e=""+u.instant("APPLICATION_ACCOUNT")+": "+c.accountname+"
"+u.instant("APPLICATION_FROM")+": "+c.from+"
"+u.instant("APPLICATION_SUBJECT")+": "+(B(c.subject,30,"...")||"No subject");"queue"===c.application&&(e+="
"+u.instant("APPLICATION_QUEUE")+": "+c.queuename),s.show(u.instant("APPLICATION_NEW_MAIL_REQUEST"),e,"mail",1e3*c.timeslot,function(){return p.get({id:c.id,controller1:"accept",controller2:c.uniqueid}).$promise.then(function(){var b=_.find(a.workspaces,{id:c.roomid,type:"mailRoom"});b?b.active=!0:a.workspaces.push({id:c.roomid,name:c.subject||"No subject",type:"mailRoom","class":"icon-envelope",active:!0,unread:0})})["catch"](function(a){switch(a.status){case 504:h.show(u.instant("MESSAGE_MAIL_ALREADY_MANAGED"),"info");break;default:h.error(a)}})},function(){return p.get({id:c.id,controller1:"reject"}).$promise["catch"](function(a){h.show(a.data.message,"danger")})}),C&&!b.settings.layout.onFocus?f("MAIL CHANNEL",{icon:"assets/images/media/channels/mail64.png",body:"NEW Incoming Mail Message!",delay:1e3*c.timeslot}):console.log("Notification API not supported in your browser")}}),i.socket.on("report_sms:save",function(b){c.play();var d=""+u.instant("APPLICATION_FROM")+": "+b.accountname+"
"+u.instant("APPLICATION_SMS")+": "+b.accountnumber;"queue"===b.application&&(d+="
"+u.instant("APPLICATION_QUEUE")+": "+b.queuename),s.show(u.instant("APPLICATION_NEW_SMS_REQUEST"),d,"sms",1e3*b.timeslot,function(){return o.get({id:b.id,controller1:"accept",controller2:b.uniqueid}).$promise.then(function(){var c=_.find(a.workspaces,{id:b.roomid,type:"smsRoom"});c?c.active=!0:a.workspaces.push({id:b.roomid,name:b.from,type:"smsRoom","class":"glyphicon glyphicon-comment",active:!0})})["catch"](function(a){switch(a.status){case 504:h.show(u.instant("MESSAGE_SMS_ALREADY_MANAGED"),"info");break;default:h.error(a)}})},function(){return o.get({id:b.id,controller1:"reject"}).$promise.then(function(){h.show("SMS properly rejected","success")})["catch"](function(a){h.show(a.data.message,"danger")})}),C?f("SMS CHANNEL",{icon:"assets/images/media/channels/chat64.png",body:"NEW Incoming SMS Message!",delay:1e3*b.timeslot}):console.log("Notification API not supported in your browser")}),i.socket.on("report_fax:save",function(c){j.load("api/xchatty/assets?resource=notification/xc_blubb.mp3").play();var d=""+u.instant("APPLICATION_ACCOUNT")+": "+c.accountname+"
"+u.instant("APPLICATION_PHONE")+": "+c.from;"queue"===c.application&&(d+="
"+u.instant("APPLICATION_QUEUE")+": "+c.queuename),s.show(u.instant("APPLICATION_NEW_FAX_REQUEST"),d,"fax",1e3*c.timeslot,function(){return z.get({id:c.id,controller1:"accept",controller2:c.uniqueid}).$promise.then(function(){var b=_.find(a.workspaces,{id:c.roomid,type:"faxRoom"});b?b.active=!0:a.workspaces.push({id:c.roomid,name:c.from,type:"faxRoom","class":"icon-paper-plane",active:!0})})["catch"](function(a){switch(a.status){case 504:h.show(u.instant("MESSAGE_FAX_ALREADY_MANAGED"),"info");break;default:h.error(a)}})},function(){return z.get({id:c.id,controller1:"reject"}).$promise["catch"](function(a){h.error(a)})}),C&&!b.settings.layout.onFocus?f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*c.timeslot}):console.log("Notification API not supported in your browser")}))},a.logout=function(){return e.get("/auth/local/logout").success(function(){g.logout(),c.path("/login")}).error(function(a){console.error(a)})},a.isActive=function(a){return a===c.path()}}]),angular.module("xCallyShuttleApp").service("interval",function(){var a={months:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"jan",name:"APPLICATION_JANUARY"},{value:"feb",name:"APPLICATION_FEBRUARY"},{value:"mar",name:"APPLICATION_MARCH"},{value:"apr",name:"APPLICATION_APRIL"},{value:"may",name:"APPLICATION_MAY"},{value:"jun",name:"APPLICATION_JUNE"},{value:"jul",name:"APPLICATION_JULY"},{value:"aug",name:"APPLICATION_AUGUST"},{value:"sep",name:"APPLICATION_SEPTEMBER"},{value:"oct",name:"APPLICATION_OCTOBER"},{value:"nov",name:"APPLICATION_NOVEMBER"},{value:"dec",name:"APPLICATION_DECEMBER"}],monthsNumber:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"1",name:"APPLICATION_JANUARY"},{value:"2",name:"APPLICATION_FEBRUARY"},{value:"3",name:"APPLICATION_MARCH"},{value:"4",name:"APPLICATION_APRIL"},{value:"5",name:"APPLICATION_MAY"},{value:"6",name:"APPLICATION_JUNE"},{value:"7",name:"APPLICATION_JULY"},{value:"8",name:"APPLICATION_AUGUST"},{value:"9",name:"APPLICATION_SEPTEMBER"},{value:"10",name:"APPLICATION_OCTOBER"},{value:"11",name:"APPLICATION_NOVEMBER"},{value:"12",name:"APPLICATION_DECEMBER"}],daysOfWeek:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"mon",name:"APPLICATION_MONDAY"},{value:"tue",name:"APPLICATION_TUESDAY"},{value:"wed",name:"APPLICATION_WEDNESDAY"},{value:"thu",name:"APPLICATION_THURSDAY"},{value:"fri",name:"APPLICATION_FRIDAY"},{value:"sat",name:"APPLICATION_SATURDAY"},{value:"sun",name:"APPLICATION_SUNDAY"}],daysOfMonth:["always",1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]};return{interval:a}}),angular.module("xCallyShuttleApp").factory("Modal",["$rootScope","$uibModal",function(a,b){function c(c,d){var e=a.$new();return c=c||{},d=d||"modal-default",angular.extend(e,c),b.open({templateUrl:"components/modal/delete.html",windowClass:d,scope:e})}return{confirm:{"delete":function(a){return a=a||angular.noop,function(){var b,d=Array.prototype.slice.call(arguments),e=d.shift();b=c({modal:{dismissable:!0,title:"Confirm Delete",html:"

Are you sure you want to delete"+(e?" "+e+"":" selected items")+"?

",buttons:[{classes:"btn red",text:"Delete",click:function(a){b.close(a)}},{classes:"btn default",text:"Cancel",click:function(a){b.dismiss(a)}}]}},"over-topbar center"),b.result.then(function(b){a.apply(b,d)})}}}}}]),angular.module("xCallyShuttleApp").service("report",["ReportAgent","ReportCall","ReportMailSession","ReportMember","ReportQueue","ReportIntegration","ReportChatSession","ReportSmsSession","Contact","Recording","ReportSquare",function(a,b,c,d,e,f,g,h,i,j,k){var l=[{value:"report_agent_history",resource:a},{value:"report_call_history",resource:b},{value:"report_mail_session_history",resource:c},{value:"report_member_history",resource:d},{value:"report_queue_history",resource:e},{value:"report_integration_history",resource:f},{value:"report_chat_session_history",resource:g},{value:"report_sms_session_history",resource:h},{value:"cm_contacts",resource:i},{value:"voice_recordings",resource:j},{value:"report_square_history",resource:k},{value:"report_square_details_history",resource:k}];return{tables:l}}]),angular.module("xCallyShuttleApp").controller("SidebarController",["$scope","$rootScope","$resource","$location","Auth","Dashboard","Integration","xAlert","$stateParams","socket",function(a,b,c,d,e,f,g,h,i,j){a.Auth=e,a.userModules={},a.$on("$includeContentLoaded",function(){Metronic.init(),Layout.initSidebar()}),a.initSidebar=function(){e.getCurrentUser().Modules.forEach(function(b){a.userModules[b.id]=!0})},a.getSidebarDashboards=function(){return f.get().$promise.then(function(b){a.dashboards=b.rows,j.syncUpdates("dashboard",a.dashboards)})["catch"](function(){h.show("Error loading your dashboards","danger")})},a.getSidebarIntegrations=function(){return e.isAdmin()||a.userModules[19]?g.get().$promise.then(function(b){a.integrations=b.rows,j.syncUpdates("integration",a.integrations)})["catch"](function(a){h.show(a.message,"danger")}):void 0},a.$on("destroy",function(){j.unsyncUpdates("dashboard"),j.unsyncUpdates("integration")})}]),angular.module("xCallyShuttleApp").factory("socket",["$rootScope","$window","socketFactory","Auth",function(a,b,c,d){var e=d.getCurrentUser(),f=io("",{query:"token="+d.getToken()+"&userId="+e.id+"&name="+e.name+"&role="+(e.role||"agent")+"&source=browser",path:"/socket.io-client"}),g=c({ioSocket:f});return a.$on("logout",function(){g&&(g.disconnect(!0),b.location.reload())}),{socket:g,syncUpdates:function(a,b,c){c=c||angular.noop,g.on(a+":save",function(a){var d=_.find(b,{id:a.id}),e=b.indexOf(d),f="created";d?(_.merge(b[e],a),f="updated"):b.unshift(a),c(f,a,b)}),g.on(a+":remove",function(a){var d="deleted";_.remove(b,{id:a.id}),c(d,a,b)})},unsyncUpdates:function(a){g.removeAllListeners(a+":save"),g.removeAllListeners(a+":remove")},syncUpdatesByAttributes:function(a,b,c,d){d=d||angular.noop,g.on(a+":save",function(a){var e=!0;if(_.forIn(b,function(b,c){return a[c]&&a[c]===b?!0:e=!1}),e){var f=_.find(c,{id:a.id}),g=c.indexOf(f),h="created";f?(_.merge(c[g],a),h="updated"):c.unshift(a),d(h,a,c)}}),g.on(a+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},syncMailMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncMailMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")},syncFaxMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncFaxMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")}}}]),angular.module("xCallyShuttleApp").service("triggers",["VoiceQueue",function(a){var b={voice:{conditions:[{name:"APPLICATION_QUEUE",value:"queue",type:"select",resource:a,resValue:"name",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_CALL_STATUS",value:"lastevent",type:"select",arr:[{name:"ringing",value:"called"},{name:"up",value:"connect"},{name:"hangup",value:"complete"},{name:"rejected",value:"rejected"},{name:"abandoned",value:"abandoned"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]}],actions:[{name:"APPLICATION_CONTACT_MANAGER",value:"contactManager"},{name:"APPLICATION_INTEGRATIONS",value:"integration",propertyField:"select"},{name:"APPLICATION_MOTION_BAR",value:"motionbar",propertyField:"select"},{name:"APPLICATION_JSCRIPTY",value:"jscripty",propertyField:"select"},{name:"APPLICATION_URL_FORWARD",value:"urlForward"}]}},c=["voice"];return{services:b,channels:c}}]),angular.module("xCallyShuttleApp").service("variable",function(){var a=[{title:"Unique ID",name:"uniqueid",group:"voice_queue"},{title:"Caller Number", -name:"calleridnum",group:"voice_queue"},{title:"Caller Name",name:"calleridname",group:"voice_queue"},{title:"Queue",name:"queue",group:"voice_queue"},{title:"Called Number",name:"destcalleridnum",group:"voice_queue"},{title:"Called Name",name:"destcalleridname",group:"voice_queue"},{title:"Hold Time",name:"holdtime",group:"voice_queue"},{title:"Talk Time",name:"talktime",group:"voice_queue"},{title:"Connected Time",name:"agentconnectAt",group:"voice_queue"},{title:"Called Time",name:"agentcalledAt",group:"voice_queue"},{title:"DNID",name:"destexten",group:"voice_queue"},{title:"Complete Time",name:"agentcompleteAt",group:"voice_queue"},{title:"No Answer Time",name:"agentringnoanswerAt",group:"voice_queue"}];return a}),function(a,b){angular.module("adf.widget.counter",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("counter",{title:"Single Value",description:"Single Value for db results",templateUrl:"{widgetsPath}/counter/src/view.html",controller:"apiwidgetCounterViewCtrl",edit:{templateUrl:"{widgetsPath}/counter/src/edit.html",controller:"apiwidgetCounterEditCtrl"}})}]).service("apiServiceCounter",["Widget",function(a){return{get:function(b){return a.get({select:b.select,condition:encodeURIComponent(b.condition),table:b.report.replace("_history",""),controller:"counter"}).$promise.then(function(a){return a})["catch"](function(a){console.log(a)})}}}]).controller("apiwidgetCounterEditCtrl",["$scope","report",function(a,b){a.config.reportTables=b.tables,a.config.colors=[{name:"Grey",value:"grey"},{name:"Grey 2",value:"grey-cascade"},{name:"Grey 3",value:"grey-silver"},{name:"Grey 4",value:"grey-steel"},{name:"Grey 5",value:"grey-carrara"},{name:"Grey 6",value:"grey-gallery"},{name:"Blue",value:"blue"},{name:"Blue 2",value:"blue-hoki"},{name:"Blue 3",value:"blue-steel"},{name:"Blue 4",value:"blue-madison"},{name:"Blue 5",value:"blue-chambray"},{name:"Blue 6",value:"blue-ebonyclay"},{name:"Red",value:"red"},{name:"Red 2",value:"red-pink"},{name:"Red 3",value:"red-sunglo"},{name:"Red 4",value:"red-intense"},{name:"Red 5",value:"red-thunderbird"},{name:"Red 6",value:"red-flamingo"},{name:"Green",value:"green"},{name:"Green 2",value:"green-meadow"},{name:"Green 3",value:"green-seagreen"},{name:"Green 4",value:"green-turquoise"},{name:"Green 5",value:"green-haze"},{name:"Green 6",value:"green-jungle"},{name:"Purple",value:"purple"},{name:"Purple 2",value:"purple-plum"},{name:"Purple 3",value:"purple-medium"},{name:"Purple 4",value:"purple-studio"},{name:"Purple 5",value:"purple-wisteria"},{name:"Purple 6",value:"purple-seance"},{name:"Yellow",value:"yellow"},{name:"Yellow 2",value:"yellow-gold"},{name:"Yellow 3",value:"yellow-casablanca"},{name:"Yellow 4",value:"yellow-crusta"},{name:"Yellow 5",value:"yellow-lemon"},{name:"Yellow 6",value:"yellow-saffron"}],a.config.icons=[{name:"Talk bubbles",value:"fa-comments"},{name:"Bar Chart",value:"fa-bar-chart"},{name:"Shopping Cart",value:"fa-shopping-cart"},{name:"Globe",value:"fa-globe"},{name:"Volume Control Phone",value:"fa-volume-control-phone"},{name:"Comments",value:"fa-comments-o"},{name:"Commenting",value:"fa-commenting-o"},{name:"Coffee",value:"fa-coffee"},{name:"Clock",value:"fa-clock-o"},{name:"Envelope",value:"fa-envelope-o"},{name:"Hourglass",value:"fa-hourglass-half"},{name:"Percent",value:"fa-percent"}],a.config.select=a.config.select?a.config.select:"COUNT(*)",a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE"}]).controller("apiwidgetCounterViewCtrl",["$scope","$interval","apiServiceCounter",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.condition=a.config.condition?a.config.condition:null,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE",a.counterApiCall=function(){a.config.report&&c.get(a.config).then(function(b){b?b.result&&b.result.length>1||_.keys(b.result[0]).length>1?(a.tooManyResults=!0,a.result=null):(a.tooManyResults=!1,null!==_.values(b.result[0])[0]?a.result=_.values(b.result[0])[0].toString():a.result="--"):a.result=null})},a.counterApiCall();var d=b(function(){a.counterApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.counter").run(["$templateCache",function(a){a.put("{widgetsPath}/counter/src/edit.html","
{{'APPLICATION_'+$select.selected.value.toUpperCase() | translate}}
 
 
"),a.put("{widgetsPath}/counter/src/view.html",'
{{result}}
{{config.details}}
{{config.linkText}}
')}])}(window),function(a,b){angular.module("adf.widget.pie-chart",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("pie-chart",{title:"Pie-Chart",description:"Display a pie-chart starting from DB values",templateUrl:"{widgetsPath}/pie-chart/src/view.html",controller:"apiWidgetPieChartViewCtrl",edit:{templateUrl:"{widgetsPath}/pie-chart/src/edit.html",controller:"apiWidgetPieChartEditCtrl"}})}]).service("apiServicePieChart",["Widget",function(a){return{get:function(b){return a.get({condition:encodeURIComponent(b.condition),table:b.report.replace("_history",""),fields:b.fields,controller:"piechart"}).$promise.then(function(a){return a})["catch"](function(a){console.log(a)})}}}]).controller("apiWidgetPieChartEditCtrl",["$scope","report",function(a,b){function c(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=b.tables,a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){c().push({})},a.removeField=function(a){c().splice(a,1)}}]).controller("apiWidgetPieChartViewCtrl",["$scope","$interval","apiServicePieChart",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.pieChartApiCall=function(){a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){if(b&&b.result&&1===b.result.length){a.labels=[],a.data=[];for(var c in b.result[0])a.labels.push(c),a.data.push(b.result[0][c])}else a.labels=[],a.data=[]})},a.pieChartApiCall();var d=b(function(){a.pieChartApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.pie-chart").run(["$templateCache",function(a){a.put("{widgetsPath}/pie-chart/src/edit.html","
{{'APPLICATION_'+$select.selected.value.toUpperCase() | translate}}
as 1\">
"),a.put("{widgetsPath}/pie-chart/src/view.html",'
')}])}(window),function(a,b){angular.module("adf.widget.table",["adf.provider"]).value("apiServiceUrlTable","/api/widgets/table").config(["dashboardProvider",function(a){a.widget("table",{title:"Table",description:"Show tabbed results from db",templateUrl:"{widgetsPath}/table/src/view.html",controller:"apiWidgetTableViewCtrl",edit:{templateUrl:"{widgetsPath}/table/src/edit.html",controller:"apiWidgetTableEditCtrl"}})}]).service("apiServiceTable",["$q","$http","apiServiceUrlTable",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetTableEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetTableViewCtrl",["$scope","$interval","apiServiceTable",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.style={"max-height":a.config.height+"px",overflow:"scroll"},a.tableApiCall=function(){a.config.condition&&a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){a.results=b})},a.tableApiCall();var d=b(function(){a.tableApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.table").run(["$templateCache",function(a){a.put("{widgetsPath}/table/src/edit.html",'
{{$select.selected.name}}
as
'),a.put("{widgetsPath}/table/src/view.html",'
{{field.alias}}
{{result[field.alias]}}
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
')}])}(window),function(){angular.module("pdf",[]).directive("ngPdf",["$window",function(a){return{restrict:"E",templateUrl:function(a,b){return b.templateUrl?b.templateUrl:"partials/viewer.html"},link:function(b,c,d){var e=d.pdfUrl,f=null,g=d.page?d.page:1,h=d.scale>0?d.scale:1,i=c.find("canvas"),j=i[0],k=j.getContext("2d"),l=angular.element(a);l.on("scroll",function(){b.$apply(function(){b.scroll=l[0].scrollY})}),PDFJS.disableWorker=!0,b.pageNum=g,b.renderPage=function(a){f.getPage(a).then(function(a){var e,f,g,i={};"page-fit"!==d.scale||h?e=a.getViewport(h):(e=a.getViewport(1),f=c[0].clientWidth/e.width,g=c[0].clientHeight/e.height,h=Math.min(f,g)),j.height=e.height,j.width=e.width,i={canvasContext:k,viewport:e},a.render(i).promise.then(function(){"function"==typeof b.onPageRender&&b.onPageRender()})})},b.goPrevious=function(){b.pageToDisplay<=1||(b.pageNum=parseInt(b.pageNum)-1)},b.goNext=function(){b.pageToDisplay>=f.numPages||(b.pageNum=parseInt(b.pageNum)+1)},b.zoomIn=function(){return h=parseFloat(h)+.2,b.renderPage(b.pageToDisplay),h},b.zoomOut=function(){return h=parseFloat(h)-.2,b.renderPage(b.pageToDisplay),h},b.changePage=function(){b.renderPage(b.pageToDisplay)},b.rotate=function(){"rotate0"===j.getAttribute("class")?j.setAttribute("class","rotate90"):"rotate90"===j.getAttribute("class")?j.setAttribute("class","rotate180"):"rotate180"===j.getAttribute("class")?j.setAttribute("class","rotate270"):j.setAttribute("class","rotate0")},PDFJS.getDocument(e,null,null,b.onProgress).then(function(a){"function"==typeof b.onLoad&&b.onLoad(),f=a,b.renderPage(b.pageToDisplay),b.$apply(function(){b.pageCount=a.numPages})},function(a){a&&"function"==typeof b.onError&&b.onError(a)}),b.$watch("pageNum",function(a){b.pageToDisplay=parseInt(a),null!==f&&b.renderPage(b.pageToDisplay)})}}}])}();var Metronic=function(){var a,b=!1,c=!1,d=!1,e=!1,f=[],g="assets/",h="img/",i="plugins/",j="css/",k={blue:"#89C4F4",red:"#F3565D",green:"#1bbc9b",purple:"#9b59b6",grey:"#95a5a6",yellow:"#F8CB00"},l=function(){"rtl"===$("body").css("direction")&&(b=!0),c=!!navigator.userAgent.match(/MSIE 8.0/),d=!!navigator.userAgent.match(/MSIE 9.0/),e=!!navigator.userAgent.match(/MSIE 10.0/),e&&$("html").addClass("ie10"),(e||d||c)&&$("html").addClass("ie")},m=function(){for(var a=0;a .portlet-title > .tools > a.remove",function(a){a.preventDefault();var b=$(this).closest(".portlet");$("body").hasClass("page-portlet-fullscreen")&&$("body").removeClass("page-portlet-fullscreen"),b.find(".portlet-title .fullscreen").tooltip("destroy"),b.find(".portlet-title > .tools > .reload").tooltip("destroy"),b.find(".portlet-title > .tools > .remove").tooltip("destroy"),b.find(".portlet-title > .tools > .config").tooltip("destroy"),b.find(".portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip("destroy"),b.remove()}),$("body").on("click",".portlet > .portlet-title .fullscreen",function(a){a.preventDefault();var b=$(this).closest(".portlet");if(b.hasClass("portlet-fullscreen"))$(this).removeClass("on"),b.removeClass("portlet-fullscreen"),$("body").removeClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height","auto");else{var c=Metronic.getViewPort().height-b.children(".portlet-title").outerHeight()-parseInt(b.children(".portlet-body").css("padding-top"))-parseInt(b.children(".portlet-body").css("padding-bottom"));$(this).addClass("on"),b.addClass("portlet-fullscreen"),$("body").addClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height",c)}}),$("body").on("click",".portlet > .portlet-title > .tools > a.reload",function(a){a.preventDefault();var b=$(this).closest(".portlet").children(".portlet-body"),c=$(this).attr("data-url"),d=$(this).attr("data-error-display");c?(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),$.ajax({type:"GET",cache:!1,url:c,dataType:"html",success:function(a){Metronic.unblockUI(b),b.html(a)},error:function(a,c,e){Metronic.unblockUI(b);var f="Error on reloading the content. Please check your connection and try again.";"toastr"==d&&toastr?toastr.error(f):"notific8"==d&&$.notific8?($.notific8("zindex",11500),$.notific8(f,{theme:"ruby",life:3e3})):alert(f)}})):(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),window.setTimeout(function(){Metronic.unblockUI(b)},1e3))}),$('.portlet .portlet-title a.reload[data-load="true"]').click(),$("body").on("click",".portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand",function(a){a.preventDefault()})},p=function(){if($().uniform){var a=$("input[type=checkbox]:not(.toggle, .make-switch, .icheck), input[type=radio]:not(.toggle, .star, .make-switch, .icheck)");a.size()>0&&a.each(function(){0===$(this).parents(".checker").size()&&$(this).show()})}},q=function(){$().iCheck&&$(".icheck").each(function(){var a=$(this).attr("data-checkbox")?$(this).attr("data-checkbox"):"icheckbox_minimal-grey",b=$(this).attr("data-radio")?$(this).attr("data-radio"):"iradio_minimal-grey";a.indexOf("_line")>-1||b.indexOf("_line")>-1?$(this).iCheck({checkboxClass:a,radioClass:b,insert:'
'+$(this).attr("data-label")}):$(this).iCheck({checkboxClass:a,radioClass:b})})},r=function(){$().bootstrapSwitch&&$(".make-switch").bootstrapSwitch()},s=function(){$().confirmation&&$("[data-toggle=confirmation]").confirmation({container:"body",btnOkClass:"btn-xs btn-success",btnCancelClass:"btn-xs btn-danger"})},t=function(){$("body").on("shown.bs.collapse",".accordion.scrollable",function(a){Metronic.scrollTo($(a.target))})},u=function(){if(location.hash){var a=location.hash.substr(1);$('a[href="#'+a+'"]').parents(".tab-pane:hidden").each(function(){var a=$(this).attr("id");$('a[href="#'+a+'"]').click()}),$('a[href="#'+a+'"]').click()}},v=function(){$("body").on("hide.bs.modal",function(){$(".modal:visible").size()>1&&$("html").hasClass("modal-open")===!1?$("html").addClass("modal-open"):$(".modal:visible").size()<=1&&$("html").removeClass("modal-open")}),$("body").on("show.bs.modal",".modal",function(){$(this).hasClass("modal-scroll")&&$("body").addClass("modal-open-noscroll")}),$("body").on("hide.bs.modal",".modal",function(){$("body").removeClass("modal-open-noscroll")}),$("body").on("hidden.bs.modal",".modal:not(.modal-cached)",function(){$(this).removeData("bs.modal")})},w=function(){$(".tooltips").tooltip(),$(".portlet > .portlet-title .fullscreen").tooltip({container:"body",title:"Fullscreen"}),$(".portlet > .portlet-title > .tools > .reload").tooltip({container:"body",title:"Reload"}),$(".portlet > .portlet-title > .tools > .remove").tooltip({container:"body",title:"Remove"}),$(".portlet > .portlet-title > .tools > .config").tooltip({container:"body",title:"Settings"}),$(".portlet > .portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip({container:"body",title:"Collapse/Expand"})},x=function(){$("body").on("click",".dropdown-menu.hold-on-click",function(a){a.stopPropagation()})},y=function(){$("body").on("click",'[data-close="alert"]',function(a){$(this).parent(".alert").hide(),$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-close="note"]',function(a){$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-remove="note"]',function(a){$(this).closest(".note").remove(),a.preventDefault()})},z=function(){$('[data-hover="dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")})},A=function(){$(".popovers").popover(),$(document).on("click.bs.popover.data-api",function(b){a&&a.popover("hide")})},B=function(){Metronic.initSlimScroll(".scroller")},C=function(){jQuery.fancybox&&$(".fancybox-button").size()>0&&$(".fancybox-button").fancybox({groupAttr:"data-rel",prevEffect:"none",nextEffect:"none",closeBtn:!0,helpers:{title:{type:"inside"}}})},D=function(){(c||d)&&$("input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)").each(function(){var a=$(this);""===a.val()&&""!==a.attr("placeholder")&&a.addClass("placeholder").val(a.attr("placeholder")),a.focus(function(){a.val()==a.attr("placeholder")&&a.val("")}),a.blur(function(){""!==a.val()&&a.val()!=a.attr("placeholder")||a.val(a.attr("placeholder"))})})},E=function(){$().select2&&$(".select2me").select2({placeholder:"Select"})};return{init:function(){l(),n(),p(),q(),r(),B(),C(),E(),o(),y(),x(),u(),w(),A(),t(),v(),s(),D()},initAjax:function(){p(),q(),r(),z(),B(),E(),C(),x(),w(),A(),t(),s()},initComponents:function(){this.initAjax()},setLastPopedPopover:function(b){a=b},addResizeHandler:function(a){f.push(a)},runResizeHandlers:function(){m()},scrollTo:function(a,b){var c=a&&a.size()>0?a.offset().top:0;a&&($("body").hasClass("page-header-fixed")&&(c-=$(".page-header").height()),c+=b?b:-1*a.height()),$("html,body").animate({scrollTop:c},"slow")},initSlimScroll:function(a){$(a).each(function(){if(!$(this).attr("data-initialized")){var a;a=$(this).attr("data-height")?$(this).attr("data-height"):$(this).css("height"),$(this).slimScroll({allowPageScroll:!0,size:"7px",color:$(this).attr("data-handle-color")?$(this).attr("data-handle-color"):"#bbb",wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",railColor:$(this).attr("data-rail-color")?$(this).attr("data-rail-color"):"#eaeaea",position:b?"left":"right",height:a,alwaysVisible:"1"==$(this).attr("data-always-visible"),railVisible:"1"==$(this).attr("data-rail-visible"),disableFadeOut:!0}),$(this).attr("data-initialized","1")}})},destroySlimScroll:function(a){$(a).each(function(){if("1"===$(this).attr("data-initialized")){$(this).removeAttr("data-initialized"),$(this).removeAttr("style");var a={};$(this).attr("data-handle-color")&&(a["data-handle-color"]=$(this).attr("data-handle-color")),$(this).attr("data-wrapper-class")&&(a["data-wrapper-class"]=$(this).attr("data-wrapper-class")),$(this).attr("data-rail-color")&&(a["data-rail-color"]=$(this).attr("data-rail-color")),$(this).attr("data-always-visible")&&(a["data-always-visible"]=$(this).attr("data-always-visible")),$(this).attr("data-rail-visible")&&(a["data-rail-visible"]=$(this).attr("data-rail-visible")),$(this).slimScroll({wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",destroy:!0});var b=$(this);$.each(a,function(a,c){b.attr(a,c)})}})},scrollTop:function(){Metronic.scrollTo()},blockUI:function(a){a=$.extend(!0,{},a);var b="";if(b=a.animate?'
':a.iconOnly?'
':a.textOnly?'
  '+(a.message?a.message:"LOADING...")+"
":'
  '+(a.message?a.message:"LOADING...")+"
",a.target){var c=$(a.target);c.height()<=$(window).height()&&(a.cenrerY=!0),c.block({message:b,baseZ:a.zIndex?a.zIndex:1e3,centerY:void 0!==a.cenrerY?a.cenrerY:!1,css:{top:"10%",border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})}else $.blockUI({message:b,baseZ:a.zIndex?a.zIndex:1e3,css:{border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})},unblockUI:function(a){a?$(a).unblock({onUnblock:function(){$(a).css("position",""),$(a).css("zoom","")}}):$.unblockUI()},startPageLoading:function(a){a&&a.animate?($(".page-spinner-bar").remove(),$("body").append('
')):($(".page-loading").remove(),$("body").append('
  '+(a&&a.message?a.message:"Loading...")+"
"))},stopPageLoading:function(){$(".page-loading, .page-spinner-bar").remove()},alert:function(a){a=$.extend(!0,{container:"",place:"append",type:"success",message:"",close:!0,reset:!0,focus:!0, -closeInSeconds:0,icon:""},a);var b=Metronic.getUniqueID("Metronic_alert"),c='
'+(a.close?'':"")+(""!==a.icon?' ':"")+a.message+"
";return a.reset&&$(".Metronic-alerts").remove(),a.container?"append"==a.place?$(a.container).append(c):$(a.container).prepend(c):$("body").hasClass("page-container-bg-solid")?$(".page-title").after(c):$(".page-bar").size()>0?$(".page-bar").after(c):$(".page-breadcrumb").after(c),a.focus&&Metronic.scrollTo($("#"+b)),a.closeInSeconds>0&&setTimeout(function(){$("#"+b).remove()},1e3*a.closeInSeconds),b},initUniform:function(a){a?$(a).each(function(){0===$(this).parents(".checker").size()&&($(this).show(),$(this).uniform())}):p()},updateUniform:function(a){$.uniform.update(a)},initFancybox:function(){C()},getActualVal:function(a){return a=$(a),a.val()===a.attr("placeholder")?"":a.val()},getURLParameter:function(a){var b,c,d=window.location.search.substring(1),e=d.split("&");for(b=0;b a").each(function(){var a=$(this).attr("href").toLowerCase();return a.length>1&&d.substr(1,a.length-1)==a.substr(1)?void(b=$(this)):void 0}),b&&0!=b.size()&&"javascript:;"!==b.attr("href").toLowerCase()&&"#"!==b.attr("href").toLowerCase()){parseInt(e.data("slide-speed")),e.data("keep-expanded");e.find("li.active").removeClass("active"),e.find("li > a > .selected").remove(),e.hasClass("page-sidebar-menu-hover-submenu")===!1?e.find("li.open").each(function(){0===$(this).children(".sub-menu").size()&&($(this).removeClass("open"),$(this).find("> a > .arrow.open").removeClass("open"))}):e.find("li.open").removeClass("open"),b.parents("li").each(function(){$(this).addClass("active"),$(this).find("> a > span.arrow").addClass("open"),1===$(this).parent("ul.page-sidebar-menu").size()&&$(this).find("> a").append(''),1===$(this).children("ul.sub-menu").size()&&$(this).addClass("open")}),"click"===a&&Metronic.getViewPort().width a",function(a){var b=$(this).next().hasClass("sub-menu");if(!(Metronic.getViewPort().width>=c&&1===$(this).parents(".page-sidebar-menu-hover-submenu").size())){if(b===!1)return void(Metronic.getViewPort().width a.ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=jQuery(".page-sidebar ul"),e=($(".page-content"),$(".page-content .page-content-body"));d.children("li.active").removeClass("active"),d.children("arrow.open").removeClass("open"),$(this).parents("li").each(function(){$(this).addClass("active"),$(this).children("a > span.arrow").addClass("open")}),$(this).parents("li").addClass("active"),Metronic.getViewPort().width li.open > a").click(),Metronic.stopPageLoading(),e.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){Metronic.stopPageLoading(),e.html("

Could not load the requested content.

")}})}),jQuery(".page-content").on("click",".ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=($(".page-content"),$(".page-content .page-content-body"));Metronic.startPageLoading(),Metronic.getViewPort().widthCould not load the requested content."),Metronic.stopPageLoading()}})}),i(),$(".page-sidebar").on("click",".sidebar-search .remove",function(a){a.preventDefault(),$(".sidebar-search").removeClass("open")}),$(".page-sidebar .sidebar-search").on("keypress","input.form-control",function(a){return 13==a.which?($(".sidebar-search").submit(),!1):void 0}),0!==$(".sidebar-search").size()&&($(".sidebar-search .input-group").on("click",function(a){a.stopPropagation()}),$("body").on("click",function(){$(".sidebar-search").hasClass("open")&&$(".sidebar-search").removeClass("open")}))},g=function(){var a=Metronic.getViewPort().height-$(".page-header").outerHeight();return $("body").hasClass("page-footer-fixed")&&(a-=$(".page-footer").outerHeight()),a},h=function(){var a=$(".page-sidebar-menu");return Metronic.destroySlimScroll(a),0===$(".page-sidebar-fixed").size()?void d():void(Metronic.getViewPort().width>=c&&(a.attr("data-height",g()),Metronic.initSlimScroll(a),d()))},i=function(){var a=$("body");a.hasClass("page-sidebar-fixed")&&$(".page-sidebar").on("mouseenter",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").removeClass("page-sidebar-menu-closed")}).on("mouseleave",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").addClass("page-sidebar-menu-closed")})},j=function(){$("body");$.cookie&&"1"===$.cookie("sidebar_closed")&&Metronic.getViewPort().width>=c?($("body").addClass("page-sidebar-closed"),$(".page-sidebar-menu").addClass("page-sidebar-menu-closed")):$.cookie&&$.cookie("sidebar_closed","0")},k=function(){$(".page-header").on("click",'.hor-menu a[data-toggle="tab"]',function(a){a.preventDefault();var b=$(".hor-menu .nav"),c=b.find("li.current");$("li.active",c).removeClass("active"),$(".selected",c).remove();var d=$(this).parents("li").last();d.addClass("current"),d.find("a:first").append('')}),$(".page-header").on("click",".search-form",function(a){$(this).addClass("open"),$(this).find(".form-control").focus(),$(".page-header .search-form .form-control").on("blur",function(a){$(this).closest(".search-form").removeClass("open"),$(this).unbind("blur")})}),$(".page-header").on("keypress",".hor-menu .search-form .form-control",function(a){return 13==a.which?($(this).closest(".search-form").submit(),!1):void 0}),$(".page-header").on("mousedown",".search-form.open .submit",function(a){a.preventDefault(),a.stopPropagation(),$(this).closest(".search-form").submit()}),$('[data-hover="megamenu-dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")}),$(document).on("click",".mega-menu-dropdown .dropdown-menu",function(a){a.stopPropagation()})},l=function(){$("body").on("shown.bs.tab",'a[data-toggle="tab"]',function(){d()})},m=function(){var a=300,b=500;navigator.userAgent.match(/iPhone|iPad|iPod/i)?$(window).bind("touchend touchcancel touchleave",function(c){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}):$(window).scroll(function(){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}),$(".scroll-to-top").click(function(a){return a.preventDefault(),$("html, body").animate({scrollTop:0},b),!1})},n=function(){var a,b=$(".full-height-content");if(a=Metronic.getViewPort().height-$(".page-header").outerHeight(!0)-$(".page-footer").outerHeight(!0)-$(".page-title").outerHeight(!0)-$(".page-bar").outerHeight(!0),b.hasClass("portlet")){var d=b.find(".portlet-body");if(Metronic.getViewPort().width\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_EXTRACTED_REPORTS\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n\n'),a.put("app/analytic/metric/list/create.modal.html",'\n\n\n'),a.put("app/analytic/metric/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_DEFAULT_METRICS\' | translate }} \n
\n
\n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_METRICS\' | translate }} \n
\n
\n \n
\n \n
\n \n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/analytic/metric/list/view.modal.html",'\n\n\n'),a.put("app/analytic/metric/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{metric.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/analytic/metric/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_METRIC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{\'APPLICATION_\'+$select.selected.value.toUpperCase() | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/analytic/report/list/copy.modal.html",'\n\n\n'),a.put("app/analytic/report/list/create.modal.html",'\n\n\n'), -a.put("app/analytic/report/list/extract.modal.html",'\n\n\n'),a.put("app/analytic/report/list/list.html",'\n
\n
\n \n
\n \n
\n
\n
\n \n {{ \'APPLICATION_FOLDERS\' | translate }} \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_REPORTS\' | translate }} - {{selectedNode}}\n
\n
\n \n
\n \n \n {{\'APPLICATION_IMPORT_FROM_JSON\' | translate}}\n \n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n\n'),a.put("app/analytic/report/list/preview.modal.html",'\n\n\n'),a.put("app/analytic/report/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{report.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/analytic/report/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_REPORT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n\n
\n \n
\n
\n\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n\n\n \n
\n\n
\n \n
\n
\n
\n \n \n {{\'APPLICATION_\'+$select.selected.value.toUpperCase() | translate}}\n \n
\n
\n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n
\n \n {{ \'APPLICATION_FIELDS\' | translate}} \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{ \'APPLICATION_FIELD\' | translate }} / {{ \'APPLICATION_METRIC\' | translate }}{{ \'APPLICATION_ALIAS\' | translate }}{{ \'APPLICATION_FUNCTION\' | translate }}{{ \'APPLICATION_FORMAT\' | translate }}{{ \'APPLICATION_GROUP_BY\' | translate }}{{ \'APPLICATION_ORDER_BY\' | translate }}
\n \n
\n \n \n \n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n \n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n \n
\n \n
\n \n \n {{$select.selected.name | translate}}\n \n {{$translate.instant(groupBy.name)}}\n \n \n
\n \n
\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n
\n \n
\n \n \n \n
\n {{ \'MESSAGE_ADD_A_FIELD\' | translate }}\n
\n \n \n
\n
\n
\n
\n \n {{ \'APPLICATION_CONDITIONS\' | translate}} \n
\n
\n
\n Output
\n \n
\n\n \n
\n \n
\n
\n
\n
\n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n
\n
\n
\n
\n
\n
\n
\n'),a.put("app/channels/chat/offline/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_VISITORS\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/offline/view/view.detail.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_DETAIL\' | translate}}\n
\n
\n
\n
\n
\n

\n {{\'APPLICATION_MESSAGE\' | translate}}\n
\n

\n
\n \n
\n

\n {{chatVisitor.ChatEnquiry.text}}\n

\n
\n
\n \n
\n
\n
\n
\n'),a.put("app/channels/chat/offline/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{chatVisitor.ChatEnquiry.email}}\n
\n
\n {{chatVisitor.ChatEnquiry.username}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/online/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_VISITORS\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/online/view/view.detail.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_DETAIL\' | translate}}\n
\n
\n \n
\n
\n
\n'), -a.put("app/channels/chat/online/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{chatRoom.ChatVisitor.email}}\n
\n
\n {{chatRoom.ChatVisitor.fullname}}\n
\n
\n \n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/preview/preview.html",'\n
\n
\n \n \n \n \n \n \n {{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}\n
\n
\n
\n \n
\n
\n

\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n \n
\n
\n

{{chatWebsite.rating_message}}

\n
\n
\n \n \n
\n
\n \n \n
\n \n \n
\n
\n \n
\n
\n'),a.put("app/channels/chat/queue/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/chat/queue/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_QUEUES\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/queue/view/view.agents.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_AGENTS\' | translate}}\n
\n
\n
\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n'),a.put("app/channels/chat/queue/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{queue.name}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/queue/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
\n
\n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n \n {{$select.selected.toUpperCase()}}\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n'),a.put("app/channels/chat/realtime/view/agent/agent.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/realtime/view/agent/agent.modal.info.html",'\n\n\n'),a.put("app/channels/chat/realtime/view/agent/queue.modal.add.html",'\n\n\n'), -a.put("app/channels/chat/realtime/view/application/application.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/realtime/view/view.html",'\n\n\n'),a.put("app/channels/chat/room/external/list/list.html",'\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n \n
\n
\n
\n \n \n \n
\n
\n \n {{$item}}\n \n {{tag}}\n \n \n
\n
\n
\n \n
\n
\n \n \n \n\n \n\n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/room/group/list/list.html",'\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n \n \n \n
\n
\n
\n \n
\n
\n
\n \n \n \n
\n
\n \n {{$item}}\n \n {{tag}}\n \n \n
\n
\n
\n \n
\n
\n \n \n \n\n \n\n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/room/internal/list/list.html",'\n
\n
\n \n \n \n\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/room/room.add.html",'\n\n\n\n\n'),a.put("app/channels/chat/room/room.close.html",'\n\n\n'),a.put("app/channels/chat/room/room.directive.html",'
\n
\n
\n \n | \n {{chatRoom.status}}\n | \n {{chatRoom.ChatWebsite.name | truncate: 25: \'...\': true}}\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n \n \n
\n
\n \n {{$item}}\n \n {{tag}}\n \n \n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n {{\'APPLICATION_ROOM_ID\' | translate}}:

{{chatRoom.id}}

\n {{\'APPLICATION_NAME\' | translate}}:

{{chatRoom.ChatVisitor.fullname}}

\n {{\'APPLICATION_EMAIL\' | translate}}:

{{chatRoom.ChatVisitor.email}}

\n {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}:

{{chatRoom.ChatVisitor.remote_address}}

\n {{\'APPLICATION_BROWSER\' | translate}}:

{{chatRoom.ChatVisitor.browser}}

\n {{\'APPLICATION_OS\' | translate}}:

{{chatRoom.ChatVisitor.os}}

\n
\n
\n\n \n \n \n \n \n {{\'APPLICATION_NAME\' | translate}}:

{{user.fullname}}

\n {{\'APPLICATION_ROLE\' | translate}}:

{{user.role}}

\n {{\'APPLICATION_INTERNAL\' | translate}}:

{{user.internal}}

\n {{\'APPLICATION_EMAIL\' | translate}}:

{{user.email}}

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n \n \n \n
\n
\n \n \n
\n No Results Found\n
\n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
\n
\n\n
\n
\n
\n
\n
\n
\n"),a.put("app/channels/chat/room/room.html",'\n\n\n'),a.put("app/channels/chat/room/template.html",'
\n
\n
\n
\n \n \n
\n
\n \n
\n {{video.description}}\n
\n
\n {{video.views}}\n {{video.likes}}\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/room/view.tags.modal.html",'\n\n\n'),a.put("app/channels/chat/visitor/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_VISITORS\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/visitor/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{chatVisitor.fullname}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/visitor/view/view.profile.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_PROFILE\' | translate}}\n
\n
\n \n
\n
\n
\n'),a.put("app/channels/chat/website/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_WEB_SITES\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'), -a.put("app/channels/chat/website/view/action/list/list.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n'),a.put("app/channels/chat/website/view/action/view/view.html",'\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACTION\' | translate }} \n
\n
\n
\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n
\n \n
\n \n \n {{$select.selected.fullname}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n \n
\n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n \n
\n
\n \n
\n
to
\n
\n \n
\n
\n \n\n \n
\n \n
\n \n
\n
\n \n\n \n
\n \n
\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
\n
\n \n
\n\n
\n\n \n
\n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/website/view/action/wizard/wizard.html",'\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACTION\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n
\n \n
\n \n \n {{$select.selected.fullname}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n \n
\n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n \n
\n
\n \n
\n
to
\n
\n \n
\n
\n \n\n \n
\n \n
\n \n
\n
\n \n\n \n
\n \n
\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
\n
\n \n
\n\n
\n\n \n
\n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n\n \n
\n
\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/channels/chat/website/view/disposition/modal/add.modal.html",'\n\n\n'),a.put("app/channels/chat/website/view/disposition/view/view.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_DISPOSITIONS\' | translate}}\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n

Info! {{\'MESSAGE_NO_DISPOSITIONS_AVAILABLE\' | translate}}

\n
\n
\n
\n\n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/channels/chat/website/view/embedding/view/view.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_EMBEDDING\' | translate}}\n
\n \n
\n
\n
\n
\n

{{\'APPLICATION_EMBED_SNIPPET\' | translate}}

\n

\n {{\'MESSAGE_EMBED_SNIPPET\' | translate}}\n

\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n'), -a.put("app/channels/chat/website/view/form/view/view.html",'
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_FIELDS_SELECTED\' | translate }}\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_FIELDS_AVAILABLE\' | translate }}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_FIELDS_SELECTED\' | translate }}\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_FIELDS_AVAILABLE\' | translate }}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n'),a.put("app/channels/chat/website/view/proactive/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/chat/website/view/proactive/list/list.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_PROACTIVE_ACTIONS\' | translate}}\n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n'),a.put("app/channels/chat/website/view/setting/view/view.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
\n
\n
\n
\n \n
\n \n
\n\n \n {{$select.selected.name}}\n \n
\n
\n
\n\n \n \n \n\n
\n
\n \n \n
\n
\n
\n
\n
\n'),a.put("app/channels/chat/website/view/snippet/view/view.html",'
\n
\n
\n \n
\n
\n
\n
\n\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}\n \n
\n
\n
\n
\n \n\n \n
\n \n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
\n
\n
\n
\n \n\n\n \n
\n
\n \n\n \n
\n
\n\n \n
\n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
\n
\n
\n
\n \n\n \n
\n
\n \n\n \n
\n
\n\n

{{\'APPLICATION_ONLINE_STATE\' | translate}}

\n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n

{{\'APPLICATION_RATING_STATE\' | translate}}

\n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n

{{\'APPLICATION_OFFLINE_STATE\' | translate}}

\n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n\n \n
\n
\n\n \n
\n
\n \n
\n \n\n \n
\n
\n \n {{\'MESSAGE_REMEMBER_SMTP_SERVICE_ACCOUNT\' | translate}}.\n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n
\n
\n \n
\n \n \n \n {{$select.selected}}\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n'), -a.put("app/channels/chat/website/view/view.html",'\n\n\n'),a.put("app/channels/chat/website/wizard/wizard.html",'\n\n\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_WEB_SITE\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n
\n
\n\n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}\n \n
\n
\n
\n
\n \n\n \n
\n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
\n
\n
\n
\n \n\n\n \n
\n
\n\n \n
\n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n\n \n
\n\n \n
\n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
\n
\n
\n
\n \n\n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/channels/fax/account/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/fax/account/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNTS\' | translate }} \n
\n
\n \n
\n \n \n
\n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/fax/account/view/action/list/list.html",'
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{\'APPLICATION_ACTIONS\' | translate}}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n'), -a.put("app/channels/fax/account/view/action/view/view.html",'\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {{ \'APPLICATION_ACTION\' | translate }} \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{$select.selected.name}}\r\n \r\n
\r\n
\r\n
\r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n \r\n {{$select.selected.name}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Warning!

\r\n

\r\n {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\r\n

\r\n

\r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_QUEUES\' | translate}}\r\n

\r\n
\r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n {{$select.selected.fullname}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Warning!

\r\n

\r\n {{ \'MESSAGE_NO_AGENTS_AVAILABLE\' | translate }}\r\n

\r\n

\r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_QUEUES\' | translate}}\r\n

\r\n
\r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ intType.name | translate }}\r\n \r\n \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
to
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ weekDay.name | translate}}\r\n \r\n \r\n to\r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ weekDay.name | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n {{$select.selected}}\r\n \r\n {{monthDay}}\r\n \r\n \r\n to\r\n \r\n {{$select.selected}}\r\n \r\n {{monthDay}}\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ month.name | translate }}\r\n \r\n \r\n to\r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ month.name | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n {{ $select.selected.name}}\r\n \r\n {{ interval.name}}\r\n \r\n \r\n
\r\n

Warning!

\r\n

\r\n {{ \'MESSAGE_NO_INTERVALS_AVAILABLE\' | translate }}\r\n

\r\n

\r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_INTERVALS\' | translate}}\r\n

\r\n
\r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n'),a.put("app/channels/fax/account/view/action/wizard/wizard.html",'\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {{ \'APPLICATION_ACTION\' | translate }} WIZARD \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {{$select.selected.name}}\r\n \r\n
\r\n
\r\n
\r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n \r\n {{$select.selected.name}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Warning!

\r\n

\r\n {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\r\n

\r\n

\r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_QUEUES\' | translate}}\r\n

\r\n
\r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n {{$select.selected.fullname}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Warning!

\r\n

\r\n {{ \'MESSAGE_NO_AGENTS_AVAILABLE\' | translate }}\r\n

\r\n

\r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_QUEUES\' | translate}}\r\n

\r\n
\r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ intType.name | translate }}\r\n \r\n \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
to
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ weekDay.name | translate}}\r\n \r\n \r\n to\r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ weekDay.name | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n {{$select.selected}}\r\n \r\n {{monthDay}}\r\n \r\n \r\n to\r\n \r\n {{$select.selected}}\r\n \r\n {{monthDay}}\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ month.name | translate }}\r\n \r\n \r\n to\r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ month.name | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n {{ $select.selected.name}}\r\n \r\n {{ interval.name}}\r\n \r\n \r\n
\r\n

Warning!

\r\n

\r\n {{ \'MESSAGE_NO_INTERVALS_AVAILABLE\' | translate }}\r\n

\r\n

\r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_INTERVALS\' | translate}}\r\n

\r\n
\r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
\r\n \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n'),a.put("app/channels/fax/account/view/disposition/modal/add.modal.html",'\n\n\n'), -a.put("app/channels/fax/account/view/disposition/view/view.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_DISPOSITIONS\' | translate}}\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n

Info! {{\'MESSAGE_NO_DISPOSITIONS_AVAILABLE\' | translate}}

\n
\n
\n
\n\n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/channels/fax/account/view/setting/view/view.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
\n \n
\n
\n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'DESCRIPTION_HEADERINFO\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_INTERVALS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'DESCRIPTION_LOCALSTATIONID\' | translate}}.\n \n
\n \n\n \n
\n \n
\n\n \n {{$select.selected.name}}\n \n
\n
\n
\n\n \n \n \n\n
\n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n\n \n
\n
\n
\n
\n \n
\n
\n \n \n {{\'DESCRIPTION_ECM\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{\'DESCRIPTION_MINRATE\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{\'DESCRIPTION_MAXRATE\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'DESCRIPTION_MODEM\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n \n {{\'DESCRIPTION_GATEWAY\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_GATEWAY\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'DESCRIPTION_FAXDETECT\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_FAXDETECT\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'DESCRIPTION_T38TIMEOUT\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_T38TIMEOUT\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n\n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/channels/fax/account/view/view.html",'\n
\n
\n \n\n\n\n\n \n
\n \n
\n \n
\n \n
\n \n\n \n
\n
\n {{ account.name || account.description }}\n
\n
\n {{ account.phone }}\n
\n
\n \n\n \n \n \n
\n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/fax/account/wizard/wizard.html",'\n\n\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'DESCRIPTION_HEADERINFO\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_INTERVALS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'DESCRIPTION_LOCALSTATIONID\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n\n
\n
\n\n \n
\n\n \n
\n
\n \n \n {{\'DESCRIPTION_ECM\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{\'DESCRIPTION_MINRATE\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{\'DESCRIPTION_MAXRATE\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'DESCRIPTION_MODEM\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'DESCRIPTION_GATEWAY\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_GATEWAY\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'DESCRIPTION_FAXDETECT\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_FAXDETECT\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'DESCRIPTION_T38TIMEOUT\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_T38TIMEOUT\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n \n\n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n\n
\n\n
\n
\n \n
\n
\n\n'), -a.put("app/channels/fax/inbox/message/message.directive.html",'
\n
\n
\n From: \n [{{message.from}}]\n
\n To: \n [{{message.to}}]\n
\n
\n {{\'APPLICATION_SENT_BY\' | translate}}: {{message.User.fullname}}\n
\n
\n
\n \n \n {{message.status | uppercase}}\n \n \n {{message.status | uppercase}}\n \n \n {{message.status | uppercase}}\n \n \n \n \n {{message.status | uppercase}}\n \n \n \n \n \n
\n
\n {{faxAttachment.name}}\n \n \n \n
\n
\n'),a.put("app/channels/fax/inbox/note/note.directive.html",'
\n
\n
\n \n \n \n\n \n
\n
\n {{\'APPLICATION_ADD_BY\' | translate}}: {{message.User.fullname}}\n
\n
\n
\n \n
\n'),a.put("app/channels/fax/inbox/note/note.modal.html",'\n\n\n'),a.put("app/channels/fax/inbox/room/room.directive.html",'\n
\n
\n
\n
\n \n | \n #{{faxRoom.id}} {{faxRoom.status}}\n | \n {{faxRoom.from}}\n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n \n \n
\n
\n \n {{$item}}\n \n {{tag}}\n \n \n
\n
\n
\n \n
\n\n
\n\n \n\n
\n
    \n \n
    \n \n \n
    \n \n \n \n
\n
\n
\n
\n
\n

Info! {{\'MESSAGE_FAX_ROOM_CLOSED\' | translate}}

\n

\n {{\'MESSAGE_FAX_ROOM_CLOSED_DETAILS\' | translate}}.\n

\n
\n
\n \n
\n\n \n
\n
\n
\n
\n \n
\n
\n \n {{$select.selected.name}}\n \n
\n \n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n \n\n \n
\n
\n
\n
\n \n
\n
\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n \n\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n
{{ item.file.name | truncate: 5: \'...\': true}}{{ item.file.size/1024/1024|number:2 }} MB\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n
\n \n\n \n\n
\n
\n
\n
\n
\n
\n
\n\n'),a.put("app/channels/fax/inbox/status/status.modal.html",'\n\n\n'),a.put("app/channels/fax/inbox/view/account/list/list.html",'\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{$item}}\r\n \r\n {{tag}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\r\n
\r\n \r\n
\r\n
\r\n\r\n'),a.put("app/channels/fax/inbox/view/view.agents.modal.html",'\n\n\n'),a.put("app/channels/fax/inbox/view/view.html",'
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n

Warning!

\r\n

\r\n {{ \'MESSAGE_NO_AVAILABLE_ACCOUNTS\' | translate }}\r\n

\r\n

\r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_ACCOUNTS\' | translate}}\r\n

\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Info! {{\'APPLICATION_NO_ACCOUNT_SELECTED\' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n'),a.put("app/channels/fax/inbox/view/view.status.modal.html",'\n\n\n'),a.put("app/channels/fax/inbox/view/view.tags.modal.html",'\n\n\n'),a.put("app/channels/fax/queue/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/fax/queue/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_QUEUES\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/fax/queue/view/view.agents.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_AGENTS\' | translate}}\n
\n
\n
\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n'),a.put("app/channels/fax/queue/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{queue.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'), -a.put("app/channels/fax/queue/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
\n
\n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n \n {{$select.selected.toUpperCase()}}\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n'),a.put("app/channels/fax/realtime/view/agent/agent.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/fax/realtime/view/agent/agent.modal.info.html",'\n\n\n'),a.put("app/channels/fax/realtime/view/agent/queue.modal.add.html",'\n\n\n'),a.put("app/channels/fax/realtime/view/application/application.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/fax/realtime/view/view.html",'\n\n\n'),a.put("app/channels/mail/account/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNTS\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/mail/account/view/action/list/list.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n'),a.put("app/channels/mail/account/view/action/view/view.html",'\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACTION\' | translate }} \n
\n
\n
\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n
\n \n
\n \n \n {{$select.selected.fullname}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n \n
\n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n \n
\n
\n \n
\n
to
\n
\n \n
\n
\n \n\n \n
\n \n
\n \n
\n
\n \n\n \n
\n \n
\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
\n
\n \n
\n\n
\n\n \n
\n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n
\n
\n \n
\n
\n\n'),a.put("app/channels/mail/account/view/action/wizard/wizard.html",'\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACTION\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n
\n \n
\n \n \n {{$select.selected.fullname}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n \n
\n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n \n
\n
\n \n
\n
to
\n
\n \n
\n
\n \n\n \n
\n \n
\n \n
\n
\n \n\n \n
\n \n
\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
\n
\n \n
\n\n
\n\n \n
\n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n\n \n
\n
\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n
\n\n'), -a.put("app/channels/mail/account/view/disposition/modal/add.modal.html",'\n\n\n'),a.put("app/channels/mail/account/view/disposition/view/view.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_DISPOSITIONS\' | translate}}\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n

Info! {{\'MESSAGE_NO_MAIL_DISPOSITIONS_AVAILABLE\' | translate}}

\n
\n
\n
\n\n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/channels/mail/account/view/setting/view/view.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
\n \n
\n
\n \n \n \n\n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n\n \n {{$select.selected.name}}\n \n
\n
\n
\n\n \n \n \n\n
\n
\n \n\n \n
\n \n
\n\n \n {{$select.selected.name}}\n \n
\n
\n
\n\n \n \n \n\n
\n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n\n \n
\n
\n

ERROR

\n \n
\n\n
\n

CONNECTED

\n
\n\n
\n

TRYING...

\n
\n\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n
\n \n\n \n
\n\n
\n

ERROR

\n \n
\n\n
\n

CONNECTED

\n
\n\n
\n

TRYING...

\n
\n\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n \n
\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/channels/mail/account/view/view.html",'\n
\n
\n \n\n\n\n\n \n
\n \n
\n \n
\n \n
\n \n\n \n
\n
\n {{ account.description || account.name }}\n
\n
\n {{account.email}}\n
\n
\n \n\n \n \n \n
\n
\n \n
\n \n
\n\n
\n'),a.put("app/channels/mail/account/wizard/wizard.html",'\n
\n
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n
\n
\n\n \n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n
\n\n \n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n
\n
\n
\n \n
\n
\n\n'), -a.put("app/channels/mail/inbox/message/message.directive.html",'
\n
\n
\n From: \n [{{message.from[0]}}]\n
\n To: \n

["{{to}}",]

\n
\n Cc: \n

["{{cc}}",]

\n
\n
\n {{\'APPLICATION_SENT_BY\' | translate}}: {{message.User.fullname}}\n
\n
\n
\n \n \n {{message.status | uppercase}}\n \n \n {{message.status | uppercase}}\n \n \n {{message.status | uppercase}}\n \n \n \n \n {{message.status | uppercase}}\n \n \n \n \n \n
\n
\n
{{\'MESSAGE_NO_AVAILABLE_TEXT\' | translate | lowercase}}
\n
\n
\n {{mailAttachment.name}}\n \n ({{mailAttachment.size | prettyBytes}})\n \n \n \n \n \n \n \n
\n
\n'),a.put("app/channels/mail/inbox/note/note.directive.html",'
\n
\n
\n \n \n \n\n \n
\n
\n {{\'APPLICATION_ADD_BY\' | translate}}: {{message.User.fullname}}\n
\n
\n
\n \n
\n'),a.put("app/channels/mail/inbox/note/note.modal.html",'\n\n\n'),a.put("app/channels/mail/inbox/room/room.directive.html",'\n
\n
\n
\n
\n \n | \n #{{mailRoom.id}} {{mailRoom.status}}\n | \n Ref: #{{mailRoom.ParentId}}\n | \n {{mailRoom.subject || \'No subject\' | truncate: 25: \'...\': true}}\n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n \n \n
\n
\n \n {{$item}}\n \n {{tag}}\n \n \n
\n
\n
\n \n
\n\n
\n\n \n
\n
    \n \n
    \n \n \n
    \n \n \n \n
\n
\n
\n
\n
\n

Info! {{\'MESSAGE_MAIL_ROOM_CLOSED\' | translate}}

\n

\n {{\'MESSAGE_MAIL_ROOM_CLOSED_DETAILS\' | translate}}.\n

\n
\n
\n \n
\n\n \n
\n
\n
\n
\n \n
\n
\n \n {{$select.selected.name}}\n \n
\n \n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n \n\n \n
\n
\n
\n
\n \n
\n
\n \n {{$item}}\n \n {{to}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n \n\n \n
\n
\n
\n
\n \n
\n
\n \n {{$item}}\n \n {{cc}}\n \n \n
\n
\n
\n
\n \n\n \n
\n
\n
\n
\n \n
\n
\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n \n\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n {{\'APPLICATION_ATTACHMENTS\' | translate}}:\n {{ item.file.name }}{{ item.file.size/1024/1024|number:2 }} MB\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n
\n \n\n \n
\n
\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n\n \n
\n
\n
\n \n \n \n
\n
\n \n \n
\n No Results Found\n
\n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
\n
\n
\n \n\n
\n \n
\n
\n
\n
\n
\n\n"),a.put("app/channels/mail/inbox/status/status.modal.html",'\n\n\n'),a.put("app/channels/mail/inbox/view/account/list/list.html",'\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n \n \n
\n
\n \n {{$item}}\n \n {{tag}}\n \n \n
\n
\n
\n \n
\n
\n \n \n \n\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/mail/inbox/view/view.agents.modal.html",'\n\n\n'),a.put("app/channels/mail/inbox/view/view.html",'\n\n\n
\n
\n \n
\n\n
\n \n
\n
\n
\n

Info! {{\'APPLICATION_NO_ACCOUNT_SELECTED\' | translate}}

\n
\n
\n
\n \n
\n\n
\n'),a.put("app/channels/mail/inbox/view/view.tags.modal.html",'\n\n\n'),a.put("app/channels/mail/inbox/view/view.templates.modal.html",'\n\n\n'),a.put("app/channels/mail/queue/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/mail/queue/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_QUEUES\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'), -a.put("app/channels/mail/queue/view/view.agents.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_AGENTS\' | translate}}\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n

\n
\n
\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n'),a.put("app/channels/mail/queue/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{queue.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n \n'),a.put("app/channels/mail/queue/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
\n
\n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n {{$select.selected.toUpperCase()}}\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n'),a.put("app/channels/mail/realtime/view/agent/agent.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/mail/realtime/view/agent/agent.modal.info.html",'\n\n\n'),a.put("app/channels/mail/realtime/view/agent/queue.modal.add.html",'\n\n\n'),a.put("app/channels/mail/realtime/view/application/application.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/mail/realtime/view/view.html",'\n\n\n'),a.put("app/channels/mail/realtime/view/view.queue.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/realtime/view/agent/agent.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/realtime/view/agent/agent.modal.info.html",'\n\n\n'),a.put("app/channels/realtime/view/agent/queue.modal.add.html",'\n\n\n'),a.put("app/channels/realtime/view/view.html",'\n\n\n'),a.put("app/channels/sms/account/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNTS\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/sms/account/view/action/list/list.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n'),a.put("app/channels/sms/account/view/action/view/view.html",'\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACTION\' | translate }} \n
\n
\n
\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n
\n \n
\n \n \n {{$select.selected.fullname}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n \n
\n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n \n
\n
\n \n
\n
to
\n
\n \n
\n
\n \n\n \n
\n \n
\n \n
\n
\n \n\n \n
\n \n
\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
\n
\n \n
\n\n
\n\n \n
\n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n
\n
\n \n
\n
\n\n'), -a.put("app/channels/sms/account/view/action/wizard/wizard.html",'\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACTION\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n
\n \n
\n \n \n {{$select.selected.fullname}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n \n
\n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n \n
\n
\n \n
\n
to
\n
\n \n
\n
\n \n\n \n
\n \n
\n \n
\n
\n \n\n \n
\n \n
\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
\n
\n \n
\n\n
\n\n \n
\n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n\n \n
\n
\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/channels/sms/account/view/disposition/modal/add.modal.html",'\n\n\n'),a.put("app/channels/sms/account/view/disposition/view/view.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_DISPOSITIONS\' | translate}}\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n

Info! {{\'MESSAGE_NO_SMS_DISPOSITIONS_AVAILABLE\' | translate}}

\n
\n
\n
\n\n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/channels/sms/account/view/view.html",'\n
\n
\n \n\n\n\n\n \n
\n \n
\n \n
\n \n
\n \n\n \n
\n
\n {{ account.description || account.name }}\n
\n
\n {{account.email}}\n
\n
\n \n\n \n \n \n
\n
\n \n
\n \n
\n\n
\n'),a.put("app/channels/sms/account/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
\n \n
\n
\n
\n \n
\n
\n \n
\n \n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n
\n\n \n {{$select.selected.name}}\n \n
\n
\n
\n\n \n \n \n\n
\n
\n \n\n\n \n
\n
\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n\n
\n \n \n \n {{ \'DESCRIPTION_PHONE_NUMBER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n\n
\n \n \n {{$select.selected | uppercase}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{ \'DESCRIPTION_PHONE_NUMBER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n\n
\n Copy the following url and insert it into your {{account.type}} account settings to receive sms.\n Detail.\n \n {{\'APPLICATION_COPY_TO_CLIPBOARD\' | translate}}\n \n

\n \n\n
\n \n \n
\n\n
\n Copy the following url and insert it into your {{account.type}} account settings to receive delivery status.\n Detail\n \n {{\'APPLICATION_COPY_TO_CLIPBOARD\' | translate}}\n \n

\n\n \n\n
\n \n \n
\n
\n \n\n\n\n
\n
\n
\n
\n
\n'), -a.put("app/channels/sms/account/wizard/wizard.html",'\n
\n
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n\n
\n \n \n {{$select.selected | uppercase}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n \n {{ \'DESCRIPTION_PHONE_NUMBER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n\n
\n \n \n {{$select.selected | uppercase}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{ \'DESCRIPTION_PHONE_NUMBER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n\n\n\n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n
\n\n\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/channels/sms/inbox/room/room.directive.html",'\n\n
\n
\n
\n
\n \n \n \n \n | \n #{{SmsRoom.id}} {{SmsRoom.status}}\n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n \n
\n
\n \n {{$item}}\n \n {{tag}}\n \n \n
\n
\n
\n \n
\n
\n\n
\n
    \n
  • \n \n \n
    \n \n \n
    \n \n
  • \n
\n
\n
\n
\n
\n

Info! {{\'MESSAGE_SMS_ROOM_CLOSED\' | translate}}

\n

\n {{\'MESSAGE_SMS_ROOM_CLOSED_DETAILS\' | translate}}.\n

\n
\n
\n \n
\n\n \n
\n
\n
\n
\n \n
\n
\n \n {{$select.selected.name}}\n \n
\n \n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n \n \n
\n\n
\n
\n
\n \n
\n
\n \n \n {{ \'DESCRIPTION_PHONE_NUMBER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n \n \n \n
\n
\n \n \n
\n No Results Found\n
\n \n
\n
\n\n
\n \n \n
\n
\n \n \n Max 160 chars\n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n\n"),a.put("app/channels/sms/inbox/sms/sms.html",'
\n
\n
\n From: \n [{{smsMessage.from}}]\n
\n To: \n [{{smsMessage.to}}]\n
\n
\n
\n {{\'APPLICATION_SENT_BY\' | translate}}: {{smsMessage.User.fullname}}\n {{\'APPLICATION_SENT_BY\' | translate}}: {{smsMessage.source}}\n\n
\n
\n\n
\n \n \n {{smsMessage.status | uppercase}}\n \n \n {{smsMessage.status | uppercase}}\n \n \n {{smsMessage.status | uppercase}}\n \n \n {{smsMessage.status | uppercase}}\n \n \n {{smsMessage.status | uppercase}}\n \n \n {{smsMessage.status | uppercase}}\n \n
\n Error Code:{{smsMessage.errorcode}}\n Error Code:{{smsMessage.errorcode}}\n
\n\n \n
\n
\n \n\n
\n'),a.put("app/channels/sms/inbox/view/account/list/list.html",'\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n \n \n
\n
\n \n {{$item}}\n \n {{tag}}\n \n \n
\n
\n
\n \n
\n
\n \n \n \n\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/sms/inbox/view/view.agents.modal.html",'\n\n\n'),a.put("app/channels/sms/inbox/view/view.html",'\n\n\n\n
\n
\n \n
\n\n
\n \n
\n
\n

Info! {{\'APPLICATION_NO_ACCOUNT_SELECTED\' | translate}}

\n
\n
\n \n
\n
\n\n'),a.put("app/channels/sms/inbox/view/view.status.modal.html",'\n\n\n'), -a.put("app/channels/sms/inbox/view/view.tags.modal.html",'\n\n\n'),a.put("app/channels/sms/inbox/view/view.templates.modal.html",'\n\n\n'),a.put("app/channels/sms/queue/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/sms/queue/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_QUEUES\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/sms/queue/view/view.agents.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_AGENTS\' | translate}}\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n

\n
\n
\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n'),a.put("app/channels/sms/queue/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{queue.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n \n'),a.put("app/channels/sms/queue/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
\n
\n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n {{$select.selected.toUpperCase()}}\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n'),a.put("app/channels/sms/realtime/view/agent/agent.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/sms/realtime/view/agent/agent.modal.info.html",'\n\n\n'),a.put("app/channels/sms/realtime/view/agent/queue.modal.add.html",'\n\n\n'),a.put("app/channels/sms/realtime/view/application/application.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/sms/realtime/view/view.html",'\n\n\n'),a.put("app/channels/sms/realtime/view/view.queue.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/chanspy/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/voice/chanspy/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_CHANSPY\' | translate }} \n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/chanspy/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{chanspy.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/chanspy/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_CHANSPY\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item.value}}: {{$item.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n
\n
\n \n\n
\n
\n
\n
\n
\n'), -a.put("app/channels/voice/context/list/create.modal.html",'\n\n\n'),a.put("app/channels/voice/context/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_CONTEXTS\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/context/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{context.name}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n \n'),a.put("app/channels/voice/context/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_CONTEXT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{ \'DESCRIPTION_CANT_EDIT_NAME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/channels/voice/disposition/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_DISPOSITIONS\' | translate }} \n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n

Info! {{\'MESSAGE_NO_DISPOSITIONS_AVAILABLE\' | translate}}

\n
\n
\n
\n\n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/disposition/list/modal/add.modal.html",'\n\n\n'),a.put("app/channels/voice/moh/list/create.modal.html",'\n\n\n'),a.put("app/channels/voice/moh/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_MOHS\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/moh/view/view.addFiles.html",'\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_MOH\' | translate }} {{ \'APPLICATION_ADD_FILES\' | translate }} \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_SOUNDS\' | translate}}\n

\n
\n
\n\n \n
\n \n \n {{$item.display_name}}\n \n {{sound.display_name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/moh/view/view.audios.html",'
\n
\n
\n
\n
\n
\n \n {{\'APPLICATION_AUDIOS\' | translate}}\n
\n \n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_FOLDER_DOES_NOT_EXIST\' | translate }}\n

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_PREVIEW\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
{{audiofile}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
\n {{ \'MESSAGE_NO_AUDIOFILES_AVAILABLE\' | translate }}\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/channels/voice/moh/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{moh.name}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/moh/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_MOH_CLASS\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n
\n \n\n \n
\n \n \n {{$translate.instant($select.selected.name)}}\n \n {{$translate.instant(sort.name)}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/channels/voice/queue/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/voice/queue/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_QUEUES\' | translate }}\n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/queue/view/view.agents.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_AGENTS\' | translate}}\n
\n
\n
\n

Warning!

{{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}

\n
\n
\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n'), -a.put("app/channels/voice/queue/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{queue.name}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/queue/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_QUEUE_SETTINGS\' | translate}}\n
\n \n
\n\n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n {{$select.selected.toUpperCase()}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_VOICE_MOH\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_QUEUE_TIMEOUT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_QUEUE_MAXLEN\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_QUEUE_RETRY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n \n
\n \n \n \n {{ \'DESCRIPTION_QUEUE_WRAPUPTIME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_QUEUE_WEIGHT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_JOINEMPTY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_LEAVEWHENEMPTY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n
\n \n\n \n
\n
\n\n
\n
\n
\n
\n \n
\n \n \n {{$item.display_name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_SOUNDS\' | translate}}\n

\n
\n \n {{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n
\n
\n

{{\'APPLICATION_SETTINGS\' | translate}}

\n \n
\n \n \n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE_FREQUENCY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_QUEUE_MIN_ANNOUNCE_FREQUENCY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE_FREQUENCY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_RANDOM_PERIODIC_ANNOUNCE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE_HOLDTIME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION_LIMIT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_REPORTHOLDTIME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n

{{\'APPLICATION_SOUNDS\' | translate}}

\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_REPORTHOLD\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_YOUARENEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_THEREARE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_CALLSWAITING\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_HOLDTIME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_MINUTES\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_MINUTE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_SECONDS\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_THANKYOU\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n\n \n
\n
\n \n \n
\n
\n\n
\n
\n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_AUTOPAUSE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_RINGINUSE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_QUEUE_MEMBER_DELAY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n \n {{ \'DESCRIPTION_ACW\' | translate }}\n \n \n {{\'APPLICATION_ACW\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_TIMEOUTRESTART\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_MONITOR_FORMAT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_QUEUE_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_ACW_TIMEOUT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n\n \n
\n
\n \n\n
\n
\n
\n
\n
\n'), -a.put("app/channels/voice/realtime/view/agent/agent.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/realtime/view/agent/agent.modal.info.html",'\n\n\n'),a.put("app/channels/voice/realtime/view/agent/queue.modal.add.html",'\n\n\n'),a.put("app/channels/voice/realtime/view/parameter/parameter.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/realtime/view/queue/queue.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/realtime/view/telephone/telephone.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/realtime/view/telephone/telephone.modal.info.html",'\n\n\n'),a.put("app/channels/voice/realtime/view/view.html",'\n\n\n'),a.put("app/channels/voice/recording/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_RECORDINGS\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/route/inbound/list/create.modal.html",'\n\n\n\n'),a.put("app/channels/voice/route/inbound/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/route/inbound/view/view.applications.html",'
\n
\n
\n
\n
\n
\n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/channels/voice/route/inbound/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{route.exten}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n"),a.put("app/channels/voice/route/inbound/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_INBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/channels/voice/route/internal/list/create.modal.html",'\n\n\n\n'),a.put("app/channels/voice/route/internal/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/route/internal/view/view.applications.html",'
\n
\n
\n
\n
\n
\n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/channels/voice/route/internal/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{route.exten}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n \n
\n
\n\n"),a.put("app/channels/voice/route/internal/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_INTERNAL\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/channels/voice/route/outbound/list/create.modal.html",'\n\n\n\n'), -a.put("app/channels/voice/route/outbound/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/route/outbound/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{route.exten}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n \n
\n
\n\n"),a.put("app/channels/voice/route/outbound/view/view.route.html",'
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_NEW_ROUTE\' | translate }} WIZARD \n
\n
\n
\n
\n {{(main.app.name | translate) || \'Application\'}}\n
\n \n \n
\n \n \n
\n \n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_TRUNKS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \' placeholder=\'"name" \' class="form-control" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null">\n \n {{ \'DESCRIPTION_OUTBOUND_CALLERID\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_OUTBOUND_PREFIX\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n \n
\n
\n \n
\n \n \n \n
\n \n \n {{$select.selected.name | translate}}\n \n {{$translate.instant(intType.name)}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n \n
\n \n
\n
\n
to
\n
\n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n to\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n
\n
\n \n
\n\n
\n\n \n
\n \n \n {{$select.selected.name | translate}}\n \n {{interval.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n\n \n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/route/outbound/view/view.routeSettings.html",'
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD \n
\n
\n
\n \n
\n {{(main.app.name | translate) || \'Application\'}}\n
\n \n
\n \n
\n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_TRUNKS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \' placeholder=\'"name" \' class="form-control" data-ng-model="route.Applications[selectedApp].appdata[1]">\n \n {{ \'DESCRIPTION_OUTBOUND_CALLERID\' | translate }} "name" <number>\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_OUTBOUND_PREFIX\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n \n
\n
\n \n
\n \n \n \n
\n \n \n {{$select.selected.name | translate}}\n \n {{intType.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n \n
\n \n
\n
\n
to
\n
\n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n to\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n
\n
\n \n
\n\n
\n\n \n
\n \n \n {{$select.selected.name | translate}}\n \n {{interval.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n
\n\n'), -a.put("app/channels/voice/route/outbound/view/view.routes.html",'
\n
\n
\n
\n
\n
\n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/channels/voice/route/outbound/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_OUTBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n \n
\n \n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/channels/voice/route/view.application.html",'\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_NEW_APPLICATION\' | translate }} WIZARD \n
\n
\n
\n \n
\n {{(main.app.name | translate) || \'Application\'}}\n
\n \n
\n \n \n
\n \n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_QUEUES\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_SOUNDS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_SOUNDS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_TRUNKS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_PROJECTS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n {{$select.selected.mailbox}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_VOICEMAILS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_VOICEMAILS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n \n
\n
\n \n
\n \n \n \n
\n \n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n \n
\n \n
\n
\n
to
\n
\n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n to\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n
\n
\n \n
\n\n
\n\n \n
\n \n \n {{$select.selected.name | translate}}\n \n {{interval.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n
\n\n\n\n'), -a.put("app/channels/voice/route/view.applicationSettings.html",'\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD \n
\n
\n
\n \n
\n {{(main.app.name | translate) || \'Application\'}}\n
\n \n
\n\n \n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_QUEUES\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_SOUNDS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n \n
\n \n \n {{$select.selected.display_name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_SOUNDS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_TRUNKS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n \n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_PROJECTS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n \n \n\n
\n
\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n {{$select.selected.name | translate}}\n \n {{hangupCause.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n {{$select.selected.mailbox}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_VOICEMAILS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_VOICEMAILS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n \n
\n
\n \n
\n \n \n \n
\n \n \n {{$select.selected.name | translate}}\n \n {{intType.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n \n
\n \n
\n
\n
to
\n
\n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n to\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n
\n
\n \n
\n\n
\n\n \n
\n \n \n {{$select.selected.name | translate}}\n \n {{interval.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n \n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n
\n\n\n'), -a.put("app/channels/voice/voicemail/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_VOICEMAILS\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/voicemail/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{voicemail.mailbox}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/channels/voice/voicemail/view/view.messages.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_MESSAGES\' | translate}}\n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n'),a.put("app/channels/voice/voicemail/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_VOICEMAIL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n \n \n \n\n
\n
\n
\n
\n
\n'),a.put("app/channels/voice/voicemail/wizard/wizard.html",'
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_VOICEMAIL\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n'),a.put("app/contactmanager/company/list/create.modal.html",'\n\n\n'),a.put("app/contactmanager/company/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_COMPANIES\' | translate }} \n
\n
\n \n
\n \n
\n \n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/contactmanager/company/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{company.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/contactmanager/company/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_COMPANY\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n
\n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n'), -a.put("app/contactmanager/contact/list/import.modal.html",'\n\n\n'),a.put("app/contactmanager/contact/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_CONTACTS\' | translate }} \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_IMPORT_FROM_CSV\' | translate}}\n \n \n
\n \n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/contactmanager/list/list/create.modal.html",'\n\n\n'),a.put("app/contactmanager/list/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_LISTS\' | translate }} \n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/contactmanager/list/view/create.modal.html",'\n\n\n'),a.put("app/contactmanager/list/view/view.agents.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_AGENTS\' | translate}}\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n

\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n'),a.put("app/contactmanager/list/view/view.customFieldSettings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_CUSTOM_FIELD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n
\n\n
\n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n \n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n \n\n
\n\n \n
\n \n \n
\n \n \n
\n\n
\n
\n
\n
\n'),a.put("app/contactmanager/list/view/view.customFields.html",'
\n
\n
\n
\n
\n
\n \n {{\'APPLICATION_CUSTOM_FIELDS\' | translate}}\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n
\n
\n
\n'), -a.put("app/contactmanager/list/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{list.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/contactmanager/list/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_LIST\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/dashboard/chat/chat.html",'
\n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n
\n \n  {{ \'APPLICATION_TODAY_STATS\' | translate }}\n \n\n
\n
\n
\n
\n \n
\n
\n
\n {{open || 0}}\n
\n
\n {{\'APPLICATION_DASHBOARD_OPEN\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{closed || 0}}\n
\n
\n {{\'APPLICATION_DASHBOARD_CLOSED\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{new || 0}}\n
\n
\n {{\'APPLICATION_DASHBOARD_NEW\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{unmanaged || 0}}\n
\n
\n {{\'APPLICATION_UNMANAGED\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{abandoned || 0}}\n
\n
\n {{\'APPLICATION_ABANDONED\' | translate}}\n
\n
\n
\n
\n
\n
\n\n
\n
\n'),a.put("app/dashboard/dashboard.html",'\n\n\n'),a.put("app/dashboard/fax/fax.html",'
\n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n
\n \n  {{ \'APPLICATION_TODAY_STATS\' | translate }}\n \n\n
\n
\n
\n
\n \n
\n
\n
\n {{open || 0}}\n
\n
\n {{\'APPLICATION_DASHBOARD_OPEN\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{closed || 0}}\n
\n
\n {{\'APPLICATION_DASHBOARD_CLOSED\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{new || 0}}\n
\n
\n {{\'APPLICATION_DASHBOARD_NEW\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{unmanaged || 0}}\n
\n
\n {{\'APPLICATION_UNMANAGED\' | translate}}\n
\n
\n
\n
\n
\n
\n\n
\n
\n'),a.put("app/dashboard/mail/mail.html",'
\n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n
\n \n  {{ \'APPLICATION_TODAY_STATS\' | translate }}\n \n\n
\n
\n
\n
\n \n
\n
\n
\n {{open || 0}}\n
\n
\n {{\'APPLICATION_DASHBOARD_OPEN\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{closed || 0}}\n
\n
\n {{\'APPLICATION_DASHBOARD_CLOSED\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{new || 0}}\n
\n
\n {{\'APPLICATION_DASHBOARD_NEW\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{unmanaged || 0}}\n
\n
\n {{\'APPLICATION_UNMANAGED\' | translate}}\n
\n
\n
\n
\n
\n
\n\n
\n
\n'),a.put("app/dashboard/sms/sms.html",'
\n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n
\n \n  {{ \'APPLICATION_TODAY_STATS\' | translate }}\n \n\n
\n
\n
\n
\n \n
\n
\n
\n {{open || 0}}\n
\n
\n {{\'APPLICATION_DASHBOARD_OPEN\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{closed || 0}}\n
\n
\n {{\'APPLICATION_DASHBOARD_CLOSED\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{new || 0}}\n
\n
\n {{\'APPLICATION_DASHBOARD_NEW\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{unmanaged || 0}}\n
\n
\n {{\'APPLICATION_UNMANAGED\' | translate}}\n
\n
\n
\n
\n
\n
\n\n
\n
\n'),a.put("app/dashboard/voice/voice.html",'
\n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_INBOUND\' | translate }}{{ \'APPLICATION_TODAY_STATS\' | translate }}\n \n\n
\n
\n
\n
\n \n
\n
\n
\n {{waiting || 0}}\n
\n
\n {{\'APPLICATION_WAITING\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{active || 0}}\n
\n
\n {{\'APPLICATION_ACTIVE\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{answered || 0}}\n
\n
\n {{\'APPLICATION_ANSWERED\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{abandoned || 0}}\n
\n
\n {{\'APPLICATION_ABANDONED\' | translate}}\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n {{avganswertime || 0}}\n
\n
\n {{\'APPLICATION_AVG_ANSWER_TIME\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{avgtalktime || 0}}\n
\n
\n {{\'APPLICATION_AVG_TALK_TIME\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{answerrate || 0}}\n
\n
\n {{\'APPLICATION_ANSWER_RATE\' | translate}} (%)\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{abandonrate || 0}}\n
\n
\n {{\'APPLICATION_ABANDON_RATE\' | translate}} (%)\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n {{totaloffered || 0}}\n
\n
\n {{\'APPLICATION_TOTAL_OFFERED\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{unmanaged || 0}}\n
\n
\n {{\'APPLICATION_UNMANAGED\' | translate}}\n
\n
\n
\n
\n
\n
\n\n
\n \n {{ \'APPLICATION_OUTBOUND\' | translate }}{{ \'APPLICATION_TODAY_STATS\' | translate }}\n \n\n
\n
\n
\n
\n \n
\n
\n
\n {{manualoutbound || 0}}\n
\n
\n {{\'APPLICATION_MANUAL_OUTBOUND\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{manualoutboundglobalduration || 0}}\n
\n
\n {{\'APPLICATION_GLOBAL_DURATION\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{manualoutboundanswered || 0}}\n
\n
\n {{\'APPLICATION_ANSWERED\' | translate}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{manualoutboundavgduration || 0}}\n
\n
\n {{\'APPLICATION_AVG_DURATION\' | translate}} (%)\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n {{manualoutboundanswerrate || 0}}\n
\n
\n {{\'APPLICATION_ANSWER_RATE\' | translate}} (%)\n
\n
\n
\n
\n
\n\n
\n
\n
\n'),a.put("app/desk/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_DESK_COM\' | translate }} \n
\n \n
\n
\n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
{{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_EMAIL\' | translate }}{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
{{account.name}}{{account.username}}{{account.remoteUri}}{{account.description}}\n \n {{ \'APPLICATION_EDIT\' | translate }}\n \n \n {{ \'APPLICATION_CHECK\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
\n No account available\n
\n \n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n
\n \n
\n \n
\n
\n \n
\n
\n\n'), -a.put("app/desk/view/view.account.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_ACCOUNT\' | translate}}\n
\n \n
\n
\n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/desk/view/view.configuration.html",'
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n
\n \n\n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/desk/view/view.configurationSettings.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}\n
\n \n
\n
\n
\n \n
\n
\n
\n All following fields will be join by blank space:\n
\n
\n \n
\n
\n
\n \n
\n
\n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n All following fields will be join by new line:\n
\n
\n \n
\n
\n
\n \n
\n \n
\n \n {{$select.selected | ucfirst}}\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n Add how to fill the fields present in your account:\n
\n
\n \n
\n
\n
\n \n
\n
\n \n {{$select.selected.label}}\n \n
\n
\n
\n
\n
\n
\n \n {{$select.selected}}\n \n
\n
\n
\n
\n
\n
\n
\n \n {{$select.selected | ucfirst}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n'),a.put("app/desk/view/view.configurations.html",'
\n
\n
\n
\n
\n
\n \n {{\'APPLICATION_CONFIGURATIONS\' | translate}}\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{\'APPLICATION_NAME\' | translate}}{{\'APPLICATION_DESCRIPTION\' | translate}}{{ \'APPLICATION_ACTIONS\' | translate }}
{{configuration.name}}{{configuration.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
\n No configuration available\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/desk/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{account.name}}\n
\n
\n {{account.remoteUri}}\n
\n
\n \n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/desk/wizard/wizard.html",'\n\n\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
\n \n\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n\n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n\n
\n\n
\n
\n \n
\n
\n\n'), -a.put("app/freshdesk/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_FRESHDESK\' | translate }} \n
\n \n
\n
\n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
{{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_EMAIL\' | translate }}{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
{{account.name}}{{account.username}}{{account.remoteUri}}{{account.description}}\n \n {{ \'APPLICATION_EDIT\' | translate }}\n \n \n {{ \'APPLICATION_CHECK\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
\n No account available\n
\n \n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n
\n \n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/freshdesk/view/view.account.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_ACCOUNT\' | translate}}\n
\n \n
\n
\n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/freshdesk/view/view.configuration.html",'
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n
\n \n\n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/freshdesk/view/view.configurationSettings.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}\n
\n \n
\n
\n
\n \n
\n
\n
\n All following fields will be join by blank space:\n
\n
\n \n
\n
\n
\n \n
\n
\n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n All following fields will be join by new line:\n
\n
\n \n
\n
\n
\n \n
\n \n
\n \n {{$select.selected | ucfirst}}\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n Add how to fill the fields present in your account:\n
\n
\n \n
\n
\n
\n \n
\n
\n \n {{$select.selected.label}}\n \n
\n
\n
\n
\n
\n
\n \n {{$select.selected[0]}}\n \n
\n
\n
\n
\n
\n
\n
\n \n {{$select.selected | ucfirst}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n'),a.put("app/freshdesk/view/view.configurations.html",'
\n
\n
\n
\n
\n
\n \n {{\'APPLICATION_CONFIGURATIONS\' | translate}}\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{\'APPLICATION_NAME\' | translate}}{{\'APPLICATION_DESCRIPTION\' | translate}}{{ \'APPLICATION_ACTIONS\' | translate }}
{{configuration.name}}{{configuration.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
\n No configuration available\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/freshdesk/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{account.name}}\n
\n
\n {{account.remoteUri}}\n
\n
\n \n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/freshdesk/wizard/wizard.html",'\n\n\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
\n \n\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n\n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n\n
\n\n
\n
\n \n
\n
\n\n'), -a.put("app/integration/list/list.html",'\n\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_INTEGRATIONS\' | translate }} \n
\n
\n \n New App \n \n \n \n \n \n
\n
\n
\n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n
\n
\n
\n \n \n \n \n
\n
\n
\n
{{ \'APPLICATION_ID\' | translate }}{{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_FILENAME\' | translate }}{{ \'APPLICATION_VERSION\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
{{integration.id}}{{integration.name}}{{integration.filename}}{{integration.version}}{{integration.description}}\n \n {{ \'APPLICATION_UPDATE\' | translate }} \n \n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
\n No integrations available\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n \n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/jscripty/project/list/list.create.modal.html",'\n\n\n'),a.put("app/jscripty/project/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_PROJECTS\' | translate }} \n
\n \n
\n
\n \n\n \n\n\n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/jscripty/project/report/report.detail.html",'
\n
\n
\n\n{{ \'APPLICATION_SUMMARY\' | translate }} \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n

{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}

\n
\n
\n
\n
\n \n \n \n Question Id: {{question.question_id}}\n \n \n
\n
\n
\n

{{question.question_label}} : {{question.question_text}}

\n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Response #Response %
{{choice.value}}{{choice.count}}{{choice.percentage | number:2}}
\n
\n
\n
\n \n \n \n \n \n \n \n {{question.question_other_label}}
\n
\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n
Response #Response
{{choice.value}}{{choice.count}}
\n
\n
\n
\n
\n
\n
\n

Total Respondents: {{question.total}}


\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n'),a.put("app/jscripty/project/report/report.html",'\n\n
\n
\n\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n {{project.name}}[{{project.id}}]\n
\n
\n\n
\n
\n \n\n \n
\n \n
\n \n\n
\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n

{{projectStats.started}}

\n Started\n
\n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

{{projectStats.incomplete}}

\n Incomplete\n
\n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

{{projectStats.completed}}

\n Completed\n
\n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n'),a.put("app/jscripty/project/report/report.inputs.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_INPUTS\' | translate }} \n
\n
\n \n
\n
\n
\n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n
\n
\n
\n
\n'),a.put("app/jscripty/project/report/report.question.detail.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_DETAIL\' | translate }} \n
\n
\n
\n
\n

{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}

\n
\n
\n
\n
\n
\n

\n\n Question Id: {{questionDetail.question_id}}\n

\n
\n
\n
\n

{{questionDetail.question_label}}

\n
\n
\n
\n
\n

{{questionDetail.question_text}}


\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Value Count %
{{choice.value}}{{choice.count}}{{choice.percentage | number:2}}
\n
\n
\n
\n
\n {{choice.value}} {{choice.count}}
\n\n
\n
\n
\n
\n

Total: {{questionDetail.total}}


\n
\n
\n
\n
\n \n \n \n
\n
\n\n
\n\n
\n\n
\n
\n\n
\n
\n
\n
\n'),a.put("app/jscripty/project/report/report.session.detail.html",'\n\n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_DETAIL\' | translate }} \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n Question Id: {{question.question_id}}\n \n \n

{{question.question_label}} : {{question.question_text}}

\n
\n

Answer: {{question.question_answer}}

\n
\n
\n

\n {{question.question_other_label}}: \n {{question.question_other_answer || \'No Value\'}}\n

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
Label Answer
{{input.input_label}}{{input.input_value || \'No Value\'}}
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n'),a.put("app/jscripty/project/report/report.sessions.html",'\n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_SESSIONS\' | translate }} \n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n
\n
\n
\n
\n'),a.put("app/jscripty/project/report/report.summary.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_QUESTIONS\' | translate }} \n
\n
\n
\n \n
\n
\n
\n
\n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n
\n
\n
\n
\n'),a.put("app/jscripty/project/view/view.html",'\n\n
\n
\n
\n
\n
\n\n\n'),a.put("app/landing/landing.html",'\n\n\n\n\n
\n
\n
\n Oops!\n
\n
\n

{{message | translate}}.

\n

\n Please contact your administrator.

\n

\n
\n
\n
\n\n\n\n'), -a.put("app/login/login.html",'\n\n\n\n
\n \n \n
\n\n\n'),a.put("app/main/chooseContact.modal.html",'\n\n\n'),a.put("app/main/closeEditedTab.modal.html",'\n\n\n'),a.put("app/main/closeEditedTab.modal.jscripty.html",' \n\n\n\n\n'),a.put("app/main/cm.disposition.html",'\n\n\n'),a.put("app/main/company.info.html",'\n\n\n'),a.put("app/main/customDateFilter.modal.html",'\n\n'),a.put("app/main/customDateFilterHeader.html",'\n\n  \n\n'),a.put("app/main/main.html",'\n\n\n\n
\n
\n\n
\n\n \n
\n
\n \n\n \n
\n
\n\n \n \n \n \n Motion \n \n
\n
\n \n \n {{workspace.name | truncate: 25: \'...\': true}} {{workspace.unread}} \n \n
\n \n \n \n \n \n \n \n \n
\n
\n
\n \n\n
\n
\n \n\n
\n\n\n\n\n\n\n\n\n\n\n\n'),a.put("app/main/template/actionBuilder/template.actionBuilderIntegration.html",'
\n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_INTEGRATION\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_ACCOUNT\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_CONFIGURATION\' | translate}}\n \n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
\n"),a.put("app/main/template/actionBuilder/template.actionBuilderJscripty.html",'
\n \n {{$select.selected.name}}\n \n
\n
\n
\n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
\n"),a.put("app/main/template/actionBuilder/template.actionBuilderMotionBar.html",'\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{ \'APPLICATION_TYPE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n\n\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{ \'APPLICATION_TEMPLATE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n\n\n
\n \n \n {{ \'APPLICATION_URL\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n\n\n
\n \n \n {{ \'APPLICATION_APPLICATION\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n \n {{ \'APPLICATION_ARGUMENTS\' | translate }}\n \n
\n'),a.put("app/main/template/actionBuilder/template.actionBuilderStatus.html",'
\n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
\n"),a.put("app/main/template/actionBuilder/template.actionBuilderTemplate.html",'
\n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n
\n'),a.put("app/main/template/actionBuilder/template.actionBuilderUrlForward.html",'
\n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_TYPE\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n \n {{\'APPLICATION_URL\' | translate}}\n \n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
\n"), -a.put("app/main/template/template.conditionBuilder.html",'
\n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
\n"),a.put("app/main/template/template.contactTab.html",'
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n \n
\n

{{\'MESSAGE_INBOUND_CALL_FROM\' | translate}} - {{workspace.data.calleridnum}}

\n

\n {{\'MESSAGE_CALL_UNIQUEID\' | translate}} : {{workspace.data.uniqueid}}\n

\n
\n
\n
\n
\n
{{\'APPLICATION_QUEUE\' | translate}}
\n

{{workspace.data.queue}}

\n
\n
\n
{{\'APPLICATION_AGENT\' | translate}}
\n

{{workspace.data.membername}}

\n
\n
\n
{{\'APPLICATION_DATE\' | translate}}
\n

{{workspace.data.agentcalledAt | date:\'dd/MM/yyyy HH:mm:ss\'}}

\n
\n
\n \n
\n
\n \n \n
\n
\n
\n \n {{\'APPLICATION_DETAIL\' | translate}}\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n \n \n \n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_COMPANIES_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_COMPANIES\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n {{$item}}\n \n {{tag}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n

Warning!

\n

\n {{ \'MESSAGE_NO_LISTS_AVAILABLE\' | translate }}\n

\n

\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_LISTS\' | translate}}\n

\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n {{\'APPLICATION_CUSTOM_FIELDS\' | translate}}\n
\n
\n
\n
\n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n \n {{$select.selected.value}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n {{\'APPLICATION_LOG\' | translate}}\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n \n
|\n
\n \n \n
|\n
\n \n \n
\n
\n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n
\n
\n
\n
\n
\n
\n \n \n
|\n
\n \n \n
|\n
\n \n \n
\n
\n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n
\n
\n
\n \n
\n
\n \n
\n \n \n
\n
\n
\n'), -a.put("app/main/template/template.jscriptyTab.html",'
\n \n
\n
\n \n
\n \n \n
\n \n
\n \n \n
\n \n
\n
\n
\n
\n \n {{attribute.value}} \n
\n\n
\n
\n
\n
\n
\n
\n\n \n
\n

{{attribute.value}}

\n
\n \n\n
\n
\n \n

\n
\n
\n \n\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n'),a.put("app/main/template/template.notification.html",'\n'),a.put("app/main/template/template.reportBuilderView.html",'
\n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n
\n
\n
\n
\n
\n'),a.put("app/market/market.html",'
\n
\n \n
\n
\n\n
\n
\n \n
\n

Our Integrations

\n
\n
\n
\n
\n

{{integration.name}} {{integration.author}}

\n {{integration.name}}\n
\n

\n {{integration.description}}\n

\n \n
\n
\n
\n {{status}}\n
\n
\n
\n
\n
\n \n \n
\n
\n'),a.put("app/motiondialer/blacklist/list/list.create.modal.html",'\n\n\n'),a.put("app/motiondialer/blacklist/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_BLACKLIST\' | translate }} \n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/motiondialer/info/view/view.about.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_ABOUT\' | translate}}\n
\n
\n
\n
\n
\n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n'),a.put("app/motiondialer/info/view/view.details.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_DETAILS\' | translate}}\n
\n
\n
\n
\n
\n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n\n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n
\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n'),a.put("app/motiondialer/info/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{ \'APPLICATION_INFO\' | translate }}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/motiondialer/list/list/list.create.modal.html",'\n\n\n'),a.put("app/motiondialer/list/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_LISTS\' | translate }} \n
\n
\n
\n \n
\n
\n
\n
\n \n \n \n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'), -a.put("app/motiondialer/list/view/view.contact.create.modal.html",'\n\n\n'),a.put("app/motiondialer/list/view/view.contact.import.modal.html",'\n\n\n'),a.put("app/motiondialer/list/view/view.contacts.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_LIST\' | translate}} {{ \'APPLICATION_CONTACTS\' | translate}} \n
\n
\n\n
\n
\n \n \n {{\'APPLICATION_IMPORT_FROM_CSV\' | translate}}\n \n \n
\n\n \n \n \n \n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n
\n
\n'),a.put("app/motiondialer/list/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{list.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/motiondialer/list/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_LIST\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/motiondialer/process/list/list.create.queue.modal.html",'\n\n\n'),a.put("app/motiondialer/process/list/list.create.square.modal.html",'\n\n\n'),a.put("app/motiondialer/process/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_PROCESSES\' | translate }} \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/motiondialer/process/view/view.create.interval.modal.html",'\n\n\n'),a.put("app/motiondialer/process/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{process.name}} ({{ (process.status === \'RUN\') ? \'RUNNING...\' : \'STOPPED\' }})\n
\n \n
\n \n
\n \n
\n
\n \n \n
\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'), -a.put("app/motiondialer/process/view/view.intervals.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_PROCESS\' | translate}} {{ \'APPLICATION_INTERVALS\' | translate}} \n
\n \n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{ \'APPLICATION_VALUE\' | translate}}\n \n {{ \'APPLICATION_ACTIONS\' | translate}}\n
\n {{interval}}\n \n \n \n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{ \'APPLICATION_VALUE\' | translate}}\n \n {{ \'APPLICATION_ACTIONS\' | translate}}\n
\n {{interval}}\n \n \n \n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/motiondialer/process/view/view.overview.html",'
\n
\n \n
\n
\n
\n \n {{\'APPLICATION_OVERVIEW\' | translate}}\n
\n \n
\n
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n {{\'APPLICATION_TOTAL\' | translate}}\n
\n
\n {{total}}\n
\n
\n
\n
\n
\n
\n
\n
\n {{\'APPLICATION_FRESH\' | translate}}\n
\n
\n {{process.runtime.fresh || 0}}\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{\'APPLICATION_STATUS\' | translate}}\n \n {{\'APPLICATION_VALUE\' | translate}}\n \n {{\'APPLICATION_RATE\' | translate}}\n \n {{\'APPLICATION_DESCRIPTION\' | translate}}\n
\n {{\'APPLICATION_TD_\' + sum[0] | translate}}\n \n {{sum[1]}}\n \n {{ total ? ((sum[1]/total)*100).toFixed(2) : 0 }}%\n \n {{\'DESCRIPTION_TD_\' + sum[0] | translate}}\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n {{\'APPLICATION_SUCCESS\' | translate}}\n
\n
\n {{process.runtime.success || 0}}\n
\n
\n
\n
\n
\n
\n
\n
\n {{\'APPLICATION_FAILED\' | translate}}\n
\n
\n {{process.runtime.failed || 0}}\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{\'APPLICATION_STATUS\' | translate}}\n \n {{\'APPLICATION_VALUE\' | translate}}\n \n {{\'APPLICATION_DESCRIPTION\' | translate}}\n
\n {{\'APPLICATION_\' + key.toUpperCase() | translate}}\n \n {{value | number:2}}\n {{value | number:2}}\n {{value | number:2}}\n {{((value)? \'APPLICATION_YES\' : \'APPLICATION_NO\') | translate}}\n {{((value)? \'APPLICATION_YES\' : \'APPLICATION_NO\') | translate}}\n {{value}}\n \n {{\'DESCRIPTION_TD_\' + key.toUpperCase() | translate}}\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n'),a.put("app/motiondialer/process/view/view.run.process.modal.html",'\n\n\n'),a.put("app/motiondialer/process/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_PROCESS\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_MAX_RETRIES\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_RETRY_TIME\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_WAIT_TIME\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n \n
\n
\n \n {{\'DESCRIPTION_TD_AUTO_CLOSED\' | translate}}\n
\n \n \n \n
\n
\n \n \n {{\'DESCRIPTION_TD_WEIGHT\' | translate}}\n
\n \n
\n \n \n
\n \n \n
\n
\n \n \n
\n
\n \n
\n \n \n {{\'DESCRIPTION_TD_CONTEXT\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_EXTENSION\' | translate}}Link {{\'APPLICATION_INTERNAL\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_PRIORITY\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_PREFIX\' | translate}}\n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_TECHNOLOGY\' | translate}}\n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_TRUNK\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_CALLERID\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n {{$item}}\n \n {{codec}}\n \n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_DIAL_FORMAT\' | translate}}\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n \n \n {{\'DESCRIPTION_TD_CHECK_DUPLICATE\' | translate}}\n
\n \n \n
\n
\n \n {{\'DESCRIPTION_TD_CHECK_BLACKLIST\' | translate}}\n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_CHECK_PHONE_LENGHT\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_TIME_SLICE\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n \n
\n
\n \n {{\'DESCRIPTION_TD_CHECK_MISSED\' | translate}}\n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_CHANNEL_LIMIT\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_CONTEXT_FOR_OTHER_CALLS\' | translate}}\n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_EXTENSION_FOR_OTHER_CALLS\' | translate}}\n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_PRIORITY_FOR_OTHER_CALLS\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_EXTENDED_TIME_INTERVAL\' | translate}}\n
\n \n\n \n
\n
\n \n {{\'DESCRIPTION_TD_AUTO_TIMEZONE_MANAGEMENT\' | translate}}\n
\n \n \n \n \n \n \n
\n \n \n {{\'DESCRIPTION_TD_MIN_OPERATOR\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_ALERT_MAX_CALLS\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_ALERT_TIME_SLICE\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_DROP_MAX_COUNT\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_SUCCESS_CALL_SIZE\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n \n
\n \n \n {{\'DESCRIPTION_TD_TIME_EXPIRED\' | translate}}\n
\n \n \n
\n
\n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{ \'APPLICATION_VALUE\' | translate}}\n \n {{ \'APPLICATION_MAX_RETRIES\' | translate}}\n \n {{ \'APPLICATION_RETRY_TIME\' | translate}} [min]\n \n {{ \'APPLICATION_DESCRIPTION\' | translate}}\n
\n {{ \'APPLICATION_AMD\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_AMD\' | translate}}\n
\n {{ \'APPLICATION_BUSY\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_BUSY\' | translate}}\n
\n {{ \'APPLICATION_CONGESTION\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_CONGESTION\' | translate}}\n
\n {{ \'APPLICATION_DROP\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_DROP\' | translate}}\n
\n {{ \'APPLICATION_FAILED\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_FAILED\' | translate}}\n
\n {{ \'APPLICATION_NOANSWER\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_NOANSWER\' | translate}}\n
\n {{ \'APPLICATION_NOSUCHEXTENSION\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_NOSUCHEXTENSION\' | translate}}\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n'), -a.put("app/motiondialer/process/view/view.spooler.history.modal.html",'\n\n\n'),a.put("app/motiondialer/process/view/view.spooler.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_SPOOLER\' | translate}} \n
\n
\n\n
\n \n \n \n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n
\n
\n'),a.put("app/salesforce/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_SALESFORCE\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/salesforce/view/configuration/list/create.modal.html",'\n\n\n'),a.put("app/salesforce/view/configuration/list/list.html",'
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{\'APPLICATION_CONFIGURATIONS\' | translate}}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n'),a.put("app/salesforce/view/configuration/view/view.html",'
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n All following fields will be join by blank space:\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{$select.selected.title}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{$select.selected.title}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{$select.selected.name}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n All following fields will be join by new line:\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{$select.selected.title}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{$select.selected.title}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {{$select.selected.title}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{$select.selected.name}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Add how to fill the fields present in your account:\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{$select.selected.label}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{$select.selected.label}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{$select.selected.title}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{$select.selected.title}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{$select.selected.name}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n'),a.put("app/salesforce/view/view.account.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_ACCOUNT\' | translate}}\n
\n \n
\n
\n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/salesforce/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{account.name}}\n
\n
\n {{account.remoteUri}}\n
\n
\n \n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/salesforce/wizard/wizard.html",'\n\n\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
\n \n\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n\n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n\n
\n\n
\n
\n \n
\n
\n\n'), -a.put("app/setting/license/view/update.modal.html",'\n\n\n'),a.put("app/setting/license/view/view.html",'\n\n
\n \n\n \n
\n
\n
\n
\n
\n

{{\'APPLICATION_MONTH_TO_MONTH\' | translate}}{{license.token || \'unknown\'}}

\n

{{\'APPLICATION_YEARLY\' | translate}}{{license.token || \'unknown\'}}

\n

{{\'APPLICATION_PERPETUAL\' | translate}}{{license.token || \'unknown\'}}

\n

{{\'APPLICATION_UNKNOWN\' | translate}}{{license.token || \'unknown\'}}

\n

{{license.expiration ? (license.expiration | date:\'medium\') : \'DEMO\'}}\n Expiration Date \n

\n
\n
    \n
  • \n
    \n {{\'APPLICATION_USERS\' | translate}}:\n
    \n
    \n {{(license.users || license.users >= 0) ? license.users : \'unknown\'}}\n
    \n
  • \n
  • \n
    \n {{\'APPLICATION_AGENTS\' | translate}} ({{\'APPLICATION_CONCURRENTS\' | translate}}):\n
    \n
    \n {{(license.agents || license.agents >= 0) ? license.agents : \'unknown\'}}\n
    \n
  • \n
  • \n
    \n {{\'APPLICATION_TELEPHONES\' | translate}}:\n
    \n
    \n {{(license.telephones || license.telephones >= 0) ? license.telephones : \'unknown\'}}\n
    \n
  • \n
  • \n
    \n {{\'APPLICATION_CHAT\' | translate}}:\n
    \n
    \n {{license.chat ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
    \n
  • \n
  • \n
    \n {{\'APPLICATION_MAIL\' | translate}}:\n
    \n
    \n {{license.mail ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
    \n
  • \n
  • \n
    \n {{\'APPLICATION_FAX\' | translate}}:\n
    \n
    \n {{license.fax ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
    \n
  • \n
  • \n
    \n {{\'APPLICATION_SMS\' | translate}}:\n
    \n
    \n {{license.messaging ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
    \n
  • \n
  • \n
    \n {{\'APPLICATION_CONTACT_MANAGER\' | translate}}:\n
    \n
    \n {{license.cm ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
    \n
  • \n
  • \n
    \n {{\'APPLICATION_MOTION_DIALER\' | translate}}:\n
    \n
    \n {{license.dialer ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
    \n
  • \n
  • \n
    \n {{\'APPLICATION_JSCRIPTY\' | translate}}:\n
    \n
    \n {{license.jscripty ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
    \n
  • \n
  • \n
    \n {{\'APPLICATION_UPDATE\' | translate}}:\n
    \n
    \n {{license.update ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
    \n
  • \n
\n \n
\n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_LICENSE_REQUEST\' | translate }} \n
\n
\n
\n
\n\n \n
\n \n
\n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n \n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n \n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n \n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n \n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n \n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n \n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n \n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n \n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/setting/network/view/externip/externip.create.modal.html",'\n\n\n'),a.put("app/setting/network/view/externip/externip.html",'\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {{ \'APPLICATION_EXTERNIP\' | translate }} \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n'),a.put("app/setting/network/view/localnet/localnet.create.modal.html",'\n\n\n'),a.put("app/setting/network/view/localnet/localnet.html",'\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {{ \'APPLICATION_LOCALNET\' | translate }} \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n'),a.put("app/setting/network/view/view.html",'\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n {{ \'APPLICATION_NETWORK\' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n'),a.put("app/setting/smtp/view/view.html",'\n
\n
\n \n\n \n
\n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n\n \n
\n\n
\n\n
\n
\n

ERROR

\n \n
\n\n
\n

CONNECTED

\n
\n\n
\n

TRYING...

\n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n \n
\n \n\n \n
\n\n
\n\n
\n
\n

ERROR

\n \n
\n\n
\n

CONNECTED

\n
\n\n
\n

TRYING...

\n
\n
\n\n \n
\n \n \n {{$select.selected.username}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n \n
\n \n
\n \n
\n
\n\n'), -a.put("app/setting/update/list/landing.html",'\n
\n
\n \n \n
\n
\n
\n {{countdown}}\n
\n
\n

Wait! We need to restart xCALLY Motion server.

\n

\n We are updating it!
\n xCALLY Motion Team

\n

\n
\n
\n
\n \n
\n
\n\n'),a.put("app/setting/update/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_UPDATES\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n \n
\n
\n
\n\n'),a.put("app/setting/update/list/list.pull.html",'\n\n\n'),a.put("app/square/odbc/list/list.create.modal.html",'\n\n\n'),a.put("app/square/odbc/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_ODBCS\' | translate }} \n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/square/odbc/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{odbc.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/square/odbc/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_ODBC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n

Es. DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion

\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/square/project/list/list.create.modal.html",'\n\n\n'),a.put("app/square/project/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_PROJECTS\' | translate }} \n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/square/project/view/view.html",'\n\n
\n
\n
\n
\n
\n\n\n'),a.put("app/square/realtime/view/general/general.html",'\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n\n'),a.put("app/square/realtime/view/view.html",'\n\n\n'),a.put("app/square/recording/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_RECORDINGS\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/staff/agent/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_AGENTS\' | translate }} \n
\n
\n \n
\n \n \n
\n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/staff/agent/view/view.account.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}\n
\n \n
\n\n
\n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n \n \n\n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{ \'APPLICATION_SELECT_IMAGE\' | translate }} \n
\n
\n \n \n
\n

\n
{{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} jpg, png, jpeg.\n

\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n
\n \n {{ item.file.name }}\n \n \n {{ item.file.size/1024/1024|number:2 }} MB\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n
\n \n
\n
\n
\n
\n
\n'), -a.put("app/staff/agent/view/view.chat.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_CHAT\' | translate}}\n
\n
\n\n
\n \n
\n \n
\n \n \n \n {{\'MESSAGE_ZERO_MEANS_UNLIMITED\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n'),a.put("app/staff/agent/view/view.fax.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_FAX\' | translate}}\n
\n
\n\n
\n \n
\n \n
\n \n \n \n {{\'MESSAGE_ZERO_MEANS_UNLIMITED\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n'),a.put("app/staff/agent/view/view.html",'\n\n\n'),a.put("app/staff/agent/view/view.mail.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_MAIL\' | translate}}\n
\n
\n\n
\n \n
\n \n
\n \n \n \n {{\'MESSAGE_ZERO_MEANS_UNLIMITED\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n'),a.put("app/staff/agent/view/view.motionbar.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_MOTION_BAR\' | translate}}\n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n
\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n
\n \n \n
\n
\n\n \n
\n
\n \n
\n \n\n\n \n
\n \n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n \n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n \n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n \n
\n
\n\n \n
\n
\n \n
\n \n\n\n \n
\n \n \n Default: 9888\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
\n \n\n \n
\n \n \n Default: 3600\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}} (min 1).\n \n
\n \n\n \n
\n \n \n Default: 5060\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}} (0-65535).\n \n
\n \n\n \n
\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/staff/agent/view/view.sms.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_SMS\' | translate}}\n
\n
\n\n
\n \n
\n \n
\n \n \n \n {{\'MESSAGE_ZERO_MEANS_UNLIMITED\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n
\n
\n
\n
\n
\n'),a.put("app/staff/agent/view/view.voice.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_VOICE\' | translate}}\n
\n
\n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n {{nat}}\n \n \n \n {{ \'DESCRIPTION_VOICE_NAT\' | translate }}\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_VOICE_TYPE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n {{allow}}\n \n \n \n {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n
\n
\n
\n
\n'), -a.put("app/staff/agent/wizard/wizard-bulk.html",'
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_AGENT\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n\n \n
\n\n \n
\n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n {{allow}}\n \n \n \n {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n \n
\n \n\n \n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n
\n
\n
\n \n
\n'),a.put("app/staff/agent/wizard/wizard.html",'
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_AGENT\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n\n \n
\n\n \n
\n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n {{allow}}\n \n \n \n {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n \n
\n \n\n \n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n
\n
\n
\n \n
\n'),a.put("app/staff/team/list/create.modal.html",'\n\n\n'),a.put("app/staff/team/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_TEAMS\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/staff/team/view/view.agents.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_AGENTS\' | translate}}\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n'),a.put("app/staff/team/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{team.name}}\n
\n\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n \n
\n
\n\n'),a.put("app/staff/team/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}\n
\n
\n\n
\n \n
\n\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n
\n
\n
\n
\n'),a.put("app/staff/telephone/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_TELEPHONES\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/staff/telephone/view/view.account.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNT\' | translate}}\n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n\n \n
\n
\n \n \n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n
\n \n
\n
\n
\n
\n
\n'), -a.put("app/staff/telephone/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{item.fullname}}\n
\n
\n {{item.role}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/staff/telephone/view/view.voice.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNT\' | translate}} {{ \'APPLICATION_VOICE\' | translate}}\n
\n
\n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
\n \n\n \n
\n \n \n {{$item}}\n'+" \n {{allow}}\n \n \n \n {{ 'DESCRIPTION_VOICE_CODEC' | translate }}\n \n
\n \n\n \n
\n
\n
\n
\n
\n"),a.put("app/staff/telephone/wizard/wizard.html",'
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_TELEPHONE\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n\n \n
\n\n \n
\n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n {{allow}}\n \n \n \n {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n \n
\n \n\n \n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n
\n
\n
\n \n
\n'),a.put("app/staff/user/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_USERS\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/staff/user/view/view.account.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}\n
\n \n
\n\n
\n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{ \'APPLICATION_SELECT_IMAGE\' | translate }} \n
\n
\n \n \n
\n

\n
{{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} jpg, png, jpeg.\n

\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n
\n \n {{ item.file.name }}\n \n \n {{ item.file.size/1024/1024|number:2 }} MB\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/staff/user/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{user.fullname}}\n
\n
\n {{user.role}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/staff/user/view/view.permit.chat.html",'\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/staff/user/view/view.permit.fax.html",'\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/staff/user/view/view.permit.html",'\n\n\n'),a.put("app/staff/user/view/view.permit.mail.html",'\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n\n'), -a.put("app/staff/user/view/view.permit.modules.html",'\n
\n
\n
\n └── \n \n
\n
\n
\n\n'),a.put("app/staff/user/view/view.permit.sms.html",'\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/staff/user/view/view.permit.voice.html",'\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/staff/user/view/view.voice.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNT\' | translate}} {{ \'APPLICATION_VOICE\' | translate}}\n
\n
\n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
\n \n\n \n
\n \n \n {{$item}}\n'+" \n {{allow}}\n \n \n \n {{ 'DESCRIPTION_VOICE_CODEC' | translate }}\n \n
\n \n\n \n
\n
\n
\n
\n
\n"),a.put("app/staff/user/wizard/wizard.html",'
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_USER\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n \n \n \n \n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n'),a.put("app/sugarcrm/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_SUGARCRM\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/sugarcrm/view/view.account.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_ACCOUNT\' | translate}}\n
\n \n
\n
\n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/sugarcrm/view/view.configuration.html",'
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n
\n \n\n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/sugarcrm/view/view.configurationSettings.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}\n
\n \n
\n
\n
\n \n
\n
\n
\n All following fields will be join by blank space:\n
\n
\n \n
\n
\n
\n \n
\n
\n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n All following fields will be join by new line:\n
\n
\n \n
\n
\n
\n \n
\n \n
\n \n {{$select.selected | ucfirst}}\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n Add how to fill the fields present in your account:\n
\n
\n \n
\n
\n
\n \n
\n
\n \n {{$select.selected.label}}\n \n
\n
\n
\n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n {{$select.selected | ucfirst}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n'), -a.put("app/sugarcrm/view/view.configurations.html",'
\n
\n
\n
\n
\n
\n \n {{\'APPLICATION_CONFIGURATIONS\' | translate}}\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{\'APPLICATION_NAME\' | translate}}{{\'APPLICATION_DESCRIPTION\' | translate}}{{ \'APPLICATION_ACTIONS\' | translate }}
{{configuration.name}}{{configuration.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
\n No configuration available\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/sugarcrm/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{account.name}}\n
\n
\n {{account.remoteUri}}\n
\n
\n \n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/sugarcrm/wizard/wizard.html",'\n\n\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n\n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n\n
\n\n
\n
\n \n
\n
\n\n'),a.put("app/tools/answer/list/list.create.modal.html",'\n\n\n'),a.put("app/tools/answer/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_CANNED_ANSWERS\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/answer/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{answer.name}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/answer/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_CANNED_ANSWER\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/tools/automation/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_AUTOMATIONS\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/automation/view/view.html",'\n
\n
\n \n\n\n\n\n \n
\n \n
\n \n
\n \n
\n \n\n \n
\n
\n {{ automation.name }}\n
\n
\n {{ automation.description }}\n
\n
\n \n\n \n \n \n
\n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/automation/view/view.settings.html",'
\n
\n
\n \n
\n \n
\n
\n \n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n
\n
\n
\n
\n \n :\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n \n :\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_ACTIONS\' | translate }}:\n
\n
\n
\n
\n
\n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n \n \n
\n \n
\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_CONDITION\' | translate}}.\n \n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_ACTION\' | translate}}.\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n'), -a.put("app/tools/automation/wizard/wizard.html",'
\n
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n
\n
\n
\n
\n \n {{ \'APPLICATION_CHANNEL\' | translate }}\n
\n
\n
\n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n
\n
\n \n :\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n \n :\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_ACTIONS\' | translate }}:\n
\n
\n
\n
\n
\n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n \n \n
\n \n
\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_CONDITION\' | translate}}.\n \n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_ACTION\' | translate}}.\n \n
\n \n \n
\n
\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/tools/interval/list/list.create.modal.html",'\n\n\n'),a.put("app/tools/interval/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_INTERVALS\' | translate }} \n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/interval/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{interval.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n"),a.put("app/tools/interval/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_INTERVAL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/tools/interval/view/view.subinterval.html",'\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n
\n
to
\n
\n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n to\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n
\n
\n \n\n\n\n \n
\n
\n\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/tools/interval/view/view.subintervalSettings.html",'\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_SUBINTERVAL_SETTINGS\' | translate }} WIZARD \n
\n
\n
\n \n
\n {{subinterval.name}}\n
\n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n
\n
\n
to
\n
\n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n to\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n
\n
\n \n\n \n
\n \n
\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n
\n
\n \n\n\n\n \n
\n
\n\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n
\n\n'), -a.put("app/tools/interval/view/view.subintervals.html",'
\n
\n
\n
\n
\n
\n \n {{\'APPLICATION_SUBINTERVALS\' | translate}}\n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/tools/pause/list/list.create.modal.html",'\n\n\n'),a.put("app/tools/pause/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_PAUSES\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/pause/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{pause.name}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/pause/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_PAUSE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/tools/scheduler/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_SCHEDULES\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/scheduler/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{schedule.name}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/scheduler/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_SCHEDULE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n \n
\n
\n\n
\n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n\n \n
\n
\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n \n
\n \n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n \n
\n
\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n
\n
\n
\n
\n\n'),a.put("app/tools/scheduler/wizard/wizard.html",'
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_SCHEDULE\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n \n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n\n \n
\n
\n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n\n \n
\n
\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n \n
\n \n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item.name | translate}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n
\n\n \n
\n
\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n\n \n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n\n'), -a.put("app/tools/sound/list/list.html",'\n\n\n\n
\n

{{ \'APPLICATION_SOUNDS\' | translate }}

\n
\n
\n
\n
\n \n \n {{\'APPLICATION_FILE_UPLOAD\' | translate}} \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n {{\'APPLICATION_SELECT_FILES\' | translate}}\n \n
\n
\n
\n
\n
\n
\n
\n Base drop zone\n
\n
\n \n \n {{\'APPLICATION_FILE_UPLOAD\' | translate}}\n \n \n \n \n {{\'APPLICATION_MULTI_FILE_UPLOAD\' | translate}}\n
\n
\n

\n
\n {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} wav, mp3, gsm, ogg.\n

\n

\n {{ \'MESSAGE_MAXIMUM_SOUND_UPLOAD_SIZE\' | translate }} 15 Mb.\n

\n
\n
\n
\n
\n
\n
\n
\n \n {{\'APPLICATION_UPLOAD_QUEUE\' | translate}}\n {{\'APPLICATION_QUEUE_LENGTH\' | translate}}: {{ uploader.queue.length }}\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{\'APPLICATION_NAME\' | translate}}{{\'APPLICATION_SIZE\' | translate}}{{\'APPLICATION_PROGRESS\' | translate}}{{\'APPLICATION_STATUS\' | translate}}{{\'APPLICATION_MESSAGE\' | translate}}{{\'APPLICATION_ACTIONS\' | translate}}
{{ item.file.name }}{{ item.file.size/1024/1024|number:2 }} MB\n
\n
\n
\n
\n \n \n \n \n \n {{item.responseMessage}}\n \n \n \n \n
\n
\n
\n

{{\'APPLICATION_UPLOAD_QUEUE_PROGRESS\' | translate}}:

\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

{{ \'MESSAGE_NO_SOUNDS\' | translate }}

\n

\n \n {{ \'MESSAGE_RETURN_HOME\' | translate }} \n {{ \'MESSAGE_OR_UPLOAD_SOUND_FILE\' | translate }}\n

\n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n

\n {{ sound.description || "Empty" }}\n

\n

\n \n \n \n

\n
\n
\n
\n \n
\n\n'),a.put("app/tools/tag/list/list.create.modal.html",'\n\n\n'),a.put("app/tools/tag/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_TAGS\' | translate }} \n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/tag/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{tag.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/tag/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_TAG\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/tools/template/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_TEMPLATES\' | translate }}\n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/template/view/view.html",'\n
\n
\n \n\n \n
\n\n \n
\n \n
\n \n
\n \n \n
\n
\n {{item.name}}\n
\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/template/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
\n
\n
\n\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n \n\n \n
\n
\n
\n
\n \n
\n
\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n \n\n
\n\n \n
\n
\n
\n
\n \n
\n
\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n \n\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n\n \n
\n
\n
\n
\n
\n'),a.put("app/tools/template/wizard/wizard.html",'
\n
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_TEMPLATES\' | translate }} FORM \n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n \n\n \n
\n
\n
\n
\n \n
\n
\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n \n\n \n
\n
\n
\n
\n \n
\n
\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n \n\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n\n
\n \n
\n
\n
\n \n
\n
\n'),a.put("app/tools/trigger/list/list.html",'\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_TRIGGERS\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'), -a.put("app/tools/trigger/view/view.html",'\n
\n
\n \n\n\n\n\n \n
\n \n
\n \n
\n \n
\n \n\n \n
\n
\n {{ trigger.name }}\n
\n
\n {{ trigger.description }}\n
\n
\n \n\n \n \n \n
\n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/trigger/view/view.settings.html",'
\n
\n
\n \n
\n \n
\n
\n \n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n
\n
\n
\n
\n \n :\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n \n :\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_ACTIONS\' | translate }}:\n
\n
\n
\n
\n
\n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{ \'APPLICATION_ACTION\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n \n \n \n \n
\n \n
\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_CONDITION\' | translate}}.\n \n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_ACTION\' | translate}}.\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n'),a.put("app/tools/trigger/wizard/wizard.html",'
\n
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_TRIGGERS\' | translate }} WIZARD\n
\n
\n
\n \n \n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n \n
\n
\n
\n
\n \n {{ \'APPLICATION_CHANNEL\' | translate }}\n
\n
\n
\n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n
\n
\n
\n
\n \n :\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n \n :\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n \n {{ \'APPLICATION_ACTIONS\' | translate }}:\n
\n
\n
\n
\n
\n \n {{$select.selected.name | translate}}\n \n
\n
\n
\n \n {{ \'APPLICATION_ACTION\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n
\n \n \n \n \n \n
\n \n
\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_CONDITION\' | translate}}.\n \n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_ACTION\' | translate}}.\n \n
\n \n \n
\n
\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n
\n\n'),a.put("app/tools/trunk/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_TRUNKS\' | translate }} \n
\n \n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/trunk/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{trunk.name}}\n
\n

({{trunk.status}})

\n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/trunk/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_TRUNK\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n
\n\n
\n\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected.name}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \' placeholder="{{\'APPLICATION_CALLERID\' | translate}}" class="form-control" data-ng-model="trunk.callerid"/>\n \n {{ \'DESCRIPTION_OUTBOUND_CALLERID\' | translate }} "name" <number>\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_TYPE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_DTMFMODE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n\n
\n\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_NAT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_QUALIFY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_ALLOW_CODEC\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_INSECURE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_CALLLIMIT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n\n \n
\n \n \n
\n \n\n \n
\n
\n \n \n
\n
\n
\n
\n\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_DIRECTMEDIA\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_CALLCOUNTER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_FROMDOMAIN\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_FROMUSER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_OUTBOUNDPROXY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_USEREQPHONE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_TRUSTRPID\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_SENDRPID\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_ENCRYPTION\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_PORT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$item}}\n \n
\n
\n
\n \n {{ \'DESCRIPTION_TRUNK_TRANSPORT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n
\n
\n\n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_OTHER_FIELDS\' | translate }}\n \n
\n \n
\n
\n
\n \n
\n
host=dynamicp
\n
secret=********
\n
regcontext=tammari-internal
\n
regexten=1005
\n
dtmfmode=rfc2833
\n
insecure=invite,port
\n
canreinvite=yes
\n
nat=yes
\n
qualify=yes
\n
context=merus-sipphone
\n
pickupgroup=1
\n
callgroup=1
\n
mailbox=1000@default
\n
\n
\n
\n
\n\n \n
\n\n
\n \n
\n
\n
\n
\n
\n'), -a.put("app/tools/trunk/wizard/wizard.html",'
\n \n \n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_TRUNK\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n
\n\n \n
\n\n \n
\n \n \n \n {{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n \n
\n \n \n \n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n \n
\n
\n
\n
\n \n
\n'),a.put("app/tools/variable/list/list.create.modal.html",'\n\n\n'),a.put("app/tools/variable/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_VARIABLES\' | translate }} \n
\n
\n \n
\n \n
\n
\n
\n
\n \n
\n
{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/variable/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{variable.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/variable/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_VARIABLE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/tools/yourdashboard/list/clone.modal.html",'\n\n\n'),a.put("app/tools/yourdashboard/list/create.modal.html",'\n\n\n'),a.put("app/tools/yourdashboard/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }} \n
\n
\n \n
\n \n
\n \n
\n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/yourdashboard/show/leaveEditedDashboard.modal.html",'\n\n\n'),a.put("app/tools/yourdashboard/show/show.html",'
\n
\n \n
\n
\n'),a.put("app/tools/yourdashboard/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{dashboard.name}}\n
\n \n
\n \n\n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/tools/yourdashboard/view/view.settings.html",'
\n
\n
\n
\n
\n \n {{ \'APPLICATION_DASHBOARD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n
\n \n
\n \n\n \n
\n \n \n
\n \n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/zendesk/list/list.html",'\n
\n
\n \n\n \n
\n
\n
\n \n {{ \'APPLICATION_ZENDESK\' | translate }} \n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n \n
\n
\n \n
\n
\n\n'),a.put("app/zendesk/view/configuration/list/create.modal.html",'\n\n\n'), -a.put("app/zendesk/view/configuration/list/list.html",'
\n
\n
\n
\n
\n
\n \n {{\'APPLICATION_CONFIGURATIONS\' | translate}}\n
\n \n
\n
\n \n
\n
{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
\n
\n
\n
\n
\n
\n
\n'),a.put("app/zendesk/view/configuration/view/view.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}\n
\n \n
\n
\n
\n \n
\n
\n
\n All following fields will be join by blank space:\n
\n
\n \n
\n
\n
\n \n
\n
\n \n {{$select.selected.title}}\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{$select.selected.title}}\n \n
\n
\n
\n
\n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n All following fields will be join by new line:\n
\n
\n \n
\n
\n
\n \n
\n
\n \n {{$select.selected.title}}\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n {{$select.selected.title}}\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n \n {{$select.selected.title}}\n \n
\n
\n
\n
\n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n Add how to fill the fields present in your account:\n
\n
\n \n
\n
\n
\n \n
\n
\n \n {{$select.selected.title}}\n \n
\n
\n
\n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n {{$select.selected.title}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{$select.selected.title}}\n \n
\n
\n
\n
\n
\n
\n
\n \n {{$select.selected.name}}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n Select tags that you want add in the ticket:\n
\n
\n
\n
\n \n
\n \n {{$item.name}}\n \n {{tag.name}}\n \n \n
\n \n \n
\n
\n \n
\n
\n
\n
\n
\n'),a.put("app/zendesk/view/view.account.html",'
\n
\n
\n
\n
\n \n {{\'APPLICATION_ACCOUNT\' | translate}}\n
\n \n
\n
\n
\n \n
\n
\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n \n
\n \n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n
\n \n\n
\n
\n
\n
\n
\n'),a.put("app/zendesk/view/view.html",'\n
\n
\n \n\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n {{account.name}}\n
\n
\n {{account.remoteUri}}\n
\n
\n \n \n \n \n
\n \n
\n \n \n
\n
\n \n
\n
\n\n'),a.put("app/zendesk/wizard/wizard.html",'\n\n\n\n\n
\n
\n \n
\n
\n
\n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
\n
\n
\n \n \n
\n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n \n
\n \n\n \n
\n \n \n {{$select.selected | capitalize}}\n \n
\n
\n
\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n
\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
\n \n\n \n\n
\n
\n\n \n

{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

\n \n
\n\n
\n\n
\n
\n \n
\n
\n\n'), -a.put("components/footer/footer.html",'\n\n\n'),a.put("components/header/header.html",'\n
\n \n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n \n \n \n
\n \n
\n\n'),a.put("components/modal/delete.html",'\n\n\n'),a.put("components/sidebar/sidebar.html",'\n'); -}]); \ No newline at end of file diff --git a/public/app/80df8e19.vendor.js b/public/app/80df8e19.vendor.js new file mode 100644 index 0000000..daed8e5 --- /dev/null +++ b/public/app/80df8e19.vendor.js @@ -0,0 +1,112 @@ +function $notificationProvider(){function a(a,c,d){function e(c,d){function f(){d=angular.extend({focusWindowOnClick:!0},b.options||{},d);try{g.baseNotification=new a.Notification(c,d)}catch(e){return}d.delay&&setTimeout(angular.bind(g,g.close),d.delay),d.focusWindowOnClick&&g.$on("click",function(){a.focus()}),g._events.forEach(function(a){g.$on.apply(g,a)}),g._events=[]}if(!a.Notification)return!1;d=d||{};var g=this;return this._events=[],"granted"===a.Notification.permission?f():void("denied"!==a.Notification.permission&&e.requestPermission().then(f))}function f(a,b){return new e(a,b)}return e.prototype.$on=function(a,b){function d(){var a=arguments;c.$apply(function(){b.apply(e,a)})}var e=this;return this.baseNotification?(this.baseNotification.addEventListener(a,d),function(){this.baseNotification.removeListener(event,d)}):this._events.push([a,b])},e.prototype.close=function(){this.baseNotification&&this.baseNotification.close()},e.requestPermission=function(){return d(function(b,c){return a.Notification?void a.Notification.requestPermission(function(c){a.Notification.permission=a.Notification.permission||c,b(a.Notification.permission)}):c()})},f.requestPermission=e.requestPermission,f}var b=this;this.$get=["$window","$rootScope","$q",a],this.setOptions=function(a){this.options=a}}function wizardButtonDirective(a){angular.module("mgo-angular-wizard").directive(a,function(){return{restrict:"A",replace:!1,require:"^wizard",link:function(b,c,d,e){c.on("click",function(c){c.preventDefault(),b.$apply(function(){b.$eval(d[a]),e[a.replace("wz","").toLowerCase()]()})})}}})}function _typeof(a){return a&&"undefined"!=typeof Symbol&&a.constructor===Symbol?"symbol":typeof a}function getRandomColors(){for(var a="0123456789ABCDEF".split(""),b="#",c=0;6>c;c++)b+=a[Math.floor(16*Math.random())];return b}function getFirstAndLastName(a){var b=a.split(" ");if(b&&b.length>=2){var c=b[0],d=b[1];if(c&&d){var e=c.substr(0,1)+d.substr(0,1);return e}return a.substr(0,2)}}function getImgTag(a,b,c){var d=angular.element("").attr({xmlns:"http://www.w3.org/2000/svg","pointer-events":"none",width:a,height:b}).css({"background-color":c,width:a+"px",height:b+"px"});return d}function getCharacterObject(a,b,c,d,e){var f=angular.element('').attr({y:"50%",x:"50%",dy:"0.35em","pointer-events":"auto",fill:b,"font-family":c}).html(a).css({"font-weight":d,"font-size":e+"px"});return f}if(function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b="length"in a&&a.length,c=_.type(a);return"function"===c||_.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(_.isFunction(b))return _.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return _.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(ha.test(b))return _.filter(b,a,c);b=_.filter(b,a)}return _.grep(a,function(a){return U.call(b,a)>=0!==c})}function e(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function f(a){var b=oa[a]={};return _.each(a.match(na)||[],function(a,c){b[c]=!0}),b}function g(){Z.removeEventListener("DOMContentLoaded",g,!1),a.removeEventListener("load",g,!1),_.ready()}function h(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=_.expando+h.uid++}function i(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(ua,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:ta.test(c)?_.parseJSON(c):c}catch(e){}sa.set(a,b,c)}else c=void 0;return c}function j(){return!0}function k(){return!1}function l(){try{return Z.activeElement}catch(a){}}function m(a,b){return _.nodeName(a,"table")&&_.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function n(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function o(a){var b=Ka.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function p(a,b){for(var c=0,d=a.length;d>c;c++)ra.set(a[c],"globalEval",!b||ra.get(b[c],"globalEval"))}function q(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(ra.hasData(a)&&(f=ra.access(a),g=ra.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)_.event.add(b,e,j[e][c])}sa.hasData(a)&&(h=sa.access(a),i=_.extend({},h),sa.set(b,i))}}function r(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&_.nodeName(a,b)?_.merge([a],c):c}function s(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ya.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function t(b,c){var d,e=_(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:_.css(e[0],"display");return e.detach(),f}function u(a){var b=Z,c=Oa[a];return c||(c=t(a,b),"none"!==c&&c||(Na=(Na||_("':''),v=a(d.theme?'':''),d.theme&&q?(x='"):d.theme?(x='"):x=q?'':'',w=a(x),r&&(d.theme?(w.css(p),w.addClass("ui-widget-content")):w.css(f)),d.theme||v.css(d.overlayCSS),v.css("position",q?"fixed":"absolute"),(k||d.forceIframe)&&u.css("opacity",0);var z=[u,v,w],A=a(q?"body":b);a.each(z,function(){this.appendTo(A)}),d.theme&&d.draggable&&a.fn.draggable&&w.draggable({handle:".ui-dialog-titlebar",cancel:"li"});var B=m&&(!a.support.boxModel||a("object,embed",q?null:b).length>0);if(l||B){if(q&&d.allowBodyStretch&&a.support.boxModel&&a("html,body").css("height","100%"),(l||!a.support.boxModel)&&!q)var C=i(b,"borderTopWidth"),D=i(b,"borderLeftWidth"),E=C?"(0 - "+C+")":0,F=D?"(0 - "+D+")":0;a.each(z,function(a,b){var c=b[0].style;if(c.position="absolute",2>a)q?c.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+d.quirksmodeOffsetHack+') + "px"'):c.setExpression("height",'this.parentNode.offsetHeight + "px"'),q?c.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):c.setExpression("width",'this.parentNode.offsetWidth + "px"'),F&&c.setExpression("left",F),E&&c.setExpression("top",E);else if(d.centerY)q&&c.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'),c.marginTop=0;else if(!d.centerY&&q){var e=d.css&&d.css.top?parseInt(d.css.top,10):0,f="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+e+') + "px"';c.setExpression("top",f)}})}if(r&&(d.theme?w.find(".ui-widget-content").append(r):w.append(r),(r.jquery||r.nodeType)&&a(r).show()),(k||d.forceIframe)&&d.showOverlay&&u.show(),d.fadeIn){var G=d.onBlock?d.onBlock:j,H=d.showOverlay&&!r?G:j,I=r?G:j;d.showOverlay&&v._fadeIn(d.fadeIn,H),r&&w._fadeIn(d.fadeIn,I)}else d.showOverlay&&v.show(),r&&w.show(),d.onBlock&&d.onBlock.bind(w)();if(e(1,b,d),q?(n=w[0],o=a(d.focusableElements,n),d.focusInput&&setTimeout(g,20)):h(w[0],d.centerX,d.centerY),d.timeout){var J=setTimeout(function(){q?a.unblockUI(d):a(b).unblock(d)},d.timeout);a(b).data("blockUI.timeout",J)}}}function c(b,c){var f,g=b==window,h=a(b),i=h.data("blockUI.history"),j=h.data("blockUI.timeout");j&&(clearTimeout(j),h.removeData("blockUI.timeout")),c=a.extend({},a.blockUI.defaults,c||{}),e(0,b,c),null===c.onUnblock&&(c.onUnblock=h.data("blockUI.onUnblock"),h.removeData("blockUI.onUnblock"));var k;k=g?a("body").children().filter(".blockUI").add("body > .blockUI"):h.find(">.blockUI"),c.cursorReset&&(k.length>1&&(k[1].style.cursor=c.cursorReset),k.length>2&&(k[2].style.cursor=c.cursorReset)),g&&(n=o=null),c.fadeOut?(f=k.length,k.stop().fadeOut(c.fadeOut,function(){0===--f&&d(k,i,c,b)})):d(k,i,c,b)}function d(b,c,d,e){var f=a(e);if(!f.data("blockUI.isBlocked")){b.each(function(a,b){this.parentNode&&this.parentNode.removeChild(this)}),c&&c.el&&(c.el.style.display=c.display,c.el.style.position=c.position,c.el.style.cursor="default",c.parent&&c.parent.appendChild(c.el),f.removeData("blockUI.history")),f.data("blockUI.static")&&f.css("position","static"),"function"==typeof d.onUnblock&&d.onUnblock(e,d);var g=a(document.body),h=g.width(),i=g[0].style.width;g.width(h-1).width(h),g[0].style.width=i}}function e(b,c,d){var e=c==window,g=a(c);if((b||(!e||n)&&(e||g.data("blockUI.isBlocked")))&&(g.data("blockUI.isBlocked",b),e&&d.bindEvents&&(!b||d.showOverlay))){var h="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";b?a(document).bind(h,d,f):a(document).unbind(h,f)}}function f(b){if("keydown"===b.type&&b.keyCode&&9==b.keyCode&&n&&b.data.constrainTabKey){var c=o,d=!b.shiftKey&&b.target===c[c.length-1],e=b.shiftKey&&b.target===c[0];if(d||e)return setTimeout(function(){g(e)},10),!1}var f=b.data,h=a(b.target);return h.hasClass("blockOverlay")&&f.onOverlayClick&&f.onOverlayClick(b),h.parents("div."+f.blockMsgClass).length>0?!0:0===h.parents().children().filter("div.blockUI").length}function g(a){if(o){var b=o[a===!0?o.length-1:0];b&&b.focus()}}function h(a,b,c){var d=a.parentNode,e=a.style,f=(d.offsetWidth-a.offsetWidth)/2-i(d,"borderLeftWidth"),g=(d.offsetHeight-a.offsetHeight)/2-i(d,"borderTopWidth");b&&(e.left=f>0?f+"px":"0"),c&&(e.top=g>0?g+"px":"0")}function i(b,c){return parseInt(a.css(b,c),10)||0}a.fn._fadeIn=a.fn.fadeIn;var j=a.noop||function(){},k=/MSIE/.test(navigator.userAgent),l=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent),m=(document.documentMode||0,a.isFunction(document.createElement("div").style.setExpression));a.blockUI=function(a){b(window,a)},a.unblockUI=function(a){c(window,a)},a.growlUI=function(b,c,d,e){var f=a('
');b&&f.append("

"+b+"

"),c&&f.append("

"+c+"

"),void 0===d&&(d=3e3);var g=function(b){b=b||{},a.blockUI({message:f,fadeIn:"undefined"!=typeof b.fadeIn?b.fadeIn:700,fadeOut:"undefined"!=typeof b.fadeOut?b.fadeOut:1e3,timeout:"undefined"!=typeof b.timeout?b.timeout:d,centerY:!1,showOverlay:!1,onUnblock:e,css:a.blockUI.defaults.growlCSS})};g();f.css("opacity");f.mouseover(function(){g({fadeIn:0,timeout:3e4});var b=a(".blockMsg");b.stop(),b.fadeTo(300,1)}).mouseout(function(){a(".blockMsg").fadeOut(1e3)})},a.fn.block=function(c){if(this[0]===window)return a.blockUI(c),this;var d=a.extend({},a.blockUI.defaults,c||{});return this.each(function(){var b=a(this);d.ignoreIfBlocked&&b.data("blockUI.isBlocked")||b.unblock({fadeOut:0})}),this.each(function(){"static"==a.css(this,"position")&&(this.style.position="relative",a(this).data("blockUI.static",!0)),this.style.zoom=1,b(this,c)})},a.fn.unblock=function(b){return this[0]===window?(a.unblockUI(b),this):this.each(function(){c(this,b)})},a.blockUI.version=2.7,a.blockUI.defaults={message:"

Please wait...

",title:null,draggable:!0,theme:!1,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:!1,baseZ:1e3,centerX:!0,centerY:!0,allowBodyStretch:!0,bindEvents:!0,constrainTabKey:!0,fadeIn:200,fadeOut:400,timeout:0,showOverlay:!0,focusInput:!0,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:!1};var n=null,o=[]}"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],a):a(jQuery)}(),function(a,b,c){var d=a();a.fn.dropdownHover=function(c){return"ontouchstart"in document?this:(d=d.add(this.parent()),this.each(function(){function e(a){b.clearTimeout(f),b.clearTimeout(g),g=b.setTimeout(function(){d.find(":focus").blur(),n.instantlyCloseOthers===!0&&d.removeClass("open"),b.clearTimeout(g),h.attr("aria-expanded","true"),i.addClass("open"),h.trigger(l)},n.hoverDelay)}var f,g,h=a(this),i=h.parent(),j={delay:500,hoverDelay:0,instantlyCloseOthers:!0},k={delay:a(this).data("delay"),hoverDelay:a(this).data("hover-delay"),instantlyCloseOthers:a(this).data("close-others")},l="show.bs.dropdown",m="hide.bs.dropdown",n=a.extend(!0,{},j,c,k);i.hover(function(a){return i.hasClass("open")||h.is(a.target)?void e(a):!0},function(){b.clearTimeout(g),f=b.setTimeout(function(){h.attr("aria-expanded","false"),i.removeClass("open"),h.trigger(m)},n.delay)}),h.hover(function(a){return i.hasClass("open")||i.is(a.target)?void e(a):!0}),i.find(".dropdown-submenu").each(function(){var c,d=a(this);d.hover(function(){b.clearTimeout(c),d.children(".dropdown-menu").show(),d.siblings().children(".dropdown-menu").hide()},function(){var a=d.children(".dropdown-menu");c=b.setTimeout(function(){a.hide()},n.delay)})})}))},a(document).ready(function(){a('[data-hover="dropdown"]').dropdownHover()})}(jQuery,window),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){"use strict";function b(b){var c=[{re:/[\xC0-\xC6]/g,ch:"A"},{re:/[\xE0-\xE6]/g,ch:"a"},{re:/[\xC8-\xCB]/g,ch:"E"},{re:/[\xE8-\xEB]/g,ch:"e"},{re:/[\xCC-\xCF]/g,ch:"I"},{re:/[\xEC-\xEF]/g,ch:"i"},{re:/[\xD2-\xD6]/g,ch:"O"},{re:/[\xF2-\xF6]/g,ch:"o"},{re:/[\xD9-\xDC]/g,ch:"U"},{re:/[\xF9-\xFC]/g,ch:"u"},{re:/[\xC7-\xE7]/g,ch:"c"},{re:/[\xD1]/g,ch:"N"},{re:/[\xF1]/g,ch:"n"}];return a.each(c,function(){b=b.replace(this.re,this.ch)}),b}function c(a){var b={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},c="(?:"+Object.keys(b).join("|")+")",d=new RegExp(c),e=new RegExp(c,"g"),f=null==a?"":""+a;return d.test(f)?f.replace(e,function(a){return b[a]}):f}function d(b,c){var d=arguments,f=b,g=c;[].shift.apply(d);var h,i=this.each(function(){var b=a(this);if(b.is("select")){var c=b.data("selectpicker"),i="object"==typeof f&&f;if(c){if(i)for(var j in i)i.hasOwnProperty(j)&&(c.options[j]=i[j])}else{var k=a.extend({},e.DEFAULTS,a.fn.selectpicker.defaults||{},b.data(),i);k.template=a.extend({},e.DEFAULTS.template,a.fn.selectpicker.defaults?a.fn.selectpicker.defaults.template:{},b.data().template,i.template),b.data("selectpicker",c=new e(this,k,g))}"string"==typeof f&&(h=c[f]instanceof Function?c[f].apply(c,d):c.options[f])}});return"undefined"!=typeof h?h:i}String.prototype.includes||!function(){var a={}.toString,b=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(d){}return c}(),c="".indexOf,d=function(b){if(null==this)throw new TypeError;var d=String(this);if(b&&"[object RegExp]"==a.call(b))throw new TypeError;var e=d.length,f=String(b),g=f.length,h=arguments.length>1?arguments[1]:void 0,i=h?Number(h):0;i!=i&&(i=0);var j=Math.min(Math.max(i,0),e);return g+j>e?!1:-1!=c.call(d,f,i)};b?b(String.prototype,"includes",{value:d,configurable:!0,writable:!0}):String.prototype.includes=d}(),String.prototype.startsWith||!function(){var a=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(d){}return c}(),b={}.toString,c=function(a){if(null==this)throw new TypeError;var c=String(this);if(a&&"[object RegExp]"==b.call(a))throw new TypeError;var d=c.length,e=String(a),f=e.length,g=arguments.length>1?arguments[1]:void 0,h=g?Number(g):0;h!=h&&(h=0);var i=Math.min(Math.max(h,0),d);if(f+i>d)return!1;for(var j=-1;++j'},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1},e.prototype={constructor:e,init:function(){var b=this,c=this.$element.attr("id");this.$element.addClass("bs-select-hidden"),this.liObj={},this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$newElement=this.createView(),this.$element.after(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(".dropdown-menu"),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.options.dropdownAlignRight&&this.$menu.addClass("dropdown-menu-right"),"undefined"!=typeof c&&(this.$button.attr("data-id",c),a('label[for="'+c+'"]').click(function(a){a.preventDefault(),b.$button.focus()})),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.render(),this.setStyle(),this.setWidth(),this.options.container&&this.selectPosition(),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(a){b.$element.trigger("hide.bs.select",a)},"hidden.bs.dropdown":function(a){b.$element.trigger("hidden.bs.select",a)},"show.bs.dropdown":function(a){b.$element.trigger("show.bs.select",a)},"shown.bs.dropdown":function(a){b.$element.trigger("shown.bs.select",a)}}),setTimeout(function(){b.$element.trigger("loaded.bs.select")})},createDropdown:function(){var b=this.multiple?" show-tick":"",d=this.$element.parent().hasClass("input-group")?" input-group-btn":"",e=this.autofocus?" autofocus":"",f=this.options.header?'
'+this.options.header+"
":"",g=this.options.liveSearch?'":"",h=this.multiple&&this.options.actionsBox?'
":"",i=this.multiple&&this.options.doneButton?'
":"",j='
";return a(j)},createView:function(){var a=this.createDropdown(),b=this.createLi();return a.find("ul")[0].innerHTML=b,a},reloadLi:function(){this.destroyLi();var a=this.createLi();this.$menuInner[0].innerHTML=a},destroyLi:function(){this.$menu.find("li").remove()},createLi:function(){var d=this,e=[],f=0,g=document.createElement("option"),h=-1,i=function(a,b,c,d){return""+a+""},j=function(a,e,f,g){return'"+a+''};if(this.options.title&&!this.multiple&&(h--,!this.$element.find(".bs-title-option").length)){var k=this.$element[0];g.className="bs-title-option",g.appendChild(document.createTextNode(this.options.title)),g.value="",k.insertBefore(g,k.firstChild),void 0===a(k.options[k.selectedIndex]).attr("selected")&&(g.selected=!0)}return this.$element.find("option").each(function(b){var c=a(this);if(h++,!c.hasClass("bs-title-option")){var g=this.className||"",k=this.style.cssText,l=c.data("content")?c.data("content"):c.html(),m=c.data("tokens")?c.data("tokens"):null,n="undefined"!=typeof c.data("subtext")?''+c.data("subtext")+"":"",o="undefined"!=typeof c.data("icon")?' ':"",p=this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled;if(""!==o&&p&&(o=""+o+""),d.options.hideDisabled&&p)return void h--;if(c.data("content")||(l=o+''+l+n+""),"OPTGROUP"===this.parentNode.tagName&&c.data("divider")!==!0){var q=" "+this.parentNode.className||"";if(0===c.index()){f+=1;var r=this.parentNode.label,s="undefined"!=typeof c.parent().data("subtext")?''+c.parent().data("subtext")+"":"",t=c.parent().data("icon")?' ':"";r=t+''+r+s+"",0!==b&&e.length>0&&(h++,e.push(i("",null,"divider",f+"div"))),h++,e.push(i(r,null,"dropdown-header"+q,f))}e.push(i(j(l,"opt "+g+q,k,m),b,"",f))}else c.data("divider")===!0?e.push(i("",b,"divider")):c.data("hidden")===!0?e.push(i(j(l,g,k,m),b,"hidden is-hidden")):(this.previousElementSibling&&"OPTGROUP"===this.previousElementSibling.tagName&&(h++,e.push(i("",null,"divider",f+"div"))),e.push(i(j(l,g,k,m),b)));d.liObj[b]=h}}),this.multiple||0!==this.$element.find("option:selected").length||this.options.title||this.$element.find("option").eq(0).prop("selected",!0).attr("selected","selected"),e.join("")},findLis:function(){return null==this.$lis&&(this.$lis=this.$menu.find("li")),this.$lis},render:function(b){var c,d=this;b!==!1&&this.$element.find("option").each(function(a){var b=d.findLis().eq(d.liObj[a]);d.setDisabled(a,this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled,b),d.setSelected(a,this.selected,b)}),this.tabIndex();var e=this.$element.find("option").map(function(){if(this.selected){if(d.options.hideDisabled&&(this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled))return;var b,c=a(this),e=c.data("icon")&&d.options.showIcon?' ':"";return b=d.options.showSubtext&&c.data("subtext")&&!d.multiple?' '+c.data("subtext")+"":"","undefined"!=typeof c.attr("title")?c.attr("title"):c.data("content")&&d.options.showContent?c.data("content"):e+c.html()+b}}).toArray(),f=this.multiple?e.join(this.options.multipleSeparator):e[0];if(this.multiple&&this.options.selectedTextFormat.indexOf("count")>-1){var g=this.options.selectedTextFormat.split(">");if(g.length>1&&e.length>g[1]||1==g.length&&e.length>=2){c=this.options.hideDisabled?", [disabled]":"";var h=this.$element.find("option").not('[data-divider="true"], [data-hidden="true"]'+c).length,i="function"==typeof this.options.countSelectedText?this.options.countSelectedText(e.length,h):this.options.countSelectedText;f=i.replace("{0}",e.length.toString()).replace("{1}",h.toString())}}void 0==this.options.title&&(this.options.title=this.$element.attr("title")),"static"==this.options.selectedTextFormat&&(f=this.options.title),f||(f="undefined"!=typeof this.options.title?this.options.title:this.options.noneSelectedText),this.$button.attr("title",a.trim(f.replace(/<[^>]*>?/g,""))),this.$button.children(".filter-option").html(f),this.$element.trigger("rendered.bs.select")},setStyle:function(a,b){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,""));var c=a?a:this.options.style;"add"==b?this.$button.addClass(c):"remove"==b?this.$button.removeClass(c):(this.$button.removeClass(this.options.style),this.$button.addClass(c))},liHeight:function(b){if(b||this.options.size!==!1&&!this.sizeInfo){var c=document.createElement("div"),d=document.createElement("div"),e=document.createElement("ul"),f=document.createElement("li"),g=document.createElement("li"),h=document.createElement("a"),i=document.createElement("span"),j=this.options.header&&this.$menu.find(".popover-title").length>0?this.$menu.find(".popover-title")[0].cloneNode(!0):null,k=this.options.liveSearch?document.createElement("div"):null,l=this.options.actionsBox&&this.multiple&&this.$menu.find(".bs-actionsbox").length>0?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,m=this.options.doneButton&&this.multiple&&this.$menu.find(".bs-donebutton").length>0?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null;if(i.className="text",c.className=this.$menu[0].parentNode.className+" open",d.className="dropdown-menu open",e.className="dropdown-menu inner",f.className="divider",i.appendChild(document.createTextNode("Inner text")),h.appendChild(i),g.appendChild(h),e.appendChild(g),e.appendChild(f),j&&d.appendChild(j),k){var n=document.createElement("span");k.className="bs-searchbox",n.className="form-control",k.appendChild(n),d.appendChild(k)}l&&d.appendChild(l),d.appendChild(e),m&&d.appendChild(m),c.appendChild(d),document.body.appendChild(c);var o=h.offsetHeight,p=j?j.offsetHeight:0,q=k?k.offsetHeight:0,r=l?l.offsetHeight:0,s=m?m.offsetHeight:0,t=a(f).outerHeight(!0),u="function"==typeof getComputedStyle?getComputedStyle(d):!1,v=u?null:a(d),w=parseInt(u?u.paddingTop:v.css("paddingTop"))+parseInt(u?u.paddingBottom:v.css("paddingBottom"))+parseInt(u?u.borderTopWidth:v.css("borderTopWidth"))+parseInt(u?u.borderBottomWidth:v.css("borderBottomWidth")),x=w+parseInt(u?u.marginTop:v.css("marginTop"))+parseInt(u?u.marginBottom:v.css("marginBottom"))+2;document.body.removeChild(c),this.sizeInfo={liHeight:o,headerHeight:p,searchHeight:q,actionsHeight:r,doneButtonHeight:s,dividerHeight:t,menuPadding:w,menuExtras:x}}},setSize:function(){if(this.findLis(),this.liHeight(),this.options.header&&this.$menu.css("padding-top",0),this.options.size!==!1){var b,c,d,e,f=this,g=this.$menu,h=this.$menuInner,i=a(window),j=this.$newElement[0].offsetHeight,k=this.sizeInfo.liHeight,l=this.sizeInfo.headerHeight,m=this.sizeInfo.searchHeight,n=this.sizeInfo.actionsHeight,o=this.sizeInfo.doneButtonHeight,p=this.sizeInfo.dividerHeight,q=this.sizeInfo.menuPadding,r=this.sizeInfo.menuExtras,s=this.options.hideDisabled?".disabled":"",t=function(){d=f.$newElement.offset().top-i.scrollTop(),e=i.height()-d-j};if(t(),"auto"===this.options.size){var u=function(){var i,j=function(b,c){return function(d){return c?d.classList?d.classList.contains(b):a(d).hasClass(b):!(d.classList?d.classList.contains(b):a(d).hasClass(b))}},p=f.$menuInner[0].getElementsByTagName("li"),s=Array.prototype.filter?Array.prototype.filter.call(p,j("hidden",!1)):f.$lis.not(".hidden"),u=Array.prototype.filter?Array.prototype.filter.call(s,j("dropdown-header",!0)):s.filter(".dropdown-header");t(),b=e-r,f.options.container?(g.data("height")||g.data("height",g.height()),c=g.data("height")):c=g.height(),f.options.dropupAuto&&f.$newElement.toggleClass("dropup",d>e&&c>b-r),f.$newElement.hasClass("dropup")&&(b=d-r),i=s.length+u.length>3?3*k+r-2:0,g.css({"max-height":b+"px",overflow:"hidden","min-height":i+l+m+n+o+"px"}),h.css({"max-height":b-l-m-n-o-q+"px","overflow-y":"auto","min-height":Math.max(i-q,0)+"px"})};u(),this.$searchbox.off("input.getSize propertychange.getSize").on("input.getSize propertychange.getSize",u),i.off("resize.getSize scroll.getSize").on("resize.getSize scroll.getSize",u)}else if(this.options.size&&"auto"!=this.options.size&&this.$lis.not(s).length>this.options.size){var v=this.$lis.not(".divider").not(s).children().slice(0,this.options.size).last().parent().index(),w=this.$lis.slice(0,v+1).filter(".divider").length;b=k*this.options.size+w*p+q,f.options.container?(g.data("height")||g.data("height",g.height()),c=g.data("height")):c=g.height(),f.options.dropupAuto&&this.$newElement.toggleClass("dropup",d>e&&c>b-r),g.css({"max-height":b+l+m+n+o+"px",overflow:"hidden","min-height":""}),h.css({"max-height":b-q+"px","overflow-y":"auto","min-height":""})}}},setWidth:function(){if("auto"===this.options.width){this.$menu.css("min-width","0");var a=this.$menu.parent().clone().appendTo("body"),b=this.options.container?this.$newElement.clone().appendTo("body"):a,c=a.children(".dropdown-menu").outerWidth(),d=b.css("width","auto").children("button").outerWidth();a.remove(),b.remove(),this.$newElement.css("width",Math.max(c,d)+"px")}else"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width",""));this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement.removeClass("fit-width")},selectPosition:function(){this.$bsContainer=a('
');var b,c,d=this,e=function(a){d.$bsContainer.addClass(a.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass("dropup",a.hasClass("dropup")),b=a.offset(),c=a.hasClass("dropup")?0:a[0].offsetHeight,d.$bsContainer.css({top:b.top+c,left:b.left,width:a[0].offsetWidth})};this.$newElement.on("click",function(){var b=a(this);d.isDisabled()||(e(b),d.$bsContainer.appendTo(d.options.container).toggleClass("open",!b.hasClass("open")).append(d.$menu))}),a(window).on("resize scroll",function(){e(d.$newElement)}),this.$element.on("hide.bs.select",function(){d.$menu.data("height",d.$menu.height()),d.$bsContainer.detach()})},setSelected:function(a,b,c){c||(c=this.findLis().eq(this.liObj[a])),c.toggleClass("selected",b)},setDisabled:function(a,b,c){c||(c=this.findLis().eq(this.liObj[a])),b?c.addClass("disabled").children("a").attr("href","#").attr("tabindex",-1):c.removeClass("disabled").children("a").removeAttr("href").attr("tabindex",0)},isDisabled:function(){return this.$element[0].disabled},checkDisabled:function(){var a=this;this.isDisabled()?(this.$newElement.addClass("disabled"),this.$button.addClass("disabled").attr("tabindex",-1)):(this.$button.hasClass("disabled")&&(this.$newElement.removeClass("disabled"),this.$button.removeClass("disabled")),-1!=this.$button.attr("tabindex")||this.$element.data("tabindex")||this.$button.removeAttr("tabindex")),this.$button.click(function(){return!a.isDisabled()})},tabIndex:function(){this.$element.is("[tabindex]")&&(this.$element.data("tabindex",this.$element.attr("tabindex")),this.$button.attr("tabindex",this.$element.data("tabindex")))},clickListener:function(){var b=this,c=a(document);this.$newElement.on("touchstart.dropdown",".dropdown-menu",function(a){a.stopPropagation()}),c.data("spaceSelect",!1),this.$button.on("keyup",function(a){/(32)/.test(a.keyCode.toString(10))&&c.data("spaceSelect")&&(a.preventDefault(), +c.data("spaceSelect",!1))}),this.$newElement.on("click",function(){b.setSize(),b.$element.on("shown.bs.select",function(){if(b.options.liveSearch||b.multiple){if(!b.multiple){var a=b.liObj[b.$element[0].selectedIndex];if("number"!=typeof a||b.options.size===!1)return;var c=b.$lis.eq(a)[0].offsetTop-b.$menuInner[0].offsetTop;c=c-b.$menuInner[0].offsetHeight/2+b.sizeInfo.liHeight/2,b.$menuInner[0].scrollTop=c}}else b.$menuInner.find(".selected a").focus()})}),this.$menuInner.on("click","li a",function(c){var d=a(this),e=d.parent().data("originalIndex"),f=b.$element.val(),g=b.$element.prop("selectedIndex");if(b.multiple&&c.stopPropagation(),c.preventDefault(),!b.isDisabled()&&!d.parent().hasClass("disabled")){var h=b.$element.find("option"),i=h.eq(e),j=i.prop("selected"),k=i.parent("optgroup"),l=b.options.maxOptions,m=k.data("maxOptions")||!1;if(b.multiple){if(i.prop("selected",!j),b.setSelected(e,!j),d.blur(),l!==!1||m!==!1){var n=l
');q[2]&&(r=r.replace("{var}",q[2][l>1?0:1]),s=s.replace("{var}",q[2][m>1?0:1])),i.prop("selected",!1),b.$menu.append(t),l&&n&&(t.append(a("
"+r+"
")),b.$element.trigger("maxReached.bs.select")),m&&o&&(t.append(a("
"+s+"
")),b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(e,!1)},10),t.delay(750).fadeOut(300,function(){a(this).remove()})}}}else h.prop("selected",!1),i.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected"),b.setSelected(e,!0);b.multiple?b.options.liveSearch&&b.$searchbox.focus():b.$button.focus(),(f!=b.$element.val()&&b.multiple||g!=b.$element.prop("selectedIndex")&&!b.multiple)&&(b.$element.triggerNative("change"),b.$element.trigger("changed.bs.select",[e,i.prop("selected"),j]))}}),this.$menu.on("click","li.disabled a, .popover-title, .popover-title :not(.close)",function(c){c.currentTarget==this&&(c.preventDefault(),c.stopPropagation(),b.options.liveSearch&&!a(c.target).hasClass("close")?b.$searchbox.focus():b.$button.focus())}),this.$menuInner.on("click",".divider, .dropdown-header",function(a){a.preventDefault(),a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus()}),this.$menu.on("click",".popover-title .close",function(){b.$button.click()}),this.$searchbox.on("click",function(a){a.stopPropagation()}),this.$menu.on("click",".actions-btn",function(c){b.options.liveSearch?b.$searchbox.focus():b.$button.focus(),c.preventDefault(),c.stopPropagation(),a(this).hasClass("bs-select-all")?b.selectAll():b.deselectAll(),b.$element.triggerNative("change")}),this.$element.change(function(){b.render(!1)})},liveSearchListener:function(){var d=this,e=a('
  • ');this.$newElement.on("click.dropdown.data-api touchstart.dropdown.data-api",function(){d.$menuInner.find(".active").removeClass("active"),d.$searchbox.val()&&(d.$searchbox.val(""),d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove()),d.multiple||d.$menuInner.find(".selected").addClass("active"),setTimeout(function(){d.$searchbox.focus()},10)}),this.$searchbox.on("click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api",function(a){a.stopPropagation()}),this.$searchbox.on("input propertychange",function(){if(d.$searchbox.val()){var f=d.$lis.not(".is-hidden").removeClass("hidden").children("a");f=d.options.liveSearchNormalize?f.not(":a"+d._searchStyle()+'("'+b(d.$searchbox.val())+'")'):f.not(":"+d._searchStyle()+'("'+d.$searchbox.val()+'")'),f.parent().addClass("hidden"),d.$lis.filter(".dropdown-header").each(function(){var b=a(this),c=b.data("optgroup");0===d.$lis.filter("[data-optgroup="+c+"]").not(b).not(".hidden").length&&(b.addClass("hidden"),d.$lis.filter("[data-optgroup="+c+"div]").addClass("hidden"))});var g=d.$lis.not(".hidden");g.each(function(b){var c=a(this);c.hasClass("divider")&&(c.index()===g.first().index()||c.index()===g.last().index()||g.eq(b+1).hasClass("divider"))&&c.addClass("hidden")}),d.$lis.not(".hidden, .no-results").length?e.parent().length&&e.remove():(e.parent().length&&e.remove(),e.html(d.options.noneResultsText.replace("{0}",'"'+c(d.$searchbox.val())+'"')).show(),d.$menuInner.append(e))}else d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove();d.$lis.filter(".active").removeClass("active"),d.$searchbox.val()&&d.$lis.not(".hidden, .divider, .dropdown-header").eq(0).addClass("active").children("a").focus(),a(this).focus()})},_searchStyle:function(){var a={begins:"ibegins",startsWith:"ibegins"};return a[this.options.liveSearchStyle]||"icontains"},val:function(a){return"undefined"!=typeof a?(this.$element.val(a),this.render(),this.$element):this.$element.val()},changeAll:function(b){"undefined"==typeof b&&(b=!0),this.findLis();for(var c=this.$element.find("option"),d=this.$lis.not(".divider, .dropdown-header, .disabled, .hidden").toggleClass("selected",b),e=d.length,f=[],g=0;e>g;g++){var h=d[g].getAttribute("data-original-index");f[f.length]=c.eq(h)[0]}a(f).prop("selected",b),this.render(!1)},selectAll:function(){return this.changeAll(!0)},deselectAll:function(){return this.changeAll(!1)},keydown:function(c){var d,e,f,g,h,i,j,k,l,m=a(this),n=m.is("input")?m.parent().parent():m.parent(),o=n.data("this"),p=":not(.disabled, .hidden, .dropdown-header, .divider)",q={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"};if(o.options.liveSearch&&(n=m.parent().parent()),o.options.container&&(n=o.$menu),d=a("[role=menu] li",n),l=o.$menu.parent().hasClass("open"),!l&&(c.keyCode>=48&&c.keyCode<=57||c.keyCode>=96&&c.keyCode<=105||c.keyCode>=65&&c.keyCode<=90)&&(o.options.container?o.$newElement.trigger("click"):(o.setSize(),o.$menu.parent().addClass("open"),l=!0),o.$searchbox.focus()),o.options.liveSearch&&(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&0===o.$menu.find(".active").length&&(c.preventDefault(),o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus()),d=a("[role=menu] li"+p,n),m.val()||/(38|40)/.test(c.keyCode.toString(10))||0===d.filter(".active").length&&(d=o.$menuInner.find("li"),d=o.options.liveSearchNormalize?d.filter(":a"+o._searchStyle()+"("+b(q[c.keyCode])+")"):d.filter(":"+o._searchStyle()+"("+q[c.keyCode]+")"))),d.length){if(/(38|40)/.test(c.keyCode.toString(10)))e=d.index(d.find("a").filter(":focus").parent()),g=d.filter(p).first().index(),h=d.filter(p).last().index(),f=d.eq(e).nextAll(p).eq(0).index(),i=d.eq(e).prevAll(p).eq(0).index(),j=d.eq(f).prevAll(p).eq(0).index(),o.options.liveSearch&&(d.each(function(b){a(this).hasClass("disabled")||a(this).data("index",b)}),e=d.index(d.filter(".active")),g=d.first().data("index"),h=d.last().data("index"),f=d.eq(e).nextAll().eq(0).data("index"),i=d.eq(e).prevAll().eq(0).data("index"),j=d.eq(f).prevAll().eq(0).data("index")),k=m.data("prevIndex"),38==c.keyCode?(o.options.liveSearch&&e--,e!=j&&e>i&&(e=i),g>e&&(e=g),e==k&&(e=h)):40==c.keyCode&&(o.options.liveSearch&&e++,-1==e&&(e=0),e!=j&&f>e&&(e=f),e>h&&(e=h),e==k&&(e=g)),m.data("prevIndex",e),o.options.liveSearch?(c.preventDefault(),m.hasClass("dropdown-toggle")||(d.removeClass("active").eq(e).addClass("active").children("a").focus(),m.focus())):d.eq(e).children("a").focus();else if(!m.is("input")){var r,s,t=[];d.each(function(){a(this).hasClass("disabled")||a.trim(a(this).children("a").text().toLowerCase()).substring(0,1)==q[c.keyCode]&&t.push(a(this).index())}),r=a(document).data("keycount"),r++,a(document).data("keycount",r),s=a.trim(a(":focus").text().toLowerCase()).substring(0,1),s!=q[c.keyCode]?(r=1,a(document).data("keycount",r)):r>=t.length&&(a(document).data("keycount",0),r>t.length&&(r=1)),d.eq(t[r-1]).children("a").focus()}if((/(13|32)/.test(c.keyCode.toString(10))||/(^9$)/.test(c.keyCode.toString(10))&&o.options.selectOnTab)&&l){if(/(32)/.test(c.keyCode.toString(10))||c.preventDefault(),o.options.liveSearch)/(32)/.test(c.keyCode.toString(10))||(o.$menuInner.find(".active a").click(),m.focus());else{var u=a(":focus");u.click(),u.focus(),c.preventDefault(),a(document).data("spaceSelect",!0)}a(document).data("keycount",0)}(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(o.multiple||o.options.liveSearch)||/(27)/.test(c.keyCode.toString(10))&&!l)&&(o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus())}},mobile:function(){this.$element.addClass("mobile-device").appendTo(this.$newElement),this.options.container&&this.$menu.hide()},refresh:function(){this.$lis=null,this.liObj={},this.reloadLi(),this.render(),this.checkDisabled(),this.liHeight(!0),this.setStyle(),this.setWidth(),this.$lis&&this.$searchbox.trigger("propertychange"),this.$element.trigger("refreshed.bs.select")},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(".bs.select").removeData("selectpicker").removeClass("bs-select-hidden selectpicker")}};var f=a.fn.selectpicker;a.fn.selectpicker=d,a.fn.selectpicker.Constructor=e,a.fn.selectpicker.noConflict=function(){return a.fn.selectpicker=f,this},a(document).data("keycount",0).on("keydown.bs.select",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input',e.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input',function(a){a.stopPropagation()}),a(window).on("load.bs.select.data-api",function(){a(".selectpicker").each(function(){var b=a(this);d.call(b,b.data())})})}(a)}),angular.module("checklist-model",[]).directive("checklistModel",["$parse","$compile",function(a,b){function c(a,b,c){if(angular.isArray(a))for(var d=a.length;d--;)if(c(a[d],b))return!0;return!1}function d(a,b,d){return a=angular.isArray(a)?a:[],c(a,b,d)||a.push(b),a}function e(a,b,c){if(angular.isArray(a))for(var d=a.length;d--;)if(c(a[d],b)){a.splice(d,1);break}return a}function f(f,g,h){function i(a,b){f[h.ngModel]=c(a,n,o)}var j=h.checklistModel;h.$set("checklistModel",null),b(g)(f),h.$set("checklistModel",j);var k=a(j),l=k.assign,m=a(h.checklistChange),n=h.checklistValue?a(h.checklistValue)(f.$parent):h.value,o=angular.equals;if(h.hasOwnProperty("checklistComparator"))if("."==h.checklistComparator[0]){var p=h.checklistComparator.substring(1);o=function(a,b){return a[p]===b[p]}}else o=a(h.checklistComparator)(f.$parent);f.$watch(h.ngModel,function(a,b){if(a!==b){var c=k(f.$parent);angular.isFunction(l)&&(a===!0?l(f.$parent,d(c,n,o)):l(f.$parent,e(c,n,o))),m&&m(f)}}),angular.isFunction(f.$parent.$watchCollection)?f.$parent.$watchCollection(j,i):f.$parent.$watch(j,i,!0)}return{restrict:"A",priority:1e3,terminal:!0,scope:!0,compile:function(a,b){if(("INPUT"!==a[0].tagName||"checkbox"!==b.type)&&"MD-CHECKBOX"!==a[0].tagName&&!b.btnCheckbox)throw'checklist-model should be applied to `input[type="checkbox"]` or `md-checkbox`.';if(!b.checklistValue&&!b.value)throw"You should provide `value` or `checklist-value`.";return b.ngModel||b.$set("ngModel","checked"),f}}}]),function(a,b,c){"use strict";a.fn.backstretch=function(d,f){return d!==c&&0!==d.length||a.error("No images were supplied for Backstretch"),0===a(b).scrollTop()&&b.scrollTo(0,0),this.each(function(){var b=a(this),c=b.data("backstretch");if(c){if("string"==typeof d&&"function"==typeof c[d])return void c[d](f);f=a.extend(c.options,f),c.destroy(!0)}c=new e(this,d,f),b.data("backstretch",c)})},a.backstretch=function(b,c){return a("body").backstretch(b,c).data("backstretch")},a.expr[":"].backstretch=function(b){return a(b).data("backstretch")!==c},a.fn.backstretch.defaults={centeredX:!0,centeredY:!0,duration:5e3,fade:0};var d={wrap:{left:0,top:0,overflow:"hidden",margin:0,padding:0,height:"100%",width:"100%",zIndex:-999999},img:{position:"absolute",display:"none",margin:0,padding:0,border:"none",width:"auto",height:"auto",maxHeight:"none",maxWidth:"none",zIndex:-999999}},e=function(c,e,g){this.options=a.extend({},a.fn.backstretch.defaults,g||{}),this.images=a.isArray(e)?e:[e],a.each(this.images,function(){a("")[0].src=this}),this.isBody=c===document.body,this.$container=a(c),this.$root=this.isBody?a(f?b:document):this.$container;var h=this.$container.children(".backstretch").first();if(this.$wrap=h.length?h:a('
    ').css(d.wrap).appendTo(this.$container),!this.isBody){var i=this.$container.css("position"),j=this.$container.css("zIndex");this.$container.css({position:"static"===i?"relative":i,zIndex:"auto"===j?0:j,background:"none"}),this.$wrap.css({zIndex:-999998})}this.$wrap.css({position:this.isBody&&f?"fixed":"absolute"}),this.index=0,this.show(this.index),a(b).on("resize.backstretch",a.proxy(this.resize,this)).on("orientationchange.backstretch",a.proxy(function(){this.isBody&&0===b.pageYOffset&&(b.scrollTo(0,1),this.resize())},this))};e.prototype={resize:function(){try{var a,c={left:0,top:0},d=this.isBody?this.$root.width():this.$root.innerWidth(),e=d,f=this.isBody?b.innerHeight?b.innerHeight:this.$root.height():this.$root.innerHeight(),g=e/this.$img.data("ratio");g>=f?(a=(g-f)/2,this.options.centeredY&&(c.top="-"+a+"px")):(g=f,e=g*this.$img.data("ratio"),a=(e-d)/2,this.options.centeredX&&(c.left="-"+a+"px")),this.$wrap.css({width:d,height:f}).find("img:not(.deleteable)").css({width:e,height:g}).css(c)}catch(h){}return this},show:function(b){if(!(Math.abs(b)>this.images.length-1)){var c=this,e=c.$wrap.find("img").addClass("deleteable"),f={relatedTarget:c.$container[0]};return c.$container.trigger(a.Event("backstretch.before",f),[c,b]),this.index=b,clearInterval(c.interval),c.$img=a("").css(d.img).bind("load",function(d){var g=this.width||a(d.target).width(),h=this.height||a(d.target).height();a(this).data("ratio",g/h),a(this).fadeIn(c.options.speed||c.options.fade,function(){e.remove(),c.paused||c.cycle(),a(["after","show"]).each(function(){c.$container.trigger(a.Event("backstretch."+this,f),[c,b])})}),c.resize()}).appendTo(c.$wrap),c.$img.attr("src",c.images[b]),c}},next:function(){return this.show(this.index1&&(clearInterval(this.interval),this.interval=setInterval(a.proxy(function(){this.paused||this.next()},this),this.options.duration)),this},destroy:function(c){a(b).off("resize.backstretch orientationchange.backstretch"),clearInterval(this.interval),c||this.$wrap.remove(),this.$container.removeData("backstretch")}};var f=function(){var a=navigator.userAgent,c=navigator.platform,d=a.match(/AppleWebKit\/([0-9]+)/),e=!!d&&d[1],f=a.match(/Fennec\/([0-9]+)/),g=!!f&&f[1],h=a.match(/Opera Mobi\/([0-9]+)/),i=!!h&&h[1],j=a.match(/MSIE ([0-9]+)/),k=!!j&&j[1];return!((c.indexOf("iPhone")>-1||c.indexOf("iPad")>-1||c.indexOf("iPod")>-1)&&e&&534>e||b.operamini&&"[object OperaMini]"==={}.toString.call(b.operamini)||h&&7458>i||a.indexOf("Android")>-1&&e&&533>e||g&&6>g||"palmGetResource"in b&&e&&534>e||a.indexOf("MeeGo")>-1&&a.indexOf("NokiaBrowser/8.5.0")>-1||k&&6>=k)}()}(jQuery,window),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}),function(a,b,c){function d(c){var d=b.console;f[c]||(f[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function e(b,c,e,f){if(Object.defineProperty)try{return void Object.defineProperty(b,c,{configurable:!0,enumerable:!0,get:function(){return d(f),e},set:function(a){d(f),e=a}})}catch(g){}a._definePropertyBroken=!0,b[c]=e}var f={};a.migrateWarnings=[],!a.migrateMute&&b.console&&b.console.log&&b.console.log("JQMIGRATE: Logging is active"),a.migrateTrace===c&&(a.migrateTrace=!0),a.migrateReset=function(){f={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&d("jQuery is not compatible with Quirks Mode");var g=a("",{size:1}).attr("size")&&a.attrFn,h=a.attr,i=a.attrHooks.value&&a.attrHooks.value.get||function(){return null},j=a.attrHooks.value&&a.attrHooks.value.set||function(){return c},k=/^(?:input|button)$/i,l=/^[238]$/,m=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,n=/^(?:checked|selected)$/i;e(a,"attrFn",g||{},"jQuery.attrFn is deprecated"),a.attr=function(b,e,f,i){var j=e.toLowerCase(),o=b&&b.nodeType;return i&&(h.length<4&&d("jQuery.fn.attr( props, pass ) is deprecated"),b&&!l.test(o)&&(g?e in g:a.isFunction(a.fn[e])))?a(b)[e](f):("type"===e&&f!==c&&k.test(b.nodeName)&&b.parentNode&&d("Can't change the 'type' of an input or button in IE 6/7/8"),!a.attrHooks[j]&&m.test(j)&&(a.attrHooks[j]={get:function(b,d){var e,f=a.prop(b,d);return f===!0||"boolean"!=typeof f&&(e=b.getAttributeNode(d))&&e.nodeValue!==!1?d.toLowerCase():c},set:function(b,c,d){var e;return c===!1?a.removeAttr(b,d):(e=a.propFix[d]||d,e in b&&(b[e]=!0),b.setAttribute(d,d.toLowerCase())),d}},n.test(j)&&d("jQuery.fn.attr('"+j+"') may use property instead of attribute")),h.call(a,b,e,f))},a.attrHooks.value={get:function(a,b){var c=(a.nodeName||"").toLowerCase();return"button"===c?i.apply(this,arguments):("input"!==c&&"option"!==c&&d("jQuery.fn.attr('value') no longer gets properties"),b in a?a.value:null)},set:function(a,b){var c=(a.nodeName||"").toLowerCase();return"button"===c?j.apply(this,arguments):("input"!==c&&"option"!==c&&d("jQuery.fn.attr('value', val) no longer sets properties"),void(a.value=b))}};var o,p,q=a.fn.init,r=a.parseJSON,s=/^([^<]*)(<[\w\W]+>)([^>]*)$/;a.fn.init=function(b,c,e){var f;return b&&"string"==typeof b&&!a.isPlainObject(c)&&(f=s.exec(a.trim(b)))&&f[0]&&("<"!==b.charAt(0)&&d("$(html) HTML strings must start with '<' character"),f[3]&&d("$(html) HTML text after last tag is ignored"),"#"===f[0].charAt(0)&&(d("HTML string cannot start with a '#' character"),a.error("JQMIGRATE: Invalid selector string (XSS)")),c&&c.context&&(c=c.context),a.parseHTML)?q.call(this,a.parseHTML(f[2],c,!0),c,e):q.apply(this,arguments)},a.fn.init.prototype=a.fn,a.parseJSON=function(a){return a||null===a?r.apply(this,arguments):(d("jQuery.parseJSON requires a valid JSON string"),null)},a.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a.browser||(o=a.uaMatch(navigator.userAgent),p={},o.browser&&(p[o.browser]=!0,p.version=o.version),p.chrome?p.webkit=!0:p.webkit&&(p.safari=!0),a.browser=p),e(a,"browser",a.browser,"jQuery.browser is deprecated"),a.sub=function(){function b(a,c){return new b.fn.init(a,c)}a.extend(!0,b,this),b.superclass=this,b.fn=b.prototype=this(),b.fn.constructor=b,b.sub=this.sub,b.fn.init=function(d,e){return e&&e instanceof a&&!(e instanceof b)&&(e=b(e)),a.fn.init.call(this,d,e,c)},b.fn.init.prototype=b.fn;var c=b(document);return d("jQuery.sub() is deprecated"),b},a.ajaxSetup({converters:{"text json":a.parseJSON}});var t=a.fn.data;a.fn.data=function(b){var e,f,g=this[0];return!g||"events"!==b||1!==arguments.length||(e=a.data(g,b),f=a._data(g,b),e!==c&&e!==f||f===c)?t.apply(this,arguments):(d("Use of jQuery.fn.data('events') is deprecated"),f)};var u=/\/(java|ecma)script/i,v=a.fn.andSelf||a.fn.addBack;a.fn.andSelf=function(){return d("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),v.apply(this,arguments)},a.clean||(a.clean=function(b,c,e,f){c=c||document,c=!c.nodeType&&c[0]||c,c=c.ownerDocument||c,d("jQuery.clean() is deprecated");var g,h,i,j,k=[];if(a.merge(k,a.buildFragment(b,c).childNodes),e)for(i=function(a){return!a.type||u.test(a.type)?f?f.push(a.parentNode?a.parentNode.removeChild(a):a):e.appendChild(a):void 0},g=0;null!=(h=k[g]);g++)a.nodeName(h,"script")&&i(h)||(e.appendChild(h),"undefined"!=typeof h.getElementsByTagName&&(j=a.grep(a.merge([],h.getElementsByTagName("script")),i),k.splice.apply(k,[g+1,0].concat(j)),g+=j.length));return k});var w=a.event.add,x=a.event.remove,y=a.event.trigger,z=a.fn.toggle,A=a.fn.live,B=a.fn.die,C="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",D=new RegExp("\\b(?:"+C+")\\b"),E=/(?:^|\s)hover(\.\S+|)\b/,F=function(b){return"string"!=typeof b||a.event.special.hover?b:(E.test(b)&&d("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),b&&b.replace(E,"mouseenter$1 mouseleave$1"))};a.event.props&&"attrChange"!==a.event.props[0]&&a.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),a.event.dispatch&&e(a.event,"handle",a.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),a.event.add=function(a,b,c,e,f){a!==document&&D.test(b)&&d("AJAX events should be attached to document: "+b),w.call(this,a,F(b||""),c,e,f)},a.event.remove=function(a,b,c,d,e){x.call(this,a,F(b)||"",c,d,e)},a.fn.error=function(){var a=Array.prototype.slice.call(arguments,0);return d("jQuery.fn.error() is deprecated"),a.splice(0,0,"error"),arguments.length?this.bind.apply(this,a):(this.triggerHandler.apply(this,a),this)},a.fn.toggle=function(b,c){if(!a.isFunction(b)||!a.isFunction(c))return z.apply(this,arguments);d("jQuery.fn.toggle(handler, handler...) is deprecated");var e=arguments,f=b.guid||a.guid++,g=0,h=function(c){var d=(a._data(this,"lastToggle"+b.guid)||0)%g;return a._data(this,"lastToggle"+b.guid,d+1),c.preventDefault(),e[d].apply(this,arguments)||!1};for(h.guid=f;g").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),e=c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),void 0!==e?e:!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,d=d.concat(c.errorList)}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){return!!a.trim(""+a(b).val())},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||-1!==a.inArray(c.keyCode,d)||(b.name in this.submitted||b===this.lastElement)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c=this.clean(b),d=this.validationTargetFor(c),e=!0;return this.lastElement=d,void 0===d?delete this.invalid[c.name]:(this.prepareElement(d),this.currentElements=a(d),e=this.check(d)!==!1,e?delete this.invalid[d.name]:this.invalid[d.name]=!0),a(b).attr("aria-invalid",!e),this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),e},showErrors:function(b){if(b){a.extend(this.errorMap,b),this.errorList=[];for(var c in b)this.errorList.push({message:b[c],element:this.findByName(c)[0]});this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors();var b,c=this.elements().removeData("previousValue").removeAttr("aria-invalid"); +if(this.settings.unhighlight)for(b=0;c[b];b++)this.settings.unhighlight.call(this,c[b],this.settings.errorClass,"");else c.removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){return!this.name&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in c||!b.objectLength(a(this).rules())?!1:(c[this.name]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([]),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d=a(b),e=b.type;return"radio"===e||"checkbox"===e?this.findByName(b.name).filter(":checked").val():"number"===e&&"undefined"!=typeof b.validity?b.validity.badInput?!1:d.val():(c=d.val(),"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j instanceof TypeError&&(j.message+=". Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;aWarning: No message defined for "+b.name+"")},formatAndAdd:function(b,c){var d=this.defaultMessage(b,c.method),e=/\$?\{(\d+)\}/g;"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),this.errorList.push({message:d,element:b,method:c.method}),this.errorMap[b.name]=d,this.submitted[b.name]=d},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g=this.errorsFor(b),h=this.idOrName(b),i=a(b).attr("aria-describedby");g.length?(g.removeClass(this.settings.validClass).addClass(this.settings.errorClass),g.html(c)):(g=a("<"+this.settings.errorElement+">").attr("id",h+"-error").addClass(this.settings.errorClass).html(c||""),d=g,this.settings.wrapper&&(d=g.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),g.is("label")?g.attr("for",h):0===g.parents("label[for='"+h+"']").length&&(f=g.attr("id").replace(/(:|\.|\[|\]|\$)/g,"\\$1"),i?i.match(new RegExp("\\b"+f+"\\b"))||(i+=" "+f):i=f,a(b).attr("aria-describedby",i),e=this.groups[b.name],e&&a.each(this.groups,function(b,c){c===e&&a("[name='"+b+"']",this.currentForm).attr("aria-describedby",g.attr("id"))}))),!c&&this.settings.success&&(g.text(""),"string"==typeof this.settings.success?g.addClass(this.settings.success):this.settings.success(g,b)),this.toShow=this.toShow.add(g)},errorsFor:function(b){var c=this.idOrName(b),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+d.replace(/\s+/g,", #")),this.errors().filter(e)},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+b+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(a){this.pending[a.name]||(this.pendingRequest++,this.pending[a.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,"remote")})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:delete b[d]}}),a.each(b,function(d,e){b[d]=a.isFunction(e)?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[\/?#]\S*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.off(".validate-equalTo").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d){if(this.optional(c))return"dependency-mismatch";var e,f,g=this.previousValue(c);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),g.originalMessage=this.settings.messages[c.name].remote,this.settings.messages[c.name].remote=g.message,d="string"==typeof d&&{url:d}||d,g.old===b?g.valid:(g.old=b,e=this,this.startRequest(c),f={},f[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:f,context:e.currentForm,success:function(d){var f,h,i,j=d===!0||"true"===d;e.settings.messages[c.name].remote=g.originalMessage,j?(i=e.formSubmitted,e.prepareElement(c),e.formSubmitted=i,e.successList.push(c),delete e.invalid[c.name],e.showErrors()):(f={},h=d||e.defaultMessage(c,"remote"),f[c.name]=g.message=a.isFunction(h)?h(b):h,e.invalid[c.name]=!0,e.showErrors(f)),g.valid=j,e.stopRequest(c,j)}},d)),"pending")}}});var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})}),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.fn.addBack=a.fn.addBack||a.fn.andSelf,a.fn.extend({actual:function(b,c){if(!this[b])throw'$.actual => The jQuery method "'+b+'" you called does not exist';var d,e,f={absolute:!1,clone:!1,includeMargin:!1,display:"block"},g=a.extend(f,c),h=this.eq(0);if(g.clone===!0)d=function(){var a="position: absolute !important; top: -1000 !important; ";h=h.clone().attr("style",a).appendTo("body")},e=function(){h.remove()};else{var i,j=[],k="";d=function(){i=h.parents().addBack().filter(":hidden"),k+="visibility: hidden !important; display: "+g.display+" !important; ",g.absolute===!0&&(k+="position: absolute !important; "),i.each(function(){var b=a(this),c=b.attr("style");j.push(c),b.attr("style",c?c+";"+k:k)})},e=function(){i.each(function(b){var c=a(this),d=j[b];void 0===d?c.removeAttr("style"):c.attr("style",d)})}}d();var l=/(outer)/.test(b)?h[b](g.includeMargin):h[b]();return e(),l}})}),function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){"use strict";function a(){return Hc.apply(null,arguments)}function b(a){Hc=a}function c(a){return"[object Array]"===Object.prototype.toString.call(a)}function d(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function e(a,b){var c,d=[];for(c=0;c0)for(c in Jc)d=Jc[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function n(b){m(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),Kc===!1&&(Kc=!0,a.updateOffset(this),Kc=!1)}function o(a){return a instanceof n||null!=a&&null!=a._isAMomentObject}function p(a){return 0>a?Math.ceil(a):Math.floor(a)}function q(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=p(b)),c}function r(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&q(a[d])!==q(b[d]))&&g++;return g+f}function s(){}function t(a){return a?a.toLowerCase().replace("_","-"):a}function u(a){for(var b,c,d,e,f=0;f0;){if(d=v(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&r(e,c,!0)>=b-1)break;b--}f++}return null}function v(a){var b=null;if(!Lc[a]&&"undefined"!=typeof module&&module&&module.exports)try{b=Ic._abbr,require("./locale/"+a),w(b)}catch(c){}return Lc[a]}function w(a,b){var c;return a&&(c="undefined"==typeof b?y(a):x(a,b),c&&(Ic=c)),Ic._abbr}function x(a,b){return null!==b?(b.abbr=a,Lc[a]=Lc[a]||new s,Lc[a].set(b),w(a),Lc[a]):(delete Lc[a],null)}function y(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Ic;if(!c(a)){if(b=v(a))return b;a=[a]}return u(a)}function z(a,b){var c=a.toLowerCase();Mc[c]=Mc[c+"s"]=Mc[b]=a}function A(a){return"string"==typeof a?Mc[a]||Mc[a.toLowerCase()]:void 0}function B(a){var b,c,d={};for(c in a)f(a,c)&&(b=A(c),b&&(d[b]=a[c]));return d}function C(b,c){return function(d){return null!=d?(E(this,b,d),a.updateOffset(this,c),this):D(this,b)}}function D(a,b){return a._d["get"+(a._isUTC?"UTC":"")+b]()}function E(a,b,c){return a._d["set"+(a._isUTC?"UTC":"")+b](c)}function F(a,b){var c;if("object"==typeof a)for(c in a)this.set(c,a[c]);else if(a=A(a),"function"==typeof this[a])return this[a](b);return this}function G(a,b,c){var d=""+Math.abs(a),e=b-d.length,f=a>=0;return(f?c?"+":"":"-")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function H(a,b,c,d){var e=d;"string"==typeof d&&(e=function(){return this[d]()}),a&&(Qc[a]=e),b&&(Qc[b[0]]=function(){return G(e.apply(this,arguments),b[1],b[2])}),c&&(Qc[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function I(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function J(a){var b,c,d=a.match(Nc);for(b=0,c=d.length;c>b;b++)Qc[d[b]]?d[b]=Qc[d[b]]:d[b]=I(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function K(a,b){return a.isValid()?(b=L(b,a.localeData()),Pc[b]=Pc[b]||J(b),Pc[b](a)):a.localeData().invalidDate()}function L(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Oc.lastIndex=0;d>=0&&Oc.test(a);)a=a.replace(Oc,c),Oc.lastIndex=0,d-=1;return a}function M(a){return"function"==typeof a&&"[object Function]"===Object.prototype.toString.call(a)}function N(a,b,c){dd[a]=M(b)?b:function(a){return a&&c?c:b}}function O(a,b){return f(dd,a)?dd[a](b._strict,b._locale):new RegExp(P(a))}function P(a){return a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Q(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),"number"==typeof b&&(d=function(a,c){c[b]=q(a)}),c=0;cd;d++){if(e=h([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}function X(a,b){var c;return"string"==typeof b&&(b=a.localeData().monthsParse(b),"number"!=typeof b)?a:(c=Math.min(a.date(),T(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a)}function Y(b){return null!=b?(X(this,b),a.updateOffset(this,!0),this):D(this,"Month")}function Z(){return T(this.year(),this.month())}function $(a){var b,c=a._a;return c&&-2===j(a).overflow&&(b=c[gd]<0||c[gd]>11?gd:c[hd]<1||c[hd]>T(c[fd],c[gd])?hd:c[id]<0||c[id]>24||24===c[id]&&(0!==c[jd]||0!==c[kd]||0!==c[ld])?id:c[jd]<0||c[jd]>59?jd:c[kd]<0||c[kd]>59?kd:c[ld]<0||c[ld]>999?ld:-1,j(a)._overflowDayOfYear&&(fd>b||b>hd)&&(b=hd),j(a).overflow=b),a}function _(b){a.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+b)}function aa(a,b){var c=!0;return g(function(){return c&&(_(a+"\n"+(new Error).stack),c=!1),b.apply(this,arguments)},b)}function ba(a,b){od[a]||(_(b),od[a]=!0)}function ca(a){var b,c,d=a._i,e=pd.exec(d);if(e){for(j(a).iso=!0,b=0,c=qd.length;c>b;b++)if(qd[b][1].exec(d)){a._f=qd[b][0];break}for(b=0,c=rd.length;c>b;b++)if(rd[b][1].exec(d)){a._f+=(e[6]||" ")+rd[b][0];break}d.match(ad)&&(a._f+="Z"),va(a)}else a._isValid=!1}function da(b){var c=sd.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(ca(b),void(b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b))))}function ea(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function fa(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function ga(a){return ha(a)?366:365}function ha(a){return a%4===0&&a%100!==0||a%400===0}function ia(){return ha(this.year())}function ja(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=Da(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function ka(a){return ja(a,this._week.dow,this._week.doy).week}function la(){return this._week.dow}function ma(){return this._week.doy}function na(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")}function oa(a){var b=ja(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")}function pa(a,b,c,d,e){var f,g=6+e-d,h=fa(a,0,1+g),i=h.getUTCDay();return e>i&&(i+=7),c=null!=c?1*c:e,f=1+g+7*(b-1)-i+c,{year:f>0?a:a-1,dayOfYear:f>0?f:ga(a-1)+f}}function qa(a){var b=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}function ra(a,b,c){return null!=a?a:null!=b?b:c}function sa(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function ta(a){var b,c,d,e,f=[];if(!a._d){for(d=sa(a),a._w&&null==a._a[hd]&&null==a._a[gd]&&ua(a),a._dayOfYear&&(e=ra(a._a[fd],d[fd]),a._dayOfYear>ga(e)&&(j(a)._overflowDayOfYear=!0),c=fa(e,0,a._dayOfYear),a._a[gd]=c.getUTCMonth(),a._a[hd]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;7>b;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[id]&&0===a._a[jd]&&0===a._a[kd]&&0===a._a[ld]&&(a._nextDay=!0,a._a[id]=0),a._d=(a._useUTC?fa:ea).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[id]=24)}}function ua(a){var b,c,d,e,f,g,h;b=a._w,null!=b.GG||null!=b.W||null!=b.E?(f=1,g=4,c=ra(b.GG,a._a[fd],ja(Da(),1,4).year),d=ra(b.W,1),e=ra(b.E,1)):(f=a._locale._week.dow,g=a._locale._week.doy,c=ra(b.gg,a._a[fd],ja(Da(),f,g).year),d=ra(b.w,1),null!=b.d?(e=b.d,f>e&&++d):e=null!=b.e?b.e+f:f),h=pa(c,d,e,g,f),a._a[fd]=h.year,a._dayOfYear=h.dayOfYear}function va(b){if(b._f===a.ISO_8601)return void ca(b);b._a=[],j(b).empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,k=0;for(e=L(b._f,b._locale).match(Nc)||[],c=0;c0&&j(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),k+=d.length),Qc[f]?(d?j(b).empty=!1:j(b).unusedTokens.push(f),S(f,d,b)):b._strict&&!d&&j(b).unusedTokens.push(f);j(b).charsLeftOver=i-k,h.length>0&&j(b).unusedInput.push(h),j(b).bigHour===!0&&b._a[id]<=12&&b._a[id]>0&&(j(b).bigHour=void 0),b._a[id]=wa(b._locale,b._a[id],b._meridiem),ta(b),$(b)}function wa(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}function xa(a){var b,c,d,e,f;if(0===a._f.length)return j(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;ef)&&(d=f,c=b));g(a,c||b)}function ya(a){if(!a._d){var b=B(a._i);a._a=[b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],ta(a)}}function za(a){var b=new n($(Aa(a)));return b._nextDay&&(b.add(1,"d"),b._nextDay=void 0),b}function Aa(a){var b=a._i,e=a._f;return a._locale=a._locale||y(a._l),null===b||void 0===e&&""===b?l({nullInput:!0}):("string"==typeof b&&(a._i=b=a._locale.preparse(b)),o(b)?new n($(b)):(c(e)?xa(a):e?va(a):d(b)?a._d=b:Ba(a),a))}function Ba(b){var f=b._i;void 0===f?b._d=new Date:d(f)?b._d=new Date(+f):"string"==typeof f?da(b):c(f)?(b._a=e(f.slice(0),function(a){return parseInt(a,10)}),ta(b)):"object"==typeof f?ya(b):"number"==typeof f?b._d=new Date(f):a.createFromInputFallback(b)}function Ca(a,b,c,d,e){var f={};return"boolean"==typeof c&&(d=c,c=void 0),f._isAMomentObject=!0,f._useUTC=f._isUTC=e,f._l=c,f._i=a,f._f=b,f._strict=d,za(f)}function Da(a,b,c,d){return Ca(a,b,c,d,!1)}function Ea(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return Da();for(d=b[0],e=1;ea&&(a=-a,c="-"),c+G(~~(a/60),2)+b+G(~~a%60,2)})}function Ka(a){var b=(a||"").match(ad)||[],c=b[b.length-1]||[],d=(c+"").match(xd)||["-",0,0],e=+(60*d[1])+q(d[2]);return"+"===d[0]?e:-e}function La(b,c){var e,f;return c._isUTC?(e=c.clone(),f=(o(b)||d(b)?+b:+Da(b))-+e,e._d.setTime(+e._d+f),a.updateOffset(e,!1),e):Da(b).local()}function Ma(a){return 15*-Math.round(a._d.getTimezoneOffset()/15)}function Na(b,c){var d,e=this._offset||0;return null!=b?("string"==typeof b&&(b=Ka(b)),Math.abs(b)<16&&(b=60*b),!this._isUTC&&c&&(d=Ma(this)),this._offset=b,this._isUTC=!0,null!=d&&this.add(d,"m"),e!==b&&(!c||this._changeInProgress?bb(this,Ya(b-e,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?e:Ma(this)}function Oa(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Pa(a){return this.utcOffset(0,a)}function Qa(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Ma(this),"m")),this}function Ra(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Ka(this._i)),this}function Sa(a){return a=a?Da(a).utcOffset():0,(this.utcOffset()-a)%60===0}function Ta(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ua(){if("undefined"!=typeof this._isDSTShifted)return this._isDSTShifted;var a={};if(m(a,this),a=Aa(a),a._a){var b=a._isUTC?h(a._a):Da(a._a);this._isDSTShifted=this.isValid()&&r(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Va(){return!this._isUTC}function Wa(){return this._isUTC}function Xa(){return this._isUTC&&0===this._offset}function Ya(a,b){var c,d,e,g=a,h=null;return Ia(a)?g={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(g={},b?g[b]=a:g.milliseconds=a):(h=yd.exec(a))?(c="-"===h[1]?-1:1,g={y:0,d:q(h[hd])*c,h:q(h[id])*c,m:q(h[jd])*c,s:q(h[kd])*c,ms:q(h[ld])*c}):(h=zd.exec(a))?(c="-"===h[1]?-1:1,g={y:Za(h[2],c),M:Za(h[3],c),d:Za(h[4],c),h:Za(h[5],c),m:Za(h[6],c),s:Za(h[7],c),w:Za(h[8],c)}):null==g?g={}:"object"==typeof g&&("from"in g||"to"in g)&&(e=_a(Da(g.from),Da(g.to)),g={},g.ms=e.milliseconds,g.M=e.months),d=new Ha(g),Ia(a)&&f(a,"_locale")&&(d._locale=a._locale),d}function Za(a,b){var c=a&&parseFloat(a.replace(",","."));return(isNaN(c)?0:c)*b}function $a(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function _a(a,b){var c;return b=La(b,a),a.isBefore(b)?c=$a(a,b):(c=$a(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c}function ab(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(ba(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=Ya(c,d),bb(this,e,a),this}}function bb(b,c,d,e){var f=c._milliseconds,g=c._days,h=c._months;e=null==e?!0:e,f&&b._d.setTime(+b._d+f*d),g&&E(b,"Date",D(b,"Date")+g*d),h&&X(b,D(b,"Month")+h*d),e&&a.updateOffset(b,g||h)}function cb(a,b){var c=a||Da(),d=La(c,this).startOf("day"),e=this.diff(d,"days",!0),f=-6>e?"sameElse":-1>e?"lastWeek":0>e?"lastDay":1>e?"sameDay":2>e?"nextDay":7>e?"nextWeek":"sameElse";return this.format(b&&b[f]||this.localeData().calendar(f,this,Da(c)))}function db(){return new n(this)}function eb(a,b){var c;return b=A("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=o(a)?a:Da(a),+this>+a):(c=o(a)?+a:+Da(a),c<+this.clone().startOf(b))}function fb(a,b){var c;return b=A("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=o(a)?a:Da(a),+a>+this):(c=o(a)?+a:+Da(a),+this.clone().endOf(b)b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)}function kb(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function lb(){var a=this.clone().utc();return 0b;b++)if(this._weekdaysParse[b]||(c=Da([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b}function Pb(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Kb(a,this.localeData()),this.add(a-b,"d")):b}function Qb(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")}function Rb(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)}function Sb(a,b){H(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Tb(a,b){return b._meridiemParse}function Ub(a){return"p"===(a+"").toLowerCase().charAt(0)}function Vb(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"}function Wb(a,b){b[ld]=q(1e3*("0."+a))}function Xb(){return this._isUTC?"UTC":""}function Yb(){return this._isUTC?"Coordinated Universal Time":""}function Zb(a){return Da(1e3*a)}function $b(){return Da.apply(null,arguments).parseZone()}function _b(a,b,c){var d=this._calendar[a];return"function"==typeof d?d.call(b,c):d}function ac(a){var b=this._longDateFormat[a],c=this._longDateFormat[a.toUpperCase()];return b||!c?b:(this._longDateFormat[a]=c.replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a])}function bc(){return this._invalidDate}function cc(a){return this._ordinal.replace("%d",a)}function dc(a){return a}function ec(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)}function fc(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)}function gc(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function hc(a,b,c,d){var e=y(),f=h().set(d,b);return e[c](f,a)}function ic(a,b,c,d,e){if("number"==typeof a&&(b=a,a=void 0),a=a||"",null!=b)return hc(a,b,c,e);var f,g=[];for(f=0;d>f;f++)g[f]=hc(a,f,c,e);return g}function jc(a,b){return ic(a,b,"months",12,"month")}function kc(a,b){return ic(a,b,"monthsShort",12,"month")}function lc(a,b){return ic(a,b,"weekdays",7,"day")}function mc(a,b){return ic(a,b,"weekdaysShort",7,"day")}function nc(a,b){return ic(a,b,"weekdaysMin",7,"day")}function oc(){var a=this._data;return this._milliseconds=Wd(this._milliseconds),this._days=Wd(this._days),this._months=Wd(this._months),a.milliseconds=Wd(a.milliseconds),a.seconds=Wd(a.seconds),a.minutes=Wd(a.minutes),a.hours=Wd(a.hours),a.months=Wd(a.months),a.years=Wd(a.years),this}function pc(a,b,c,d){var e=Ya(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function qc(a,b){return pc(this,a,b,1)}function rc(a,b){return pc(this,a,b,-1)}function sc(a){return 0>a?Math.floor(a):Math.ceil(a)}function tc(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||0>=f&&0>=g&&0>=h||(f+=864e5*sc(vc(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=p(f/1e3),i.seconds=a%60,b=p(a/60),i.minutes=b%60,c=p(b/60),i.hours=c%24,g+=p(c/24),e=p(uc(g)),h+=e,g-=sc(vc(e)),d=p(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function uc(a){return 4800*a/146097}function vc(a){return 146097*a/4800}function wc(a){var b,c,d=this._milliseconds;if(a=A(a),"month"===a||"year"===a)return b=this._days+d/864e5,c=this._months+uc(b),"month"===a?c:c/12;switch(b=this._days+Math.round(vc(this._months)),a){case"week":return b/7+d/6048e5;case"day":return b+d/864e5;case"hour":return 24*b+d/36e5;case"minute":return 1440*b+d/6e4;case"second":return 86400*b+d/1e3;case"millisecond":return Math.floor(864e5*b)+d;default:throw new Error("Unknown unit "+a)}}function xc(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*q(this._months/12)}function yc(a){return function(){return this.as(a)}}function zc(a){return a=A(a),this[a+"s"]()}function Ac(a){return function(){return this._data[a]}}function Bc(){return p(this.days()/7)}function Cc(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function Dc(a,b,c){var d=Ya(a).abs(),e=ke(d.as("s")),f=ke(d.as("m")),g=ke(d.as("h")),h=ke(d.as("d")),i=ke(d.as("M")),j=ke(d.as("y")),k=e0,k[4]=c,Cc.apply(null,k)}function Ec(a,b){return void 0===le[a]?!1:void 0===b?le[a]:(le[a]=b,!0)}function Fc(a){var b=this.localeData(),c=Dc(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function Gc(){var a,b,c,d=me(this._milliseconds)/1e3,e=me(this._days),f=me(this._months);a=p(d/60),b=p(a/60),d%=60,a%=60,c=p(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(0>m?"-":"")+"P"+(g?g+"Y":"")+(h?h+"M":"")+(i?i+"D":"")+(j||k||l?"T":"")+(j?j+"H":"")+(k?k+"M":"")+(l?l+"S":""):"P0D"}var Hc,Ic,Jc=a.momentProperties=[],Kc=!1,Lc={},Mc={},Nc=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Oc=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Pc={},Qc={},Rc=/\d/,Sc=/\d\d/,Tc=/\d{3}/,Uc=/\d{4}/,Vc=/[+-]?\d{6}/,Wc=/\d\d?/,Xc=/\d{1,3}/,Yc=/\d{1,4}/,Zc=/[+-]?\d{1,6}/,$c=/\d+/,_c=/[+-]?\d+/,ad=/Z|[+-]\d\d:?\d\d/gi,bd=/[+-]?\d+(\.\d{1,3})?/,cd=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,dd={},ed={},fd=0,gd=1,hd=2,id=3,jd=4,kd=5,ld=6;H("M",["MM",2],"Mo",function(){return this.month()+1}),H("MMM",0,0,function(a){return this.localeData().monthsShort(this,a)}),H("MMMM",0,0,function(a){return this.localeData().months(this,a)}),z("month","M"),N("M",Wc),N("MM",Wc,Sc),N("MMM",cd),N("MMMM",cd),Q(["M","MM"],function(a,b){b[gd]=q(a)-1}),Q(["MMM","MMMM"],function(a,b,c,d){var e=c._locale.monthsParse(a,d,c._strict);null!=e?b[gd]=e:j(c).invalidMonth=a});var md="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),nd="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),od={};a.suppressDeprecationWarnings=!1;var pd=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,qd=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],rd=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],sd=/^\/?Date\((\-?\d+)/i;a.createFromInputFallback=aa("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),H(0,["YY",2],0,function(){return this.year()%100}),H(0,["YYYY",4],0,"year"),H(0,["YYYYY",5],0,"year"),H(0,["YYYYYY",6,!0],0,"year"),z("year","y"),N("Y",_c),N("YY",Wc,Sc),N("YYYY",Yc,Uc),N("YYYYY",Zc,Vc),N("YYYYYY",Zc,Vc),Q(["YYYYY","YYYYYY"],fd),Q("YYYY",function(b,c){c[fd]=2===b.length?a.parseTwoDigitYear(b):q(b)}),Q("YY",function(b,c){c[fd]=a.parseTwoDigitYear(b)}),a.parseTwoDigitYear=function(a){return q(a)+(q(a)>68?1900:2e3)};var td=C("FullYear",!1);H("w",["ww",2],"wo","week"),H("W",["WW",2],"Wo","isoWeek"),z("week","w"),z("isoWeek","W"),N("w",Wc),N("ww",Wc,Sc),N("W",Wc),N("WW",Wc,Sc),R(["w","ww","W","WW"],function(a,b,c,d){b[d.substr(0,1)]=q(a)});var ud={dow:0,doy:6};H("DDD",["DDDD",3],"DDDo","dayOfYear"),z("dayOfYear","DDD"),N("DDD",Xc),N("DDDD",Tc),Q(["DDD","DDDD"],function(a,b,c){c._dayOfYear=q(a)}),a.ISO_8601=function(){};var vd=aa("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var a=Da.apply(null,arguments);return this>a?this:a}),wd=aa("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var a=Da.apply(null,arguments);return a>this?this:a});Ja("Z",":"),Ja("ZZ",""),N("Z",ad),N("ZZ",ad),Q(["Z","ZZ"],function(a,b,c){c._useUTC=!0,c._tzm=Ka(a)});var xd=/([\+\-]|\d\d)/gi;a.updateOffset=function(){};var yd=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,zd=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Ya.fn=Ha.prototype;var Ad=ab(1,"add"),Bd=ab(-1,"subtract");a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var Cd=aa("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(a){return void 0===a?this.localeData():this.locale(a)});H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Db("gggg","weekYear"),Db("ggggg","weekYear"),Db("GGGG","isoWeekYear"),Db("GGGGG","isoWeekYear"),z("weekYear","gg"),z("isoWeekYear","GG"),N("G",_c),N("g",_c),N("GG",Wc,Sc),N("gg",Wc,Sc),N("GGGG",Yc,Uc),N("gggg",Yc,Uc),N("GGGGG",Zc,Vc),N("ggggg",Zc,Vc),R(["gggg","ggggg","GGGG","GGGGG"],function(a,b,c,d){b[d.substr(0,2)]=q(a)}),R(["gg","GG"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),H("Q",0,0,"quarter"),z("quarter","Q"),N("Q",Rc),Q("Q",function(a,b){b[gd]=3*(q(a)-1)}),H("D",["DD",2],"Do","date"),z("date","D"),N("D",Wc),N("DD",Wc,Sc),N("Do",function(a,b){return a?b._ordinalParse:b._ordinalParseLenient}),Q(["D","DD"],hd),Q("Do",function(a,b){b[hd]=q(a.match(Wc)[0],10)});var Dd=C("Date",!0);H("d",0,"do","day"),H("dd",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),H("ddd",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),H("dddd",0,0,function(a){return this.localeData().weekdays(this,a)}),H("e",0,0,"weekday"),H("E",0,0,"isoWeekday"),z("day","d"),z("weekday","e"),z("isoWeekday","E"),N("d",Wc),N("e",Wc),N("E",Wc),N("dd",cd),N("ddd",cd),N("dddd",cd),R(["dd","ddd","dddd"],function(a,b,c){var d=c._locale.weekdaysParse(a);null!=d?b.d=d:j(c).invalidWeekday=a}),R(["d","e","E"],function(a,b,c,d){b[d]=q(a)});var Ed="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Fd="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Gd="Su_Mo_Tu_We_Th_Fr_Sa".split("_");H("H",["HH",2],0,"hour"),H("h",["hh",2],0,function(){return this.hours()%12||12}),Sb("a",!0),Sb("A",!1),z("hour","h"),N("a",Tb),N("A",Tb),N("H",Wc),N("h",Wc),N("HH",Wc,Sc),N("hh",Wc,Sc),Q(["H","HH"],id),Q(["a","A"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),Q(["h","hh"],function(a,b,c){b[id]=q(a),j(c).bigHour=!0});var Hd=/[ap]\.?m?\.?/i,Id=C("Hours",!0);H("m",["mm",2],0,"minute"),z("minute","m"),N("m",Wc),N("mm",Wc,Sc),Q(["m","mm"],jd);var Jd=C("Minutes",!1);H("s",["ss",2],0,"second"),z("second","s"),N("s",Wc),N("ss",Wc,Sc),Q(["s","ss"],kd);var Kd=C("Seconds",!1);H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),z("millisecond","ms"),N("S",Xc,Rc),N("SS",Xc,Sc),N("SSS",Xc,Tc);var Ld;for(Ld="SSSS";Ld.length<=9;Ld+="S")N(Ld,$c);for(Ld="S";Ld.length<=9;Ld+="S")Q(Ld,Wb);var Md=C("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var Nd=n.prototype;Nd.add=Ad,Nd.calendar=cb,Nd.clone=db,Nd.diff=ib,Nd.endOf=ub,Nd.format=mb,Nd.from=nb,Nd.fromNow=ob,Nd.to=pb,Nd.toNow=qb,Nd.get=F,Nd.invalidAt=Cb,Nd.isAfter=eb,Nd.isBefore=fb,Nd.isBetween=gb,Nd.isSame=hb,Nd.isValid=Ab,Nd.lang=Cd,Nd.locale=rb,Nd.localeData=sb,Nd.max=wd,Nd.min=vd,Nd.parsingFlags=Bb,Nd.set=F,Nd.startOf=tb,Nd.subtract=Bd,Nd.toArray=yb,Nd.toObject=zb,Nd.toDate=xb,Nd.toISOString=lb,Nd.toJSON=lb,Nd.toString=kb,Nd.unix=wb,Nd.valueOf=vb,Nd.year=td,Nd.isLeapYear=ia,Nd.weekYear=Fb,Nd.isoWeekYear=Gb,Nd.quarter=Nd.quarters=Jb,Nd.month=Y,Nd.daysInMonth=Z,Nd.week=Nd.weeks=na,Nd.isoWeek=Nd.isoWeeks=oa,Nd.weeksInYear=Ib,Nd.isoWeeksInYear=Hb,Nd.date=Dd,Nd.day=Nd.days=Pb,Nd.weekday=Qb,Nd.isoWeekday=Rb,Nd.dayOfYear=qa,Nd.hour=Nd.hours=Id,Nd.minute=Nd.minutes=Jd,Nd.second=Nd.seconds=Kd,Nd.millisecond=Nd.milliseconds=Md,Nd.utcOffset=Na,Nd.utc=Pa,Nd.local=Qa,Nd.parseZone=Ra,Nd.hasAlignedHourOffset=Sa,Nd.isDST=Ta,Nd.isDSTShifted=Ua,Nd.isLocal=Va,Nd.isUtcOffset=Wa,Nd.isUtc=Xa,Nd.isUTC=Xa,Nd.zoneAbbr=Xb,Nd.zoneName=Yb,Nd.dates=aa("dates accessor is deprecated. Use date instead.",Dd),Nd.months=aa("months accessor is deprecated. Use month instead",Y),Nd.years=aa("years accessor is deprecated. Use year instead",td),Nd.zone=aa("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Oa);var Od=Nd,Pd={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Qd={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Rd="Invalid date",Sd="%d",Td=/\d{1,2}/,Ud={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Vd=s.prototype;Vd._calendar=Pd,Vd.calendar=_b,Vd._longDateFormat=Qd,Vd.longDateFormat=ac,Vd._invalidDate=Rd,Vd.invalidDate=bc,Vd._ordinal=Sd,Vd.ordinal=cc,Vd._ordinalParse=Td,Vd.preparse=dc,Vd.postformat=dc,Vd._relativeTime=Ud,Vd.relativeTime=ec,Vd.pastFuture=fc,Vd.set=gc,Vd.months=U,Vd._months=md,Vd.monthsShort=V,Vd._monthsShort=nd,Vd.monthsParse=W,Vd.week=ka,Vd._week=ud,Vd.firstDayOfYear=ma,Vd.firstDayOfWeek=la,Vd.weekdays=Lb,Vd._weekdays=Ed,Vd.weekdaysMin=Nb,Vd._weekdaysMin=Gd,Vd.weekdaysShort=Mb,Vd._weekdaysShort=Fd,Vd.weekdaysParse=Ob,Vd.isPM=Ub,Vd._meridiemParse=Hd,Vd.meridiem=Vb,w("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===q(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.lang=aa("moment.lang is deprecated. Use moment.locale instead.",w),a.langData=aa("moment.langData is deprecated. Use moment.localeData instead.",y);var Wd=Math.abs,Xd=yc("ms"),Yd=yc("s"),Zd=yc("m"),$d=yc("h"),_d=yc("d"),ae=yc("w"),be=yc("M"),ce=yc("y"),de=Ac("milliseconds"),ee=Ac("seconds"),fe=Ac("minutes"),ge=Ac("hours"),he=Ac("days"),ie=Ac("months"),je=Ac("years"),ke=Math.round,le={s:45,m:45,h:22,d:26,M:11},me=Math.abs,ne=Ha.prototype;ne.abs=oc,ne.add=qc,ne.subtract=rc,ne.as=wc,ne.asMilliseconds=Xd,ne.asSeconds=Yd,ne.asMinutes=Zd,ne.asHours=$d,ne.asDays=_d,ne.asWeeks=ae,ne.asMonths=be,ne.asYears=ce,ne.valueOf=xc,ne._bubble=tc,ne.get=zc,ne.milliseconds=de,ne.seconds=ee,ne.minutes=fe,ne.hours=ge,ne.days=he,ne.weeks=Bc,ne.months=ie,ne.years=je,ne.humanize=Fc,ne.toISOString=Gc,ne.toString=Gc,ne.toJSON=Gc,ne.locale=rb,ne.localeData=sb,ne.toIsoString=aa("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Gc),ne.lang=Cd,H("X",0,0,"unix"),H("x",0,0,"valueOf"),N("x",_c),N("X",bd),Q("X",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),Q("x",function(a,b,c){c._d=new Date(q(a))}),a.version="2.10.6",b(Da),a.fn=Od,a.min=Fa,a.max=Ga,a.utc=h,a.unix=Zb,a.months=jc,a.isDate=d,a.locale=w,a.invalid=l,a.duration=Ya,a.isMoment=o,a.weekdays=lc,a.parseZone=$b,a.localeData=y,a.isDuration=Ia,a.monthsShort=kc,a.weekdaysMin=nc,a.defineLocale=x,a.weekdaysShort=mc,a.normalizeUnits=A,a.relativeTimeThreshold=Ec;var oe=a;return oe}),!function(a){angular.module("ngCsv.config",[]).value("ngCsv.config",{debug:!0}).config(["$compileProvider",function(a){angular.isDefined(a.urlSanitizationWhitelist)?a.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/):a.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/)}]),angular.module("ngCsv.directives",["ngCsv.services"]),angular.module("ngCsv.services",[]),angular.module("ngCsv",["ngCsv.config","ngCsv.services","ngCsv.directives","ngSanitize"]),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ngCsv"),angular.module("ngCsv.services").service("CSV",["$q",function(a){var b="\r\n",c="\ufeff",d={"\\t":" ","\\b":"\b","\\v":"\x0B","\\f":"\f","\\r":"\r"};this.stringifyField=function(a,b){return"locale"===b.decimalSep&&this.isFloat(a)?a.toLocaleString():"."!==b.decimalSep&&this.isFloat(a)?a.toString().replace(".",b.decimalSep):"string"==typeof a?(a=a.replace(/"/g,'""'),(b.quoteStrings||a.indexOf(",")>-1||a.indexOf("\n")>-1||a.indexOf("\r")>-1)&&(a=b.txtDelim+a+b.txtDelim),a):"boolean"==typeof a?a?"TRUE":"FALSE":a},this.isFloat=function(a){return+a===a&&(!isFinite(a)||Boolean(a%1))},this.stringify=function(d,e){var f=a.defer(),g=this,h="",i="",j=a.when(d).then(function(a){if(angular.isDefined(e.header)&&e.header){var d,j;d=[],angular.forEach(e.header,function(a){this.push(g.stringifyField(a,e))},d),j=d.join(e.fieldSep?e.fieldSep:","),i+=j+b}var k=[];if(angular.isArray(a)?k=a:angular.isFunction(a)&&(k=a()),angular.isDefined(e.label)&&e.label&&"boolean"==typeof e.label){var l,m;l=[],angular.forEach(k[0],function(a,b){this.push(g.stringifyField(b,e))},l),m=l.join(e.fieldSep?e.fieldSep:","),i+=m+b}angular.forEach(k,function(a,c){var d,f,h=angular.copy(k[c]);f=[];var j=e.columnOrder?e.columnOrder:h;angular.forEach(j,function(a){var b=e.columnOrder?h[a]:a;this.push(g.stringifyField(b,e))},f),d=f.join(e.fieldSep?e.fieldSep:","),i+=c
    '),h=angular.element(g.children()[0]);h.attr("href",a.URL.createObjectURL(d)),h.attr("download",b.getFilename()),h.attr("target","_blank"),e.find("body").append(g),f(function(){h[0].click(),h.remove()},null)}}c.bind("click",function(){b.buildCSV().then(function(){d()}),b.$apply()})}}}])}(window,document),function(angular){"use strict";if(!angular)throw"Missing something? Please add angular.js to your project or move this script below the angular.js reference";var directiveId="ngRemoteValidate",remoteValidate=function($http,$timeout,$q){return{restrict:"A",require:["^form","ngModel"],scope:{ngRemoteInterceptors:"=?"},link:function(scope,el,attrs,ctrls){var cache={},handleChange,setValidation,addToCache,request,shouldProcess,ngForm=ctrls[0],ngModel=ctrls[1],options={ngRemoteThrottle:400,ngRemoteMethod:"POST"};angular.extend(options,attrs),"["===options.ngRemoteValidate.charAt(0)?options.urls=eval(options.ngRemoteValidate):"{"===options.ngRemoteValidate.charAt(0)?(options.keys=eval("("+options.ngRemoteValidate+")"),options.urls=Object.keys(options.keys)):options.urls=[options.ngRemoteValidate],addToCache=function(a){var b=a[0].data.value;return cache[b]?cache[b]:void(cache[b]=a)},shouldProcess=function(a){var b=!1;for(var c in ngModel.$error){var d=!options.hasOwnProperty("keys")||!Object.keys(options.keys).filter(function(a){return options.keys[a]===c})[0];if(ngModel.$error[c]&&c!=directiveId&&d){b=!0;break}}return!(ngModel.$pristine||b)},setValidation=function(a,b){for(var c=0,d=a.length,e=options.hasOwnProperty("keys"),f=!0;d>c&&(scope.ngRemoteInterceptors&&scope.ngRemoteInterceptors.response&&(a[c]=scope.ngRemoteInterceptors.response(a[c])),a[c].data.isValid||(f=!1,e));c++){var g=e&&a[c].hasOwnProperty("config")&&options.keys[a[c].config.url];if(g){var h=options.keys[a[c].config.url];ngModel.$setValidity(h,a[c].data.isValid)}}b||addToCache(a),ngModel.$setValidity(directiveId,f),ngModel.$processing=ngModel.$pending=ngForm.$pending=!1},handleChange=function(a){return"undefined"==typeof a||""===a?void ngModel.$setPristine():shouldProcess(a)?cache[a]?setValidation(cache[a],!0):(ngModel.$pending||(ngModel.$processing=ngModel.$pending=ngForm.$pending=!0),request&&$timeout.cancel(request),request=$timeout(function(){var b=[],c=0,d=options.urls.length,e={value:a},f={method:options.ngRemoteMethod};for(scope[el[0].name+"SetArgs"]&&(e=scope[el[0].name+"SetArgs"](a,el,attrs,ngModel)),"POST"==options.ngRemoteMethod?f.data=e:f.params=e;d>c;c++)f.url=options.urls[c],scope.ngRemoteInterceptors&&scope.ngRemoteInterceptors.request&&(f=scope.ngRemoteInterceptors.request(f)),b.push($http(f));$q.all(b).then(setValidation)},options.ngRemoteThrottle),!0):setValidation([{data:{isValid:!0,value:a}}],!0)},scope.$watch(function(){return ngModel.$viewValue},handleChange)}}};angular.module("remoteValidation",[]).constant("MODULE_VERSION","0.6.1").directive(directiveId,["$http","$timeout","$q",remoteValidate])}(this.angular),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}),function(a){"undefined"!=typeof module&&module.exports?module.exports=a:a(jQuery,window,document)}(function(a){!function(b){var c="function"==typeof define&&define.amd,d="undefined"!=typeof module&&module.exports,e="https:"==document.location.protocol?"https:":"http:",f="cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js";c||(d?require("jquery-mousewheel")(a):a.event.special.mousewheel||a("head").append(decodeURI("%3Cscript src="+e+"//"+f+"%3E%3C/script%3E"))),b()}(function(){var b,c="mCustomScrollbar",d="mCS",e=".mCustomScrollbar",f={setTop:0,setLeft:0,axis:"y",scrollbarPosition:"inside",scrollInertia:950,autoDraggerLength:!0,alwaysShowScrollbar:0,snapOffset:0,mouseWheel:{enable:!0,scrollAmount:"auto",axis:"y",deltaFactor:"auto",disableOver:["select","option","keygen","datalist","textarea"]},scrollButtons:{scrollType:"stepless",scrollAmount:"auto"},keyboard:{enable:!0,scrollType:"stepless",scrollAmount:"auto"},contentTouchScroll:25,documentTouchScroll:!0,advanced:{autoScrollOnFocus:"input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']",updateOnContentResize:!0,updateOnImageLoad:"auto",autoUpdateTimeout:60},theme:"light",callbacks:{onTotalScrollOffset:0,onTotalScrollBackOffset:0,alwaysTriggerOffsets:!0}},g=0,h={},i=window.attachEvent&&!window.addEventListener?1:0,j=!1,k=["mCSB_dragger_onDrag","mCSB_scrollTools_onDrag","mCS_img_loaded","mCS_disabled","mCS_destroyed","mCS_no_scrollbar","mCS-autoHide","mCS-dir-rtl","mCS_no_scrollbar_y","mCS_no_scrollbar_x","mCS_y_hidden","mCS_x_hidden","mCSB_draggerContainer","mCSB_buttonUp","mCSB_buttonDown","mCSB_buttonLeft","mCSB_buttonRight"],l={init:function(b){var b=a.extend(!0,{},f,b),c=m.call(this);if(b.live){var i=b.liveSelector||this.selector||e,j=a(i);if("off"===b.live)return void o(i);h[i]=setTimeout(function(){j.mCustomScrollbar(b),"once"===b.live&&j.length&&o(i)},500)}else o(i);return b.setWidth=b.set_width?b.set_width:b.setWidth,b.setHeight=b.set_height?b.set_height:b.setHeight,b.axis=b.horizontalScroll?"x":p(b.axis),b.scrollInertia=b.scrollInertia>0&&b.scrollInertia<17?17:b.scrollInertia,"object"!=typeof b.mouseWheel&&1==b.mouseWheel&&(b.mouseWheel={enable:!0,scrollAmount:"auto",axis:"y",preventDefault:!1,deltaFactor:"auto",normalizeDelta:!1,invert:!1}),b.mouseWheel.scrollAmount=b.mouseWheelPixels?b.mouseWheelPixels:b.mouseWheel.scrollAmount,b.mouseWheel.normalizeDelta=b.advanced.normalizeMouseWheelDelta?b.advanced.normalizeMouseWheelDelta:b.mouseWheel.normalizeDelta,b.scrollButtons.scrollType=q(b.scrollButtons.scrollType),n(b),a(c).each(function(){var c=a(this);if(!c.data(d)){c.data(d,{idx:++g,opt:b,scrollRatio:{y:null,x:null},overflowed:null,contentReset:{y:null,x:null},bindEvents:!1,tweenRunning:!1,sequential:{},langDir:c.css("direction"),cbOffsets:null,trigger:null,poll:{size:{o:0,n:0},img:{o:0,n:0},change:{o:0,n:0}}});var e=c.data(d),f=e.opt,h=c.data("mcs-axis"),i=c.data("mcs-scrollbar-position"),j=c.data("mcs-theme");h&&(f.axis=h),i&&(f.scrollbarPosition=i),j&&(f.theme=j,n(f)),r.call(this),e&&f.callbacks.onCreate&&"function"==typeof f.callbacks.onCreate&&f.callbacks.onCreate.call(this),a("#mCSB_"+e.idx+"_container img:not(."+k[2]+")").addClass(k[2]),l.update.call(null,c)}})},update:function(b,c){var e=b||m.call(this);return a(e).each(function(){var b=a(this);if(b.data(d)){var e=b.data(d),f=e.opt,g=a("#mCSB_"+e.idx+"_container"),h=a("#mCSB_"+e.idx),i=[a("#mCSB_"+e.idx+"_dragger_vertical"),a("#mCSB_"+e.idx+"_dragger_horizontal")];if(!g.length)return;e.tweenRunning&&U(b),c&&e&&f.callbacks.onBeforeUpdate&&"function"==typeof f.callbacks.onBeforeUpdate&&f.callbacks.onBeforeUpdate.call(this),b.hasClass(k[3])&&b.removeClass(k[3]),b.hasClass(k[4])&&b.removeClass(k[4]),h.css("max-height","none"),h.height()!==b.height()&&h.css("max-height",b.height()),t.call(this),"y"===f.axis||f.advanced.autoExpandHorizontalScroll||g.css("width",s(g)),e.overflowed=y.call(this),C.call(this),f.autoDraggerLength&&v.call(this),w.call(this),A.call(this);var j=[Math.abs(g[0].offsetTop),Math.abs(g[0].offsetLeft)];"x"!==f.axis&&(e.overflowed[0]?i[0].height()>i[0].parent().height()?z.call(this):(V(b,j[0].toString(),{dir:"y",dur:0,overwrite:"none"}),e.contentReset.y=null):(z.call(this),"y"===f.axis?B.call(this):"yx"===f.axis&&e.overflowed[1]&&V(b,j[1].toString(),{dir:"x",dur:0,overwrite:"none"}))),"y"!==f.axis&&(e.overflowed[1]?i[1].width()>i[1].parent().width()?z.call(this):(V(b,j[1].toString(),{dir:"x",dur:0,overwrite:"none"}),e.contentReset.x=null):(z.call(this),"x"===f.axis?B.call(this):"yx"===f.axis&&e.overflowed[0]&&V(b,j[0].toString(),{dir:"y",dur:0,overwrite:"none"}))),c&&e&&(2===c&&f.callbacks.onImageLoad&&"function"==typeof f.callbacks.onImageLoad?f.callbacks.onImageLoad.call(this):3===c&&f.callbacks.onSelectorChange&&"function"==typeof f.callbacks.onSelectorChange?f.callbacks.onSelectorChange.call(this):f.callbacks.onUpdate&&"function"==typeof f.callbacks.onUpdate&&f.callbacks.onUpdate.call(this)), +S.call(this)}})},scrollTo:function(b,c){if("undefined"!=typeof b&&null!=b){var e=m.call(this);return a(e).each(function(){var e=a(this);if(e.data(d)){var f=e.data(d),g=f.opt,h={trigger:"external",scrollInertia:g.scrollInertia,scrollEasing:"mcsEaseInOut",moveDragger:!1,timeout:60,callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},i=a.extend(!0,{},h,c),j=Q.call(this,b),k=i.scrollInertia>0&&i.scrollInertia<17?17:i.scrollInertia;j[0]=R.call(this,j[0],"y"),j[1]=R.call(this,j[1],"x"),i.moveDragger&&(j[0]*=f.scrollRatio.y,j[1]*=f.scrollRatio.x),i.dur=ca()?0:k,setTimeout(function(){null!==j[0]&&"undefined"!=typeof j[0]&&"x"!==g.axis&&f.overflowed[0]&&(i.dir="y",i.overwrite="all",V(e,j[0].toString(),i)),null!==j[1]&&"undefined"!=typeof j[1]&&"y"!==g.axis&&f.overflowed[1]&&(i.dir="x",i.overwrite="none",V(e,j[1].toString(),i))},i.timeout)}})}},stop:function(){var b=m.call(this);return a(b).each(function(){var b=a(this);b.data(d)&&U(b)})},disable:function(b){var c=m.call(this);return a(c).each(function(){var c=a(this);if(c.data(d)){c.data(d);S.call(this,"remove"),B.call(this),b&&z.call(this),C.call(this,!0),c.addClass(k[3])}})},destroy:function(){var b=m.call(this);return a(b).each(function(){var e=a(this);if(e.data(d)){var f=e.data(d),g=f.opt,h=a("#mCSB_"+f.idx),i=a("#mCSB_"+f.idx+"_container"),j=a(".mCSB_"+f.idx+"_scrollbar");g.live&&o(g.liveSelector||a(b).selector),S.call(this,"remove"),B.call(this),z.call(this),e.removeData(d),Z(this,"mcs"),j.remove(),i.find("img."+k[2]).removeClass(k[2]),h.replaceWith(i.contents()),e.removeClass(c+" _"+d+"_"+f.idx+" "+k[6]+" "+k[7]+" "+k[5]+" "+k[3]).addClass(k[4])}})}},m=function(){return"object"!=typeof a(this)||a(this).length<1?e:this},n=function(b){var c=["rounded","rounded-dark","rounded-dots","rounded-dots-dark"],d=["rounded-dots","rounded-dots-dark","3d","3d-dark","3d-thick","3d-thick-dark","inset","inset-dark","inset-2","inset-2-dark","inset-3","inset-3-dark"],e=["minimal","minimal-dark"],f=["minimal","minimal-dark"],g=["minimal","minimal-dark"];b.autoDraggerLength=a.inArray(b.theme,c)>-1?!1:b.autoDraggerLength,b.autoExpandScrollbar=a.inArray(b.theme,d)>-1?!1:b.autoExpandScrollbar,b.scrollButtons.enable=a.inArray(b.theme,e)>-1?!1:b.scrollButtons.enable,b.autoHideScrollbar=a.inArray(b.theme,f)>-1?!0:b.autoHideScrollbar,b.scrollbarPosition=a.inArray(b.theme,g)>-1?"outside":b.scrollbarPosition},o=function(a){h[a]&&(clearTimeout(h[a]),Z(h,a))},p=function(a){return"yx"===a||"xy"===a||"auto"===a?"yx":"x"===a||"horizontal"===a?"x":"y"},q=function(a){return"stepped"===a||"pixels"===a||"step"===a||"click"===a?"stepped":"stepless"},r=function(){var b=a(this),e=b.data(d),f=e.opt,g=f.autoExpandScrollbar?" "+k[1]+"_expand":"",h=["
    ","
    "],i="yx"===f.axis?"mCSB_vertical_horizontal":"x"===f.axis?"mCSB_horizontal":"mCSB_vertical",j="yx"===f.axis?h[0]+h[1]:"x"===f.axis?h[1]:h[0],l="yx"===f.axis?"
    ":"",m=f.autoHideScrollbar?" "+k[6]:"",n="x"!==f.axis&&"rtl"===e.langDir?" "+k[7]:"";f.setWidth&&b.css("width",f.setWidth),f.setHeight&&b.css("height",f.setHeight),f.setLeft="y"!==f.axis&&"rtl"===e.langDir?"989999px":f.setLeft,b.addClass(c+" _"+d+"_"+e.idx+m+n).wrapInner("
    ");var o=a("#mCSB_"+e.idx),p=a("#mCSB_"+e.idx+"_container");"y"===f.axis||f.advanced.autoExpandHorizontalScroll||p.css("width",s(p)),"outside"===f.scrollbarPosition?("static"===b.css("position")&&b.css("position","relative"),b.css("overflow","visible"),o.addClass("mCSB_outside").after(j)):(o.addClass("mCSB_inside").append(j),p.wrap(l)),u.call(this);var q=[a("#mCSB_"+e.idx+"_dragger_vertical"),a("#mCSB_"+e.idx+"_dragger_horizontal")];q[0].css("min-height",q[0].height()),q[1].css("min-width",q[1].width())},s=function(b){var c=[b[0].scrollWidth,Math.max.apply(Math,b.children().map(function(){return a(this).outerWidth(!0)}).get())],d=b.parent().width();return c[0]>d?c[0]:c[1]>d?c[1]:"100%"},t=function(){var b=a(this),c=b.data(d),e=c.opt,f=a("#mCSB_"+c.idx+"_container");if(e.advanced.autoExpandHorizontalScroll&&"y"!==e.axis){f.css({width:"auto","min-width":0,"overflow-x":"scroll"});var g=Math.ceil(f[0].scrollWidth);3===e.advanced.autoExpandHorizontalScroll||2!==e.advanced.autoExpandHorizontalScroll&&g>f.parent().width()?f.css({width:g,"min-width":"100%","overflow-x":"inherit"}):f.css({"overflow-x":"inherit",position:"absolute"}).wrap("
    ").css({width:Math.ceil(f[0].getBoundingClientRect().right+.4)-Math.floor(f[0].getBoundingClientRect().left),"min-width":"100%",position:"relative"}).unwrap()}},u=function(){var b=a(this),c=b.data(d),e=c.opt,f=a(".mCSB_"+c.idx+"_scrollbar:first"),g=aa(e.scrollButtons.tabindex)?"tabindex='"+e.scrollButtons.tabindex+"'":"",h=["","","",""],i=["x"===e.axis?h[2]:h[0],"x"===e.axis?h[3]:h[1],h[2],h[3]];e.scrollButtons.enable&&f.prepend(i[0]).append(i[1]).next(".mCSB_scrollTools").prepend(i[2]).append(i[3])},v=function(){var b=a(this),c=b.data(d),e=a("#mCSB_"+c.idx),f=a("#mCSB_"+c.idx+"_container"),g=[a("#mCSB_"+c.idx+"_dragger_vertical"),a("#mCSB_"+c.idx+"_dragger_horizontal")],h=[e.height()/f.outerHeight(!1),e.width()/f.outerWidth(!1)],j=[parseInt(g[0].css("min-height")),Math.round(h[0]*g[0].parent().height()),parseInt(g[1].css("min-width")),Math.round(h[1]*g[1].parent().width())],k=i&&j[1]g&&(g=i),j>h&&(h=j),[g>e.height(),h>e.width()]},z=function(){var b=a(this),c=b.data(d),e=c.opt,f=a("#mCSB_"+c.idx),g=a("#mCSB_"+c.idx+"_container"),h=[a("#mCSB_"+c.idx+"_dragger_vertical"),a("#mCSB_"+c.idx+"_dragger_horizontal")];if(U(b),("x"!==e.axis&&!c.overflowed[0]||"y"===e.axis&&c.overflowed[0])&&(h[0].add(g).css("top",0),V(b,"_resetY")),"y"!==e.axis&&!c.overflowed[1]||"x"===e.axis&&c.overflowed[1]){var i=dx=0;"rtl"===c.langDir&&(i=f.width()-g.outerWidth(!1),dx=Math.abs(i/c.scrollRatio.x)),g.css("left",i),h[1].css("left",dx),V(b,"_resetX")}},A=function(){function b(){g=setTimeout(function(){a.event.special.mousewheel?(clearTimeout(g),H.call(c[0])):b()},100)}var c=a(this),e=c.data(d),f=e.opt;if(!e.bindEvents){if(E.call(this),f.contentTouchScroll&&F.call(this),G.call(this),f.mouseWheel.enable){var g;b()}K.call(this),M.call(this),f.advanced.autoScrollOnFocus&&L.call(this),f.scrollButtons.enable&&N.call(this),f.keyboard.enable&&O.call(this),e.bindEvents=!0}},B=function(){var b=a(this),c=b.data(d),e=c.opt,f=d+"_"+c.idx,g=".mCSB_"+c.idx+"_scrollbar",h=a("#mCSB_"+c.idx+",#mCSB_"+c.idx+"_container,#mCSB_"+c.idx+"_container_wrapper,"+g+" ."+k[12]+",#mCSB_"+c.idx+"_dragger_vertical,#mCSB_"+c.idx+"_dragger_horizontal,"+g+">a"),i=a("#mCSB_"+c.idx+"_container");e.advanced.releaseDraggableSelectors&&h.add(a(e.advanced.releaseDraggableSelectors)),e.advanced.extraDraggableSelectors&&h.add(a(e.advanced.extraDraggableSelectors)),c.bindEvents&&(a(document).add(a(!I()||top.document)).unbind("."+f),h.each(function(){a(this).unbind("."+f)}),clearTimeout(b[0]._focusTimeout),Z(b[0],"_focusTimeout"),clearTimeout(c.sequential.step),Z(c.sequential,"step"),clearTimeout(i[0].onCompleteTimeout),Z(i[0],"onCompleteTimeout"),c.bindEvents=!1)},C=function(b){var c=a(this),e=c.data(d),f=e.opt,g=a("#mCSB_"+e.idx+"_container_wrapper"),h=g.length?g:a("#mCSB_"+e.idx+"_container"),i=[a("#mCSB_"+e.idx+"_scrollbar_vertical"),a("#mCSB_"+e.idx+"_scrollbar_horizontal")],j=[i[0].find(".mCSB_dragger"),i[1].find(".mCSB_dragger")];"x"!==f.axis&&(e.overflowed[0]&&!b?(i[0].add(j[0]).add(i[0].children("a")).css("display","block"),h.removeClass(k[8]+" "+k[10])):(f.alwaysShowScrollbar?(2!==f.alwaysShowScrollbar&&j[0].css("display","none"),h.removeClass(k[10])):(i[0].css("display","none"),h.addClass(k[10])),h.addClass(k[8]))),"y"!==f.axis&&(e.overflowed[1]&&!b?(i[1].add(j[1]).add(i[1].children("a")).css("display","block"),h.removeClass(k[9]+" "+k[11])):(f.alwaysShowScrollbar?(2!==f.alwaysShowScrollbar&&j[1].css("display","none"),h.removeClass(k[11])):(i[1].css("display","none"),h.addClass(k[11])),h.addClass(k[9]))),e.overflowed[0]||e.overflowed[1]?c.removeClass(k[5]):c.addClass(k[5])},D=function(b){var c=b.type,d=b.target.ownerDocument!==document?[a(frameElement).offset().top,a(frameElement).offset().left]:null,e=I()&&b.target.ownerDocument!==top.document?[a(b.view.frameElement).offset().top,a(b.view.frameElement).offset().left]:[0,0];switch(c){case"pointerdown":case"MSPointerDown":case"pointermove":case"MSPointerMove":case"pointerup":case"MSPointerUp":return d?[b.originalEvent.pageY-d[0]+e[0],b.originalEvent.pageX-d[1]+e[1],!1]:[b.originalEvent.pageY,b.originalEvent.pageX,!1];case"touchstart":case"touchmove":case"touchend":var f=b.originalEvent.touches[0]||b.originalEvent.changedTouches[0],g=b.originalEvent.touches.length||b.originalEvent.changedTouches.length;return b.target.ownerDocument!==document?[f.screenY,f.screenX,g>1]:[f.pageY,f.pageX,g>1];default:return d?[b.pageY-d[0]+e[0],b.pageX-d[1]+e[1],!1]:[b.pageY,b.pageX,!1]}},E=function(){function b(a){var b=o.find("iframe");if(b.length){var c=a?"auto":"none";b.css("pointer-events",c)}}function c(a,b,c,d){if(o[0].idleTimer=l.scrollInertia<233?250:0,e.attr("id")===n[1])var f="x",g=(e[0].offsetLeft-b+d)*k.scrollRatio.x;else var f="y",g=(e[0].offsetTop-a+c)*k.scrollRatio.y;V(h,g.toString(),{dir:f,drag:!0})}var e,f,g,h=a(this),k=h.data(d),l=k.opt,m=d+"_"+k.idx,n=["mCSB_"+k.idx+"_dragger_vertical","mCSB_"+k.idx+"_dragger_horizontal"],o=a("#mCSB_"+k.idx+"_container"),p=a("#"+n[0]+",#"+n[1]),q=l.advanced.releaseDraggableSelectors?p.add(a(l.advanced.releaseDraggableSelectors)):p,r=l.advanced.extraDraggableSelectors?a(!I()||top.document).add(a(l.advanced.extraDraggableSelectors)):a(!I()||top.document);p.bind("mousedown."+m+" touchstart."+m+" pointerdown."+m+" MSPointerDown."+m,function(c){if(c.stopImmediatePropagation(),c.preventDefault(),$(c)){j=!0,i&&(document.onselectstart=function(){return!1}),b(!1),U(h),e=a(this);var d=e.offset(),k=D(c)[0]-d.top,m=D(c)[1]-d.left,n=e.height()+d.top,o=e.width()+d.left;n>k&&k>0&&o>m&&m>0&&(f=k,g=m),x(e,"active",l.autoExpandScrollbar)}}).bind("touchmove."+m,function(a){a.stopImmediatePropagation(),a.preventDefault();var b=e.offset(),d=D(a)[0]-b.top,h=D(a)[1]-b.left;c(f,g,d,h)}),a(document).add(r).bind("mousemove."+m+" pointermove."+m+" MSPointerMove."+m,function(a){if(e){var b=e.offset(),d=D(a)[0]-b.top,h=D(a)[1]-b.left;if(f===d&&g===h)return;c(f,g,d,h)}}).add(q).bind("mouseup."+m+" touchend."+m+" pointerup."+m+" MSPointerUp."+m,function(a){e&&(x(e,"active",l.autoExpandScrollbar),e=null),j=!1,i&&(document.onselectstart=null),b(!0)})},F=function(){function c(a){if(!_(a)||j||D(a)[2])return void(b=0);b=1,w=0,x=0,k=1,y.removeClass("mCS_touch_action");var c=E.offset();l=D(a)[0]-c.top,m=D(a)[1]-c.left,L=[D(a)[0],D(a)[1]]}function e(a){if(_(a)&&!j&&!D(a)[2]&&(A.documentTouchScroll||a.preventDefault(),a.stopImmediatePropagation(),(!x||w)&&k)){q=X();var b=C.offset(),c=D(a)[0]-b.top,d=D(a)[1]-b.left,e="mcsLinearOut";if(G.push(c),H.push(d),L[2]=Math.abs(D(a)[0]-L[0]),L[3]=Math.abs(D(a)[1]-L[1]),z.overflowed[0])var f=F[0].parent().height()-F[0].height(),g=l-c>0&&c-l>-(f*z.scrollRatio.y)&&(2*L[3]0&&d-m>-(h*z.scrollRatio.x)&&(2*L[2]30)){t=1e3/(r-p);var e="mcsEaseOut",f=2.5>t,g=f?[G[G.length-2],H[H.length-2]]:[0,0];s=f?[c-g[0],d-g[1]]:[c-n,d-o];var l=[Math.abs(s[0]),Math.abs(s[1])];t=f?[Math.abs(s[0]/4),Math.abs(s[1]/4)]:[t,t];var m=[Math.abs(E[0].offsetTop)-s[0]*h(l[0]/t[0],t[0]),Math.abs(E[0].offsetLeft)-s[1]*h(l[1]/t[1],t[1])];u="yx"===A.axis?[m[0],m[1]]:"x"===A.axis?[null,m[1]]:[m[0],null],v=[4*l[0]+A.scrollInertia,4*l[1]+A.scrollInertia];var y=parseInt(A.contentTouchScroll)||0;u[0]=l[0]>y?u[0]:0,u[1]=l[1]>y?u[1]:0,z.overflowed[0]&&i(u[0],v[0],e,"y",K,!1),z.overflowed[1]&&i(u[1],v[1],e,"x",K,!1)}}}function h(a,b){var c=[1.5*b,2*b,b/1.5,b/2];return a>90?b>4?c[0]:c[3]:a>60?b>3?c[3]:c[2]:a>30?b>8?c[1]:b>6?c[0]:b>4?b:c[2]:b>8?b:c[3]}function i(a,b,c,d,e,f){a&&V(y,a.toString(),{dur:b,scrollEasing:c,dir:d,overwrite:e,drag:f})}var k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=a(this),z=y.data(d),A=z.opt,B=d+"_"+z.idx,C=a("#mCSB_"+z.idx),E=a("#mCSB_"+z.idx+"_container"),F=[a("#mCSB_"+z.idx+"_dragger_vertical"),a("#mCSB_"+z.idx+"_dragger_horizontal")],G=[],H=[],J=0,K="yx"===A.axis?"none":"all",L=[],M=E.find("iframe"),N=["touchstart."+B+" pointerdown."+B+" MSPointerDown."+B,"touchmove."+B+" pointermove."+B+" MSPointerMove."+B,"touchend."+B+" pointerup."+B+" MSPointerUp."+B],O=void 0!==document.body.style.touchAction;E.bind(N[0],function(a){c(a)}).bind(N[1],function(a){e(a)}),C.bind(N[0],function(a){f(a)}).bind(N[2],function(a){g(a)}),M.length&&M.each(function(){a(this).load(function(){I(this)&&a(this.contentDocument||this.contentWindow.document).bind(N[0],function(a){c(a),f(a)}).bind(N[1],function(a){e(a)}).bind(N[2],function(a){g(a)})})})},G=function(){function c(){return window.getSelection?window.getSelection().toString():document.selection&&"Control"!=document.selection.type?document.selection.createRange().text:0}function e(a,b,c){k.type=c&&f?"stepped":"stepless",k.scrollAmount=10,P(g,a,b,"mcsLinearOut",c?60:null)}var f,g=a(this),h=g.data(d),i=h.opt,k=h.sequential,l=d+"_"+h.idx,m=a("#mCSB_"+h.idx+"_container"),n=m.parent();m.bind("mousedown."+l,function(a){b||f||(f=1,j=!0)}).add(document).bind("mousemove."+l,function(a){if(!b&&f&&c()){var d=m.offset(),g=D(a)[0]-d.top+m[0].offsetTop,j=D(a)[1]-d.left+m[0].offsetLeft;g>0&&g0&&jg?e("on",38):g>n.height()&&e("on",40)),"y"!==i.axis&&h.overflowed[1]&&(0>j?e("on",37):j>n.width()&&e("on",39)))}}).bind("mouseup."+l+" dragend."+l,function(a){b||(f&&(f=0,e("off",null)),j=!1)})},H=function(){function b(b,d){if(U(c),!J(c,b.target)){var g="auto"!==f.mouseWheel.deltaFactor?parseInt(f.mouseWheel.deltaFactor):i&&b.deltaFactor<100?100:b.deltaFactor||100,k=f.scrollInertia;if("x"===f.axis||"x"===f.mouseWheel.axis)var l="x",m=[Math.round(g*e.scrollRatio.x),parseInt(f.mouseWheel.scrollAmount)],n="auto"!==f.mouseWheel.scrollAmount?m[1]:m[0]>=h.width()?.9*h.width():m[0],o=Math.abs(a("#mCSB_"+e.idx+"_container")[0].offsetLeft),p=j[1][0].offsetLeft,q=j[1].parent().width()-j[1].width(),r=b.deltaX||b.deltaY||d;else var l="y",m=[Math.round(g*e.scrollRatio.y),parseInt(f.mouseWheel.scrollAmount)],n="auto"!==f.mouseWheel.scrollAmount?m[1]:m[0]>=h.height()?.9*h.height():m[0],o=Math.abs(a("#mCSB_"+e.idx+"_container")[0].offsetTop),p=j[0][0].offsetTop,q=j[0].parent().height()-j[0].height(),r=b.deltaY||d;"y"===l&&!e.overflowed[0]||"x"===l&&!e.overflowed[1]||((f.mouseWheel.invert||b.webkitDirectionInvertedFromDevice)&&(r=-r),f.mouseWheel.normalizeDelta&&(r=0>r?-1:1),(r>0&&0!==p||0>r&&p!==q||f.mouseWheel.preventDefault)&&(b.stopImmediatePropagation(),b.preventDefault()),b.deltaFactor<2&&!f.mouseWheel.normalizeDelta&&(n=b.deltaFactor,k=17),V(c,(o-r*n).toString(),{dir:l,dur:k}))}}if(a(this).data(d)){var c=a(this),e=c.data(d),f=e.opt,g=d+"_"+e.idx,h=a("#mCSB_"+e.idx),j=[a("#mCSB_"+e.idx+"_dragger_vertical"),a("#mCSB_"+e.idx+"_dragger_horizontal")],k=a("#mCSB_"+e.idx+"_container").find("iframe");k.length&&k.each(function(){a(this).load(function(){I(this)&&a(this.contentDocument||this.contentWindow.document).bind("mousewheel."+g,function(a,c){b(a,c)})})}),h.bind("mousewheel."+g,function(a,c){b(a,c)})}},I=function(a){var b=null;if(a){try{var c=a.contentDocument||a.contentWindow.document;b=c.body.innerHTML}catch(d){}return null!==b}try{var c=top.document;b=c.body.innerHTML}catch(d){}return null!==b},J=function(b,c){var e=c.nodeName.toLowerCase(),f=b.data(d).opt.mouseWheel.disableOver,g=["select","textarea"];return a.inArray(e,f)>-1&&!(a.inArray(e,g)>-1&&!a(c).is(":focus"))},K=function(){var b,c=a(this),e=c.data(d),f=d+"_"+e.idx,g=a("#mCSB_"+e.idx+"_container"),h=g.parent(),i=a(".mCSB_"+e.idx+"_scrollbar ."+k[12]);i.bind("mousedown."+f+" touchstart."+f+" pointerdown."+f+" MSPointerDown."+f,function(c){j=!0,a(c.target).hasClass("mCSB_dragger")||(b=1)}).bind("touchend."+f+" pointerup."+f+" MSPointerUp."+f,function(a){j=!1}).bind("click."+f,function(d){if(b&&(b=0,a(d.target).hasClass(k[12])||a(d.target).hasClass("mCSB_draggerRail"))){U(c);var f=a(this),i=f.find(".mCSB_dragger");if(f.parent(".mCSB_scrollTools_horizontal").length>0){if(!e.overflowed[1])return;var j="x",l=d.pageX>i.offset().left?-1:1,m=Math.abs(g[0].offsetLeft)-l*(.9*h.width())}else{if(!e.overflowed[0])return;var j="y",l=d.pageY>i.offset().top?-1:1,m=Math.abs(g[0].offsetTop)-l*(.9*h.height())}V(c,m.toString(),{dir:j,scrollEasing:"mcsEaseInOut"})}})},L=function(){var b=a(this),c=b.data(d),e=c.opt,f=d+"_"+c.idx,g=a("#mCSB_"+c.idx+"_container"),h=g.parent();g.bind("focusin."+f,function(c){var d=a(document.activeElement),f=g.find(".mCustomScrollBox").length,i=0;d.is(e.advanced.autoScrollOnFocus)&&(U(b),clearTimeout(b[0]._focusTimeout),b[0]._focusTimer=f?(i+17)*f:0,b[0]._focusTimeout=setTimeout(function(){var a=[ba(d)[0],ba(d)[1]],c=[g[0].offsetTop,g[0].offsetLeft],f=[c[0]+a[0]>=0&&c[0]+a[0]=0&&c[0]+a[1]a");i.bind("mousedown."+g+" touchstart."+g+" pointerdown."+g+" MSPointerDown."+g+" mouseup."+g+" touchend."+g+" pointerup."+g+" MSPointerUp."+g+" mouseout."+g+" pointerout."+g+" MSPointerOut."+g+" click."+g,function(d){function g(a,c){f.scrollAmount=e.scrollButtons.scrollAmount,P(b,a,c)}if(d.preventDefault(),$(d)){var h=a(this).attr("class");switch(f.type=e.scrollButtons.scrollType,d.type){case"mousedown":case"touchstart":case"pointerdown":case"MSPointerDown":if("stepped"===f.type)return;j=!0,c.tweenRunning=!1,g("on",h);break;case"mouseup":case"touchend":case"pointerup":case"MSPointerUp":case"mouseout":case"pointerout":case"MSPointerOut":if("stepped"===f.type)return;j=!1,f.dir&&g("off",h);break;case"click":if("stepped"!==f.type||c.tweenRunning)return;g("on",h)}}})},O=function(){function b(b){function d(a,b){g.type=f.keyboard.scrollType,g.scrollAmount=f.keyboard.scrollAmount,"stepped"===g.type&&e.tweenRunning||P(c,a,b)}switch(b.type){case"blur":e.tweenRunning&&g.dir&&d("off",null);break;case"keydown":case"keyup":var h=b.keyCode?b.keyCode:b.which,i="on";if("x"!==f.axis&&(38===h||40===h)||"y"!==f.axis&&(37===h||39===h)){if((38===h||40===h)&&!e.overflowed[0]||(37===h||39===h)&&!e.overflowed[1])return;"keyup"===b.type&&(i="off"),a(document.activeElement).is(l)||(b.preventDefault(),b.stopImmediatePropagation(),d(i,h))}else if(33===h||34===h){if((e.overflowed[0]||e.overflowed[1])&&(b.preventDefault(),b.stopImmediatePropagation()),"keyup"===b.type){U(c);var m=34===h?-1:1;if("x"===f.axis||"yx"===f.axis&&e.overflowed[1]&&!e.overflowed[0])var n="x",o=Math.abs(j[0].offsetLeft)-m*(.9*k.width());else var n="y",o=Math.abs(j[0].offsetTop)-m*(.9*k.height());V(c,o.toString(),{dir:n,scrollEasing:"mcsEaseInOut"})}}else if((35===h||36===h)&&!a(document.activeElement).is(l)&&((e.overflowed[0]||e.overflowed[1])&&(b.preventDefault(),b.stopImmediatePropagation()),"keyup"===b.type)){if("x"===f.axis||"yx"===f.axis&&e.overflowed[1]&&!e.overflowed[0])var n="x",o=35===h?Math.abs(k.width()-j.outerWidth(!1)):0;else var n="y",o=35===h?Math.abs(k.height()-j.outerHeight(!1)):0;V(c,o.toString(),{dir:n,scrollEasing:"mcsEaseInOut"})}}}var c=a(this),e=c.data(d),f=e.opt,g=e.sequential,h=d+"_"+e.idx,i=a("#mCSB_"+e.idx),j=a("#mCSB_"+e.idx+"_container"),k=j.parent(),l="input,textarea,select,datalist,keygen,[contenteditable='true']",m=j.find("iframe"),n=["blur."+h+" keydown."+h+" keyup."+h];m.length&&m.each(function(){a(this).load(function(){I(this)&&a(this.contentDocument||this.contentWindow.document).bind(n[0],function(a){b(a)})})}),i.attr("tabindex","0").bind(n[0],function(a){b(a)})},P=function(b,c,e,f,g){function h(a){l.snapAmount&&(m.scrollAmount=l.snapAmount instanceof Array?"x"===m.dir[0]?l.snapAmount[1]:l.snapAmount[0]:l.snapAmount);var c="stepped"!==m.type,d=g?g:a?c?p/1.5:q:1e3/60,e=a?c?7.5:40:2.5,i=[Math.abs(n[0].offsetTop),Math.abs(n[0].offsetLeft)],k=[j.scrollRatio.y>10?10:j.scrollRatio.y,j.scrollRatio.x>10?10:j.scrollRatio.x],o="x"===m.dir[0]?i[1]+m.dir[1]*(k[1]*e):i[0]+m.dir[1]*(k[0]*e),r="x"===m.dir[0]?i[1]+m.dir[1]*parseInt(m.scrollAmount):i[0]+m.dir[1]*parseInt(m.scrollAmount),s="auto"!==m.scrollAmount?r:o,t=f?f:a?c?"mcsLinearOut":"mcsEaseInOut":"mcsLinear",u=!!a;return a&&17>d&&(s="x"===m.dir[0]?i[1]:i[0]),V(b,s.toString(),{dir:m.dir[0],scrollEasing:t,dur:d,onComplete:u}),a?void(m.dir=!1):(clearTimeout(m.step),void(m.step=setTimeout(function(){h()},d)))}function i(){clearTimeout(m.step),Z(m,"step"),U(b)}var j=b.data(d),l=j.opt,m=j.sequential,n=a("#mCSB_"+j.idx+"_container"),o="stepped"===m.type,p=l.scrollInertia<26?26:l.scrollInertia,q=l.scrollInertia<1?17:l.scrollInertia;switch(c){case"on":if(m.dir=[e===k[16]||e===k[15]||39===e||37===e?"x":"y",e===k[13]||e===k[15]||38===e||37===e?-1:1],U(b),aa(e)&&"stepped"===m.type)return;h(o);break;case"off":i(),(o||j.tweenRunning&&m.dir)&&h(!0)}},Q=function(b){var c=a(this).data(d).opt,e=[];return"function"==typeof b&&(b=b()),b instanceof Array?e=b.length>1?[b[0],b[1]]:"x"===c.axis?[null,b[0]]:[b[0],null]:(e[0]=b.y?b.y:b.x||"x"===c.axis?null:b,e[1]=b.x?b.x:b.y||"y"===c.axis?null:b),"function"==typeof e[0]&&(e[0]=e[0]()),"function"==typeof e[1]&&(e[1]=e[1]()),e},R=function(b,c){if(null!=b&&"undefined"!=typeof b){var e=a(this),f=e.data(d),g=f.opt,h=a("#mCSB_"+f.idx+"_container"),i=h.parent(),j=typeof b;c||(c="x"===g.axis?"x":"y");var k="x"===c?h.outerWidth(!1):h.outerHeight(!1),m="x"===c?h[0].offsetLeft:h[0].offsetTop,n="x"===c?"left":"top";switch(j){case"function":return b();case"object":var o=b.jquery?b:a(b);if(!o.length)return;return"x"===c?ba(o)[1]:ba(o)[0];case"string":case"number":if(aa(b))return Math.abs(b);if(-1!==b.indexOf("%"))return Math.abs(k*parseInt(b)/100);if(-1!==b.indexOf("-="))return Math.abs(m-parseInt(b.split("-=")[1]));if(-1!==b.indexOf("+=")){var p=m+parseInt(b.split("+=")[1]);return p>=0?0:Math.abs(p)}if(-1!==b.indexOf("px")&&aa(b.split("px")[0]))return Math.abs(b.split("px")[0]);if("top"===b||"left"===b)return 0;if("bottom"===b)return Math.abs(i.height()-h.outerHeight(!1));if("right"===b)return Math.abs(i.width()-h.outerWidth(!1));if("first"===b||"last"===b){var o=h.find(":"+b);return"x"===c?ba(o)[1]:ba(o)[0]}return a(b).length?"x"===c?ba(a(b))[1]:ba(a(b))[0]:(h.css(n,b),void l.update.call(null,e[0]))}}},S=function(b){function c(){return clearTimeout(m[0].autoUpdate),0===h.parents("html").length?void(h=null):void(m[0].autoUpdate=setTimeout(function(){return j.advanced.updateOnSelectorChange&&(i.poll.change.n=f(),i.poll.change.n!==i.poll.change.o)?(i.poll.change.o=i.poll.change.n,void g(3)):j.advanced.updateOnContentResize&&(i.poll.size.n=h[0].scrollHeight+h[0].scrollWidth+m[0].offsetHeight+h[0].offsetHeight+h[0].offsetWidth,i.poll.size.n!==i.poll.size.o)?(i.poll.size.o=i.poll.size.n,void g(1)):!j.advanced.updateOnImageLoad||"auto"===j.advanced.updateOnImageLoad&&"y"===j.axis||(i.poll.img.n=m.find("img").length,i.poll.img.n===i.poll.img.o)?void((j.advanced.updateOnSelectorChange||j.advanced.updateOnContentResize||j.advanced.updateOnImageLoad)&&c()):(i.poll.img.o=i.poll.img.n,void m.find("img").each(function(){e(this)}))},j.advanced.autoUpdateTimeout))}function e(b){function c(a,b){return function(){return b.apply(a,arguments)}}function d(){this.onload=null,a(b).addClass(k[2]),g(2)}if(a(b).hasClass(k[2]))return void g();var e=new Image;e.onload=c(e,d),e.src=b.src}function f(){j.advanced.updateOnSelectorChange===!0&&(j.advanced.updateOnSelectorChange="*");var a=0,b=m.find(j.advanced.updateOnSelectorChange);return j.advanced.updateOnSelectorChange&&b.length>0&&b.each(function(){a+=this.offsetHeight+this.offsetWidth}),a}function g(a){clearTimeout(m[0].autoUpdate),l.update.call(null,h[0],a)}var h=a(this),i=h.data(d),j=i.opt,m=a("#mCSB_"+i.idx+"_container");return b?(clearTimeout(m[0].autoUpdate),void Z(m[0],"autoUpdate")):void c()},T=function(a,b,c){return Math.round(a/b)*b-c},U=function(b){var c=b.data(d),e=a("#mCSB_"+c.idx+"_container,#mCSB_"+c.idx+"_container_wrapper,#mCSB_"+c.idx+"_dragger_vertical,#mCSB_"+c.idx+"_dragger_horizontal");e.each(function(){Y.call(this)})},V=function(b,c,e){function f(a){return i&&j.callbacks[a]&&"function"==typeof j.callbacks[a]}function g(){return[j.callbacks.alwaysTriggerOffsets||u>=v[0]+y,j.callbacks.alwaysTriggerOffsets||-z>=u]}function h(){var a=[n[0].offsetTop,n[0].offsetLeft],c=[s[0].offsetTop,s[0].offsetLeft],d=[n.outerHeight(!1),n.outerWidth(!1)],f=[m.height(),m.width()];b[0].mcs={content:n,top:a[0],left:a[1],draggerTop:c[0],draggerLeft:c[1],topPct:Math.round(100*Math.abs(a[0])/(Math.abs(d[0])-f[0])),leftPct:Math.round(100*Math.abs(a[1])/(Math.abs(d[1])-f[1])),direction:e.dir}}var i=b.data(d),j=i.opt,k={trigger:"internal",dir:"y",scrollEasing:"mcsEaseOut",drag:!1,dur:j.scrollInertia,overwrite:"all",callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},e=a.extend(k,e),l=[e.dur,e.drag?0:e.dur],m=a("#mCSB_"+i.idx),n=a("#mCSB_"+i.idx+"_container"),o=n.parent(),p=j.callbacks.onTotalScrollOffset?Q.call(b,j.callbacks.onTotalScrollOffset):[0,0],q=j.callbacks.onTotalScrollBackOffset?Q.call(b,j.callbacks.onTotalScrollBackOffset):[0,0];if(i.trigger=e.trigger,0===o.scrollTop()&&0===o.scrollLeft()||(a(".mCSB_"+i.idx+"_scrollbar").css("visibility","visible"),o.scrollTop(0).scrollLeft(0)),"_resetY"!==c||i.contentReset.y||(f("onOverflowYNone")&&j.callbacks.onOverflowYNone.call(b[0]),i.contentReset.y=1),"_resetX"!==c||i.contentReset.x||(f("onOverflowXNone")&&j.callbacks.onOverflowXNone.call(b[0]),i.contentReset.x=1),"_resetY"!==c&&"_resetX"!==c){if(!i.contentReset.y&&b[0].mcs||!i.overflowed[0]||(f("onOverflowY")&&j.callbacks.onOverflowY.call(b[0]),i.contentReset.x=null),!i.contentReset.x&&b[0].mcs||!i.overflowed[1]||(f("onOverflowX")&&j.callbacks.onOverflowX.call(b[0]),i.contentReset.x=null),j.snapAmount){var r=j.snapAmount instanceof Array?"x"===e.dir?j.snapAmount[1]:j.snapAmount[0]:j.snapAmount;c=T(c,r,j.snapOffset)}switch(e.dir){case"x":var s=a("#mCSB_"+i.idx+"_dragger_horizontal"),t="left",u=n[0].offsetLeft,v=[m.width()-n.outerWidth(!1),s.parent().width()-s.width()],w=[c,0===c?0:c/i.scrollRatio.x],y=p[1],z=q[1],A=y>0?y/i.scrollRatio.x:0,B=z>0?z/i.scrollRatio.x:0;break;case"y":var s=a("#mCSB_"+i.idx+"_dragger_vertical"),t="top",u=n[0].offsetTop,v=[m.height()-n.outerHeight(!1),s.parent().height()-s.height()],w=[c,0===c?0:c/i.scrollRatio.y],y=p[0],z=q[0],A=y>0?y/i.scrollRatio.y:0,B=z>0?z/i.scrollRatio.y:0}w[1]<0||0===w[0]&&0===w[1]?w=[0,0]:w[1]>=v[1]?w=[v[0],v[1]]:w[0]=-w[0],b[0].mcs||(h(),f("onInit")&&j.callbacks.onInit.call(b[0])),clearTimeout(n[0].onCompleteTimeout),W(s[0],t,Math.round(w[1]),l[1],e.scrollEasing),!i.tweenRunning&&(0===u&&w[0]>=0||u===v[0]&&w[0]<=v[0])||W(n[0],t,Math.round(w[0]),l[0],e.scrollEasing,e.overwrite,{onStart:function(){e.callbacks&&e.onStart&&!i.tweenRunning&&(f("onScrollStart")&&(h(),j.callbacks.onScrollStart.call(b[0])),i.tweenRunning=!0,x(s),i.cbOffsets=g())},onUpdate:function(){e.callbacks&&e.onUpdate&&f("whileScrolling")&&(h(),j.callbacks.whileScrolling.call(b[0]))},onComplete:function(){if(e.callbacks&&e.onComplete){"yx"===j.axis&&clearTimeout(n[0].onCompleteTimeout);var a=n[0].idleTimer||0;n[0].onCompleteTimeout=setTimeout(function(){f("onScroll")&&(h(),j.callbacks.onScroll.call(b[0])),f("onTotalScroll")&&w[1]>=v[1]-A&&i.cbOffsets[0]&&(h(),j.callbacks.onTotalScroll.call(b[0])),f("onTotalScrollBack")&&w[1]<=B&&i.cbOffsets[1]&&(h(),j.callbacks.onTotalScrollBack.call(b[0])),i.tweenRunning=!1,n[0].idleTimer=0,x(s,"hide")},a)}}})}},W=function(a,b,c,d,e,f,g){function h(){v.stop||(s||o.call(),s=X()-r,i(),s>=v.time&&(v.time=s>v.time?s+m-(s-v.time):s+m-1,v.time0?(v.currVal=l(v.time,t,w,d,e),u[b]=Math.round(v.currVal)+"px"):u[b]=c+"px",p.call()}function j(){m=1e3/60,v.time=s+m,n=window.requestAnimationFrame?window.requestAnimationFrame:function(a){return i(),setTimeout(a,.01)},v.id=n(h)}function k(){null!=v.id&&(window.requestAnimationFrame?window.cancelAnimationFrame(v.id):clearTimeout(v.id),v.id=null)}function l(a,b,c,d,e){switch(e){case"linear":case"mcsLinear":return c*a/d+b;case"mcsLinearOut":return a/=d,a--,c*Math.sqrt(1-a*a)+b;case"easeInOutSmooth":return a/=d/2,1>a?c/2*a*a+b:(a--,-c/2*(a*(a-2)-1)+b);case"easeInOutStrong":return a/=d/2,1>a?c/2*Math.pow(2,10*(a-1))+b:(a--,c/2*(-Math.pow(2,-10*a)+2)+b);case"easeInOut":case"mcsEaseInOut":return a/=d/2,1>a?c/2*a*a*a+b:(a-=2,c/2*(a*a*a+2)+b);case"easeOutSmooth":return a/=d,a--,-c*(a*a*a*a-1)+b;case"easeOutStrong":return c*(-Math.pow(2,-10*a/d)+1)+b; +case"easeOut":case"mcsEaseOut":default:var f=(a/=d)*a,g=f*a;return b+c*(.499999999999997*g*f+-2.5*f*f+5.5*g+-6.5*f+4*a)}}a._mTween||(a._mTween={top:{},left:{}});var m,n,g=g||{},o=g.onStart||function(){},p=g.onUpdate||function(){},q=g.onComplete||function(){},r=X(),s=0,t=a.offsetTop,u=a.style,v=a._mTween[b];"left"===b&&(t=a.offsetLeft);var w=c-t;v.stop=0,"none"!==f&&k(),j()},X=function(){return window.performance&&window.performance.now?window.performance.now():window.performance&&window.performance.webkitNow?window.performance.webkitNow():Date.now?Date.now():(new Date).getTime()},Y=function(){var a=this;a._mTween||(a._mTween={top:{},left:{}});for(var b=["top","left"],c=0;c=0&&d[0]+ba(e)[0]=0&&d[1]+ba(e)[1]
    ":"
    "},c=function(b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q;return h=d.duration||1,q=d.timingFunction||"ease-in-out",i=c.scope(),j=d.emitOnClose,n=d.onClose,m=void 0!==d.lazyRender,g=null,o=null,k=function(a){var b,d,e,f,g;for(e=0,d=c.children(),f=0,g=d.length;g>f;f++)b=d[f],e+=b.clientHeight;return""+e+"px"},p=function(){return g&&a.cancel(g),m&&(b.lazyRender=!0),a(function(){return o&&a.cancel(o),c.css({overflow:"hidden",transitionProperty:"height",transitionDuration:""+h+"s",transitionTimingFunction:q,height:k()}),o=a(function(){return c.css({overflow:"visible",transition:"none",height:"auto"})},1e3*h)})},l=function(){return o&&a.cancel(o),c.css({overflow:"hidden",transitionProperty:"height",transitionDuration:""+h+"s",transitionTimingFunction:q,height:"0px"}),j||n||m?g=a(function(){return j&&b.$emit(j,{}),n&&i.$eval(n),m?b.lazyRender=!1:void 0},1e3*h):void 0},b.$watch("expanded",function(b,d){return b?a(p):(null!=b&&(c.css({height:k()}),c[0].clientHeight),a(l))})},{restrict:"A",scope:{expanded:"=ngSlideDown"},transclude:!0,link:c,template:function(a,c){return b(a,c)}}}])}.call(this);var mod;mod=angular.module("infinite-scroll",[]),mod.directive("infiniteScroll",["$rootScope","$window","$timeout",function(a,b,c){return{link:function(d,e,f){var g,h,i,j;return b=angular.element(b),i=0,null!=f.infiniteScrollDistance&&d.$watch(f.infiniteScrollDistance,function(a){return i=parseInt(a,10)}),j=!0,g=!1,null!=f.infiniteScrollDisabled&&d.$watch(f.infiniteScrollDisabled,function(a){return j=!a,j&&g?(g=!1,h()):void 0}),h=function(){var c,h,k,l;return l=b.height()+b.scrollTop(),c=e.offset().top+e.height(),h=c-l,k=h<=b.height()*i,k&&j?a.$$phase?d.$eval(f.infiniteScroll):d.$apply(f.infiniteScroll):k?g=!0:void 0},b.on("scroll",h),d.$on("$destroy",function(){return b.off("scroll",h)}),c(function(){return f.infiniteScrollImmediateCheck?d.$eval(f.infiniteScrollImmediateCheck)?h():void 0:h()},0)}}}]),angular.module("ngMap",[]),function(){"use strict";function camelCase(a){return a.replace(SPECIAL_CHARS_REGEXP,function(a,b,c,d){return d?c.toUpperCase():c}).replace(MOZ_HACK_REGEXP,"Moz$1")}function JSONize(a){try{return JSON.parse(a),a}catch(b){return a.replace(/([\$\w]+)\s*:/g,function(a,b){return'"'+b+'":'}).replace(/'([^']+)'/g,function(a,b){return'"'+b+'"'})}}var SPECIAL_CHARS_REGEXP=/([\:\-\_]+(.))/g,MOZ_HACK_REGEXP=/^moz([A-Z])/,Attr2Options=function($parse,$timeout,$log,NavigatorGeolocation,GeoCoder){var orgAttributes=function(a){a.length>0&&(a=a[0]);for(var b={},c=0;c-1&&b.splice(c,1),this.el.className=b.join(" ")},d.prototype.onAdd=function(){this.getPanes().overlayMouseTarget.appendChild(this.el)},d.prototype.draw=function(){this.setPosition(),this.setZIndex(this.zIndex),this.setVisible(this.visible)},d.prototype.onRemove=function(){this.el.parentNode.removeChild(this.el),this.el=null}},f=function(c,e){return function(f,g,h,i){var j=(a.orgAttributes(g),a.filter(h)),k=a.getOptions(j,f),l=a.getEvents(f,j),m=g[0].parentElement.removeChild(g[0]),n=new d(k);b(function(){f.$watch("["+e.join(",")+"]",function(a){n.setContent(c,f)}),n.setContent(m.innerHTML,f);var a=m.firstElementChild.className;n.addClass("custom-marker"),n.addClass(a),k.position instanceof google.maps.LatLng||i.getGeoLocation(k.position).then(function(a){n.setPosition(a)})});for(var o in l)google.maps.event.addDomListener(n.el,o,l[o]);i.addObject("customMarkers",n),g.bind("$destroy",function(){i.deleteObject("customMarkers",n)})}},g=function(d,g,h){return a=d,b=g,c=h,e(),{restrict:"E",require:"^map",compile:function(a){var b=a.html(),c=b.match(/{{([^}]+)}}/g),d=[];return(c||[]).forEach(function(a){var b=a.replace("{{","").replace("}}","");-1==a.indexOf("::")&&-1==a.indexOf("this.")&&-1==d.indexOf(b)&&d.push(a.replace("{{","").replace("}}",""))}),f(b,d)}}};g.$inject=["Attr2Options","$timeout","$compile"],angular.module("ngMap").directive("customMarker",g)}(),function(){"use strict";var a=function(a,b){a.panel&&(a.panel=document.getElementById(a.panel)||document.querySelector(a.panel));var c=new google.maps.DirectionsRenderer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c},b=function(b,c,d){var e=b,f=new google.maps.DirectionsService,g=function(a,b){var e=b;e.travelMode=e.travelMode||"DRIVING";var g=["origin","destination","travelMode","transitOptions","unitSystem","durationInTraffic","waypoints","optimizeWaypoints","provideRouteAlternatives","avoidHighways","avoidTolls","region"];for(var h in e)-1===g.indexOf(h)&&delete e[h];e.waypoints&&("[]"!=e.waypoints&&""!=e.waypoints||delete e.waypoints);var i=function(b){f.route(b,function(b,d){d==google.maps.DirectionsStatus.OK&&c(function(){a.setDirections(b)})})};e.origin&&e.destination&&("current-location"==e.origin?d.getCurrentPosition().then(function(a){e.origin=new google.maps.LatLng(a.coords.latitude,a.coords.longitude),i(e)}):"current-location"==e.destination?d.getCurrentPosition().then(function(a){e.destination=new google.maps.LatLng(a.coords.latitude,a.coords.longitude),i(e)}):i(e))},h=function(b,d,f,h){var i=e.orgAttributes(d),j=e.filter(f),k=e.getOptions(j),l=e.getEvents(b,j),m=e.getAttrsToObserve(i),n=a(k,l);h.addObject("directionsRenderers",n),m.forEach(function(a){!function(a){f.$observe(a,function(b){if("panel"==a)c(function(){var a=document.getElementById(b)||document.querySelector(b);a&&n.setPanel(a)});else if(k[a]!==b){var d=e.toOptionValue(b,{key:a});k[a]=d,g(n,k)}})}(a)}),b.$on("mapInitialized",function(a,b){g(n,k)}),b.$on("$destroy",function(a,b){h.deleteObject("directionsRenderers",n)})};return{restrict:"E",require:"^map",link:h}};b.$inject=["Attr2Options","$timeout","NavigatorGeolocation"],angular.module("ngMap").directive("directions",b)}(),function(){"use strict";angular.module("ngMap").directive("drawingManager",["Attr2Options",function(a){var b=a;return{restrict:"E",require:"^map",link:function(a,c,d,e){var f=(b.orgAttributes(c),b.filter(d)),g=b.getOptions(f),h=b.getControlOptions(f),i=b.getEvents(a,f),j=new google.maps.drawing.DrawingManager({drawingMode:g.drawingmode,drawingControl:g.drawingcontrol,drawingControlOptions:h.drawingControlOptions,circleOptions:g.circleoptions,markerOptions:g.markeroptions,polygonOptions:g.polygonoptions,polylineOptions:g.polylineoptions,rectangleOptions:g.rectangleoptions}),i=b.getEvents(a,f);for(var k in i)google.maps.event.addListener(j,k,i[k]);e.addObject("mapDrawingManager",j)}}}])}(),function(){"use strict";angular.module("ngMap").directive("dynamicMapsEngineLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.visualization.DynamicMapsEngineLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.filter(e),h=b.getOptions(g),i=b.getEvents(a,g,i),j=c(h,i);f.addObject("mapsEngineLayers",j)}}}])}(),function(){"use strict";angular.module("ngMap").directive("fusionTablesLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.FusionTablesLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.filter(e),h=b.getOptions(g),i=b.getEvents(a,g,i),j=c(h,i);f.addObject("fusionTablesLayers",j)}}}])}(),function(){"use strict";angular.module("ngMap").directive("heatmapLayer",["Attr2Options","$window",function(a,b){var c=a;return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=c.filter(e),h=c.getOptions(g);if(h.data=b[e.data]||a[e.data],!(h.data instanceof Array))throw"invalid heatmap data";h.data=new google.maps.MVCArray(h.data);var i=new google.maps.visualization.HeatmapLayer(h);c.getEvents(a,g);f.addObject("heatmapLayers",i)}}}])}(),function(){"use strict";var a=function(a,b,c,d){var e=a,f=function(a,d,e){var f;!a.position||a.position instanceof google.maps.LatLng||delete a.position,f=new google.maps.InfoWindow(a),Object.keys(d).length>0;for(var g in d)g&&google.maps.event.addListener(f,g,d[g]);var h=e.html().trim();if(1!=angular.element(h).length)throw"info-window working as a template must have a container";return f.__template=h.replace(/\s?ng-non-bindable[='"]+/,""),f.__compile=function(a,c){c&&(a["this"]=c);var d=b(f.__template)(a);f.setContent(d[0]),a.$apply()},f.__open=function(a,b,d){c(function(){f.__compile(b,d),d&&d.getPosition?f.open(a,d):d&&d instanceof google.maps.LatLng?(f.open(a),f.setPosition(d)):f.open(a)})},f},g=function(a,b,c,g){b.css("display","none");var h,i=e.orgAttributes(b),j=e.filter(c),k=e.getOptions(j,a),l=e.getEvents(a,j);!k.position||k.position instanceof google.maps.LatLng||(h=k.position);var m=f(k,l,b);h&&g.getGeoLocation(h).then(function(b){m.setPosition(b),m.__open(g.map,a,b);var e=c.geoCallback;e&&d(e)(a)}),g.addObject("infoWindows",m),g.observeAttrSetObj(i,c,m),a.$on("mapInitialized",function(b,c){if(m.visible&&m.__open(c,a),m.visibleOnMarker){var d=m.visibleOnMarker;m.__open(c,a,c.markers[d])}}),a.showInfoWindow=function(b,c,d){var e=g.map.infoWindows[c],f=d?d:this.getPosition?this:null;e.__open(g.map,a,f),g.singleInfoWindow&&(g.lastInfoWindow&&a.hideInfoWindow(b,g.lastInfoWindow),g.lastInfoWindow=c)},a.hideInfoWindow=a.hideInfoWindow||function(a,b){var c=g.map.infoWindows[b];c.close()}};return{restrict:"E",require:"^map",link:g}};a.$inject=["Attr2Options","$compile","$timeout","$parse"],angular.module("ngMap").directive("infoWindow",a)}(),function(){"use strict";angular.module("ngMap").directive("kmlLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.KmlLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("kmlLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("kmlLayers",k)})}}}])}(),function(){"use strict";angular.module("ngMap").directive("mapData",["Attr2Options",function(a){var b=a;return{restrict:"E",require:"^map",link:function(a,c,d,e){var f=b.filter(d),g=b.getOptions(f),h=b.getEvents(a,f,h);a.$on("mapInitialized",function(b,c){for(var d in g)if(d){var e=g[d];"function"==typeof a[e]?c.data[d](a[e]):c.data[d](e)}for(var f in h)h[f]&&c.data.addListener(f,h[f])})}}}])}(),function(){"use strict";var a,b,c,d,e=function(c,e,f){var g=f.mapLazyLoadParams||f.mapLazyLoad;if(window.lazyLoadCallback=function(){a(function(){e.html(d),b(e.contents())(c)},100)},void 0===window.google||void 0===window.google.maps){var h=document.createElement("script");h.src=g+(g.indexOf("?")>-1?"&":"?")+"callback=lazyLoadCallback",document.body.appendChild(h)}else e.html(d),b(e.contents())(c)},f=function(a,b){return!b.mapLazyLoad&&void 0,d=a.html(),c=b.mapLazyLoad,document.querySelector('script[src="'+c+(c.indexOf("?")>-1?"&":"?")+'callback=lazyLoadCallback"]')?!1:(a.html(""),{pre:e})},g=function(c,d){return b=c,a=d,{compile:f}};g.$inject=["$compile","$timeout"],angular.module("ngMap").directive("mapLazyLoad",g)}(),function(){"use strict";angular.module("ngMap").directive("mapType",["Attr2Options","$window",function(a,b){return{restrict:"E",require:"^map",link:function(a,c,d,e){var f,g=d.name;if(!g)throw"invalid map-type name";if(d.object){var h=a[d.object]?a:b;f=h[d.object],"function"==typeof f&&(f=new f)}if(!f)throw"invalid map-type object";a.$on("mapInitialized",function(a,b){b.mapTypes.set(g,f)}),e.addObject("mapTypes",f)}}}])}(),function(){"use strict";function a(a,b){var c;return a.currentStyle?c=a.currentStyle[b]:window.getComputedStyle&&(c=document.defaultView.getComputedStyle(a,null).getPropertyValue(b)),c}var b=function(b,c,d){var e=b,f=function(b,f,g,h){var i=e.orgAttributes(f);b.google=google;var j=document.createElement("div");j.style.width="100%",j.style.height="100%",f.prepend(j),"false"!==g.defaultStyle&&("block"!=a(f[0],"display")&&f.css("display","block"),a(f[0],"height").match(/^(0|auto)/)&&f.css("height","300px")),f[0].addEventListener("dragstart",function(a){return a.preventDefault(),!1});var k=function(a,e){var f=new google.maps.Map(j,{});f.markers={},f.shapes={},c(function(){google.maps.event.trigger(f,"resize")}),a.zoom=a.zoom||15;var k=a.center;k?k instanceof google.maps.LatLng||(delete a.center,h.getGeoLocation(k,m.geoLocationOptions).then(function(a){f.setCenter(a);var c=g.geoCallback;c&&d(c)(b)},function(a){f.setCenter(m.geoFallbackCenter)})):a.center=new google.maps.LatLng(0,0),f.setOptions(a),h.singleInfoWindow=a.singleInfoWindow;for(var l in e)l&&google.maps.event.addListener(f,l,e[l]);h.observeAttrSetObj(i,g,f),h.map=f,h.addObjects(h._objects),b.map=f,b.map.scope=b,google.maps.event.addListenerOnce(f,"idle",function(){b.$emit("mapInitialized",f),g.zoomToIncludeMarkers&&(h.zoomToIncludeMarkers(),"auto"==g.zoomToIncludeMarkers&&b.$on("objectChanged",function(a,b){"markers"==b[0]&&h.zoomToIncludeMarkers()}))})},l=e.filter(g),m=e.getOptions(l,b),n=e.getControlOptions(l),o=angular.extend(m,n),p=e.getEvents(b,l);g.initEvent?b.$on(g.initEvent,function(){!h.map&&k(o,p)}):k(o,p)};return{restrict:"AE",controller:"MapController",link:f}};angular.module("ngMap").directive("map",["Attr2Options","$timeout","$parse",b])}(),function(){"use strict";var a=function(a,b,c,d,e){var f=e,g=this,h=function(a,b,c){a.$observe(b,function(a){if(a){var d=f.camelCase("set-"+b),e=f.toOptionValue(a,{key:b});c[d]&&(b.match(/center|position/)&&"string"==typeof e?g.getGeoLocation(e).then(function(a){c[d](a)}):c[d](e))}})};this.map=null,this._objects=[],this.addObject=function(b,c){if(this.map){this.map[b]=this.map[b]||{};var d=Object.keys(this.map[b]).length;this.map[b][c.id||d]=c,"infoWindows"!=b&&c.setMap&&c.setMap&&c.setMap(this.map),c.centered&&c.position&&this.map.setCenter(c.position),a.$emit("objectChanged",[b,this.map[b]])}else c.groupName=b,this._objects.push(c)},this.deleteObject=function(b,c){if(c.map){var d=c.map[b];for(var e in d)d[e]===c&&delete d[e];c.map&&c.setMap&&c.setMap(null),a.$emit("objectChanged",[b,this.map[b]])}},this.addObjects=function(a){for(var b=0;b0;for(var d in b)d&&google.maps.event.addListener(c,d,b[d]);return c},b=function(b,c){var d=b,e=function(b,e,f,g){var h,i=d.orgAttributes(e),j=d.filter(f),k=d.getOptions(j,b),l=d.getEvents(b,j);k.position instanceof google.maps.LatLng||(h=k.position);var m=a(k,l);g.addObject("markers",m),h&&g.getGeoLocation(h).then(function(a){m.setPosition(a),k.centered&&m.map.setCenter(a);var d=f.geoCallback;d&&c(d)(b)}),k.noWatcher||g.observeAttrSetObj(i,f,m),e.bind("$destroy",function(){g.deleteObject("markers",m)})};return{restrict:"E",require:"^map",link:e}};b.$inject=["Attr2Options","$parse"],angular.module("ngMap").directive("marker",b)}(),function(){"use strict";angular.module("ngMap").directive("overlayMapType",["Attr2Options","$window",function(a,b){return{restrict:"E",require:"^map",link:function(a,c,d,e){var f,g=d.initMethod||"insertAt";if(d.object){var h=a[d.object]?a:b;f=h[d.object],"function"==typeof f&&(f=new f)}if(!f)throw"invalid map-type object";a.$on("mapInitialized",function(a,b){if("insertAt"==g){var c=parseInt(d.index,10);b.overlayMapTypes.insertAt(c,f)}else"push"==g&&b.overlayMapTypes.push(f)}),e.addObject("overlayMapTypes",f)}}}])}(),function(){"use strict";var a=function(a,b){var c=a,d=function(a,d,e,f){if("false"===e.placesAutoComplete)return!1;var g=c.filter(e),h=c.getOptions(g),i=c.getEvents(a,g),j=new google.maps.places.Autocomplete(d[0],h);for(var k in i)google.maps.event.addListener(j,k,i[k]);var l=function(){b(function(){f&&f.$setViewValue(d.val())},100)};google.maps.event.addListener(j,"place_changed",l),d[0].addEventListener("change",l),e.$observe("types",function(a){if(a){var b=c.toOptionValue(a,{key:"types"});j.setTypes(b)}})};return{restrict:"A",require:"?ngModel",link:d}};a.$inject=["Attr2Options","$timeout"],angular.module("ngMap").directive("placesAutoComplete",a)}(),function(){"use strict";var a=function(a,b){var c,d=a.name;switch(delete a.name,d){case"circle":a.center instanceof google.maps.LatLng||(a.center=new google.maps.LatLng(0,0)),c=new google.maps.Circle(a);break;case"polygon":c=new google.maps.Polygon(a);break;case"polyline":c=new google.maps.Polyline(a);break;case"rectangle":c=new google.maps.Rectangle(a);break;case"groundOverlay":case"image":var e=a.url,f={opacity:a.opacity,clickable:a.clickable,id:a.id};c=new google.maps.GroundOverlay(e,a.bounds,f)}for(var g in b)b[g]&&google.maps.event.addListener(c,g,b[g]);return c},b=function(b,c){var d=b,e=function(b,e,f,g){var h,i,j=d.orgAttributes(e),k=d.filter(f),l=d.getOptions(k),m=d.getEvents(b,k);i=l.name,l.center instanceof google.maps.LatLng||(h=l.center);var n=a(l,m);g.addObject("shapes",n),h&&"circle"==i&&g.getGeoLocation(h).then(function(a){n.setCenter(a),n.centered&&n.map.setCenter(a);var d=f.geoCallback;d&&c(d)(b)}),g.observeAttrSetObj(j,f,n),e.bind("$destroy",function(){g.deleteObject("shapes",n)})};return{restrict:"E",require:"^map",link:e}};b.$inject=["Attr2Options","$parse"],angular.module("ngMap").directive("shape",b)}(),function(){"use strict";var a=function(a){var b=a,c=function(a,b,c){var d,e;b.container&&(e=document.getElementById(b.container),e=e||document.querySelector(b.container)),e?d=new google.maps.StreetViewPanorama(e,b):(d=a.getStreetView(),d.setOptions(b));for(var f in c)f&&google.maps.event.addListener(d,f,c[f]);return d},d=function(a,d,e,f){var g=(b.orgAttributes(d),b.filter(e)),h=b.getOptions(g),i=b.getControlOptions(g),j=angular.extend(h,i),k=b.getEvents(a,g);a.$on("mapInitialized",function(a,b){var d=c(b,j,k);b.setStreetView(d),!d.getPosition()&&d.setPosition(b.getCenter()),google.maps.event.addListener(d,"position_changed",function(){d.getPosition()!==b.getCenter()&&b.setCenter(d.getPosition())});var e=google.maps.event.addListener(b,"center_changed",function(){d.setPosition(b.getCenter()),google.maps.event.removeListener(e)})})};return{restrict:"E",require:"^map",link:d}};a.$inject=["Attr2Options"],angular.module("ngMap").directive("streetViewPanorama",a)}(),function(){"use strict";angular.module("ngMap").directive("trafficLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.TrafficLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("trafficLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("trafficLayers",k)})}}}])}(),function(){"use strict";angular.module("ngMap").directive("transitLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.TransitLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("transitLayers",k),f.observeAttrSetObj(g,e,k), +d.bind("$destroy",function(){f.deleteObject("transitLayers",k)})}}}])}(),function(){"use strict";angular.module("ngMap").directive("weatherLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.weather.WeatherLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("weatherLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("weatherLayers",k)})}}}])}(),function(a,b){"use strict";var c=["ng","oc.lazyLoad"],d={},e=[],f=[],g=[],h=[],i=a.noop,j={},k=[],l=a.module("oc.lazyLoad",["ng"]);l.provider("$ocLazyLoad",["$controllerProvider","$provide","$compileProvider","$filterProvider","$injector","$animateProvider",function(l,m,p,q,r,s){function t(b,d,e){if(d){var f,h,l,m=[];for(f=d.length-1;f>=0;f--)if(h=d[f],a.isString(h)||(h=w(h)),h&&-1===k.indexOf(h)&&(!y[h]||-1!==g.indexOf(h))){var n=-1===c.indexOf(h);if(l=o(h),n&&(c.push(h),t(b,l.requires,e)),l._runBlocks.length>0)for(j[h]=[];l._runBlocks.length>0;)j[h].push(l._runBlocks.shift());a.isDefined(j[h])&&(n||e.rerun)&&(m=m.concat(j[h])),v(b,l._invokeQueue,h,e.reconfig),v(b,l._configBlocks,h,e.reconfig),i(n?"ocLazyLoad.moduleLoaded":"ocLazyLoad.moduleReloaded",h),d.pop(),k.push(h)}var p=b.getInstanceInjector();a.forEach(m,function(a){p.invoke(a)})}}function u(b,c){function e(b,c){var d,e=!0;return c.length&&(d=f(b),a.forEach(c,function(a){e=e&&f(a)!==d})),e}function f(b){return a.isArray(b)?F(b.toString()):a.isObject(b)?F(E(b)):a.isDefined(b)&&null!==b?F(b.toString()):b}var g=b[2][0],h=b[1],j=!1;a.isUndefined(d[c])&&(d[c]={}),a.isUndefined(d[c][h])&&(d[c][h]={});var k=function(a,b){d[c][h].hasOwnProperty(a)||(d[c][h][a]=[]),e(b,d[c][h][a])&&(j=!0,d[c][h][a].push(b),i("ocLazyLoad.componentLoaded",[c,h,a]))};if(a.isString(g))k(g,b[2][1]);else{if(!a.isObject(g))return!1;a.forEach(g,function(b,c){a.isString(b)?k(b,g[1]):k(c,b)})}return j}function v(b,c,d,f){if(c){var g,h,i,j;for(g=0,h=c.length;h>g;g++)if(i=c[g],a.isArray(i)){if(null!==b){if(!b.hasOwnProperty(i[0]))throw new Error("unsupported provider "+i[0]);j=b[i[0]]}var k=u(i,d);if("invoke"!==i[1])k&&a.isDefined(j)&&j[i[1]].apply(j,i[2]);else{var l=function(b){var c=e.indexOf(d+"-"+b);(-1===c||f)&&(-1===c&&e.push(d+"-"+b),a.isDefined(j)&&j[i[1]].apply(j,i[2]))};if(a.isFunction(i[2][0]))l(i[2][0]);else if(a.isArray(i[2][0]))for(var m=0,n=i[2][0].length;n>m;m++)a.isFunction(i[2][0][m])&&l(i[2][0][m])}}}}function w(b){var c=null;return a.isString(b)?c=b:a.isObject(b)&&b.hasOwnProperty("name")&&a.isString(b.name)&&(c=b.name),c}function x(b){if(!a.isString(b))return!1;try{return o(b)}catch(c){if(/No module/.test(c)||c.message.indexOf("$injector:nomod")>-1)return!1}}var y={},z={$controllerProvider:l,$compileProvider:p,$filterProvider:q,$provide:m,$injector:r,$animateProvider:s},A=!1,B=!1,C=[],D={};C.push=function(a){-1===this.indexOf(a)&&Array.prototype.push.apply(this,arguments)},this.config=function(b){a.isDefined(b.modules)&&(a.isArray(b.modules)?a.forEach(b.modules,function(a){y[a.name]=a}):y[b.modules.name]=b.modules),a.isDefined(b.debug)&&(A=b.debug),a.isDefined(b.events)&&(B=b.events)},this._init=function(d){if(0===f.length){var e=[d],g=["ng:app","ng-app","x-ng-app","data-ng-app"],i=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/,j=function(a){return a&&e.push(a)};a.forEach(g,function(b){g[b]=!0,j(document.getElementById(b)),b=b.replace(":","\\:"),"undefined"!=typeof d[0]&&d[0].querySelectorAll&&(a.forEach(d[0].querySelectorAll("."+b),j),a.forEach(d[0].querySelectorAll("."+b+"\\:"),j),a.forEach(d[0].querySelectorAll("["+b+"]"),j))}),a.forEach(e,function(b){if(0===f.length){var c=" "+d.className+" ",e=i.exec(c);e?f.push((e[2]||"").replace(/\s+/g,",")):a.forEach(b.attributes,function(a){0===f.length&&g[a.name]&&f.push(a.value)})}})}0!==f.length||(b.jasmine||b.mocha)&&a.isDefined(a.mock)||console.error("No module found during bootstrap, unable to init ocLazyLoad. You should always use the ng-app directive or angular.boostrap when you use ocLazyLoad.");var k=function l(b){if(-1===c.indexOf(b)){c.push(b);var d=a.module(b);v(null,d._invokeQueue,b),v(null,d._configBlocks,b),a.forEach(d.requires,l)}};a.forEach(f,function(a){k(a)}),f=[],h.pop()};var E=function(b){try{return JSON.stringify(b)}catch(c){var d=[];return JSON.stringify(b,function(b,c){if(a.isObject(c)&&null!==c){if(-1!==d.indexOf(c))return;d.push(c)}return c})}},F=function(a){var b,c,d,e=0;if(0==a.length)return e;for(b=0,d=a.length;d>b;b++)c=a.charCodeAt(b),e=(e<<5)-e+c,e|=0;return e};this.$get=["$log","$rootElement","$rootScope","$cacheFactory","$q",function(b,e,g,j,l){function m(a){var c=l.defer();return b.error(a.message),c.reject(a),c.promise}var p,q=j("ocLazyLoad");return A||(b={},b.error=a.noop,b.warn=a.noop,b.info=a.noop),z.getInstanceInjector=function(){return p?p:p=e.data("$injector")||a.injector()},i=function(a,c){B&&g.$broadcast(a,c),A&&b.info(a,c)},{_broadcast:i,_$log:b,_getFilesCache:function(){return q},toggleWatch:function(a){a?h.push(!0):h.pop()},getModuleConfig:function(b){if(!a.isString(b))throw new Error("You need to give the name of the module to get");return y[b]?a.copy(y[b]):null},setModuleConfig:function(b){if(!a.isObject(b))throw new Error("You need to give the module config object to set");return y[b.name]=b,b},getModules:function(){return c},isLoaded:function(b){var d=function(a){var b=c.indexOf(a)>-1;return b||(b=!!x(a)),b};if(a.isString(b)&&(b=[b]),a.isArray(b)){var e,f;for(e=0,f=b.length;f>e;e++)if(!d(b[e]))return!1;return!0}throw new Error("You need to define the module(s) name(s)")},_getModuleName:w,_getModule:function(a){try{return o(a)}catch(b){throw(/No module/.test(b)||b.message.indexOf("$injector:nomod")>-1)&&(b.message='The module "'+E(a)+'" that you are trying to load does not exist. '+b.message),b}},moduleExists:x,_loadDependencies:function(b,c){var d,e,f,g=[],h=this;if(b=h._getModuleName(b),null===b)return l.when();try{d=h._getModule(b)}catch(i){return m(i)}return e=h.getRequires(d),a.forEach(e,function(d){if(a.isString(d)){var e=h.getModuleConfig(d);if(null===e)return void C.push(d);d=e,e.name=void 0}if(h.moduleExists(d.name))return f=d.files.filter(function(a){return h.getModuleConfig(d.name).files.indexOf(a)<0}),0!==f.length&&h._$log.warn('Module "',b,'" attempted to redefine configuration for dependency. "',d.name,'"\n Additional Files Loaded:',f),a.isDefined(h.filesLoader)?void g.push(h.filesLoader(d,c).then(function(){return h._loadDependencies(d)})):m(new Error("Error: New dependencies need to be loaded from external files ("+d.files+"), but no loader has been defined."));if(a.isArray(d)){var i=[];a.forEach(d,function(a){var b=h.getModuleConfig(a);null===b?i.push(a):b.files&&(i=i.concat(b.files))}),i.length>0&&(d={files:i})}else a.isObject(d)&&d.hasOwnProperty("name")&&d.name&&(h.setModuleConfig(d),C.push(d.name));if(a.isDefined(d.files)&&0!==d.files.length){if(!a.isDefined(h.filesLoader))return m(new Error('Error: the module "'+d.name+'" is defined in external files ('+d.files+"), but no loader has been defined."));g.push(h.filesLoader(d,c).then(function(){return h._loadDependencies(d)}))}}),l.all(g)},inject:function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],e=this,g=l.defer();if(a.isDefined(b)&&null!==b){if(a.isArray(b)){var h=[];return a.forEach(b,function(a){h.push(e.inject(a,c,d))}),l.all(h)}e._addToLoadList(e._getModuleName(b),!0,d)}if(f.length>0){var i=f.slice(),j=function m(a){C.push(a),D[a]=g.promise,e._loadDependencies(a,c).then(function(){try{k=[],t(z,C,c)}catch(a){return e._$log.error(a.message),void g.reject(a)}f.length>0?m(f.shift()):g.resolve(i)},function(a){g.reject(a)})};j(f.shift())}else{if(c&&c.name&&D[c.name])return D[c.name];g.resolve()}return g.promise},getRequires:function(b){var d=[];return a.forEach(b.requires,function(a){-1===c.indexOf(a)&&d.push(a)}),d},_invokeQueue:v,_registerInvokeList:u,_register:t,_addToLoadList:n,_unregister:function(b){a.isDefined(b)&&a.isArray(b)&&a.forEach(b,function(a){d[a]=void 0})}}}],this._init(a.element(b.document))}]);var m=a.bootstrap;a.bootstrap=function(b,c,d){return a.forEach(c.slice(),function(a){n(a,!0,!0)}),m(b,c,d)};var n=function(b,c,d){(h.length>0||c)&&a.isString(b)&&-1===f.indexOf(b)&&(f.push(b),d&&g.push(b))},o=a.module;a.module=function(a,b,c){return n(a,!1,!0),o(a,b,c)},"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="oc.lazyLoad")}(angular,window),function(a){"use strict";a.module("oc.lazyLoad").directive("ocLazyLoad",["$ocLazyLoad","$compile","$animate","$parse","$timeout",function(b,c,d,e,f){return{restrict:"A",terminal:!0,priority:1e3,compile:function(f,g){var h=f[0].innerHTML;return f.html(""),function(f,g,i){var j=e(i.ocLazyLoad);f.$watch(function(){return j(f)||i.ocLazyLoad},function(e){a.isDefined(e)&&b.load(e).then(function(){d.enter(h,g),c(g.contents())(f)})},!0)}}}}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$q","$window","$interval",function(b,c,d,e){var f=!1,g=!1,h=d.document.getElementsByTagName("head")[0]||d.document.getElementsByTagName("body")[0];return b.buildElement=function(i,j,k){var l,m,n=c.defer(),o=b._getFilesCache(),p=function(a){var b=(new Date).getTime();return a.indexOf("?")>=0?"&"===a.substring(0,a.length-1)?a+"_dc="+b:a+"&_dc="+b:a+"?_dc="+b};switch(a.isUndefined(o.get(j))&&o.put(j,n.promise),i){case"css":l=d.document.createElement("link"),l.type="text/css",l.rel="stylesheet",l.href=k.cache===!1?p(j):j;break;case"js":l=d.document.createElement("script"),l.src=k.cache===!1?p(j):j;break;default:o.remove(j),n.reject(new Error('Requested type "'+i+'" is not known. Could not inject "'+j+'"'))}l.onload=l.onreadystatechange=function(a){l.readyState&&!/^c|loade/.test(l.readyState)||m||(l.onload=l.onreadystatechange=null,m=1,b._broadcast("ocLazyLoad.fileLoaded",j),n.resolve())},l.onerror=function(){o.remove(j),n.reject(new Error("Unable to load "+j))},l.async=k.serie?0:1;var q=h.lastChild;if(k.insertBefore){var r=a.element(a.isDefined(window.jQuery)?k.insertBefore:document.querySelector(k.insertBefore));r&&r.length>0&&(q=r[0])}if(q.parentNode.insertBefore(l,q),"css"==i){if(!f){var s=d.navigator.userAgent.toLowerCase();if(/iP(hone|od|ad)/.test(d.navigator.platform)){var t=d.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),u=parseFloat([parseInt(t[1],10),parseInt(t[2],10),parseInt(t[3]||0,10)].join("."));g=6>u}else if(s.indexOf("android")>-1){var v=parseFloat(s.slice(s.indexOf("android")+8));g=4.4>v}else if(s.indexOf("safari")>-1){var w=s.match(/version\/([\.\d]+)/i);g=w&&w[1]&&parseFloat(w[1])<6}}if(g)var x=1e3,y=e(function(){try{l.sheet.cssRules,e.cancel(y),l.onload()}catch(a){--x<=0&&l.onerror()}},20)}return n.promise},b}])}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$q",function(b,c){return b.filesLoader=function(d){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],f=[],g=[],h=[],i=[],j=null,k=b._getFilesCache();b.toggleWatch(!0),a.extend(e,d);var l=function(c){var d,l=null;if(a.isObject(c)&&(l=c.type,c=c.path),j=k.get(c),a.isUndefined(j)||e.cache===!1){if(null!==(d=/^(css|less|html|htm|js)?(?=!)/.exec(c))&&(l=d[1],c=c.substr(d[1].length+1,c.length)),!l)if(null!==(d=/[.](css|less|html|htm|js)?((\?|#).*)?$/.exec(c)))l=d[1];else{if(b.jsLoader.hasOwnProperty("ocLazyLoadLoader")||!b.jsLoader.hasOwnProperty("requirejs"))return void b._$log.error("File type could not be determined. "+c);l="js"}"css"!==l&&"less"!==l||-1!==f.indexOf(c)?"html"!==l&&"htm"!==l||-1!==g.indexOf(c)?"js"===l||-1===h.indexOf(c)?h.push(c):b._$log.error("File type is not valid. "+c):g.push(c):f.push(c)}else j&&i.push(j)};if(e.serie?l(e.files.shift()):a.forEach(e.files,function(a){l(a)}),f.length>0){var m=c.defer();b.cssLoader(f,function(c){a.isDefined(c)&&b.cssLoader.hasOwnProperty("ocLazyLoadLoader")?(b._$log.error(c),m.reject(c)):m.resolve()},e),i.push(m.promise)}if(g.length>0){var n=c.defer();b.templatesLoader(g,function(c){a.isDefined(c)&&b.templatesLoader.hasOwnProperty("ocLazyLoadLoader")?(b._$log.error(c),n.reject(c)):n.resolve()},e),i.push(n.promise)}if(h.length>0){var o=c.defer();b.jsLoader(h,function(c){a.isDefined(c)&&(b.jsLoader.hasOwnProperty("ocLazyLoadLoader")||b.jsLoader.hasOwnProperty("requirejs"))?(b._$log.error(c),o.reject(c)):o.resolve()},e),i.push(o.promise)}if(0===i.length){var p=c.defer(),q="Error: no file to load has been found, if you're trying to load an existing module you should use the 'inject' method instead of 'load'.";return b._$log.error(q),p.reject(q),p.promise}return e.serie&&e.files.length>0?c.all(i).then(function(){return b.filesLoader(d,e)}):c.all(i)["finally"](function(a){return b.toggleWatch(!1),a})},b.load=function(d){var e,f=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],g=this,h=null,i=[],j=c.defer(),k=a.copy(d),l=a.copy(f);if(a.isArray(k))return a.forEach(k,function(a){i.push(g.load(a,l))}),c.all(i).then(function(a){j.resolve(a)},function(a){j.reject(a)}),j.promise;if(a.isString(k)?(h=g.getModuleConfig(k),h||(h={files:[k]})):a.isObject(k)&&(h=a.isDefined(k.path)&&a.isDefined(k.type)?{files:[k]}:g.setModuleConfig(k)),null===h){var m=g._getModuleName(k);return e='Module "'+(m||"unknown")+'" is not configured, cannot load.',b._$log.error(e),j.reject(new Error(e)),j.promise}a.isDefined(h.template)&&(a.isUndefined(h.files)&&(h.files=[]),a.isString(h.template)?h.files.push(h.template):a.isArray(h.template)&&h.files.concat(h.template));var n=a.extend({},l,h);return a.isUndefined(h.files)&&a.isDefined(h.name)&&b.moduleExists(h.name)?b.inject(h.name,n,!0):(b.filesLoader(h,n).then(function(){b.inject(null,n).then(function(a){j.resolve(a)},function(a){j.reject(a)})},function(a){j.reject(a)}),j.promise)},b}])}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$q",function(b,c){return b.cssLoader=function(d,e,f){var g=[];a.forEach(d,function(a){g.push(b.buildElement("css",a,f))}),c.all(g).then(function(){e()},function(a){e(a)})},b.cssLoader.ocLazyLoadLoader=!0,b}])}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$q",function(b,c){return b.jsLoader=function(d,e,f){var g=[];a.forEach(d,function(a){g.push(b.buildElement("js",a,f))}),c.all(g).then(function(){e()},function(a){e(a)})},b.jsLoader.ocLazyLoadLoader=!0,b}])}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$templateCache","$q","$http",function(b,c,d,e){return b.templatesLoader=function(f,g,h){var i=[],j=b._getFilesCache();return a.forEach(f,function(b){var f=d.defer();i.push(f.promise),e.get(b,h).success(function(d){a.isString(d)&&d.length>0&&a.forEach(a.element(d),function(a){"SCRIPT"===a.nodeName&&"text/ng-template"===a.type&&c.put(a.id,a.innerHTML)}),a.isUndefined(j.get(b))&&j.put(b,!0),f.resolve()}).error(function(a){f.reject(new Error('Unable to load template file "'+b+'": '+a))})}),d.all(i).then(function(){g()},function(a){g(a)})},b.templatesLoader.ocLazyLoadLoader=!0,b}])}])}(angular),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){var c;if(null==this)throw new TypeError('"this" is null or not defined');var d=Object(this),e=d.length>>>0;if(0===e)return-1;var f=+b||0;if(Math.abs(f)===1/0&&(f=0),f>=e)return-1;for(c=Math.max(f>=0?f:e-Math.abs(f),0);e>c;){if(c in d&&d[c]===a)return c;c++}return-1}),"undefined"==typeof PDFJS&&(("undefined"!=typeof window?window:this).PDFJS={}),PDFJS.version="1.1.551",PDFJS.build="2a5616c",function(){"use strict";function a(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.infos&&console.log("Info: "+a)}function b(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.warnings&&console.log("Warning: "+a)}function c(a){b("Deprecated API usage: "+a)}function d(a){throw PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.errors&&(console.log("Error: "+a),console.log(e())),I.notify(H.unknown),new Error(a)}function e(){try{throw new Error}catch(a){return a.stack?a.stack.split("\n").slice(2).join("\n"):""}}function f(a,b){a||d(b)}function g(a,b){if(!b)return a;if(/^[a-z][a-z0-9+\-.]*:/i.test(b))return b;var c;if("/"===b.charAt(0))return c=a.indexOf("://"),"/"===b.charAt(1)?++c:c=a.indexOf("/",c+3),a.substring(0,c)+b;var d=a.length;c=a.lastIndexOf("#"),d=c>=0?c:d,c=a.lastIndexOf("?",d),d=c>=0?c:d;var e=a.lastIndexOf("/",d);return a.substring(0,e+1)+b}function h(a,b){if(!a)return!1;var c=/^[a-z][a-z0-9+\-.]*(?=:)/i.exec(a);if(!c)return b;switch(c=c[0].toLowerCase()){case"http":case"https":case"ftp":case"mailto":case"tel":return!0;default:return!1}}function i(a,b,c){return Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!1}),c}function j(){switch(PDFJS.openExternalLinksInNewWindow&&(b("PDFJS.openExternalLinksInNewWindow is deprecated, use PDFJS.externalLinkTarget instead."),PDFJS.externalLinkTarget===J.NONE&&(PDFJS.externalLinkTarget=J.BLANK),PDFJS.openExternalLinksInNewWindow=!1),PDFJS.externalLinkTarget){case J.NONE:return!1;case J.SELF:case J.BLANK:case J.PARENT:case J.TOP:return!0}return b("PDFJS.externalLinkTarget is invalid: "+PDFJS.externalLinkTarget),PDFJS.externalLinkTarget=J.NONE,!1}function k(a){f(null!==a&&"object"==typeof a&&void 0!==a.length,"Invalid argument for bytesToString");var b=a.length,c=8192;if(c>b)return String.fromCharCode.apply(null,a);for(var d=[],e=0;b>e;e+=c){var g=Math.min(e+c,b),h=a.subarray(e,g);d.push(String.fromCharCode.apply(null,h))}return d.join("")}function l(a){f("string"==typeof a,"Invalid argument for stringToBytes");for(var b=a.length,c=new Uint8Array(b),d=0;b>d;++d)c[d]=255&a.charCodeAt(d);return c}function m(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,255&a)}function n(){var a=new Uint8Array(2);a[0]=1;var b=new Uint16Array(a.buffer);return 1===b[0]}function o(){var a=document.createElement("canvas");a.width=a.height=1;var b=a.getContext("2d"),c=b.createImageData(1,1);return"undefined"!=typeof c.data.buffer}function p(a){return"number"==typeof a}function q(a){return a instanceof Array}function r(a){return"object"==typeof a&&null!==a&&void 0!==a.byteLength}function s(){var a={};return a.promise=new Promise(function(b,c){a.resolve=b,a.reject=c}),a}function t(a,b){this.name=a,this.comObj=b,this.callbackIndex=1,this.postMessageTransfers=!0;var c=this.callbacksCapabilities={},e=this.actionHandler={};e.console_log=[function(a){console.log.apply(console,a)}],e.console_error=[function(a){console.error.apply(console,a)}],e._unsupported_feature=[function(a){I.notify(a)}],b.onmessage=function(a){var f=a.data;if(f.isReply){var g=f.callbackId;if(f.callbackId in c){var h=c[g];delete c[g],"error"in f?h.reject(f.error):h.resolve(f.data)}else d("Cannot resolve callback "+g)}else if(f.action in e){var i=e[f.action];f.callbackId?Promise.resolve().then(function(){return i[0].call(i[1],f.data)}).then(function(a){b.postMessage({isReply:!0,callbackId:f.callbackId,data:a})},function(a){a instanceof Error&&(a+=""),b.postMessage({isReply:!0,callbackId:f.callbackId,error:a})}):i[0].call(i[1],f.data)}else d("Unknown action from worker: "+f.action)}}function u(a,c,d){var e=new Image;e.onload=function(){d.resolve(a,e)},e.onerror=function(){d.resolve(a,null),b("Error during JPEG image loading")},e.src=c}function v(a,b){var c=document.createElement("canvas");return c.width=a,c.height=b,c}function w(a){a.mozCurrentTransform||(a._originalSave=a.save,a._originalRestore=a.restore,a._originalRotate=a.rotate,a._originalScale=a.scale,a._originalTranslate=a.translate,a._originalTransform=a.transform,a._originalSetTransform=a.setTransform,a._transformMatrix=a._transformMatrix||[1,0,0,1,0,0],a._transformStack=[],Object.defineProperty(a,"mozCurrentTransform",{get:function(){return this._transformMatrix}}),Object.defineProperty(a,"mozCurrentTransformInverse",{get:function(){var a=this._transformMatrix,b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=b*e-c*d,i=c*d-b*e;return[e/h,c/i,d/i,b/h,(e*f-d*g)/i,(c*f-b*g)/h]}}),a.save=function(){var a=this._transformMatrix;this._transformStack.push(a),this._transformMatrix=a.slice(0,6),this._originalSave()},a.restore=function(){var a=this._transformStack.pop();a&&(this._transformMatrix=a,this._originalRestore())},a.translate=function(a,b){var c=this._transformMatrix;c[4]=c[0]*a+c[2]*b+c[4],c[5]=c[1]*a+c[3]*b+c[5],this._originalTranslate(a,b)},a.scale=function(a,b){var c=this._transformMatrix;c[0]=c[0]*a,c[1]=c[1]*a,c[2]=c[2]*b,c[3]=c[3]*b,this._originalScale(a,b)},a.transform=function(b,c,d,e,f,g){var h=this._transformMatrix;this._transformMatrix=[h[0]*b+h[2]*c,h[1]*b+h[3]*c,h[0]*d+h[2]*e,h[1]*d+h[3]*e,h[0]*f+h[2]*g+h[4],h[1]*f+h[3]*g+h[5]],a._originalTransform(b,c,d,e,f,g)},a.setTransform=function(b,c,d,e,f,g){this._transformMatrix=[b,c,d,e,f,g],a._originalSetTransform(b,c,d,e,f,g)},a.rotate=function(a){var b=Math.cos(a),c=Math.sin(a),d=this._transformMatrix;this._transformMatrix=[d[0]*b+d[2]*c,d[1]*b+d[3]*c,d[0]*-c+d[2]*b,d[1]*-c+d[3]*b,d[4],d[5]],this._originalRotate(a)})}function x(a){var b,c,d,e,f=1e3,g=a.width,h=a.height,i=g+1,j=new Uint8Array(i*(h+1)),k=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),l=g+7&-8,m=a.data,n=new Uint8Array(l*h),o=0;for(b=0,e=m.length;e>b;b++)for(var p=128,q=m[b];p>0;)n[o++]=q&p?0:255,p>>=1;var r=0;for(o=0,0!==n[o]&&(j[0]=1,++r),c=1;g>c;c++)n[o]!==n[o+1]&&(j[c]=n[o]?2:1,++r),o++;for(0!==n[o]&&(j[c]=2,++r),b=1;h>b;b++){o=b*l,d=b*i,n[o-l]!==n[o]&&(j[d]=n[o]?1:8,++r);var s=(n[o]?4:0)+(n[o-l]?8:0);for(c=1;g>c;c++)s=(s>>2)+(n[o+1]?4:0)+(n[o-l+1]?8:0),k[s]&&(j[d+c]=k[s],++r),o++;if(n[o-l]!==n[o]&&(j[d+c]=n[o]?2:4,++r),r>f)return null}for(o=l*(h-1),d=b*i,0!==n[o]&&(j[d]=8,++r),c=1;g>c;c++)n[o]!==n[o+1]&&(j[d+c]=n[o]?4:8,++r),o++;if(0!==n[o]&&(j[d+c]=4,++r),r>f)return null;var t=new Int32Array([0,i,-1,0,-i,0,0,0,1]),u=[];for(b=0;r&&h>=b;b++){for(var v=b*i,w=v+g;w>v&&!j[v];)v++;if(v!==w){var x,y=[v%i,b],z=j[v],A=v;do{var B=t[z];do v+=B;while(!j[v]);x=j[v],5!==x&&10!==x?(z=x,j[v]=0):(z=x&51*z>>4,j[v]&=z>>2|z<<2),y.push(v%i),y.push(v/i|0),--r}while(A!==v);u.push(y),--b}}var C=function(a){a.save(),a.scale(1/g,-1/h),a.translate(0,-h),a.beginPath();for(var b=0,c=u.length;c>b;b++){var d=u[b];a.moveTo(d[0],d[1]);for(var e=2,f=d.length;f>e;e+=2)a.lineTo(d[e],d[e+1])}a.fill(),a.beginPath(),a.restore()};return C}function y(a){var b=ma[a[0]];return b||d("Unknown IR type: "+a[0]),b.fromIR(a)}var z="undefined"==typeof window?this:window,A="undefined"==typeof window,B=[.001,0,0,.001,0,0],C={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},D={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},E={WIDGET:1,TEXT:2,LINK:3},F={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5};z.PDFJS||(z.PDFJS={}),z.PDFJS.pdfBug=!1,PDFJS.VERBOSITY_LEVELS={errors:0,warnings:1,infos:5};var G=PDFJS.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91},H=PDFJS.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",smask:"smask",shadingPattern:"shadingPattern",font:"font"},I=PDFJS.UnsupportedManager=function(){var a=[];return{listen:function(b){a.push(b)},notify:function(c){b('Unsupported feature "'+c+'"');for(var d=0,e=a.length;e>d;d++)a[d](c)}}}();PDFJS.isValidUrl=h,PDFJS.shadow=i;var J=PDFJS.LinkTarget={NONE:0,SELF:1,BLANK:2,PARENT:3,TOP:4},K=["","_self","_blank","_parent","_top"];PDFJS.isExternalLinkTargetSet=j;var L=PDFJS.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2},M=function(){function a(a,b){this.name="PasswordException",this.message=a,this.code=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.PasswordException=M;var N=function(){function a(a,b){this.name="UnknownErrorException",this.message=a,this.details=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.UnknownErrorException=N;var O=function(){function a(a){this.name="InvalidPDFException",this.message=a}return a.prototype=new Error,a.constructor=a,a}();PDFJS.InvalidPDFException=O;var P=function(){function a(a){this.name="MissingPDFException",this.message=a}return a.prototype=new Error,a.constructor=a,a}();PDFJS.MissingPDFException=P;var Q=function(){function a(a,b){this.name="UnexpectedResponseException",this.message=a,this.status=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.UnexpectedResponseException=Q;(function(){function a(a){this.message=a}return a.prototype=new Error,a.prototype.name="NotImplementedException",a.constructor=a,a})(),function(){function a(a,b){this.begin=a,this.end=b,this.message="Missing data ["+a+", "+b+")"}return a.prototype=new Error,a.prototype.name="MissingDataException",a.constructor=a,a}(),function(){function a(a){this.message=a}return a.prototype=new Error,a.prototype.name="XRefParseException",a.constructor=a,a}();Object.defineProperty(PDFJS,"isLittleEndian",{configurable:!0,get:function(){return i(PDFJS,"isLittleEndian",n())}}),Object.defineProperty(PDFJS,"hasCanvasTypedArrays",{configurable:!0,get:function(){return i(PDFJS,"hasCanvasTypedArrays",o())}});var R=function(){function a(a,b){this.buffer=a,this.byteLength=a.length,this.length=void 0===b?this.byteLength>>2:b,c(this.length)}function b(a){return{get:function(){var b=this.buffer,c=a<<2;return(b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24)>>>0},set:function(b){var c=this.buffer,d=a<<2;c[d]=255&b,c[d+1]=b>>8&255,c[d+2]=b>>16&255,c[d+3]=b>>>24&255}}}function c(c){for(;c>d;)Object.defineProperty(a.prototype,d,b(d)),d++}a.prototype=Object.create(null);var d=0;return a}(),S=[1,0,0,1,0,0],T=PDFJS.Util=function(){function a(){}var b=["rgb(",0,",",0,",",0,")"];return a.makeCssRgb=function(a,c,d){return b[1]=a,b[3]=c,b[5]=d,b.join("")},a.transform=function(a,b){return[a[0]*b[0]+a[2]*b[1],a[1]*b[0]+a[3]*b[1],a[0]*b[2]+a[2]*b[3],a[1]*b[2]+a[3]*b[3],a[0]*b[4]+a[2]*b[5]+a[4],a[1]*b[4]+a[3]*b[5]+a[5]]},a.applyTransform=function(a,b){var c=a[0]*b[0]+a[1]*b[2]+b[4],d=a[0]*b[1]+a[1]*b[3]+b[5];return[c,d]},a.applyInverseTransform=function(a,b){var c=b[0]*b[3]-b[1]*b[2],d=(a[0]*b[3]-a[1]*b[2]+b[2]*b[5]-b[4]*b[3])/c,e=(-a[0]*b[1]+a[1]*b[0]+b[4]*b[1]-b[5]*b[0])/c;return[d,e]},a.getAxialAlignedBoundingBox=function(b,c){var d=a.applyTransform(b,c),e=a.applyTransform(b.slice(2,4),c),f=a.applyTransform([b[0],b[3]],c),g=a.applyTransform([b[2],b[1]],c);return[Math.min(d[0],e[0],f[0],g[0]),Math.min(d[1],e[1],f[1],g[1]),Math.max(d[0],e[0],f[0],g[0]),Math.max(d[1],e[1],f[1],g[1])]},a.inverseTransform=function(a){var b=a[0]*a[3]-a[1]*a[2];return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b,(a[2]*a[5]-a[4]*a[3])/b,(a[4]*a[1]-a[5]*a[0])/b]},a.apply3dTransform=function(a,b){return[a[0]*b[0]+a[1]*b[1]+a[2]*b[2],a[3]*b[0]+a[4]*b[1]+a[5]*b[2],a[6]*b[0]+a[7]*b[1]+a[8]*b[2]]},a.singularValueDecompose2dScale=function(a){var b=[a[0],a[2],a[1],a[3]],c=a[0]*b[0]+a[1]*b[2],d=a[0]*b[1]+a[1]*b[3],e=a[2]*b[0]+a[3]*b[2],f=a[2]*b[1]+a[3]*b[3],g=(c+f)/2,h=Math.sqrt((c+f)*(c+f)-4*(c*f-e*d))/2,i=g+h||1,j=g-h||1;return[Math.sqrt(i),Math.sqrt(j)]},a.normalizeRect=function(a){var b=a.slice(0);return a[0]>a[2]&&(b[0]=a[2],b[2]=a[0]),a[1]>a[3]&&(b[1]=a[3],b[3]=a[1]),b},a.intersect=function(b,c){function d(a,b){return a-b}var e=[b[0],b[2],c[0],c[2]].sort(d),f=[b[1],b[3],c[1],c[3]].sort(d),g=[];return b=a.normalizeRect(b),c=a.normalizeRect(c),e[0]===b[0]&&e[1]===c[0]||e[0]===c[0]&&e[1]===b[0]?(g[0]=e[1],g[2]=e[2],f[0]===b[1]&&f[1]===c[1]||f[0]===c[1]&&f[1]===b[1]?(g[1]=f[1],g[3]=f[2],g):!1):!1},a.sign=function(a){return 0>a?-1:1},a.appendToArray=function(a,b){Array.prototype.push.apply(a,b)},a.prependToArray=function(a,b){Array.prototype.unshift.apply(a,b)},a.extendObj=function(a,b){for(var c in b)a[c]=b[c]},a.getInheritableProperty=function(a,b){for(;a&&!a.has(b);)a=a.get("Parent");return a?a.get(b):null},a.inherit=function(a,b,c){a.prototype=Object.create(b.prototype),a.prototype.constructor=a;for(var d in c)a.prototype[d]=c[d]},a.loadScript=function(a,b){var c=document.createElement("script"),d=!1;c.setAttribute("src",a),b&&(c.onload=function(){d||b(),d=!0}),document.getElementsByTagName("head")[0].appendChild(c)},a}();PDFJS.PageViewport=function(){function a(a,b,c,d,e,f){this.viewBox=a,this.scale=b,this.rotation=c,this.offsetX=d,this.offsetY=e;var g,h,i,j,k=(a[2]+a[0])/2,l=(a[3]+a[1])/2;switch(c%=360,c=0>c?c+360:c){case 180:g=-1,h=0,i=0,j=1;break;case 90:g=0,h=1,i=1,j=0;break;case 270:g=0,h=-1,i=-1,j=0;break;default:g=1,h=0,i=0,j=-1}f&&(i=-i,j=-j);var m,n,o,p;0===g?(m=Math.abs(l-a[1])*b+d,n=Math.abs(k-a[0])*b+e,o=Math.abs(a[3]-a[1])*b,p=Math.abs(a[2]-a[0])*b):(m=Math.abs(k-a[0])*b+d,n=Math.abs(l-a[1])*b+e,o=Math.abs(a[2]-a[0])*b,p=Math.abs(a[3]-a[1])*b),this.transform=[g*b,h*b,i*b,j*b,m-g*b*k-i*b*l,n-h*b*k-j*b*l],this.width=o,this.height=p,this.fontScale=b}return a.prototype={clone:function(b){b=b||{};var c="scale"in b?b.scale:this.scale,d="rotation"in b?b.rotation:this.rotation;return new a(this.viewBox.slice(),c,d,this.offsetX,this.offsetY,b.dontFlip)},convertToViewportPoint:function(a,b){return T.applyTransform([a,b],this.transform)},convertToViewportRectangle:function(a){var b=T.applyTransform([a[0],a[1]],this.transform),c=T.applyTransform([a[2],a[3]],this.transform);return[b[0],b[1],c[0],c[1]]},convertToPdfPoint:function(a,b){return T.applyInverseTransform([a,b],this.transform)}},a}();PDFJS.createPromiseCapability=s,function(){function a(a){this._status=c,this._handlers=[];try{a.call(this,this._resolve.bind(this),this._reject.bind(this))}catch(b){this._reject(b)}}if(z.Promise)return"function"!=typeof z.Promise.all&&(z.Promise.all=function(a){var b,c,d=0,e=[],f=new z.Promise(function(a,d){b=a,c=d});return a.forEach(function(a,f){d++,a.then(function(a){e[f]=a,d--,0===d&&b(e)},c)}),0===d&&b(e),f}),"function"!=typeof z.Promise.resolve&&(z.Promise.resolve=function(a){return new z.Promise(function(b){b(a)})}),"function"!=typeof z.Promise.reject&&(z.Promise.reject=function(a){return new z.Promise(function(b,c){c(a)})}),void("function"!=typeof z.Promise.prototype["catch"]&&(z.Promise.prototype["catch"]=function(a){return z.Promise.prototype.then(void 0,a)}));var c=0,d=1,e=2,f=500,g={handlers:[],running:!1,unhandledRejections:[],pendingRejectionCheck:!1,scheduleHandlers:function(a){a._status!==c&&(this.handlers=this.handlers.concat(a._handlers),a._handlers=[],this.running||(this.running=!0, +setTimeout(this.runHandlers.bind(this),0)))},runHandlers:function(){for(var a=1,b=Date.now()+a;this.handlers.length>0;){var c=this.handlers.shift(),f=c.thisPromise._status,g=c.thisPromise._value;try{f===d?"function"==typeof c.onResolve&&(g=c.onResolve(g)):"function"==typeof c.onReject&&(g=c.onReject(g),f=d,c.thisPromise._unhandledRejection&&this.removeUnhandeledRejection(c.thisPromise))}catch(h){f=e,g=h}if(c.nextPromise._updateStatus(f,g),Date.now()>=b)break}return this.handlers.length>0?void setTimeout(this.runHandlers.bind(this),0):void(this.running=!1)},addUnhandledRejection:function(a){this.unhandledRejections.push({promise:a,time:Date.now()}),this.scheduleRejectionCheck()},removeUnhandeledRejection:function(a){a._unhandledRejection=!1;for(var b=0;bf){var d=this.unhandledRejections[c].promise._value,e="Unhandled rejection: "+d;d.stack&&(e+="\n"+d.stack),b(e),this.unhandledRejections.splice(c),c--}this.unhandledRejections.length&&this.scheduleRejectionCheck()}.bind(this),f))}};a.all=function(b){function c(a){g._status!==e&&(i=[],f(a))}var d,f,g=new a(function(a,b){d=a,f=b}),h=b.length,i=[];if(0===h)return d(i),g;for(var j=0,k=b.length;k>j;++j){var l=b[j],m=function(a){return function(b){g._status!==e&&(i[a]=b,h--,0===h&&d(i))}}(j);a.isPromise(l)?l.then(m,c):m(l)}return g},a.isPromise=function(a){return a&&"function"==typeof a.then},a.resolve=function(b){return new a(function(a){a(b)})},a.reject=function(b){return new a(function(a,c){c(b)})},a.prototype={_status:null,_value:null,_handlers:null,_unhandledRejection:null,_updateStatus:function(b,c){if(this._status!==d&&this._status!==e){if(b===d&&a.isPromise(c))return void c.then(this._updateStatus.bind(this,d),this._updateStatus.bind(this,e));this._status=b,this._value=c,b===e&&0===this._handlers.length&&(this._unhandledRejection=!0,g.addUnhandledRejection(this)),g.scheduleHandlers(this)}},_resolve:function(a){this._updateStatus(d,a)},_reject:function(a){this._updateStatus(e,a)},then:function(b,c){var d=new a(function(a,b){this.resolve=a,this.reject=b});return this._handlers.push({thisPromise:this,onResolve:b,onReject:c,nextPromise:d}),g.scheduleHandlers(this),d},"catch":function(a){return this.then(void 0,a)}},z.Promise=a}();var U=function(){function a(a,b,c){for(;a.lengthb;++b){var g=d[b].name;g.length>f&&(f=g.length)}for(b=0,c=d.length;c>b;++b){var h=d[b],i=h.end-h.start;e+=a(h.name," ",f)+" "+i+"ms\n"}return e}},c}();PDFJS.createBlob=function(a,b){if("undefined"!=typeof Blob)return new Blob([a],{type:b});var c=new MozBlobBuilder;return c.append(a),c.getBlob(b)},PDFJS.createObjectURL=function(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return function(b,c){if(!PDFJS.disableCreateObjectURL&&"undefined"!=typeof URL&&URL.createObjectURL){var d=PDFJS.createBlob(b,c);return URL.createObjectURL(d)}for(var e="data:"+c+";base64,",f=0,g=b.length;g>f;f+=3){var h=255&b[f],i=255&b[f+1],j=255&b[f+2],k=h>>2,l=(3&h)<<4|i>>4,m=g>f+1?(15&i)<<2|j>>6:64,n=g>f+2?63&j:64;e+=a[k]+a[l]+a[m]+a[n]}return e}}(),t.prototype={on:function(a,b,c){var e=this.actionHandler;e[a]&&d('There is already an actionName called "'+a+'"'),e[a]=[b,c]},send:function(a,b,c){var d={action:a,data:b};this.postMessage(d,c)},sendWithPromise:function(a,b,c){var d=this.callbackIndex++,e={action:a,data:b,callbackId:d},f=s();this.callbacksCapabilities[d]=f;try{this.postMessage(e,c)}catch(g){f.reject(g)}return f.promise},postMessage:function(a,b){b&&this.postMessageTransfers?this.comObj.postMessage(a,b):this.comObj.postMessage(a)}},PDFJS.maxImageSize=void 0===PDFJS.maxImageSize?-1:PDFJS.maxImageSize,PDFJS.cMapUrl=void 0===PDFJS.cMapUrl?null:PDFJS.cMapUrl,PDFJS.cMapPacked=void 0===PDFJS.cMapPacked?!1:PDFJS.cMapPacked,PDFJS.disableFontFace=void 0===PDFJS.disableFontFace?!1:PDFJS.disableFontFace,PDFJS.imageResourcesPath=void 0===PDFJS.imageResourcesPath?"":PDFJS.imageResourcesPath,PDFJS.disableWorker=void 0===PDFJS.disableWorker?!1:PDFJS.disableWorker,PDFJS.workerSrc=void 0===PDFJS.workerSrc?null:PDFJS.workerSrc,PDFJS.disableRange=void 0===PDFJS.disableRange?!1:PDFJS.disableRange,PDFJS.disableStream=void 0===PDFJS.disableStream?!1:PDFJS.disableStream,PDFJS.disableAutoFetch=void 0===PDFJS.disableAutoFetch?!1:PDFJS.disableAutoFetch,PDFJS.pdfBug=void 0===PDFJS.pdfBug?!1:PDFJS.pdfBug,PDFJS.postMessageTransfers=void 0===PDFJS.postMessageTransfers?!0:PDFJS.postMessageTransfers,PDFJS.disableCreateObjectURL=void 0===PDFJS.disableCreateObjectURL?!1:PDFJS.disableCreateObjectURL,PDFJS.disableWebGL=void 0===PDFJS.disableWebGL?!0:PDFJS.disableWebGL,PDFJS.disableFullscreen=void 0===PDFJS.disableFullscreen?!1:PDFJS.disableFullscreen,PDFJS.useOnlyCssZoom=void 0===PDFJS.useOnlyCssZoom?!1:PDFJS.useOnlyCssZoom,PDFJS.verbosity=void 0===PDFJS.verbosity?PDFJS.VERBOSITY_LEVELS.warnings:PDFJS.verbosity,PDFJS.maxCanvasPixels=void 0===PDFJS.maxCanvasPixels?16777216:PDFJS.maxCanvasPixels,PDFJS.openExternalLinksInNewWindow=void 0===PDFJS.openExternalLinksInNewWindow?!1:PDFJS.openExternalLinksInNewWindow,PDFJS.externalLinkTarget=void 0===PDFJS.externalLinkTarget?PDFJS.LinkTarget.NONE:PDFJS.externalLinkTarget,PDFJS.isEvalSupported=void 0===PDFJS.isEvalSupported?!0:PDFJS.isEvalSupported,PDFJS.getDocument=function(a,b,e,f){var h=new V;arguments.length>1&&c("getDocument is called with pdfDataRangeTransport, passwordCallback or progressCallback argument"),b&&(b instanceof W||(b=Object.create(b),b.length=a.length,b.initialData=a.initialData,b.abort||(b.abort=function(){})),a=Object.create(a),a.range=b),h.onPassword=e||null,h.onProgress=f||null;var i,j,k;"string"==typeof a?k={url:a}:r(a)?k={data:a}:a instanceof W?k={range:a}:("object"!=typeof a&&d("Invalid parameter in getDocument, need either Uint8Array, string or a parameter object"),a.url||a.data||a.range||d("Invalid parameter object: need either .data, .range or .url"),k=a);var m={};for(var n in k)if("url"!==n||"undefined"==typeof window){if("range"!==n)if("data"!==n||k[n]instanceof Uint8Array)m[n]=k[n];else{var o=k[n];"string"==typeof o?m[n]=l(o):"object"!=typeof o||null===o||isNaN(o.length)?r(o)?m[n]=new Uint8Array(o):d("Invalid PDF binary data: either typed array, string or array-like object is expected in the data property."):m[n]=new Uint8Array(o)}}else m[n]=g(window.location.href,k[n]);return i=s(),j=new Z(i,k.range),i.promise.then(function(){j.fetchDocument(h,m)}),h._transport=j,h};var V=function(){function a(){this._capability=s(),this._transport=null,this.onPassword=null,this.onProgress=null}return a.prototype={get promise(){return this._capability.promise},destroy:function(){return this._transport.destroy()},then:function(a,b){return this.promise.then.apply(this.promise,arguments)}},a}(),W=function(){function a(a,b){this.length=a,this.initialData=b,this._rangeListeners=[],this._progressListeners=[],this._progressiveReadListeners=[],this._readyCapability=s()}return a.prototype={addRangeListener:function(a){this._rangeListeners.push(a)},addProgressListener:function(a){this._progressListeners.push(a)},addProgressiveReadListener:function(a){this._progressiveReadListeners.push(a)},onDataRange:function(a,b){for(var c=this._rangeListeners,d=0,e=c.length;e>d;++d)c[d](a,b)},onDataProgress:function(a){this._readyCapability.promise.then(function(){for(var b=this._progressListeners,c=0,d=b.length;d>c;++c)b[c](a)}.bind(this))},onDataProgressiveRead:function(a){this._readyCapability.promise.then(function(){for(var b=this._progressiveReadListeners,c=0,d=b.length;d>c;++c)b[c](a)}.bind(this))},transportReady:function(){this._readyCapability.resolve()},requestDataRange:function(a,b){throw new Error("Abstract method PDFDataRangeTransport.requestDataRange")},abort:function(){}},a}();PDFJS.PDFDataRangeTransport=W;var X=function(){function a(a,b,c){this.pdfInfo=a,this.transport=b,this.loadingTask=c}return a.prototype={get numPages(){return this.pdfInfo.numPages},get fingerprint(){return this.pdfInfo.fingerprint},getPage:function(a){return this.transport.getPage(a)},getPageIndex:function(a){return this.transport.getPageIndex(a)},getDestinations:function(){return this.transport.getDestinations()},getDestination:function(a){return this.transport.getDestination(a)},getAttachments:function(){return this.transport.getAttachments()},getJavaScript:function(){return this.transport.getJavaScript()},getOutline:function(){return this.transport.getOutline()},getMetadata:function(){return this.transport.getMetadata()},getData:function(){return this.transport.getData()},getDownloadInfo:function(){return this.transport.downloadInfoCapability.promise},getStats:function(){return this.transport.getStats()},cleanup:function(){this.transport.startCleanup()},destroy:function(){return this.transport.destroy()}},a}(),Y=function(){function a(a,b,c){this.pageIndex=a,this.pageInfo=b,this.transport=c,this.stats=new U,this.stats.enabled=!!z.PDFJS.enableStats,this.commonObjs=c.commonObjs,this.objs=new $,this.cleanupAfterRender=!1,this.pendingCleanup=!1,this.intentStates={},this.destroyed=!1}return a.prototype={get pageNumber(){return this.pageIndex+1},get rotate(){return this.pageInfo.rotate},get ref(){return this.pageInfo.ref},get view(){return this.pageInfo.view},getViewport:function(a,b){return arguments.length<2&&(b=this.rotate),new PDFJS.PageViewport(this.view,a,b,0,0)},getAnnotations:function(){return this.annotationsPromise||(this.annotationsPromise=this.transport.getAnnotations(this.pageIndex)),this.annotationsPromise},render:function(a){function b(a){var b=f.renderTasks.indexOf(g);b>=0&&f.renderTasks.splice(b,1),i.cleanupAfterRender&&(i.pendingCleanup=!0),i._tryCleanup(),a?g.capability.reject(a):g.capability.resolve(),d.timeEnd("Rendering"),d.timeEnd("Overall")}var d=this.stats;d.time("Overall"),this.pendingCleanup=!1;var e="print"===a.intent?"print":"display";this.intentStates[e]||(this.intentStates[e]={});var f=this.intentStates[e];f.displayReadyCapability||(f.receivingOperatorList=!0,f.displayReadyCapability=s(),f.operatorList={fnArray:[],argsArray:[],lastChunk:!1},this.stats.time("Page Request"),this.transport.messageHandler.send("RenderPageRequest",{pageIndex:this.pageNumber-1,intent:e}));var g=new aa(b,a,this.objs,this.commonObjs,f.operatorList,this.pageNumber);g.useRequestAnimationFrame="print"!==e,f.renderTasks||(f.renderTasks=[]),f.renderTasks.push(g);var h=g.task;a.continueCallback&&(c("render is used with continueCallback parameter"),h.onContinue=a.continueCallback);var i=this;return f.displayReadyCapability.promise.then(function(a){return i.pendingCleanup?void b():(d.time("Rendering"),g.initalizeGraphics(a),void g.operatorListChanged())},function(a){b(a)}),h},getOperatorList:function(){function a(){c.operatorList.lastChunk&&c.opListReadCapability.resolve(c.operatorList)}var b="oplist";this.intentStates[b]||(this.intentStates[b]={});var c=this.intentStates[b];if(!c.opListReadCapability){var d={};d.operatorListChanged=a,c.receivingOperatorList=!0,c.opListReadCapability=s(),c.renderTasks=[],c.renderTasks.push(d),c.operatorList={fnArray:[],argsArray:[],lastChunk:!1},this.transport.messageHandler.send("RenderPageRequest",{pageIndex:this.pageIndex,intent:b})}return c.opListReadCapability.promise},getTextContent:function(){return this.transport.messageHandler.sendWithPromise("GetTextContent",{pageIndex:this.pageNumber-1})},_destroy:function(){this.destroyed=!0,this.transport.pageCache[this.pageIndex]=null;var a=[];return Object.keys(this.intentStates).forEach(function(b){var c=this.intentStates[b];c.renderTasks.forEach(function(b){var c=b.capability.promise["catch"](function(){});a.push(c),b.cancel()})},this),this.objs.clear(),this.annotationsPromise=null,this.pendingCleanup=!1,Promise.all(a)},destroy:function(){c("page destroy method, use cleanup() instead"),this.cleanup()},cleanup:function(){this.pendingCleanup=!0,this._tryCleanup()},_tryCleanup:function(){this.pendingCleanup&&!Object.keys(this.intentStates).some(function(a){var b=this.intentStates[a];return 0!==b.renderTasks.length||b.receivingOperatorList},this)&&(Object.keys(this.intentStates).forEach(function(a){delete this.intentStates[a]},this),this.objs.clear(),this.annotationsPromise=null,this.pendingCleanup=!1)},_startRenderPage:function(a,b){var c=this.intentStates[b];c.displayReadyCapability&&c.displayReadyCapability.resolve(a)},_renderPageChunk:function(a,b){var c,d,e=this.intentStates[b];for(c=0,d=a.length;d>c;c++)e.operatorList.fnArray.push(a.fnArray[c]),e.operatorList.argsArray.push(a.argsArray[c]);for(e.operatorList.lastChunk=a.lastChunk,c=0;ch&&(g.cleanupAfterRender=!0);break;default:d("Got unknown object type "+f)}},this),a.on("DocProgress",function(a){var b=this.loadingTask;b.onProgress&&b.onProgress({loaded:a.loaded,total:a.total})},this),a.on("PageError",function(a){var b=this.pageCache[a.pageNum-1],c=b.intentStates[a.intent];c.displayReadyCapability?c.displayReadyCapability.reject(a.error):d(a.error)},this),a.on("JpegDecode",function(a){var b=a[0],c=a[1];return 3!==c&&1!==c?Promise.reject(new Error("Only 3 components or 1 component can be returned")):new Promise(function(a,d){var e=new Image;e.onload=function(){var b=e.width,d=e.height,f=b*d,g=4*f,h=new Uint8Array(f*c),i=v(b,d),j=i.getContext("2d");j.drawImage(e,0,0);var k,l,m=j.getImageData(0,0,b,d).data;if(3===c)for(k=0,l=0;g>k;k+=4,l+=3)h[l]=m[k],h[l+1]=m[k+1],h[l+2]=m[k+2];else if(1===c)for(k=0,l=0;g>k;k+=4,l++)h[l]=m[k];a({data:h,width:b,height:d})},e.onerror=function(){d(new Error("JpegDecode failed to load image"))},e.src=b})})},fetchDocument:function(a,b){return this.destroyed?(a._capability.reject(new Error("Loading aborted")),void this.destroyCapability.resolve()):(this.loadingTask=a,b.disableAutoFetch=PDFJS.disableAutoFetch,b.disableStream=PDFJS.disableStream,b.chunkedViewerLoading=!!this.pdfDataRangeTransport,this.pdfDataRangeTransport&&(b.length=this.pdfDataRangeTransport.length,b.initialData=this.pdfDataRangeTransport.initialData),void this.messageHandler.send("GetDocRequest",{source:b,disableRange:PDFJS.disableRange,maxImageSize:PDFJS.maxImageSize,cMapUrl:PDFJS.cMapUrl,cMapPacked:PDFJS.cMapPacked,disableFontFace:PDFJS.disableFontFace,disableCreateObjectURL:PDFJS.disableCreateObjectURL,verbosity:PDFJS.verbosity}))},getData:function(){return this.messageHandler.sendWithPromise("GetData",null)},getPage:function(a,b){if(0>=a||a>this.numPages||(0|a)!==a)return Promise.reject(new Error("Invalid page request"));var c=a-1;if(c in this.pagePromises)return this.pagePromises[c];var d=this.messageHandler.sendWithPromise("GetPage",{pageIndex:c}).then(function(a){if(this.destroyed)throw new Error("Transport destroyed");var b=new Y(c,a,this);return this.pageCache[c]=b,b}.bind(this));return this.pagePromises[c]=d,d},getPageIndex:function(a){return this.messageHandler.sendWithPromise("GetPageIndex",{ref:a})},getAnnotations:function(a){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:a})},getDestinations:function(){return this.messageHandler.sendWithPromise("GetDestinations",null)},getDestination:function(a){return this.messageHandler.sendWithPromise("GetDestination",{id:a})},getAttachments:function(){return this.messageHandler.sendWithPromise("GetAttachments",null)},getJavaScript:function(){return this.messageHandler.sendWithPromise("GetJavaScript",null)},getOutline:function(){return this.messageHandler.sendWithPromise("GetOutline",null)},getMetadata:function(){return this.messageHandler.sendWithPromise("GetMetadata",null).then(function(a){return{info:a[0],metadata:a[1]?new PDFJS.Metadata(a[1]):null}})},getStats:function(){return this.messageHandler.sendWithPromise("GetStats",null)},startCleanup:function(){this.messageHandler.sendWithPromise("Cleanup",null).then(function(){for(var a=0,b=this.pageCache.length;b>a;a++){var c=this.pageCache[a];c&&c.cleanup()}this.commonObjs.clear(),pa.clear()}.bind(this))}},c}(),$=function(){function a(){this.objs={}}return a.prototype={ensureObj:function(a){if(this.objs[a])return this.objs[a];var b={capability:s(),data:null,resolved:!1};return this.objs[a]=b,b},get:function(a,b){if(b)return this.ensureObj(a).capability.promise.then(b),null;var c=this.objs[a];return c&&c.resolved||d("Requesting object that isn't resolved yet "+a),c.data},resolve:function(a,b){var c=this.ensureObj(a);c.resolved=!0,c.data=b,c.capability.resolve(b)},isResolved:function(a){var b=this.objs;return b[a]?b[a].resolved:!1},hasData:function(a){return this.isResolved(a)},getData:function(a){var b=this.objs;return b[a]&&b[a].resolved?b[a].data:null},clear:function(){this.objs={}}},a}(),_=function(){function a(a){this._internalRenderTask=a,this.onContinue=null}return a.prototype={get promise(){return this._internalRenderTask.capability.promise},cancel:function(){this._internalRenderTask.cancel()},then:function(a,b){return this.promise.then.apply(this.promise,arguments)}},a}(),aa=function(){function a(a,b,c,d,e,f){this.callback=a,this.params=b,this.objs=c,this.commonObjs=d,this.operatorListIdx=null,this.operatorList=e,this.pageNumber=f,this.running=!1,this.graphicsReadyCallback=null,this.graphicsReady=!1,this.useRequestAnimationFrame=!1,this.cancelled=!1,this.capability=s(),this.task=new _(this),this._continueBound=this._continue.bind(this),this._scheduleNextBound=this._scheduleNext.bind(this),this._nextBound=this._next.bind(this)}return a.prototype={initalizeGraphics:function(a){if(!this.cancelled){PDFJS.pdfBug&&"StepperManager"in z&&z.StepperManager.enabled&&(this.stepper=z.StepperManager.create(this.pageNumber-1),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());var b=this.params;this.gfx=new ka(b.canvasContext,this.commonObjs,this.objs,b.imageLayer),this.gfx.beginDrawing(b.viewport,a),this.operatorListIdx=0,this.graphicsReady=!0,this.graphicsReadyCallback&&this.graphicsReadyCallback()}},cancel:function(){this.running=!1,this.cancelled=!0,this.callback("cancelled")},operatorListChanged:function(){return this.graphicsReady?(this.stepper&&this.stepper.updateOperatorList(this.operatorList),void(this.running||this._continue())):void(this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound))},_continue:function(){this.running=!0,this.cancelled||(this.task.onContinue?this.task.onContinue.call(this.task,this._scheduleNextBound):this._scheduleNext())},_scheduleNext:function(){this.useRequestAnimationFrame?window.requestAnimationFrame(this._nextBound):Promise.resolve(void 0).then(this._nextBound)},_next:function(){this.cancelled||(this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper),this.operatorListIdx===this.operatorList.argsArray.length&&(this.running=!1,this.operatorList.lastChunk&&(this.gfx.endDrawing(),this.callback())))}},a}(),ba=(PDFJS.Metadata=function(){function a(a){return a.replace(/>\\376\\377([^<]+)/g,function(a,b){for(var c=b.replace(/\\([0-3])([0-7])([0-7])/g,function(a,b,c,d){return String.fromCharCode(64*b+8*c+1*d)}),d="",e=0;e"+d})}function b(b){if("string"==typeof b){b=a(b);var c=new DOMParser;b=c.parseFromString(b,"application/xml")}else b instanceof Document||d("Metadata: Invalid metadata object");this.metaDocument=b,this.metadata={},this.parse()}return b.prototype={parse:function(){var a=this.metaDocument,b=a.documentElement;if("rdf:rdf"!==b.nodeName.toLowerCase())for(b=b.firstChild;b&&"rdf:rdf"!==b.nodeName.toLowerCase();)b=b.nextSibling;var c=b?b.nodeName.toLowerCase():null;if(b&&"rdf:rdf"===c&&b.hasChildNodes()){var d,e,f,g,h,i,j,k=b.childNodes;for(g=0,i=k.length;i>g;g++)if(d=k[g],"rdf:description"===d.nodeName.toLowerCase())for(h=0,j=d.childNodes.length;j>h;h++)"#text"!==d.childNodes[h].nodeName.toLowerCase()&&(e=d.childNodes[h],f=e.nodeName.toLowerCase(),this.metadata[f]=e.textContent.trim())}},get:function(a){return this.metadata[a]||null},has:function(a){return"undefined"!=typeof this.metadata[a]}},b}(),16),ca=100,da=4096,ea=.65,fa=!0,ga=1e3,ha=16,ia=function(){var a={};return{getCanvas:function(b,c,d,e){var f;if(void 0!==a[b])f=a[b],f.canvas.width=c,f.canvas.height=d,f.context.setTransform(1,0,0,1,0,0);else{var g=v(c,d),h=g.getContext("2d");e&&w(h),a[b]=f={canvas:g,context:h}}return f},clear:function(){for(var b in a){var c=a[b];c.canvas.width=0,c.canvas.height=0,delete a[b]}}}}(),ja=function(){function a(a){this.alphaIsShape=!1,this.fontSize=0,this.fontSizeScale=1,this.textMatrix=S,this.textMatrixScale=1,this.fontMatrix=B,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRenderingMode=C.FILL,this.textRise=0,this.fillColor="#000000",this.strokeColor="#000000",this.patternFill=!1,this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.activeSMask=null,this.old=a}return a.prototype={clone:function(){return Object.create(this)},setCurrentPoint:function(a,b){this.x=a,this.y=b}},a}(),ka=function(){function c(a,b,c,d){this.ctx=a,this.current=new ja,this.stateStack=[],this.pendingClip=null,this.pendingEOFill=!1,this.res=null,this.xobjs=null,this.commonObjs=b,this.objs=c,this.imageLayer=d,this.groupStack=[],this.processingType3=null,this.baseTransform=null,this.baseTransformStack=[],this.groupLevel=0,this.smaskStack=[],this.smaskCounter=0,this.tempSMask=null,a&&w(a),this.cachedGetSinglePixelWidth=null}function e(a,b){if("undefined"!=typeof ImageData&&b instanceof ImageData)return void a.putImageData(b,0,0);var c,e,f,g,h,i=b.height,j=b.width,k=i%ha,l=(i-k)/ha,m=0===k?l:l+1,n=a.createImageData(j,ha),o=0,p=b.data,q=n.data;if(b.kind===D.GRAYSCALE_1BPP){var r=p.byteLength,s=PDFJS.hasCanvasTypedArrays?new Uint32Array(q.buffer):new R(q),t=s.length,u=j+7>>3,v=4294967295,w=PDFJS.isLittleEndian||!PDFJS.hasCanvasTypedArrays?4278190080:255;for(e=0;m>e;e++){for(g=l>e?ha:k,c=0,f=0;g>f;f++){for(var x=r-o,y=0,z=x>u?j:8*x-7,A=-8&z,B=0,C=0;A>y;y+=8)C=p[o++],s[c++]=128&C?v:w,s[c++]=64&C?v:w,s[c++]=32&C?v:w,s[c++]=16&C?v:w,s[c++]=8&C?v:w,s[c++]=4&C?v:w,s[c++]=2&C?v:w,s[c++]=1&C?v:w;for(;z>y;y++)0===B&&(C=p[o++],B=128),s[c++]=C&B?v:w,B>>=1}for(;t>c;)s[c++]=0;a.putImageData(n,0,e*ha)}}else if(b.kind===D.RGBA_32BPP){for(f=0,h=j*ha*4,e=0;l>e;e++)q.set(p.subarray(o,o+h)),o+=h,a.putImageData(n,0,f),f+=ha;m>e&&(h=j*k*4,q.set(p.subarray(o,o+h)),a.putImageData(n,0,f))}else if(b.kind===D.RGB_24BPP)for(g=ha,h=j*g,e=0;m>e;e++){for(e>=l&&(g=k,h=j*g),c=0,f=h;f--;)q[c++]=p[o++],q[c++]=p[o++],q[c++]=p[o++],q[c++]=255;a.putImageData(n,0,e*ha)}else d("bad image kind: "+b.kind)}function g(a,b){for(var c=b.height,d=b.width,e=c%ha,f=(c-e)/ha,g=0===e?f:f+1,h=a.createImageData(d,ha),i=0,j=b.data,k=h.data,l=0;g>l;l++){for(var m=f>l?ha:e,n=3,o=0;m>o;o++)for(var p=0,q=0;d>q;q++){if(!p){var r=j[i++];p=128}k[n]=r&p?0:255,n+=4,p>>=1}a.putImageData(h,0,l*ha)}}function h(a,b){for(var c=["strokeStyle","fillStyle","fillRule","globalAlpha","lineWidth","lineCap","lineJoin","miterLimit","globalCompositeOperation","font"],d=0,e=c.length;e>d;d++){var f=c[d];void 0!==a[f]&&(b[f]=a[f])}void 0!==a.setLineDash?(b.setLineDash(a.getLineDash()),b.lineDashOffset=a.lineDashOffset):void 0!==a.mozDashOffset&&(b.mozDash=a.mozDash,b.mozDashOffset=a.mozDashOffset)}function j(a,b,c,d){for(var e=a.length,f=3;e>f;f+=4){var g=a[f];if(0===g)a[f-3]=b,a[f-2]=c,a[f-1]=d;else if(255>g){var h=255-g;a[f-3]=a[f-3]*g+b*h>>8,a[f-2]=a[f-2]*g+c*h>>8,a[f-1]=a[f-1]*g+d*h>>8}}}function k(a,b){for(var c=a.length,d=1/255,e=3;c>e;e+=4){var f=a[e];b[e]=b[e]*f*d|0}}function l(a,b){for(var c=a.length,d=3;c>d;d+=4){var e=77*a[d-3]+152*a[d-2]+28*a[d-1];b[d]=b[d]*e>>16}}function m(a,b,c,d,e,f){var g,h=!!f,i=h?f[0]:0,m=h?f[1]:0,n=h?f[2]:0;g="Luminosity"===e?l:k;for(var o=1048576,p=Math.min(d,Math.ceil(o/c)),q=0;d>q;q+=p){var r=Math.min(p,d-q),s=a.getImageData(0,q,c,r),t=b.getImageData(0,q,c,r);h&&j(s.data,i,m,n),g(s.data,t.data),a.putImageData(t,0,q)}}function n(a,b,c){var d=b.canvas,e=b.context;a.setTransform(b.scaleX,0,0,b.scaleY,b.offsetX,b.offsetY);var f=b.backdrop||null;if(la.isEnabled){var g=la.composeSMask(c.canvas,d,{subtype:b.subtype,backdrop:f});return a.setTransform(1,0,0,1,0,0),void a.drawImage(g,b.offsetX,b.offsetY)}m(e,c,d.width,d.height,b.subtype,f),a.drawImage(d,0,0)}var o=15,r=10,s=["butt","round","square"],t=["miter","round","bevel"],u={},v={};c.prototype={beginDrawing:function(a,b){var c=this.ctx.canvas.width,d=this.ctx.canvas.height;b?this.ctx.clearRect(0,0,c,d):(this.ctx.mozOpaque=!0,this.ctx.save(),this.ctx.fillStyle="rgb(255, 255, 255)",this.ctx.fillRect(0,0,c,d),this.ctx.restore());var e=a.transform;this.ctx.save(),this.ctx.transform.apply(this.ctx,e),this.baseTransform=this.ctx.mozCurrentTransform.slice(),this.imageLayer&&this.imageLayer.beginLayout()},executeOperatorList:function(a,b,c,d){var e=a.argsArray,f=a.fnArray,g=b||0,h=e.length;if(h===g)return g;for(var i,j=h-g>r&&"function"==typeof c,k=j?Date.now()+o:0,l=0,m=this.commonObjs,n=this.objs;;){if(void 0!==d&&g===d.nextBreakPoint)return d.breakIt(g,c),g;if(i=f[g],i!==G.dependency)this[i].apply(this,e[g]);else for(var p=e[g],q=0,s=p.length;s>q;q++){var t=p[q],u="g"===t[0]&&"_"===t[1],v=u?m:n;if(!v.isResolved(t))return v.get(t,c),g}if(g++,g===h)return g;if(j&&++l>r){if(Date.now()>k)return c(),g;l=0}}},endDrawing:function(){this.ctx.restore(),ia.clear(),la.clear(),this.imageLayer&&this.imageLayer.endLayout()},setLineWidth:function(a){this.current.lineWidth=a,this.ctx.lineWidth=a},setLineCap:function(a){this.ctx.lineCap=s[a]},setLineJoin:function(a){this.ctx.lineJoin=t[a]},setMiterLimit:function(a){this.ctx.miterLimit=a},setDash:function(a,b){var c=this.ctx;void 0!==c.setLineDash?(c.setLineDash(a),c.lineDashOffset=b):(c.mozDash=a,c.mozDashOffset=b)},setRenderingIntent:function(a){},setFlatness:function(a){},setGState:function(a){for(var c=0,d=a.length;d>c;c++){var e=a[c],f=e[0],g=e[1];switch(f){case"LW":this.setLineWidth(g);break;case"LC":this.setLineCap(g);break;case"LJ":this.setLineJoin(g);break;case"ML":this.setMiterLimit(g);break;case"D":this.setDash(g[0],g[1]);break;case"RI":this.setRenderingIntent(g);break;case"FL":this.setFlatness(g);break;case"Font":this.setFont(g[0],g[1]);break;case"CA":this.current.strokeAlpha=e[1];break;case"ca":this.current.fillAlpha=e[1],this.ctx.globalAlpha=e[1];break;case"BM":if(g&&g.name&&"Normal"!==g.name){var h=g.name.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()}).substring(1);this.ctx.globalCompositeOperation=h,this.ctx.globalCompositeOperation!==h&&b('globalCompositeOperation "'+h+'" is not supported')}else this.ctx.globalCompositeOperation="source-over";break;case"SMask":this.current.activeSMask&&this.endSMaskGroup(),this.current.activeSMask=g?this.tempSMask:null, +this.current.activeSMask&&this.beginSMaskGroup(),this.tempSMask=null}}},beginSMaskGroup:function(){var a=this.current.activeSMask,b=a.canvas.width,c=a.canvas.height,d="smaskGroupAt"+this.groupLevel,e=ia.getCanvas(d,b,c,!0),f=this.ctx,g=f.mozCurrentTransform;this.ctx.save();var i=e.context;i.scale(1/a.scaleX,1/a.scaleY),i.translate(-a.offsetX,-a.offsetY),i.transform.apply(i,g),h(f,i),this.ctx=i,this.setGState([["BM","Normal"],["ca",1],["CA",1]]),this.groupStack.push(f),this.groupLevel++},endSMaskGroup:function(){var a=this.ctx;this.groupLevel--,this.ctx=this.groupStack.pop(),n(this.ctx,this.current.activeSMask,a),this.ctx.restore()},save:function(){this.ctx.save();var a=this.current;this.stateStack.push(a),this.current=a.clone(),this.current.activeSMask=null},restore:function(){0!==this.stateStack.length&&(null!==this.current.activeSMask&&this.endSMaskGroup(),this.current=this.stateStack.pop(),this.ctx.restore(),this.pendingClip=null,this.cachedGetSinglePixelWidth=null)},transform:function(a,b,c,d,e,f){this.ctx.transform(a,b,c,d,e,f),this.cachedGetSinglePixelWidth=null},constructPath:function(a,b){for(var c=this.ctx,d=this.current,e=d.x,f=d.y,g=0,h=0,i=a.length;i>g;g++)switch(0|a[g]){case G.rectangle:e=b[h++],f=b[h++];var j=b[h++],k=b[h++];0===j&&(j=this.getSinglePixelWidth()),0===k&&(k=this.getSinglePixelWidth());var l=e+j,m=f+k;this.ctx.moveTo(e,f),this.ctx.lineTo(l,f),this.ctx.lineTo(l,m),this.ctx.lineTo(e,m),this.ctx.lineTo(e,f),this.ctx.closePath();break;case G.moveTo:e=b[h++],f=b[h++],c.moveTo(e,f);break;case G.lineTo:e=b[h++],f=b[h++],c.lineTo(e,f);break;case G.curveTo:e=b[h+4],f=b[h+5],c.bezierCurveTo(b[h],b[h+1],b[h+2],b[h+3],e,f),h+=6;break;case G.curveTo2:c.bezierCurveTo(e,f,b[h],b[h+1],b[h+2],b[h+3]),e=b[h+2],f=b[h+3],h+=4;break;case G.curveTo3:e=b[h+2],f=b[h+3],c.bezierCurveTo(b[h],b[h+1],e,f,e,f),h+=4;break;case G.closePath:c.closePath()}d.setCurrentPoint(e,f)},closePath:function(){this.ctx.closePath()},stroke:function(a){a="undefined"!=typeof a?a:!0;var b=this.ctx,c=this.current.strokeColor;b.lineWidth=Math.max(this.getSinglePixelWidth()*ea,this.current.lineWidth),b.globalAlpha=this.current.strokeAlpha,c&&c.hasOwnProperty("type")&&"Pattern"===c.type?(b.save(),b.strokeStyle=c.getPattern(b,this),b.stroke(),b.restore()):b.stroke(),a&&this.consumePath(),b.globalAlpha=this.current.fillAlpha},closeStroke:function(){this.closePath(),this.stroke()},fill:function(a){a="undefined"!=typeof a?a:!0;var b=this.ctx,c=this.current.fillColor,d=this.current.patternFill,e=!1;d&&(b.save(),b.fillStyle=c.getPattern(b,this),e=!0),this.pendingEOFill?(void 0!==b.mozFillRule?(b.mozFillRule="evenodd",b.fill(),b.mozFillRule="nonzero"):b.fill("evenodd"),this.pendingEOFill=!1):b.fill(),e&&b.restore(),a&&this.consumePath()},eoFill:function(){this.pendingEOFill=!0,this.fill()},fillStroke:function(){this.fill(!1),this.stroke(!1),this.consumePath()},eoFillStroke:function(){this.pendingEOFill=!0,this.fillStroke()},closeFillStroke:function(){this.closePath(),this.fillStroke()},closeEOFillStroke:function(){this.pendingEOFill=!0,this.closePath(),this.fillStroke()},endPath:function(){this.consumePath()},clip:function(){this.pendingClip=u},eoClip:function(){this.pendingClip=v},beginText:function(){this.current.textMatrix=S,this.current.textMatrixScale=1,this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0},endText:function(){var a=this.pendingTextPaths,b=this.ctx;if(void 0===a)return void b.beginPath();b.save(),b.beginPath();for(var c=0;cc?(c=-c,f.fontDirection=-1):f.fontDirection=1,this.current.font=e,this.current.fontSize=c,!e.isType3Font){var g=e.loadedName||"sans-serif",h=e.black?e.bold?"900":"bold":e.bold?"bold":"normal",i=e.italic?"italic":"normal",j='"'+g+'", '+e.fallbackName,k=ba>c?ba:c>ca?ca:c;this.current.fontSizeScale=c/k;var l=i+" "+h+" "+k+"px "+j;this.ctx.font=l}},setTextRenderingMode:function(a){this.current.textRenderingMode=a},setTextRise:function(a){this.current.textRise=a},moveText:function(a,b){this.current.x=this.current.lineX+=a,this.current.y=this.current.lineY+=b},setLeadingMoveText:function(a,b){this.setLeading(-b),this.moveText(a,b)},setTextMatrix:function(a,b,c,d,e,f){this.current.textMatrix=[a,b,c,d,e,f],this.current.textMatrixScale=Math.sqrt(a*a+b*b),this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0},nextLine:function(){this.moveText(0,this.current.leading)},paintChar:function(a,b,c){var d,e=this.ctx,f=this.current,g=f.font,h=f.textRenderingMode,i=f.fontSize/f.fontSizeScale,j=h&C.FILL_STROKE_MASK,k=!!(h&C.ADD_TO_PATH_FLAG);if((g.disableFontFace||k)&&(d=g.getPathGenerator(this.commonObjs,a)),g.disableFontFace?(e.save(),e.translate(b,c),e.beginPath(),d(e,i),j!==C.FILL&&j!==C.FILL_STROKE||e.fill(),j!==C.STROKE&&j!==C.FILL_STROKE||e.stroke(),e.restore()):(j!==C.FILL&&j!==C.FILL_STROKE||e.fillText(a,b,c),j!==C.STROKE&&j!==C.FILL_STROKE||e.strokeText(a,b,c)),k){var l=this.pendingTextPaths||(this.pendingTextPaths=[]);l.push({transform:e.mozCurrentTransform,x:b,y:c,fontSize:i,addToPath:d})}},get isFontSubpixelAAEnabled(){var a=document.createElement("canvas").getContext("2d");a.scale(1.5,1),a.fillText("I",0,10);for(var b=a.getImageData(0,0,10,10).data,c=!1,d=3;d0&&b[d]<255){c=!0;break}return i(this,"isFontSubpixelAAEnabled",c)},showText:function(a){var b=this.current,c=b.font;if(c.isType3Font)return this.showType3Text(a);var d=b.fontSize;if(0!==d){var e=this.ctx,f=b.fontSizeScale,g=b.charSpacing,h=b.wordSpacing,i=b.fontDirection,j=b.textHScale*i,k=a.length,l=c.vertical,m=l?1:-1,n=c.defaultVMetrics,o=d*b.fontMatrix[0],q=b.textRenderingMode===C.FILL&&!c.disableFontFace;e.save(),e.transform.apply(e,b.textMatrix),e.translate(b.x,b.y+b.textRise),i>0?e.scale(j,-1):e.scale(j,1);var r=b.lineWidth,s=b.textMatrixScale;if(0===s||0===r){var t=b.textRenderingMode&C.FILL_STROKE_MASK;t!==C.STROKE&&t!==C.FILL_STROKE||(this.cachedGetSinglePixelWidth=null,r=this.getSinglePixelWidth()*ea)}else r/=s;1!==f&&(e.scale(f,f),r/=f),e.lineWidth=r;var u,v=0;for(u=0;k>u;++u){var w=a[u];if(null!==w)if(p(w))v+=m*w*d/1e3;else{var x,y,z,A,B=!1,D=w.fontChar,E=w.accent,F=w.width;if(l){var G,H,I;G=w.vmetric||n,H=w.vmetric?G[1]:.5*F,H=-H*o,I=G[2]*o,F=G?-G[0]:F,x=H/f,y=(v+I)/f}else x=v/f,y=0;if(c.remeasure&&F>0&&this.isFontSubpixelAAEnabled){var J=1e3*e.measureText(D).width/d*f,K=F/J;B=!0,e.save(),e.scale(K,1),x/=K}q&&!E?e.fillText(D,x,y):(this.paintChar(D,x,y),E&&(z=x+E.offset.x/f,A=y-E.offset.y/f,this.paintChar(E.fontChar,z,A)));var L=F*o+g*i;v+=L,B&&e.restore()}else v+=i*h}l?b.y-=v*j:b.x+=v*j,e.restore()}},showType3Text:function(a){var c,d,e,f,g=this.ctx,h=this.current,i=h.font,j=h.fontSize,k=h.fontDirection,l=i.vertical?1:-1,m=h.charSpacing,n=h.wordSpacing,o=h.textHScale*k,q=h.fontMatrix||B,r=a.length,s=h.textRenderingMode===C.INVISIBLE;if(!s&&0!==j){for(this.cachedGetSinglePixelWidth=null,g.save(),g.transform.apply(g,h.textMatrix),g.translate(h.x,h.y),g.scale(o,k),c=0;r>c;++c)if(d=a[c],null!==d)if(p(d))f=l*d*j/1e3,this.ctx.translate(f,0),h.x+=f*o;else{var t=i.charProcOperatorList[d.operatorListId];if(t){this.processingType3=d,this.save(),g.scale(j,j),g.transform.apply(g,q),this.executeOperatorList(t),this.restore();var u=T.applyTransform([d.width,0],q);e=u[0]*j+m,g.translate(e,0),h.x+=e*o}else b('Type3 character "'+d.operatorListId+'" is not available')}else this.ctx.translate(n,0),h.x+=n*o;g.restore(),this.processingType3=null}},setCharWidth:function(a,b){},setCharWidthAndBounds:function(a,b,c,d,e,f){this.ctx.rect(c,d,e-c,f-d),this.clip(),this.endPath()},getColorN_Pattern:function(a){var b;if("TilingPattern"===a[0]){var c=a[1],d=this.baseTransform||this.ctx.mozCurrentTransform.slice();b=new oa(a,c,this.ctx,this.objs,this.commonObjs,d)}else b=y(a);return b},setStrokeColorN:function(){this.current.strokeColor=this.getColorN_Pattern(arguments)},setFillColorN:function(){this.current.fillColor=this.getColorN_Pattern(arguments),this.current.patternFill=!0},setStrokeRGBColor:function(a,b,c){var d=T.makeCssRgb(a,b,c);this.ctx.strokeStyle=d,this.current.strokeColor=d},setFillRGBColor:function(a,b,c){var d=T.makeCssRgb(a,b,c);this.ctx.fillStyle=d,this.current.fillColor=d,this.current.patternFill=!1},shadingFill:function(a){var b=this.ctx;this.save();var c=y(a);b.fillStyle=c.getPattern(b,this,!0);var d=b.mozCurrentTransformInverse;if(d){var e=b.canvas,f=e.width,g=e.height,h=T.applyTransform([0,0],d),i=T.applyTransform([0,g],d),j=T.applyTransform([f,0],d),k=T.applyTransform([f,g],d),l=Math.min(h[0],i[0],j[0],k[0]),m=Math.min(h[1],i[1],j[1],k[1]),n=Math.max(h[0],i[0],j[0],k[0]),o=Math.max(h[1],i[1],j[1],k[1]);this.ctx.fillRect(l,m,n-l,o-m)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.restore()},beginInlineImage:function(){d("Should not call beginInlineImage")},beginImageData:function(){d("Should not call beginImageData")},paintFormXObjectBegin:function(a,b){if(this.save(),this.baseTransformStack.push(this.baseTransform),q(a)&&6===a.length&&this.transform.apply(this,a),this.baseTransform=this.ctx.mozCurrentTransform,q(b)&&4===b.length){var c=b[2]-b[0],d=b[3]-b[1];this.ctx.rect(b[0],b[1],c,d),this.clip(),this.endPath()}},paintFormXObjectEnd:function(){this.restore(),this.baseTransform=this.baseTransformStack.pop()},beginGroup:function(c){this.save();var d=this.ctx;c.isolated||a("TODO: Support non-isolated groups."),c.knockout&&b("Knockout groups not supported.");var e=d.mozCurrentTransform;c.matrix&&d.transform.apply(d,c.matrix),f(c.bbox,"Bounding box is required.");var g=T.getAxialAlignedBoundingBox(c.bbox,d.mozCurrentTransform),i=[0,0,d.canvas.width,d.canvas.height];g=T.intersect(g,i)||[0,0,0,0];var j=Math.floor(g[0]),k=Math.floor(g[1]),l=Math.max(Math.ceil(g[2])-j,1),m=Math.max(Math.ceil(g[3])-k,1),n=1,o=1;l>da&&(n=l/da,l=da),m>da&&(o=m/da,m=da);var p="groupAt"+this.groupLevel;c.smask&&(p+="_smask_"+this.smaskCounter++%2);var q=ia.getCanvas(p,l,m,!0),r=q.context;r.scale(1/n,1/o),r.translate(-j,-k),r.transform.apply(r,e),c.smask?this.smaskStack.push({canvas:q.canvas,context:r,offsetX:j,offsetY:k,scaleX:n,scaleY:o,subtype:c.smask.subtype,backdrop:c.smask.backdrop}):(d.setTransform(1,0,0,1,0,0),d.translate(j,k),d.scale(n,o)),h(d,r),this.ctx=r,this.setGState([["BM","Normal"],["ca",1],["CA",1]]),this.groupStack.push(d),this.groupLevel++},endGroup:function(a){this.groupLevel--;var b=this.ctx;this.ctx=this.groupStack.pop(),void 0!==this.ctx.imageSmoothingEnabled?this.ctx.imageSmoothingEnabled=!1:this.ctx.mozImageSmoothingEnabled=!1,a.smask?this.tempSMask=this.smaskStack.pop():this.ctx.drawImage(b.canvas,0,0),this.restore()},beginAnnotations:function(){this.save(),this.current=new ja},endAnnotations:function(){this.restore()},beginAnnotation:function(a,b,c){if(this.save(),q(a)&&4===a.length){var d=a[2]-a[0],e=a[3]-a[1];this.ctx.rect(a[0],a[1],d,e),this.clip(),this.endPath()}this.transform.apply(this,b),this.transform.apply(this,c)},endAnnotation:function(){this.restore()},paintJpegXObject:function(a,c,d){var e=this.objs.get(a);if(!e)return void b("Dependent image isn't ready yet");this.save();var f=this.ctx;if(f.scale(1/c,-1/d),f.drawImage(e,0,0,e.width,e.height,0,-d,c,d),this.imageLayer){var g=f.mozCurrentTransformInverse,h=this.getCanvasPosition(0,0);this.imageLayer.appendImage({objId:a,left:h[0],top:h[1],width:c/g[0],height:d/g[3]})}this.restore()},paintImageMaskXObject:function(a){var b=this.ctx,c=a.width,d=a.height,e=this.current.fillColor,f=this.current.patternFill,h=this.processingType3;if(fa&&h&&void 0===h.compiled&&(ga>=c&&ga>=d?h.compiled=x({data:a.data,width:c,height:d}):h.compiled=null),h&&h.compiled)return void h.compiled(b);var i=ia.getCanvas("maskCanvas",c,d),j=i.context;j.save(),g(j,a),j.globalCompositeOperation="source-in",j.fillStyle=f?e.getPattern(j,this):e,j.fillRect(0,0,c,d),j.restore(),this.paintInlineImageXObject(i.canvas)},paintImageMaskXObjectRepeat:function(a,b,c,d){var e=a.width,f=a.height,h=this.current.fillColor,i=this.current.patternFill,j=ia.getCanvas("maskCanvas",e,f),k=j.context;k.save(),g(k,a),k.globalCompositeOperation="source-in",k.fillStyle=i?h.getPattern(k,this):h,k.fillRect(0,0,e,f),k.restore();for(var l=this.ctx,m=0,n=d.length;n>m;m+=2)l.save(),l.transform(b,0,0,c,d[m],d[m+1]),l.scale(1,-1),l.drawImage(j.canvas,0,0,e,f,0,-1,1,1),l.restore()},paintImageMaskXObjectGroup:function(a){for(var b=this.ctx,c=this.current.fillColor,d=this.current.patternFill,e=0,f=a.length;f>e;e++){var h=a[e],i=h.width,j=h.height,k=ia.getCanvas("maskCanvas",i,j),l=k.context;l.save(),g(l,h),l.globalCompositeOperation="source-in",l.fillStyle=d?c.getPattern(l,this):c,l.fillRect(0,0,i,j),l.restore(),b.save(),b.transform.apply(b,h.transform),b.scale(1,-1),b.drawImage(k.canvas,0,0,i,j,0,-1,1,1),b.restore()}},paintImageXObject:function(a){var c=this.objs.get(a);return c?void this.paintInlineImageXObject(c):void b("Dependent image isn't ready yet")},paintImageXObjectRepeat:function(a,c,d,e){var f=this.objs.get(a);if(!f)return void b("Dependent image isn't ready yet");for(var g=f.width,h=f.height,i=[],j=0,k=e.length;k>j;j+=2)i.push({transform:[c,0,0,d,e[j],e[j+1]],x:0,y:0,w:g,h:h});this.paintInlineImageXObjectGroup(f,i)},paintInlineImageXObject:function(a){var b=a.width,c=a.height,d=this.ctx;this.save(),d.scale(1/b,-1/c);var f,g,h=d.mozCurrentTransformInverse,i=h[0],j=h[1],k=Math.max(Math.sqrt(i*i+j*j),1),l=h[2],m=h[3],n=Math.max(Math.sqrt(l*l+m*m),1);if(a instanceof HTMLElement||!a.data)f=a;else{g=ia.getCanvas("inlineImage",b,c);var o=g.context;e(o,a),f=g.canvas}for(var p=b,q=c,r="prescale1";k>2&&p>1||n>2&&q>1;){var s=p,t=q;k>2&&p>1&&(s=Math.ceil(p/2),k/=p/s),n>2&&q>1&&(t=Math.ceil(q/2),n/=q/t),g=ia.getCanvas(r,s,t),o=g.context,o.clearRect(0,0,s,t),o.drawImage(f,0,0,p,q,0,0,s,t),f=g.canvas,p=s,q=t,r="prescale1"===r?"prescale2":"prescale1"}if(d.drawImage(f,0,0,p,q,0,-c,b,c),this.imageLayer){var u=this.getCanvasPosition(0,-c);this.imageLayer.appendImage({imgData:a,left:u[0],top:u[1],width:b/h[0],height:c/h[3]})}this.restore()},paintInlineImageXObjectGroup:function(a,b){var c=this.ctx,d=a.width,f=a.height,g=ia.getCanvas("inlineImage",d,f),h=g.context;e(h,a);for(var i=0,j=b.length;j>i;i++){var k=b[i];if(c.save(),c.transform.apply(c,k.transform),c.scale(1,-1),c.drawImage(g.canvas,k.x,k.y,k.w,k.h,0,-1,1,1),this.imageLayer){var l=this.getCanvasPosition(k.x,k.y);this.imageLayer.appendImage({imgData:a,left:l[0],top:l[1],width:d,height:f})}c.restore()}},paintSolidColorImageMask:function(){this.ctx.fillRect(0,0,1,1)},paintXObject:function(){I.notify(H.unknown),b("Unsupported 'paintXObject' command.")},markPoint:function(a){},markPointProps:function(a,b){},beginMarkedContent:function(a){},beginMarkedContentProps:function(a,b){},endMarkedContent:function(){},beginCompat:function(){},endCompat:function(){},consumePath:function(){var a=this.ctx;this.pendingClip&&(this.pendingClip===v?void 0!==a.mozFillRule?(a.mozFillRule="evenodd",a.clip(),a.mozFillRule="nonzero"):a.clip("evenodd"):a.clip(),this.pendingClip=null),a.beginPath()},getSinglePixelWidth:function(a){if(null===this.cachedGetSinglePixelWidth){var b=this.ctx.mozCurrentTransformInverse;this.cachedGetSinglePixelWidth=Math.sqrt(Math.max(b[0]*b[0]+b[1]*b[1],b[2]*b[2]+b[3]*b[3]))}return this.cachedGetSinglePixelWidth},getCanvasPosition:function(a,b){var c=this.ctx.mozCurrentTransform;return[c[0]*a+c[2]*b+c[4],c[1]*a+c[3]*b+c[5]]}};for(var z in G)c.prototype[G[z]]=c.prototype[z];return c}(),la=function(){function a(a,b,c){var d=a.createShader(c);a.shaderSource(d,b),a.compileShader(d);var e=a.getShaderParameter(d,a.COMPILE_STATUS);if(!e){var f=a.getShaderInfoLog(d);throw new Error("Error during shader compilation: "+f)}return d}function b(b,c){return a(b,c,b.VERTEX_SHADER)}function c(b,c){return a(b,c,b.FRAGMENT_SHADER)}function d(a,b){for(var c=a.createProgram(),d=0,e=b.length;e>d;++d)a.attachShader(c,b[d]);a.linkProgram(c);var f=a.getProgramParameter(c,a.LINK_STATUS);if(!f){var g=a.getProgramInfoLog(c);throw new Error("Error during program linking: "+g)}return c}function e(a,b,c){a.activeTexture(c);var d=a.createTexture();return a.bindTexture(a.TEXTURE_2D,d),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,b),d}function f(){m||(n=document.createElement("canvas"),m=n.getContext("webgl",{premultipliedalpha:!1}))}function g(){var a,e;f(),a=n,n=null,e=m,m=null;var g=b(e,o),h=c(e,p),i=d(e,[g,h]);e.useProgram(i);var j={};j.gl=e,j.canvas=a,j.resolutionLocation=e.getUniformLocation(i,"u_resolution"),j.positionLocation=e.getAttribLocation(i,"a_position"),j.backdropLocation=e.getUniformLocation(i,"u_backdrop"),j.subtypeLocation=e.getUniformLocation(i,"u_subtype");var k=e.getAttribLocation(i,"a_texCoord"),l=e.getUniformLocation(i,"u_image"),r=e.getUniformLocation(i,"u_mask"),s=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),e.STATIC_DRAW),e.enableVertexAttribArray(k),e.vertexAttribPointer(k,2,e.FLOAT,!1,0,0),e.uniform1i(l,0),e.uniform1i(r,1),q=j}function h(a,b,c){var d=a.width,f=a.height;q||g();var h=q,i=h.canvas,j=h.gl;i.width=d,i.height=f,j.viewport(0,0,j.drawingBufferWidth,j.drawingBufferHeight),j.uniform2f(h.resolutionLocation,d,f),c.backdrop?j.uniform4f(h.resolutionLocation,c.backdrop[0],c.backdrop[1],c.backdrop[2],1):j.uniform4f(h.resolutionLocation,0,0,0,0),j.uniform1i(h.subtypeLocation,"Luminosity"===c.subtype?1:0);var k=e(j,a,j.TEXTURE0),l=e(j,b,j.TEXTURE1),m=j.createBuffer();return j.bindBuffer(j.ARRAY_BUFFER,m),j.bufferData(j.ARRAY_BUFFER,new Float32Array([0,0,d,0,0,f,0,f,d,0,d,f]),j.STATIC_DRAW),j.enableVertexAttribArray(h.positionLocation),j.vertexAttribPointer(h.positionLocation,2,j.FLOAT,!1,0,0),j.clearColor(0,0,0,0),j.enable(j.BLEND),j.blendFunc(j.ONE,j.ONE_MINUS_SRC_ALPHA),j.clear(j.COLOR_BUFFER_BIT),j.drawArrays(j.TRIANGLES,0,6),j.flush(),j.deleteTexture(k),j.deleteTexture(l),j.deleteBuffer(m),i}function j(){var a,e;f(),a=n,n=null,e=m,m=null;var g=b(e,r),h=c(e,s),i=d(e,[g,h]);e.useProgram(i);var j={};j.gl=e,j.canvas=a,j.resolutionLocation=e.getUniformLocation(i,"u_resolution"),j.scaleLocation=e.getUniformLocation(i,"u_scale"),j.offsetLocation=e.getUniformLocation(i,"u_offset"),j.positionLocation=e.getAttribLocation(i,"a_position"),j.colorLocation=e.getAttribLocation(i,"a_color"),t=j}function k(a,b,c,d,e){t||j();var f=t,g=f.canvas,h=f.gl;g.width=a,g.height=b,h.viewport(0,0,h.drawingBufferWidth,h.drawingBufferHeight),h.uniform2f(f.resolutionLocation,a,b);var i,k,l,m=0;for(i=0,k=d.length;k>i;i++)switch(d[i].type){case"lattice":l=d[i].coords.length/d[i].verticesPerRow|0,m+=(l-1)*(d[i].verticesPerRow-1)*6;break;case"triangles":m+=d[i].coords.length}var n=new Float32Array(2*m),o=new Uint8Array(3*m),p=e.coords,q=e.colors,r=0,s=0;for(i=0,k=d.length;k>i;i++){var u=d[i],v=u.coords,w=u.colors;switch(u.type){case"lattice":var x=u.verticesPerRow;l=v.length/x|0;for(var y=1;l>y;y++)for(var z=y*x+1,A=1;x>A;A++,z++)n[r]=p[v[z-x-1]],n[r+1]=p[v[z-x-1]+1],n[r+2]=p[v[z-x]],n[r+3]=p[v[z-x]+1],n[r+4]=p[v[z-1]],n[r+5]=p[v[z-1]+1],o[s]=q[w[z-x-1]],o[s+1]=q[w[z-x-1]+1],o[s+2]=q[w[z-x-1]+2],o[s+3]=q[w[z-x]],o[s+4]=q[w[z-x]+1],o[s+5]=q[w[z-x]+2],o[s+6]=q[w[z-1]],o[s+7]=q[w[z-1]+1],o[s+8]=q[w[z-1]+2],n[r+6]=n[r+2],n[r+7]=n[r+3],n[r+8]=n[r+4],n[r+9]=n[r+5],n[r+10]=p[v[z]],n[r+11]=p[v[z]+1],o[s+9]=o[s+3],o[s+10]=o[s+4],o[s+11]=o[s+5],o[s+12]=o[s+6],o[s+13]=o[s+7],o[s+14]=o[s+8],o[s+15]=q[w[z]],o[s+16]=q[w[z]+1],o[s+17]=q[w[z]+2],r+=12,s+=18;break;case"triangles":for(var B=0,C=v.length;C>B;B++)n[r]=p[v[B]],n[r+1]=p[v[B]+1],o[s]=q[w[B]],o[s+1]=q[w[B]+1],o[s+2]=q[w[B]+2],r+=2,s+=3}}c?h.clearColor(c[0]/255,c[1]/255,c[2]/255,1):h.clearColor(0,0,0,0),h.clear(h.COLOR_BUFFER_BIT);var D=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,D),h.bufferData(h.ARRAY_BUFFER,n,h.STATIC_DRAW),h.enableVertexAttribArray(f.positionLocation),h.vertexAttribPointer(f.positionLocation,2,h.FLOAT,!1,0,0);var E=h.createBuffer();return h.bindBuffer(h.ARRAY_BUFFER,E),h.bufferData(h.ARRAY_BUFFER,o,h.STATIC_DRAW),h.enableVertexAttribArray(f.colorLocation),h.vertexAttribPointer(f.colorLocation,3,h.UNSIGNED_BYTE,!1,0,0),h.uniform2f(f.scaleLocation,e.scaleX,e.scaleY),h.uniform2f(f.offsetLocation,e.offsetX,e.offsetY),h.drawArrays(h.TRIANGLES,0,m),h.flush(),h.deleteBuffer(D),h.deleteBuffer(E),g}function l(){q&&q.canvas&&(q.canvas.width=0,q.canvas.height=0),t&&t.canvas&&(t.canvas.width=0,t.canvas.height=0),q=null,t=null}var m,n,o=" attribute vec2 a_position; attribute vec2 a_texCoord; uniform vec2 u_resolution; varying vec2 v_texCoord; void main() { vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); v_texCoord = a_texCoord; } ",p=" precision mediump float; uniform vec4 u_backdrop; uniform int u_subtype; uniform sampler2D u_image; uniform sampler2D u_mask; varying vec2 v_texCoord; void main() { vec4 imageColor = texture2D(u_image, v_texCoord); vec4 maskColor = texture2D(u_mask, v_texCoord); if (u_backdrop.a > 0.0) { maskColor.rgb = maskColor.rgb * maskColor.a + u_backdrop.rgb * (1.0 - maskColor.a); } float lum; if (u_subtype == 0) { lum = maskColor.a; } else { lum = maskColor.r * 0.3 + maskColor.g * 0.59 + maskColor.b * 0.11; } imageColor.a *= lum; imageColor.rgb *= imageColor.a; gl_FragColor = imageColor; } ",q=null,r=" attribute vec2 a_position; attribute vec3 a_color; uniform vec2 u_resolution; uniform vec2 u_scale; uniform vec2 u_offset; varying vec4 v_color; void main() { vec2 position = (a_position + u_offset) * u_scale; vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); v_color = vec4(a_color / 255.0, 1.0); } ",s=" precision mediump float; varying vec4 v_color; void main() { gl_FragColor = v_color; } ",t=null;return{get isEnabled(){if(PDFJS.disableWebGL)return!1;var a=!1;try{f(),a=!!m}catch(b){}return i(this,"isEnabled",a)},composeSMask:h,drawFigures:k,clear:l}}(),ma={};ma.RadialAxial={fromIR:function(a){var b=a[1],c=a[2],d=a[3],e=a[4],f=a[5],g=a[6];return{type:"Pattern",getPattern:function(a){var h;"axial"===b?h=a.createLinearGradient(d[0],d[1],e[0],e[1]):"radial"===b&&(h=a.createRadialGradient(d[0],d[1],f,e[0],e[1],g));for(var i=0,j=c.length;j>i;++i){var k=c[i];h.addColorStop(k[0],k[1])}return h}}}};var na=function(){function a(a,b,c,d,e,f,g,h){var i,j=b.coords,k=b.colors,l=a.data,m=4*a.width;j[c+1]>j[d+1]&&(i=c,c=d,d=i,i=f,f=g,g=i),j[d+1]>j[e+1]&&(i=d,d=e,e=i,i=g,g=h,h=i),j[c+1]>j[d+1]&&(i=c,c=d,d=i,i=f,f=g,g=i);var n=(j[c]+b.offsetX)*b.scaleX,o=(j[c+1]+b.offsetY)*b.scaleY,p=(j[d]+b.offsetX)*b.scaleX,q=(j[d+1]+b.offsetY)*b.scaleY,r=(j[e]+b.offsetX)*b.scaleX,s=(j[e+1]+b.offsetY)*b.scaleY;if(!(o>=s))for(var t,u,v,w,x,y,z,A,B,C=k[f],D=k[f+1],E=k[f+2],F=k[g],G=k[g+1],H=k[g+2],I=k[h],J=k[h+1],K=k[h+2],L=Math.round(o),M=Math.round(s),N=L;M>=N;N++){q>N?(B=o>N?0:o===q?1:(o-N)/(o-q),t=n-(n-p)*B,u=C-(C-F)*B,v=D-(D-G)*B,w=E-(E-H)*B):(B=N>s?1:q===s?0:(q-N)/(q-s),t=p-(p-r)*B,u=F-(F-I)*B,v=G-(G-J)*B,w=H-(H-K)*B),B=o>N?0:N>s?1:(o-N)/(o-s),x=n-(n-r)*B,y=C-(C-I)*B,z=D-(D-J)*B,A=E-(E-K)*B;for(var O=Math.round(Math.min(t,x)),P=Math.round(Math.max(t,x)),Q=m*N+4*O,R=O;P>=R;R++)B=(t-R)/(t-x),B=0>B?0:B>1?1:B,l[Q++]=u-(u-y)*B|0,l[Q++]=v-(v-z)*B|0,l[Q++]=w-(w-A)*B|0,l[Q++]=255}}function b(b,c,e){var f,g,h=c.coords,i=c.colors;switch(c.type){case"lattice":var j=c.verticesPerRow,k=Math.floor(h.length/j)-1,l=j-1;for(f=0;k>f;f++)for(var m=f*j,n=0;l>n;n++,m++)a(b,e,h[m],h[m+1],h[m+j],i[m],i[m+1],i[m+j]),a(b,e,h[m+j+1],h[m+1],h[m+j],i[m+j+1],i[m+1],i[m+j]);break;case"triangles":for(f=0,g=h.length;g>f;f+=3)a(b,e,h[f],h[f+1],h[f+2],i[f],i[f+1],i[f+2]);break;default:d("illigal figure")}}function c(a,c,d,e,f,g){var h,i,j,k,l=1.1,m=3e3,n=Math.floor(a[0]),o=Math.floor(a[1]),p=Math.ceil(a[2])-n,q=Math.ceil(a[3])-o,r=Math.min(Math.ceil(Math.abs(p*c[0]*l)),m),s=Math.min(Math.ceil(Math.abs(q*c[1]*l)),m),t=p/r,u=q/s,v={coords:d,colors:e,offsetX:-n,offsetY:-o,scaleX:1/t,scaleY:1/u};if(la.isEnabled)h=la.drawFigures(r,s,g,f,v),i=ia.getCanvas("mesh",r,s,!1),i.context.drawImage(h,0,0),h=i.canvas;else{i=ia.getCanvas("mesh",r,s,!1);var w=i.context,x=w.createImageData(r,s);if(g){var y=x.data;for(j=0,k=y.length;k>j;j+=4)y[j]=g[0],y[j+1]=g[1],y[j+2]=g[2],y[j+3]=255}for(j=0;j=14?!0:"node"===a}(),nativeFontFaces:[],isFontLoadingAPISupported:!A&&"undefined"!=typeof document&&!!document.fonts,addNativeFontFace:function(a){this.nativeFontFaces.push(a),document.fonts.add(a)},bind:function(a,c){f(!A,"bind() shall be called from main thread");for(var d=[],e=[],g=[],h=function(a){return a.loaded["catch"](function(c){b('Failed to load font "'+a.family+'": '+c)})},i=0,j=a.length;j>i;i++){var k=a[i];if(!k.attached&&k.loading!==!1)if(k.attached=!0,this.isFontLoadingAPISupported){var l=k.createNativeFontFace();l&&g.push(h(l))}else{var m=k.bindDOM();m&&(d.push(m),e.push(k))}}var n=pa.queueLoadingCallback(c);this.isFontLoadingAPISupported?Promise.all(g).then(function(){n.complete()}):d.length>0&&!this.isSyncFontLoadingSupported?pa.prepareFontLoadEvent(d,e,n):n.complete()},queueLoadingCallback:function(a){function b(){for(f(!e.end,"completeRequest() cannot be called twice"),e.end=Date.now();c.requests.length>0&&c.requests[0].end;){var a=c.requests.shift();setTimeout(a.callback,0)}}var c=pa.loadingContext,d="pdfjs-font-loading-"+c.nextRequestId++,e={id:d,complete:b,callback:a,started:Date.now()};return c.requests.push(e),e},prepareFontLoadEvent:function(a,c,d){function e(a,b){return a.charCodeAt(b)<<24|a.charCodeAt(b+1)<<16|a.charCodeAt(b+2)<<8|255&a.charCodeAt(b+3)}function f(a,b,c,d){var e=a.substr(0,b),f=a.substr(b+c);return e+d+f}function g(a,c){if(l++,l>30)return b("Load test font never loaded."),void c();k.font="30px "+a,k.fillText(".",0,20);var d=k.getImageData(0,0,1,1);return d.data[3]>0?void c():void setTimeout(g.bind(null,a,c))}var h,i,j=document.createElement("canvas");j.width=1,j.height=1;var k=j.getContext("2d"),l=0,n="lt"+Date.now()+this.loadTestFontId++,o=this.loadTestFont,p=976;o=f(o,p,n.length,n);var q=16,r=1482184792,s=e(o,q);for(h=0,i=n.length-3;i>h;h+=4)s=s-r+e(n,h)|0;hh;h++)v.push(c[h].loadedName);v.push(n);var w=document.createElement("div");for(w.setAttribute("style","visibility: hidden;width: 10px; height: 10px;position: absolute; top: 0px; left: 0px;"),h=0,i=v.length;i>h;++h){var x=document.createElement("span");x.textContent="Hi",x.style.fontFamily=v[h],w.appendChild(x)}document.body.appendChild(w),g(n,function(){document.body.removeChild(w),d.complete()})}},qa=function(){function a(a,b,c){if(this.compiledGlyphs={},1!==arguments.length);else{var d=arguments[0];for(var e in d)this[e]=d[e]}}return a.prototype={createNativeFontFace:function(){if(!this.data)return null;if(PDFJS.disableFontFace)return this.disableFontFace=!0,null;var a=new FontFace(this.loadedName,this.data,{});return pa.addNativeFontFace(a),PDFJS.pdfBug&&"FontInspector"in z&&z.FontInspector.enabled&&z.FontInspector.fontAdded(this),a},bindDOM:function(){if(!this.data)return null;if(PDFJS.disableFontFace)return this.disableFontFace=!0,null;var a=k(new Uint8Array(this.data)),b=this.loadedName,c="url(data:"+this.mimetype+";base64,"+window.btoa(a)+");",d='@font-face { font-family:"'+b+'";src:'+c+"}";return pa.insertRule(d),PDFJS.pdfBug&&"FontInspector"in z&&z.FontInspector.enabled&&z.FontInspector.fontAdded(this,c),d},getPathGenerator:function(a,b){if(!(b in this.compiledGlyphs)){var c,d,e,f=a.get(this.loadedName+"_path_"+b);if(pa.isEvalSupported){var g,h="";for(d=0,e=f.length;e>d;d++)c=f[d],g=void 0!==c.args?c.args.join(","):"",h+="c."+c.cmd+"("+g+");\n";this.compiledGlyphs[b]=new Function("c","size",h)}else this.compiledGlyphs[b]=function(a,b){for(d=0,e=f.length;e>d;d++)c=f[d],"scale"===c.cmd&&(c.args=[b,-b]),a[c.cmd].apply(a,c.args)}}return this.compiledGlyphs[b]}},a}(),ra=10,sa=function(){function a(a,b,c){var d=a.style;if(d.fontSize=b.fontSize+"px",d.direction=b.fontDirection<0?"rtl":"ltr",c){d.fontWeight=c.black?c.bold?"bolder":"bold":c.bold?"bold":"normal",d.fontStyle=c.italic?"italic":"normal";var e=c.loadedName,f=e?'"'+e+'", ':"",g=c.fallbackName||"Helvetica, sans-serif";d.fontFamily=f+g}}function c(a){var c=document.createElement("section"),d=c.style,e=a.rect[2]-a.rect[0],f=a.rect[3]-a.rect[1];if(a.borderStyle.width>0){c.style.borderWidth=a.borderStyle.width+"px",a.borderStyle.style!==F.UNDERLINE&&(e-=2*a.borderStyle.width,f-=2*a.borderStyle.width);var g=a.borderStyle.horizontalCornerRadius,h=a.borderStyle.verticalCornerRadius;if(g>0||h>0){var i=g+"px / "+h+"px";CustomStyle.setProp("borderRadius",c,i)}switch(a.borderStyle.style){case F.SOLID:c.style.borderStyle="solid";break;case F.DASHED:c.style.borderStyle="dashed";break;case F.BEVELED:b("Unimplemented border style: beveled");break;case F.INSET:b("Unimplemented border style: inset");break;case F.UNDERLINE:c.style.borderBottomStyle="solid"}a.color?c.style.borderColor=T.makeCssRgb(0|a.color[0],0|a.color[1],0|a.color[2]):c.style.borderWidth=0}return d.width=e+"px",d.height=f+"px",c}function d(b,c){var d=document.createElement("div"),e=b.rect[2]-b.rect[0],f=b.rect[3]-b.rect[1];d.style.width=e+"px",d.style.height=f+"px",d.style.display="table";var g=document.createElement("div");g.textContent=b.fieldValue;var h=b.textAlignment;g.style.textAlign=["left","center","right"][h],g.style.verticalAlign="middle",g.style.display="table-cell";var i=b.fontRefName?c.getData(b.fontRefName):null;return a(g,b,i),d.appendChild(g),d}function e(a){var b=a.rect;b[3]-b[1]i;++i){var t=s[i];r.appendChild(document.createTextNode(t)),j-1>i&&r.appendChild(document.createElement("br"))}q.appendChild(r);var u=!1,v=function(a){a&&(u=!0),h.hasAttribute("hidden")&&(d.style.zIndex+=1,h.removeAttribute("hidden"))},w=function(a){a&&(u=!1),h.hasAttribute("hidden")||u||(d.style.zIndex-=1,h.setAttribute("hidden",!0))},x=function(){u?w(!0):v(!0)};e.addEventListener("click",function(){x()},!1),e.addEventListener("mouseover",function(){v()},!1),e.addEventListener("mouseout",function(){w()},!1),h.addEventListener("click",function(){w(!0)},!1)}else h.setAttribute("hidden",!0);return h.appendChild(p),h.appendChild(q),g.appendChild(h),d.appendChild(e),d.appendChild(g),d}function f(a){var b=c(a);b.className="annotLink";var d=document.createElement("a");return d.href=d.title=a.url||"",a.url&&j()&&(d.target=K[PDFJS.externalLinkTarget]),b.appendChild(d),b}function g(a,b){switch(a.annotationType){case E.WIDGET:return d(a,b);case E.TEXT:return e(a);case E.LINK:return f(a);default:throw new Error("Unsupported annotationType: "+a.annotationType)}}return{getHtmlElement:g}}();PDFJS.AnnotationUtils=sa;var ta={fontStyle:"normal",fontWeight:"normal",fillColor:"#000000"},ua=function(){function a(a,b,c){for(var d=-1,e=b;c>e;e++){var f=255&(d^a[e]),h=g[f];d=d>>>8^h}return-1^d}function b(b,c,d,e){var f=e,g=c.length;d[f]=g>>24&255,d[f+1]=g>>16&255,d[f+2]=g>>8&255,d[f+3]=255&g,f+=4,d[f]=255&b.charCodeAt(0),d[f+1]=255&b.charCodeAt(1),d[f+2]=255&b.charCodeAt(2),d[f+3]=255&b.charCodeAt(3),f+=4,d.set(c,f),f+=c.length;var h=a(d,e+4,f);d[f]=h>>24&255,d[f+1]=h>>16&255,d[f+2]=h>>8&255,d[f+3]=255&h}function c(a,b,c){for(var d=1,e=0,f=b;c>f;++f)d=(d+(255&a[f]))%65521,e=(e+d)%65521;return e<<16|d}function d(a,d){var g,h,i,j=a.width,k=a.height,l=a.data;switch(d){case D.GRAYSCALE_1BPP:h=0,g=1,i=j+7>>3;break;case D.RGB_24BPP:h=2,g=8,i=3*j;break;case D.RGBA_32BPP:h=6,g=8,i=4*j;break;default:throw new Error("invalid format")}var m,n,o=new Uint8Array((1+i)*k),p=0,q=0;for(m=0;k>m;++m)o[p++]=0,o.set(l.subarray(q,q+i),p),q+=i,p+=i;if(d===D.GRAYSCALE_1BPP)for(p=0,m=0;k>m;m++)for(p++,n=0;i>n;n++)o[p++]^=255;var r=new Uint8Array([j>>24&255,j>>16&255,j>>8&255,255&j,k>>24&255,k>>16&255,k>>8&255,255&k,g,h,0,0,0]),s=o.length,t=65535,u=Math.ceil(s/t),v=new Uint8Array(2+s+5*u+4),w=0;v[w++]=120,v[w++]=156;for(var x=0;s>t;)v[w++]=0,v[w++]=255,v[w++]=255,v[w++]=0,v[w++]=0,v.set(o.subarray(x,x+t),w),w+=t,x+=t,s-=t;v[w++]=1,v[w++]=255&s,v[w++]=s>>8&255,v[w++]=65535&~s&255,v[w++]=(65535&~s)>>8&255,v.set(o.subarray(x),w),w+=o.length-x;var y=c(o,0,o.length);v[w++]=y>>24&255,v[w++]=y>>16&255,v[w++]=y>>8&255,v[w++]=255&y;var z=e.length+3*f+r.length+v.length,A=new Uint8Array(z),B=0;return A.set(e,B),B+=e.length,b("IHDR",r,A,B),B+=f+r.length,b("IDATA",v,A,B),B+=f+v.length,b("IEND",new Uint8Array(0),A,B),PDFJS.createObjectURL(A,"image/png")}for(var e=new Uint8Array([137,80,78,71,13,10,26,10]),f=12,g=new Int32Array(256),h=0;256>h;h++){for(var i=h,j=0;8>j;j++)i=1&i?3988292384^i>>1&2147483647:i>>1&2147483647;g[h]=i}return function(a){var b=void 0===a.kind?D.GRAYSCALE_1BPP:a.kind;return d(a,b)}}(),va=function(){function a(){this.fontSizeScale=1,this.fontWeight=ta.fontWeight,this.fontSize=0,this.textMatrix=S,this.fontMatrix=B,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRise=0,this.fillColor=ta.fillColor,this.strokeColor="#000000",this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.lineJoin="",this.lineCap="",this.miterLimit=0,this.dashArray=[],this.dashPhase=0,this.dependencies=[],this.clipId="",this.pendingClip=!1,this.maskId=""}return a.prototype={clone:function(){return Object.create(this)},setCurrentPoint:function(a,b){this.x=a,this.y=b}},a}(),wa=function(){function a(a,b){var c="http://www.w3.org/2000/svg",d=document.createElementNS(c,"svg:svg");return d.setAttributeNS(null,"version","1.1"),d.setAttributeNS(null,"width",a+"px"),d.setAttributeNS(null,"height",b+"px"),d.setAttributeNS(null,"viewBox","0 0 "+a+" "+b),d}function c(a){for(var b=[],c=[],d=a.length,e=0;d>e;e++)"save"!==a[e].fn?"restore"===a[e].fn?b=c.pop():b.push(a[e]):(b.push({fnId:92,fn:"group",items:[]}),c.push(b),b=b[b.length-1].items);return b}function d(a){if(a===(0|a))return a.toString();var b=a.toFixed(10),c=b.length-1;if("0"!==b[c])return b;do c--;while("0"===b[c]);return b.substr(0,"."===b[c]?c:c+1)}function e(a){if(0===a[4]&&0===a[5]){if(0===a[1]&&0===a[2])return 1===a[0]&&1===a[3]?"":"scale("+d(a[0])+" "+d(a[3])+")";if(a[0]===a[3]&&a[1]===-a[2]){var b=180*Math.acos(a[0])/Math.PI;return"rotate("+d(b)+")"}}else if(1===a[0]&&0===a[1]&&0===a[2]&&1===a[3])return"translate("+d(a[4])+" "+d(a[5])+")";return"matrix("+d(a[0])+" "+d(a[1])+" "+d(a[2])+" "+d(a[3])+" "+d(a[4])+" "+d(a[5])+")"}function f(a,b){this.current=new va,this.transformMatrix=S,this.transformStack=[],this.extraStack=[],this.commonObjs=a,this.objs=b,this.pendingEOFill=!1,this.embedFonts=!1,this.embeddedFonts={},this.cssStyle=null}var g="http://www.w3.org/2000/svg",h="http://www.w3.org/XML/1998/namespace",i="http://www.w3.org/1999/xlink",j=["butt","round","square"],k=["miter","round","bevel"],l=0,m=0;return f.prototype={save:function(){this.transformStack.push(this.transformMatrix);var a=this.current;this.extraStack.push(a),this.current=a.clone()},restore:function(){this.transformMatrix=this.transformStack.pop(),this.current=this.extraStack.pop(),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix)),this.pgrp.appendChild(this.tgrp)},group:function(a){this.save(),this.executeOpTree(a),this.restore()},loadDependencies:function(a){for(var b=a.fnArray,c=b.length,d=a.argsArray,e=this,f=0;c>f;f++)if(G.dependency===b[f])for(var g=d[f],h=0,i=g.length;i>h;h++){var j,k=g[h],l="g_"===k.substring(0,2);j=l?new Promise(function(a){e.commonObjs.get(k,a)}):new Promise(function(a){e.objs.get(k,a)}),this.current.dependencies.push(j)}return Promise.all(this.current.dependencies)},transform:function(a,b,c,d,f,h){var i=[a,b,c,d,f,h];this.transformMatrix=PDFJS.Util.transform(this.transformMatrix,i),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix))},getSVG:function(b,c){return this.svg=a(c.width,c.height),this.viewport=c,this.loadDependencies(b).then(function(){this.transformMatrix=S,this.pgrp=document.createElementNS(g,"svg:g"),this.pgrp.setAttributeNS(null,"transform",e(c.transform)),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix)),this.defs=document.createElementNS(g,"svg:defs"),this.pgrp.appendChild(this.defs),this.pgrp.appendChild(this.tgrp),this.svg.appendChild(this.pgrp);var a=this.convertOpList(b);return this.executeOpTree(a),this.svg}.bind(this))},convertOpList:function(a){var b=a.argsArray,d=a.fnArray,e=d.length,f=[],g=[];for(var h in G)f[G[h]]=h;for(var i=0;e>i;i++){var j=d[i];g.push({fnId:j,fn:f[j],args:b[i]})}return c(g)},executeOpTree:function(a){for(var c=a.length,d=0;c>d;d++){var e=a[d].fn,f=a[d].fnId,g=a[d].args;switch(0|f){case G.beginText:this.beginText();break;case G.setLeading:this.setLeading(g);break;case G.setLeadingMoveText:this.setLeadingMoveText(g[0],g[1]);break;case G.setFont:this.setFont(g);break;case G.showText:this.showText(g[0]);break;case G.showSpacedText:this.showText(g[0]);break;case G.endText:this.endText();break;case G.moveText:this.moveText(g[0],g[1]);break;case G.setCharSpacing:this.setCharSpacing(g[0]);break;case G.setWordSpacing:this.setWordSpacing(g[0]);break;case G.setHScale:this.setHScale(g[0]);break;case G.setTextMatrix:this.setTextMatrix(g[0],g[1],g[2],g[3],g[4],g[5]);break;case G.setLineWidth:this.setLineWidth(g[0]);break;case G.setLineJoin:this.setLineJoin(g[0]);break;case G.setLineCap:this.setLineCap(g[0]);break;case G.setMiterLimit:this.setMiterLimit(g[0]);break;case G.setFillRGBColor:this.setFillRGBColor(g[0],g[1],g[2]);break;case G.setStrokeRGBColor:this.setStrokeRGBColor(g[0],g[1],g[2]);break;case G.setDash:this.setDash(g[0],g[1]);break;case G.setGState:this.setGState(g[0]);break;case G.fill:this.fill();break;case G.eoFill:this.eoFill();break;case G.stroke:this.stroke();break;case G.fillStroke:this.fillStroke();break;case G.eoFillStroke:this.eoFillStroke();break;case G.clip:this.clip("nonzero");break;case G.eoClip:this.clip("evenodd");break;case G.paintSolidColorImageMask:this.paintSolidColorImageMask();break;case G.paintJpegXObject:this.paintJpegXObject(g[0],g[1],g[2]);break;case G.paintImageXObject:this.paintImageXObject(g[0]);break;case G.paintInlineImageXObject:this.paintInlineImageXObject(g[0]);break;case G.paintImageMaskXObject:this.paintImageMaskXObject(g[0]);break;case G.paintFormXObjectBegin:this.paintFormXObjectBegin(g[0],g[1]);break;case G.paintFormXObjectEnd:this.paintFormXObjectEnd();break;case G.closePath:this.closePath();break;case G.closeStroke:this.closeStroke();break;case G.closeFillStroke:this.closeFillStroke();break;case G.nextLine:this.nextLine();break;case G.transform:this.transform(g[0],g[1],g[2],g[3],g[4],g[5]);break;case G.constructPath:this.constructPath(g[0],g[1]);break;case G.endPath:this.endPath();break;case 92:this.group(a[d].items);break;default:b("Unimplemented method "+e)}}},setWordSpacing:function(a){this.current.wordSpacing=a},setCharSpacing:function(a){this.current.charSpacing=a},nextLine:function(){this.moveText(0,this.current.leading)},setTextMatrix:function(a,b,c,e,f,h){var i=this.current;this.current.textMatrix=this.current.lineMatrix=[a,b,c,e,f,h],this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0,i.xcoords=[],i.tspan=document.createElementNS(g,"svg:tspan"),i.tspan.setAttributeNS(null,"font-family",i.fontFamily),i.tspan.setAttributeNS(null,"font-size",d(i.fontSize)+"px"),i.tspan.setAttributeNS(null,"y",d(-i.y)),i.txtElement=document.createElementNS(g,"svg:text"),i.txtElement.appendChild(i.tspan)},beginText:function(){this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0,this.current.textMatrix=S,this.current.lineMatrix=S,this.current.tspan=document.createElementNS(g,"svg:tspan"),this.current.txtElement=document.createElementNS(g,"svg:text"),this.current.txtgrp=document.createElementNS(g,"svg:g"),this.current.xcoords=[]},moveText:function(a,b){var c=this.current;this.current.x=this.current.lineX+=a,this.current.y=this.current.lineY+=b,c.xcoords=[],c.tspan=document.createElementNS(g,"svg:tspan"),c.tspan.setAttributeNS(null,"font-family",c.fontFamily),c.tspan.setAttributeNS(null,"font-size",d(c.fontSize)+"px"),c.tspan.setAttributeNS(null,"y",d(-c.y))},showText:function(a){var b=this.current,c=b.font,f=b.fontSize;if(0!==f){var g,i=b.charSpacing,j=b.wordSpacing,k=b.fontDirection,l=b.textHScale*k,m=a.length,n=c.vertical,o=f*b.fontMatrix[0],q=0;for(g=0;m>g;++g){var r=a[g];if(null!==r)if(p(r))q+=-r*f*.001;else{b.xcoords.push(b.x+q*l);var s=r.width,t=r.fontChar,u=s*o+i*k;q+=u,b.tspan.textContent+=t}else q+=k*j}n?b.y-=q*l:b.x+=q*l,b.tspan.setAttributeNS(null,"x",b.xcoords.map(d).join(" ")),b.tspan.setAttributeNS(null,"y",d(-b.y)),b.tspan.setAttributeNS(null,"font-family",b.fontFamily),b.tspan.setAttributeNS(null,"font-size",d(b.fontSize)+"px"),b.fontStyle!==ta.fontStyle&&b.tspan.setAttributeNS(null,"font-style",b.fontStyle),b.fontWeight!==ta.fontWeight&&b.tspan.setAttributeNS(null,"font-weight",b.fontWeight),b.fillColor!==ta.fillColor&&b.tspan.setAttributeNS(null,"fill",b.fillColor),b.txtElement.setAttributeNS(null,"transform",e(b.textMatrix)+" scale(1, -1)"),b.txtElement.setAttributeNS(h,"xml:space","preserve"),b.txtElement.appendChild(b.tspan),b.txtgrp.appendChild(b.txtElement),this.tgrp.appendChild(b.txtElement)}},setLeadingMoveText:function(a,b){this.setLeading(-b),this.moveText(a,b)},addFontStyle:function(a){this.cssStyle||(this.cssStyle=document.createElementNS(g,"svg:style"),this.cssStyle.setAttributeNS(null,"type","text/css"),this.defs.appendChild(this.cssStyle));var b=PDFJS.createObjectURL(a.data,a.mimetype);this.cssStyle.textContent+='@font-face { font-family: "'+a.loadedName+'"; src: url('+b+"); }\n"},setFont:function(a){var b=this.current,c=this.commonObjs.get(a[0]),e=a[1];this.current.font=c,this.embedFonts&&c.data&&!this.embeddedFonts[c.loadedName]&&(this.addFontStyle(c),this.embeddedFonts[c.loadedName]=c),b.fontMatrix=c.fontMatrix?c.fontMatrix:B;var f=c.black?c.bold?"bolder":"bold":c.bold?"bold":"normal",h=c.italic?"italic":"normal";0>e?(e=-e,b.fontDirection=-1):b.fontDirection=1,b.fontSize=e,b.fontFamily=c.loadedName,b.fontWeight=f,b.fontStyle=h,b.tspan=document.createElementNS(g,"svg:tspan"),b.tspan.setAttributeNS(null,"y",d(-b.y)),b.xcoords=[]},endText:function(){this.current.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix))},setLineWidth:function(a){this.current.lineWidth=a},setLineCap:function(a){this.current.lineCap=j[a]},setLineJoin:function(a){this.current.lineJoin=k[a]},setMiterLimit:function(a){this.current.miterLimit=a},setStrokeRGBColor:function(a,b,c){var d=T.makeCssRgb(a,b,c);this.current.strokeColor=d},setFillRGBColor:function(a,b,c){var d=T.makeCssRgb(a,b,c);this.current.fillColor=d,this.current.tspan=document.createElementNS(g,"svg:tspan"),this.current.xcoords=[]},setDash:function(a,b){this.current.dashArray=a,this.current.dashPhase=b},constructPath:function(a,b){var c=this.current,e=c.x,f=c.y;c.path=document.createElementNS(g,"svg:path");for(var h=[],i=a.length,j=0,k=0;i>j;j++)switch(0|a[j]){case G.rectangle:e=b[k++],f=b[k++];var l=b[k++],m=b[k++],n=e+l,o=f+m;h.push("M",d(e),d(f),"L",d(n),d(f),"L",d(n),d(o),"L",d(e),d(o),"Z");break;case G.moveTo:e=b[k++],f=b[k++],h.push("M",d(e),d(f));break;case G.lineTo:e=b[k++],f=b[k++],h.push("L",d(e),d(f));break;case G.curveTo:e=b[k+4],f=b[k+5],h.push("C",d(b[k]),d(b[k+1]),d(b[k+2]),d(b[k+3]),d(e),d(f)),k+=6;break;case G.curveTo2:e=b[k+2],f=b[k+3],h.push("C",d(e),d(f),d(b[k]),d(b[k+1]),d(b[k+2]),d(b[k+3])),k+=4;break;case G.curveTo3:e=b[k+2],f=b[k+3],h.push("C",d(b[k]),d(b[k+1]),d(e),d(f),d(e),d(f)),k+=4;break;case G.closePath:h.push("Z")}c.path.setAttributeNS(null,"d",h.join(" ")),c.path.setAttributeNS(null,"stroke-miterlimit",d(c.miterLimit)),c.path.setAttributeNS(null,"stroke-linecap",c.lineCap),c.path.setAttributeNS(null,"stroke-linejoin",c.lineJoin),c.path.setAttributeNS(null,"stroke-width",d(c.lineWidth)+"px"),c.path.setAttributeNS(null,"stroke-dasharray",c.dashArray.map(d).join(" ")),c.path.setAttributeNS(null,"stroke-dashoffset",d(c.dashPhase)+"px"),c.path.setAttributeNS(null,"fill","none"),this.tgrp.appendChild(c.path),c.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp),c.element=c.path,c.setCurrentPoint(e,f)},endPath:function(){var a=this.current;a.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix))},clip:function(a){var b=this.current;b.clipId="clippath"+l,l++,this.clippath=document.createElementNS(g,"svg:clipPath"),this.clippath.setAttributeNS(null,"id",b.clipId);var c=b.element.cloneNode();"evenodd"===a?c.setAttributeNS(null,"clip-rule","evenodd"):c.setAttributeNS(null,"clip-rule","nonzero"),this.clippath.setAttributeNS(null,"transform",e(this.transformMatrix)),this.clippath.appendChild(c),this.defs.appendChild(this.clippath),b.pendingClip=!0,this.cgrp=document.createElementNS(g,"svg:g"),this.cgrp.setAttributeNS(null,"clip-path","url(#"+b.clipId+")"),this.pgrp.appendChild(this.cgrp)},closePath:function(){var a=this.current,b=a.path.getAttributeNS(null,"d");b+="Z",a.path.setAttributeNS(null,"d",b)},setLeading:function(a){this.current.leading=-a},setTextRise:function(a){this.current.textRise=a},setHScale:function(a){this.current.textHScale=a/100},setGState:function(a){for(var b=0,c=a.length;c>b;b++){var d=a[b],e=d[0],f=d[1];switch(e){case"LW":this.setLineWidth(f);break;case"LC":this.setLineCap(f);break;case"LJ":this.setLineJoin(f);break;case"ML":this.setMiterLimit(f);break;case"D":this.setDash(f[0],f[1]);break;case"RI":break;case"FL":break;case"Font":this.setFont(f);break;case"CA":break;case"ca":break;case"BM":break;case"SMask":}}},fill:function(){var a=this.current;a.element.setAttributeNS(null,"fill",a.fillColor)},stroke:function(){var a=this.current;a.element.setAttributeNS(null,"stroke",a.strokeColor),a.element.setAttributeNS(null,"fill","none")},eoFill:function(){var a=this.current;a.element.setAttributeNS(null,"fill",a.fillColor),a.element.setAttributeNS(null,"fill-rule","evenodd")},fillStroke:function(){this.stroke(),this.fill()},eoFillStroke:function(){this.current.element.setAttributeNS(null,"fill-rule","evenodd"),this.fillStroke()},closeStroke:function(){this.closePath(),this.stroke()},closeFillStroke:function(){this.closePath(),this.fillStroke()},paintSolidColorImageMask:function(){var a=this.current,b=document.createElementNS(g,"svg:rect");b.setAttributeNS(null,"x","0"),b.setAttributeNS(null,"y","0"),b.setAttributeNS(null,"width","1px"),b.setAttributeNS(null,"height","1px"),b.setAttributeNS(null,"fill",a.fillColor),this.tgrp.appendChild(b)},paintJpegXObject:function(a,b,c){var e=this.current,f=this.objs.get(a),h=document.createElementNS(g,"svg:image");h.setAttributeNS(i,"xlink:href",f.src),h.setAttributeNS(null,"width",f.width+"px"),h.setAttributeNS(null,"height",f.height+"px"),h.setAttributeNS(null,"x","0"),h.setAttributeNS(null,"y",d(-c)),h.setAttributeNS(null,"transform","scale("+d(1/b)+" "+d(-1/c)+")"),this.tgrp.appendChild(h),e.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp)},paintImageXObject:function(a){var c=this.objs.get(a);return c?void this.paintInlineImageXObject(c):void b("Dependent image isn't ready yet")},paintInlineImageXObject:function(a,b){var c=this.current,e=a.width,f=a.height,h=ua(a),j=document.createElementNS(g,"svg:rect");j.setAttributeNS(null,"x","0"),j.setAttributeNS(null,"y","0"),j.setAttributeNS(null,"width",d(e)),j.setAttributeNS(null,"height",d(f)),c.element=j,this.clip("nonzero");var k=document.createElementNS(g,"svg:image");k.setAttributeNS(i,"xlink:href",h),k.setAttributeNS(null,"x","0"),k.setAttributeNS(null,"y",d(-f)),k.setAttributeNS(null,"width",d(e)+"px"),k.setAttributeNS(null,"height",d(f)+"px"),k.setAttributeNS(null,"transform","scale("+d(1/e)+" "+d(-1/f)+")"),b?b.appendChild(k):this.tgrp.appendChild(k),c.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp)},paintImageMaskXObject:function(a){var b=this.current,c=a.width,e=a.height,f=b.fillColor;b.maskId="mask"+m++;var h=document.createElementNS(g,"svg:mask");h.setAttributeNS(null,"id",b.maskId);var i=document.createElementNS(g,"svg:rect");i.setAttributeNS(null,"x","0"),i.setAttributeNS(null,"y","0"),i.setAttributeNS(null,"width",d(c)),i.setAttributeNS(null,"height",d(e)),i.setAttributeNS(null,"fill",f),i.setAttributeNS(null,"mask","url(#"+b.maskId+")"),this.defs.appendChild(h),this.tgrp.appendChild(i),this.paintInlineImageXObject(a,h)},paintFormXObjectBegin:function(a,b){if(this.save(),q(a)&&6===a.length&&this.transform(a[0],a[1],a[2],a[3],a[4],a[5]),q(b)&&4===b.length){var c=b[2]-b[0],e=b[3]-b[1],f=document.createElementNS(g,"svg:rect");f.setAttributeNS(null,"x",b[0]),f.setAttributeNS(null,"y",b[1]),f.setAttributeNS(null,"width",d(c)),f.setAttributeNS(null,"height",d(e)),this.current.element=f,this.clip("nonzero"),this.endPath()}},paintFormXObjectEnd:function(){this.restore()}},f}();PDFJS.SVGGraphics=wa}.call("undefined"==typeof window?this:window),PDFJS.workerSrc||"undefined"==typeof document||(PDFJS.workerSrc=function(){"use strict";var a=document.body||document.getElementsByTagName("head")[0],b=a.lastChild.src;return b&&b.replace(/\.js$/i,".worker.js")}()),"undefined"==typeof PDFJS&&(("undefined"!=typeof window?window:this).PDFJS={}),PDFJS.version="1.1.551",PDFJS.build="2a5616c",function(){"use strict";function a(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.infos&&console.log("Info: "+a)}function b(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.warnings&&console.log("Warning: "+a)}function c(a){throw PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.errors&&(console.log("Error: "+a),console.log(d())),aa.notify(_.unknown),new Error(a)}function d(){try{throw new Error}catch(a){return a.stack?a.stack.split("\n").slice(2).join("\n"):""}}function e(a,b){a||c(b)}function f(a,b){if(!a)return!1;var c=/^[a-z][a-z0-9+\-.]*(?=:)/i.exec(a);if(!c)return b;switch(c=c[0].toLowerCase()){case"http":case"https":case"ftp":case"mailto":case"tel":return!0;default:return!1}}function g(a,b,c){return Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!1}),c}function h(){switch(PDFJS.openExternalLinksInNewWindow&&(b("PDFJS.openExternalLinksInNewWindow is deprecated, use PDFJS.externalLinkTarget instead."),PDFJS.externalLinkTarget===ba.NONE&&(PDFJS.externalLinkTarget=ba.BLANK),PDFJS.openExternalLinksInNewWindow=!1),PDFJS.externalLinkTarget){case ba.NONE:return!1;case ba.SELF:case ba.BLANK:case ba.PARENT:case ba.TOP:return!0}return b("PDFJS.externalLinkTarget is invalid: "+PDFJS.externalLinkTarget),PDFJS.externalLinkTarget=ba.NONE,!1}function i(a){e(null!==a&&"object"==typeof a&&void 0!==a.length,"Invalid argument for bytesToString");var b=a.length,c=8192;if(c>b)return String.fromCharCode.apply(null,a);for(var d=[],f=0;b>f;f+=c){var g=Math.min(f+c,b),h=a.subarray(f,g);d.push(String.fromCharCode.apply(null,h))}return d.join("")}function j(a){e("string"==typeof a,"Invalid argument for stringToBytes");for(var b=a.length,c=new Uint8Array(b),d=0;b>d;++d)c[d]=255&a.charCodeAt(d);return c}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,255&a)}function l(a){for(var b=1,c=0;a>b;)b<<=1,c++;return c}function m(a,b){return a[b]<<24>>24}function n(a,b){return a[b]<<8|a[b+1]}function o(a,b){return(a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3])>>>0}function p(){var a=new Uint8Array(2);a[0]=1;var b=new Uint16Array(a.buffer);return 1===b[0]}function q(){var a=document.createElement("canvas");a.width=a.height=1;var b=a.getContext("2d"),c=b.createImageData(1,1);return"undefined"!=typeof c.data.buffer}function r(a){var b,c=a.length,d=[];if("þ"===a[0]&&"ÿ"===a[1])for(b=2;c>b;b+=2)d.push(String.fromCharCode(a.charCodeAt(b)<<8|a.charCodeAt(b+1)));else for(b=0;c>b;++b){var e=oa[a.charCodeAt(b)];d.push(e?String.fromCharCode(e):a.charAt(b))}return d.join("")}function s(a){return decodeURIComponent(escape(a))}function t(a){return unescape(encodeURIComponent(a))}function u(a){for(var b in a)return!1;return!0}function v(a){return"boolean"==typeof a}function w(a){return"number"==typeof a&&(0|a)===a}function x(a){return"number"==typeof a}function y(a){return"string"==typeof a}function z(a){return a instanceof ya}function A(a,b){return a instanceof za&&(void 0===b||a.cmd===b)}function B(a,b){if(!(a instanceof Aa))return!1;if(!b)return!0;var c=a.get("Type");return z(c)&&c.name===b}function C(a){return a instanceof Array}function D(a){return"object"==typeof a&&null!==a&&void 0!==a.getBytes}function E(a){return"object"==typeof a&&null!==a&&void 0!==a.byteLength}function F(a){return a instanceof Ba}function G(){var a={};return a.promise=new Promise(function(b,c){a.resolve=b,a.reject=c}),a}function H(a,b){this.name=a,this.comObj=b,this.callbackIndex=1,this.postMessageTransfers=!0;var d=this.callbacksCapabilities={},e=this.actionHandler={};e.console_log=[function(a){console.log.apply(console,a)}],e.console_error=[function(a){console.error.apply(console,a)}],e._unsupported_feature=[function(a){aa.notify(a)}],b.onmessage=function(a){var f=a.data;if(f.isReply){var g=f.callbackId;if(f.callbackId in d){var h=d[g];delete d[g],"error"in f?h.reject(f.error):h.resolve(f.data)}else c("Cannot resolve callback "+g)}else if(f.action in e){var i=e[f.action];f.callbackId?Promise.resolve().then(function(){return i[0].call(i[1],f.data)}).then(function(a){b.postMessage({isReply:!0,callbackId:f.callbackId,data:a})},function(a){a instanceof Error&&(a+=""),b.postMessage({isReply:!0,callbackId:f.callbackId,error:a})}):i[0].call(i[1],f.data)}else c("Unknown action from worker: "+f.action)}}function I(){}function J(a,b,c){var d=b.get("Matrix"),e=b.get("BBox"),f=b.get("XStep"),g=b.get("YStep"),h=b.get("PaintType"),i=b.get("TilingType");return["TilingPattern",c,a,d,e,f,g,h,i]}function K(a){return a>=65520&&65535>=a?0:a>=62976&&63743>=a?Wb[a]||a:a}function L(a){for(var b=0,c=Xb.length;c>b;b++){var d=Xb[b];if(a>=d.begin&&a=b.begin&&a=b.begin&&a=b||!M(a.charCodeAt(0)))return a;for(var c="",d=b-1;d>=0;d--)c+=a[d];return c}function O(a){if(a.fontMatrix[0]!==T[0]){var b=.001/a.fontMatrix[0],c=a.widths;for(var d in c)c[d]*=b;a.defaultWidth*=b}}function P(a,b){switch(a){case"Type1":return"Type1C"===b?Z.TYPE1C:Z.TYPE1;case"CIDFontType0":return"CIDFontType0C"===b?Z.CIDFONTTYPE0C:Z.CIDFONTTYPE0;case"OpenType":return Z.OPENTYPE;case"TrueType":return Z.TRUETYPE;case"CIDFontType2":return Z.CIDFONTTYPE2;case"MMType1": +return Z.MMTYPE1;case"Type0":return Z.TYPE0;default:return Z.UNKNOWN}}function Q(a,b,c){var d,e,f,g=Object.create(null);if(a.baseEncodingName)for(f=Pb[a.baseEncodingName],e=0;e=0?g[e]=d:g[e]=0;else if(a.flags&Ob.Symbolic)for(e in b)g[e]=b[e];else for(f=Pb.StandardEncoding,e=0;e=0?g[e]=d:g[e]=0;var h=a.differences;if(h)for(e in h){var i=h[e];d=c.indexOf(i),d>=0?g[e]=d:g[e]=0}return g}function R(a){return a===Dc}var S="undefined"==typeof window?this:window,T=("undefined"==typeof window,[.001,0,0,.001,0,0]),U={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},V={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},W={WIDGET:1,TEXT:2,LINK:3},X={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5},Y={UNKNOWN:0,FLATE:1,LZW:2,DCT:3,JPX:4,JBIG:5,A85:6,AHX:7,CCF:8,RL:9},Z={UNKNOWN:0,TYPE1:1,TYPE1C:2,CIDFONTTYPE0:3,CIDFONTTYPE0C:4,TRUETYPE:5,CIDFONTTYPE2:6,TYPE3:7,OPENTYPE:8,TYPE0:9,MMTYPE1:10};S.PDFJS||(S.PDFJS={}),S.PDFJS.pdfBug=!1,PDFJS.VERBOSITY_LEVELS={errors:0,warnings:1,infos:5};var $=PDFJS.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91},_=PDFJS.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",smask:"smask",shadingPattern:"shadingPattern",font:"font"},aa=PDFJS.UnsupportedManager=function(){var a=[];return{listen:function(b){a.push(b)},notify:function(c){b('Unsupported feature "'+c+'"');for(var d=0,e=a.length;e>d;d++)a[d](c)}}}();PDFJS.isValidUrl=f,PDFJS.shadow=g;var ba=PDFJS.LinkTarget={NONE:0,SELF:1,BLANK:2,PARENT:3,TOP:4};PDFJS.isExternalLinkTargetSet=h;var ca=PDFJS.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2},da=function(){function a(a,b){this.name="PasswordException",this.message=a,this.code=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.PasswordException=da;var ea=function(){function a(a,b){this.name="UnknownErrorException",this.message=a,this.details=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.UnknownErrorException=ea;var fa=function(){function a(a){this.name="InvalidPDFException",this.message=a}return a.prototype=new Error,a.constructor=a,a}();PDFJS.InvalidPDFException=fa;var ga=function(){function a(a){this.name="MissingPDFException",this.message=a}return a.prototype=new Error,a.constructor=a,a}();PDFJS.MissingPDFException=ga;var ha=function(){function a(a,b){this.name="UnexpectedResponseException",this.message=a,this.status=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.UnexpectedResponseException=ha;var ia=function(){function a(a){this.message=a}return a.prototype=new Error,a.prototype.name="NotImplementedException",a.constructor=a,a}(),ja=function(){function a(a,b){this.begin=a,this.end=b,this.message="Missing data ["+a+", "+b+")"}return a.prototype=new Error,a.prototype.name="MissingDataException",a.constructor=a,a}(),ka=function(){function a(a){this.message=a}return a.prototype=new Error,a.prototype.name="XRefParseException",a.constructor=a,a}();Object.defineProperty(PDFJS,"isLittleEndian",{configurable:!0,get:function(){return g(PDFJS,"isLittleEndian",p())}}),Object.defineProperty(PDFJS,"hasCanvasTypedArrays",{configurable:!0,get:function(){return g(PDFJS,"hasCanvasTypedArrays",q())}});var la=function(){function a(a,b){this.buffer=a,this.byteLength=a.length,this.length=void 0===b?this.byteLength>>2:b,c(this.length)}function b(a){return{get:function(){var b=this.buffer,c=a<<2;return(b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24)>>>0},set:function(b){var c=this.buffer,d=a<<2;c[d]=255&b,c[d+1]=b>>8&255,c[d+2]=b>>16&255,c[d+3]=b>>>24&255}}}function c(c){for(;c>d;)Object.defineProperty(a.prototype,d,b(d)),d++}a.prototype=Object.create(null);var d=0;return a}(),ma=[1,0,0,1,0,0],na=PDFJS.Util=function(){function a(){}var b=["rgb(",0,",",0,",",0,")"];return a.makeCssRgb=function(a,c,d){return b[1]=a,b[3]=c,b[5]=d,b.join("")},a.transform=function(a,b){return[a[0]*b[0]+a[2]*b[1],a[1]*b[0]+a[3]*b[1],a[0]*b[2]+a[2]*b[3],a[1]*b[2]+a[3]*b[3],a[0]*b[4]+a[2]*b[5]+a[4],a[1]*b[4]+a[3]*b[5]+a[5]]},a.applyTransform=function(a,b){var c=a[0]*b[0]+a[1]*b[2]+b[4],d=a[0]*b[1]+a[1]*b[3]+b[5];return[c,d]},a.applyInverseTransform=function(a,b){var c=b[0]*b[3]-b[1]*b[2],d=(a[0]*b[3]-a[1]*b[2]+b[2]*b[5]-b[4]*b[3])/c,e=(-a[0]*b[1]+a[1]*b[0]+b[4]*b[1]-b[5]*b[0])/c;return[d,e]},a.getAxialAlignedBoundingBox=function(b,c){var d=a.applyTransform(b,c),e=a.applyTransform(b.slice(2,4),c),f=a.applyTransform([b[0],b[3]],c),g=a.applyTransform([b[2],b[1]],c);return[Math.min(d[0],e[0],f[0],g[0]),Math.min(d[1],e[1],f[1],g[1]),Math.max(d[0],e[0],f[0],g[0]),Math.max(d[1],e[1],f[1],g[1])]},a.inverseTransform=function(a){var b=a[0]*a[3]-a[1]*a[2];return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b,(a[2]*a[5]-a[4]*a[3])/b,(a[4]*a[1]-a[5]*a[0])/b]},a.apply3dTransform=function(a,b){return[a[0]*b[0]+a[1]*b[1]+a[2]*b[2],a[3]*b[0]+a[4]*b[1]+a[5]*b[2],a[6]*b[0]+a[7]*b[1]+a[8]*b[2]]},a.singularValueDecompose2dScale=function(a){var b=[a[0],a[2],a[1],a[3]],c=a[0]*b[0]+a[1]*b[2],d=a[0]*b[1]+a[1]*b[3],e=a[2]*b[0]+a[3]*b[2],f=a[2]*b[1]+a[3]*b[3],g=(c+f)/2,h=Math.sqrt((c+f)*(c+f)-4*(c*f-e*d))/2,i=g+h||1,j=g-h||1;return[Math.sqrt(i),Math.sqrt(j)]},a.normalizeRect=function(a){var b=a.slice(0);return a[0]>a[2]&&(b[0]=a[2],b[2]=a[0]),a[1]>a[3]&&(b[1]=a[3],b[3]=a[1]),b},a.intersect=function(b,c){function d(a,b){return a-b}var e=[b[0],b[2],c[0],c[2]].sort(d),f=[b[1],b[3],c[1],c[3]].sort(d),g=[];return b=a.normalizeRect(b),c=a.normalizeRect(c),e[0]===b[0]&&e[1]===c[0]||e[0]===c[0]&&e[1]===b[0]?(g[0]=e[1],g[2]=e[2],f[0]===b[1]&&f[1]===c[1]||f[0]===c[1]&&f[1]===b[1]?(g[1]=f[1],g[3]=f[2],g):!1):!1},a.sign=function(a){return 0>a?-1:1},a.appendToArray=function(a,b){Array.prototype.push.apply(a,b)},a.prependToArray=function(a,b){Array.prototype.unshift.apply(a,b)},a.extendObj=function(a,b){for(var c in b)a[c]=b[c]},a.getInheritableProperty=function(a,b){for(;a&&!a.has(b);)a=a.get("Parent");return a?a.get(b):null},a.inherit=function(a,b,c){a.prototype=Object.create(b.prototype),a.prototype.constructor=a;for(var d in c)a.prototype[d]=c[d]},a.loadScript=function(a,b){var c=document.createElement("script"),d=!1;c.setAttribute("src",a),b&&(c.onload=function(){d||b(),d=!0}),document.getElementsByTagName("head")[0].appendChild(c)},a}(),oa=(PDFJS.PageViewport=function(){function a(a,b,c,d,e,f){this.viewBox=a,this.scale=b,this.rotation=c,this.offsetX=d,this.offsetY=e;var g,h,i,j,k=(a[2]+a[0])/2,l=(a[3]+a[1])/2;switch(c%=360,c=0>c?c+360:c){case 180:g=-1,h=0,i=0,j=1;break;case 90:g=0,h=1,i=1,j=0;break;case 270:g=0,h=-1,i=-1,j=0;break;default:g=1,h=0,i=0,j=-1}f&&(i=-i,j=-j);var m,n,o,p;0===g?(m=Math.abs(l-a[1])*b+d,n=Math.abs(k-a[0])*b+e,o=Math.abs(a[3]-a[1])*b,p=Math.abs(a[2]-a[0])*b):(m=Math.abs(k-a[0])*b+d,n=Math.abs(l-a[1])*b+e,o=Math.abs(a[2]-a[0])*b,p=Math.abs(a[3]-a[1])*b),this.transform=[g*b,h*b,i*b,j*b,m-g*b*k-i*b*l,n-h*b*k-j*b*l],this.width=o,this.height=p,this.fontScale=b}return a.prototype={clone:function(b){b=b||{};var c="scale"in b?b.scale:this.scale,d="rotation"in b?b.rotation:this.rotation;return new a(this.viewBox.slice(),c,d,this.offsetX,this.offsetY,b.dontFlip)},convertToViewportPoint:function(a,b){return na.applyTransform([a,b],this.transform)},convertToViewportRectangle:function(a){var b=na.applyTransform([a[0],a[1]],this.transform),c=na.applyTransform([a[2],a[3]],this.transform);return[b[0],b[1],c[0],c[1]]},convertToPdfPoint:function(a,b){return na.applyInverseTransform([a,b],this.transform)}},a}(),[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364]);PDFJS.createPromiseCapability=G,function(){function a(a){this._status=c,this._handlers=[];try{a.call(this,this._resolve.bind(this),this._reject.bind(this))}catch(b){this._reject(b)}}if(S.Promise)return"function"!=typeof S.Promise.all&&(S.Promise.all=function(a){var b,c,d=0,e=[],f=new S.Promise(function(a,d){b=a,c=d});return a.forEach(function(a,f){d++,a.then(function(a){e[f]=a,d--,0===d&&b(e)},c)}),0===d&&b(e),f}),"function"!=typeof S.Promise.resolve&&(S.Promise.resolve=function(a){return new S.Promise(function(b){b(a)})}),"function"!=typeof S.Promise.reject&&(S.Promise.reject=function(a){return new S.Promise(function(b,c){c(a)})}),void("function"!=typeof S.Promise.prototype["catch"]&&(S.Promise.prototype["catch"]=function(a){return S.Promise.prototype.then(void 0,a)}));var c=0,d=1,e=2,f=500,g={handlers:[],running:!1,unhandledRejections:[],pendingRejectionCheck:!1,scheduleHandlers:function(a){a._status!==c&&(this.handlers=this.handlers.concat(a._handlers),a._handlers=[],this.running||(this.running=!0,setTimeout(this.runHandlers.bind(this),0)))},runHandlers:function(){for(var a=1,b=Date.now()+a;this.handlers.length>0;){var c=this.handlers.shift(),f=c.thisPromise._status,g=c.thisPromise._value;try{f===d?"function"==typeof c.onResolve&&(g=c.onResolve(g)):"function"==typeof c.onReject&&(g=c.onReject(g),f=d,c.thisPromise._unhandledRejection&&this.removeUnhandeledRejection(c.thisPromise))}catch(h){f=e,g=h}if(c.nextPromise._updateStatus(f,g),Date.now()>=b)break}return this.handlers.length>0?void setTimeout(this.runHandlers.bind(this),0):void(this.running=!1)},addUnhandledRejection:function(a){this.unhandledRejections.push({promise:a,time:Date.now()}),this.scheduleRejectionCheck()},removeUnhandeledRejection:function(a){a._unhandledRejection=!1;for(var b=0;bf){var d=this.unhandledRejections[c].promise._value,e="Unhandled rejection: "+d;d.stack&&(e+="\n"+d.stack),b(e),this.unhandledRejections.splice(c),c--}this.unhandledRejections.length&&this.scheduleRejectionCheck()}.bind(this),f))}};a.all=function(b){function c(a){g._status!==e&&(i=[],f(a))}var d,f,g=new a(function(a,b){d=a,f=b}),h=b.length,i=[];if(0===h)return d(i),g;for(var j=0,k=b.length;k>j;++j){var l=b[j],m=function(a){return function(b){g._status!==e&&(i[a]=b,h--,0===h&&d(i))}}(j);a.isPromise(l)?l.then(m,c):m(l)}return g},a.isPromise=function(a){return a&&"function"==typeof a.then},a.resolve=function(b){return new a(function(a){a(b)})},a.reject=function(b){return new a(function(a,c){c(b)})},a.prototype={_status:null,_value:null,_handlers:null,_unhandledRejection:null,_updateStatus:function(b,c){if(this._status!==d&&this._status!==e){if(b===d&&a.isPromise(c))return void c.then(this._updateStatus.bind(this,d),this._updateStatus.bind(this,e));this._status=b,this._value=c,b===e&&0===this._handlers.length&&(this._unhandledRejection=!0,g.addUnhandledRejection(this)),g.scheduleHandlers(this)}},_resolve:function(a){this._updateStatus(d,a)},_reject:function(a){this._updateStatus(e,a)},then:function(b,c){var d=new a(function(a,b){this.resolve=a,this.reject=b});return this._handlers.push({thisPromise:this,onResolve:b,onReject:c,nextPromise:d}),g.scheduleHandlers(this),d},"catch":function(a){return this.then(void 0,a)}},S.Promise=a}();(function(){function a(a,b,c){for(;a.lengthb;++b){var g=d[b].name;g.length>f&&(f=g.length)}for(b=0,c=d.length;c>b;++b){var h=d[b],i=h.end-h.start;e+=a(h.name," ",f)+" "+i+"ms\n"}return e}},c})();PDFJS.createBlob=function(a,b){if("undefined"!=typeof Blob)return new Blob([a],{type:b});var c=new MozBlobBuilder;return c.append(a),c.getBlob(b)},PDFJS.createObjectURL=function(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return function(b,c){if(!PDFJS.disableCreateObjectURL&&"undefined"!=typeof URL&&URL.createObjectURL){var d=PDFJS.createBlob(b,c);return URL.createObjectURL(d)}for(var e="data:"+c+";base64,",f=0,g=b.length;g>f;f+=3){var h=255&b[f],i=255&b[f+1],j=255&b[f+2],k=h>>2,l=(3&h)<<4|i>>4,m=g>f+1?(15&i)<<2|j>>6:64,n=g>f+2?63&j:64;e+=a[k]+a[l]+a[m]+a[n]}return e}}(),H.prototype={on:function(a,b,d){var e=this.actionHandler;e[a]&&c('There is already an actionName called "'+a+'"'),e[a]=[b,d]},send:function(a,b,c){var d={action:a,data:b};this.postMessage(d,c)},sendWithPromise:function(a,b,c){var d=this.callbackIndex++,e={action:a,data:b,callbackId:d},f=G();this.callbacksCapabilities[d]=f;try{this.postMessage(e,c)}catch(g){f.reject(g)}return f.promise},postMessage:function(a,b){b&&this.postMessageTransfers?this.comObj.postMessage(a,b):this.comObj.postMessage(a)}};var pa=function(){function a(a,b){this.url=a,b=b||{},this.isHttp=/^https?:/i.test(a),this.httpHeaders=this.isHttp&&b.httpHeaders||{},this.withCredentials=b.withCredentials||!1,this.getXhr=b.getXhr||function(){return new XMLHttpRequest},this.currXhrId=0,this.pendingRequests={},this.loadedRequests={}}function b(a){var b=a.response;if("string"!=typeof b)return b;for(var c=b.length,d=new Uint8Array(c),e=0;c>e;e++)d[e]=255&b.charCodeAt(e);return d.buffer}var c=200,d=206,e=function(){try{var a=new XMLHttpRequest;return a.open("GET","https://example.com"),a.responseType="moz-chunked-arraybuffer","moz-chunked-arraybuffer"===a.responseType}catch(b){return!1}}();return a.prototype={requestRange:function(a,b,c){var d={begin:a,end:b};for(var e in c)d[e]=c[e];return this.request(d)},requestFull:function(a){return this.request(a)},request:function(a){var b=this.getXhr(),c=this.currXhrId++,d=this.pendingRequests[c]={xhr:b};b.open("GET",this.url),b.withCredentials=this.withCredentials;for(var f in this.httpHeaders){var g=this.httpHeaders[f];"undefined"!=typeof g&&b.setRequestHeader(f,g)}if(this.isHttp&&"begin"in a&&"end"in a){var h=a.begin+"-"+(a.end-1);b.setRequestHeader("Range","bytes="+h),d.expectedStatus=206}else d.expectedStatus=200;var i=e&&!!a.onProgressiveData;return i?(b.responseType="moz-chunked-arraybuffer",d.onProgressiveData=a.onProgressiveData,d.mozChunked=!0):b.responseType="arraybuffer",a.onError&&(b.onerror=function(c){a.onError(b.status)}),b.onreadystatechange=this.onStateChange.bind(this,c),b.onprogress=this.onProgress.bind(this,c),d.onHeadersReceived=a.onHeadersReceived,d.onDone=a.onDone,d.onError=a.onError,d.onProgress=a.onProgress,b.send(null),c},onProgress:function(a,c){var d=this.pendingRequests[a];if(d){if(d.mozChunked){var e=b(d.xhr);d.onProgressiveData(e)}var f=d.onProgress;f&&f(c)}},onStateChange:function(a,e){var f=this.pendingRequests[a];if(f){var g=f.xhr;if(g.readyState>=2&&f.onHeadersReceived&&(f.onHeadersReceived(),delete f.onHeadersReceived),4===g.readyState&&a in this.pendingRequests){if(delete this.pendingRequests[a],0===g.status&&this.isHttp)return void(f.onError&&f.onError(g.status));var h=g.status||c,i=h===c&&f.expectedStatus===d;if(!i&&h!==f.expectedStatus)return void(f.onError&&f.onError(g.status));this.loadedRequests[a]=!0;var j=b(g);if(h===d){var k=g.getResponseHeader("Content-Range"),l=/bytes (\d+)-(\d+)\/(\d+)/.exec(k),m=parseInt(l[1],10);f.onDone({begin:m,chunk:j})}else f.onProgressiveData?f.onDone(null):f.onDone({begin:0,chunk:j})}}},hasPendingRequests:function(){for(var a in this.pendingRequests)return!0;return!1},getRequestXhr:function(a){return this.pendingRequests[a].xhr},isStreamingRequest:function(a){return!!this.pendingRequests[a].onProgressiveData},isPendingRequest:function(a){return a in this.pendingRequests},isLoadedRequest:function(a){return a in this.loadedRequests},abortAllRequests:function(){for(var a in this.pendingRequests)this.abortRequest(0|a)},abortRequest:function(a){var b=this.pendingRequests[a].xhr;delete this.pendingRequests[a],b.abort()}},a}(),qa=function(){function a(a,b,c){this.bytes=new Uint8Array(a),this.start=0,this.pos=0,this.end=a,this.chunkSize=b,this.loadedChunks=[],this.numChunksLoaded=0,this.numChunks=Math.ceil(a/b),this.manager=c,this.progressiveDataLength=0,this.lastSuccessfulEnsureByteChunk=-1}return a.prototype={getMissingChunks:function(){for(var a=[],b=0,c=this.numChunks;c>b;++b)this.loadedChunks[b]||a.push(b);return a},getBaseStreams:function(){return[this]},allChunksLoaded:function(){return this.numChunksLoaded===this.numChunks},onReceiveData:function(a,b){var c=a+b.byteLength;e(a%this.chunkSize===0,"Bad begin offset: "+a);var d=this.bytes.length;e(c%this.chunkSize===0||c===d,"Bad end offset: "+c),this.bytes.set(new Uint8Array(b),a);var f,g=this.chunkSize,h=Math.floor(a/g),i=Math.floor((c-1)/g)+1;for(f=h;i>f;++f)this.loadedChunks[f]||(this.loadedChunks[f]=!0,++this.numChunksLoaded)},onReceiveProgressiveData:function(a){var b=this.progressiveDataLength,c=Math.floor(b/this.chunkSize);this.bytes.set(new Uint8Array(a),b),b+=a.byteLength,this.progressiveDataLength=b;var d,e=b>=this.end?this.numChunks:Math.floor(b/this.chunkSize);for(d=c;e>d;++d)this.loadedChunks[d]||(this.loadedChunks[d]=!0,++this.numChunksLoaded)},ensureByte:function(a){var b=Math.floor(a/this.chunkSize);if(b!==this.lastSuccessfulEnsureByteChunk){if(!this.loadedChunks[b])throw new ja(a,a+1);this.lastSuccessfulEnsureByteChunk=b}},ensureRange:function(a,b){if(!(a>=b||b<=this.progressiveDataLength))for(var c=this.chunkSize,d=Math.floor(a/c),e=Math.floor((b-1)/c)+1,f=d;e>f;++f)if(!this.loadedChunks[f])throw new ja(a,b)},nextEmptyChunk:function(a){for(var b,c=this.numChunks,d=0;c>d;++d)if(b=(a+d)%c,!this.loadedChunks[b])return b;return null},hasChunk:function(a){return!!this.loadedChunks[a]},get length(){return this.end-this.start},get isEmpty(){return 0===this.length},getByte:function(){var a=this.pos;return a>=this.end?-1:(this.ensureByte(a),this.bytes[this.pos++])},getUint16:function(){var a=this.getByte(),b=this.getByte();return-1===a||-1===b?-1:(a<<8)+b},getInt32:function(){var a=this.getByte(),b=this.getByte(),c=this.getByte(),d=this.getByte();return(a<<24)+(b<<16)+(c<<8)+d},getBytes:function(a){var b=this.bytes,c=this.pos,d=this.end;if(!a)return this.ensureRange(c,d),b.subarray(c,d);var e=c+a;return e>d&&(e=d),this.ensureRange(c,e),this.pos=e,b.subarray(c,e)},peekByte:function(){var a=this.getByte();return this.pos--,a},peekBytes:function(a){var b=this.getBytes(a);return this.pos-=b.length,b},getByteRange:function(a,b){return this.ensureRange(a,b),this.bytes.subarray(a,b)},skip:function(a){a||(a=1),this.pos+=a},reset:function(){this.pos=this.start},moveStart:function(){this.start=this.pos},makeSubStream:function(a,b,c){function d(){}this.ensureRange(a,a+b),d.prototype=Object.create(this),d.prototype.getMissingChunks=function(){for(var a=this.chunkSize,b=Math.floor(this.start/a),c=Math.floor((this.end-1)/a)+1,d=[],e=b;c>e;++e)this.loadedChunks[e]||d.push(e);return d};var e=new d;return e.pos=e.start=a,e.end=a+b||this.end,e.dict=c,e},isStream:!0},a}(),ra=function(){function a(a,b,c,d){this.stream=new qa(a,b,this),this.length=a,this.chunkSize=b,this.url=c,this.disableAutoFetch=d.disableAutoFetch;var e=this.msgHandler=d.msgHandler;if(d.chunkedViewerLoading)e.on("OnDataRange",this.onReceiveData.bind(this)),e.on("OnDataProgress",this.onProgress.bind(this)),this.sendRequest=function(a,b){e.send("RequestDataRange",{begin:a,end:b})};else{var f=function(){return new XMLHttpRequest};this.networkManager=new pa(this.url,{getXhr:f,httpHeaders:d.httpHeaders,withCredentials:d.withCredentials}),this.sendRequest=function(a,b){this.networkManager.requestRange(a,b,{onDone:this.onReceiveData.bind(this),onProgress:this.onProgress.bind(this)})}}this.currRequestId=0,this.chunksNeededByRequest={},this.requestsByChunk={},this.promisesByRequest={},this.progressiveDataLength=0,this._loadedStreamCapability=G(),d.initialData&&this.onReceiveData({chunk:d.initialData})}return a.prototype={onLoadedStream:function(){return this._loadedStreamCapability.promise},requestAllChunks:function(){var a=this.stream.getMissingChunks();return this._requestChunks(a),this._loadedStreamCapability.promise},_requestChunks:function(a){var b,c,d,e=this.currRequestId++;for(this.chunksNeededByRequest[e]=b={},c=0,d=a.length;d>c;c++)this.stream.hasChunk(a[c])||(b[a[c]]=!0);if(u(b))return Promise.resolve();var f=G();this.promisesByRequest[e]=f;var g=[];for(var h in b)h=0|h,h in this.requestsByChunk||(this.requestsByChunk[h]=[],g.push(h)),this.requestsByChunk[h].push(e);if(!g.length)return f.promise;var i=this.groupChunks(g);for(c=0;cf;++f)e.push(f);return this._requestChunks(e)},requestRanges:function(a){a=a||[];for(var b=[],c=0;cf;++f)b.indexOf(f)<0&&b.push(f);return b.sort(function(a,b){return a-b}),this._requestChunks(b)},groupChunks:function(a){for(var b=[],c=-1,d=-1,e=0;ec&&(c=f),d>=0&&d+1!==f&&(b.push({beginChunk:c,endChunk:d+1}),c=f),e+1===a.length&&b.push({beginChunk:c,endChunk:f+1}),d=f}return b},onProgress:function(a){var b=this.stream.numChunksLoaded*this.chunkSize+a.loaded;this.msgHandler.send("DocProgress",{loaded:b,total:this.length})},onReceiveData:function(a){var b=a.chunk,c=void 0===a.begin,d=c?this.progressiveDataLength:a.begin,e=d+b.byteLength,f=Math.floor(d/this.chunkSize),g=eb;++b){var k=this.requestsByChunk[b]||[];for(delete this.requestsByChunk[b],h=0;hf){b("Page_getInheritedPageProp: maximum loop count exceeded.");break}c=c.get("Parent")}return d?1===d.length||!B(d[0])||e>f?d[0]:Aa.merge(this.xref,d):Aa.empty},get content(){return this.getPageProp("Contents")},get resources(){return g(this,"resources",this.getInheritedPageProp("Resources"))},get mediaBox(){var a=this.getInheritedPageProp("MediaBox");return C(a)&&4===a.length||(a=c),g(this,"mediaBox",a)},get view(){var a=this.mediaBox,b=this.getInheritedPageProp("CropBox");return C(b)&&4===b.length?(b=na.intersect(b,a),b?g(this,"view",b):g(this,"view",a)):g(this,"view",a)},get rotate(){var a=this.getInheritedPageProp("Rotate")||0;return a%90!==0?a=0:a>=360?a%=360:0>a&&(a=(a%360+360)%360),g(this,"rotate",a)},getContentStream:function(){var a,b=this.content;if(C(b)){var c,d=this.xref,e=b.length,f=[];for(c=0;e>c;++c)f.push(d.fetchIfRef(b[c]));a=new Pc(f)}else a=D(b)?b:new _c;return a},loadResources:function(a){return this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources")),this.resourcesPromise.then(function(){var b=new Ia(this.resources.map,a,this.xref);return b.load()}.bind(this))},getOperatorList:function(a,b,c){var d=this,e=this.pdfManager,f=e.ensure(this,"getContentStream",[]),g=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),h=new vb(e,this.xref,a,this.pageIndex,"p"+this.pageIndex+"_",this.idCounters,this.fontCache),i=Promise.all([f,g]),j=i.then(function(e){var f=e[0],g=new xb(c,a,d.pageIndex);return a.send("StartRenderPage",{transparency:h.hasBlendModes(d.resources),pageIndex:d.pageIndex,intent:c}),h.getOperatorList(f,b,d.resources,g).then(function(){return g})}),k=e.ensure(this,"annotations");return Promise.all([j,k]).then(function(a){var d=a[0],f=a[1];if(0===f.length)return d.flush(!0),d;var g=Na.appendToOperatorList(f,d,e,h,b,c);return g.then(function(){return d.flush(!0),d})})},extractTextContent:function(a){var b={on:function(){},send:function(){}},c=this,d=this.pdfManager,e=d.ensure(this,"getContentStream",[]),f=this.loadResources(["ExtGState","XObject","Font"]),g=Promise.all([e,f]);return g.then(function(e){var f=e[0],g=new vb(d,c.xref,b,c.pageIndex,"p"+c.pageIndex+"_",c.idCounters,c.fontCache);return g.getTextContent(f,a,c.resources)})},getAnnotationsData:function(){for(var a=this.annotations,b=[],c=0,d=a.length;d>c;++c)b.push(a[c].data);return b},get annotations(){for(var a=[],b=this.getInheritedPageProp("Annots")||[],c=new I,d=0,e=b.length;e>d;++d){var f=b[d],h=c.create(this.xref,f);h&&(h.isViewable()||h.isPrintable())&&a.push(h)}return g(this,"annotations",a)}},a}(),xa=function(){function b(a,b,e){D(b)?d.call(this,a,b,e):E(b)?d.call(this,a,new Mc(b),e):c("PDFDocument: Unknown argument type")}function d(a,b,c){e(b.length>0,"stream must have data"),this.pdfManager=a,this.stream=b;var d=new Fa(this.stream,c,a);this.xref=d}function f(a,b,c,d){var e=a.pos,f=a.end,g=[];e+c>f&&(c=f-e);for(var h=0;c>h;++h)g.push(String.fromCharCode(a.getByte()));var i=g.join("");a.pos=e;var j=d?i.lastIndexOf(b):i.indexOf(b);return-1===j?!1:(a.pos+=j,!0)}var h=1024,i="\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",k={get entries(){return g(this,"entries",{Title:y,Author:y,Subject:y,Keywords:y,Creator:y,Producer:y,CreationDate:y,ModDate:y,Trapped:z})}};return b.prototype={parse:function(b){this.setup(b);var c=this.catalog.catDict.get("Version");z(c)&&(this.pdfFormatVersion=c.name);try{if(this.acroForm=this.catalog.catDict.get("AcroForm"),this.acroForm){this.xfa=this.acroForm.get("XFA");var d=this.acroForm.get("Fields");d&&C(d)&&0!==d.length||this.xfa||(this.acroForm=null)}}catch(e){a("Something wrong with AcroForm entry"),this.acroForm=null}},get linearization(){var b=null;if(this.stream.length)try{b=Hc.create(this.stream)}catch(c){if(c instanceof ja)throw c;a(c)}return g(this,"linearization",b)},get startXRef(){var a=this.stream,b=0,c=this.linearization;if(c)a.reset(),f(a,"endobj",1024)&&(b=a.pos+6);else{for(var d=1024,e=!1,h=a.end;!e&&h>0;)h-=d-"startxref".length,0>h&&(h=0),a.pos=h,e=f(a,"startxref",d,!0);if(e){a.skip(9);var i;do i=a.getByte();while(Gc.isSpace(i)); +for(var j="";i>=32&&57>=i;)j+=String.fromCharCode(i),i=a.getByte();b=parseInt(j,10),isNaN(b)&&(b=0)}}return g(this,"startXRef",b)},get mainXRefEntriesOffset(){var a=0,b=this.linearization;return b&&(a=b.mainXRefEntriesOffset),g(this,"mainXRefEntriesOffset",a)},checkHeader:function(){var a=this.stream;if(a.reset(),f(a,"%PDF-",1024)){a.moveStart();for(var b,c=12,d="";(b=a.getByte())>32&&!(d.length>=c);)d+=String.fromCharCode(b);return void(this.pdfFormatVersion||(this.pdfFormatVersion=d.substring(5)))}},parseStartXRef:function(){var a=this.startXRef;this.xref.setStartXRef(a)},setup:function(a){this.xref.parse(a),this.catalog=new Ea(this.pdfManager,this.xref)},get numPages(){var a=this.linearization,b=a?a.numPages:this.catalog.numPages;return g(this,"numPages",b)},get documentInfo(){var b,c={PDFFormatVersion:this.pdfFormatVersion,IsAcroFormPresent:!!this.acroForm,IsXFAPresent:!!this.xfa};try{b=this.xref.trailer.get("Info")}catch(d){a("The document information dictionary is invalid.")}if(b){var e=k.entries;for(var f in e)if(b.has(f)){var h=b.get(f);e[f](h)?c[f]="string"!=typeof h?h:r(h):a('Bad value in document info for "'+f+'"')}}return g(this,"documentInfo",c)},get fingerprint(){var a,b=this.xref,c="",d=b.trailer.get("ID");d&&C(d)&&d[0]&&y(d[0])&&d[0]!==i?a=j(d[0]):(this.stream.ensureRange&&this.stream.ensureRange(0,Math.min(h,this.stream.end)),a=gb(this.stream.bytes.subarray(0,h),0,h));for(var e=0,f=a.length;f>e;e++){var k=a[e].toString(16);c+=1===k.length?"0"+k:k}return g(this,"fingerprint",c)},getPage:function(a){return this.catalog.getPage(a)},cleanup:function(){return this.catalog.cleanup()}},b}(),ya=function(){function a(a){this.name=a}a.prototype={};var b={};return a.get=function(c){var d=b[c];return d?d:b[c]=new a(c)},a}(),za=function(){function a(a){this.cmd=a}a.prototype={};var b={};return a.get=function(c){var d=b[c];return d?d:b[c]=new a(c)},a}(),Aa=function(){function a(a){if(!z(a.Type))return!0;var b=a.Type.name;return d[b]===!0}function b(a){this.map=Object.create(null),this.xref=a,this.objId=null,this.__nonSerializable__=c}var c=function(){return c},d={Background:!0,ExtGState:!0,Halftone:!0,Layout:!0,Mask:!0,Pagination:!0,Printing:!0};return b.prototype={assignXref:function(a){this.xref=a},get:function(a,b,c){var d,e=this.xref;return"undefined"!=typeof(d=this.map[a])||a in this.map||"undefined"==typeof b?e?e.fetchIfRef(d):d:"undefined"!=typeof(d=this.map[b])||b in this.map||"undefined"==typeof c?e?e.fetchIfRef(d):d:(d=this.map[c]||null,e?e.fetchIfRef(d):d)},getAsync:function(a,b,c){var d,e=this.xref;return"undefined"!=typeof(d=this.map[a])||a in this.map||"undefined"==typeof b?e?e.fetchIfRefAsync(d):Promise.resolve(d):"undefined"!=typeof(d=this.map[b])||b in this.map||"undefined"==typeof c?e?e.fetchIfRefAsync(d):Promise.resolve(d):(d=this.map[c]||null,e?e.fetchIfRefAsync(d):Promise.resolve(d))},getArray:function(a,b,c){var d=this.get(a,b,c),e=this.xref;if(!C(d)||!e)return d;d=d.slice();for(var f=0,g=d.length;g>f;f++)F(d[f])&&(d[f]=e.fetch(d[f]));return d},getRaw:function(a){return this.map[a]},getAll:function(){var c,d,e=Object.create(null),f=null;for(c in this.map)d=this.get(c),d instanceof b?a(d)?(f||(f=[])).push({target:e,key:c,obj:d}):e[c]=this.getRaw(c):e[c]=d;if(!f)return e;for(var g=Object.create(null);f.length>0;){var h=f.shift(),i=h.obj,j=i.objId;if(j&&j in g)h.target[h.key]=g[j];else{var k=Object.create(null);for(c in i.map)d=i.get(c),d instanceof b?a(d)?f.push({target:k,key:c,obj:d}):k[c]=i.getRaw(c):k[c]=d;j&&(g[j]=k),h.target[h.key]=k}}return e},getKeys:function(){return Object.keys(this.map)},set:function(a,b){this.map[a]=b},has:function(a){return a in this.map},forEach:function(a){for(var b in this.map)a(b,this.get(b))}},b.empty=new b(null),b.merge=function(a,c){for(var d=new b(a),e=0,f=c.length;f>e;e++){var g=c[e];if(B(g))for(var h in g.map)d.map[h]||(d.map[h]=g.map[h])}return d},b}(),Ba=function(){function a(a,b){this.num=a,this.gen=b}return a.prototype={toString:function(){var a=this.num+"R";return 0!==this.gen&&(a+=this.gen),a}},a}(),Ca=function(){function a(){this.dict={}}return a.prototype={has:function(a){return a.toString()in this.dict},put:function(a){this.dict[a.toString()]=!0},remove:function(a){delete this.dict[a.toString()]}},a}(),Da=function(){function a(){this.dict=Object.create(null)}return a.prototype={get:function(a){return this.dict[a.toString()]},has:function(a){return a.toString()in this.dict},put:function(a,b){this.dict[a.toString()]=b},putAlias:function(a,b){this.dict[a.toString()]=this.get(b)},forEach:function(a,b){for(var c in this.dict)a.call(b,this.dict[c])},clear:function(){this.dict=Object.create(null)}},a}(),Ea=function(){function d(a,b){this.pdfManager=a,this.xref=b,this.catDict=b.getCatalogObj(),this.fontCache=new Da,e(B(this.catDict),"catalog object is not a dictionary"),this.pagePromises=[]}return d.prototype={get metadata(){var b=this.catDict.getRaw("Metadata");if(!F(b))return g(this,"metadata",null);var c,d=this.xref.encrypt?this.xref.encrypt.encryptMetadata:!1,e=this.xref.fetch(b,!d);if(e&&B(e.dict)){var f=e.dict.get("Type"),h=e.dict.get("Subtype");if(z(f)&&z(h)&&"Metadata"===f.name&&"XML"===h.name)try{c=s(i(e.getBytes()))}catch(j){a("Skipping invalid metadata.")}}return g(this,"metadata",c)},get toplevelPagesDict(){var a=this.catDict.get("Pages");return e(B(a),"invalid top-level pages dictionary"),g(this,"toplevelPagesDict",a)},get documentOutline(){var a=null;try{a=this.readDocumentOutline()}catch(c){if(c instanceof ja)throw c;b("Unable to read document outline")}return g(this,"documentOutline",a)},readDocumentOutline:function(){var a=this.xref,b=this.catDict.get("Outlines"),d={items:[]};if(B(b)){b=b.getRaw("First");var e=new Ca;if(F(b)){var f=[{obj:b,parent:d}];for(e.put(b);f.length>0;){var g=f.shift(),h=a.fetchIfRef(g.obj);if(null!==h){h.has("Title")||c("Invalid outline item");var i=h.get("A");i?i=i.get("D"):h.has("Dest")&&(i=h.getRaw("Dest"),z(i)&&(i=i.name));var j=h.get("Title"),k={dest:i,title:r(j),color:h.get("C")||[0,0,0],count:h.get("Count"),bold:!!(2&h.get("F")),italic:!!(1&h.get("F")),items:[]};g.parent.items.push(k),b=h.getRaw("First"),F(b)&&!e.has(b)&&(f.push({obj:b,parent:k}),e.put(b)),b=h.getRaw("Next"),F(b)&&!e.has(b)&&(f.push({obj:b,parent:g.parent}),e.put(b))}}}}return d.items.length>0?d.items:null},get numPages(){var a=this.toplevelPagesDict.get("Count");return e(w(a),"page count in top level pages object is not an integer"),g(this,"num",a)},get destinations(){function a(a){return B(a)?a.get("D"):a}var b,c,d=this.xref,e={},f=this.catDict.get("Names");if(f&&f.has("Dests")?b=f.getRaw("Dests"):this.catDict.has("Dests")&&(c=this.catDict.get("Dests")),c&&(f=c,f.forEach(function(b,c){c&&(e[b]=a(c))})),b){var h=new Ga(b,d),i=h.getAll();for(var j in i)i.hasOwnProperty(j)&&(e[j]=a(i[j]))}return g(this,"destinations",e)},getDestination:function(a){function b(a){return B(a)?a.get("D"):a}var c,d,e=this.xref,f=null,g=this.catDict.get("Names");if(g&&g.has("Dests")?c=g.getRaw("Dests"):this.catDict.has("Dests")&&(d=this.catDict.get("Dests")),d){var h=d.get(a);h&&(f=b(h))}if(c){var i=new Ga(c,e);f=b(i.get(a))}return f},get attachments(){var a,b=this.xref,c=null,d=this.catDict.get("Names");if(d&&(a=d.getRaw("EmbeddedFiles")),a){var e=new Ga(a,b),f=e.getAll();for(var h in f)if(f.hasOwnProperty(h)){var i=new Ha(f[h],b);c||(c={}),c[r(h)]=i.serializable}}return g(this,"attachments",c)},get javaScript(){function a(a){var b=a.get("S");if(z(b)&&"JavaScript"===b.name){var c=a.get("JS");if(D(c))c=i(c.getBytes());else if(!y(c))return;d.push(r(c))}}var b=this.xref,c=this.catDict.get("Names"),d=[];if(c&&c.has("JavaScript")){var e=new Ga(c.getRaw("JavaScript"),b),f=e.getAll();for(var h in f)if(f.hasOwnProperty(h)){var j=f[h];B(j)&&a(j)}}var k=this.catDict.get("OpenAction");if(B(k,"Action")){var l=k.get("S");if(z(l)&&"Named"===l.name){var m=k.get("N");z(m)&&"Print"===m.name&&d.push("print({});")}else a(k)}return g(this,"javaScript",d)},cleanup:function(){var a=[];return this.fontCache.forEach(function(b){a.push(b)}),Promise.all(a).then(function(a){for(var b=0,c=a.length;c>b;b++){var d=a[b].dict;delete d.translated}this.fontCache.clear()}.bind(this))},getPage:function(a){return a in this.pagePromises||(this.pagePromises[a]=this.getPageDict(a).then(function(b){var c=b[0],d=b[1];return new wa(this.pdfManager,this.xref,a,c,d,this.fontCache)}.bind(this))),this.pagePromises[a]},getPageDict:function(a){function b(){for(;d.length;){var i=d.pop();if(F(i))return void g.fetchAsync(i).then(function(e){return B(e,"Page")||B(e)&&!e.has("Kids")?void(a===f?c.resolve([e,i]):(f++,b())):(d.push(e),void b())},c.reject);e(B(i),"page dictionary kid reference points to wrong type of object");var j=i.get("Count");if(0===j&&(h=!0),a>=f+j)f+=j;else{var k=i.get("Kids");if(e(C(k),"page dictionary kids object is not an array"),h||j!==k.length)for(var l=k.length-1;l>=0;l--)d.push(k[l]);else d=[k[a-f]],f=a}}c.reject("Page index "+a+" not found.")}var c=G(),d=[this.catDict.getRaw("Pages")],f=0,g=this.xref,h=!1;return b(),c.promise},getPageIndex:function(a){function b(a){var b,d=0;return f.fetchAsync(a).then(function(a){return a?(b=a.getRaw("Parent"),a.getAsync("Parent")):null}).then(function(a){return a?a.getAsync("Kids"):null}).then(function(g){if(!g)return null;for(var h=[],i=!1,j=0;jh;h++){d.streamPos=b.pos,d.entryNum=h,d.parserBuf1=a.buf1,d.parserBuf2=a.buf2;var i={};i.offset=a.getObj(),i.gen=a.getObj();var j=a.getObj();A(j,"f")?i.free=!0:A(j,"n")&&(i.uncompressed=!0),w(i.offset)&&w(i.gen)&&(i.free||i.uncompressed)||c("Invalid entry in XRef subsection: "+f+", "+g),this.entries[h+f]||(this.entries[h+f]=i)}d.entryNum=0,d.streamPos=b.pos,d.parserBuf1=a.buf1,d.parserBuf2=a.buf2,delete d.firstEntryNum,delete d.entryCount}return 1===f&&this.entries[1]&&this.entries[1].free&&this.entries.shift(),this.entries[0]&&!this.entries[0].free&&c("Invalid XRef table: unexpected first object"),e},processXRefStream:function(a){if(!("streamState"in this)){var b=a.dict,c=b.get("W"),d=b.get("Index");d||(d=[0,b.get("Size")]),this.streamState={entryRanges:d,byteWidths:c,entryNum:0,streamPos:a.pos}}return this.readXRefStream(a),delete this.streamState,a.dict},readXRefStream:function(a){var b,d,e=this.streamState;a.pos=e.streamPos;for(var f=e.byteWidths,g=f[0],h=f[1],i=f[2],j=e.entryRanges;j.length>0;){var k=j[0],l=j[1];for(w(k)&&w(l)||c("Invalid XRef range fields: "+k+", "+l),w(g)&&w(h)&&w(i)||c("Invalid XRef entry fields length: "+k+", "+l),b=e.entryNum;l>b;++b){e.entryNum=b,e.streamPos=a.pos;var m=0,n=0,o=0;for(d=0;g>d;++d)m=m<<8|a.getByte();for(0===g&&(m=1),d=0;h>d;++d)n=n<<8|a.getByte();for(d=0;i>d;++d)o=o<<8|a.getByte();var p={};switch(p.offset=n,p.gen=o,m){case 0:p.free=!0;break;case 1:p.uncompressed=!0;break;case 2:break;default:c("Invalid XRef entry type: "+m)}this.entries[k+b]||(this.entries[k+b]=p)}e.entryNum=0,e.streamPos=a.pos,j.splice(0,2)}},indexObjects:function(){function a(a,b){for(var c="",f=a[b];f!==d&&f!==e&&f!==h&&!(++b>=a.length);)c+=String.fromCharCode(f),f=a[b];return c}function b(a,b,c){for(var d=c.length,e=a.length,f=0;e>b;){for(var g=0;d>g&&a[b+g]===c[g];)++g;if(g>=d)break;b++,f++}return f}var c=9,d=10,e=13,f=32,g=37,h=60,i=/^(\d+)\s+(\d+)\s+obj\b/,j=new Uint8Array([116,114,97,105,108,101,114]),k=new Uint8Array([115,116,97,114,116,120,114,101,102]),l=new Uint8Array([101,110,100,111,98,106]),m=new Uint8Array([47,88,82,101,102]);this.entries.length=0;var n=this.stream;n.pos=0;for(var o=n.getBytes(),p=n.start,q=o.length,r=[],s=[];q>p;){var t=o[p];if(t!==c&&t!==d&&t!==e&&t!==f)if(t!==g){var u,v=a(o,p);if(0!==v.indexOf("xref")||4!==v.length&&!/\s/.test(v[4]))if(u=i.exec(v)){"undefined"==typeof this.entries[u[1]]&&(this.entries[u[1]]={offset:p-n.start,gen:0|u[2],uncompressed:!0});var w=b(o,p,l)+7,x=o.subarray(p,p+w),y=b(x,0,m);w>y&&x[y+5]<64&&(s.push(p-n.start),this.xrefstms[p-n.start]=1),p+=w}else 0!==v.indexOf("trailer")||7!==v.length&&!/\s/.test(v[7])?p+=v.length+1:(r.push(p),p+=b(o,p,k));else p+=b(o,p,j),r.push(p),p+=b(o,p,k)}else do{if(++p,p>=q)break;t=o[p]}while(t!==d&&t!==e);else++p}var z,C;for(z=0,C=s.length;C>z;++z)this.startXRefQueue.push(s[z]),this.readXRef(!0);var D;for(z=0,C=r.length;C>z;++z){n.pos=r[z];var E=new Fc(new Gc(n),!0,this),F=E.getObj();if(A(F,"trailer")&&B(D=E.getObj())&&D.has("ID"))return D}if(D)return D;throw new fa("Invalid PDF structure")},readXRef:function(b){var d=this.stream;try{for(;this.startXRefQueue.length;){var e=this.startXRefQueue[0];d.pos=e+d.start;var f,g=new Fc(new Gc(d),!0,this),h=g.getObj();if(A(h,"xref")){if(f=this.processXRefTable(g),this.topDict||(this.topDict=f),h=f.get("XRefStm"),w(h)){var i=h;i in this.xrefstms||(this.xrefstms[i]=1,this.startXRefQueue.push(i))}}else w(h)?(w(g.getObj())&&A(g.getObj(),"obj")&&D(h=g.getObj())||c("Invalid XRef stream"),f=this.processXRefStream(h),this.topDict||(this.topDict=f),f||c("Failed to read XRef stream")):c("Invalid XRef stream header");h=f.get("Prev"),w(h)?this.startXRefQueue.push(h):F(h)&&this.startXRefQueue.push(h.num),this.startXRefQueue.shift()}return this.topDict}catch(j){if(j instanceof ja)throw j;a("(while reading XRef): "+j)}if(!b)throw new ka},getEntry:function(a){var b=this.entries[a];return b&&!b.free&&b.offset?b:null},fetchIfRef:function(a){return F(a)?this.fetch(a):a},fetch:function(a,b){e(F(a),"ref object is not a reference");var c=a.num;if(c in this.cache){var d=this.cache[c];return d}var f=this.getEntry(c);return null===f?this.cache[c]=null:(f=f.uncompressed?this.fetchUncompressed(a,f,b):this.fetchCompressed(f,b),B(f)?f.objId=a.toString():D(f)&&(f.dict.objId=a.toString()),f)},fetchUncompressed:function(a,b,d){var e=a.gen,f=a.num;b.gen!==e&&c("inconsistent generation in XRef");var g=this.stream.makeSubStream(b.offset+this.stream.start),h=new Fc(new Gc(g),!0,this),i=h.getObj(),j=h.getObj(),k=h.getObj();if(w(i)&&parseInt(i,10)===f&&w(j)&&parseInt(j,10)===e&&A(k)||c("bad XRef entry"),!A(k,"obj")){if(0===k.cmd.indexOf("obj")&&(f=parseInt(k.cmd.substring(3),10),!isNaN(f)))return f;c("bad XRef entry")}return b=this.encrypt&&!d?h.getObj(this.encrypt.createCipherTransform(f,e)):h.getObj(),D(b)||(this.cache[f]=b),b},fetchCompressed:function(a,b){var d=a.offset,e=this.fetch(new Ba(d,0));D(e)||c("bad ObjStm stream");var f=e.dict.get("First"),g=e.dict.get("N");w(f)&&w(g)||c("invalid first and n parameters for ObjStm stream");var h=new Fc(new Gc(e),!1,this);h.allowStreams=!0;var i,j,k=[],l=[];for(i=0;g>i;++i){j=h.getObj(),w(j)||c("invalid object number in the ObjStm stream: "+j),l.push(j);var m=h.getObj();w(m)||c("invalid object offset in the ObjStm stream: "+m)}for(i=0;g>i;++i){k.push(h.getObj()),j=l[i];var n=this.entries[j];n&&n.offset===d&&n.gen===i&&(this.cache[j]=k[i])}return a=k[a.gen],void 0===a&&c("bad XRef entry for compressed object"),a},fetchIfRefAsync:function(a){return F(a)?this.fetchAsync(a):Promise.resolve(a)},fetchAsync:function(a,b){var c=this.stream.manager,d=this;return new Promise(function e(f,g){try{f(d.fetch(a,b))}catch(h){if(h instanceof ja)return void c.requestRange(h.begin,h.end).then(function(){e(f,g)},g);g(h)}})},getCatalogObj:function(){return this.root}},d}(),Ga=function(){function a(a,b){this.root=a,this.xref=b}return a.prototype={getAll:function(){var a={};if(!this.root)return a;var b=this.xref,d=new Ca;d.put(this.root);for(var e=[this.root];e.length>0;){var f,g,h=b.fetchIfRef(e.shift());if(B(h))if(h.has("Kids")){var i=h.get("Kids");for(f=0,g=i.length;g>f;f++){var j=i[f];d.has(j)&&c("invalid destinations"),e.push(j),d.put(j)}}else{var k=h.get("Names");if(k)for(f=0,g=k.length;g>f;f+=2)a[b.fetchIfRef(k[f])]=b.fetchIfRef(k[f+1])}}return a},get:function(a){if(!this.root)return null;for(var c,d,e,f=this.xref,g=f.fetchIfRef(this.root),h=0,i=10;g.has("Kids");){if(h++,h>i)return b("Search depth limit for named destionations has been reached."),null;var j=g.get("Kids");if(!C(j))return null;for(c=0,d=j.length-1;d>=c;){e=c+d>>1;var k=f.fetchIfRef(j[e]),l=k.get("Limits");if(af.fetchIfRef(l[1]))){g=f.fetchIfRef(j[e]);break}c=e+1}}if(c>d)return null}var m=g.get("Names");if(C(m))for(c=0,d=m.length-2;d>=c;)if(e=c+d&-2,af.fetchIfRef(m[e])))return f.fetchIfRef(m[e+1]);c=e+2}return null}},a}(),Ha=function(){function a(a,c){a&&B(a)&&(this.xref=c,this.root=a,a.has("FS")&&(this.fs=a.get("FS")),this.description=a.has("Desc")?r(a.get("Desc")):"",a.has("RF")&&b("Related file specifications are not supported"),this.contentAvailable=!0,a.has("EF")||(this.contentAvailable=!1,b("Non-embedded file specifications are not supported")))}function c(a){return a.has("UF")?a.get("UF"):a.has("F")?a.get("F"):a.has("Unix")?a.get("Unix"):a.has("Mac")?a.get("Mac"):a.has("DOS")?a.get("DOS"):null}return a.prototype={get filename(){if(!this._filename&&this.root){var a=c(this.root)||"unnamed";this._filename=r(a).replace(/\\\\/g,"\\").replace(/\\\//g,"/").replace(/\\/g,"/")}return this._filename},get content(){if(!this.contentAvailable)return null;!this.contentRef&&this.root&&(this.contentRef=c(this.root.get("EF")));var a=null;if(this.contentRef){var d=this.xref,e=d.fetchIfRef(this.contentRef);e&&D(e)?a=e.getBytes():b("Embedded file specification points to non-existing/invalid content")}else b("Embedded file specification does not have a content");return a},get serializable(){return{filename:this.filename,content:this.content}}},a}(),Ia=function(){function a(a){return F(a)||B(a)||C(a)||D(a)}function b(b,c){var d;if(B(b)||D(b)){var e;e=B(b)?b.map:b.dict.map;for(var f in e)d=e[f],a(d)&&c.push(d)}else if(C(b))for(var g=0,h=b.length;h>g;g++)d=b[g],a(d)&&c.push(d)}function c(a,b,c){this.obj=a,this.keys=b,this.xref=c,this.refSet=null,this.capability=null}return c.prototype={load:function(){var a=this.keys;if(this.capability=G(),!(this.xref.stream instanceof qa)||0===this.xref.stream.getMissingChunks().length)return this.capability.resolve(),this.capability.promise;this.refSet=new Ca;for(var b=[],c=0;c=3&&(this.borderStyle.setHorizontalCornerRadius(d[0]),this.borderStyle.setVerticalCornerRadius(d[1]),this.borderStyle.setWidth(d[2]),4===d.length&&this.borderStyle.setDashArray(d[3]))}else this.borderStyle.setWidth(0)},isInvisible:function(){var a=this.data;return!!(a&&a.annotationFlags&&1&a.annotationFlags)},isViewable:function(){var a=this.data;return!(this.isInvisible()||!a||a.annotationFlags&&34&a.annotationFlags||!a.rect)},isPrintable:function(){var a=this.data;return!(!(!this.isInvisible()&&a&&a.annotationFlags&&4&a.annotationFlags)||2&a.annotationFlags||!a.rect)},loadResources:function(a){return new Promise(function(b,c){this.appearance.dict.getAsync("Resources").then(function(d){if(!d)return void b();var e=new Ia(d.map,a,d.xref);e.load().then(function(){b(d)},c)},c)}.bind(this))},getOperatorList:function(b,c){if(!this.appearance)return Promise.resolve(new xb);var d=this.data,e=this.appearance.dict,f=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),g=e.get("BBox")||[0,0,1,1],h=e.get("Matrix")||[1,0,0,1,0,0],i=a(d.rect,g,h),j=this;return f.then(function(a){var e=new xb;return e.addOp($.beginAnnotation,[d.rect,i,h]),b.getOperatorList(j.appearance,c,a,e).then(function(){return e.addOp($.endAnnotation,[]),j.appearance.reset(),e})})}},c.appendToOperatorList=function(a,b,c,d,e,f){function g(a){h.reject(a)}for(var h=G(),i=[],j=0,k=a.length;k>j;++j)("display"===f&&a[j].isViewable()||"print"===f&&a[j].isPrintable())&&i.push(a[j].getOperatorList(d,e));return Promise.all(i).then(function(a){b.addOp($.beginAnnotations,[]);for(var c=0,d=a.length;d>c;++c){var e=a[c];b.addOpList(e)}b.addOp($.endAnnotations,[]),h.resolve()},g),h.promise},c}(),Oa=function(){function a(){this.width=1,this.style=X.SOLID,this.dashArray=[3],this.horizontalCornerRadius=0,this.verticalCornerRadius=0}return a.prototype={setWidth:function(a){a===(0|a)&&(this.width=a)},setStyle:function(a){if(a)switch(a.name){case"S":this.style=X.SOLID;break;case"D":this.style=X.DASHED;break;case"B":this.style=X.BEVELED;break;case"I":this.style=X.INSET;break;case"U":this.style=X.UNDERLINE}},setDashArray:function(a){if(C(a)&&a.length>0){for(var b=!0,c=!0,d=0,e=a.length;e>d;d++){var f=a[d],g=+f>=0;if(!g){b=!1;break}f>0&&(c=!1)}b&&!c?this.dashArray=a:this.width=0}else a&&(this.width=0)},setHorizontalCornerRadius:function(a){a===(0|a)&&(this.horizontalCornerRadius=a)},setVerticalCornerRadius:function(a){a===(0|a)&&(this.verticalCornerRadius=a)}},a}(),Pa=function(){function a(a){Na.call(this,a);var b=a.dict,c=this.data;c.fieldValue=r(na.getInheritableProperty(b,"V")||""),c.alternativeText=r(b.get("TU")||""),c.defaultAppearance=na.getInheritableProperty(b,"DA")||"";var d=na.getInheritableProperty(b,"FT");c.fieldType=z(d)?d.name:"",c.fieldFlags=na.getInheritableProperty(b,"Ff")||0,this.fieldResources=na.getInheritableProperty(b,"DR")||Aa.empty;for(var e=[],f=b,g=a.ref;f;){var h=f.get("Parent"),i=f.getRaw("Parent"),j=f.get("T");if(j)e.unshift(r(j));else if(h&&g){var k,l,m=h.get("Kids");for(k=0,l=m.length;l>k;k++){var n=m[k];if(n.num===g.num&&n.gen===g.gen)break}e.unshift("`"+k)}f=h,g=i}c.fullName=e.join(".")}var c=Na.prototype;return na.inherit(a,Na,{isViewable:function(){return"Sig"===this.data.fieldType?(b("unimplemented annotation type: Widget signature"),!1):c.isViewable.call(this)}}),a}(),Qa=function(){function a(a){Pa.call(this,a),this.data.textAlignment=na.getInheritableProperty(a.dict,"Q"),this.data.annotationType=W.WIDGET,this.data.hasHtml=!this.data.hasAppearance&&!!this.data.fieldValue}return na.inherit(a,Pa,{getOperatorList:function(a,b){if(this.appearance)return Na.prototype.getOperatorList.call(this,a,b);var c=new xb,d=this.data;if(!d.defaultAppearance)return Promise.resolve(c);var e=new Mc(j(d.defaultAppearance));return a.getOperatorList(e,b,this.fieldResources,c).then(function(){return c})}}),a}(),Ra=function(){function a(a){Na.call(this,a);var b=a.dict,c=this.data,d=b.get("Contents"),e=b.get("T");c.annotationType=W.TEXT,c.content=r(d||""),c.title=r(e||""),c.hasHtml=!0,c.hasAppearance?c.name="NoIcon":(c.rect[1]=c.rect[3]-Ma,c.rect[2]=c.rect[0]+Ma,c.name=b.has("Name")?b.get("Name").name:"Note"),b.has("C")&&(c.hasBgColor=!0)}return na.inherit(a,Na,{}),a}(),Sa=function(){ +function a(a){Na.call(this,a);var d=a.dict,e=this.data;e.annotationType=W.LINK,e.hasHtml=!0;var g=d.get("A");if(g&&B(g)){var h=g.get("S").name;if("URI"===h){var i=g.get("URI");z(i)?i="/"+i.name:i&&(i=c(i)),f(i,!1)||(i="");try{e.url=s(i)}catch(j){e.url=i}}else if("GoTo"===h)e.dest=g.get("D");else if("GoToR"===h){var k=g.get("F");B(k)&&(i=k.get("F")||""),f(i,!1)||(i=""),e.url=i,e.dest=g.get("D")}else"Named"===h?e.action=g.get("N").name:b("unrecognized link type: "+h)}else if(d.has("Dest")){var l=d.get("Dest");e.dest=z(l)?l.name:l}}function c(a){return a&&0===a.indexOf("www.")?"http://"+a:a}return na.inherit(a,Na,{}),a}(),Ta=function(){var b=0,d=2,e=3,f=4;return{getSampleArray:function(a,b,c,d){var e,f,g=1;for(e=0,f=a.length;f>e;e++)g*=a[e];g*=b;var h=new Array(g),i=0,j=0,k=1/(Math.pow(2,c)-1),l=d.getBytes((g*c+7)/8),m=0;for(e=0;g>e;e++){for(;c>i;)j<<=8,j|=l[m++],i+=8;i-=c,h[e]=(j>>i)*k,j&=(1<d;d++){var f=a.fetchIfRef(b[d]);c.push(Ta.parse(a,f))}return function(a,b,d,e){for(var f=0,g=c.length;g>f;f++)c[f](a,b,d,e+f)}},constructSampled:function(d,e){function f(a){for(var b=a.length,c=[],d=0,e=0;b>e;e+=2)c[d]=[a[e],a[e+1]],++d;return c}var g=e.get("Domain"),h=e.get("Range");g&&h||c("No domain or range");var i=g.length/2,j=h.length/2;g=f(g),h=f(h);var k=e.get("Size"),l=e.get("BitsPerSample"),m=e.get("Order")||1;1!==m&&a("No support for cubic spline interpolation: "+m);var n=e.get("Encode");if(!n){n=[];for(var o=0;i>o;++o)n.push(0),n.push(k[o]-1)}n=f(n);var p=e.get("Decode");p=p?f(p):h;var q=this.getSampleArray(k,j,l,d);return[b,i,g,n,p,q,k,j,Math.pow(2,l)-1,h]},constructSampledFromIR:function(a){function b(a,b,c,d,e){return d+(a-b)*((e-d)/(c-b))}return function(c,d,e,f){var g,h,i=a[1],j=a[2],k=a[3],l=a[4],m=a[5],n=a[6],o=a[7],p=a[9],q=1<h;h++)r[h]=1;var t=o,u=1;for(g=0;i>g;++g){var v=j[g][0],w=j[g][1],x=Math.min(Math.max(c[d+g],v),w),y=b(x,v,w,k[g][0],k[g][1]),z=n[g];y=Math.min(Math.max(y,0),z-1);var A=z-1>y?Math.floor(y):y-1,B=A+1-y,C=y-A,D=A*t,E=D+t;for(h=0;q>h;h++)h&u?(r[h]*=C,s[h]+=E):(r[h]*=B,s[h]+=D);t*=z,u<<=1}for(h=0;o>h;++h){var F=0;for(g=0;q>g;g++)F+=m[s[g]+h]*r[g];F=b(F,0,1,l[h][0],l[h][1]),e[f+h]=Math.min(Math.max(F,p[h][0]),p[h][1])}}},constructInterpolated:function(a,b){var e=b.get("C0")||[0],f=b.get("C1")||[1],g=b.get("N");C(e)&&C(f)||c("Illegal dictionary for interpolated function");for(var h=e.length,i=[],j=0;h>j;++j)i.push(f[j]-e[j]);return[d,e,i,g]},constructInterpolatedFromIR:function(a){var b=a[1],c=a[2],d=a[3],e=c.length;return function(a,f,g,h){for(var i=1===d?a[f]:Math.pow(a[f],d),j=0;e>j;++j)g[h+j]=b[j]+i*c[j]}},constructStiched:function(a,b,d){var f=b.get("Domain");f||c("No domain");var g=f.length/2;1!==g&&c("Bad domain for stiched function");for(var h=b.get("Functions"),i=[],j=0,k=h.length;k>j;++j)i.push(Ta.getIR(d,d.fetchIfRef(h[j])));var l=b.get("Bounds"),m=b.get("Encode");return[e,f,l,m,i]},constructStichedFromIR:function(a){for(var b=a[1],c=a[2],d=a[3],e=a[4],f=[],g=new Float32Array(1),h=0,i=e.length;i>h;h++)f.push(Ta.fromIR(e[h]));return function(a,e,h,i){for(var j=function(a,b,c){return a>c?a=c:b>a&&(a=b),a},k=j(a[e],b[0],b[1]),l=0,m=c.length;m>l&&!(k0&&(n=c[l-1]);var o=b[1];l>1,h=c.length>>1,i=new Va(e),j={},k=8192,l=k,m=new Float32Array(h);return function(a,b,c,e){var f,k,n="",o=m;for(f=0;h>f;f++)k=a[b+f],o[f]=k,n+=k+"_";var p=j[n];if(void 0!==p)return void c.set(p,e);var q=new Float32Array(g),r=i.execute(o),s=r.length-g;for(f=0;g>f;f++){k=r[s+f];var t=d[2*f];t>k?k=t:(t=d[2*f+1],k>t&&(k=t)),q[f]=k}l>0&&(l--,j[n]=q),c.set(q,e)}}}}(),Ua=function(){function a(a){this.stack=a?Array.prototype.slice.call(a,0):[]}var b=100;return a.prototype={push:function(a){this.stack.length>=b&&c("PostScript function stack overflow."),this.stack.push(a)},pop:function(){return this.stack.length<=0&&c("PostScript function stack underflow."),this.stack.pop()},copy:function(a){this.stack.length+a>=b&&c("PostScript function stack overflow.");for(var d=this.stack,e=d.length-a,f=a-1;f>=0;f--,e++)d.push(d[e])},index:function(a){this.push(this.stack[this.stack.length-a-1])},roll:function(a,b){var c,d,e,f=this.stack,g=f.length-a,h=f.length-1,i=g+(b-Math.floor(b/a)*a);for(c=g,d=h;d>c;c++,d--)e=f[c],f[c]=f[d],f[d]=e;for(c=g,d=i-1;d>c;c++,d--)e=f[c],f[c]=f[d],f[d]=e;for(c=i,d=h;d>c;c++,d--)e=f[c],f[c]=f[d],f[d]=e}},a}(),Va=function(){function a(a){this.operators=a}return a.prototype={execute:function(a){for(var b,d,e,f=new Ua(a),g=0,h=this.operators,i=h.length;i>g;)if(b=h[g++],"number"!=typeof b)switch(b){case"jz":e=f.pop(),d=f.pop(),d||(g=e);break;case"j":d=f.pop(),g=d;break;case"abs":d=f.pop(),f.push(Math.abs(d));break;case"add":e=f.pop(),d=f.pop(),f.push(d+e);break;case"and":e=f.pop(),d=f.pop(),v(d)&&v(e)?f.push(d&&e):f.push(d&e);break;case"atan":d=f.pop(),f.push(Math.atan(d));break;case"bitshift":e=f.pop(),d=f.pop(),d>0?f.push(d<>e);break;case"ceiling":d=f.pop(),f.push(Math.ceil(d));break;case"copy":d=f.pop(),f.copy(d);break;case"cos":d=f.pop(),f.push(Math.cos(d));break;case"cvi":d=0|f.pop(),f.push(d);break;case"cvr":break;case"div":e=f.pop(),d=f.pop(),f.push(d/e);break;case"dup":f.copy(1);break;case"eq":e=f.pop(),d=f.pop(),f.push(d===e);break;case"exch":f.roll(2,1);break;case"exp":e=f.pop(),d=f.pop(),f.push(Math.pow(d,e));break;case"false":f.push(!1);break;case"floor":d=f.pop(),f.push(Math.floor(d));break;case"ge":e=f.pop(),d=f.pop(),f.push(d>=e);break;case"gt":e=f.pop(),d=f.pop(),f.push(d>e);break;case"idiv":e=f.pop(),d=f.pop(),f.push(d/e|0);break;case"index":d=f.pop(),f.index(d);break;case"le":e=f.pop(),d=f.pop(),f.push(e>=d);break;case"ln":d=f.pop(),f.push(Math.log(d));break;case"log":d=f.pop(),f.push(Math.log(d)/Math.LN10);break;case"lt":e=f.pop(),d=f.pop(),f.push(e>d);break;case"mod":e=f.pop(),d=f.pop(),f.push(d%e);break;case"mul":e=f.pop(),d=f.pop(),f.push(d*e);break;case"ne":e=f.pop(),d=f.pop(),f.push(d!==e);break;case"neg":d=f.pop(),f.push(-d);break;case"not":d=f.pop(),v(d)?f.push(!d):f.push(~d);break;case"or":e=f.pop(),d=f.pop(),v(d)&&v(e)?f.push(d||e):f.push(d|e);break;case"pop":f.pop();break;case"roll":e=f.pop(),d=f.pop(),f.roll(d,e);break;case"round":d=f.pop(),f.push(Math.round(d));break;case"sin":d=f.pop(),f.push(Math.sin(d));break;case"sqrt":d=f.pop(),f.push(Math.sqrt(d));break;case"sub":e=f.pop(),d=f.pop(),f.push(d-e);break;case"true":f.push(!0);break;case"truncate":d=f.pop(),d=0>d?Math.ceil(d):Math.floor(d),f.push(d);break;case"xor":e=f.pop(),d=f.pop(),v(d)&&v(e)?f.push(d!==e):f.push(d^e);break;default:c("Unknown operator "+b)}else f.push(b);return f.stack}},a}(),Wa=function(){function a(a){this.type=a}function b(b,c,d){a.call(this,"args"),this.index=b,this.min=c,this.max=d}function c(b){a.call(this,"literal"),this.number=b,this.min=b,this.max=b}function d(b,c,d,e,f){a.call(this,"binary"),this.op=b,this.arg1=c,this.arg2=d,this.min=e,this.max=f}function e(b,c){a.call(this,"max"),this.arg=b,this.min=b.min,this.max=c}function f(b,c,d){a.call(this,"var"),this.index=b,this.min=c,this.max=d}function g(b,c){a.call(this,"definition"),this.variable=b,this.arg=c}function h(){this.parts=[]}function i(a,b){return"literal"===b.type&&0===b.number?a:"literal"===a.type&&0===a.number?b:"literal"===b.type&&"literal"===a.type?new c(a.number+b.number):new d("+",a,b,a.min+b.min,a.max+b.max)}function j(a,b){if("literal"===b.type){if(0===b.number)return new c(0);if(1===b.number)return a;if("literal"===a.type)return new c(a.number*b.number)}if("literal"===a.type){if(0===a.number)return new c(0);if(1===a.number)return b}var e=Math.min(a.min*b.min,a.min*b.max,a.max*b.min,a.max*b.max),f=Math.max(a.min*b.min,a.min*b.max,a.max*b.min,a.max*b.max);return new d("*",a,b,e,f)}function k(a,b){if("literal"===b.type){if(0===b.number)return a;if("literal"===a.type)return new c(a.number-b.number)}return"binary"===b.type&&"-"===b.op&&"literal"===a.type&&1===a.number&&"literal"===b.arg1.type&&1===b.arg1.number?b.arg2:new d("-",a,b,a.min-b.max,a.max-b.min)}function l(a,b){return a.min>=b?new c(b):a.max<=b?a:new e(a,b)}function m(){}return a.prototype.visit=function(a){throw new Error("abstract method")},b.prototype=Object.create(a.prototype),b.prototype.visit=function(a){a.visitArgument(this)},c.prototype=Object.create(a.prototype),c.prototype.visit=function(a){a.visitLiteral(this)},d.prototype=Object.create(a.prototype),d.prototype.visit=function(a){a.visitBinaryOperation(this)},e.prototype=Object.create(a.prototype),e.prototype.visit=function(a){a.visitMin(this)},f.prototype=Object.create(a.prototype),f.prototype.visit=function(a){a.visitVariable(this)},g.prototype=Object.create(a.prototype),g.prototype.visit=function(a){a.visitVariableDefinition(this)},h.prototype={visitArgument:function(a){this.parts.push("Math.max(",a.min,", Math.min(",a.max,", src[srcOffset + ",a.index,"]))")},visitVariable:function(a){this.parts.push("v",a.index)},visitLiteral:function(a){this.parts.push(a.number)},visitBinaryOperation:function(a){this.parts.push("("),a.arg1.visit(this),this.parts.push(" ",a.op," "),a.arg2.visit(this),this.parts.push(")")},visitVariableDefinition:function(a){this.parts.push("var "),a.variable.visit(this),this.parts.push(" = "),a.arg.visit(this),this.parts.push(";")},visitMin:function(a){this.parts.push("Math.min("),a.arg.visit(this),this.parts.push(", ",a.max,")")},toString:function(){return this.parts.join("")}},m.prototype={compile:function(a,d,e){var m,n,o,p,q,r,s,t,u,v,w=[],x=[],y=d.length>>1,z=e.length>>1,A=0;for(m=0;y>m;m++)w.push(new b(m,d[2*m],d[2*m+1]));for(m=0,n=a.length;n>m;m++)if(v=a[m],"number"!=typeof v)switch(v){case"add":if(w.length<2)return null;r=w.pop(),q=w.pop(),w.push(i(q,r));break;case"cvr":if(w.length<1)return null;break;case"mul":if(w.length<2)return null;r=w.pop(),q=w.pop(),w.push(j(q,r));break;case"sub":if(w.length<2)return null;r=w.pop(),q=w.pop(),w.push(k(q,r));break;case"exch":if(w.length<2)return null;s=w.pop(),t=w.pop(),w.push(s,t);break;case"pop":if(w.length<1)return null;w.pop();break;case"index":if(w.length<1)return null;if(q=w.pop(),"literal"!==q.type)return null;if(o=q.number,0>o||(0|o)!==o||w.length=o||(0|o)!==o||(0|p)!==p||w.lengtha.min&&(g.unshift("Math.max(",d,", "),g.push(")")),fn&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){var p,q=8>=g?new Uint8Array(n):new Uint16Array(n);for(j=0;n>j;j++)q[j]=j;var r=new Uint8Array(3*n);this.getRgbBuffer(q,0,n,r,0,g,0);var s,t;if(o)for(m=new Uint8Array(3*l),t=0,j=0;l>j;++j)p=3*h[j],m[t++]=r[p],m[t++]=r[p+1],m[t++]=r[p+2];else for(s=0,j=0;l>j;++j)p=3*h[j],a[s++]=r[p],a[s++]=r[p+1],a[s++]=r[p+2],s+=i}else o?(m=new Uint8Array(3*l),this.getRgbBuffer(h,0,l,m,0,g,0)):this.getRgbBuffer(h,0,d*f,a,0,g,i);if(m)if(o)Bc.resize(m,g,3,b,c,d,e,a,i);else for(t=0,s=0,j=0,k=d*f;k>j;j++)a[s++]=m[t++],a[s++]=m[t++],a[s++]=m[t++],s+=i},usesZeroToOneRange:!0},a.parse=function(b,c,d){var e=a.parseToIR(b,c,d);return e instanceof Ya?e:a.fromIR(e)},a.fromIR=function(b){var d,e,f,g=C(b)?b[0]:b;switch(g){case"DeviceGrayCS":return this.singletons.gray;case"DeviceRgbCS":return this.singletons.rgb;case"DeviceCmykCS":return this.singletons.cmyk;case"CalGrayCS":return d=b[1].WhitePoint,e=b[1].BlackPoint,f=b[1].Gamma,new cb(d,e,f);case"CalRGBCS":d=b[1].WhitePoint,e=b[1].BlackPoint,f=b[1].Gamma;var h=b[1].Matrix;return new db(d,e,f,h);case"PatternCS":var i=b[1];return i&&(i=a.fromIR(i)),new Za(i);case"IndexedCS":var j=b[1],k=b[2],l=b[3];return new $a(a.fromIR(j),k,l);case"AlternateCS":var m=b[1],n=b[2],o=b[3];return new Ya(m,a.fromIR(n),Ta.fromIR(o));case"LabCS":d=b[1].WhitePoint,e=b[1].BlackPoint;var p=b[1].Range;return new eb(d,e,p);default:c("Unknown name "+g)}return null},a.parseToIR=function(d,e,f){if(z(d)){var g=f.get("ColorSpace");if(B(g)){var h=g.get(d.name);h&&(d=h)}}d=e.fetchIfRef(d);var i;if(z(d))switch(i=d.name,this.mode=i,i){case"DeviceGray":case"G":return"DeviceGrayCS";case"DeviceRGB":case"RGB":return"DeviceRgbCS";case"DeviceCMYK":case"CMYK":return"DeviceCmykCS";case"Pattern":return["PatternCS",null];default:c("unrecognized colorspace "+i)}else if(C(d)){i=e.fetchIfRef(d[0]).name,this.mode=i;var j,k,l;switch(i){case"DeviceGray":case"G":return"DeviceGrayCS";case"DeviceRGB":case"RGB":return"DeviceRgbCS";case"DeviceCMYK":case"CMYK":return"DeviceCmykCS";case"CalGray":return k=e.fetchIfRef(d[1]).getAll(),["CalGrayCS",k];case"CalRGB":return k=e.fetchIfRef(d[1]).getAll(),["CalRGBCS",k];case"ICCBased":var m=e.fetchIfRef(d[1]),n=m.dict;if(j=n.get("N"),l=n.get("Alternate")){var o=a.parseToIR(l,e,f),p=a.fromIR(o);if(p.numComps===j)return o;b("ICCBased color space: Ignoring incorrect /Alternate entry.")}if(1===j)return"DeviceGrayCS";if(3===j)return"DeviceRgbCS";if(4===j)return"DeviceCmykCS";break;case"Pattern":var q=d[1]||null;return q&&(q=a.parseToIR(q,e,f)),["PatternCS",q];case"Indexed":case"I":var r=a.parseToIR(d[1],e,f),s=e.fetchIfRef(d[2])+1,t=e.fetchIfRef(d[3]);return D(t)&&(t=t.getBytes()),["IndexedCS",r,s,t];case"Separation":case"DeviceN":var u=e.fetchIfRef(d[1]);j=1,z(u)?j=1:C(u)&&(j=u.length),l=a.parseToIR(d[2],e,f);var v=Ta.getIR(e,e.fetchIfRef(d[3]));return["AlternateCS",j,l,v];case"Lab":return k=e.fetchIfRef(d[1]).getAll(),["LabCS",k];default:c('unimplemented color space object "'+i+'"')}}else c('unrecognized color space object: "'+d+'"');return null},a.isDefaultDecode=function(a,c){if(!C(a))return!0;if(2*c!==a.length)return b("The decode map is not the correct length"),!0;for(var d=0,e=a.length;e>d;d+=2)if(0!==a[d]||1!==a[d+1])return!1;return!0},a.singletons={get gray(){return g(this,"gray",new _a)},get rgb(){return g(this,"rgb",new ab)},get cmyk(){return g(this,"cmyk",new bb)}},a}(),Ya=function(){function a(a,b,c){this.name="Alternate",this.numComps=a,this.defaultColor=new Float32Array(a);for(var d=0;a>d;++d)this.defaultColor[d]=1;this.base=b,this.tintFn=c,this.tmpBuf=new Float32Array(b.numComps)}return a.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){var e=this.tmpBuf;this.tintFn(a,b,e,0),this.base.getRgbItem(e,0,c,d)},getRgbBuffer:function(a,b,c,d,e,f,g){var h,i,j=this.tintFn,k=this.base,l=1/((1<h;h++){for(i=0;r>i;i++)s[i]=a[b++]*l;for(j(s,0,t,0),i=0;m>i;i++)q[p++]=255*t[i]}else for(h=0;c>h;h++){for(i=0;r>i;i++)s[i]=a[b++]*l;j(s,0,t,0),k.getRgbItem(t,0,q,p),p+=m}o||k.getRgbBuffer(q,0,c,d,e,8,g)},getOutputLength:function(a,b){return this.base.getOutputLength(a*this.base.numComps/this.numComps,b)},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},a}(),Za=function(){function a(a){this.name="Pattern",this.base=a}return a.prototype={},a}(),$a=function(){function a(a,b,d){this.name="Indexed",this.numComps=1,this.defaultColor=new Uint8Array([0]),this.base=a,this.highVal=b;var e,f=a.numComps,g=f*b;if(D(d)){e=new Uint8Array(g);var h=d.getBytes(g);e.set(h)}else if(y(d)){e=new Uint8Array(g);for(var i=0;g>i;++i)e[i]=d.charCodeAt(i)}else d instanceof Uint8Array||d instanceof Array?e=d:c("Unrecognized lookup table: "+d);this.lookup=e}return a.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){var e=this.base.numComps,f=a[b]*e;this.base.getRgbItem(this.lookup,f,c,d)},getRgbBuffer:function(a,b,c,d,e,f,g){for(var h=this.base,i=h.numComps,j=h.getOutputLength(i,g),k=this.lookup,l=0;c>l;++l){var m=a[b++]*i;h.getRgbBuffer(k,m,1,d,e,8,g),e+=j}},getOutputLength:function(a,b){return this.base.getOutputLength(a*this.base.numComps,b)},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return!0},usesZeroToOneRange:!0},a}(),_a=function(){function a(){this.name="DeviceGray",this.numComps=1,this.defaultColor=new Float32Array([0])}return a.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){var e=255*a[b]|0;e=0>e?0:e>255?255:e,c[d]=c[d+1]=c[d+2]=e},getRgbBuffer:function(a,b,c,d,e,f,g){for(var h=255/((1<k;++k){var l=h*a[i++]|0;d[j++]=l,d[j++]=l,d[j++]=l,j+=g}},getOutputLength:function(a,b){return a*(3+b)},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},a}(),ab=function(){function a(){this.name="DeviceRGB",this.numComps=3,this.defaultColor=new Float32Array([0,0,0])}return a.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){var e=255*a[b]|0,f=255*a[b+1]|0,g=255*a[b+2]|0;c[d]=0>e?0:e>255?255:e,c[d+1]=0>f?0:f>255?255:f,c[d+2]=0>g?0:g>255?255:g},getRgbBuffer:function(a,b,c,d,e,f,g){if(8===f&&0===g)return void d.set(a.subarray(b,b+3*c),e);for(var h=255/((1<k;++k)d[j++]=h*a[i++]|0,d[j++]=h*a[i++]|0,d[j++]=h*a[i++]|0,j+=g},getOutputLength:function(a,b){return a*(3+b)/3|0},isPassthrough:function(a){return 8===a},fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},a}(),bb=function(){function a(a,b,c,d,e){var f=a[b+0]*c,g=a[b+1]*c,h=a[b+2]*c,i=a[b+3]*c,j=f*(-4.387332384609988*f+54.48615194189176*g+18.82290502165302*h+212.25662451639585*i+-285.2331026137004)+g*(1.7149763477362134*g-5.6096736904047315*h+-17.873870861415444*i-5.497006427196366)+h*(-2.5217340131683033*h-21.248923337353073*i+17.5119270841813)+i*(-21.86122147463605*i-189.48180835922747)+255|0,k=f*(8.841041422036149*f+60.118027045597366*g+6.871425592049007*h+31.159100130055922*i+-79.2970844816548)+g*(-15.310361306967817*g+17.575251261109482*h+131.35250912493976*i-190.9453302588951)+h*(4.444339102852739*h+9.8632861493405*i-24.86741582555878)+i*(-20.737325471181034*i-187.80453709719578)+255|0,l=f*(.8842522430003296*f+8.078677503112928*g+30.89978309703729*h-.23883238689178934*i+-14.183576799673286)+g*(10.49593273432072*g+63.02378494754052*h+50.606957656360734*i-112.23884253719248)+h*(.03296041114873217*h+115.60384449646641*i+-193.58209356861505)+i*(-22.33816807309886*i-180.12613974708367)+255|0;d[e]=j>255?255:0>j?0:j,d[e+1]=k>255?255:0>k?0:k,d[e+2]=l>255?255:0>l?0:l}function b(){this.name="DeviceCMYK",this.numComps=4,this.defaultColor=new Float32Array([0,0,0,1])}return b.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(b,c,d,e){a(b,c,1,d,e)},getRgbBuffer:function(b,c,d,e,f,g,h){for(var i=1/((1<j;j++)a(b,c,i,e,f),c+=4,f+=3+h},getOutputLength:function(a,b){return a/4*(3+b)|0},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},b}(),cb=function(){function d(d,e,f){this.name="CalGray",this.numComps=1,this.defaultColor=new Float32Array([0]),d||c("WhitePoint missing - required for color space CalGray"),e=e||[0,0,0],f=f||1,this.XW=d[0],this.YW=d[1],this.ZW=d[2],this.XB=e[0],this.YB=e[1],this.ZB=e[2],this.G=f,(this.XW<0||this.ZW<0||1!==this.YW)&&c("Invalid WhitePoint components for "+this.name+", no fallback available"),(this.XB<0||this.YB<0||this.ZB<0)&&(a("Invalid BlackPoint for "+this.name+", falling back to default"),this.XB=this.YB=this.ZB=0),0===this.XB&&0===this.YB&&0===this.ZB||b(this.name+", BlackPoint: XB: "+this.XB+", YB: "+this.YB+", ZB: "+this.ZB+", only default values are supported."),this.G<1&&(a("Invalid Gamma: "+this.G+" for "+this.name+", falling back to default"),this.G=1)}function e(a,b,c,d,e,f){var g=b[c]*f,h=Math.pow(g,a.G),i=a.YW*h,j=0|Math.max(295.8*Math.pow(i,.3333333333333333)-40.8,0);d[e]=j,d[e+1]=j,d[e+2]=j}return d.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){e(this,a,b,c,d,1)},getRgbBuffer:function(a,b,c,d,f,g,h){for(var i=1/((1<j;++j)e(this,a,b,d,f,i),b+=1,f+=3+h},getOutputLength:function(a,b){return a*(3+b)},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},d}(),db=function(){function b(b,d,e,f){this.name="CalRGB",this.numComps=3,this.defaultColor=new Float32Array(3),b||c("WhitePoint missing - required for color space CalRGB"),d=d||new Float32Array(3),e=e||new Float32Array([1,1,1]),f=f||new Float32Array([1,0,0,0,1,0,0,0,1]);var g=b[0],h=b[1],i=b[2];this.whitePoint=b;var j=d[0],k=d[1],l=d[2];this.blackPoint=d,this.GR=e[0],this.GG=e[1],this.GB=e[2],this.MXA=f[0],this.MYA=f[1],this.MZA=f[2],this.MXB=f[3],this.MYB=f[4],this.MZB=f[5],this.MXC=f[6],this.MYC=f[7],this.MZC=f[8],(0>g||0>i||1!==h)&&c("Invalid WhitePoint components for "+this.name+", no fallback available"),(0>j||0>k||0>l)&&(a("Invalid BlackPoint for "+this.name+" ["+j+", "+k+", "+l+"], falling back to default"),this.blackPoint=new Float32Array(3)),(this.GR<0||this.GG<0||this.GB<0)&&(a("Invalid Gamma ["+this.GR+", "+this.GG+", "+this.GB+"] for "+this.name+", falling back to default"),this.GR=this.GG=this.GB=1),(this.MXA<0||this.MYA<0||this.MZA<0||this.MXB<0||this.MYB<0||this.MZB<0||this.MXC<0||this.MYC<0||this.MZC<0)&&(a("Invalid Matrix for "+this.name+" ["+this.MXA+", "+this.MYA+", "+this.MZA+this.MXB+", "+this.MYB+", "+this.MZB+this.MXC+", "+this.MYC+", "+this.MZC+"], falling back to default"),this.MXA=this.MYB=this.MZC=1,this.MXB=this.MYA=this.MZA=this.MXC=this.MYC=this.MZB=0)}function d(a,b,c){c[0]=a[0]*b[0]+a[1]*b[1]+a[2]*b[2],c[1]=a[3]*b[0]+a[4]*b[1]+a[5]*b[2],c[2]=a[6]*b[0]+a[7]*b[1]+a[8]*b[2]}function e(a,b,c){c[0]=1*b[0]/a[0],c[1]=1*b[1]/a[1],c[2]=1*b[2]/a[2]}function f(a,b,c){var d=.95047,e=1,f=1.08883;c[0]=b[0]*d/a[0],c[1]=b[1]*e/a[1],c[2]=b[2]*f/a[2]}function g(a){return.0031308>=a?h(0,1,12.92*a):h(0,1,1.055*Math.pow(a,1/2.4)-.055)}function h(a,b,c){return Math.max(a,Math.min(b,c))}function i(a){return 0>a?-i(-a):a>8?Math.pow((a+16)/116,3):a*u}function j(a,b,c){if(0===a[0]&&0===a[1]&&0===a[2])return c[0]=b[0],c[1]=b[1],void(c[2]=b[2]);var d=i(0),e=d,f=i(a[0]),g=d,h=i(a[1]),j=d,k=i(a[2]),l=(1-e)/(1-f),m=1-l,n=(1-g)/(1-h),o=1-n,p=(1-j)/(1-k),q=1-p;c[0]=b[0]*l+m,c[1]=b[1]*n+o,c[2]=b[2]*p+q}function k(a,b,c){if(1===a[0]&&1===a[2])return c[0]=b[0],c[1]=b[1],void(c[2]=b[2]);var f=c;d(n,b,f);var g=r;e(a,f,g),d(o,g,c)}function l(a,b,c){var e=c;d(n,b,e);var g=r;f(a,e,g),d(o,g,c)}function m(a,b,c,e,f,i){var m=h(0,1,b[c]*i),n=h(0,1,b[c+1]*i),o=h(0,1,b[c+2]*i),r=Math.pow(m,a.GR),u=Math.pow(n,a.GG),v=Math.pow(o,a.GB),w=a.MXA*r+a.MXB*u+a.MXC*v,x=a.MYA*r+a.MYB*u+a.MYC*v,y=a.MZA*r+a.MZB*u+a.MZC*v,z=s;z[0]=w,z[1]=x,z[2]=y;var A=t;k(a.whitePoint,z,A);var B=s;j(a.blackPoint,A,B);var C=t;l(q,B,C);var D=s;d(p,C,D);var E=g(D[0]),F=g(D[1]),G=g(D[2]);e[f]=Math.round(255*E),e[f+1]=Math.round(255*F),e[f+2]=Math.round(255*G)}var n=new Float32Array([.8951,.2664,-.1614,-.7502,1.7135,.0367,.0389,-.0685,1.0296]),o=new Float32Array([.9869929,-.1470543,.1599627,.4323053,.5183603,.0492912,-.0085287,.0400428,.9684867]),p=new Float32Array([3.2404542,-1.5371385,-.4985314,-.969266,1.8760108,.041556,.0556434,-.2040259,1.0572252]),q=new Float32Array([1,1,1]),r=new Float32Array(3),s=new Float32Array(3),t=new Float32Array(3),u=Math.pow(24/116,3)/8;return b.prototype={getRgb:function(a,b){var c=new Uint8Array(3);return this.getRgbItem(a,b,c,0),c},getRgbItem:function(a,b,c,d){m(this,a,b,c,d,1)},getRgbBuffer:function(a,b,c,d,e,f,g){for(var h=1/((1<i;++i)m(this,a,b,d,e,h),b+=3,e+=3+g},getOutputLength:function(a,b){return a*(3+b)/3|0},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},b}(),eb=function(){function b(b,d,e){this.name="Lab",this.numComps=3,this.defaultColor=new Float32Array([0,0,0]),b||c("WhitePoint missing - required for color space Lab"),d=d||[0,0,0],e=e||[-100,100,-100,100],this.XW=b[0],this.YW=b[1],this.ZW=b[2],this.amin=e[0],this.amax=e[1],this.bmin=e[2],this.bmax=e[3],this.XB=d[0],this.YB=d[1],this.ZB=d[2],(this.XW<0||this.ZW<0||1!==this.YW)&&c("Invalid WhitePoint components, no fallback available"),(this.XB<0||this.YB<0||this.ZB<0)&&(a("Invalid BlackPoint, falling back to default"),this.XB=this.YB=this.ZB=0),(this.amin>this.amax||this.bmin>this.bmax)&&(a("Invalid Range, falling back to defaults"),this.amin=-100,this.amax=100,this.bmin=-100,this.bmax=100)}function d(a){return a>=6/29?a*a*a:108/841*(a-4/29)}function e(a,b,c,d){return c+a*(d-c)/b}function f(a,b,c,f,g,h){var i=b[c],j=b[c+1],k=b[c+2];f!==!1&&(i=e(i,f,0,100),j=e(j,f,a.amin,a.amax),k=e(k,f,a.bmin,a.bmax)),j=j>a.amax?a.amax:ja.bmax?a.bmax:k=l?0:l>=1?255:255*Math.sqrt(l)|0,g[h+1]=0>=m?0:m>=1?255:255*Math.sqrt(m)|0,g[h+2]=0>=n?0:n>=1?255:255*Math.sqrt(n)|0}return b.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){f(this,a,b,!1,c,d)},getRgbBuffer:function(a,b,c,d,e,g,h){for(var i=(1<j;j++)f(this,a,b,i,d,e),b+=3,e+=3+h},getOutputLength:function(a,b){return a*(3+b)/3|0},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return!0},usesZeroToOneRange:!1},b}(),fb=function(){function a(a){this.a=0,this.b=0;var b,c,d=new Uint8Array(256),e=0,f=a.length;for(b=0;256>b;++b)d[b]=b;for(b=0;256>b;++b)c=d[b],e=e+c+a[b%f]&255,d[b]=d[e],d[e]=c;this.s=d}return a.prototype={encryptBlock:function(a){var b,c,d,e=a.length,f=this.a,g=this.b,h=this.s,i=new Uint8Array(e);for(b=0;e>b;++b)f=f+1&255,c=h[f],g=g+c&255,d=h[g],h[f]=d,h[g]=c,i[b]=a[b]^h[c+d&255];return this.a=f,this.b=g,i}},a.prototype.decryptBlock=a.prototype.encryptBlock,a}(),gb=function(){function a(a,d,e){var f,g,h,i=1732584193,j=-271733879,k=-1732584194,l=271733878,m=e+72&-64,n=new Uint8Array(m);for(f=0;e>f;++f)n[f]=a[d++];for(n[f++]=128,h=m-8;h>f;)n[f++]=0;n[f++]=e<<3&255,n[f++]=e>>5&255,n[f++]=e>>13&255,n[f++]=e>>21&255,n[f++]=e>>>29&255,n[f++]=0,n[f++]=0,n[f++]=0;var o=new Int32Array(16);for(f=0;m>f;){for(g=0;16>g;++g,f+=4)o[g]=n[f]|n[f+1]<<8|n[f+2]<<16|n[f+3]<<24;var p,q,r=i,s=j,t=k,u=l;for(g=0;64>g;++g){16>g?(p=s&t|~s&u,q=g):32>g?(p=u&s|~u&t,q=5*g+1&15):48>g?(p=s^t^u,q=3*g+5&15):(p=t^(s|~u),q=7*g&15);var v=u,w=r+p+c[g]+o[q]|0,x=b[g];u=t,t=s,s=s+(w<>>32-x)|0,r=v}i=i+r|0,j=j+s|0,k=k+t|0,l=l+u|0}return new Uint8Array([255&i,i>>8&255,i>>16&255,i>>>24&255,255&j,j>>8&255,j>>16&255,j>>>24&255,255&k,k>>8&255,k>>16&255,k>>>24&255,255&l,l>>8&255,l>>16&255,l>>>24&255])}var b=new Uint8Array([7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21]),c=new Int32Array([-680876936,-389564586,606105819,-1044525330,-176418897,1200080426,-1473231341,-45705983,1770035416,-1958414417,-42063,-1990404162,1804603682,-40341101,-1502002290,1236535329,-165796510,-1069501632,643717713,-373897302,-701558691,38016083,-660478335,-405537848,568446438,-1019803690,-187363961,1163531501,-1444681467,-51403784,1735328473,-1926607734,-378558,-2022574463,1839030562,-35309556,-1530992060,1272893353,-155497632,-1094730640,681279174,-358537222,-722521979,76029189,-640364487,-421815835,530742520,-995338651,-198630844,1126891415,-1416354905,-57434055,1700485571,-1894986606,-1051523,-2054922799,1873313359,-30611744,-1560198380,1309151649,-145523070,-1120210379,718787259,-343485551]);return a}(),hb=function(){function a(a,b){this.high=0|a,this.low=0|b}return a.prototype={and:function(a){this.high&=a.high,this.low&=a.low},xor:function(a){this.high^=a.high,this.low^=a.low},or:function(a){this.high|=a.high,this.low|=a.low},shiftRight:function(a){a>=32?(this.low=this.high>>>a-32|0,this.high=0):(this.low=this.low>>>a|this.high<<32-a,this.high=this.high>>>a|0)},shiftLeft:function(a){a>=32?(this.high=this.low<>>32-a,this.low=this.low<>>a|c<<32-a,this.high=c>>>a|b<<32-a},not:function(){this.high=~this.high,this.low=~this.low},add:function(a){var b=(this.low>>>0)+(a.low>>>0),c=(this.high>>>0)+(a.high>>>0);b>4294967295&&(c+=1),this.low=0|b,this.high=0|c},copyTo:function(a,b){a[b]=this.high>>>24&255,a[b+1]=this.high>>16&255,a[b+2]=this.high>>8&255,a[b+3]=255&this.high,a[b+4]=this.low>>>24&255,a[b+5]=this.low>>16&255,a[b+6]=this.low>>8&255,a[b+7]=255&this.low},assign:function(a){this.high=a.high,this.low=a.low}},a}(),ib=function(){function a(a,b){return a>>>b|a<<32-b}function b(a,b,c){return a&b^~a&c}function c(a,b,c){return a&b^a&c^b&c}function d(b){return a(b,2)^a(b,13)^a(b,22)}function e(b){return a(b,6)^a(b,11)^a(b,25)}function f(b){return a(b,7)^a(b,18)^b>>>3}function g(b){return a(b,17)^a(b,19)^b>>>10}function h(a,h,j){var k,l,m,n=1779033703,o=3144134277,p=1013904242,q=2773480762,r=1359893119,s=2600822924,t=528734635,u=1541459225,v=64*Math.ceil((j+9)/64),w=new Uint8Array(v);for(k=0;j>k;++k)w[k]=a[h++];for(w[k++]=128,m=v-8;m>k;)w[k++]=0;w[k++]=0,w[k++]=0,w[k++]=0,w[k++]=j>>>29&255,w[k++]=j>>21&255,w[k++]=j>>13&255,w[k++]=j>>5&255,w[k++]=j<<3&255;var x=new Uint32Array(64); +for(k=0;v>k;){for(l=0;16>l;++l)x[l]=w[k]<<24|w[k+1]<<16|w[k+2]<<8|w[k+3],k+=4;for(l=16;64>l;++l)x[l]=g(x[l-2])+x[l-7]+f(x[l-15])+x[l-16]|0;var y,z,A=n,B=o,C=p,D=q,E=r,F=s,G=t,H=u;for(l=0;64>l;++l)y=H+e(E)+b(E,F,G)+i[l]+x[l],z=d(A)+c(A,B,C),H=G,G=F,F=E,E=D+y|0,D=C,C=B,B=A,A=y+z|0;n=n+A|0,o=o+B|0,p=p+C|0,q=q+D|0,r=r+E|0,s=s+F|0,t=t+G|0,u=u+H|0}return new Uint8Array([n>>24&255,n>>16&255,n>>8&255,255&n,o>>24&255,o>>16&255,o>>8&255,255&o,p>>24&255,p>>16&255,p>>8&255,255&p,q>>24&255,q>>16&255,q>>8&255,255&q,r>>24&255,r>>16&255,r>>8&255,255&r,s>>24&255,s>>16&255,s>>8&255,255&s,t>>24&255,t>>16&255,t>>8&255,255&t,u>>24&255,u>>16&255,u>>8&255,255&u])}var i=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return h}(),jb=function(){function a(a,b,c,d,e){a.assign(b),a.and(c),e.assign(b),e.not(),e.and(d),a.xor(e)}function b(a,b,c,d,e){a.assign(b),a.and(c),e.assign(b),e.and(d),a.xor(e),e.assign(c),e.and(d),a.xor(e)}function c(a,b,c){a.assign(b),a.rotateRight(28),c.assign(b),c.rotateRight(34),a.xor(c),c.assign(b),c.rotateRight(39),a.xor(c)}function d(a,b,c){a.assign(b),a.rotateRight(14),c.assign(b),c.rotateRight(18),a.xor(c),c.assign(b),c.rotateRight(41),a.xor(c)}function e(a,b,c){a.assign(b),a.rotateRight(1),c.assign(b),c.rotateRight(8),a.xor(c),c.assign(b),c.shiftRight(7),a.xor(c)}function f(a,b,c){a.assign(b),a.rotateRight(19),c.assign(b),c.rotateRight(61),a.xor(c),c.assign(b),c.shiftRight(6),a.xor(c)}function g(g,i,j,k){k=!!k;var l,m,n,o,p,q,r,s;k?(l=new hb(3418070365,3238371032),m=new hb(1654270250,914150663),n=new hb(2438529370,812702999),o=new hb(355462360,4144912697),p=new hb(1731405415,4290775857),q=new hb(2394180231,1750603025),r=new hb(3675008525,1694076839),s=new hb(1203062813,3204075428)):(l=new hb(1779033703,4089235720),m=new hb(3144134277,2227873595),n=new hb(1013904242,4271175723),o=new hb(2773480762,1595750129),p=new hb(1359893119,2917565137),q=new hb(2600822924,725511199),r=new hb(528734635,4215389547),s=new hb(1541459225,327033209));var t,u,v,w=128*Math.ceil((j+17)/128),x=new Uint8Array(w);for(t=0;j>t;++t)x[t]=g[i++];for(x[t++]=128,v=w-16;v>t;)x[t++]=0;x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=j>>>29&255,x[t++]=j>>21&255,x[t++]=j>>13&255,x[t++]=j>>5&255,x[t++]=j<<3&255;var y=new Array(80);for(t=0;80>t;t++)y[t]=new hb(0,0);var z,A=new hb(0,0),B=new hb(0,0),C=new hb(0,0),D=new hb(0,0),E=new hb(0,0),F=new hb(0,0),G=new hb(0,0),H=new hb(0,0),I=new hb(0,0),J=new hb(0,0),K=new hb(0,0),L=new hb(0,0);for(t=0;w>t;){for(u=0;16>u;++u)y[u].high=x[t]<<24|x[t+1]<<16|x[t+2]<<8|x[t+3],y[u].low=x[t+4]<<24|x[t+5]<<16|x[t+6]<<8|x[t+7],t+=8;for(u=16;80>u;++u)z=y[u],f(z,y[u-2],L),z.add(y[u-7]),e(K,y[u-15],L),z.add(K),z.add(y[u-16]);for(A.assign(l),B.assign(m),C.assign(n),D.assign(o),E.assign(p),F.assign(q),G.assign(r),H.assign(s),u=0;80>u;++u)I.assign(H),d(K,E,L),I.add(K),a(K,E,F,G,L),I.add(K),I.add(h[u]),I.add(y[u]),c(J,A,L),b(K,A,B,C,L),J.add(K),z=H,H=G,G=F,F=E,D.add(I),E=D,D=C,C=B,B=A,z.assign(I),z.add(J),A=z;l.add(A),m.add(B),n.add(C),o.add(D),p.add(E),q.add(F),r.add(G),s.add(H)}var M;return k?(M=new Uint8Array(48),l.copyTo(M,0),m.copyTo(M,8),n.copyTo(M,16),o.copyTo(M,24),p.copyTo(M,32),q.copyTo(M,40)):(M=new Uint8Array(64),l.copyTo(M,0),m.copyTo(M,8),n.copyTo(M,16),o.copyTo(M,24),p.copyTo(M,32),q.copyTo(M,40),r.copyTo(M,48),s.copyTo(M,56)),M}var h=[new hb(1116352408,3609767458),new hb(1899447441,602891725),new hb(3049323471,3964484399),new hb(3921009573,2173295548),new hb(961987163,4081628472),new hb(1508970993,3053834265),new hb(2453635748,2937671579),new hb(2870763221,3664609560),new hb(3624381080,2734883394),new hb(310598401,1164996542),new hb(607225278,1323610764),new hb(1426881987,3590304994),new hb(1925078388,4068182383),new hb(2162078206,991336113),new hb(2614888103,633803317),new hb(3248222580,3479774868),new hb(3835390401,2666613458),new hb(4022224774,944711139),new hb(264347078,2341262773),new hb(604807628,2007800933),new hb(770255983,1495990901),new hb(1249150122,1856431235),new hb(1555081692,3175218132),new hb(1996064986,2198950837),new hb(2554220882,3999719339),new hb(2821834349,766784016),new hb(2952996808,2566594879),new hb(3210313671,3203337956),new hb(3336571891,1034457026),new hb(3584528711,2466948901),new hb(113926993,3758326383),new hb(338241895,168717936),new hb(666307205,1188179964),new hb(773529912,1546045734),new hb(1294757372,1522805485),new hb(1396182291,2643833823),new hb(1695183700,2343527390),new hb(1986661051,1014477480),new hb(2177026350,1206759142),new hb(2456956037,344077627),new hb(2730485921,1290863460),new hb(2820302411,3158454273),new hb(3259730800,3505952657),new hb(3345764771,106217008),new hb(3516065817,3606008344),new hb(3600352804,1432725776),new hb(4094571909,1467031594),new hb(275423344,851169720),new hb(430227734,3100823752),new hb(506948616,1363258195),new hb(659060556,3750685593),new hb(883997877,3785050280),new hb(958139571,3318307427),new hb(1322822218,3812723403),new hb(1537002063,2003034995),new hb(1747873779,3602036899),new hb(1955562222,1575990012),new hb(2024104815,1125592928),new hb(2227730452,2716904306),new hb(2361852424,442776044),new hb(2428436474,593698344),new hb(2756734187,3733110249),new hb(3204031479,2999351573),new hb(3329325298,3815920427),new hb(3391569614,3928383900),new hb(3515267271,566280711),new hb(3940187606,3454069534),new hb(4118630271,4000239992),new hb(116418474,1914138554),new hb(174292421,2731055270),new hb(289380356,3203993006),new hb(460393269,320620315),new hb(685471733,587496836),new hb(852142971,1086792851),new hb(1017036298,365543100),new hb(1126000580,2618297676),new hb(1288033470,3409855158),new hb(1501505948,4234509866),new hb(1607167915,987167468),new hb(1816402316,1246189591)];return g}(),kb=function(){function a(a,b,c){return jb(a,b,c,!0)}return a}(),lb=function(){function a(){}return a.prototype={decryptBlock:function(a){return a}},a}(),mb=function(){function a(a){var b=176,c=new Uint8Array(b);c.set(a);for(var d=16,e=1;b>d;++e){var h=c[d-3],i=c[d-2],j=c[d-1],k=c[d-4];h=g[h],i=g[i],j=g[j],k=g[k],h^=f[e];for(var l=0;4>l;++l)c[d]=h^=c[d-16],d++,c[d]=i^=c[d-16],d++,c[d]=j^=c[d-16],d++,c[d]=k^=c[d-16],d++}return c}function b(a,b){var c=new Uint8Array(16);c.set(a);var d,e,f,g,i,j;for(e=0,f=160;16>e;++e,++f)c[e]^=b[f];for(d=9;d>=1;--d){for(g=c[13],c[13]=c[9],c[9]=c[5],c[5]=c[1],c[1]=g,g=c[14],i=c[10],c[14]=c[6],c[10]=c[2],c[6]=g,c[2]=i,g=c[15],i=c[11],j=c[7],c[15]=c[3],c[11]=g,c[7]=i,c[3]=j,e=0;16>e;++e)c[e]=h[c[e]];for(e=0,f=16*d;16>e;++e,++f)c[e]^=b[f];for(e=0;16>e;e+=4){var l=k[c[e]],m=k[c[e+1]],n=k[c[e+2]],o=k[c[e+3]];g=l^m>>>8^m<<24^n>>>16^n<<16^o>>>24^o<<8,c[e]=g>>>24&255,c[e+1]=g>>16&255,c[e+2]=g>>8&255,c[e+3]=255&g}}for(g=c[13],c[13]=c[9],c[9]=c[5],c[5]=c[1],c[1]=g,g=c[14],i=c[10],c[14]=c[6],c[10]=c[2],c[6]=g,c[2]=i,g=c[15],i=c[11],j=c[7],c[15]=c[3],c[11]=g,c[7]=i,c[3]=j,e=0;16>e;++e)c[e]=h[c[e]],c[e]^=b[e];return c}function c(a,b){var c,d,e,f,h=new Uint8Array(16);for(h.set(a),k=0;16>k;++k)h[k]^=b[k];for(j=1;10>j;j++){for(k=0;16>k;++k)h[k]=g[h[k]];e=h[1],h[1]=h[5],h[5]=h[9],h[9]=h[13],h[13]=e,e=h[2],d=h[6],h[2]=h[10],h[6]=h[14],h[10]=e,h[14]=d,e=h[3],d=h[7],c=h[11],h[3]=h[15],h[7]=e,h[11]=d,h[15]=c;for(var k=0;16>k;k+=4){var l=h[k+0],m=h[k+1],n=h[k+2],o=h[k+3];c=l^m^n^o,h[k+0]^=c^i[l^m],h[k+1]^=c^i[m^n],h[k+2]^=c^i[n^o],h[k+3]^=c^i[o^l]}for(k=0,f=16*j;16>k;++k,++f)h[k]^=b[f]}for(k=0;16>k;++k)h[k]=g[h[k]];for(e=h[1],h[1]=h[5],h[5]=h[9],h[9]=h[13],h[13]=e,e=h[2],d=h[6],h[2]=h[10],h[6]=h[14],h[10]=e,h[14]=d,e=h[3],d=h[7],c=h[11],h[3]=h[15],h[7]=e,h[11]=d,h[15]=c,k=0,f=160;16>k;++k,++f)h[k]^=b[f];return h}function d(b){this.key=a(b),this.buffer=new Uint8Array(16),this.bufferPosition=0}function e(a,c){var d,e,f,g=a.length,h=this.buffer,i=this.bufferPosition,j=[],k=this.iv;for(d=0;g>d;++d)if(h[i]=a[d],++i,!(16>i)){var l=b(h,this.key);for(e=0;16>e;++e)l[e]^=k[e];k=h,j.push(l),h=new Uint8Array(16),i=0}if(this.buffer=h,this.bufferLength=i,this.iv=k,0===j.length)return new Uint8Array([]);var m=16*j.length;if(c){var n=j[j.length-1],o=n[15];if(16>=o){for(d=15,f=16-o;d>=f;--d)if(n[d]!==o){o=0;break}m-=o,j[j.length-1]=n.subarray(0,16-o)}}var p=new Uint8Array(m);for(d=0,e=0,f=j.length;f>d;++d,e+=16)p.set(j[d],e);return p}for(var f=new Uint8Array([141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141]),g=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),h=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]),i=new Uint8Array(256),j=0;256>j;j++)128>j?i[j]=j<<1:i[j]=j<<1^27;var k=new Uint32Array([0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795]);return d.prototype={decryptBlock:function(a,b){var c,d=a.length,f=this.buffer,g=this.bufferPosition;for(c=0;16>g&&d>c;++c,++g)f[g]=a[c];return 16>g?(this.bufferLength=g,new Uint8Array([])):(this.iv=f,this.buffer=new Uint8Array(16),this.bufferLength=0,this.decryptBlock=e,this.decryptBlock(a.subarray(16),b))},encrypt:function(a,b){var d,e,f,g=a.length,h=this.buffer,i=this.bufferPosition,j=[];for(b||(b=new Uint8Array(16)),d=0;g>d;++d)if(h[i]=a[d],++i,!(16>i)){for(e=0;16>e;++e)h[e]^=b[e];var k=c(h,this.key);b=k,j.push(k),h=new Uint8Array(16),i=0}if(this.buffer=h,this.bufferLength=i,this.iv=b,0===j.length)return new Uint8Array([]);var l=16*j.length,m=new Uint8Array(l);for(d=0,e=0,f=j.length;f>d;++d,e+=16)m.set(j[d],e);return m}},d}(),nb=function(){function a(a){var b=240,c=new Uint8Array(b),d=1;c.set(a);for(var e=32,g=1;b>e;++g){if(e%32===16)h=f[h],i=f[i],j=f[j],k=f[k];else if(e%32===0){var h=c[e-3],i=c[e-2],j=c[e-1],k=c[e-4];h=f[h],i=f[i],j=f[j],k=f[k],h^=d,(d<<=1)>=256&&(d=255&(27^d))}for(var l=0;4>l;++l)c[e]=h^=c[e-32],e++,c[e]=i^=c[e-32],e++,c[e]=j^=c[e-32],e++,c[e]=k^=c[e-32],e++}return c}function b(a,b){var c=new Uint8Array(16);c.set(a);var d,e,f,h,i,k;for(e=0,f=224;16>e;++e,++f)c[e]^=b[f];for(d=13;d>=1;--d){for(h=c[13],c[13]=c[9],c[9]=c[5],c[5]=c[1],c[1]=h,h=c[14],i=c[10],c[14]=c[6],c[10]=c[2],c[6]=h,c[2]=i,h=c[15],i=c[11],k=c[7],c[15]=c[3],c[11]=h,c[7]=i,c[3]=k,e=0;16>e;++e)c[e]=g[c[e]];for(e=0,f=16*d;16>e;++e,++f)c[e]^=b[f];for(e=0;16>e;e+=4){var l=j[c[e]],m=j[c[e+1]],n=j[c[e+2]],o=j[c[e+3]];h=l^m>>>8^m<<24^n>>>16^n<<16^o>>>24^o<<8,c[e]=h>>>24&255,c[e+1]=h>>16&255,c[e+2]=h>>8&255,c[e+3]=255&h}}for(h=c[13],c[13]=c[9],c[9]=c[5],c[5]=c[1],c[1]=h,h=c[14],i=c[10],c[14]=c[6],c[10]=c[2],c[6]=h,c[2]=i,h=c[15],i=c[11],k=c[7],c[15]=c[3],c[11]=h,c[7]=i,c[3]=k,e=0;16>e;++e)c[e]=g[c[e]],c[e]^=b[e];return c}function c(a,b){var c,d,e,g,j=new Uint8Array(16);for(j.set(a),k=0;16>k;++k)j[k]^=b[k];for(i=1;14>i;i++){for(k=0;16>k;++k)j[k]=f[j[k]];e=j[1],j[1]=j[5],j[5]=j[9],j[9]=j[13],j[13]=e,e=j[2],d=j[6],j[2]=j[10],j[6]=j[14],j[10]=e,j[14]=d,e=j[3],d=j[7],c=j[11],j[3]=j[15],j[7]=e,j[11]=d,j[15]=c;for(var k=0;16>k;k+=4){var l=j[k+0],m=j[k+1],n=j[k+2],o=j[k+3];c=l^m^n^o,j[k+0]^=c^h[l^m],j[k+1]^=c^h[m^n],j[k+2]^=c^h[n^o],j[k+3]^=c^h[o^l]}for(k=0,g=16*i;16>k;++k,++g)j[k]^=b[g]}for(k=0;16>k;++k)j[k]=f[j[k]];for(e=j[1],j[1]=j[5],j[5]=j[9],j[9]=j[13],j[13]=e,e=j[2],d=j[6],j[2]=j[10],j[6]=j[14],j[10]=e,j[14]=d,e=j[3],d=j[7],c=j[11],j[3]=j[15],j[7]=e,j[11]=d,j[15]=c,k=0,g=224;16>k;++k,++g)j[k]^=b[g];return j}function d(b){this.key=a(b),this.buffer=new Uint8Array(16),this.bufferPosition=0}function e(a,c){var d,e,f,g=a.length,h=this.buffer,i=this.bufferPosition,j=[],k=this.iv;for(d=0;g>d;++d)if(h[i]=a[d],++i,!(16>i)){var l=b(h,this.key);for(e=0;16>e;++e)l[e]^=k[e];k=h,j.push(l),h=new Uint8Array(16),i=0}if(this.buffer=h,this.bufferLength=i,this.iv=k,0===j.length)return new Uint8Array([]);var m=16*j.length;if(c){var n=j[j.length-1],o=n[15];if(16>=o){for(d=15,f=16-o;d>=f;--d)if(n[d]!==o){o=0;break}m-=o,j[j.length-1]=n.subarray(0,16-o)}}var p=new Uint8Array(m);for(d=0,e=0,f=j.length;f>d;++d,e+=16)p.set(j[d],e);return p}for(var f=(new Uint8Array([141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141]),new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22])),g=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]),h=new Uint8Array(256),i=0;256>i;i++)128>i?h[i]=i<<1:h[i]=i<<1^27;var j=new Uint32Array([0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795]);return d.prototype={decryptBlock:function(a,b,c){var d,f=a.length,g=this.buffer,h=this.bufferPosition;if(c)this.iv=c;else{for(d=0;16>h&&f>d;++d,++h)g[h]=a[d];if(16>h)return this.bufferLength=h,new Uint8Array([]);this.iv=g,a=a.subarray(16)}return this.buffer=new Uint8Array(16),this.bufferLength=0,this.decryptBlock=e,this.decryptBlock(a,b)},encrypt:function(a,b){var d,e,f,g=a.length,h=this.buffer,i=this.bufferPosition,j=[];for(b||(b=new Uint8Array(16)),d=0;g>d;++d)if(h[i]=a[d],++i,!(16>i)){for(e=0;16>e;++e)h[e]^=b[e];var k=c(h,this.key);this.iv=k,j.push(k),h=new Uint8Array(16),i=0}if(this.buffer=h,this.bufferLength=i,this.iv=b,0===j.length)return new Uint8Array([]);var l=16*j.length,m=new Uint8Array(l);for(d=0,e=0,f=j.length;f>d;++d,e+=16)m.set(j[d],e);return m}},d}(),ob=function(){function a(a,b){if(a.length!==b.length)return!1;for(var c=0;cg||f[f.length-1]>g-32;){var h=b.length+e.length+d.length,i=new Uint8Array(64*h),j=a(b,e);j=a(j,d);for(var k=0,l=0;64>k;k++,l+=h)i.set(j,l);var m=new mb(e.subarray(0,16));f=m.encrypt(i,e.subarray(16,32));for(var n=0,o=0;16>o;o++)n*=1,n%=3,n+=(f[o]>>>0)%3,n%=3;0===n?e=ib(f,0,f.length):1===n?e=kb(f,0,f.length):2===n&&(e=jb(f,0,f.length)),g++}return e.subarray(0,32)}function c(){}function d(a,b){if(a.length!==b.length)return!1;for(var c=0;cn;++n)m[n]=b[n];for(j=0;32>n;)m[n++]=i[j++];for(j=0,k=c.length;k>j;++j)m[n++]=c[j];for(m[n++]=255&e,m[n++]=e>>8&255,m[n++]=e>>16&255,m[n++]=e>>>24&255,j=0,k=a.length;k>j;++j)m[n++]=a[j];f>=4&&!h&&(m[n++]=255,m[n++]=255,m[n++]=255,m[n++]=255);var o=gb(m,0,n),p=g>>3;if(f>=3)for(j=0;50>j;++j)o=gb(o,0,p);var q,r,s=o.subarray(0,p);if(f>=3){for(n=0;32>n;++n)m[n]=i[n];for(j=0,k=a.length;k>j;++j)m[n++]=a[j];q=new fb(s),r=q.encryptBlock(gb(m,0,n)),k=s.length;var t,u=new Uint8Array(k);for(j=1;19>=j;++j){for(t=0;k>t;++t)u[t]=s[t]^j;q=new fb(u),r=q.encryptBlock(r)}for(j=0,k=r.length;k>j;++j)if(d[j]!==r[j])return null}else for(q=new fb(s),r=q.encryptBlock(i),j=0,k=r.length;k>j;++j)if(d[j]!==r[j])return null;return s}function e(a,b,c,d){var e,f,g=new Uint8Array(32),h=0;for(f=Math.min(32,a.length);f>h;++h)g[h]=a[h];for(e=0;32>h;)g[h++]=i[e++];var j=gb(g,0,h),k=d>>3;if(c>=3)for(e=0;50>e;++e)j=gb(j,0,j.length);var l,m;if(c>=3){m=b;var n,o=new Uint8Array(k);for(e=19;e>=0;e--){for(n=0;k>n;++n)o[n]=j[n]^e;l=new fb(o),m=l.encryptBlock(m)}}else l=new fb(j.subarray(0,k)),m=l.encryptBlock(b);return m}function f(f,g,h){var i=f.get("Filter");z(i)&&"Standard"===i.name||c("unknown encryption method"),this.dict=f;var l=f.get("V");(!w(l)||1!==l&&2!==l&&4!==l&&5!==l)&&c("unsupported encryption algorithm"),this.algorithm=l;var m=f.get("Length")||40;(!w(m)||40>m||m%8!==0)&&c("invalid key length");var n=j(f.get("O")).subarray(0,32),o=j(f.get("U")).subarray(0,32),p=f.get("P"),q=f.get("R"),r=(4===l||5===l)&&f.get("EncryptMetadata")!==!1;this.encryptMetadata=r;var s,u=j(g);if(h){if(6===q)try{h=t(h)}catch(v){b("CipherTransformFactory: Unable to convert UTF8 encoded password.")}s=j(h)}var x;if(5!==l)x=d(u,s,n,o,p,q,m,r);else{var y=j(f.get("O")).subarray(32,40),A=j(f.get("O")).subarray(40,48),B=j(f.get("U")).subarray(0,48),C=j(f.get("U")).subarray(32,40),D=j(f.get("U")).subarray(40,48),E=j(f.get("OE")),F=j(f.get("UE")),G=j(f.get("Perms"));x=a(q,s,n,y,A,B,o,C,D,E,F,G)}if(!x&&!h)throw new da("No password given",ca.NEED_PASSWORD);if(!x&&h){var H=e(s,n,q,m);x=d(u,H,n,o,p,q,m,r)}if(!x)throw new da("Incorrect Password",ca.INCORRECT_PASSWORD);this.encryptionKey=x,l>=4&&(this.cf=f.get("CF"),this.stmf=f.get("StmF")||k,this.strf=f.get("StrF")||k,this.eff=f.get("EFF")||this.stmf)}function g(a,b,c,d){var e,f,g=new Uint8Array(c.length+9);for(e=0,f=c.length;f>e;++e)g[e]=c[e];g[e++]=255&a,g[e++]=a>>8&255,g[e++]=a>>16&255,g[e++]=255&b,g[e++]=b>>8&255,d&&(g[e++]=115,g[e++]=65,g[e++]=108,g[e++]=84);var h=gb(g,0,e);return h.subarray(0,Math.min(c.length+5,16))}function h(a,b,d,e,f){var h,i=a.get(b.name);return null!==i&&void 0!==i&&(h=i.get("CFM")),h&&"None"!==h.name?"V2"===h.name?function(){return new fb(g(d,e,f,!1))}:"AESV2"===h.name?function(){return new mb(g(d,e,f,!0))}:"AESV3"===h.name?function(){return new nb(f)}:void c("Unknown crypto method"):function(){return new lb}}var i=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]),k=ya.get("Identity");return f.prototype={createCipherTransform:function(a,b){if(4===this.algorithm||5===this.algorithm)return new qb(h(this.cf,this.stmf,a,b,this.encryptionKey),h(this.cf,this.strf,a,b,this.encryptionKey));var c=g(a,b,this.encryptionKey,!1),d=function(){return new fb(c)};return new qb(d,d)}},f}(),sb={FUNCTION_BASED:1,AXIAL:2,RADIAL:3,FREE_FORM_MESH:4,LATTICE_FORM_MESH:5,COONS_PATCH_MESH:6,TENSOR_PATCH_MESH:7},tb=function(){function a(){c("should not call Pattern constructor")}return a.prototype={getPattern:function(a){c("Should not call Pattern.getStyle: "+a)}},a.parseShading=function(a,c,d,e){var f=D(a)?a.dict:a,g=f.get("ShadingType");try{switch(g){case sb.AXIAL:case sb.RADIAL:return new ub.RadialAxial(f,c,d,e);case sb.FREE_FORM_MESH:case sb.LATTICE_FORM_MESH:case sb.COONS_PATCH_MESH:case sb.TENSOR_PATCH_MESH:return new ub.Mesh(a,c,d,e);default:throw new Error("Unsupported ShadingType: "+g)}}catch(h){if(h instanceof ja)throw h;return aa.notify(_.shadingPattern),b(h),new ub.Dummy}},a}(),ub={};ub.SMALL_NUMBER=.01,ub.RadialAxial=function(){function d(c,d,e,f){this.matrix=d,this.coordsArr=c.get("Coords"),this.shadingType=c.get("ShadingType"),this.type="Pattern";var g=c.get("ColorSpace","CS");g=Xa.parse(g,e,f),this.cs=g;var h=0,i=1;if(c.has("Domain")){var j=c.get("Domain");h=j[0],i=j[1]}var k=!1,l=!1;if(c.has("Extend")){var m=c.get("Extend");k=m[0],l=m[1]}if(!(this.shadingType!==sb.RADIAL||k&&l)){var n=this.coordsArr[0],o=this.coordsArr[1],p=this.coordsArr[2],q=this.coordsArr[3],r=this.coordsArr[4],s=this.coordsArr[5],t=Math.sqrt((n-q)*(n-q)+(o-r)*(o-r));s+t>=p&&p+t>=s&&b("Unsupported radial gradient.")}this.extendStart=k,this.extendEnd=l;var u=c.get("Function"),v=Ta.parseArray(e,u),w=i-h,x=w/10,y=this.colorStops=[];if(h>=i||0>=x)return void a("Bad shading domain.");for(var z,A=new Float32Array(g.numComps),B=new Float32Array(1),C=h;i>=C;C+=x){B[0]=C,v(B,0,A,0),z=g.getRgb(A,0);var D=na.makeCssRgb(z[0],z[1],z[2]);y.push([(C-h)/w,D])}var E="transparent";c.has("Background")&&(z=g.getRgb(c.get("Background"),0), +E=na.makeCssRgb(z[0],z[1],z[2])),k||(y.unshift([0,E]),y[1][0]+=ub.SMALL_NUMBER),l||(y[y.length-1][0]-=ub.SMALL_NUMBER,y.push([1,E])),this.colorStops=y}return d.prototype={getIR:function(){var a,b,d,e,f,g=this.coordsArr,h=this.shadingType;h===sb.AXIAL?(b=[g[0],g[1]],d=[g[2],g[3]],e=null,f=null,a="axial"):h===sb.RADIAL?(b=[g[0],g[1]],d=[g[3],g[4]],e=g[2],f=g[5],a="radial"):c("getPattern type unknown: "+h);var i=this.matrix;return i&&(b=na.applyTransform(b,i),d=na.applyTransform(d,i)),["RadialAxial",a,this.colorStops,b,d,e,f]}},d}(),ub.Mesh=function(){function a(a,b){this.stream=a,this.context=b,this.buffer=0,this.bufferLength=0;var c=b.numComps;this.tmpCompsBuf=new Float32Array(c);var d=b.colorSpace.numComps;this.tmpCsCompsBuf=b.colorFn?new Float32Array(d):this.tmpCompsBuf}function b(a,b){for(var c=a.coords,d=a.colors,f=[],g=[],h=0;b.hasData;){var i=b.readFlag(),j=b.readCoordinate(),k=b.readComponents();if(0===h){switch(e(i>=0&&2>=i,"Unknown type4 flag"),i){case 0:h=3;break;case 1:g.push(g[g.length-2],g[g.length-1]),h=1;break;case 2:g.push(g[g.length-3],g[g.length-1]),h=1}f.push(i)}g.push(c.length),c.push(j),d.push(k),h--,b.align()}a.figures.push({type:"triangles",coords:new Int32Array(g),colors:new Int32Array(g)})}function d(a,b,c){for(var d=a.coords,e=a.colors,f=[];b.hasData;){var g=b.readCoordinate(),h=b.readComponents();f.push(d.length),d.push(g),e.push(h)}a.figures.push({type:"lattice",coords:new Int32Array(f),colors:new Int32Array(f),verticesPerRow:c})}function f(a,b){var c=a.figures[b];e("patch"===c.type,"Unexpected patch mesh figure");var d=a.coords,f=a.colors,g=c.coords,h=c.colors,i=Math.min(d[g[0]][0],d[g[3]][0],d[g[12]][0],d[g[15]][0]),j=Math.min(d[g[0]][1],d[g[3]][1],d[g[12]][1],d[g[15]][1]),k=Math.max(d[g[0]][0],d[g[3]][0],d[g[12]][0],d[g[15]][0]),p=Math.max(d[g[0]][1],d[g[3]][1],d[g[12]][1],d[g[15]][1]),q=Math.ceil((k-i)*n/(a.bounds[2]-a.bounds[0]));q=Math.max(l,Math.min(m,q));var r=Math.ceil((p-j)*n/(a.bounds[3]-a.bounds[1]));r=Math.max(l,Math.min(m,r));for(var s=q+1,t=new Int32Array((r+1)*s),u=new Int32Array((r+1)*s),v=0,w=new Uint8Array(3),x=new Uint8Array(3),y=f[h[0]],z=f[h[1]],A=f[h[2]],B=f[h[3]],C=o(r),D=o(q),E=0;r>=E;E++){w[0]=(y[0]*(r-E)+A[0]*E)/r|0,w[1]=(y[1]*(r-E)+A[1]*E)/r|0,w[2]=(y[2]*(r-E)+A[2]*E)/r|0,x[0]=(z[0]*(r-E)+B[0]*E)/r|0,x[1]=(z[1]*(r-E)+B[1]*E)/r|0,x[2]=(z[2]*(r-E)+B[2]*E)/r|0;for(var F=0;q>=F;F++,v++)if(0!==E&&E!==r||0!==F&&F!==q){for(var G=0,H=0,I=0,J=0;3>=J;J++)for(var K=0;3>=K;K++,I++){var L=C[E][J]*D[F][K];G+=d[g[I]][0]*L,H+=d[g[I]][1]*L}t[v]=d.length,d.push([G,H]),u[v]=f.length;var M=new Uint8Array(3);M[0]=(w[0]*(q-F)+x[0]*F)/q|0,M[1]=(w[1]*(q-F)+x[1]*F)/q|0,M[2]=(w[2]*(q-F)+x[2]*F)/q|0,f.push(M)}}t[0]=g[0],u[0]=h[0],t[q]=g[3],u[q]=h[1],t[s*r]=g[12],u[s*r]=h[2],t[s*r+q]=g[15],u[s*r+q]=h[3],a.figures[b]={type:"lattice",coords:t,colors:u,verticesPerRow:s}}function g(a,b){for(var c=a.coords,d=a.colors,f=new Int32Array(16),g=new Int32Array(4);b.hasData;){var h=b.readFlag();e(h>=0&&3>=h,"Unknown type6 flag");var i,j,k=c.length;for(i=0,j=0!==h?8:12;j>i;i++)c.push(b.readCoordinate());var l=d.length;for(i=0,j=0!==h?2:4;j>i;i++)d.push(b.readComponents());var m,n,o,p;switch(h){case 0:f[12]=k+3,f[13]=k+4,f[14]=k+5,f[15]=k+6,f[8]=k+2,f[11]=k+7,f[4]=k+1,f[7]=k+8,f[0]=k,f[1]=k+11,f[2]=k+10,f[3]=k+9,g[2]=l+1,g[3]=l+2,g[0]=l,g[1]=l+3;break;case 1:m=f[12],n=f[13],o=f[14],p=f[15],f[12]=p,f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=o,f[11]=k+3,f[4]=n,f[7]=k+4,f[0]=m,f[1]=k+7,f[2]=k+6,f[3]=k+5,m=g[2],n=g[3],g[2]=n,g[3]=l,g[0]=m,g[1]=l+1;break;case 2:m=f[15],n=f[11],f[12]=f[3],f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=f[7],f[11]=k+3,f[4]=n,f[7]=k+4,f[0]=m,f[1]=k+7,f[2]=k+6,f[3]=k+5,m=g[3],g[2]=g[1],g[3]=l,g[0]=m,g[1]=l+1;break;case 3:f[12]=f[0],f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=f[1],f[11]=k+3,f[4]=f[2],f[7]=k+4,f[0]=f[3],f[1]=k+7,f[2]=k+6,f[3]=k+5,g[2]=g[0],g[3]=l,g[0]=g[1],g[1]=l+1}f[5]=c.length,c.push([(-4*c[f[0]][0]-c[f[15]][0]+6*(c[f[4]][0]+c[f[1]][0])-2*(c[f[12]][0]+c[f[3]][0])+3*(c[f[13]][0]+c[f[7]][0]))/9,(-4*c[f[0]][1]-c[f[15]][1]+6*(c[f[4]][1]+c[f[1]][1])-2*(c[f[12]][1]+c[f[3]][1])+3*(c[f[13]][1]+c[f[7]][1]))/9]),f[6]=c.length,c.push([(-4*c[f[3]][0]-c[f[12]][0]+6*(c[f[2]][0]+c[f[7]][0])-2*(c[f[0]][0]+c[f[15]][0])+3*(c[f[4]][0]+c[f[14]][0]))/9,(-4*c[f[3]][1]-c[f[12]][1]+6*(c[f[2]][1]+c[f[7]][1])-2*(c[f[0]][1]+c[f[15]][1])+3*(c[f[4]][1]+c[f[14]][1]))/9]),f[9]=c.length,c.push([(-4*c[f[12]][0]-c[f[3]][0]+6*(c[f[8]][0]+c[f[13]][0])-2*(c[f[0]][0]+c[f[15]][0])+3*(c[f[11]][0]+c[f[1]][0]))/9,(-4*c[f[12]][1]-c[f[3]][1]+6*(c[f[8]][1]+c[f[13]][1])-2*(c[f[0]][1]+c[f[15]][1])+3*(c[f[11]][1]+c[f[1]][1]))/9]),f[10]=c.length,c.push([(-4*c[f[15]][0]-c[f[0]][0]+6*(c[f[11]][0]+c[f[14]][0])-2*(c[f[12]][0]+c[f[3]][0])+3*(c[f[2]][0]+c[f[8]][0]))/9,(-4*c[f[15]][1]-c[f[0]][1]+6*(c[f[11]][1]+c[f[14]][1])-2*(c[f[12]][1]+c[f[3]][1])+3*(c[f[2]][1]+c[f[8]][1]))/9]),a.figures.push({type:"patch",coords:new Int32Array(f),colors:new Int32Array(g)})}}function h(a,b){for(var c=a.coords,d=a.colors,f=new Int32Array(16),g=new Int32Array(4);b.hasData;){var h=b.readFlag();e(h>=0&&3>=h,"Unknown type7 flag");var i,j,k=c.length;for(i=0,j=0!==h?12:16;j>i;i++)c.push(b.readCoordinate());var l=d.length;for(i=0,j=0!==h?2:4;j>i;i++)d.push(b.readComponents());var m,n,o,p;switch(h){case 0:f[12]=k+3,f[13]=k+4,f[14]=k+5,f[15]=k+6,f[8]=k+2,f[9]=k+13,f[10]=k+14,f[11]=k+7,f[4]=k+1,f[5]=k+12,f[6]=k+15,f[7]=k+8,f[0]=k,f[1]=k+11,f[2]=k+10,f[3]=k+9,g[2]=l+1,g[3]=l+2,g[0]=l,g[1]=l+3;break;case 1:m=f[12],n=f[13],o=f[14],p=f[15],f[12]=p,f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=o,f[9]=k+9,f[10]=k+10,f[11]=k+3,f[4]=n,f[5]=k+8,f[6]=k+11,f[7]=k+4,f[0]=m,f[1]=k+7,f[2]=k+6,f[3]=k+5,m=g[2],n=g[3],g[2]=n,g[3]=l,g[0]=m,g[1]=l+1;break;case 2:m=f[15],n=f[11],f[12]=f[3],f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=f[7],f[9]=k+9,f[10]=k+10,f[11]=k+3,f[4]=n,f[5]=k+8,f[6]=k+11,f[7]=k+4,f[0]=m,f[1]=k+7,f[2]=k+6,f[3]=k+5,m=g[3],g[2]=g[1],g[3]=l,g[0]=m,g[1]=l+1;break;case 3:f[12]=f[0],f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=f[1],f[9]=k+9,f[10]=k+10,f[11]=k+3,f[4]=f[2],f[5]=k+8,f[6]=k+11,f[7]=k+4,f[0]=f[3],f[1]=k+7,f[2]=k+6,f[3]=k+5,g[2]=g[0],g[3]=l,g[0]=g[1],g[1]=l+1}a.figures.push({type:"patch",coords:new Int32Array(f),colors:new Int32Array(g)})}}function i(a){for(var b=a.coords[0][0],c=a.coords[0][1],d=b,e=c,f=1,g=a.coords.length;g>f;f++){var h=a.coords[f][0],i=a.coords[f][1];b=b>h?h:b,c=c>i?i:c,d=h>d?h:d,e=i>e?i:e}a.bounds=[b,c,d,e]}function j(a){var b,c,d,e,f=a.coords,g=new Float32Array(2*f.length);for(b=0,d=0,c=f.length;c>b;b++){var h=f[b];g[d++]=h[0],g[d++]=h[1]}a.coords=g;var i=a.colors,j=new Uint8Array(3*i.length);for(b=0,d=0,c=i.length;c>b;b++){var k=i[b];j[d++]=k[0],j[d++]=k[1],j[d++]=k[2]}a.colors=j;var l=a.figures;for(b=0,c=l.length;c>b;b++){var m=l[b],n=m.coords,o=m.colors;for(d=0,e=n.length;e>d;d++)n[d]*=2,o[d]*=3}}function k(k,l,m,n){e(D(k),"Mesh data is not a stream");var o=k.dict;this.matrix=l,this.shadingType=o.get("ShadingType"),this.type="Pattern",this.bbox=o.get("BBox");var p=o.get("ColorSpace","CS");p=Xa.parse(p,m,n),this.cs=p,this.background=o.has("Background")?p.getRgb(o.get("Background"),0):null;var q=o.get("Function"),r=q?Ta.parseArray(m,q):null;this.coords=[],this.colors=[],this.figures=[];var s={bitsPerCoordinate:o.get("BitsPerCoordinate"),bitsPerComponent:o.get("BitsPerComponent"),bitsPerFlag:o.get("BitsPerFlag"),decode:o.get("Decode"),colorFn:r,colorSpace:p,numComps:r?1:p.numComps},t=new a(k,s),u=!1;switch(this.shadingType){case sb.FREE_FORM_MESH:b(this,t);break;case sb.LATTICE_FORM_MESH:var v=0|o.get("VerticesPerRow");e(v>=2,"Invalid VerticesPerRow"),d(this,t,v);break;case sb.COONS_PATCH_MESH:g(this,t),u=!0;break;case sb.TENSOR_PATCH_MESH:h(this,t),u=!0;break;default:c("Unsupported mesh type.")}if(u){i(this);for(var w=0,x=this.figures.length;x>w;w++)f(this,w)}i(this),j(this)}a.prototype={get hasData(){if(this.stream.end)return this.stream.pos0)return!0;var a=this.stream.getByte();return 0>a?!1:(this.buffer=a,this.bufferLength=8,!0)},readBits:function(a){var b=this.buffer,c=this.bufferLength;if(32===a){if(0===c)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;b=b<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();var d=this.stream.getByte();return this.buffer=d&(1<>c)>>>0}if(8===a&&0===c)return this.stream.getByte();for(;a>c;)b=b<<8|this.stream.getByte(),c+=8;return c-=a,this.bufferLength=c,this.buffer=b&(1<>c},align:function(){this.buffer=0,this.bufferLength=0},readFlag:function(){return this.readBits(this.context.bitsPerFlag)},readCoordinate:function(){var a=this.context.bitsPerCoordinate,b=this.readBits(a),c=this.readBits(a),d=this.context.decode,e=32>a?1/((1<b?1/((1<f;f++,g+=2){var h=this.readBits(b);e[f]=h*c*(d[g+1]-d[g])+d[g]}var i=this.tmpCsCompsBuf;return this.context.colorFn&&this.context.colorFn(e,0,i,0),this.context.colorSpace.getRgb(i,0)}};var l=3,m=20,n=20,o=function(){function a(a){for(var b=[],c=0;a>=c;c++){var d=c/a,e=1-d;b.push(new Float32Array([e*e*e,3*d*e*e,3*d*d*e,d*d*d]))}return b}var b=[];return function(c){return b[c]||(b[c]=a(c)),b[c]}}();return k.prototype={getIR:function(){return["Mesh",this.shadingType,this.coords,this.colors,this.figures,this.bounds,this.matrix,this.bbox,this.background]}},k}(),ub.Dummy=function(){function a(){this.type="Pattern"}return a.prototype={getIR:function(){return["Dummy"]}},a}();var vb=function(){function d(a,b,c,d,e,f,g){this.pdfManager=a,this.xref=b,this.handler=c,this.pageIndex=d,this.uniquePrefix=e,this.idCounters=f,this.fontCache=g}function f(){this.reset()}var g=20,h=100;f.prototype={check:function(){return++this.checkedPDFJS.maxImageSize)return void b("Image exceeded maximum allowed size and was removed.");var l,m,n=i.get("ImageMask","IM")||!1;if(n){var o=i.get("Width","W"),p=i.get("Height","H"),q=o+7>>3,r=c.getBytes(q*p),s=i.get("Decode","D"),t=!!s&&s[0]>0;return l=Bc.createMask(r,o,p,c instanceof Oc,t),l.cached=!0,m=[l],e.addOp($.paintImageMaskXObject,m),void(f&&(g[f]={fn:$.paintImageMaskXObject,args:m}))}var u=i.get("SMask","SM")||!1,v=i.get("Mask")||!1,w=200;if(d&&!u&&!v&&!(c instanceof Sc)&&w>j+k){var y=new Bc(this.xref,a,c,d,null,null);return l=y.createImageData(!0),void e.addOp($.paintInlineImageXObject,[l])}var z=this.uniquePrefix||"",A="img_"+z+ ++this.idCounters.obj;return e.addDependency(A),m=[A,j,k],!u&&!v&&c instanceof Sc&&c.isNativelySupported(this.xref,a)?(e.addOp($.paintJpegXObject,m),void this.handler.send("obj",[A,this.pageIndex,"JpegStream",c.getIR()])):(Bc.buildImage(h.handler,h.xref,a,c,d).then(function(a){var b=a.createImageData(!1);h.handler.send("obj",[A,h.pageIndex,"Image",b],[b.data.buffer])}).then(void 0,function(a){b("Unable to decode image: "+a),h.handler.send("obj",[A,h.pageIndex,"Image",null])}),e.addOp($.paintImageXObject,m),void(f&&(g[f]={fn:$.paintImageXObject,args:m})))},handleSMask:function(a,b,c,d,e){var f=a.get("G"),g={subtype:a.get("S").name,backdrop:a.get("BC")};return this.buildFormXObject(b,f,g,c,d,e.state.clone())},handleTilingType:function(a,b,c,d,e,f,g){var h=new xb,i=[e.get("Resources"),c],j=Aa.merge(this.xref,i);return this.getOperatorList(d,g,j,h).then(function(){f.addDependencies(h.dependencies),f.addOp(a,J({fnArray:h.fnArray,argsArray:h.argsArray},e,b))})},handleSetFont:function(a,b,c,d,e,f){var g;b&&(b=b.slice(),g=b[0].name);var h=this;return this.loadFont(g,c,this.xref,a).then(function(b){return b.font.isType3Font?b.loadType3Data(h,a,d,e).then(function(){return b}):b}).then(function(a){return f.font=a.font,a.send(h.handler),a.loadedName})},handleText:function(a,b){var c=b.font,d=c.charsToGlyphs(a),e=!!(b.textRenderingMode&U.ADD_TO_PATH_FLAG);if(c.data&&(e||PDFJS.disableFontFace))for(var f=function(a){if(!c.renderer.hasBuiltPath(a)){var b=c.renderer.getPathJs(a);this.handler.send("commonobj",[c.loadedName+"_path_"+a,"FontPath",b])}}.bind(this),g=0,h=d.length;h>g;g++){var i=d[g];if(null!==i){f(i.fontChar);var j=i.accent;j&&j.fontChar&&f(j.fontChar)}}return d},setGState:function(c,d,e,f,g,h){var i=[],j=d.map,k=this,l=Promise.resolve();for(var m in j){var n=j[m];switch(m){case"Type":break;case"LW":case"LC":case"LJ":case"ML":case"D":case"RI":case"FL":case"CA":case"ca":i.push([m,n]);break;case"Font":l=l.then(function(){return k.handleSetFont(c,null,n[0],e,f,h.state).then(function(a){e.addDependency(a),i.push([m,[a,n[1]]])})});break;case"BM":i.push([m,n]);break;case"SMask":if(z(n)&&"None"===n.name){i.push([m,!1]);break}var o=g.fetchIfRef(n);B(o)?(l=l.then(function(){return k.handleSMask(o,c,e,f,h)}),i.push([m,!0])):b("Unsupported SMask type");break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":a("graphic state operator "+m);break;default:a("Unknown graphic state operator "+m)}}return l.then(function(){i.length>=0&&e.addOp($.setGState,[i])})},loadFont:function(a,c,d,f){function g(){return Promise.resolve(new wb("g_font_error",new ec("Font "+a+" is not available"),c))}var h;if(c)e(F(c)),h=c;else{var i=f.get("Font");if(!i)return b("fontRes not available"),g();h=i.getRaw(a)}if(!h)return b("fontRef not available"),g();if(this.fontCache.has(h))return this.fontCache.get(h);if(c=d.fetchIfRef(h),!B(c))return g();if(c.translated)return c.translated;var j=G(),k=this.preEvaluateFont(c,d),l=k.descriptor,m=h.num+"_"+h.gen;if(B(l)){l.fontAliases||(l.fontAliases=Object.create(null));var n=l.fontAliases,o=k.hash;if(n[o]){var p=n[o].aliasRef;if(p&&this.fontCache.has(p))return this.fontCache.putAlias(h,p),this.fontCache.get(h)}n[o]||(n[o]={fontID:dc.getFontID()}),n[o].aliasRef=h,m=n[o].fontID}var q=B(h);q||this.fontCache.put(h,j.promise),c.loadedName="g_font_"+(q?a.replace(/\W/g,""):m),c.translated=j.promise;var r;try{r=Promise.resolve(this.translateFont(k,d))}catch(s){r=Promise.reject(s)}return r.then(function(a){if(void 0!==a.fontType){var b=d.stats.fontTypes;b[a.fontType]=!0}j.resolve(new wb(c.loadedName,a,c))},function(a){aa.notify(_.font);try{var b=k.descriptor,e=b&&b.get("FontFile3"),f=e&&e.get("Subtype"),g=P(k.type,f&&f.name),h=d.stats.fontTypes;h[g]=!0}catch(i){}j.resolve(new wb(c.loadedName,new ec(a instanceof Error?a.message:a),c))}),j.promise},buildPath:function(a,b,c){var d=a.length-1;if(c||(c=[]),0>d||a.fnArray[d]!==$.constructPath)a.addOp($.constructPath,[[b],c]);else{var e=a.argsArray[d];e[0].push(b),Array.prototype.push.apply(e[1],c)}},handleColorN:function(a,b,c,d,e,f,g,h){var i,l=c[c.length-1];if(z(l)&&(i=e.get(l.name))){var m=D(i)?i.dict:i,n=m.get("PatternType");if(n===j){var o=d.base?d.base.getRgb(c,0):null;return this.handleTilingType(b,o,f,i,m,a,g)}if(n===k){var p=m.get("Shading"),q=m.get("Matrix");return i=tb.parseShading(p,q,h,f),a.addOp(b,i.getIR()),Promise.resolve()}return Promise.reject("Unknown PatternType: "+n)}return a.addOp(b,c),Promise.resolve()},getOperatorList:function(d,g,h,j,k){var l=this,m=this.xref,n={};e(j),h=h||Aa.empty;var o=h.get("XObject")||Aa.empty,p=h.get("Pattern")||Aa.empty,q=new yb(k||new Ab),r=new Bb(d,m,q),s=new f;return new Promise(function t(d,f){g.ensureNotTerminated(),s.reset();for(var k,u,v,w,A={};!(k=s.check())&&(A.args=null,r.read(A));){var C=A.args,E=A.fn;switch(0|E){case $.paintXObject:if(C[0].code)break;var F=C[0].name;if(!F){b("XObject must be referred to by name.");continue}if(void 0!==n[F]){j.addOp(n[F].fn,n[F].args),C=null;continue}var G=o.get(F);if(G){e(D(G),"XObject should be a stream");var H=G.dict.get("Subtype");if(e(z(H),"XObject should have a Name subtype"),"Form"===H.name)return q.save(),l.buildFormXObject(h,G,null,j,g,q.state.clone()).then(function(){q.restore(),t(d,f)},f);if("Image"===H.name){l.buildPaintImageXObject(h,G,!1,j,F,n),C=null;continue}if("PS"===H.name){a("Ignored XObject subtype PS");continue}c("Unhandled XObject subtype "+H.name)}break;case $.setFont:var I=C[1];return l.handleSetFont(h,C,null,j,g,q.state).then(function(a){j.addDependency(a),j.addOp($.setFont,[a,I]),t(d,f)},f);case $.endInlineImage:var J=C[0].cacheKey;if(J){var K=n[J];if(void 0!==K){j.addOp(K.fn,K.args),C=null;continue}}l.buildPaintImageXObject(h,C[0],!0,j,J,n),C=null;continue;case $.showText:C[0]=l.handleText(C[0],q.state);break;case $.showSpacedText:var L=C[0],M=[],N=L.length,O=q.state;for(u=0;N>u;++u){var P=L[u];y(P)?Array.prototype.push.apply(M,l.handleText(P,O)):x(P)&&M.push(P)}C[0]=M,E=$.showText;break;case $.nextLineShowText:j.addOp($.nextLine),C[0]=l.handleText(C[0],q.state),E=$.showText;break;case $.nextLineSetSpacingShowText:j.addOp($.nextLine),j.addOp($.setWordSpacing,[C.shift()]),j.addOp($.setCharSpacing,[C.shift()]),C[0]=l.handleText(C[0],q.state),E=$.showText;break;case $.setTextRenderingMode:q.state.textRenderingMode=C[0];break;case $.setFillColorSpace:q.state.fillColorSpace=Xa.parse(C[0],m,h);continue;case $.setStrokeColorSpace:q.state.strokeColorSpace=Xa.parse(C[0],m,h);continue;case $.setFillColor:w=q.state.fillColorSpace,C=w.getRgb(C,0),E=$.setFillRGBColor;break;case $.setStrokeColor:w=q.state.strokeColorSpace,C=w.getRgb(C,0),E=$.setStrokeRGBColor;break;case $.setFillGray:q.state.fillColorSpace=Xa.singletons.gray,C=Xa.singletons.gray.getRgb(C,0),E=$.setFillRGBColor;break;case $.setStrokeGray:q.state.strokeColorSpace=Xa.singletons.gray,C=Xa.singletons.gray.getRgb(C,0),E=$.setStrokeRGBColor;break;case $.setFillCMYKColor:q.state.fillColorSpace=Xa.singletons.cmyk,C=Xa.singletons.cmyk.getRgb(C,0),E=$.setFillRGBColor;break;case $.setStrokeCMYKColor:q.state.strokeColorSpace=Xa.singletons.cmyk,C=Xa.singletons.cmyk.getRgb(C,0),E=$.setStrokeRGBColor;break;case $.setFillRGBColor:q.state.fillColorSpace=Xa.singletons.rgb,C=Xa.singletons.rgb.getRgb(C,0);break;case $.setStrokeRGBColor:q.state.strokeColorSpace=Xa.singletons.rgb,C=Xa.singletons.rgb.getRgb(C,0);break;case $.setFillColorN:if(w=q.state.fillColorSpace,"Pattern"===w.name)return l.handleColorN(j,$.setFillColorN,C,w,p,h,g,m).then(function(){t(d,f)},f);C=w.getRgb(C,0),E=$.setFillRGBColor;break;case $.setStrokeColorN:if(w=q.state.strokeColorSpace,"Pattern"===w.name)return l.handleColorN(j,$.setStrokeColorN,C,w,p,h,g,m).then(function(){t(d,f)},f);C=w.getRgb(C,0),E=$.setStrokeRGBColor;break;case $.shadingFill:var Q=h.get("Shading");Q||c("No shading resource found");var R=Q.get(C[0].name);R||c("No shading object found");var S=tb.parseShading(R,null,m,h),T=S.getIR();C=[T],E=$.shadingFill;break;case $.setGState:var U=C[0],V=h.get("ExtGState");if(!B(V)||!V.has(U.name))break;var W=V.get(U.name);return l.setGState(h,W,j,g,m,q).then(function(){t(d,f)},f);case $.moveTo:case $.lineTo:case $.curveTo:case $.curveTo2:case $.curveTo3:case $.closePath:l.buildPath(j,E,C);continue;case $.rectangle:l.buildPath(j,E,C);continue;case $.markPoint:case $.markPointProps:case $.beginMarkedContent:case $.beginMarkedContentProps:case $.endMarkedContent:case $.beginCompat:case $.endCompat:continue}j.addOp(E,C)}if(k)return void i.then(function(){t(d,f)},f);for(u=0,v=r.savedStatesDepth;v>u;u++)j.addOp($.restore,[]);d()})},getTextContent:function(a,b,c,d){function g(){var a=r.font;return a.loadedName in l.styles||(l.styles[a.loadedName]={fontFamily:a.fallbackName,ascent:a.ascent,descent:a.descent,vertical:a.vertical}),{str:[],dir:null,width:0,height:0,transform:null,fontName:a.loadedName}}function h(a){var b=a.str.join(""),c=PDFJS.bidi(b,-1,r.font.vertical);return a.str=c.str,a.dir=c.dir,a}function j(a,b){return p.loadFont(a,b,q,c).then(function(a){r.font=a.font,r.fontMatrix=a.font.fontMatrix||T})}function k(a,b){var c=r.font;if(b=b||g(),!b.transform){var d=[r.fontSize*r.textHScale,0,0,r.fontSize,0,r.textRise];if(c.isType3Font&&r.fontMatrix!==T&&1===r.fontSize){var e=c.bbox[3]-c.bbox[1];e>0&&(e*=r.fontMatrix[3],d[3]*=e)}var f=b.transform=na.transform(r.ctm,na.transform(r.textMatrix,d));c.vertical?b.width=Math.sqrt(f[0]*f[0]+f[1]*f[1]):b.height=Math.sqrt(f[2]*f[2]+f[3]*f[3])}for(var h=0,i=0,j=c.charsToGlyphs(a),k=c.defaultVMetrics,l=0;l0&&(s=r.charSpacing);var t=0,u=0;if(c.vertical){var v=p*r.fontMatrix[0];u=v*r.fontSize+s,i+=u}else{var w=p*r.fontMatrix[0];t=(w*r.fontSize+s)*r.textHScale,h+=t}r.translateTextMatrix(t,u),b.str.push(q)}else h+=r.wordSpacing*r.textHScale}var x=r.textLineMatrix[0],y=r.textLineMatrix[1],z=Math.sqrt(x*x+y*y);x=r.ctm[0],y=r.ctm[1];var A=Math.sqrt(x*x+y*y);return c.vertical?b.height+=Math.abs(i*A*z):b.width+=h*A*z,b}d=d||new yb(new zb);var l={items:[],styles:Object.create(null)},m=l.items,n=.3,o=1.5,p=this,q=this.xref;c=q.fetchIfRef(c)||Aa.empty;var r,s=null,t={},u=new Bb(a,q,d),v=new f;return new Promise(function w(a,f){b.ensureNotTerminated(),v.reset();for(var q,x={},y=[];!(q=v.check())&&(y.length=0,x.args=y,u.read(x));){r=d.state;var A=x.fn;switch(y=x.args,0|A){case $.setFont:return r.fontSize=y[1],j(y[0].name).then(function(){w(a,f)},f);case $.setTextRise:r.textRise=y[0];break;case $.setHScale:r.textHScale=y[0]/100;break;case $.setLeading:r.leading=y[0];break;case $.moveText:r.translateTextLineMatrix(y[0],y[1]),r.textMatrix=r.textLineMatrix.slice();break;case $.setLeadingMoveText:r.leading=-y[1],r.translateTextLineMatrix(y[0],y[1]),r.textMatrix=r.textLineMatrix.slice();break;case $.nextLine:r.carriageReturn();break;case $.setTextMatrix:r.setTextMatrix(y[0],y[1],y[2],y[3],y[4],y[5]),r.setTextLineMatrix(y[0],y[1],y[2],y[3],y[4],y[5]);break;case $.setCharSpacing:r.charSpacing=y[0];break;case $.setWordSpacing:r.wordSpacing=y[0];break;case $.beginText:r.textMatrix=ma.slice(),r.textLineMatrix=ma.slice();break;case $.showSpacedText:for(var E,F=y[0],G=g(),H=0,I=F.length;I>H;H++)if("string"==typeof F[H])k(F[H],G);else{var J=F[H]*r.fontSize/1e3;if(r.font.vertical?(E=J*r.textMatrix[3],r.translateTextMatrix(0,E),G.height+=E):(E=J*r.textHScale*r.textMatrix[0],r.translateTextMatrix(E,0),G.width-=E),F[H]<0&&r.font.spaceWidth>0){var K=-F[H]/r.font.spaceWidth;if(K>o)for(K=Math.round(K);K--;)G.str.push(" ");else K>n&&G.str.push(" ")}}m.push(h(G));break;case $.showText:m.push(h(k(y[0])));break;case $.nextLineShowText:r.carriageReturn(),m.push(h(k(y[0])));break;case $.nextLineSetSpacingShowText:r.wordSpacing=y[0],r.charSpacing=y[1],r.carriageReturn(),m.push(h(k(y[2])));break;case $.paintXObject:if(y[0].code)break;s||(s=c.get("XObject")||Aa.empty);var L=y[0].name;if(t.key===L){t.texts&&(na.appendToArray(m,t.texts.items),na.extendObj(l.styles,t.texts.styles));break}var M=s.get(L);if(!M)break;e(D(M),"XObject should be a stream");var N=M.dict.get("Subtype");if(e(z(N),"XObject should have a Name subtype"),"Form"!==N.name){t.key=L,t.texts=null;break}d.save();var O=M.dict.get("Matrix");return C(O)&&6===O.length&&d.transform(O),p.getTextContent(M,b,M.dict.get("Resources")||c,d).then(function(b){na.appendToArray(m,b.items),na.extendObj(l.styles,b.styles),d.restore(),t.key=L,t.texts=b,w(a,f)},f);case $.setGState:var P=y[0],Q=c.get("ExtGState");if(!B(Q)||!Q.has(P.name))break;var R=Q.get(P.name),S=null;for(var T in R)"Font"===T&&(e(!S),S=R[T]);if(S)return r.fontSize=S[1],j(S[0]).then(function(){w(a,f)},f)}}return q?void i.then(function(){w(a,f)},f):void a(l)})},extractDataStructures:function(a,b,d,e){var f=a.get("ToUnicode")||b.get("ToUnicode");if(f&&(e.toUnicode=this.readToUnicode(f)),e.composite){var g=a.get("CIDSystemInfo");B(g)&&(e.cidSystemInfo={registry:g.get("Registry"),ordering:g.get("Ordering"),supplement:g.get("Supplement")});var h=a.get("CIDToGIDMap");D(h)&&(e.cidToGidMap=this.readCidToGidMap(h))}var i,j=[],k=null;if(a.has("Encoding")){if(i=a.get("Encoding"),B(i)){if(k=i.get("BaseEncoding"),k=z(k)?k.name:null,i.has("Differences"))for(var l=i.get("Differences"),m=0,n=0,o=l.length;o>n;n++){var p=l[n];if(x(p))m=p;else if(z(p))j[m++]=p.name;else{if(F(p)){l[n--]=d.fetch(p);continue}c("Invalid entry in 'Differences' array: "+p)}}}else z(i)?k=i.name:c("Encoding is not a Name nor a Dict");"MacRomanEncoding"!==k&&"MacExpertEncoding"!==k&&"WinAnsiEncoding"!==k&&(k=null)}k?e.defaultEncoding=Pb[k].slice():(i="TrueType"===e.type?Pb.WinAnsiEncoding:Pb.StandardEncoding,e.flags&Ob.Symbolic&&(i=Pb.MacRomanEncoding,e.file||(/Symbol/i.test(e.name)?i=Pb.SymbolSetEncoding:/Dingbats/i.test(e.name)&&(i=Pb.ZapfDingbatsEncoding))),e.defaultEncoding=i),e.differences=j,e.baseEncodingName=k,e.dict=a},readToUnicode:function(a){var b,c=a;if(z(c))return b=Hb.create(c,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null),b instanceof Fb?new ac(0,65535):new _b(b.getMap());if(D(c)){if(b=Hb.create(c,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null),b instanceof Fb)return new ac(0,65535);var d=new Array(b.length);return b.forEach(function(a,b){for(var c=[],e=0;ed;d++){var f=b[d++]<<8|b[d];if(0!==f){var g=d>>1;c[g]=f}}return c},extractWidths:function(a,b,c,d){var e,f,g,h,i,j,k,l,m=[],n=0,o=[];if(d.composite){if(n=a.get("DW")||1e3,l=a.get("W"))for(f=0,g=l.length;g>f;f++)if(j=l[f++],k=b.fetchIfRef(l[f]),C(k))for(h=0,i=k.length;i>h;h++)m[j++]=k[h];else{var p=l[++f];for(h=j;k>=h;h++)m[h]=p}if(d.vertical){var q=a.get("DW2")||[880,-1e3];if(e=[q[1],.5*n,q[0]],q=a.get("W2"))for(f=0,g=q.length;g>f;f++)if(j=q[f++],k=b.fetchIfRef(q[f]),C(k))for(h=0,i=k.length;i>h;h++)o[j++]=[k[h++],k[h++],k[h]];else{var r=[q[++f],q[++f],q[++f]];for(h=j;k>=h;h++)o[h]=r}}}else{var s=d.firstChar;if(l=a.get("Widths")){for(h=s,f=0,g=l.length;g>f;f++)m[h++]=l[f];n=parseFloat(c.get("MissingWidth"))||0}else{var t=a.get("BaseFont");if(z(t)){var u=this.getBaseFontMetrics(t.name);m=this.buildCharCodeToWidth(u.widths,d),n=u.defaultWidth}}}var v=!0,w=n;for(var x in m){var y=m[x];if(y)if(w){if(w!==y){v=!1;break}}else w=y}v&&(d.flags|=Ob.FixedPitch),d.defaultWidth=n,d.widths=m,d.defaultVMetrics=e,d.vmetrics=o},isSerifFont:function(a){var b=a.split("-")[0];return b in Sb||-1!==b.search(/serif/gi)},getBaseFontMetrics:function(a){var b=0,c=[],d=!1,e=Qb[a]||a;e in Cc||(e=this.isSerifFont(a)?"Times-Roman":"Helvetica");var f=Cc[e];return x(f)?(b=f,d=!0):c=f,{defaultWidth:b,monospace:d,widths:c}},buildCharCodeToWidth:function(a,b){for(var c=Object.create(null),d=b.differences,e=b.defaultEncoding,f=0;256>f;f++)f in d&&a[d[f]]?c[f]=a[d[f]]:f in e&&a[e[f]]&&(c[f]=a[e[f]]);return c},preEvaluateFont:function(a,b){var d=a,f=a.get("Subtype");e(z(f),"invalid font Subtype");var g,h=!1;if("Type0"===f.name){var i=a.get("DescendantFonts");i||c("Descendant fonts are not specified"),a=C(i)?b.fetchIfRef(i[0]):i,f=a.get("Subtype"),e(z(f),"invalid font Subtype"),h=!0}var j=a.get("FontDescriptor");if(j){var k=new jd,l=d.getRaw("Encoding");if(z(l))k.update(l.name);else if(F(l))k.update(l.num+"_"+l.gen);else if(B(l))for(var m=l.getKeys(),n=0,o=m.length;o>n;n++){var p=l.getRaw(m[n]);z(p)?k.update(p.name):F(p)?k.update(p.num+"_"+p.gen):C(p)&&k.update(p.length.toString())}var q=a.get("ToUnicode")||d.get("ToUnicode");if(D(q)){var r=q.str||q;g=r.buffer?new Uint8Array(r.buffer.buffer,0,r.bufferLength):new Uint8Array(r.bytes.buffer,r.start,r.end-r.start),k.update(g)}else z(q)&&k.update(q.name);var s=a.get("Widths")||d.get("Widths");s&&(g=new Uint8Array(new Uint32Array(s).buffer),k.update(g))}return{descriptor:j,dict:a,baseDict:d,composite:h,type:f.name,hash:k?k.hexdigest():""}},translateFont:function(b,d){var f,g=b.baseDict,h=b.dict,i=b.composite,j=b.descriptor,k=b.type,l=i?65535:255;if(!j){if("Type3"!==k){var m=h.get("BaseFont");z(m)||c("Base font is not specified"),m=m.name.replace(/[,_]/g,"-");var n=this.getBaseFontMetrics(m),o=m.split("-")[0],p=(this.isSerifFont(o)?Ob.Serif:0)|(n.monospace?Ob.FixedPitch:0)|(Tb[o]?Ob.Symbolic:Ob.Nonsymbolic);return f={type:k,name:m,widths:n.widths,defaultWidth:n.defaultWidth,flags:p,firstChar:0,lastChar:l},this.extractDataStructures(h,h,d,f),f.widths=this.buildCharCodeToWidth(n.widths,f),new dc(m,null,f)}j=new Aa(null),j.set("FontName",ya.get(k)),j.set("FontBBox",h.get("FontBBox"))}var q=h.get("FirstChar")||0,r=h.get("LastChar")||l,s=j.get("FontName"),t=h.get("BaseFont");if(y(s)&&(s=ya.get(s)),y(t)&&(t=ya.get(t)),"Type3"!==k){var u=s&&s.name,v=t&&t.name;u!==v&&(a("The FontDescriptor's FontName is \""+u+'" but should be the same as the Font\'s BaseFont "'+v+'"'),u&&v&&0===v.indexOf(u)&&(s=t))}s=s||t,e(z(s),"invalid font name");var w=j.get("FontFile","FontFile2","FontFile3");if(w&&w.dict){var x=w.dict.get("Subtype");x&&(x=x.name);var A=w.dict.get("Length1"),B=w.dict.get("Length2")}if(f={type:k,name:s.name,subtype:x,file:w,length1:A,length2:B,loadedName:g.loadedName,composite:i,wideChars:i,fixedPitch:!1,fontMatrix:h.get("FontMatrix")||T,firstChar:q||0,lastChar:r||l,bbox:j.get("FontBBox"),ascent:j.get("Ascent"),descent:j.get("Descent"),xHeight:j.get("XHeight"),capHeight:j.get("CapHeight"),flags:j.get("Flags"),italicAngle:j.get("ItalicAngle"),coded:!1},i){var C=g.get("Encoding");z(C)&&(f.cidEncoding=C.name),f.cMap=Hb.create(C,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null),f.vertical=f.cMap.vertical}return this.extractDataStructures(h,g,d,f),this.extractWidths(h,d,j,f),"Type3"===k&&(f.isType3Font=!0),new dc(s.name,w,f)}},d}(),wb=function(){function a(a,b,c){this.loadedName=a,this.font=b,this.dict=c,this.type3Loaded=null,this.sent=!1}return a.prototype={send:function(a){if(!this.sent){var b=this.font.exportData();a.send("commonobj",[this.loadedName,"Font",b]),this.sent=!0}},loadType3Data:function(a,c,d,f){if(e(this.font.isType3Font),this.type3Loaded)return this.type3Loaded;for(var g=this.font,h=Promise.resolve(),i=this.dict.get("CharProcs").getAll(),j=this.dict.get("Resources")||c,k=Object.keys(i),l={},m=0,n=k.length;n>m;++m)h=h.then(function(c){var e=i[c],g=new xb;return a.getOperatorList(e,f,j,g).then(function(){l[c]=g.getIR(),d.addDependencies(g.dependencies)},function(a){b('Type3 font resource "'+c+'" is not available');var d=new xb;l[c]=d.getIR()})}.bind(this,k[m]));return this.type3Loaded=h.then(function(){g.charProcOperatorList=l}),this.type3Loaded}},a}(),xb=function(){function a(a){for(var b=[],c=a.fnArray,d=a.argsArray,e=0,f=a.length;f>e;e++)switch(c[e]){ +case $.paintInlineImageXObject:case $.paintInlineImageXObjectGroup:case $.paintImageMaskXObject:var g=d[e][0];g.cached||b.push(g.data.buffer)}return b}function b(a,b,c){this.messageHandler=b,this.fnArray=[],this.argsArray=[],this.dependencies={},this.pageIndex=c,this.intent=a}var c=1e3,d=c-5;return b.prototype={get length(){return this.argsArray.length},addOp:function(a,b){this.fnArray.push(a),this.argsArray.push(b),this.messageHandler&&(this.fnArray.length>=c?this.flush():this.fnArray.length>=d&&(a===$.restore||a===$.endText)&&this.flush())},addDependency:function(a){a in this.dependencies||(this.dependencies[a]=!0,this.addOp($.dependency,[a]))},addDependencies:function(a){for(var b in a)this.addDependency(b)},addOpList:function(a){na.extendObj(this.dependencies,a.dependencies);for(var b=0,c=a.length;c>b;b++)this.addOp(a.fnArray[b],a.argsArray[b])},getIR:function(){return{fnArray:this.fnArray,argsArray:this.argsArray,length:this.length}},flush:function(b){"oplist"!==this.intent&&(new Cb).optimize(this);var c=a(this);this.messageHandler.send("RenderPageChunk",{operatorList:{fnArray:this.fnArray,argsArray:this.argsArray,lastChunk:b,length:this.length},pageIndex:this.pageIndex,intent:this.intent},c),this.dependencies={},this.fnArray.length=0,this.argsArray.length=0}},b}(),yb=function(){function a(a){this.state=a,this.stateStack=[]}return a.prototype={save:function(){var a=this.state;this.stateStack.push(this.state),this.state=a.clone()},restore:function(){var a=this.stateStack.pop();a&&(this.state=a)},transform:function(a){this.state.ctm=na.transform(this.state.ctm,a)}},a}(),zb=function(){function a(){this.ctm=new Float32Array(ma),this.fontSize=0,this.font=null,this.fontMatrix=T,this.textMatrix=ma.slice(),this.textLineMatrix=ma.slice(),this.charSpacing=0,this.wordSpacing=0,this.leading=0,this.textHScale=1,this.textRise=0}return a.prototype={setTextMatrix:function(a,b,c,d,e,f){var g=this.textMatrix;g[0]=a,g[1]=b,g[2]=c,g[3]=d,g[4]=e,g[5]=f},setTextLineMatrix:function(a,b,c,d,e,f){var g=this.textLineMatrix;g[0]=a,g[1]=b,g[2]=c,g[3]=d,g[4]=e,g[5]=f},translateTextMatrix:function(a,b){var c=this.textMatrix;c[4]=c[0]*a+c[2]*b+c[4],c[5]=c[1]*a+c[3]*b+c[5]},translateTextLineMatrix:function(a,b){var c=this.textLineMatrix;c[4]=c[0]*a+c[2]*b+c[4],c[5]=c[1]*a+c[3]*b+c[5]},calcRenderMatrix:function(a){var b=[this.fontSize*this.textHScale,0,0,this.fontSize,0,this.textRise];return na.transform(a,na.transform(this.textMatrix,b))},carriageReturn:function(){this.translateTextLineMatrix(0,-this.leading),this.textMatrix=this.textLineMatrix.slice()},clone:function(){var a=Object.create(this);return a.textMatrix=this.textMatrix.slice(),a.textLineMatrix=this.textLineMatrix.slice(),a.fontMatrix=this.fontMatrix.slice(),a}},a}(),Ab=function(){function a(){this.ctm=new Float32Array(ma),this.font=null,this.textRenderingMode=U.FILL,this.fillColorSpace=Xa.singletons.gray,this.strokeColorSpace=Xa.singletons.gray}return a.prototype={clone:function(){return Object.create(this)}},a}(),Bb=function(){function c(a,b,c){this.parser=new Fc(new Gc(a,d),!1,b),this.stateManager=c,this.nonProcessedArgs=[]}var d={w:{id:$.setLineWidth,numArgs:1,variableArgs:!1},J:{id:$.setLineCap,numArgs:1,variableArgs:!1},j:{id:$.setLineJoin,numArgs:1,variableArgs:!1},M:{id:$.setMiterLimit,numArgs:1,variableArgs:!1},d:{id:$.setDash,numArgs:2,variableArgs:!1},ri:{id:$.setRenderingIntent,numArgs:1,variableArgs:!1},i:{id:$.setFlatness,numArgs:1,variableArgs:!1},gs:{id:$.setGState,numArgs:1,variableArgs:!1},q:{id:$.save,numArgs:0,variableArgs:!1},Q:{id:$.restore,numArgs:0,variableArgs:!1},cm:{id:$.transform,numArgs:6,variableArgs:!1},m:{id:$.moveTo,numArgs:2,variableArgs:!1},l:{id:$.lineTo,numArgs:2,variableArgs:!1},c:{id:$.curveTo,numArgs:6,variableArgs:!1},v:{id:$.curveTo2,numArgs:4,variableArgs:!1},y:{id:$.curveTo3,numArgs:4,variableArgs:!1},h:{id:$.closePath,numArgs:0,variableArgs:!1},re:{id:$.rectangle,numArgs:4,variableArgs:!1},S:{id:$.stroke,numArgs:0,variableArgs:!1},s:{id:$.closeStroke,numArgs:0,variableArgs:!1},f:{id:$.fill,numArgs:0,variableArgs:!1},F:{id:$.fill,numArgs:0,variableArgs:!1},"f*":{id:$.eoFill,numArgs:0,variableArgs:!1},B:{id:$.fillStroke,numArgs:0,variableArgs:!1},"B*":{id:$.eoFillStroke,numArgs:0,variableArgs:!1},b:{id:$.closeFillStroke,numArgs:0,variableArgs:!1},"b*":{id:$.closeEOFillStroke,numArgs:0,variableArgs:!1},n:{id:$.endPath,numArgs:0,variableArgs:!1},W:{id:$.clip,numArgs:0,variableArgs:!1},"W*":{id:$.eoClip,numArgs:0,variableArgs:!1},BT:{id:$.beginText,numArgs:0,variableArgs:!1},ET:{id:$.endText,numArgs:0,variableArgs:!1},Tc:{id:$.setCharSpacing,numArgs:1,variableArgs:!1},Tw:{id:$.setWordSpacing,numArgs:1,variableArgs:!1},Tz:{id:$.setHScale,numArgs:1,variableArgs:!1},TL:{id:$.setLeading,numArgs:1,variableArgs:!1},Tf:{id:$.setFont,numArgs:2,variableArgs:!1},Tr:{id:$.setTextRenderingMode,numArgs:1,variableArgs:!1},Ts:{id:$.setTextRise,numArgs:1,variableArgs:!1},Td:{id:$.moveText,numArgs:2,variableArgs:!1},TD:{id:$.setLeadingMoveText,numArgs:2,variableArgs:!1},Tm:{id:$.setTextMatrix,numArgs:6,variableArgs:!1},"T*":{id:$.nextLine,numArgs:0,variableArgs:!1},Tj:{id:$.showText,numArgs:1,variableArgs:!1},TJ:{id:$.showSpacedText,numArgs:1,variableArgs:!1},"'":{id:$.nextLineShowText,numArgs:1,variableArgs:!1},'"':{id:$.nextLineSetSpacingShowText,numArgs:3,variableArgs:!1},d0:{id:$.setCharWidth,numArgs:2,variableArgs:!1},d1:{id:$.setCharWidthAndBounds,numArgs:6,variableArgs:!1},CS:{id:$.setStrokeColorSpace,numArgs:1,variableArgs:!1},cs:{id:$.setFillColorSpace,numArgs:1,variableArgs:!1},SC:{id:$.setStrokeColor,numArgs:4,variableArgs:!0},SCN:{id:$.setStrokeColorN,numArgs:33,variableArgs:!0},sc:{id:$.setFillColor,numArgs:4,variableArgs:!0},scn:{id:$.setFillColorN,numArgs:33,variableArgs:!0},G:{id:$.setStrokeGray,numArgs:1,variableArgs:!1},g:{id:$.setFillGray,numArgs:1,variableArgs:!1},RG:{id:$.setStrokeRGBColor,numArgs:3,variableArgs:!1},rg:{id:$.setFillRGBColor,numArgs:3,variableArgs:!1},K:{id:$.setStrokeCMYKColor,numArgs:4,variableArgs:!1},k:{id:$.setFillCMYKColor,numArgs:4,variableArgs:!1},sh:{id:$.shadingFill,numArgs:1,variableArgs:!1},BI:{id:$.beginInlineImage,numArgs:0,variableArgs:!1},ID:{id:$.beginImageData,numArgs:0,variableArgs:!1},EI:{id:$.endInlineImage,numArgs:1,variableArgs:!1},Do:{id:$.paintXObject,numArgs:1,variableArgs:!1},MP:{id:$.markPoint,numArgs:1,variableArgs:!1},DP:{id:$.markPointProps,numArgs:2,variableArgs:!1},BMC:{id:$.beginMarkedContent,numArgs:1,variableArgs:!1},BDC:{id:$.beginMarkedContentProps,numArgs:2,variableArgs:!1},EMC:{id:$.endMarkedContent,numArgs:0,variableArgs:!1},BX:{id:$.beginCompat,numArgs:0,variableArgs:!1},EX:{id:$.endCompat,numArgs:0,variableArgs:!1},BM:null,BD:null,"true":null,fa:null,fal:null,fals:null,"false":null,nu:null,nul:null,"null":null};return c.prototype={get savedStatesDepth(){return this.stateManager.stateStack.length},read:function(c){for(var f=c.args;;){var g=this.parser.getObj();if(A(g)){var h=g.cmd,i=d[h];if(!i){b('Unknown command "'+h+'"');continue}var j=i.id,k=i.numArgs,l=null!==f?f.length:0;if(i.variableArgs)l>k&&a("Command "+j+": expected [0,"+k+"] args, but received "+l+" args");else{if(l!==k){for(var m=this.nonProcessedArgs;l>k;)m.push(f.shift()),l--;for(;k>l&&0!==m.length;)f||(f=[]),f.unshift(m.pop()),l++}if(k>l){a("Command "+j+": because expected "+k+" args, but received "+l+" args; skipping"),f=null;continue}}return this.preprocessCommand(j,f),c.fn=j,c.args=f,!0}if(R(g))return!1;null!==g&&(f||(f=[]),f.push(g instanceof Aa?g.getAll():g),e(f.length<=33,"Too many arguments"))}},preprocessCommand:function(a,b){switch(0|a){case $.save:this.stateManager.save();break;case $.restore:this.stateManager.restore();break;case $.transform:this.stateManager.transform(b)}}},c}(),Cb=function(){function a(a,b,c){for(var d=a,e=0,f=b.length-1;f>e;e++){var g=b[e];d=d[g]||(d[g]=[])}d[b[b.length-1]]=c}function b(a,b,c,d){for(var e=a+2,f=0;b>f;f++){var g=d[e+4*f],h=1===g.length&&g[0];if(!h||1!==h.width||1!==h.height||h.data.length&&(1!==h.data.length||0!==h.data[0]))break;c[e+4*f]=$.paintSolidColorImageMask}return b-f}function c(){}var d=[];return a(d,[$.save,$.transform,$.paintInlineImageXObject,$.restore],function(a){for(var b=10,c=200,d=1e3,e=1,f=a.fnArray,g=a.argsArray,h=a.iCurr,i=h-3,j=h-2,k=h-1,l=i+4,m=f.length;m>l+3&&f[l]===$.save&&f[l+1]===$.transform&&f[l+2]===$.paintInlineImageXObject&&f[l+3]===$.restore;)l+=4;var n=Math.min((l-i)/4,c);if(b>n)return l;var o,p=0,q=[],r=0,s=e,t=e;for(o=0;n>o;o++){var u=g[j+(o<<2)],v=g[k+(o<<2)][0];s+v.width>d&&(p=Math.max(p,s),t+=r+2*e,s=0,r=0),q.push({transform:u,x:s,y:t,w:v.width,h:v.height}),s+=v.width+2*e,r=Math.max(r,v.height)}var w=Math.max(p,s)+e,x=t+r+e,y=new Uint8Array(w*x*4),z=w<<2;for(o=0;n>o;o++){var A=g[k+(o<<2)][0].data,B=q[o].w<<2,C=0,D=q[o].x+q[o].y*w<<2;y.set(A.subarray(0,B),D-z);for(var E=0,F=q[o].h;F>E;E++)y.set(A.subarray(C,C+B),D),C+=B,D+=z;for(y.set(A.subarray(C-B,C),D);D>=0;)A[D-4]=A[D],A[D-3]=A[D+1],A[D-2]=A[D+2],A[D-1]=A[D+3],A[D+B]=A[D+B-4],A[D+B+1]=A[D+B-3],A[D+B+2]=A[D+B-2],A[D+B+3]=A[D+B-1],D-=z}return f.splice(i,4*n,$.paintInlineImageXObjectGroup),g.splice(i,4*n,[{width:w,height:x,kind:V.RGBA_32BPP,data:y},q]),i+1}),a(d,[$.save,$.transform,$.paintImageMaskXObject,$.restore],function(a){for(var c=10,d=100,e=1e3,f=a.fnArray,g=a.argsArray,h=a.iCurr,i=h-3,j=h-2,k=h-1,l=i+4,m=f.length;m>l+3&&f[l]===$.save&&f[l+1]===$.transform&&f[l+2]===$.paintImageMaskXObject&&f[l+3]===$.restore;)l+=4;var n=(l-i)/4;if(n=b(i,n,f,g),c>n)return l;var o,p,q,r=!1,s=g[k][0];if(0===g[j][1]&&0===g[j][2]){r=!0;var t=g[j][0],u=g[j][3];p=j+4;var v=k+4;for(o=1;n>o;o++,p+=4,v+=4)if(q=g[p],g[v][0]!==s||q[0]!==t||0!==q[1]||0!==q[2]||q[3]!==u){c>o?r=!1:n=o;break}}if(r){n=Math.min(n,e);var w=new Float32Array(2*n);for(p=j,o=0;n>o;o++,p+=4)q=g[p],w[o<<1]=q[4],w[(o<<1)+1]=q[5];f.splice(i,4*n,$.paintImageMaskXObjectRepeat),g.splice(i,4*n,[s,t,u,w])}else{n=Math.min(n,d);var x=[];for(o=0;n>o;o++){q=g[j+(o<<2)];var y=g[k+(o<<2)][0];x.push({data:y.data,width:y.width,height:y.height,transform:q})}f.splice(i,4*n,$.paintImageMaskXObjectGroup),g.splice(i,4*n,[x])}return i+1}),a(d,[$.save,$.transform,$.paintImageXObject,$.restore],function(a){var b=3,c=1e3,d=a.fnArray,e=a.argsArray,f=a.iCurr,g=f-3,h=f-2,i=f-1,j=f;if(0!==e[h][1]||0!==e[h][2])return j+1;for(var k=e[i][0],l=e[h][0],m=e[h][3],n=g+4,o=d.length;o>n+3&&d[n]===$.save&&d[n+1]===$.transform&&d[n+2]===$.paintImageXObject&&d[n+3]===$.restore&&e[n+1][0]===l&&0===e[n+1][1]&&0===e[n+1][2]&&e[n+1][3]===m&&e[n+2][0]===k;)n+=4;var p=Math.min((n-g)/4,c);if(b>p)return n;for(var q=new Float32Array(2*p),r=h,s=0;p>s;s++,r+=4){var t=e[r];q[s<<1]=t[4],q[(s<<1)+1]=t[5]}var u=[k,l,m,q];return d.splice(g,4*p,$.paintImageXObjectRepeat),e.splice(g,4*p,u),g+1}),a(d,[$.beginText,$.setFont,$.setTextMatrix,$.showText,$.endText],function(a){for(var b=3,c=1e3,d=a.fnArray,e=a.argsArray,f=a.iCurr,g=f-4,h=f-3,i=f-2,j=f-1,k=f,l=e[h][0],m=e[h][1],n=g+5,o=d.length;o>n+4&&d[n]===$.beginText&&d[n+1]===$.setFont&&d[n+2]===$.setTextMatrix&&d[n+3]===$.showText&&d[n+4]===$.endText&&e[n+1][0]===l&&e[n+1][1]===m;)n+=5;var p=Math.min((n-g)/5,c);if(b>p)return n;var q=g;g>=4&&d[g-4]===d[h]&&d[g-3]===d[i]&&d[g-2]===d[j]&&d[g-1]===d[k]&&e[g-4][0]===l&&e[g-4][1]===m&&(p++,q-=5);for(var r=q+4,s=1;p>s;s++)d.splice(r,3),e.splice(r,3),r+=2;return r+1}),c.prototype={optimize:function(a){for(var b,c=a.fnArray,e=a.argsArray,f={iCurr:0,fnArray:c,argsArray:e},g=0,h=c.length;h>g;)b=(b||d)[c[g]],"function"==typeof b?(f.iCurr=g,g=b(f),b=void 0,h=f.fnArray.length):g++}},c}(),Db=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"],Eb=function(){function a(a){this.codespaceRanges=[[],[],[],[]],this.numCodespaceRanges=0,this._map=[],this.name="",this.vertical=!1,this.useCMap=null,this.builtInCMap=a}return a.prototype={addCodespaceRange:function(a,b,c){this.codespaceRanges[a-1].push(b,c),this.numCodespaceRanges++},mapCidRange:function(a,b,c){for(;b>=a;)this._map[a++]=c++},mapBfRange:function(a,b,c){for(var d=c.length-1;b>=a;)this._map[a++]=c,c=c.substr(0,d)+String.fromCharCode(c.charCodeAt(d)+1)},mapBfRangeToArray:function(a,b,c){for(var d=0,e=c.length;b>=a&&e>d;)this._map[a]=c[d++],++a},mapOne:function(a,b){this._map[a]=b},lookup:function(a){return this._map[a]},contains:function(a){return void 0!==this._map[a]},forEach:function(a){var b,c=this._map,d=c.length;if(65536>=d)for(b=0;d>b;b++)void 0!==c[b]&&a(b,c[b]);else for(b in this._map)a(b,c[b])},charCodeOf:function(a){return this._map.indexOf(a)},getMap:function(){return this._map},readCharCode:function(a,b,c){for(var d=0,e=this.codespaceRanges,f=this.codespaceRanges.length,g=0;f>g;g++){d=(d<<8|a.charCodeAt(b+g))>>>0;for(var h=e[g],i=0,j=h.length;j>i;){var k=h[i++],l=h[i++];if(d>=k&&l>=d)return c.charcode=d,void(c.length=g+1)}}c.charcode=0,c.length=1},get length(){return this._map.length},get isIdentityCMap(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(var a=0;65536>a;a++)if(this._map[a]!==a)return!1;return!0}},a}(),Fb=function(){function a(a,b){Eb.call(this),this.vertical=a,this.addCodespaceRange(b,0,65535)}return na.inherit(a,Eb,{}),a.prototype={addCodespaceRange:Eb.prototype.addCodespaceRange,mapCidRange:function(a,b,d){c("should not call mapCidRange")},mapBfRange:function(a,b,d){c("should not call mapBfRange")},mapBfRangeToArray:function(a,b,d){c("should not call mapBfRangeToArray")},mapOne:function(a,b){c("should not call mapCidOne")},lookup:function(a){return w(a)&&65535>=a?a:void 0},contains:function(a){return w(a)&&65535>=a},forEach:function(a){for(var b=0;65535>=b;b++)a(b,b)},charCodeOf:function(a){return w(a)&&65535>=a?a:-1},getMap:function(){for(var a=new Array(65536),b=0;65535>=b;b++)a[b]=b;return a},readCharCode:Eb.prototype.readCharCode,get length(){return 65536},get isIdentityCMap(){c("should not access .isIdentityCMap")}},a}(),Gb=function(){function a(a){var b=PDFJS.disableWorker,d=new XMLHttpRequest;if(d.open("GET",a,!1),!b)try{d.responseType="arraybuffer",b="arraybuffer"!==d.responseType}catch(e){b=!0}if(b&&d.overrideMimeType&&d.overrideMimeType("text/plain; charset=x-user-defined"),d.send(null),(b?d.responseText:d.response)||c("Unable to get binary cMap at: "+a),b){var f=Array.prototype.map.call(d.responseText,function(a){return 255&a.charCodeAt(0)});return new Uint8Array(f)}return new Uint8Array(d.response)}function b(a,b){for(var c=0,d=0;b>=d;d++)c=c<<8|a[d];return c>>>0}function d(a,b){return 1===b?String.fromCharCode(a[0],a[1]):3===b?String.fromCharCode(a[0],a[1],a[2],a[3]):String.fromCharCode.apply(null,a.subarray(0,b+1))}function f(a,b,c){for(var d=0,e=c;e>=0;e--)d+=a[e]+b[e],a[e]=255&d,d>>=8}function g(a,b){for(var c=1,d=b;d>=0&&c>0;d--)c+=a[d],a[d]=255&c,c>>=8}function h(a){this.buffer=a,this.pos=0,this.end=a.length,this.tmpBuf=new Uint8Array(l)}function i(i,j,l){var m=a(i),n=new h(m),o=n.readByte();j.vertical=!!(1&o);for(var p,q,r=null,s=new Uint8Array(k),t=new Uint8Array(k),u=new Uint8Array(k),v=new Uint8Array(k),w=new Uint8Array(k);(q=n.readByte())>=0;){var x=q>>5;if(7!==x){var y=!!(16&q),z=15&q;e(k>=z+1);var A,B=1,C=n.readNumber();switch(x){case 0:for(n.readHex(s,z),n.readHexNumber(t,z),f(t,s,z),j.addCodespaceRange(z+1,b(s,z),b(t,z)),A=1;C>A;A++)g(t,z),n.readHexNumber(s,z),f(s,t,z),n.readHexNumber(t,z),f(t,s,z),j.addCodespaceRange(z+1,b(s,z),b(t,z));break;case 1:for(n.readHex(s,z),n.readHexNumber(t,z),f(t,s,z),p=n.readNumber(),A=1;C>A;A++)g(t,z),n.readHexNumber(s,z),f(s,t,z),n.readHexNumber(t,z),f(t,s,z),p=n.readNumber();break;case 2:for(n.readHex(u,z),p=n.readNumber(),j.mapOne(b(u,z),p),A=1;C>A;A++)g(u,z),y||(n.readHexNumber(w,z),f(u,w,z)),p=n.readSigned()+(p+1),j.mapOne(b(u,z),p);break;case 3:for(n.readHex(s,z),n.readHexNumber(t,z),f(t,s,z),p=n.readNumber(),j.mapCidRange(b(s,z),b(t,z),p),A=1;C>A;A++)g(t,z),y?s.set(t):(n.readHexNumber(s,z),f(s,t,z)),n.readHexNumber(t,z),f(t,s,z),p=n.readNumber(),j.mapCidRange(b(s,z),b(t,z),p);break;case 4:for(n.readHex(u,B),n.readHex(v,z),j.mapOne(b(u,B),d(v,z)),A=1;C>A;A++)g(u,B),y||(n.readHexNumber(w,B),f(u,w,B)),g(v,z),n.readHexSigned(w,z),f(v,w,z),j.mapOne(b(u,B),d(v,z));break;case 5:for(n.readHex(s,B),n.readHexNumber(t,B),f(t,s,B),n.readHex(v,z),j.mapBfRange(b(s,B),b(t,B),d(v,z)),A=1;C>A;A++)g(t,B),y?s.set(t):(n.readHexNumber(s,B),f(s,t,B)),n.readHexNumber(t,B),f(t,s,B),n.readHex(v,z),j.mapBfRange(b(s,B),b(t,B),d(v,z));break;default:c("Unknown type: "+x)}}else switch(31&q){case 0:n.readString();break;case 1:r=n.readString()}}return r&&l(r),j}function j(){}var k=16,l=19;return h.prototype={readByte:function(){return this.pos>=this.end?-1:this.buffer[this.pos++]},readNumber:function(){var a,b=0;do{var d=this.readByte();0>d&&c("unexpected EOF in bcmap"),a=!(128&d),b=b<<7|127&d}while(!a);return b},readSigned:function(){var a=this.readNumber();return 1&a?~(a>>>1):a>>>1},readHex:function(a,b){a.set(this.buffer.subarray(this.pos,this.pos+b+1)),this.pos+=b+1},readHexNumber:function(a,b){var d,e=this.tmpBuf,f=0;do{var g=this.readByte();0>g&&c("unexpected EOF in bcmap"),d=!(128&g),e[f++]=127&g}while(!d);for(var h=b,i=0,j=0;h>=0;){for(;8>j&&e.length>0;)i=e[--f]<>=8,j-=8}},readHexSigned:function(a,b){this.readHexNumber(a,b);for(var c=1&a[b]?255:0,d=0,e=0;b>=e;e++)d=(1&d)<<8|a[e],a[e]=d>>1^c},readString:function(){for(var a=this.readNumber(),b="",c=0;a>c;c++)b+=String.fromCharCode(this.readNumber());return b}},j.prototype={read:i},j}(),Hb=function(){function a(a){for(var b=0,c=0;c>>0}function d(a){y(a)||c("Malformed CMap: expected string.")}function f(a){w(a)||c("Malformed CMap: expected int.")}function g(b,c){for(;;){var e=c.getObj();if(R(e))break;if(A(e,"endbfchar"))return;d(e);var f=a(e);e=c.getObj(),d(e);var g=e;b.mapOne(f,g)}}function h(b,e){for(;;){var f=e.getObj();if(R(f))break;if(A(f,"endbfrange"))return;d(f);var g=a(f);f=e.getObj(),d(f);var h=a(f);if(f=e.getObj(),w(f)||y(f)){var i=w(f)?String.fromCharCode(f):f;b.mapBfRange(g,h,i)}else{if(!A(f,"["))break;f=e.getObj();for(var j=[];!A(f,"]")&&!R(f);)j.push(f),f=e.getObj();b.mapBfRangeToArray(g,h,j)}}c("Invalid bf range.")}function i(b,c){for(;;){var e=c.getObj();if(R(e))break;if(A(e,"endcidchar"))return;d(e);var g=a(e);e=c.getObj(),f(e);var h=e;b.mapOne(g,h)}}function j(b,c){for(;;){var e=c.getObj();if(R(e))break;if(A(e,"endcidrange"))return;d(e);var g=a(e);e=c.getObj(),d(e);var h=a(e);e=c.getObj(),f(e);var i=e;b.mapCidRange(g,h,i)}}function k(b,d){for(;;){var e=d.getObj();if(R(e))break;if(A(e,"endcodespacerange"))return;if(!y(e))break;var f=a(e);if(e=d.getObj(),!y(e))break;var g=a(e);b.addCodespaceRange(e.length,f,g)}c("Invalid codespace range.")}function l(a,b){var c=b.getObj();w(c)&&(a.vertical=!!c)}function m(a,b){var c=b.getObj();z(c)&&y(c.name)&&(a.name=c.name)}function n(a,b,c,d){var e,f;a:for(;;){var n=b.getObj();if(R(n))break;if(z(n))"WMode"===n.name?l(a,b):"CMapName"===n.name&&m(a,b),e=n;else if(A(n))switch(n.cmd){case"endcmap":break a;case"usecmap":z(e)&&(f=e.name);break;case"begincodespacerange":k(a,b);break;case"beginbfchar":g(a,b);break;case"begincidchar":i(a,b);break;case"beginbfrange":h(a,b);break;case"begincidrange":j(a,b)}}!d&&f&&(d=f),d&&o(a,c,d)}function o(a,b,c){if(a.useCMap=q(c,b),0===a.numCodespaceRanges){for(var d=a.useCMap.codespaceRanges,e=0;e=b;b++)a(b,b)},has:function(a){return this.firstChar<=a&&a<=this.lastChar},get:function(a){return this.firstChar<=a&&a<=this.lastChar?String.fromCharCode(a):void 0},charCodeOf:function(a){c("should not call .charCodeOf")}},a}(),bc=function(){function a(a,b,c){a[b]=c>>8&255,a[b+1]=255&c}function b(a,b,c){a[b]=c>>24&255,a[b+1]=c>>16&255,a[b+2]=c>>8&255,a[b+3]=255&c}function c(a,b,c){var d,e;if(c instanceof Uint8Array)a.set(c,b);else if("string"==typeof c)for(d=0,e=c.length;e>d;d++)a[b++]=255&c.charCodeAt(d);else for(d=0,e=c.length;e>d;d++)a[b++]=255&c[d]}function d(a){this.sfnt=a,this.tables=Object.create(null)}d.getSearchParams=function(a,b){for(var c=1,d=0;(c^a)>c;)c<<=1,d++;var e=c*b;return{range:e,entry:d,rangeShift:b*a-e}};var e=12,f=16;return d.prototype={toArray:function(){var g=this.sfnt,h=this.tables,i=Object.keys(h);i.sort();var j,l,m,n,o,p=i.length,q=e+p*f,r=[q];for(j=0;p>j;j++){n=h[i[j]];var s=(n.length+3&-4)>>>0;q+=s,r.push(q)}var t=new Uint8Array(q);for(j=0;p>j;j++)n=h[i[j]],c(t,r[j],n);"true"===g&&(g=k(65536)),t[0]=255&g.charCodeAt(0),t[1]=255&g.charCodeAt(1),t[2]=255&g.charCodeAt(2),t[3]=255&g.charCodeAt(3),a(t,4,p);var u=d.getSearchParams(p,16);for(a(t,6,u.range),a(t,8,u.entry),a(t,10,u.rangeShift),q=e,j=0;p>j;j++){o=i[j],t[q]=255&o.charCodeAt(0),t[q+1]=255&o.charCodeAt(1),t[q+2]=255&o.charCodeAt(2),t[q+3]=255&o.charCodeAt(3);var v=0;for(l=r[j],m=r[j+1];m>l;l+=4){var w=(t[l]<<24)+(t[l+1]<<16)+(t[l+2]<<8)+t[l+3];v=v+w|0}b(t,q+4,v),b(t,q+8,r[j]),b(t,q+12,h[o].length),q+=f}return t},addTable:function(a,b){if(a in this.tables)throw new Error("Table "+a+" already exists");this.tables[a]=b; +}},d}(),cc=new Int32Array([0,32,127,161,173,174,1536,1920,2208,4256,6016,6144,8192,8208,8209,8210,8232,8240,8287,8304,9676,9677,43616,43648,65520,65536]),dc=function(){function d(d,e,f){var g,h,i;this.name=d,this.loadedName=f.loadedName,this.isType3Font=f.isType3Font,this.sizes=[],this.glyphCache={};var j=d.split("+");j=j.length>1?j[1]:j[0],j=j.split(/[-,_]/g)[0],this.isSerifFont=!!(f.flags&Ob.Serif),this.isSymbolicFont=!!(f.flags&Ob.Symbolic),this.isMonospace=!!(f.flags&Ob.FixedPitch);var k=f.type,l=f.subtype;if(this.type=k,this.fallbackName=this.isMonospace?"monospace":this.isSerifFont?"serif":"sans-serif",this.differences=f.differences,this.widths=f.widths,this.defaultWidth=f.defaultWidth,this.composite=f.composite,this.wideChars=f.wideChars,this.cMap=f.cMap,this.ascent=f.ascent/Lb,this.descent=f.descent/Lb,this.fontMatrix=f.fontMatrix,this.bbox=f.bbox,this.toUnicode=f.toUnicode=this.buildToUnicode(f),this.toFontChar=[],"Type3"===f.type){for(g=0;256>g;g++)this.toFontChar[g]=this.differences[g]||f.defaultEncoding[g];return void(this.fontType=Z.TYPE3)}if(this.cidEncoding=f.cidEncoding,this.vertical=f.vertical,this.vertical&&(this.vmetrics=f.vmetrics,this.defaultVMetrics=f.defaultVMetrics),!e||e.isEmpty){e&&b('Font file is empty in "'+d+'" ('+this.loadedName+")"),this.missingFile=!0;var o=d.replace(/[,_]/g,"-"),p=!!Qb[o]||!(!Rb[o]||!Qb[Rb[o]]);if(o=Qb[o]||Rb[o]||o,this.bold=-1!==o.search(/bold/gi),this.italic=-1!==o.search(/oblique/gi)||-1!==o.search(/italic/gi),this.black=-1!==d.search(/Black/g),this.remeasure=Object.keys(this.widths).length>0,p&&"CIDFontType2"===k&&0===f.cidEncoding.indexOf("Identity-")){var q=[];for(g in Ub)q[+g]=Ub[g];if(/ArialBlack/i.test(d))for(g in Vb)q[+g]=Vb[g];var r=this.toUnicode instanceof ac;r||this.toUnicode.forEach(function(a,b){q[+a]=b}),this.toFontChar=q,this.toUnicode=new _b(q)}else if(/Symbol/i.test(o)){var s=Pb.SymbolSetEncoding;for(g in s)i=zc[s[g]],i&&(this.toFontChar[g]=i);for(g in f.differences)i=zc[f.differences[g]],i&&(this.toFontChar[g]=i)}else if(/Dingbats/i.test(o)){/Wingdings/i.test(d)&&b("Wingdings font without embedded font file, falling back to the ZapfDingbats encoding.");var t=Pb.ZapfDingbatsEncoding;for(g in t)i=Ac[t[g]],i&&(this.toFontChar[g]=i);for(g in f.differences)i=Ac[f.differences[g]],i&&(this.toFontChar[g]=i)}else if(p){this.toFontChar=[];for(g in f.defaultEncoding)h=f.differences[g]||f.defaultEncoding[g],this.toFontChar[g]=zc[h]}else{var u=-1===k.indexOf("CIDFontType");this.toUnicode.forEach(function(a,b){u&&(h=f.differences[a]||f.defaultEncoding[a],b=zc[h]||b),this.toFontChar[a]=b}.bind(this))}return this.loadedName=o.split("-")[0],this.loading=!1,void(this.fontType=P(k,l))}"Type1C"===l&&"Type1"!==k&&"MMType1"!==k&&(m(e)?l="TrueType":k="Type1"),"CIDFontType0C"===l&&"CIDFontType0"!==k&&(k="CIDFontType0"),"OpenType"===l&&(k="OpenType"),"CIDFontType0"===k&&(l=n(e)?"CIDFontType0":"CIDFontType0C");var v;switch(k){case"MMType1":a("MMType1 font ("+d+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";var w="Type1C"===l||"CIDFontType0C"===l?new jc(e,f):new ic(d,e,f);O(f),v=this.convert(d,w,f);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype",v=this.checkAndRepair(d,e,f),this.isOpenType&&(k="OpenType");break;default:c("Font "+k+" is not supported")}this.data=v,this.fontType=P(k,l),this.fontMatrix=f.fontMatrix,this.widths=f.widths,this.defaultWidth=f.defaultWidth,this.encoding=f.baseEncoding,this.seacMap=f.seacMap,this.loading=!0}function f(a,b){return(a<<8)+b}function h(a,b,c,d){return(a<<24)+(b<<16)+(c<<8)+d}function j(a){return String.fromCharCode(a>>8&255,255&a)}function l(a){return a=a>32767?32767:-32768>a?-32768:a,String.fromCharCode(a>>8&255,255&a)}function m(a){var b=a.peekBytes(4);return 65536===o(b,0)}function n(a){var b=a.peekBytes(2);return 37===b[0]&&33===b[1]?!0:128===b[0]&&1===b[1]}function p(a){for(var b=0,c=cc.length-1;c>b;){var d=b+c+1>>1;a=i)do l=i++,Kb&&61440===l&&(l=61472,i=l+1);while(void 0!==h[l]&&Jb>=i);f[l]=k,g[j]=l,h[l]=!0}return{toFontChar:g,charCodeToGlyphId:f,nextAvailableFontCharCode:i}}function r(a){var b=[];for(var c in a)b.push({fontCharCode:0|c,glyphId:a[c]});b.sort(function(a,b){return a.fontCharCode-b.fontCharCode});for(var d=[],e=b.length,f=0;e>f;){var g=b[f].fontCharCode,h=[b[f].glyphId];++f;for(var i=g;e>f&&i+1===b[f].fontCharCode&&(h.push(b[f].glyphId),++i,++f,65535!==i););d.push([g,i,h])}return d}function s(a){var b,c,d,e,f=r(a),g=f[f.length-1][1]>65535?2:1,h="\x00\x00"+j(g)+"\x00\x00"+k(4+8*g);for(b=f.length-1;b>=0&&!(f[b][0]<=65535);--b);var i=b+1;f[b][0]<65535&&65535===f[b][1]&&(f[b][1]=65534);var l,m,n,o,p=f[b][1]<65535?1:0,q=i+p,s=bc.getSearchParams(q,2),t="",u="",v="",w="",x="",y=0;for(b=0,c=i;c>b;b++){l=f[b],m=l[0],n=l[1],t+=j(m),u+=j(n),o=l[2];var z=!0;for(d=1,e=o.length;e>d;++d)if(o[d]!==o[d-1]+1){z=!1;break}if(z){var A=o[0];v+=j(A-m&65535),w+=j(0)}else{var B=2*(q-b)+2*y;for(y+=n-m+1,v+=j(0),w+=j(B),d=0,e=o.length;e>d;++d)x+=j(o[d])}}p>0&&(u+="ÿÿ",t+="ÿÿ",v+="\x00",w+="\x00\x00");var C="\x00\x00"+j(2*q)+j(s.range)+j(s.entry)+j(s.rangeShift)+u+"\x00\x00"+t+v+w+x,D="",E="";if(g>1){for(h+="\x00\x00\n"+k(4+8*g+4+C.length),D="",b=0,c=f.length;c>b;b++){l=f[b],m=l[0],o=l[2];var F=o[0];for(d=1,e=o.length;e>d;++d)o[d]!==o[d-1]+1&&(n=l[0]+d-1,D+=k(m)+k(n)+k(F),m=n+1,F=o[d]);D+=k(m)+k(l[1])+k(F)}E="\x00\f\x00\x00"+k(D.length+16)+"\x00\x00\x00\x00"+k(D.length/12)}return h+"\x00"+j(C.length+4)+C+E+D}function t(a){var b=new Mc(a.data),c=b.getUint16();b.getBytes(60);var d=b.getUint16();if(4>c&&768&d)return!1;var e=b.getUint16(),f=b.getUint16();if(e>f)return!1;b.getBytes(6);var g=b.getUint16();return 0===g?!1:(a.data[8]=a.data[9]=0,!0)}function u(a,b,d){d=d||{unitsPerEm:0,yMax:0,yMin:0,ascent:0,descent:0};var e=0,f=0,g=0,h=0,i=null,l=0;if(b)for(var m in b){m|=0,(i>m||!i)&&(i=m),m>l&&(l=m);var n=L(m);32>n?e|=1<n?f|=1<n?g|=1<n?h|=1< 123 are reserved for internal usage")}else i=0,l=255;var o=a.bbox||[0,0,0,0],p=d.unitsPerEm||1/(a.fontMatrix||T)[0],q=a.ascentScaled?1:p/Lb,r=d.ascent||Math.round(q*(a.ascent||o[3])),s=d.descent||Math.round(q*(a.descent||o[1]));s>0&&a.descent>0&&o[1]<0&&(s=-s);var t=d.yMax||r,u=-d.yMin||-s;return"\x00$ô\x00\x00\x00Š»\x00\x00\x00ŒŠ»\x00\x00ß\x001\x00\x00\x00\x00"+String.fromCharCode(a.fixedPitch?9:0)+"\x00\x00\x00\x00\x00\x00"+k(e)+k(f)+k(g)+k(h)+"*21*"+j(a.italicAngle?1:0)+j(i||a.firstChar)+j(l||a.lastChar)+j(r)+j(s)+"\x00d"+j(t)+j(u)+"\x00\x00\x00\x00\x00\x00\x00\x00"+j(a.xHeight)+j(a.capHeight)+j(0)+j(i||a.firstChar)+"\x00"}function v(a){var b=Math.floor(a.italicAngle*Math.pow(2,16));return"\x00\x00\x00"+k(b)+"\x00\x00\x00\x00"+k(a.fixedPitch)+"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}function w(a,b){b||(b=[[],[]]);var c,d,e,f,g,h=[b[0][0]||"Original licence",b[0][1]||a,b[0][2]||"Unknown",b[0][3]||"uniqueID",b[0][4]||a,b[0][5]||"Version 0.11",b[0][6]||"",b[0][7]||"Unknown",b[0][8]||"Unknown",b[0][9]||"Unknown"],i=[];for(c=0,d=h.length;d>c;c++){g=b[1][c]||h[c];var k=[];for(e=0,f=g.length;f>e;e++)k.push(j(g.charCodeAt(e)));i.push(k.join(""))}var l=[h,i],m=["\x00","\x00"],n=["\x00\x00","\x00"],o=["\x00\x00"," "],p=h.length*m.length,q="\x00\x00"+j(p)+j(12*p+6),r=0;for(c=0,d=m.length;d>c;c++){var s=l[c];for(e=0,f=s.length;f>e;e++){g=s[e];var t=m[c]+n[c]+o[c]+j(e)+j(g.length)+j(r);q+=t,r+=g.length}}return q+=h.join("")+i.join("")}return d.getFontID=function(){var a=1;return function(){return String(a++)}}(),d.prototype={name:null,font:null,mimetype:null,encoding:null,get renderer(){var a=yc.create(this);return g(this,"renderer",a)},exportData:function(){var a={};for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},checkAndRepair:function(d,g,j){function k(a){var b=i(a.getBytes(4)),c=a.getInt32(),d=a.getInt32()>>>0,e=a.getInt32()>>>0,f=a.pos;a.pos=a.start?a.start:0,a.skip(d);var g=a.getBytes(e);return a.pos=f,"head"===b&&(g[8]=g[9]=g[10]=g[11]=0,g[17]|=32),{tag:b,checksum:c,length:e,offset:d,data:g}}function l(a){return{version:i(a.getBytes(4)),numTables:a.getUint16(),searchRange:a.getUint16(),entrySelector:a.getUint16(),rangeShift:a.getUint16()}}function m(a,c,d,e){var f,g=(c.start?c.start:0)+a.offset;c.pos=g;for(var h,i=(c.getUint16(),c.getUint16()),j=!1,k=0;i>k;k++){var l=c.getUint16(),m=c.getUint16(),n=c.getInt32()>>>0,o=!1;if(0===l&&0===m?o=!0:1===l&&0===m?o=!0:3!==l||1!==m||(d||!e)&&h?d&&3===l&&0===m&&(o=!0,j=!0):(o=!0,d||(j=!0)),o&&(h={platformId:l,encodingId:m,offset:n}),j)break}if(h&&(c.pos=g+h.offset),!h||-1===c.peekByte())return b("Could not find a preferred cmap table."),{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1};var p,q,r=c.getUint16(),s=(c.getUint16(),c.getUint16(),!1),t=[];if(0===r){for(p=0;256>p;p++){var u=c.getByte();u&&t.push({charCode:p,glyphId:u})}s=!0}else if(4===r){var v=c.getUint16()>>1;c.getBytes(6);var w,x=[];for(w=0;v>w;w++)x.push({end:c.getUint16()});for(c.getUint16(),w=0;v>w;w++)x[w].start=c.getUint16();for(w=0;v>w;w++)x[w].delta=c.getUint16();var y=0;for(w=0;v>w;w++){f=x[w];var z=c.getUint16();if(z){var A=(z>>1)-(v-w);f.offsetIndex=A,y=Math.max(y,A+f.end-f.start+1)}else f.offsetIndex=-1}var B=[];for(p=0;y>p;p++)B.push(c.getUint16());for(w=0;v>w;w++){f=x[w],g=f.start;var C=f.end,D=f.delta;for(A=f.offsetIndex,p=g;C>=p;p++)65535!==p&&(q=0>A?p:B[A+p-g],q=q+D&65535,0!==q&&t.push({charCode:p,glyphId:q}))}}else{if(6!==r)return b("cmap table has unsupported format: "+r),{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1};var E=c.getUint16(),F=c.getUint16();for(p=0;F>p;p++){q=c.getUint16();var G=E+p;t.push({charCode:G,glyphId:q})}}for(t.sort(function(a,b){return a.charCode-b.charCode}),k=1;ke&&(a("The numOfMetrics ("+f+") should not be greater than the numGlyphs ("+e+")"),f=e,c.data[34]=(65280&f)>>8,c.data[35]=255&f);var g=e-f,h=g-(d.length-4*f>>1);if(h>0){var i=new Uint8Array(d.length+2*h);i.set(d.data),d.data=i}}function o(a,b,c,d,e,f){if(12>=c-b)return 0;var g=a.subarray(b,c),h=g[0]<<8|g[1];if(32768&h)return d.set(g,e),g.length;var i,j=10,k=0;for(i=0;h>i;i++){var l=g[j]<<8|g[j+1];k=l+1,j+=2}var m=j,n=g[j]<<8|g[j+1];j+=2+n;var o=j,p=0;for(i=0;k>i;i++){var q=g[j++];192&q&&(g[j-1]=63&q);var r=(2&q?1:16&q?0:2)+(4&q?1:32&q?0:2);if(p+=r,8&q){var s=g[j++];i+=s,p+=s*r}}if(0===p)return 0;var t=j+p;return t>g.length?0:!f&&n>0?(d.set(g.subarray(0,m),e),d.set([0,0],e+m),d.set(g.subarray(o,t),e+m+2),t-=n,g.length-t>3&&(t=t+3&-4),t):g.length-t>3?(t=t+3&-4,d.set(g.subarray(0,t),e),t):(d.set(g,e),g.length)}function p(c,d,e){var g=c.data,i=h(g[0],g[1],g[2],g[3]);i>>16!==1&&(a("Attempting to fix invalid version in head table: "+i),g[0]=0,g[1]=1,g[2]=0,g[3]=0);var j=f(g[50],g[51]);if(0>j||j>1){a("Attempting to fix invalid indexToLocFormat in head table: "+j);var k=d+1;e===k<<1?(g[50]=0,g[51]=0):e===k<<2?(g[50]=0,g[51]=1):b("Could not fix indexToLocFormat: "+j)}}function r(a,b,c,d,e,f){var g,h,i;d?(g=4,h=function(a,b){return a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3]},i=function(a,b,c){a[b]=c>>>24&255,a[b+1]=c>>16&255,a[b+2]=c>>8&255,a[b+3]=255&c}):(g=2,h=function(a,b){return a[b]<<9|a[b+1]<<1},i=function(a,b,c){a[b]=c>>9&255,a[b+1]=c>>1&255});var j=a.data,k=g*(1+c);j.length!==k&&(j=new Uint8Array(k),j.set(a.data.subarray(0,k)),a.data=j);var l=b.data,m=l.length,n=new Uint8Array(m),p=h(j,0),q=0,r={};i(j,0,q);var s,t;for(s=0,t=g;c>s;s++,t+=g){var u=h(j,t);if(u>m&&(m+3&-4)===u&&(u=m),u>m)i(j,t,q),p=u;else{p===u&&(r[s]=!0);var v=o(l,p,u,n,q,e);q+=v,i(j,t,q),p=u}}if(0===q){var w=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(s=0,t=g;c>s;s++,t+=g)i(j,t,w.length);return b.data=w,r}if(f){var x=h(j,g);n.length>x+q?b.data=n.subarray(0,x+q):(b.data=new Uint8Array(x+q),b.data.set(n.subarray(0,q))),b.data.set(n.subarray(0,x),q),i(a.data,j.length-g,q+x)}else b.data=n.subarray(0,q);return r}function y(a,c,d){var e=(g.start?g.start:0)+a.offset;g.pos=e;var f=a.length,h=e+f,i=g.getInt32();g.getBytes(28);var j,k,l=!0;switch(i){case 65536:j=Yb;break;case 131072:var m=g.getUint16();if(m!==d){l=!1;break}var n=[];for(k=0;m>k;++k){var o=g.getUint16();if(o>=32768){l=!1;break}n.push(o)}if(!l)break;for(var p=[],q=[];g.posk;++k)q[k]=String.fromCharCode(g.getByte());p.push(q.join(""))}for(j=[],k=0;m>k;++k){var s=n[k];258>s?j.push(Yb[s]):j.push(p[s-258])}break;case 196608:break;default:b("Unknown/unsupported post table version "+i),l=!1,c.defaultEncoding&&(j=c.defaultEncoding)}return c.glyphNames=j,l}function z(a){var b=(g.start?g.start:0)+a.offset;g.pos=b;var c=[[],[]],d=a.length,e=b+d,f=g.getUint16(),h=6;if(0!==f||h>d)return c;var j,k,l=g.getUint16(),m=g.getUint16(),n=[],o=12;for(j=0;l>j&&g.pos+o<=e;j++){var p={platform:g.getUint16(),encoding:g.getUint16(),language:g.getUint16(),name:g.getUint16(),length:g.getUint16(),offset:g.getUint16()};(1===p.platform&&0===p.encoding&&0===p.language||3===p.platform&&1===p.encoding&&1033===p.language)&&n.push(p)}for(j=0,k=n.length;k>j;j++){var q=n[j],r=b+m+q.offset;if(!(r+q.length>e)){g.pos=r;var s=q.name;if(q.encoding){for(var t="",u=0,v=q.length;v>u;u+=2)t+=String.fromCharCode(g.getUint16());c[1][s]=t}else c[0][s]=i(g.getBytes(q.length))}}return c}function A(a,c){for(var d,e,f,g,h,i=a.data,j=0,k=0,l=0,m=[],n=[],o=[],p=c.tooComplexToFollowFunctions,q=!1,r=0,s=0,t=i.length;t>j;){var u=i[j++];if(64===u)if(e=i[j++],q||s)j+=e;else for(d=0;e>d;d++)m.push(i[j++]);else if(65===u)if(e=i[j++],q||s)j+=2*e;else for(d=0;e>d;d++)f=i[j++],m.push(f<<8|i[j++]);else if(176===(248&u))if(e=u-176+1,q||s)j+=e;else for(d=0;e>d;d++)m.push(i[j++]);else if(184===(248&u))if(e=u-184+1,q||s)j+=2*e;else for(d=0;e>d;d++)f=i[j++],m.push(f<<8|i[j++]);else if(43!==u||p)if(44!==u||p){if(45===u)if(q)q=!1,k=j;else{if(h=n.pop(),!h)return b("TT: ENDF bad stack"),void(c.hintsValid=!1);g=o.pop(),i=h.data,j=h.i,c.functionsStackDeltas[g]=m.length-h.stackTop}else if(137===u)(q||s)&&(b("TT: nested IDEFs not allowed"),p=!0),q=!0,l=j;else if(88===u)++r;else if(27===u)s=r;else if(89===u)s===r&&(s=0),--r;else if(28===u&&!q&&!s){var v=m[m.length-1];v>0&&(j+=v-1)}}else(q||s)&&(b("TT: nested FDEFs not allowed"),p=!0),q=!0,l=j,g=m.pop(),c.functionsDefined[g]={data:i,i:j};else if(!q&&!s)if(g=m[m.length-1],c.functionsUsed[g]=!0,g in c.functionsStackDeltas)m.length+=c.functionsStackDeltas[g];else if(g in c.functionsDefined&&o.indexOf(g)<0){if(n.push({data:i,i:j,stackTop:m.length-1}),o.push(g),h=c.functionsDefined[g],!h)return b("TT: CALL non-existent function"),void(c.hintsValid=!1);i=h.data,j=h.i}if(!q&&!s){var w=142>=u?F[u]:u>=192&&223>=u?-1:u>=224?-2:0;for(u>=113&&117>=u&&(e=m.pop(),e===e&&(w=2*-e));0>w&&m.length>0;)m.pop(),w++;for(;w>0;)m.push(NaN),w--}}c.tooComplexToFollowFunctions=p;var x=[i];j>i.length&&x.push(new Uint8Array(j-i.length)),l>k&&(b("TT: complementing a missing function tail"),x.push(new Uint8Array([34,45]))),C(a,x)}function B(a,c){if(!a.tooComplexToFollowFunctions){if(a.functionsDefined.length>c)return b("TT: more functions defined than expected"),void(a.hintsValid=!1);for(var d=0,e=a.functionsUsed.length;e>d;d++){if(d>c)return b("TT: invalid function id: "+d),void(a.hintsValid=!1);if(a.functionsUsed[d]&&!a.functionsDefined[d])return b("TT: undefined function: "+d),void(a.hintsValid=!1)}}}function C(a,b){if(b.length>1){var c,d,e=0;for(c=0,d=b.length;d>c;c++)e+=b[c].length;e=e+3&-4;var f=new Uint8Array(e),g=0;for(c=0,d=b.length;d>c;c++)f.set(b[c],g),g+=b[c].length;a.data=f,a.length=e}}function D(a,b,c){var d={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};if(a&&A(a,d),b&&A(b,d),a&&B(d,R),c&&1&c.length){var e=new Uint8Array(c.length+1);e.set(c.data),c.data=e}return d.hintsValid}function E(a,b,c){return V[a]?!aa&&b>=0&&$.has(b)?!0:!!(_&&c>=0&&x(_[c])):!0}var F=[0,0,0,0,0,0,0,0,-2,-2,-2,-2,0,0,-2,-5,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,-1,-1,1,-1,-999,0,1,0,-1,-2,0,-1,-2,-1,-1,0,-1,-1,0,0,-999,-999,-1,-1,-1,-1,-2,-999,-2,-2,-999,0,-2,-2,0,0,-2,0,-2,0,0,0,-2,-1,-1,1,1,0,0,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,0,-999,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,-2,-999,-999,-999,-999,-999,-1,-1,-2,-2,0,0,0,0,-1,-1,-999,-2,-2,0,0,-1,-2,-2,0,0,0,-1,-1,-1,-2];g=new Mc(new Uint8Array(g.getBytes()));for(var G,H,I,J=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "],K=l(g),L=K.numTables,M={"OS/2":null,cmap:null,head:null,hhea:null,hmtx:null,maxp:null,name:null,post:null},N=0;L>N;N++)I=k(g),J.indexOf(I.tag)<0||0!==I.length&&(M[I.tag]=I);var O=!M["CFF "];if(O)M.glyf&&M.loca||c('Required "glyf" or "loca" tables are not found'),this.isOpenType=!1;else{if("OTTO"===K.version&&"CIDFontType2"!==j.type||!M.head||!M.hhea||!M.maxp||!M.post)return H=new Mc(M["CFF "].data),G=new jc(H,j),this.convert(d,G,j);delete M.glyf,delete M.loca,delete M.fpgm,delete M.prep,delete M["cvt "],this.isOpenType=!0}M.maxp||c('Required "maxp" table is not found'),g.pos=(g.start||0)+M.maxp.offset;var P=g.getInt32(),Q=g.getUint16(),R=0;if(P>=65536&&M.maxp.length>=22){g.pos+=8;var S=g.getUint16();S>2&&(M.maxp.data[14]=0,M.maxp.data[15]=2),g.pos+=4,R=g.getUint16()}var T=!1;"CIDFontType2"===j.type&&j.toUnicode&&j.toUnicode.get(0)>"\x00"&&(T=!0,Q++,M.maxp.data[4]=Q>>8,M.maxp.data[5]=255&Q);var U=D(M.fpgm,M.prep,M["cvt "],R);U||(delete M.fpgm,delete M.prep,delete M["cvt "]),n(g,M.hhea,M.hmtx,Q),M.head||c('Required "head" table is not found'),p(M.head,Q,O?M.loca.length:0);var V={};if(O){var W=f(M.head.data[50],M.head.data[51]);V=r(M.loca,M.glyf,Q,W,U,T)}if(M.hhea||c('Required "hhea" table is not found'),0===M.hhea.data[10]&&0===M.hhea.data[11]&&(M.hhea.data[10]=255,M.hhea.data[11]=255),M.post){var X=y(M.post,j,Q);X||(M.post=null)}var Y,Z=[],$=j.toUnicode,_=j.widths,aa=$ instanceof ac||65536===$.length;if("CIDFontType2"===j.type){var ba=j.cidToGidMap||[],ca=0===ba.length;j.cMap.forEach(function(a,b){e(65535>=b,"Max size of CID is 65,535");var c=-1;ca?c=a:void 0!==ba[b]&&(c=ba[b]),c>=0&&Q>c&&E(c,a,b)&&(Z[a]=c)}),T&&(Z[0]=Q-1)}else{var da=j.differences.length>0||!!j.baseEncodingName,ea=m(M.cmap,g,this.isSymbolicFont,da),fa=ea.platformId,ga=ea.encodingId,ha=ea.mappings,ia=ha.length;if(da&&(3===fa&&1===ga||1===fa&&0===ga)||-1===fa&&-1===ga&&Pb[j.baseEncodingName]){var ja=[];for("MacRomanEncoding"!==j.baseEncodingName&&"WinAnsiEncoding"!==j.baseEncodingName||(ja=Pb[j.baseEncodingName]),Y=0;256>Y;Y++){var ka;if(ka=this.differences&&Y in this.differences?this.differences[Y]:Y in ja&&""!==ja[Y]?ja[Y]:Pb.StandardEncoding[Y]){var la,ma=!1;3===fa&&1===ga?(la=zc[ka],ma=!0):1===fa&&0===ga&&(la=Pb.MacRomanEncoding.indexOf(ka));var na=!1;for(N=0;ia>N;++N)if(ha[N].charCode===la){var oa=ma?Y:la;if(E(ha[N].glyphId,oa,-1)){Z[Y]=ha[N].glyphId,na=!0;break}}if(!na&&j.glyphNames){var pa=j.glyphNames.indexOf(ka);pa>0&&E(pa,-1,-1)?Z[Y]=pa:Z[Y]=0}}}}else if(0===fa&&0===ga)for(N=0;ia>N;++N)Z[ha[N].charCode]=ha[N].glyphId;else for(N=0;ia>N;++N)Y=255&ha[N].charCode,Z[Y]=ha[N].glyphId}0===Z.length&&(Z[0]=0);var qa=q(Z,j);if(this.toFontChar=qa.toFontChar,M.cmap={tag:"cmap",data:s(qa.charCodeToGlyphId)},!M["OS/2"]||!t(M["OS/2"])){var ra={unitsPerEm:f(M.head.data[18],M.head.data[19]),yMax:f(M.head.data[42],M.head.data[43]),yMin:f(M.head.data[38],M.head.data[39])-65536,ascent:f(M.hhea.data[4],M.hhea.data[5]),descent:f(M.hhea.data[6],M.hhea.data[7])-65536};M["OS/2"]={tag:"OS/2",data:u(j,qa.charCodeToGlyphId,ra)}}if(M.post||(M.post={tag:"post",data:v(j)}),!O)try{H=new Mc(M["CFF "].data);var sa=new kc(H,j);G=sa.parse();var ta=new xc(G);M["CFF "].data=ta.compile()}catch(ua){b("Failed to compile font "+j.loadedName)}if(M.name){var va=z(M.name);M.name.data=w(d,va)}else M.name={tag:"name",data:w(this.name)};var wa=new bc(K.version);for(var xa in M)wa.addTable(xa,M[xa].data);return wa.toArray()},convert:function(a,b,c){function d(a,b){var c=null;for(var d in a)b===a[d]&&(c||(c=[]),c.push(0|d));return c}function e(a,b){for(var c in a)if(b===a[c])return 0|c;return g.charCodeToGlyphId[g.nextAvailableFontCharCode]=b,g.nextAvailableFontCharCode++}c.fixedPitch=!1;var f=b.getGlyphMapping(c),g=q(f,c);this.toFontChar=g.toFontChar;var h=b.numGlyphs,i=b.seacs;if(Nb&&i&&i.length){var k=c.fontMatrix||T,m=b.getCharset(),n=Object.create(null);for(var o in i){o|=0;var p=i[o],r=Pb.StandardEncoding[p[2]],t=Pb.StandardEncoding[p[3]],x=m.indexOf(r),y=m.indexOf(t);if(!(0>x||0>y)){var z={x:p[0]*k[0]+p[1]*k[2]+k[4],y:p[0]*k[1]+p[1]*k[3]+k[5]},A=d(f,o);if(A)for(var B=0,C=A.length;C>B;B++){var D=A[B],E=g.charCodeToGlyphId,F=e(E,x),G=e(E,y);n[D]={baseFontCharCode:F,accentFontCharCode:G,accentOffset:z}}}}c.seacMap=n}var H=1/(c.fontMatrix||T)[0],I=new bc("OTTO");return I.addTable("CFF ",b.data),I.addTable("OS/2",u(c,g.charCodeToGlyphId)),I.addTable("cmap",s(g.charCodeToGlyphId)),I.addTable("head","\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00_<õ\x00\x00"+l(H)+"\x00\x00\x00\x00ž\x0B~'\x00\x00\x00\x00ž\x0B~'\x00\x00"+l(c.descent)+"ÿ"+l(c.ascent)+j(c.italicAngle?2:0)+"\x00\x00\x00\x00\x00\x00\x00"),I.addTable("hhea","\x00\x00\x00"+l(c.ascent)+l(c.descent)+"\x00\x00ÿÿ\x00\x00\x00\x00\x00\x00"+l(c.capHeight)+l(Math.tan(c.italicAngle)*c.xHeight)+"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"+j(h)),I.addTable("hmtx",function(){for(var a=b.charstrings,c=b.cff?b.cff.widths:null,d="\x00\x00\x00\x00",e=1,f=h;f>e;e++){var g=0;if(a){var i=a[e-1];g="width"in i?i.width:0}else c&&(g=Math.ceil(c[e]||0));d+=j(g)+j(0)}return d}()),I.addTable("maxp","\x00\x00P\x00"+j(h)),I.addTable("name",w(a)),I.addTable("post",v(c)),I.toArray()},buildToUnicode:function(a){if(a.toUnicode&&0!==a.toUnicode.length)return a.toUnicode;var b,c;if(!a.composite){b=[];var d=a.defaultEncoding.slice(),f=a.baseEncodingName,g=a.differences;for(c in g)d[c]=g[c];for(c in d){var h=d[c];if(""!==h)if(void 0!==zc[h])b[c]=String.fromCharCode(zc[h]);else{var i=0;switch(h[0]){case"G":3===h.length&&(i=parseInt(h.substr(1),16));break;case"g":5===h.length&&(i=parseInt(h.substr(1),16));break;case"C":case"c":h.length>=3&&(i=+h.substr(1))}if(i){if(f&&i===+c){var j=Pb[f];if(j&&(h=j[c])){b[c]=String.fromCharCode(zc[h]);continue}}b[c]=String.fromCharCode(i)}}}return new _b(b)}if(a.composite&&(a.cMap.builtInCMap&&!(a.cMap instanceof Fb)||"Adobe"===a.cidSystemInfo.registry&&("GB1"===a.cidSystemInfo.ordering||"CNS1"===a.cidSystemInfo.ordering||"Japan1"===a.cidSystemInfo.ordering||"Korea1"===a.cidSystemInfo.ordering))){var k=a.cidSystemInfo.registry,l=a.cidSystemInfo.ordering,m=new ya(k+"-"+l+"-UCS2"),n=Hb.create(m,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null),o=a.cMap;return b=[],o.forEach(function(a,c){e(65535>=c,"Max size of CID is 65,535");var d=n.lookup(c);d&&(b[a]=String.fromCharCode((d.charCodeAt(0)<<8)+d.charCodeAt(1)))}),new _b(b)}return new ac(a.firstChar,a.lastChar)},get spaceWidth(){if("_shadowWidth"in this)return this._shadowWidth;for(var a,b=["space","minus","one","i"],c=0,d=b.length;d>c;c++){var e=b[c];if(e in this.widths){a=this.widths[e];break}var f=zc[e],g=0;if(this.composite&&this.cMap.contains(f)&&(g=this.cMap.lookup(f)),!g&&"toUnicode"in this&&(g=this.toUnicode.charCodeOf(f)),0>=g&&(g=f),a=this.widths[g])break}return a=a||this.defaultWidth,this._shadowWidth=a,a},charToGlyph:function(a){var b,c,d,e=a;this.cMap&&this.cMap.contains(a)&&(e=this.cMap.lookup(a)),c=this.widths[e],c=x(c)?c:this.defaultWidth;var f=this.vmetrics&&this.vmetrics[e],g=this.toUnicode.get(a)||a;"number"==typeof g&&(g=String.fromCharCode(g)),b=this.toFontChar[a]||a,this.missingFile&&(b=K(b)),this.isType3Font&&(d=b);var h=null;if(this.seacMap&&this.seacMap[a]){var i=this.seacMap[a];b=i.baseFontCharCode,h={fontChar:String.fromCharCode(i.accentFontCharCode),offset:i.accentOffset}}var j=String.fromCharCode(b),k=this.glyphCache[a];return k&&k.matchesForCache(j,g,h,c,f,d)||(k=new $b(j,g,h,c,f,d),this.glyphCache[a]=k),k},charsToGlyphs:function(a){var b,c,d,e=this.charsCache;if(e&&(b=e[a]))return b;e||(e=this.charsCache=Object.create(null)),b=[];var f,g=a,h=0;if(this.cMap)for(var i={};hh;++h)d=a.charCodeAt(h),c=this.charToGlyph(d),b.push(c),32===d&&b.push(null);return e[g]=b}},d}(),ec=function(){function a(a){this.error=a,this.loadedName="g_font_error",this.loading=!1}return a.prototype={charsToGlyphs:function(){return[]},exportData:function(){return{error:this.error}}},a}(),fc=function(){function a(){this.width=0,this.lsb=0,this.flexing=!1,this.output=[],this.stack=[]}var c={hstem:[1],vstem:[3],vmoveto:[4],rlineto:[5],hlineto:[6],vlineto:[7],rrcurveto:[8],callsubr:[10],flex:[12,35],drop:[12,18],endchar:[14],rmoveto:[21],hmoveto:[22],vhcurveto:[30],hvcurveto:[31]};return a.prototype={convert:function(a,d){for(var e,f,g,h=a.length,i=!1,j=0;h>j;j++){var k=a[j];if(32>k){switch(12===k&&(k=(k<<8)+a[++j]),k){case 1:if(!Mb){this.stack=[];break}i=this.executeCommand(2,c.hstem);break;case 3:if(!Mb){this.stack=[];break}i=this.executeCommand(2,c.vstem);break;case 4:if(this.flexing){if(this.stack.length<1){i=!0;break}var l=this.stack.pop();this.stack.push(0,l);break}i=this.executeCommand(1,c.vmoveto);break;case 5:i=this.executeCommand(2,c.rlineto);break;case 6:i=this.executeCommand(1,c.hlineto);break;case 7:i=this.executeCommand(1,c.vlineto);break;case 8:i=this.executeCommand(6,c.rrcurveto);break;case 9:this.stack=[];break;case 10:if(this.stack.length<1){i=!0;break}g=this.stack.pop(),i=this.convert(d[g],d);break;case 11:return i;case 13:if(this.stack.length<2){i=!0;break}e=this.stack.pop(),f=this.stack.pop(),this.lsb=f,this.width=e,this.stack.push(e,f),i=this.executeCommand(2,c.hmoveto);break;case 14:this.output.push(c.endchar[0]);break;case 21:if(this.flexing)break;i=this.executeCommand(2,c.rmoveto);break;case 22:if(this.flexing){this.stack.push(0);break}i=this.executeCommand(1,c.hmoveto);break;case 30:i=this.executeCommand(4,c.vhcurveto);break;case 31:i=this.executeCommand(4,c.hvcurveto);break;case 3072:this.stack=[];break;case 3073:if(!Mb){this.stack=[];break}i=this.executeCommand(2,c.vstem);break;case 3074:if(!Mb){this.stack=[];break}i=this.executeCommand(2,c.hstem);break;case 3078:Nb?(this.seac=this.stack.splice(-4,4),i=this.executeCommand(0,c.endchar)):i=this.executeCommand(4,c.endchar);break;case 3079:if(this.stack.length<4){i=!0;break}this.stack.pop();e=this.stack.pop();var m=this.stack.pop();f=this.stack.pop(),this.lsb=f,this.width=e,this.stack.push(e,f,m),i=this.executeCommand(3,c.rmoveto);break;case 3084:if(this.stack.length<2){i=!0;break}var n=this.stack.pop(),o=this.stack.pop();this.stack.push(o/n);break;case 3088:if(this.stack.length<2){i=!0;break}g=this.stack.pop();var p=this.stack.pop();if(0===g&&3===p){var q=this.stack.splice(this.stack.length-17,17);this.stack.push(q[2]+q[0],q[3]+q[1],q[4],q[5],q[6],q[7],q[8],q[9],q[10],q[11],q[12],q[13],q[14]),i=this.executeCommand(13,c.flex,!0),this.flexing=!1,this.stack.push(q[15],q[16])}else 1===g&&0===p&&(this.flexing=!0);break;case 3089:break;case 3105:this.stack=[];break;default:b('Unknown type 1 charstring command of "'+k+'"')}if(i)break}else 246>=k?k-=139:k=250>=k?256*(k-247)+a[++j]+108:254>=k?-(256*(k-251))-a[++j]-108:(255&a[++j])<<24|(255&a[++j])<<16|(255&a[++j])<<8|(255&a[++j])<<0,this.stack.push(k)}return i},executeCommand:function(a,b,c){var d=this.stack.length;if(a>d)return!0;for(var e=d-a,f=e;d>f;f++){var g=this.stack[f];g===(0|g)?this.output.push(28,g>>8&255,255&g):(g=65536*g|0,this.output.push(255,g>>24&255,g>>16&255,g>>8&255,255&g))}return this.output.push.apply(this.output,b),c?this.stack.splice(e,a):this.stack.length=0,!1}},a}(),gc=function(){function a(a){return a>=48&&57>=a||a>=65&&70>=a||a>=97&&102>=a}function b(a,b,c){for(var d=0|b,e=52845,f=22719,g=a.length,h=new Uint8Array(g),i=0;g>i;i++){var j=a[i];h[i]=j^d>>8,d=(j+d)*e+f&65535}return Array.prototype.slice.call(h,c)}function c(b,c,d){var e,f,g=0|c,h=52845,i=22719,j=b.length,k=j>>>1,l=new Uint8Array(k);for(e=0,f=0;j>e;e++){var m=b[e];if(a(m)){e++;for(var n;j>e&&!a(n=b[e]);)e++;if(j>e){var o=parseInt(String.fromCharCode(m,n),16);l[f++]=o^g>>8,g=(o+g)*h+i&65535}}}return Array.prototype.slice.call(l,d,f)}function d(a){return 47===a||91===a||93===a||123===a||125===a||40===a||41===a}function e(d,e){if(e){var g=d.getBytes(),h=!(a(g[0])&&a(g[1])&&a(g[2])&&a(g[3]));d=new Mc(h?b(g,f,4):c(g,f,4))}this.stream=d,this.nextChar()}var f=55665,g=4330;return e.prototype={readNumberArray:function(){this.getToken();for(var a=[];;){var b=this.getToken();if(null===b||"]"===b||"}"===b)break;a.push(parseFloat(b||0))}return a},readNumber:function(){var a=this.getToken();return parseFloat(a||0)},readInt:function(){var a=this.getToken();return 0|parseInt(a||0,10)},readBoolean:function(){var a=this.getToken();return"true"===a?1:0},nextChar:function(){return this.currentChar=this.stream.getByte()},getToken:function(){for(var a=!1,b=this.currentChar;;){if(-1===b)return null;if(a)10!==b&&13!==b||(a=!1);else if(37===b)a=!0;else if(!Gc.isSpace(b))break;b=this.nextChar()}if(d(b))return this.nextChar(),String.fromCharCode(b);var c="";do c+=String.fromCharCode(b),b=this.nextChar();while(b>=0&&!Gc.isSpace(b)&&!d(b));return c},extractFontProgram:function(){for(var a,c,d,e,f,h=this.stream,i=[],j=[],k={subrs:[],charstrings:[],properties:{privateData:{lenIV:4}}};null!==(a=this.getToken());)if("/"===a)switch(a=this.getToken()){case"CharStrings":for(this.getToken(),this.getToken(),this.getToken(),this.getToken();;){if(a=this.getToken(),null===a||"end"===a)break;if("/"===a){var l=this.getToken();c=this.readInt(),this.getToken(),d=h.makeSubStream(h.pos,c),e=k.properties.privateData.lenIV,f=b(d.getBytes(),g,e),h.skip(c),this.nextChar(),a=this.getToken(),"noaccess"===a&&this.getToken(),j.push({glyph:l,encoded:f})}}break;case"Subrs":this.readInt();for(this.getToken();"dup"===(a=this.getToken());){var m=this.readInt();c=this.readInt(),this.getToken(),d=h.makeSubStream(h.pos,c),e=k.properties.privateData.lenIV,f=b(d.getBytes(),g,e),h.skip(c),this.nextChar(),a=this.getToken(),"noaccess"===a&&this.getToken(),i[m]=f}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":var n=this.readNumberArray();n.length>0&&n.length%2===0&&Mb&&(k.properties.privateData[a]=n);break;case"StemSnapH":case"StemSnapV":k.properties.privateData[a]=this.readNumberArray();break;case"StdHW":case"StdVW":k.properties.privateData[a]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":case"ExpansionFactor":k.properties.privateData[a]=this.readNumber();break;case"ForceBold":k.properties.privateData[a]=this.readBoolean()}for(var o=0;og;g++){for(b=this.getToken();"dup"!==b&&"def"!==b;)if(b=this.getToken(),null===b)return;if("def"===b)break;var h=this.readInt();this.getToken();var i=this.getToken();d[h]=i,this.getToken()}}else d=Pb[e];a.builtInEncoding=d;break;case"FontBBox":var j=this.readNumberArray();a.ascent=j[3],a.descent=j[1],a.ascentScaled=!0}}},e}(),hc=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],ic=function(a,b,c){ +var d=6,e=c.length1,f=c.length2,g=b.peekBytes(d),h=128===g[0]&&1===g[1];h&&(b.skip(d),e=g[5]<<24|g[4]<<16|g[3]<<8|g[2]);var i=new Mc(b.getBytes(e)),j=new gc(i);j.extractFontHeader(c),h&&(g=b.getBytes(d),f=g[5]<<24|g[4]<<16|g[3]<<8|g[2]);var k=new Mc(b.getBytes(f)),l=new gc(k,!0),m=l.extractFontProgram();for(var n in m.properties)c[n]=m.properties[n];var o=m.charstrings,p=this.getType2Charstrings(o),q=this.getType2Subrs(m.subrs);this.charstrings=o,this.data=this.wrap(a,p,this.charstrings,q,c),this.seacs=this.getSeacs(m.charstrings)};ic.prototype={get numGlyphs(){return this.charstrings.length+1},getCharset:function(){for(var a=[".notdef"],b=this.charstrings,c=0;c=0&&(f[g]=b)}return Q(a,f,d)},getSeacs:function(a){var b,c,d=[];for(b=0,c=a.length;c>b;b++){var e=a[b];e.seac&&(d[b+1]=e.seac)}return d},getType2Charstrings:function(a){for(var b=[],c=0,d=a.length;d>c;c++)b.push(a[c].charstring);return b},getType2Subrs:function(a){var b=0,c=a.length;b=1133>c?107:33769>c?1131:32768;var d,e=[];for(d=0;b>d;d++)e.push([11]);for(d=0;c>d;d++)e.push(a[d]);return e},wrap:function(a,b,c,d,e){var f=new lc;f.header=new mc(1,0,4,4),f.names=[a];var g=new qc;g.setByName("version",391),g.setByName("Notice",392),g.setByName("FullName",393),g.setByName("FamilyName",394),g.setByName("Weight",395),g.setByName("Encoding",null),g.setByName("FontMatrix",e.fontMatrix),g.setByName("FontBBox",e.bbox),g.setByName("charset",null),g.setByName("CharStrings",null),g.setByName("Private",null),f.topDict=g;var h=new nc;h.add("Version 0.11"),h.add("See original notice"),h.add(a),h.add(a),h.add("Medium"),f.strings=h,f.globalSubrIndex=new oc;var i,j,k=b.length,l=[0];for(i=0;k>i;i++){var m=hc.indexOf(c[i].glyphName);-1===m&&(m=0),l.push(m>>8&255,255&m)}f.charset=new tc(!1,0,[],l);var n=new oc;for(n.add([139,14]),i=0;k>i;i++)n.add(b[i]);f.charStrings=n;var o=new rc;o.setByName("Subrs",null);var p=["BlueValues","OtherBlues","FamilyBlues","FamilyOtherBlues","StemSnapH","StemSnapV","BlueShift","BlueFuzz","BlueScale","LanguageGroup","ExpansionFactor","ForceBold","StdHW","StdVW"];for(i=0,j=p.length;j>i;i++){var q=p[i];if(e.privateData.hasOwnProperty(q)){var r=e.privateData[q];if(C(r))for(var s=r.length-1;s>0;s--)r[s]-=r[s-1];o.setByName(q,r)}}f.topDict.privateDict=o;var t=new oc;for(i=0,j=d.length;j>i;i++)t.add(d[i]);o.subrsIndex=t;var u=new xc(f);return u.compile()}};var jc=function(){function a(a,c){this.properties=c;var d=new kc(a,c);this.cff=d.parse();var e=new xc(this.cff);this.seacs=this.cff.seacs;try{this.data=e.compile()}catch(f){b("Failed to compile font "+c.loadedName),this.data=a}}return a.prototype={get numGlyphs(){return this.cff.charStrings.count},getCharset:function(){return this.cff.charset.charset},getGlyphMapping:function(){var a,b,c=this.cff,d=this.properties,e=c.charset.charset;if(d.composite){if(a=Object.create(null),c.isCIDFont)for(b=0;bq;++q){var s=p.get(q),t=this.createDict(qc,this.parseDict(s),b.strings);this.parsePrivateDict(t),b.fdArray.push(t)}o=null,n=this.parseCharsets(i.getByName("charset"),b.charStrings.count,b.strings,!0),b.fdSelect=this.parseFDSelect(i.getByName("FDSelect"),b.charStrings.count)}else n=this.parseCharsets(i.getByName("charset"),b.charStrings.count,b.strings,!1),o=this.parseEncoding(i.getByName("Encoding"),a,b.strings,n.charset);return b.charset=n,b.encoding=o,b},parseHeader:function(){for(var b=this.bytes,d=b.length,e=0;d>e&&1!==b[e];)++e;e>=d?c("Invalid CFF header"):0!==e&&(a("cff data is shifted"),b=b.subarray(e),this.bytes=b);var f=b[0],g=b[1],h=b[2],i=b[3],j=new mc(f,g,h,i);return{obj:j,endPos:h}},parseDict:function(a){function b(){var b=a[e++];return 30===b?d(e):28===b?(b=a[e++],b=(b<<24|a[e++]<<16)>>16):29===b?(b=a[e++],b=b<<8|a[e++],b=b<<8|a[e++],b=b<<8|a[e++]):b>=32&&246>=b?b-139:b>=247&&250>=b?256*(b-247)+a[e++]+108:b>=251&&254>=b?-(256*(b-251))-a[e++]-108:(c("255 is not a valid DICT command"),-1)}function d(){for(var b="",c=15,d=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],f=a.length;f>e;){var g=a[e++],h=g>>4,i=15&g;if(h===c)break;if(b+=d[h],i===c)break;b+=d[i]}return parseFloat(b)}var e=0,f=[],g=[];e=0;for(var h=a.length;h>e;){var i=a[e];21>=i?(12===i&&(i=i<<8|a[++e]),g.push([i,f]),f=[],++e):f.push(b())}return g},parseIndex:function(a){var b,c,d=new oc,e=this.bytes,f=e[a++]<<8|e[a++],g=[],h=a;if(0!==f){var i=e[a++],j=a+(f+1)*i-1;for(b=0,c=f+1;c>b;++b){for(var k=0,l=0;i>l;++l)k<<=8,k+=e[a++];g.push(j+k)}h=g[f]}for(b=0,c=g.length-1;c>b;++b){var m=g[b],n=g[b+1];d.add(e.subarray(m,n))}return{obj:d,endPos:h}},parseNameIndex:function(a){for(var b=[],c=0,d=a.count;d>c;++c){for(var e=a.get(c),f=Math.min(e.length,127),g=[],h=0;f>h;++h){var j=e[h];(0!==h||0!==j)&&(33>j||j>126||91===j||93===j||40===j||41===j||123===j||125===j||60===j||62===j||47===j||37===j||35===j)?g[h]=95:g[h]=j}b.push(i(g))}return b},parseStringIndex:function(a){for(var b=new nc,c=0,d=a.count;d>c;++c){var e=a.get(c);b.add(i(e))}return b},createDict:function(a,b,c){for(var d=new a(c),e=0,f=b.length;f>e;++e){var g=b[e],h=g[0],i=g[1];d.setByKey(h,i)}return d},parseCharStrings:function(a){for(var c=this.parseIndex(a).obj,d=[],g=[],h=c.count,i=0;h>i;i++){for(var j=c.get(i),k=0,l=[],m=!0,n=0,o=!0,p=j,q=p.length,r=!0,s=0;q>s;){var t=p[s++],u=null;if(12===t){var v=p[s++];0===v?(p[s-2]=139,p[s-1]=22,k=0):u=f[v]}else 28===t?(l[k]=(p[s]<<24|p[s+1]<<16)>>16,s+=2,k++):14===t?(k>=4&&(k-=4,Nb&&(d[i]=l.slice(k,k+4),o=!1)),u=e[t]):t>=32&&246>=t?(l[k]=t-139,k++):t>=247&&254>=t?(l[k]=251>t?(t-247<<8)+p[s]+108:-(t-251<<8)-p[s]-108,s++,k++):255===t?(l[k]=(p[s]<<24|p[s+1]<<16|p[s+2]<<8|p[s+3])/65536,s+=4,k++):19===t||20===t?(n+=k>>1,s+=n+7>>3,k%=2,u=e[t]):u=e[t];if(u){if(u.stem&&(n+=k>>1),"min"in u&&!m&&k=2&&u.stem?k%=2:k>1&&b("Found too many parameters for stack-clearing command"),k>0&&l[k-1]>=0&&(g[i]=l[k-1])),"stackDelta"in u?("stackFn"in u&&u.stackFn(l,k),k+=u.stackDelta):u.stackClearing?k=0:u.resetStack?(k=0,m=!1):u.undefStack&&(k=0,m=!0,r=!1)}}o||c.set(i,new Uint8Array([14]))}return{charStrings:c,seacs:d,widths:g}},emptyPrivateDictionary:function(a){var b=this.createDict(rc,[],a.strings);a.setByKey(18,[0,0]),a.privateDict=b},parsePrivateDict:function(a){if(!a.hasName("Private"))return void this.emptyPrivateDictionary(a);var b=a.getByName("Private");if(!C(b)||2!==b.length)return void a.removeByName("Private");var c=b[0],d=b[1];if(0===c||d>=this.bytes.length)return void this.emptyPrivateDictionary(a);var e=d+c,f=this.bytes.subarray(d,e),g=this.parseDict(f),h=this.createDict(rc,g,a.strings);if(a.privateDict=h,h.getByName("Subrs")){var i=h.getByName("Subrs"),j=d+i;if(0===i||j>=this.bytes.length)return void this.emptyPrivateDictionary(a);var k=this.parseIndex(j);h.subrsIndex=k.obj}},parseCharsets:function(a,b,d,e){if(0===a)return new tc(!0,sc.ISO_ADOBE,Ja);if(1===a)return new tc(!0,sc.EXPERT,Ka);if(2===a)return new tc(!0,sc.EXPERT_SUBSET,La);var f,g,h,i=this.bytes,j=a,k=i[a++],l=[".notdef"];switch(b-=1,k){case 0:for(h=0;b>h;h++)f=i[a++]<<8|i[a++],l.push(e?f:d.get(f));break;case 1:for(;l.length<=b;)for(f=i[a++]<<8|i[a++],g=i[a++],h=0;g>=h;h++)l.push(e?f++:d.get(f++));break;case 2:for(;l.length<=b;)for(f=i[a++]<<8|i[a++],g=i[a++]<<8|i[a++],h=0;g>=h;h++)l.push(e?f++:d.get(f++));break;default:c("Unknown charset format")}var m=a,n=i.subarray(j,m);return new tc(!1,k,l,n)},parseEncoding:function(a,b,d,e){function f(){var b=k[a++];for(h=0;b>h;h++){var c=k[a++],f=(k[a++]<<8)+(255&k[a++]);j[c]=e.indexOf(d.get(f))}}var g,h,i,j={},k=this.bytes,l=!1,m=!1,n=null;if(0===a||1===a){l=!0,g=a;var o=a?Pb.ExpertEncoding:Pb.StandardEncoding;for(h=0,i=e.length;i>h;h++){var p=o.indexOf(e[h]);-1!==p&&(j[p]=h)}}else{var q=a;switch(g=k[a++],127&g){case 0:var r=k[a++];for(h=1;r>=h;h++)j[k[a++]]=h;break;case 1:var s=k[a++],t=1;for(h=0;s>h;h++)for(var u=k[a++],v=k[a++],w=u;u+v>=w;w++)j[w]=t++;break;default:c("Unknow encoding format: "+g+" in CFF")}var x=a;128&g&&(k[q]&=127,f(),m=!0),n=k.subarray(q,x)}return g=127&g,new uc(l,g,j,n)},parseFDSelect:function(a,b){var d,e=a,f=this.bytes,g=f[a++],h=[];switch(g){case 0:for(d=0;b>d;++d){var i=f[a++];h.push(i)}break;case 3:var j=f[a++]<<8|f[a++];for(d=0;j>d;++d)for(var k=f[a++]<<8|f[a++],l=f[a++],m=f[a]<<8|f[a+1],n=k;m>n;++n)h.push(l);a+=2;break;default:c("Unknown fdselect format "+g)}var o=a;return new vc(h,f.subarray(e,o))}},d}(),lc=function(){function a(){this.header=null,this.names=[],this.topDict=null,this.strings=new nc,this.globalSubrIndex=null,this.encoding=null,this.charset=null,this.charStrings=null,this.fdArray=[],this.fdSelect=null,this.isCIDFont=!1}return a}(),mc=function(){function a(a,b,c,d){this.major=a,this.minor=b,this.hdrSize=c,this.offSize=d}return a}(),nc=function(){function a(){this.strings=[]}return a.prototype={get:function(a){return a>=0&&390>=a?hc[a]:a-391<=this.strings.length?this.strings[a-391]:hc[0]},add:function(a){this.strings.push(a)},get count(){return this.strings.length}},a}(),oc=function(){function a(){this.objects=[],this.length=0}return a.prototype={add:function(a){this.length+=a.length,this.objects.push(a)},set:function(a,b){this.length+=b.length-this.objects[a].length,this.objects[a]=b},get:function(a){return this.objects[a]},get count(){return this.objects.length}},a}(),pc=function(){function a(a,b){this.keyToNameMap=a.keyToNameMap,this.nameToKeyMap=a.nameToKeyMap,this.defaults=a.defaults,this.types=a.types,this.opcodes=a.opcodes,this.order=a.order,this.strings=b,this.values={}}return a.prototype={setByKey:function(a,b){if(!(a in this.keyToNameMap))return!1;if(0===b.length)return!0;var c=this.types[a];return"num"!==c&&"sid"!==c&&"offset"!==c||(b=b[0]),this.values[a]=b,!0},setByName:function(a,b){a in this.nameToKeyMap||c('Invalid dictionary name "'+a+'"'),this.values[this.nameToKeyMap[a]]=b},hasName:function(a){return this.nameToKeyMap[a]in this.values},getByName:function(a){a in this.nameToKeyMap||c('Invalid dictionary name "'+a+'"');var b=this.nameToKeyMap[a];return b in this.values?this.values[b]:this.defaults[b]},removeByName:function(a){delete this.values[this.nameToKeyMap[a]]}},a.createTables=function(a){for(var b={keyToNameMap:{},nameToKeyMap:{},defaults:{},types:{},opcodes:{},order:[]},c=0,d=a.length;d>c;++c){var e=a[c],f=C(e[0])?(e[0][0]<<8)+e[0][1]:e[0];b.keyToNameMap[f]=e[1],b.nameToKeyMap[e[1]]=f,b.types[f]=e[2],b.defaults[f]=e[3],b.opcodes[f]=C(e[0])?e[0]:[e[0]],b.order.push(f)}return b},a}(),qc=function(){function a(a){null===c&&(c=pc.createTables(b)),pc.call(this,c,a),this.privateDict=null}var b=[[[12,30],"ROS",["sid","sid","num"],null],[[12,20],"SyntheticBase","num",null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","num",0],[[12,2],"ItalicAngle","num",0],[[12,3],"UnderlinePosition","num",-100],[[12,4],"UnderlineThickness","num",50],[[12,5],"PaintType","num",0],[[12,6],"CharstringType","num",2],[[12,7],"FontMatrix",["num","num","num","num","num","num"],[.001,0,0,.001,0,0]],[13,"UniqueID","num",null],[5,"FontBBox",["num","num","num","num"],[0,0,0,0]],[[12,8],"StrokeWidth","num",0],[14,"XUID","array",null],[15,"charset","offset",0],[16,"Encoding","offset",0],[17,"CharStrings","offset",0],[18,"Private",["offset","offset"],null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","num",0],[[12,32],"CIDFontRevision","num",0],[[12,33],"CIDFontType","num",0],[[12,34],"CIDCount","num",8720],[[12,35],"UIDBase","num",null],[[12,37],"FDSelect","offset",null],[[12,36],"FDArray","offset",null],[[12,38],"FontName","sid",null]],c=null;return a.prototype=Object.create(pc.prototype),a}(),rc=function(){function a(a){null===c&&(c=pc.createTables(b)),pc.call(this,c,a),this.subrsIndex=null}var b=[[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","num",.039625],[[12,10],"BlueShift","num",7],[[12,11],"BlueFuzz","num",1],[10,"StdHW","num",null],[11,"StdVW","num",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","num",0],[[12,17],"LanguageGroup","num",0],[[12,18],"ExpansionFactor","num",.06],[[12,19],"initialRandomSeed","num",0],[20,"defaultWidthX","num",0],[21,"nominalWidthX","num",0],[19,"Subrs","offset",null]],c=null;return a.prototype=Object.create(pc.prototype),a}(),sc={ISO_ADOBE:0,EXPERT:1,EXPERT_SUBSET:2},tc=function(){function a(a,b,c,d){this.predefined=a,this.format=b,this.charset=c,this.raw=d}return a}(),uc=function(){function a(a,b,c,d){this.predefined=a,this.format=b,this.encoding=c,this.raw=d}return a}(),vc=function(){function a(a,b){this.fdSelect=a,this.raw=b}return a}(),wc=function(){function a(){this.offsets={}}return a.prototype={isTracking:function(a){return a in this.offsets},track:function(a,b){a in this.offsets&&c("Already tracking location of "+a),this.offsets[a]=b},offset:function(a){for(var b in this.offsets)this.offsets[b]+=a},setEntryLocation:function(a,b,d){a in this.offsets||c("Not tracking location of "+a);for(var e=d.data,f=this.offsets[a],g=5,h=0,i=b.length;i>h;++h){var j=h*g+f,k=j+1,l=j+2,m=j+3,n=j+4;29===e[j]&&0===e[k]&&0===e[l]&&0===e[m]&&0===e[n]||c("writing to an offset that is not empty");var o=b[h];e[j]=29,e[k]=o>>24&255,e[l]=o>>16&255,e[m]=o>>8&255,e[n]=255&o}}},a}(),xc=function(){function a(a){this.cff=a}return a.prototype={compile:function(){var a=this.cff,b={data:[],length:0,add:function(a){this.data=this.data.concat(a),this.length=this.data.length}},c=this.compileHeader(a.header);b.add(c);var d=this.compileNameIndex(a.names);if(b.add(d),a.isCIDFont&&a.topDict.hasName("FontMatrix")){var e=a.topDict.getByName("FontMatrix");a.topDict.removeByName("FontMatrix");for(var f=0,g=a.fdArray.length;g>f;f++){var h=a.fdArray[f],i=e.slice(0);h.hasName("FontMatrix")&&(i=na.transform(i,h.getByName("FontMatrix"))),h.setByName("FontMatrix",i)}}var j=this.compileTopDicts([a.topDict],b.length,a.isCIDFont);b.add(j.output);var k=j.trackers[0],l=this.compileStringIndex(a.strings.strings);b.add(l);var m=this.compileIndex(a.globalSubrIndex);if(b.add(m),a.encoding&&a.topDict.hasName("Encoding"))if(a.encoding.predefined)k.setEntryLocation("Encoding",[a.encoding.format],b);else{var n=this.compileEncoding(a.encoding);k.setEntryLocation("Encoding",[b.length],b),b.add(n)}if(a.charset&&a.topDict.hasName("charset"))if(a.charset.predefined)k.setEntryLocation("charset",[a.charset.format],b);else{var o=this.compileCharset(a.charset);k.setEntryLocation("charset",[b.length],b),b.add(o)}var p=this.compileCharStrings(a.charStrings);if(k.setEntryLocation("CharStrings",[b.length],b),b.add(p),a.isCIDFont){k.setEntryLocation("FDSelect",[b.length],b);var q=this.compileFDSelect(a.fdSelect.raw);b.add(q),j=this.compileTopDicts(a.fdArray,b.length,!0),k.setEntryLocation("FDArray",[b.length],b),b.add(j.output);var r=j.trackers;this.compilePrivateDicts(a.fdArray,r,b)}return this.compilePrivateDicts([a.topDict],[k],b),b.add([0]),b.data},encodeNumber:function(a){return parseFloat(a)!==parseInt(a,10)||isNaN(a)?this.encodeFloat(a):this.encodeInteger(a)},encodeFloat:function(a){var b=a.toString(),c=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(b);if(c){var d=parseFloat("1e"+((c[2]?+c[2]:0)+c[1].length));b=(Math.round(a*d)/d).toString()}var e,f,g="";for(e=0,f=b.length;f>e;++e){var h=b[e];g+="e"===h?"-"===b[++e]?"c":"b":"."===h?"a":"-"===h?"e":h}g+=1&g.length?"f":"ff";var i=[30];for(e=0,f=g.length;f>e;e+=2)i.push(parseInt(g.substr(e,2),16));return i},encodeInteger:function(a){var b;return a>=-107&&107>=a?b=[a+139]:a>=108&&1131>=a?(a=[a-108],b=[(a>>8)+247,255&a]):a>=-1131&&-108>=a?(a=-a-108,b=[(a>>8)+251,255&a]):b=a>=-32768&&32767>=a?[28,a>>8&255,255&a]:[29,a>>24&255,a>>16&255,a>>8&255,255&a],b},compileHeader:function(a){return[a.major,a.minor,a.hdrSize,a.offSize]},compileNameIndex:function(a){for(var b=new oc,c=0,d=a.length;d>c;++c)b.add(j(a[c]));return this.compileIndex(b)},compileTopDicts:function(a,b,c){for(var d=[],e=new oc,f=0,g=a.length;g>f;++f){var h=a[f];c&&(h.removeByName("CIDFontVersion"),h.removeByName("CIDFontRevision"),h.removeByName("CIDFontType"),h.removeByName("CIDCount"),h.removeByName("UIDBase"));var i=new wc,j=this.compileDict(h,i);d.push(i),e.add(j),i.offset(b)}return e=this.compileIndex(e,d),{trackers:d,output:e}},compilePrivateDicts:function(a,b,c){for(var d=0,f=a.length;f>d;++d){var g=a[d];e(g.privateDict&&g.hasName("Private"),"There must be an private dictionary.");var h=g.privateDict,i=new wc,j=this.compileDict(h,i),k=c.length;if(i.offset(k),j.length||(k=0),b[d].setEntryLocation("Private",[j.length,k],c),c.add(j),h.subrsIndex&&h.hasName("Subrs")){var l=this.compileIndex(h.subrsIndex);i.setEntryLocation("Subrs",[j.length],c),c.add(l)}}},compileDict:function(a,b){for(var d=[],e=a.order,f=0;fj;++j){var l=i[j],m=h[j];switch(l){case"num":case"sid":d=d.concat(this.encodeNumber(m));break;case"offset":var n=a.keyToNameMap[g];b.isTracking(n)||b.track(n,d.length),d=d.concat([29,0,0,0,0]);break;case"array":case"delta":d=d.concat(this.encodeNumber(m));for(var o=1,p=h.length;p>o;++o)d=d.concat(this.encodeNumber(h[o]));break;default:c("Unknown data type of "+l)}}d=d.concat(a.opcodes[g])}}}return d},compileStringIndex:function(a){for(var b=new oc,c=0,d=a.length;d>c;++c)b.add(j(a[c]));return this.compileIndex(b)},compileGlobalSubrIndex:function(){var a=this.cff.globalSubrIndex;this.out.writeByteArray(this.compileIndex(a))},compileCharStrings:function(a){return this.compileIndex(a)},compileCharset:function(a){return this.compileTypedArray(a.raw)},compileEncoding:function(a){return this.compileTypedArray(a.raw)},compileFDSelect:function(a){return this.compileTypedArray(a)},compileTypedArray:function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b},compileIndex:function(a,b){b=b||[];var c=a.objects,d=c.length;if(0===d)return[0,0,0];var e,f=[d>>8&255,255&d],g=1;for(e=0;d>e;++e)g+=c[e].length;var h;h=256>g?1:65536>g?2:16777216>g?3:4,f.push(h);var i=1;for(e=0;d+1>e;e++)1===h?f.push(255&i):2===h?f.push(i>>8&255,255&i):3===h?f.push(i>>16&255,i>>8&255,255&i):f.push(i>>>24&255,i>>16&255,i>>8&255,255&i),c[e]&&(i+=c[e].length);for(e=0;d>e;e++){b[e]&&b[e].offset(f.length);for(var j=0,k=c[e].length;k>j;j++)f.push(c[e][j])}return f}},a}();!function(){/Windows/.test(navigator.userAgent)&&(Nb=!0)}(),function(){/Windows.*Chrome/.test(navigator.userAgent)&&(Kb=!0)}();var yc=function(){function a(a,b){return a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3]}function b(a,b){return a[b]<<8|a[b+1]}function d(d,e,f){var g,h,i,j,k=1===b(d,e+2)?a(d,e+8):a(d,e+16),l=b(d,e+k);if(4===l){g=b(d,e+k+2);var m=b(d,e+k+6)>>1;for(i=e+k+14,h=[],j=0;m>j;j++,i+=2)h[j]={end:b(d,i)};for(i+=2,j=0;m>j;j++,i+=2)h[j].start=b(d,i);for(j=0;m>j;j++,i+=2)h[j].idDelta=b(d,i);for(j=0;m>j;j++,i+=2){var n=b(d,i);if(0!==n){h[j].ids=[];for(var o=0,p=h[j].end-h[j].start+1;p>o;o++)h[j].ids[o]=b(d,i+n),n+=2}}return h}if(12===l){g=a(d,e+k+4);var q=a(d,e+k+12);for(i=e+k+16,h=[],j=0;q>j;j++)h.push({start:a(d,i),end:a(d,i+4),idDelta:a(d,i+8)-a(d,i)}),i+=12;return h}c("not supported cmap: "+l)}function e(a,b,c){var d={},e=new kc(new Mc(a,b,c-b),d),f=e.parse();return{glyphs:f.charStrings.objects,subrs:f.topDict.privateDict&&f.topDict.privateDict.subrsIndex&&f.topDict.privateDict.subrsIndex.objects,gsubrs:f.globalSubrIndex&&f.globalSubrIndex.objects}}function f(a,b,c){var d,e;c?(d=4,e=function(a,b){return a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3]}):(d=2,e=function(a,b){return a[b]<<9|a[b+1]<<1});for(var f=[],g=e(b,0),h=d;hd;){var f=d+e+1>>1;c>16,k=0,l=0;if(i+=10,0>j){do{g=a[i]<<8|a[i+1];var m=a[i+2]<<8|a[i+3];i+=4;var n,o;1&g?(n=(a[i]<<24|a[i+1]<<16)>>16,o=(a[i+2]<<24|a[i+3]<<16)>>16,i+=4):(n=a[i++],o=a[i++]),2&g?(k=n,l=o):(k=0,l=0);var p=1,q=1,r=0,s=0;8&g?(p=q=(a[i]<<24|a[i+1]<<16)/1073741824,i+=2):64&g?(p=(a[i]<<24|a[i+1]<<16)/1073741824,q=(a[i+2]<<24|a[i+3]<<16)/1073741824,i+=4):128&g&&(p=(a[i]<<24|a[i+1]<<16)/1073741824,r=(a[i+2]<<24|a[i+3]<<16)/1073741824,s=(a[i+4]<<24|a[i+5]<<16)/1073741824,q=(a[i+6]<<24|a[i+7]<<16)/1073741824,i+=8);var t=c.glyphs[m];t&&(b.push({cmd:"save"}),b.push({cmd:"transform",args:[p,r,s,q,k,l]}),h(t,b,c),b.push({cmd:"restore"}))}while(32&g)}else{var u,v,w=[];for(u=0;j>u;u++)w.push(a[i]<<8|a[i+1]),i+=2;var x=a[i]<<8|a[i+1];i+=2+x;for(var y=w[w.length-1]+1,z=[];z.length0;)z.push({flags:g})}for(u=0;y>u;u++){switch(18&z[u].flags){case 0:k+=(a[i]<<24|a[i+1]<<16)>>16,i+=2;break;case 2:k-=a[i++];break;case 18:k+=a[i++]}z[u].x=k}for(u=0;y>u;u++){switch(36&z[u].flags){case 0:l+=(a[i]<<24|a[i+1]<<16)>>16,i+=2;break;case 4:l-=a[i++];break;case 36:l+=a[i++]}z[u].y=l}var B=0;for(i=0;j>i;i++){var C=w[i],D=z.slice(B,C+1);if(1&D[0].flags)D.push(D[0]);else if(1&D[D.length-1].flags)D.unshift(D[D.length-1]);else{var E={flags:1,x:(D[0].x+D[D.length-1].x)/2,y:(D[0].y+D[D.length-1].y)/2};D.unshift(E),D.push(E)}for(d(D[0].x,D[0].y),u=1,v=D.length;v>u;u++)1&D[u].flags?e(D[u].x,D[u].y):1&D[u+1].flags?(f(D[u].x,D[u].y,D[u+1].x,D[u+1].y),u++):f(D[u].x,D[u].y,(D[u].x+D[u+1].x)/2,(D[u].y+D[u+1].y)/2);B=C+1}}}function j(a,b,d){function e(a,c){b.push({cmd:"moveTo",args:[a,c]})}function f(a,c){b.push({cmd:"lineTo",args:[a,c]})}function h(a,c,d,e,f,g){b.push({cmd:"bezierCurveTo",args:[a,c,d,e,f,g]})}function i(a){for(var o=0;o>1,y=!0;break;case 3:n+=k.length>>1,y=!0;break;case 4:m+=k.pop(),e(l,m),y=!0;break;case 5:for(;k.length>0;)l+=k.shift(),m+=k.shift(),f(l,m);break;case 6:for(;k.length>0&&(l+=k.shift(),f(l,m),0!==k.length);)m+=k.shift(),f(l,m);break;case 7:for(;k.length>0&&(m+=k.shift(),f(l,m),0!==k.length);)l+=k.shift(),f(l,m);break;case 8:for(;k.length>0;)p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m);break;case 10:w=k.pop()+d.subrsBias,x=d.subrs[w],x&&i(x);break;case 11:return;case 12:switch(z=a[o++]){case 34:p=l+k.shift(),q=p+k.shift(),t=m+k.shift(),l=q+k.shift(),h(p,m,q,t,l,t),p=l+k.shift(),q=p+k.shift(),l=q+k.shift(),h(p,t,q,m,l,m);break;case 35:p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m),p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m),k.pop();break;case 36:p=l+k.shift(),t=m+k.shift(),q=p+k.shift(),u=t+k.shift(),l=q+k.shift(),h(p,t,q,u,l,u),p=l+k.shift(),q=p+k.shift(),v=u+k.shift(),l=q+k.shift(),h(p,u,q,v,l,m);break;case 37:var A=l,B=m;p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m),p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q,m=s,Math.abs(l-A)>Math.abs(m-B)?l+=k.shift():m+=k.shift(),h(p,r,q,s,l,m);break;default:c("unknown operator: 12 "+z)}break;case 14:if(k.length>=4){var C=k.pop(),D=k.pop();m=k.pop(),l=k.pop(),b.push({cmd:"save"}),b.push({cmd:"translate",args:[l,m]});var E=g(d.cmap,String.fromCharCode(d.glyphNameMap[Pb.StandardEncoding[C]]));j(d.glyphs[E],b,d),b.push({cmd:"restore"}),E=g(d.cmap,String.fromCharCode(d.glyphNameMap[Pb.StandardEncoding[D]])),j(d.glyphs[E],b,d)}return;case 18:n+=k.length>>1,y=!0;break;case 19:n+=k.length>>1,o+=n+7>>3,y=!0;break;case 20:n+=k.length>>1,o+=n+7>>3,y=!0;break;case 21:m+=k.pop(),l+=k.pop(),e(l,m),y=!0;break;case 22:l+=k.pop(),e(l,m),y=!0;break;case 23:n+=k.length>>1,y=!0;break;case 24:for(;k.length>2;)p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m);l+=k.shift(),m+=k.shift(),f(l,m);break;case 25:for(;k.length>6;)l+=k.shift(),m+=k.shift(),f(l,m);p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m);break;case 26:for(k.length%2&&(l+=k.shift());k.length>0;)p=l,r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q,m=s+k.shift(),h(p,r,q,s,l,m);break;case 27:for(k.length%2&&(m+=k.shift());k.length>0;)p=l+k.shift(),r=m,q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s,h(p,r,q,s,l,m);break;case 28:k.push((a[o]<<24|a[o+1]<<16)>>16),o+=2;break;case 29:w=k.pop()+d.gsubrsBias,x=d.gsubrs[w],x&&i(x);break;case 30:for(;k.length>0&&(p=l,r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+(1===k.length?k.shift():0),h(p,r,q,s,l,m),0!==k.length);)p=l+k.shift(),r=m,q=p+k.shift(),s=r+k.shift(),m=s+k.shift(),l=q+(1===k.length?k.shift():0),h(p,r,q,s,l,m);break;case 31:for(;k.length>0&&(p=l+k.shift(),r=m,q=p+k.shift(),s=r+k.shift(),m=s+k.shift(),l=q+(1===k.length?k.shift():0),h(p,r,q,s,l,m),0!==k.length);)p=l,r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+(1===k.length?k.shift():0),h(p,r,q,s,l,m);break;default:32>z&&c("unknown operator: "+z),247>z?k.push(z-139):251>z?k.push(256*(z-247)+a[o++]+108):255>z?k.push(256*-(z-251)-a[o++]-108):(k.push((a[o]<<24|a[o+1]<<16|a[o+2]<<8|a[o+3])/65536),o+=4)}y&&(k.length=0)}}var k=[],l=0,m=0,n=0;i(a)}function k(a){this.compiledGlyphs={},this.fontMatrix=a}function l(a,b,c){c=c||[488e-6,0,0,488e-6,0,0],k.call(this,c),this.glyphs=a,this.cmap=b,this.compiledGlyphs=[]}function m(a,b,c,d){c=c||[.001,0,0,.001,0,0],k.call(this,c),this.glyphs=a.glyphs,this.gsubrs=a.gsubrs||[],this.subrs=a.subrs||[],this.cmap=b,this.glyphNameMap=d||zc,this.compiledGlyphs=[],this.gsubrsBias=this.gsubrs.length<1240?107:this.gsubrs.length<33900?1131:32768,this.subrsBias=this.subrs.length<1240?107:this.subrs.length<33900?1131:32768}var n="";return k.prototype={getPathJs:function(a){var b=g(this.cmap,a),c=this.compiledGlyphs[b];return c||(this.compiledGlyphs[b]=c=this.compileGlyph(this.glyphs[b])),c},compileGlyph:function(a){if(!a||0===a.length||14===a[0])return n;var b=[];return b.push({cmd:"save"}),b.push({cmd:"transform",args:this.fontMatrix.slice()}),b.push({cmd:"scale",args:["size","-size"]}),this.compileGlyphImpl(a,b),b.push({cmd:"restore"}),b},compileGlyphImpl:function(){c("Children classes should implement this.")},hasBuiltPath:function(a){var b=g(this.cmap,a);return b in this.compiledGlyphs}},na.inherit(l,k,{compileGlyphImpl:function(a,b){h(a,b,this)}}),na.inherit(m,k,{compileGlyphImpl:function(a,b){j(a,b,this)}}),{create:function(c){for(var g,h,j,k,n,o,p=new Uint8Array(c.data),q=b(p,4),r=0,s=12;q>r;r++,s+=16){var t=i(p.subarray(s,s+4)),u=a(p,s+8),v=a(p,s+12);switch(t){case"cmap":g=d(p,u,u+v);break;case"glyf":h=p.subarray(u,u+v);break;case"loca":j=p.subarray(u,u+v);break;case"head":o=b(p,u+18),n=b(p,u+50);break;case"CFF ":k=e(p,u,u+v)}}if(h){var w=o?[1/o,0,0,1/o,0,0]:c.fontMatrix;return new l(f(h,j,n),g,w)}return new m(k,g,c.fontMatrix,c.glyphNameMap)}}}(),zc={A:65,AE:198,AEacute:508,AEmacron:482,AEsmall:63462,Aacute:193,Aacutesmall:63457,Abreve:258,Abreveacute:7854,Abrevecyrillic:1232,Abrevedotbelow:7862,Abrevegrave:7856,Abrevehookabove:7858,Abrevetilde:7860,Acaron:461,Acircle:9398,Acircumflex:194,Acircumflexacute:7844,Acircumflexdotbelow:7852,Acircumflexgrave:7846,Acircumflexhookabove:7848,Acircumflexsmall:63458,Acircumflextilde:7850,Acute:63177,Acutesmall:63412,Acyrillic:1040,Adblgrave:512,Adieresis:196,Adieresiscyrillic:1234,Adieresismacron:478,Adieresissmall:63460,Adotbelow:7840,Adotmacron:480,Agrave:192,Agravesmall:63456,Ahookabove:7842,Aiecyrillic:1236,Ainvertedbreve:514,Alpha:913,Alphatonos:902,Amacron:256,Amonospace:65313,Aogonek:260,Aring:197,Aringacute:506,Aringbelow:7680,Aringsmall:63461,Asmall:63329,Atilde:195,Atildesmall:63459,Aybarmenian:1329,B:66,Bcircle:9399,Bdotaccent:7682,Bdotbelow:7684,Becyrillic:1041,Benarmenian:1330,Beta:914,Bhook:385,Blinebelow:7686,Bmonospace:65314,Brevesmall:63220,Bsmall:63330,Btopbar:386,C:67,Caarmenian:1342,Cacute:262,Caron:63178,Caronsmall:63221,Ccaron:268,Ccedilla:199,Ccedillaacute:7688,Ccedillasmall:63463,Ccircle:9400,Ccircumflex:264,Cdot:266,Cdotaccent:266,Cedillasmall:63416,Chaarmenian:1353,Cheabkhasiancyrillic:1212,Checyrillic:1063,Chedescenderabkhasiancyrillic:1214,Chedescendercyrillic:1206,Chedieresiscyrillic:1268,Cheharmenian:1347,Chekhakassiancyrillic:1227,Cheverticalstrokecyrillic:1208,Chi:935,Chook:391,Circumflexsmall:63222,Cmonospace:65315,Coarmenian:1361,Csmall:63331,D:68,DZ:497,DZcaron:452,Daarmenian:1332,Dafrican:393, +Dcaron:270,Dcedilla:7696,Dcircle:9401,Dcircumflexbelow:7698,Dcroat:272,Ddotaccent:7690,Ddotbelow:7692,Decyrillic:1044,Deicoptic:1006,Delta:8710,Deltagreek:916,Dhook:394,Dieresis:63179,DieresisAcute:63180,DieresisGrave:63181,Dieresissmall:63400,Digammagreek:988,Djecyrillic:1026,Dlinebelow:7694,Dmonospace:65316,Dotaccentsmall:63223,Dslash:272,Dsmall:63332,Dtopbar:395,Dz:498,Dzcaron:453,Dzeabkhasiancyrillic:1248,Dzecyrillic:1029,Dzhecyrillic:1039,E:69,Eacute:201,Eacutesmall:63465,Ebreve:276,Ecaron:282,Ecedillabreve:7708,Echarmenian:1333,Ecircle:9402,Ecircumflex:202,Ecircumflexacute:7870,Ecircumflexbelow:7704,Ecircumflexdotbelow:7878,Ecircumflexgrave:7872,Ecircumflexhookabove:7874,Ecircumflexsmall:63466,Ecircumflextilde:7876,Ecyrillic:1028,Edblgrave:516,Edieresis:203,Edieresissmall:63467,Edot:278,Edotaccent:278,Edotbelow:7864,Efcyrillic:1060,Egrave:200,Egravesmall:63464,Eharmenian:1335,Ehookabove:7866,Eightroman:8551,Einvertedbreve:518,Eiotifiedcyrillic:1124,Elcyrillic:1051,Elevenroman:8554,Emacron:274,Emacronacute:7702,Emacrongrave:7700,Emcyrillic:1052,Emonospace:65317,Encyrillic:1053,Endescendercyrillic:1186,Eng:330,Enghecyrillic:1188,Enhookcyrillic:1223,Eogonek:280,Eopen:400,Epsilon:917,Epsilontonos:904,Ercyrillic:1056,Ereversed:398,Ereversedcyrillic:1069,Escyrillic:1057,Esdescendercyrillic:1194,Esh:425,Esmall:63333,Eta:919,Etarmenian:1336,Etatonos:905,Eth:208,Ethsmall:63472,Etilde:7868,Etildebelow:7706,Euro:8364,Ezh:439,Ezhcaron:494,Ezhreversed:440,F:70,Fcircle:9403,Fdotaccent:7710,Feharmenian:1366,Feicoptic:996,Fhook:401,Fitacyrillic:1138,Fiveroman:8548,Fmonospace:65318,Fourroman:8547,Fsmall:63334,G:71,GBsquare:13191,Gacute:500,Gamma:915,Gammaafrican:404,Gangiacoptic:1002,Gbreve:286,Gcaron:486,Gcedilla:290,Gcircle:9404,Gcircumflex:284,Gcommaaccent:290,Gdot:288,Gdotaccent:288,Gecyrillic:1043,Ghadarmenian:1346,Ghemiddlehookcyrillic:1172,Ghestrokecyrillic:1170,Gheupturncyrillic:1168,Ghook:403,Gimarmenian:1331,Gjecyrillic:1027,Gmacron:7712,Gmonospace:65319,Grave:63182,Gravesmall:63328,Gsmall:63335,Gsmallhook:667,Gstroke:484,H:72,H18533:9679,H18543:9642,H18551:9643,H22073:9633,HPsquare:13259,Haabkhasiancyrillic:1192,Hadescendercyrillic:1202,Hardsigncyrillic:1066,Hbar:294,Hbrevebelow:7722,Hcedilla:7720,Hcircle:9405,Hcircumflex:292,Hdieresis:7718,Hdotaccent:7714,Hdotbelow:7716,Hmonospace:65320,Hoarmenian:1344,Horicoptic:1e3,Hsmall:63336,Hungarumlaut:63183,Hungarumlautsmall:63224,Hzsquare:13200,I:73,IAcyrillic:1071,IJ:306,IUcyrillic:1070,Iacute:205,Iacutesmall:63469,Ibreve:300,Icaron:463,Icircle:9406,Icircumflex:206,Icircumflexsmall:63470,Icyrillic:1030,Idblgrave:520,Idieresis:207,Idieresisacute:7726,Idieresiscyrillic:1252,Idieresissmall:63471,Idot:304,Idotaccent:304,Idotbelow:7882,Iebrevecyrillic:1238,Iecyrillic:1045,Ifraktur:8465,Igrave:204,Igravesmall:63468,Ihookabove:7880,Iicyrillic:1048,Iinvertedbreve:522,Iishortcyrillic:1049,Imacron:298,Imacroncyrillic:1250,Imonospace:65321,Iniarmenian:1339,Iocyrillic:1025,Iogonek:302,Iota:921,Iotaafrican:406,Iotadieresis:938,Iotatonos:906,Ismall:63337,Istroke:407,Itilde:296,Itildebelow:7724,Izhitsacyrillic:1140,Izhitsadblgravecyrillic:1142,J:74,Jaarmenian:1345,Jcircle:9407,Jcircumflex:308,Jecyrillic:1032,Jheharmenian:1355,Jmonospace:65322,Jsmall:63338,K:75,KBsquare:13189,KKsquare:13261,Kabashkircyrillic:1184,Kacute:7728,Kacyrillic:1050,Kadescendercyrillic:1178,Kahookcyrillic:1219,Kappa:922,Kastrokecyrillic:1182,Kaverticalstrokecyrillic:1180,Kcaron:488,Kcedilla:310,Kcircle:9408,Kcommaaccent:310,Kdotbelow:7730,Keharmenian:1364,Kenarmenian:1343,Khacyrillic:1061,Kheicoptic:998,Khook:408,Kjecyrillic:1036,Klinebelow:7732,Kmonospace:65323,Koppacyrillic:1152,Koppagreek:990,Ksicyrillic:1134,Ksmall:63339,L:76,LJ:455,LL:63167,Lacute:313,Lambda:923,Lcaron:317,Lcedilla:315,Lcircle:9409,Lcircumflexbelow:7740,Lcommaaccent:315,Ldot:319,Ldotaccent:319,Ldotbelow:7734,Ldotbelowmacron:7736,Liwnarmenian:1340,Lj:456,Ljecyrillic:1033,Llinebelow:7738,Lmonospace:65324,Lslash:321,Lslashsmall:63225,Lsmall:63340,M:77,MBsquare:13190,Macron:63184,Macronsmall:63407,Macute:7742,Mcircle:9410,Mdotaccent:7744,Mdotbelow:7746,Menarmenian:1348,Mmonospace:65325,Msmall:63341,Mturned:412,Mu:924,N:78,NJ:458,Nacute:323,Ncaron:327,Ncedilla:325,Ncircle:9411,Ncircumflexbelow:7754,Ncommaaccent:325,Ndotaccent:7748,Ndotbelow:7750,Nhookleft:413,Nineroman:8552,Nj:459,Njecyrillic:1034,Nlinebelow:7752,Nmonospace:65326,Nowarmenian:1350,Nsmall:63342,Ntilde:209,Ntildesmall:63473,Nu:925,O:79,OE:338,OEsmall:63226,Oacute:211,Oacutesmall:63475,Obarredcyrillic:1256,Obarreddieresiscyrillic:1258,Obreve:334,Ocaron:465,Ocenteredtilde:415,Ocircle:9412,Ocircumflex:212,Ocircumflexacute:7888,Ocircumflexdotbelow:7896,Ocircumflexgrave:7890,Ocircumflexhookabove:7892,Ocircumflexsmall:63476,Ocircumflextilde:7894,Ocyrillic:1054,Odblacute:336,Odblgrave:524,Odieresis:214,Odieresiscyrillic:1254,Odieresissmall:63478,Odotbelow:7884,Ogoneksmall:63227,Ograve:210,Ogravesmall:63474,Oharmenian:1365,Ohm:8486,Ohookabove:7886,Ohorn:416,Ohornacute:7898,Ohorndotbelow:7906,Ohorngrave:7900,Ohornhookabove:7902,Ohorntilde:7904,Ohungarumlaut:336,Oi:418,Oinvertedbreve:526,Omacron:332,Omacronacute:7762,Omacrongrave:7760,Omega:8486,Omegacyrillic:1120,Omegagreek:937,Omegaroundcyrillic:1146,Omegatitlocyrillic:1148,Omegatonos:911,Omicron:927,Omicrontonos:908,Omonospace:65327,Oneroman:8544,Oogonek:490,Oogonekmacron:492,Oopen:390,Oslash:216,Oslashacute:510,Oslashsmall:63480,Osmall:63343,Ostrokeacute:510,Otcyrillic:1150,Otilde:213,Otildeacute:7756,Otildedieresis:7758,Otildesmall:63477,P:80,Pacute:7764,Pcircle:9413,Pdotaccent:7766,Pecyrillic:1055,Peharmenian:1354,Pemiddlehookcyrillic:1190,Phi:934,Phook:420,Pi:928,Piwrarmenian:1363,Pmonospace:65328,Psi:936,Psicyrillic:1136,Psmall:63344,Q:81,Qcircle:9414,Qmonospace:65329,Qsmall:63345,R:82,Raarmenian:1356,Racute:340,Rcaron:344,Rcedilla:342,Rcircle:9415,Rcommaaccent:342,Rdblgrave:528,Rdotaccent:7768,Rdotbelow:7770,Rdotbelowmacron:7772,Reharmenian:1360,Rfraktur:8476,Rho:929,Ringsmall:63228,Rinvertedbreve:530,Rlinebelow:7774,Rmonospace:65330,Rsmall:63346,Rsmallinverted:641,Rsmallinvertedsuperior:694,S:83,SF010000:9484,SF020000:9492,SF030000:9488,SF040000:9496,SF050000:9532,SF060000:9516,SF070000:9524,SF080000:9500,SF090000:9508,SF100000:9472,SF110000:9474,SF190000:9569,SF200000:9570,SF210000:9558,SF220000:9557,SF230000:9571,SF240000:9553,SF250000:9559,SF260000:9565,SF270000:9564,SF280000:9563,SF360000:9566,SF370000:9567,SF380000:9562,SF390000:9556,SF400000:9577,SF410000:9574,SF420000:9568,SF430000:9552,SF440000:9580,SF450000:9575,SF460000:9576,SF470000:9572,SF480000:9573,SF490000:9561,SF500000:9560,SF510000:9554,SF520000:9555,SF530000:9579,SF540000:9578,Sacute:346,Sacutedotaccent:7780,Sampigreek:992,Scaron:352,Scarondotaccent:7782,Scaronsmall:63229,Scedilla:350,Schwa:399,Schwacyrillic:1240,Schwadieresiscyrillic:1242,Scircle:9416,Scircumflex:348,Scommaaccent:536,Sdotaccent:7776,Sdotbelow:7778,Sdotbelowdotaccent:7784,Seharmenian:1357,Sevenroman:8550,Shaarmenian:1351,Shacyrillic:1064,Shchacyrillic:1065,Sheicoptic:994,Shhacyrillic:1210,Shimacoptic:1004,Sigma:931,Sixroman:8549,Smonospace:65331,Softsigncyrillic:1068,Ssmall:63347,Stigmagreek:986,T:84,Tau:932,Tbar:358,Tcaron:356,Tcedilla:354,Tcircle:9417,Tcircumflexbelow:7792,Tcommaaccent:354,Tdotaccent:7786,Tdotbelow:7788,Tecyrillic:1058,Tedescendercyrillic:1196,Tenroman:8553,Tetsecyrillic:1204,Theta:920,Thook:428,Thorn:222,Thornsmall:63486,Threeroman:8546,Tildesmall:63230,Tiwnarmenian:1359,Tlinebelow:7790,Tmonospace:65332,Toarmenian:1337,Tonefive:444,Tonesix:388,Tonetwo:423,Tretroflexhook:430,Tsecyrillic:1062,Tshecyrillic:1035,Tsmall:63348,Twelveroman:8555,Tworoman:8545,U:85,Uacute:218,Uacutesmall:63482,Ubreve:364,Ucaron:467,Ucircle:9418,Ucircumflex:219,Ucircumflexbelow:7798,Ucircumflexsmall:63483,Ucyrillic:1059,Udblacute:368,Udblgrave:532,Udieresis:220,Udieresisacute:471,Udieresisbelow:7794,Udieresiscaron:473,Udieresiscyrillic:1264,Udieresisgrave:475,Udieresismacron:469,Udieresissmall:63484,Udotbelow:7908,Ugrave:217,Ugravesmall:63481,Uhookabove:7910,Uhorn:431,Uhornacute:7912,Uhorndotbelow:7920,Uhorngrave:7914,Uhornhookabove:7916,Uhorntilde:7918,Uhungarumlaut:368,Uhungarumlautcyrillic:1266,Uinvertedbreve:534,Ukcyrillic:1144,Umacron:362,Umacroncyrillic:1262,Umacrondieresis:7802,Umonospace:65333,Uogonek:370,Upsilon:933,Upsilon1:978,Upsilonacutehooksymbolgreek:979,Upsilonafrican:433,Upsilondieresis:939,Upsilondieresishooksymbolgreek:980,Upsilonhooksymbol:978,Upsilontonos:910,Uring:366,Ushortcyrillic:1038,Usmall:63349,Ustraightcyrillic:1198,Ustraightstrokecyrillic:1200,Utilde:360,Utildeacute:7800,Utildebelow:7796,V:86,Vcircle:9419,Vdotbelow:7806,Vecyrillic:1042,Vewarmenian:1358,Vhook:434,Vmonospace:65334,Voarmenian:1352,Vsmall:63350,Vtilde:7804,W:87,Wacute:7810,Wcircle:9420,Wcircumflex:372,Wdieresis:7812,Wdotaccent:7814,Wdotbelow:7816,Wgrave:7808,Wmonospace:65335,Wsmall:63351,X:88,Xcircle:9421,Xdieresis:7820,Xdotaccent:7818,Xeharmenian:1341,Xi:926,Xmonospace:65336,Xsmall:63352,Y:89,Yacute:221,Yacutesmall:63485,Yatcyrillic:1122,Ycircle:9422,Ycircumflex:374,Ydieresis:376,Ydieresissmall:63487,Ydotaccent:7822,Ydotbelow:7924,Yericyrillic:1067,Yerudieresiscyrillic:1272,Ygrave:7922,Yhook:435,Yhookabove:7926,Yiarmenian:1349,Yicyrillic:1031,Yiwnarmenian:1362,Ymonospace:65337,Ysmall:63353,Ytilde:7928,Yusbigcyrillic:1130,Yusbigiotifiedcyrillic:1132,Yuslittlecyrillic:1126,Yuslittleiotifiedcyrillic:1128,Z:90,Zaarmenian:1334,Zacute:377,Zcaron:381,Zcaronsmall:63231,Zcircle:9423,Zcircumflex:7824,Zdot:379,Zdotaccent:379,Zdotbelow:7826,Zecyrillic:1047,Zedescendercyrillic:1176,Zedieresiscyrillic:1246,Zeta:918,Zhearmenian:1338,Zhebrevecyrillic:1217,Zhecyrillic:1046,Zhedescendercyrillic:1174,Zhedieresiscyrillic:1244,Zlinebelow:7828,Zmonospace:65338,Zsmall:63354,Zstroke:437,a:97,aabengali:2438,aacute:225,aadeva:2310,aagujarati:2694,aagurmukhi:2566,aamatragurmukhi:2622,aarusquare:13059,aavowelsignbengali:2494,aavowelsigndeva:2366,aavowelsigngujarati:2750,abbreviationmarkarmenian:1375,abbreviationsigndeva:2416,abengali:2437,abopomofo:12570,abreve:259,abreveacute:7855,abrevecyrillic:1233,abrevedotbelow:7863,abrevegrave:7857,abrevehookabove:7859,abrevetilde:7861,acaron:462,acircle:9424,acircumflex:226,acircumflexacute:7845,acircumflexdotbelow:7853,acircumflexgrave:7847,acircumflexhookabove:7849,acircumflextilde:7851,acute:180,acutebelowcmb:791,acutecmb:769,acutecomb:769,acutedeva:2388,acutelowmod:719,acutetonecmb:833,acyrillic:1072,adblgrave:513,addakgurmukhi:2673,adeva:2309,adieresis:228,adieresiscyrillic:1235,adieresismacron:479,adotbelow:7841,adotmacron:481,ae:230,aeacute:509,aekorean:12624,aemacron:483,afii00208:8213,afii08941:8356,afii10017:1040,afii10018:1041,afii10019:1042,afii10020:1043,afii10021:1044,afii10022:1045,afii10023:1025,afii10024:1046,afii10025:1047,afii10026:1048,afii10027:1049,afii10028:1050,afii10029:1051,afii10030:1052,afii10031:1053,afii10032:1054,afii10033:1055,afii10034:1056,afii10035:1057,afii10036:1058,afii10037:1059,afii10038:1060,afii10039:1061,afii10040:1062,afii10041:1063,afii10042:1064,afii10043:1065,afii10044:1066,afii10045:1067,afii10046:1068,afii10047:1069,afii10048:1070,afii10049:1071,afii10050:1168,afii10051:1026,afii10052:1027,afii10053:1028,afii10054:1029,afii10055:1030,afii10056:1031,afii10057:1032,afii10058:1033,afii10059:1034,afii10060:1035,afii10061:1036,afii10062:1038,afii10063:63172,afii10064:63173,afii10065:1072,afii10066:1073,afii10067:1074,afii10068:1075,afii10069:1076,afii10070:1077,afii10071:1105,afii10072:1078,afii10073:1079,afii10074:1080,afii10075:1081,afii10076:1082,afii10077:1083,afii10078:1084,afii10079:1085,afii10080:1086,afii10081:1087,afii10082:1088,afii10083:1089,afii10084:1090,afii10085:1091,afii10086:1092,afii10087:1093,afii10088:1094,afii10089:1095,afii10090:1096,afii10091:1097,afii10092:1098,afii10093:1099,afii10094:1100,afii10095:1101,afii10096:1102,afii10097:1103,afii10098:1169,afii10099:1106,afii10100:1107,afii10101:1108,afii10102:1109,afii10103:1110,afii10104:1111,afii10105:1112,afii10106:1113,afii10107:1114,afii10108:1115,afii10109:1116,afii10110:1118,afii10145:1039,afii10146:1122,afii10147:1138,afii10148:1140,afii10192:63174,afii10193:1119,afii10194:1123,afii10195:1139,afii10196:1141,afii10831:63175,afii10832:63176,afii10846:1241,afii299:8206,afii300:8207,afii301:8205,afii57381:1642,afii57388:1548,afii57392:1632,afii57393:1633,afii57394:1634,afii57395:1635,afii57396:1636,afii57397:1637,afii57398:1638,afii57399:1639,afii57400:1640,afii57401:1641,afii57403:1563,afii57407:1567,afii57409:1569,afii57410:1570,afii57411:1571,afii57412:1572,afii57413:1573,afii57414:1574,afii57415:1575,afii57416:1576,afii57417:1577,afii57418:1578,afii57419:1579,afii57420:1580,afii57421:1581,afii57422:1582,afii57423:1583,afii57424:1584,afii57425:1585,afii57426:1586,afii57427:1587,afii57428:1588,afii57429:1589,afii57430:1590,afii57431:1591,afii57432:1592,afii57433:1593,afii57434:1594,afii57440:1600,afii57441:1601,afii57442:1602,afii57443:1603,afii57444:1604,afii57445:1605,afii57446:1606,afii57448:1608,afii57449:1609,afii57450:1610,afii57451:1611,afii57452:1612,afii57453:1613,afii57454:1614,afii57455:1615,afii57456:1616,afii57457:1617,afii57458:1618,afii57470:1607,afii57505:1700,afii57506:1662,afii57507:1670,afii57508:1688,afii57509:1711,afii57511:1657,afii57512:1672,afii57513:1681,afii57514:1722,afii57519:1746,afii57534:1749,afii57636:8362,afii57645:1470,afii57658:1475,afii57664:1488,afii57665:1489,afii57666:1490,afii57667:1491,afii57668:1492,afii57669:1493,afii57670:1494,afii57671:1495,afii57672:1496,afii57673:1497,afii57674:1498,afii57675:1499,afii57676:1500,afii57677:1501,afii57678:1502,afii57679:1503,afii57680:1504,afii57681:1505,afii57682:1506,afii57683:1507,afii57684:1508,afii57685:1509,afii57686:1510,afii57687:1511,afii57688:1512,afii57689:1513,afii57690:1514,afii57694:64298,afii57695:64299,afii57700:64331,afii57705:64287,afii57716:1520,afii57717:1521,afii57718:1522,afii57723:64309,afii57793:1460,afii57794:1461,afii57795:1462,afii57796:1467,afii57797:1464,afii57798:1463,afii57799:1456,afii57800:1458,afii57801:1457,afii57802:1459,afii57803:1474,afii57804:1473,afii57806:1465,afii57807:1468,afii57839:1469,afii57841:1471,afii57842:1472,afii57929:700,afii61248:8453,afii61289:8467,afii61352:8470,afii61573:8236,afii61574:8237,afii61575:8238,afii61664:8204,afii63167:1645,afii64937:701,agrave:224,agujarati:2693,agurmukhi:2565,ahiragana:12354,ahookabove:7843,aibengali:2448,aibopomofo:12574,aideva:2320,aiecyrillic:1237,aigujarati:2704,aigurmukhi:2576,aimatragurmukhi:2632,ainarabic:1593,ainfinalarabic:65226,aininitialarabic:65227,ainmedialarabic:65228,ainvertedbreve:515,aivowelsignbengali:2504,aivowelsigndeva:2376,aivowelsigngujarati:2760,akatakana:12450,akatakanahalfwidth:65393,akorean:12623,alef:1488,alefarabic:1575,alefdageshhebrew:64304,aleffinalarabic:65166,alefhamzaabovearabic:1571,alefhamzaabovefinalarabic:65156,alefhamzabelowarabic:1573,alefhamzabelowfinalarabic:65160,alefhebrew:1488,aleflamedhebrew:64335,alefmaddaabovearabic:1570,alefmaddaabovefinalarabic:65154,alefmaksuraarabic:1609,alefmaksurafinalarabic:65264,alefmaksurainitialarabic:65267,alefmaksuramedialarabic:65268,alefpatahhebrew:64302,alefqamatshebrew:64303,aleph:8501,allequal:8780,alpha:945,alphatonos:940,amacron:257,amonospace:65345,ampersand:38,ampersandmonospace:65286,ampersandsmall:63270,amsquare:13250,anbopomofo:12578,angbopomofo:12580,angbracketleft:12296,angbracketright:12297,angkhankhuthai:3674,angle:8736,anglebracketleft:12296,anglebracketleftvertical:65087,anglebracketright:12297,anglebracketrightvertical:65088,angleleft:9001,angleright:9002,angstrom:8491,anoteleia:903,anudattadeva:2386,anusvarabengali:2434,anusvaradeva:2306,anusvaragujarati:2690,aogonek:261,apaatosquare:13056,aparen:9372,apostrophearmenian:1370,apostrophemod:700,apple:63743,approaches:8784,approxequal:8776,approxequalorimage:8786,approximatelyequal:8773,araeaekorean:12686,araeakorean:12685,arc:8978,arighthalfring:7834,aring:229,aringacute:507,aringbelow:7681,arrowboth:8596,arrowdashdown:8675,arrowdashleft:8672,arrowdashright:8674,arrowdashup:8673,arrowdblboth:8660,arrowdbldown:8659,arrowdblleft:8656,arrowdblright:8658,arrowdblup:8657,arrowdown:8595,arrowdownleft:8601,arrowdownright:8600,arrowdownwhite:8681,arrowheaddownmod:709,arrowheadleftmod:706,arrowheadrightmod:707,arrowheadupmod:708,arrowhorizex:63719,arrowleft:8592,arrowleftdbl:8656,arrowleftdblstroke:8653,arrowleftoverright:8646,arrowleftwhite:8678,arrowright:8594,arrowrightdblstroke:8655,arrowrightheavy:10142,arrowrightoverleft:8644,arrowrightwhite:8680,arrowtableft:8676,arrowtabright:8677,arrowup:8593,arrowupdn:8597,arrowupdnbse:8616,arrowupdownbase:8616,arrowupleft:8598,arrowupleftofdown:8645,arrowupright:8599,arrowupwhite:8679,arrowvertex:63718,asciicircum:94,asciicircummonospace:65342,asciitilde:126,asciitildemonospace:65374,ascript:593,ascriptturned:594,asmallhiragana:12353,asmallkatakana:12449,asmallkatakanahalfwidth:65383,asterisk:42,asteriskaltonearabic:1645,asteriskarabic:1645,asteriskmath:8727,asteriskmonospace:65290,asterisksmall:65121,asterism:8258,asuperior:63209,asymptoticallyequal:8771,at:64,atilde:227,atmonospace:65312,atsmall:65131,aturned:592,aubengali:2452,aubopomofo:12576,audeva:2324,augujarati:2708,augurmukhi:2580,aulengthmarkbengali:2519,aumatragurmukhi:2636,auvowelsignbengali:2508,auvowelsigndeva:2380,auvowelsigngujarati:2764,avagrahadeva:2365,aybarmenian:1377,ayin:1506,ayinaltonehebrew:64288,ayinhebrew:1506,b:98,babengali:2476,backslash:92,backslashmonospace:65340,badeva:2348,bagujarati:2732,bagurmukhi:2604,bahiragana:12400,bahtthai:3647,bakatakana:12496,bar:124,barmonospace:65372,bbopomofo:12549,bcircle:9425,bdotaccent:7683,bdotbelow:7685,beamedsixteenthnotes:9836,because:8757,becyrillic:1073,beharabic:1576,behfinalarabic:65168,behinitialarabic:65169,behiragana:12409,behmedialarabic:65170,behmeeminitialarabic:64671,behmeemisolatedarabic:64520,behnoonfinalarabic:64621,bekatakana:12505,benarmenian:1378,bet:1489,beta:946,betasymbolgreek:976,betdagesh:64305,betdageshhebrew:64305,bethebrew:1489,betrafehebrew:64332,bhabengali:2477,bhadeva:2349,bhagujarati:2733,bhagurmukhi:2605,bhook:595,bihiragana:12403,bikatakana:12499,bilabialclick:664,bindigurmukhi:2562,birusquare:13105,blackcircle:9679,blackdiamond:9670,blackdownpointingtriangle:9660,blackleftpointingpointer:9668,blackleftpointingtriangle:9664,blacklenticularbracketleft:12304,blacklenticularbracketleftvertical:65083,blacklenticularbracketright:12305,blacklenticularbracketrightvertical:65084,blacklowerlefttriangle:9699,blacklowerrighttriangle:9698,blackrectangle:9644,blackrightpointingpointer:9658,blackrightpointingtriangle:9654,blacksmallsquare:9642,blacksmilingface:9787,blacksquare:9632,blackstar:9733,blackupperlefttriangle:9700,blackupperrighttriangle:9701,blackuppointingsmalltriangle:9652,blackuppointingtriangle:9650,blank:9251,blinebelow:7687,block:9608,bmonospace:65346,bobaimaithai:3610,bohiragana:12412,bokatakana:12508,bparen:9373,bqsquare:13251,braceex:63732,braceleft:123,braceleftbt:63731,braceleftmid:63730,braceleftmonospace:65371,braceleftsmall:65115,bracelefttp:63729,braceleftvertical:65079,braceright:125,bracerightbt:63742,bracerightmid:63741,bracerightmonospace:65373,bracerightsmall:65116,bracerighttp:63740,bracerightvertical:65080,bracketleft:91,bracketleftbt:63728,bracketleftex:63727,bracketleftmonospace:65339,bracketlefttp:63726,bracketright:93,bracketrightbt:63739,bracketrightex:63738,bracketrightmonospace:65341,bracketrighttp:63737,breve:728,brevebelowcmb:814,brevecmb:774,breveinvertedbelowcmb:815,breveinvertedcmb:785,breveinverteddoublecmb:865,bridgebelowcmb:810,bridgeinvertedbelowcmb:826,brokenbar:166,bstroke:384,bsuperior:63210,btopbar:387,buhiragana:12406,bukatakana:12502,bullet:8226,bulletinverse:9688,bulletoperator:8729,bullseye:9678,c:99,caarmenian:1390,cabengali:2458,cacute:263,cadeva:2330,cagujarati:2714,cagurmukhi:2586,calsquare:13192,candrabindubengali:2433,candrabinducmb:784,candrabindudeva:2305,candrabindugujarati:2689,capslock:8682,careof:8453,caron:711,caronbelowcmb:812,caroncmb:780,carriagereturn:8629,cbopomofo:12568,ccaron:269,ccedilla:231,ccedillaacute:7689,ccircle:9426,ccircumflex:265,ccurl:597,cdot:267,cdotaccent:267,cdsquare:13253,cedilla:184,cedillacmb:807,cent:162,centigrade:8451,centinferior:63199,centmonospace:65504,centoldstyle:63394,centsuperior:63200,chaarmenian:1401,chabengali:2459,chadeva:2331,chagujarati:2715,chagurmukhi:2587,chbopomofo:12564,cheabkhasiancyrillic:1213,checkmark:10003,checyrillic:1095,chedescenderabkhasiancyrillic:1215,chedescendercyrillic:1207,chedieresiscyrillic:1269,cheharmenian:1395,chekhakassiancyrillic:1228,cheverticalstrokecyrillic:1209,chi:967,chieuchacirclekorean:12919,chieuchaparenkorean:12823,chieuchcirclekorean:12905,chieuchkorean:12618,chieuchparenkorean:12809,chochangthai:3594,chochanthai:3592,chochingthai:3593,chochoethai:3596,chook:392,cieucacirclekorean:12918,cieucaparenkorean:12822,cieuccirclekorean:12904,cieuckorean:12616,cieucparenkorean:12808,cieucuparenkorean:12828,circle:9675,circlecopyrt:169,circlemultiply:8855,circleot:8857,circleplus:8853,circlepostalmark:12342,circlewithlefthalfblack:9680,circlewithrighthalfblack:9681,circumflex:710,circumflexbelowcmb:813,circumflexcmb:770,clear:8999,clickalveolar:450,clickdental:448,clicklateral:449,clickretroflex:451,club:9827,clubsuitblack:9827,clubsuitwhite:9831,cmcubedsquare:13220,cmonospace:65347,cmsquaredsquare:13216,coarmenian:1409,colon:58,colonmonetary:8353,colonmonospace:65306,colonsign:8353,colonsmall:65109,colontriangularhalfmod:721,colontriangularmod:720,comma:44,commaabovecmb:787,commaaboverightcmb:789,commaaccent:63171,commaarabic:1548,commaarmenian:1373,commainferior:63201,commamonospace:65292,commareversedabovecmb:788,commareversedmod:701,commasmall:65104,commasuperior:63202,commaturnedabovecmb:786,commaturnedmod:699,compass:9788,congruent:8773,contourintegral:8750,control:8963,controlACK:6,controlBEL:7,controlBS:8,controlCAN:24,controlCR:13,controlDC1:17,controlDC2:18,controlDC3:19,controlDC4:20,controlDEL:127,controlDLE:16,controlEM:25,controlENQ:5,controlEOT:4,controlESC:27,controlETB:23,controlETX:3,controlFF:12,controlFS:28,controlGS:29,controlHT:9,controlLF:10,controlNAK:21,controlRS:30,controlSI:15,controlSO:14,controlSOT:2,controlSTX:1,controlSUB:26,controlSYN:22,controlUS:31,controlVT:11,copyright:169,copyrightsans:63721,copyrightserif:63193,cornerbracketleft:12300,cornerbracketlefthalfwidth:65378,cornerbracketleftvertical:65089,cornerbracketright:12301,cornerbracketrighthalfwidth:65379,cornerbracketrightvertical:65090,corporationsquare:13183,cosquare:13255,coverkgsquare:13254,cparen:9374,cruzeiro:8354,cstretched:663,curlyand:8911,curlyor:8910,currency:164,cyrBreve:63185,cyrFlex:63186,cyrbreve:63188,cyrflex:63189,d:100,daarmenian:1380,dabengali:2470,dadarabic:1590,dadeva:2342,dadfinalarabic:65214,dadinitialarabic:65215,dadmedialarabic:65216,dagesh:1468,dageshhebrew:1468,dagger:8224,daggerdbl:8225,dagujarati:2726,dagurmukhi:2598,dahiragana:12384,dakatakana:12480,dalarabic:1583,dalet:1491,daletdagesh:64307,daletdageshhebrew:64307,dalethebrew:1491,dalfinalarabic:65194,dammaarabic:1615,dammalowarabic:1615,dammatanaltonearabic:1612,dammatanarabic:1612,danda:2404,dargahebrew:1447,dargalefthebrew:1447,dasiapneumatacyrilliccmb:1157,dblGrave:63187,dblanglebracketleft:12298,dblanglebracketleftvertical:65085,dblanglebracketright:12299,dblanglebracketrightvertical:65086,dblarchinvertedbelowcmb:811,dblarrowleft:8660,dblarrowright:8658,dbldanda:2405,dblgrave:63190,dblgravecmb:783,dblintegral:8748,dbllowline:8215,dbllowlinecmb:819,dbloverlinecmb:831,dblprimemod:698,dblverticalbar:8214,dblverticallineabovecmb:782,dbopomofo:12553,dbsquare:13256,dcaron:271,dcedilla:7697,dcircle:9427,dcircumflexbelow:7699,dcroat:273,ddabengali:2465,ddadeva:2337,ddagujarati:2721,ddagurmukhi:2593,ddalarabic:1672,ddalfinalarabic:64393,dddhadeva:2396,ddhabengali:2466,ddhadeva:2338,ddhagujarati:2722,ddhagurmukhi:2594,ddotaccent:7691,ddotbelow:7693,decimalseparatorarabic:1643,decimalseparatorpersian:1643,decyrillic:1076,degree:176,dehihebrew:1453,dehiragana:12391,deicoptic:1007,dekatakana:12487,deleteleft:9003,deleteright:8998,delta:948,deltaturned:397,denominatorminusonenumeratorbengali:2552,dezh:676,dhabengali:2471,dhadeva:2343,dhagujarati:2727,dhagurmukhi:2599,dhook:599,dialytikatonos:901,dialytikatonoscmb:836,diamond:9830,diamondsuitwhite:9826,dieresis:168,dieresisacute:63191,dieresisbelowcmb:804,dieresiscmb:776,dieresisgrave:63192,dieresistonos:901,dihiragana:12386,dikatakana:12482,dittomark:12291,divide:247,divides:8739,divisionslash:8725,djecyrillic:1106,dkshade:9619,dlinebelow:7695,dlsquare:13207,dmacron:273,dmonospace:65348,dnblock:9604,dochadathai:3598,dodekthai:3604,dohiragana:12393,dokatakana:12489,dollar:36,dollarinferior:63203,dollarmonospace:65284,dollaroldstyle:63268,dollarsmall:65129,dollarsuperior:63204,dong:8363,dorusquare:13094,dotaccent:729,dotaccentcmb:775,dotbelowcmb:803,dotbelowcomb:803,dotkatakana:12539,dotlessi:305,dotlessj:63166,dotlessjstrokehook:644,dotmath:8901,dottedcircle:9676,doubleyodpatah:64287,doubleyodpatahhebrew:64287,downtackbelowcmb:798,downtackmod:725,dparen:9375,dsuperior:63211,dtail:598,dtopbar:396,duhiragana:12389,dukatakana:12485,dz:499,dzaltone:675,dzcaron:454,dzcurl:677,dzeabkhasiancyrillic:1249,dzecyrillic:1109,dzhecyrillic:1119,e:101,eacute:233,earth:9793,ebengali:2447,ebopomofo:12572,ebreve:277,ecandradeva:2317,ecandragujarati:2701,ecandravowelsigndeva:2373,ecandravowelsigngujarati:2757,ecaron:283,ecedillabreve:7709,echarmenian:1381,echyiwnarmenian:1415,ecircle:9428,ecircumflex:234,ecircumflexacute:7871,ecircumflexbelow:7705,ecircumflexdotbelow:7879,ecircumflexgrave:7873,ecircumflexhookabove:7875,ecircumflextilde:7877,ecyrillic:1108,edblgrave:517,edeva:2319,edieresis:235,edot:279,edotaccent:279,edotbelow:7865,eegurmukhi:2575,eematragurmukhi:2631,efcyrillic:1092,egrave:232,egujarati:2703,eharmenian:1383,ehbopomofo:12573,ehiragana:12360,ehookabove:7867,eibopomofo:12575,eight:56,eightarabic:1640,eightbengali:2542,eightcircle:9319,eightcircleinversesansserif:10129,eightdeva:2414,eighteencircle:9329,eighteenparen:9349,eighteenperiod:9369,eightgujarati:2798,eightgurmukhi:2670,eighthackarabic:1640,eighthangzhou:12328,eighthnotebeamed:9835,eightideographicparen:12839,eightinferior:8328,eightmonospace:65304,eightoldstyle:63288,eightparen:9339,eightperiod:9359,eightpersian:1784,eightroman:8567,eightsuperior:8312,eightthai:3672,einvertedbreve:519,eiotifiedcyrillic:1125,ekatakana:12456,ekatakanahalfwidth:65396,ekonkargurmukhi:2676,ekorean:12628,elcyrillic:1083,element:8712,elevencircle:9322,elevenparen:9342,elevenperiod:9362,elevenroman:8570,ellipsis:8230,ellipsisvertical:8942,emacron:275,emacronacute:7703,emacrongrave:7701,emcyrillic:1084,emdash:8212,emdashvertical:65073,emonospace:65349,emphasismarkarmenian:1371,emptyset:8709,enbopomofo:12579,encyrillic:1085,endash:8211,endashvertical:65074,endescendercyrillic:1187,eng:331,engbopomofo:12581,enghecyrillic:1189,enhookcyrillic:1224,enspace:8194,eogonek:281,eokorean:12627,eopen:603,eopenclosed:666,eopenreversed:604,eopenreversedclosed:606,eopenreversedhook:605,eparen:9376,epsilon:949,epsilontonos:941,equal:61,equalmonospace:65309,equalsmall:65126,equalsuperior:8316,equivalence:8801,erbopomofo:12582,ercyrillic:1088,ereversed:600,ereversedcyrillic:1101,escyrillic:1089,esdescendercyrillic:1195,esh:643,eshcurl:646,eshortdeva:2318,eshortvowelsigndeva:2374,eshreversedloop:426,eshsquatreversed:645,esmallhiragana:12359,esmallkatakana:12455,esmallkatakanahalfwidth:65386,estimated:8494,esuperior:63212,eta:951,etarmenian:1384,etatonos:942,eth:240,etilde:7869,etildebelow:7707,etnahtafoukhhebrew:1425,etnahtafoukhlefthebrew:1425,etnahtahebrew:1425,etnahtalefthebrew:1425,eturned:477,eukorean:12641,euro:8364,evowelsignbengali:2503,evowelsigndeva:2375,evowelsigngujarati:2759,exclam:33,exclamarmenian:1372,exclamdbl:8252,exclamdown:161,exclamdownsmall:63393,exclammonospace:65281,exclamsmall:63265,existential:8707,ezh:658,ezhcaron:495,ezhcurl:659,ezhreversed:441,ezhtail:442,f:102,fadeva:2398,fagurmukhi:2654,fahrenheit:8457,fathaarabic:1614,fathalowarabic:1614,fathatanarabic:1611,fbopomofo:12552,fcircle:9429,fdotaccent:7711,feharabic:1601,feharmenian:1414,fehfinalarabic:65234,fehinitialarabic:65235,fehmedialarabic:65236,feicoptic:997,female:9792,ff:64256,ffi:64259,ffl:64260,fi:64257,fifteencircle:9326,fifteenparen:9346,fifteenperiod:9366,figuredash:8210,filledbox:9632,filledrect:9644,finalkaf:1498,finalkafdagesh:64314,finalkafdageshhebrew:64314,finalkafhebrew:1498,finalmem:1501,finalmemhebrew:1501,finalnun:1503,finalnunhebrew:1503,finalpe:1507,finalpehebrew:1507,finaltsadi:1509,finaltsadihebrew:1509,firsttonechinese:713,fisheye:9673,fitacyrillic:1139,five:53,fivearabic:1637,fivebengali:2539,fivecircle:9316,fivecircleinversesansserif:10126,fivedeva:2411,fiveeighths:8541,fivegujarati:2795,fivegurmukhi:2667,fivehackarabic:1637,fivehangzhou:12325,fiveideographicparen:12836,fiveinferior:8325,fivemonospace:65301,fiveoldstyle:63285,fiveparen:9336,fiveperiod:9356,fivepersian:1781,fiveroman:8564,fivesuperior:8309,fivethai:3669,fl:64258,florin:402,fmonospace:65350,fmsquare:13209,fofanthai:3615,fofathai:3613,fongmanthai:3663,forall:8704,four:52,fourarabic:1636,fourbengali:2538,fourcircle:9315,fourcircleinversesansserif:10125,fourdeva:2410,fourgujarati:2794,fourgurmukhi:2666,fourhackarabic:1636,fourhangzhou:12324,fourideographicparen:12835,fourinferior:8324,fourmonospace:65300,fournumeratorbengali:2551,fouroldstyle:63284,fourparen:9335,fourperiod:9355,fourpersian:1780,fourroman:8563,foursuperior:8308,fourteencircle:9325,fourteenparen:9345,fourteenperiod:9365,fourthai:3668,fourthtonechinese:715,fparen:9377,fraction:8260,franc:8355,g:103,gabengali:2455,gacute:501,gadeva:2327,gafarabic:1711,gaffinalarabic:64403,gafinitialarabic:64404,gafmedialarabic:64405,gagujarati:2711,gagurmukhi:2583,gahiragana:12364,gakatakana:12460,gamma:947,gammalatinsmall:611,gammasuperior:736,gangiacoptic:1003,gbopomofo:12557,gbreve:287,gcaron:487,gcedilla:291,gcircle:9430,gcircumflex:285,gcommaaccent:291,gdot:289,gdotaccent:289,gecyrillic:1075,gehiragana:12370,gekatakana:12466,geometricallyequal:8785,gereshaccenthebrew:1436,gereshhebrew:1523,gereshmuqdamhebrew:1437,germandbls:223,gershayimaccenthebrew:1438,gershayimhebrew:1524,getamark:12307,ghabengali:2456,ghadarmenian:1394,ghadeva:2328,ghagujarati:2712,ghagurmukhi:2584,ghainarabic:1594,ghainfinalarabic:65230,ghaininitialarabic:65231,ghainmedialarabic:65232,ghemiddlehookcyrillic:1173,ghestrokecyrillic:1171,gheupturncyrillic:1169,ghhadeva:2394,ghhagurmukhi:2650,ghook:608,ghzsquare:13203,gihiragana:12366,gikatakana:12462,gimarmenian:1379,gimel:1490,gimeldagesh:64306,gimeldageshhebrew:64306,gimelhebrew:1490,gjecyrillic:1107,glottalinvertedstroke:446,glottalstop:660,glottalstopinverted:662,glottalstopmod:704,glottalstopreversed:661,glottalstopreversedmod:705,glottalstopreversedsuperior:740,glottalstopstroke:673,glottalstopstrokereversed:674,gmacron:7713,gmonospace:65351,gohiragana:12372,gokatakana:12468,gparen:9378,gpasquare:13228,gradient:8711,grave:96,gravebelowcmb:790,gravecmb:768,gravecomb:768,gravedeva:2387,gravelowmod:718,gravemonospace:65344,gravetonecmb:832,greater:62,greaterequal:8805,greaterequalorless:8923,greatermonospace:65310,greaterorequivalent:8819,greaterorless:8823,greateroverequal:8807,greatersmall:65125,gscript:609,gstroke:485,guhiragana:12368,guillemotleft:171,guillemotright:187,guilsinglleft:8249,guilsinglright:8250,gukatakana:12464,guramusquare:13080,gysquare:13257,h:104,haabkhasiancyrillic:1193,haaltonearabic:1729,habengali:2489,hadescendercyrillic:1203,hadeva:2361,hagujarati:2745,hagurmukhi:2617,haharabic:1581,hahfinalarabic:65186,hahinitialarabic:65187,hahiragana:12399,hahmedialarabic:65188,haitusquare:13098,hakatakana:12495,hakatakanahalfwidth:65418,halantgurmukhi:2637,hamzaarabic:1569,hamzalowarabic:1569,hangulfiller:12644,hardsigncyrillic:1098,harpoonleftbarbup:8636,harpoonrightbarbup:8640,hasquare:13258,hatafpatah:1458,hatafpatah16:1458,hatafpatah23:1458,hatafpatah2f:1458, +hatafpatahhebrew:1458,hatafpatahnarrowhebrew:1458,hatafpatahquarterhebrew:1458,hatafpatahwidehebrew:1458,hatafqamats:1459,hatafqamats1b:1459,hatafqamats28:1459,hatafqamats34:1459,hatafqamatshebrew:1459,hatafqamatsnarrowhebrew:1459,hatafqamatsquarterhebrew:1459,hatafqamatswidehebrew:1459,hatafsegol:1457,hatafsegol17:1457,hatafsegol24:1457,hatafsegol30:1457,hatafsegolhebrew:1457,hatafsegolnarrowhebrew:1457,hatafsegolquarterhebrew:1457,hatafsegolwidehebrew:1457,hbar:295,hbopomofo:12559,hbrevebelow:7723,hcedilla:7721,hcircle:9431,hcircumflex:293,hdieresis:7719,hdotaccent:7715,hdotbelow:7717,he:1492,heart:9829,heartsuitblack:9829,heartsuitwhite:9825,hedagesh:64308,hedageshhebrew:64308,hehaltonearabic:1729,heharabic:1607,hehebrew:1492,hehfinalaltonearabic:64423,hehfinalalttwoarabic:65258,hehfinalarabic:65258,hehhamzaabovefinalarabic:64421,hehhamzaaboveisolatedarabic:64420,hehinitialaltonearabic:64424,hehinitialarabic:65259,hehiragana:12408,hehmedialaltonearabic:64425,hehmedialarabic:65260,heiseierasquare:13179,hekatakana:12504,hekatakanahalfwidth:65421,hekutaarusquare:13110,henghook:615,herutusquare:13113,het:1495,hethebrew:1495,hhook:614,hhooksuperior:689,hieuhacirclekorean:12923,hieuhaparenkorean:12827,hieuhcirclekorean:12909,hieuhkorean:12622,hieuhparenkorean:12813,hihiragana:12402,hikatakana:12498,hikatakanahalfwidth:65419,hiriq:1460,hiriq14:1460,hiriq21:1460,hiriq2d:1460,hiriqhebrew:1460,hiriqnarrowhebrew:1460,hiriqquarterhebrew:1460,hiriqwidehebrew:1460,hlinebelow:7830,hmonospace:65352,hoarmenian:1392,hohipthai:3627,hohiragana:12411,hokatakana:12507,hokatakanahalfwidth:65422,holam:1465,holam19:1465,holam26:1465,holam32:1465,holamhebrew:1465,holamnarrowhebrew:1465,holamquarterhebrew:1465,holamwidehebrew:1465,honokhukthai:3630,hookabovecomb:777,hookcmb:777,hookpalatalizedbelowcmb:801,hookretroflexbelowcmb:802,hoonsquare:13122,horicoptic:1001,horizontalbar:8213,horncmb:795,hotsprings:9832,house:8962,hparen:9379,hsuperior:688,hturned:613,huhiragana:12405,huiitosquare:13107,hukatakana:12501,hukatakanahalfwidth:65420,hungarumlaut:733,hungarumlautcmb:779,hv:405,hyphen:45,hypheninferior:63205,hyphenmonospace:65293,hyphensmall:65123,hyphensuperior:63206,hyphentwo:8208,i:105,iacute:237,iacyrillic:1103,ibengali:2439,ibopomofo:12583,ibreve:301,icaron:464,icircle:9432,icircumflex:238,icyrillic:1110,idblgrave:521,ideographearthcircle:12943,ideographfirecircle:12939,ideographicallianceparen:12863,ideographiccallparen:12858,ideographiccentrecircle:12965,ideographicclose:12294,ideographiccomma:12289,ideographiccommaleft:65380,ideographiccongratulationparen:12855,ideographiccorrectcircle:12963,ideographicearthparen:12847,ideographicenterpriseparen:12861,ideographicexcellentcircle:12957,ideographicfestivalparen:12864,ideographicfinancialcircle:12950,ideographicfinancialparen:12854,ideographicfireparen:12843,ideographichaveparen:12850,ideographichighcircle:12964,ideographiciterationmark:12293,ideographiclaborcircle:12952,ideographiclaborparen:12856,ideographicleftcircle:12967,ideographiclowcircle:12966,ideographicmedicinecircle:12969,ideographicmetalparen:12846,ideographicmoonparen:12842,ideographicnameparen:12852,ideographicperiod:12290,ideographicprintcircle:12958,ideographicreachparen:12867,ideographicrepresentparen:12857,ideographicresourceparen:12862,ideographicrightcircle:12968,ideographicsecretcircle:12953,ideographicselfparen:12866,ideographicsocietyparen:12851,ideographicspace:12288,ideographicspecialparen:12853,ideographicstockparen:12849,ideographicstudyparen:12859,ideographicsunparen:12848,ideographicsuperviseparen:12860,ideographicwaterparen:12844,ideographicwoodparen:12845,ideographiczero:12295,ideographmetalcircle:12942,ideographmooncircle:12938,ideographnamecircle:12948,ideographsuncircle:12944,ideographwatercircle:12940,ideographwoodcircle:12941,ideva:2311,idieresis:239,idieresisacute:7727,idieresiscyrillic:1253,idotbelow:7883,iebrevecyrillic:1239,iecyrillic:1077,ieungacirclekorean:12917,ieungaparenkorean:12821,ieungcirclekorean:12903,ieungkorean:12615,ieungparenkorean:12807,igrave:236,igujarati:2695,igurmukhi:2567,ihiragana:12356,ihookabove:7881,iibengali:2440,iicyrillic:1080,iideva:2312,iigujarati:2696,iigurmukhi:2568,iimatragurmukhi:2624,iinvertedbreve:523,iishortcyrillic:1081,iivowelsignbengali:2496,iivowelsigndeva:2368,iivowelsigngujarati:2752,ij:307,ikatakana:12452,ikatakanahalfwidth:65394,ikorean:12643,ilde:732,iluyhebrew:1452,imacron:299,imacroncyrillic:1251,imageorapproximatelyequal:8787,imatragurmukhi:2623,imonospace:65353,increment:8710,infinity:8734,iniarmenian:1387,integral:8747,integralbottom:8993,integralbt:8993,integralex:63733,integraltop:8992,integraltp:8992,intersection:8745,intisquare:13061,invbullet:9688,invcircle:9689,invsmileface:9787,iocyrillic:1105,iogonek:303,iota:953,iotadieresis:970,iotadieresistonos:912,iotalatin:617,iotatonos:943,iparen:9380,irigurmukhi:2674,ismallhiragana:12355,ismallkatakana:12451,ismallkatakanahalfwidth:65384,issharbengali:2554,istroke:616,isuperior:63213,iterationhiragana:12445,iterationkatakana:12541,itilde:297,itildebelow:7725,iubopomofo:12585,iucyrillic:1102,ivowelsignbengali:2495,ivowelsigndeva:2367,ivowelsigngujarati:2751,izhitsacyrillic:1141,izhitsadblgravecyrillic:1143,j:106,jaarmenian:1393,jabengali:2460,jadeva:2332,jagujarati:2716,jagurmukhi:2588,jbopomofo:12560,jcaron:496,jcircle:9433,jcircumflex:309,jcrossedtail:669,jdotlessstroke:607,jecyrillic:1112,jeemarabic:1580,jeemfinalarabic:65182,jeeminitialarabic:65183,jeemmedialarabic:65184,jeharabic:1688,jehfinalarabic:64395,jhabengali:2461,jhadeva:2333,jhagujarati:2717,jhagurmukhi:2589,jheharmenian:1403,jis:12292,jmonospace:65354,jparen:9381,jsuperior:690,k:107,kabashkircyrillic:1185,kabengali:2453,kacute:7729,kacyrillic:1082,kadescendercyrillic:1179,kadeva:2325,kaf:1499,kafarabic:1603,kafdagesh:64315,kafdageshhebrew:64315,kaffinalarabic:65242,kafhebrew:1499,kafinitialarabic:65243,kafmedialarabic:65244,kafrafehebrew:64333,kagujarati:2709,kagurmukhi:2581,kahiragana:12363,kahookcyrillic:1220,kakatakana:12459,kakatakanahalfwidth:65398,kappa:954,kappasymbolgreek:1008,kapyeounmieumkorean:12657,kapyeounphieuphkorean:12676,kapyeounpieupkorean:12664,kapyeounssangpieupkorean:12665,karoriisquare:13069,kashidaautoarabic:1600,kashidaautonosidebearingarabic:1600,kasmallkatakana:12533,kasquare:13188,kasraarabic:1616,kasratanarabic:1613,kastrokecyrillic:1183,katahiraprolongmarkhalfwidth:65392,kaverticalstrokecyrillic:1181,kbopomofo:12558,kcalsquare:13193,kcaron:489,kcedilla:311,kcircle:9434,kcommaaccent:311,kdotbelow:7731,keharmenian:1412,kehiragana:12369,kekatakana:12465,kekatakanahalfwidth:65401,kenarmenian:1391,kesmallkatakana:12534,kgreenlandic:312,khabengali:2454,khacyrillic:1093,khadeva:2326,khagujarati:2710,khagurmukhi:2582,khaharabic:1582,khahfinalarabic:65190,khahinitialarabic:65191,khahmedialarabic:65192,kheicoptic:999,khhadeva:2393,khhagurmukhi:2649,khieukhacirclekorean:12920,khieukhaparenkorean:12824,khieukhcirclekorean:12906,khieukhkorean:12619,khieukhparenkorean:12810,khokhaithai:3586,khokhonthai:3589,khokhuatthai:3587,khokhwaithai:3588,khomutthai:3675,khook:409,khorakhangthai:3590,khzsquare:13201,kihiragana:12365,kikatakana:12461,kikatakanahalfwidth:65399,kiroguramusquare:13077,kiromeetorusquare:13078,kirosquare:13076,kiyeokacirclekorean:12910,kiyeokaparenkorean:12814,kiyeokcirclekorean:12896,kiyeokkorean:12593,kiyeokparenkorean:12800,kiyeoksioskorean:12595,kjecyrillic:1116,klinebelow:7733,klsquare:13208,kmcubedsquare:13222,kmonospace:65355,kmsquaredsquare:13218,kohiragana:12371,kohmsquare:13248,kokaithai:3585,kokatakana:12467,kokatakanahalfwidth:65402,kooposquare:13086,koppacyrillic:1153,koreanstandardsymbol:12927,koroniscmb:835,kparen:9382,kpasquare:13226,ksicyrillic:1135,ktsquare:13263,kturned:670,kuhiragana:12367,kukatakana:12463,kukatakanahalfwidth:65400,kvsquare:13240,kwsquare:13246,l:108,labengali:2482,lacute:314,ladeva:2354,lagujarati:2738,lagurmukhi:2610,lakkhangyaothai:3653,lamaleffinalarabic:65276,lamalefhamzaabovefinalarabic:65272,lamalefhamzaaboveisolatedarabic:65271,lamalefhamzabelowfinalarabic:65274,lamalefhamzabelowisolatedarabic:65273,lamalefisolatedarabic:65275,lamalefmaddaabovefinalarabic:65270,lamalefmaddaaboveisolatedarabic:65269,lamarabic:1604,lambda:955,lambdastroke:411,lamed:1500,lameddagesh:64316,lameddageshhebrew:64316,lamedhebrew:1500,lamfinalarabic:65246,lamhahinitialarabic:64714,laminitialarabic:65247,lamjeeminitialarabic:64713,lamkhahinitialarabic:64715,lamlamhehisolatedarabic:65010,lammedialarabic:65248,lammeemhahinitialarabic:64904,lammeeminitialarabic:64716,largecircle:9711,lbar:410,lbelt:620,lbopomofo:12556,lcaron:318,lcedilla:316,lcircle:9435,lcircumflexbelow:7741,lcommaaccent:316,ldot:320,ldotaccent:320,ldotbelow:7735,ldotbelowmacron:7737,leftangleabovecmb:794,lefttackbelowcmb:792,less:60,lessequal:8804,lessequalorgreater:8922,lessmonospace:65308,lessorequivalent:8818,lessorgreater:8822,lessoverequal:8806,lesssmall:65124,lezh:622,lfblock:9612,lhookretroflex:621,lira:8356,liwnarmenian:1388,lj:457,ljecyrillic:1113,ll:63168,lladeva:2355,llagujarati:2739,llinebelow:7739,llladeva:2356,llvocalicbengali:2529,llvocalicdeva:2401,llvocalicvowelsignbengali:2531,llvocalicvowelsigndeva:2403,lmiddletilde:619,lmonospace:65356,lmsquare:13264,lochulathai:3628,logicaland:8743,logicalnot:172,logicalnotreversed:8976,logicalor:8744,lolingthai:3621,longs:383,lowlinecenterline:65102,lowlinecmb:818,lowlinedashed:65101,lozenge:9674,lparen:9383,lslash:322,lsquare:8467,lsuperior:63214,ltshade:9617,luthai:3622,lvocalicbengali:2444,lvocalicdeva:2316,lvocalicvowelsignbengali:2530,lvocalicvowelsigndeva:2402,lxsquare:13267,m:109,mabengali:2478,macron:175,macronbelowcmb:817,macroncmb:772,macronlowmod:717,macronmonospace:65507,macute:7743,madeva:2350,magujarati:2734,magurmukhi:2606,mahapakhhebrew:1444,mahapakhlefthebrew:1444,mahiragana:12414,maichattawalowleftthai:63637,maichattawalowrightthai:63636,maichattawathai:3659,maichattawaupperleftthai:63635,maieklowleftthai:63628,maieklowrightthai:63627,maiekthai:3656,maiekupperleftthai:63626,maihanakatleftthai:63620,maihanakatthai:3633,maitaikhuleftthai:63625,maitaikhuthai:3655,maitholowleftthai:63631,maitholowrightthai:63630,maithothai:3657,maithoupperleftthai:63629,maitrilowleftthai:63634,maitrilowrightthai:63633,maitrithai:3658,maitriupperleftthai:63632,maiyamokthai:3654,makatakana:12510,makatakanahalfwidth:65423,male:9794,mansyonsquare:13127,maqafhebrew:1470,mars:9794,masoracirclehebrew:1455,masquare:13187,mbopomofo:12551,mbsquare:13268,mcircle:9436,mcubedsquare:13221,mdotaccent:7745,mdotbelow:7747,meemarabic:1605,meemfinalarabic:65250,meeminitialarabic:65251,meemmedialarabic:65252,meemmeeminitialarabic:64721,meemmeemisolatedarabic:64584,meetorusquare:13133,mehiragana:12417,meizierasquare:13182,mekatakana:12513,mekatakanahalfwidth:65426,mem:1502,memdagesh:64318,memdageshhebrew:64318,memhebrew:1502,menarmenian:1396,merkhahebrew:1445,merkhakefulahebrew:1446,merkhakefulalefthebrew:1446,merkhalefthebrew:1445,mhook:625,mhzsquare:13202,middledotkatakanahalfwidth:65381,middot:183,mieumacirclekorean:12914,mieumaparenkorean:12818,mieumcirclekorean:12900,mieumkorean:12609,mieumpansioskorean:12656,mieumparenkorean:12804,mieumpieupkorean:12654,mieumsioskorean:12655,mihiragana:12415,mikatakana:12511,mikatakanahalfwidth:65424,minus:8722,minusbelowcmb:800,minuscircle:8854,minusmod:727,minusplus:8723,minute:8242,miribaarusquare:13130,mirisquare:13129,mlonglegturned:624,mlsquare:13206,mmcubedsquare:13219,mmonospace:65357,mmsquaredsquare:13215,mohiragana:12418,mohmsquare:13249,mokatakana:12514,mokatakanahalfwidth:65427,molsquare:13270,momathai:3617,moverssquare:13223,moverssquaredsquare:13224,mparen:9384,mpasquare:13227,mssquare:13235,msuperior:63215,mturned:623,mu:181,mu1:181,muasquare:13186,muchgreater:8811,muchless:8810,mufsquare:13196,mugreek:956,mugsquare:13197,muhiragana:12416,mukatakana:12512,mukatakanahalfwidth:65425,mulsquare:13205,multiply:215,mumsquare:13211,munahhebrew:1443,munahlefthebrew:1443,musicalnote:9834,musicalnotedbl:9835,musicflatsign:9837,musicsharpsign:9839,mussquare:13234,muvsquare:13238,muwsquare:13244,mvmegasquare:13241,mvsquare:13239,mwmegasquare:13247,mwsquare:13245,n:110,nabengali:2472,nabla:8711,nacute:324,nadeva:2344,nagujarati:2728,nagurmukhi:2600,nahiragana:12394,nakatakana:12490,nakatakanahalfwidth:65413,napostrophe:329,nasquare:13185,nbopomofo:12555,nbspace:160,ncaron:328,ncedilla:326,ncircle:9437,ncircumflexbelow:7755,ncommaaccent:326,ndotaccent:7749,ndotbelow:7751,nehiragana:12397,nekatakana:12493,nekatakanahalfwidth:65416,newsheqelsign:8362,nfsquare:13195,ngabengali:2457,ngadeva:2329,ngagujarati:2713,ngagurmukhi:2585,ngonguthai:3591,nhiragana:12435,nhookleft:626,nhookretroflex:627,nieunacirclekorean:12911,nieunaparenkorean:12815,nieuncieuckorean:12597,nieuncirclekorean:12897,nieunhieuhkorean:12598,nieunkorean:12596,nieunpansioskorean:12648,nieunparenkorean:12801,nieunsioskorean:12647,nieuntikeutkorean:12646,nihiragana:12395,nikatakana:12491,nikatakanahalfwidth:65414,nikhahitleftthai:63641,nikhahitthai:3661,nine:57,ninearabic:1641,ninebengali:2543,ninecircle:9320,ninecircleinversesansserif:10130,ninedeva:2415,ninegujarati:2799,ninegurmukhi:2671,ninehackarabic:1641,ninehangzhou:12329,nineideographicparen:12840,nineinferior:8329,ninemonospace:65305,nineoldstyle:63289,nineparen:9340,nineperiod:9360,ninepersian:1785,nineroman:8568,ninesuperior:8313,nineteencircle:9330,nineteenparen:9350,nineteenperiod:9370,ninethai:3673,nj:460,njecyrillic:1114,nkatakana:12531,nkatakanahalfwidth:65437,nlegrightlong:414,nlinebelow:7753,nmonospace:65358,nmsquare:13210,nnabengali:2467,nnadeva:2339,nnagujarati:2723,nnagurmukhi:2595,nnnadeva:2345,nohiragana:12398,nokatakana:12494,nokatakanahalfwidth:65417,nonbreakingspace:160,nonenthai:3603,nonuthai:3609,noonarabic:1606,noonfinalarabic:65254,noonghunnaarabic:1722,noonghunnafinalarabic:64415,nooninitialarabic:65255,noonjeeminitialarabic:64722,noonjeemisolatedarabic:64587,noonmedialarabic:65256,noonmeeminitialarabic:64725,noonmeemisolatedarabic:64590,noonnoonfinalarabic:64653,notcontains:8716,notelement:8713,notelementof:8713,notequal:8800,notgreater:8815,notgreaternorequal:8817,notgreaternorless:8825,notidentical:8802,notless:8814,notlessnorequal:8816,notparallel:8742,notprecedes:8832,notsubset:8836,notsucceeds:8833,notsuperset:8837,nowarmenian:1398,nparen:9385,nssquare:13233,nsuperior:8319,ntilde:241,nu:957,nuhiragana:12396,nukatakana:12492,nukatakanahalfwidth:65415,nuktabengali:2492,nuktadeva:2364,nuktagujarati:2748,nuktagurmukhi:2620,numbersign:35,numbersignmonospace:65283,numbersignsmall:65119,numeralsigngreek:884,numeralsignlowergreek:885,numero:8470,nun:1504,nundagesh:64320,nundageshhebrew:64320,nunhebrew:1504,nvsquare:13237,nwsquare:13243,nyabengali:2462,nyadeva:2334,nyagujarati:2718,nyagurmukhi:2590,o:111,oacute:243,oangthai:3629,obarred:629,obarredcyrillic:1257,obarreddieresiscyrillic:1259,obengali:2451,obopomofo:12571,obreve:335,ocandradeva:2321,ocandragujarati:2705,ocandravowelsigndeva:2377,ocandravowelsigngujarati:2761,ocaron:466,ocircle:9438,ocircumflex:244,ocircumflexacute:7889,ocircumflexdotbelow:7897,ocircumflexgrave:7891,ocircumflexhookabove:7893,ocircumflextilde:7895,ocyrillic:1086,odblacute:337,odblgrave:525,odeva:2323,odieresis:246,odieresiscyrillic:1255,odotbelow:7885,oe:339,oekorean:12634,ogonek:731,ogonekcmb:808,ograve:242,ogujarati:2707,oharmenian:1413,ohiragana:12362,ohookabove:7887,ohorn:417,ohornacute:7899,ohorndotbelow:7907,ohorngrave:7901,ohornhookabove:7903,ohorntilde:7905,ohungarumlaut:337,oi:419,oinvertedbreve:527,okatakana:12458,okatakanahalfwidth:65397,okorean:12631,olehebrew:1451,omacron:333,omacronacute:7763,omacrongrave:7761,omdeva:2384,omega:969,omega1:982,omegacyrillic:1121,omegalatinclosed:631,omegaroundcyrillic:1147,omegatitlocyrillic:1149,omegatonos:974,omgujarati:2768,omicron:959,omicrontonos:972,omonospace:65359,one:49,onearabic:1633,onebengali:2535,onecircle:9312,onecircleinversesansserif:10122,onedeva:2407,onedotenleader:8228,oneeighth:8539,onefitted:63196,onegujarati:2791,onegurmukhi:2663,onehackarabic:1633,onehalf:189,onehangzhou:12321,oneideographicparen:12832,oneinferior:8321,onemonospace:65297,onenumeratorbengali:2548,oneoldstyle:63281,oneparen:9332,oneperiod:9352,onepersian:1777,onequarter:188,oneroman:8560,onesuperior:185,onethai:3665,onethird:8531,oogonek:491,oogonekmacron:493,oogurmukhi:2579,oomatragurmukhi:2635,oopen:596,oparen:9386,openbullet:9702,option:8997,ordfeminine:170,ordmasculine:186,orthogonal:8735,oshortdeva:2322,oshortvowelsigndeva:2378,oslash:248,oslashacute:511,osmallhiragana:12361,osmallkatakana:12457,osmallkatakanahalfwidth:65387,ostrokeacute:511,osuperior:63216,otcyrillic:1151,otilde:245,otildeacute:7757,otildedieresis:7759,oubopomofo:12577,overline:8254,overlinecenterline:65098,overlinecmb:773,overlinedashed:65097,overlinedblwavy:65100,overlinewavy:65099,overscore:175,ovowelsignbengali:2507,ovowelsigndeva:2379,ovowelsigngujarati:2763,p:112,paampssquare:13184,paasentosquare:13099,pabengali:2474,pacute:7765,padeva:2346,pagedown:8671,pageup:8670,pagujarati:2730,pagurmukhi:2602,pahiragana:12401,paiyannoithai:3631,pakatakana:12497,palatalizationcyrilliccmb:1156,palochkacyrillic:1216,pansioskorean:12671,paragraph:182,parallel:8741,parenleft:40,parenleftaltonearabic:64830,parenleftbt:63725,parenleftex:63724,parenleftinferior:8333,parenleftmonospace:65288,parenleftsmall:65113,parenleftsuperior:8317,parenlefttp:63723,parenleftvertical:65077,parenright:41,parenrightaltonearabic:64831,parenrightbt:63736,parenrightex:63735,parenrightinferior:8334,parenrightmonospace:65289,parenrightsmall:65114,parenrightsuperior:8318,parenrighttp:63734,parenrightvertical:65078,partialdiff:8706,paseqhebrew:1472,pashtahebrew:1433,pasquare:13225,patah:1463,patah11:1463,patah1d:1463,patah2a:1463,patahhebrew:1463,patahnarrowhebrew:1463,patahquarterhebrew:1463,patahwidehebrew:1463,pazerhebrew:1441,pbopomofo:12550,pcircle:9439,pdotaccent:7767,pe:1508,pecyrillic:1087,pedagesh:64324,pedageshhebrew:64324,peezisquare:13115,pefinaldageshhebrew:64323,peharabic:1662,peharmenian:1402,pehebrew:1508,pehfinalarabic:64343,pehinitialarabic:64344,pehiragana:12410,pehmedialarabic:64345,pekatakana:12506,pemiddlehookcyrillic:1191,perafehebrew:64334,percent:37,percentarabic:1642,percentmonospace:65285,percentsmall:65130,period:46,periodarmenian:1417,periodcentered:183,periodhalfwidth:65377,periodinferior:63207,periodmonospace:65294,periodsmall:65106,periodsuperior:63208,perispomenigreekcmb:834,perpendicular:8869,perthousand:8240,peseta:8359,pfsquare:13194,phabengali:2475,phadeva:2347,phagujarati:2731,phagurmukhi:2603,phi:966,phi1:981,phieuphacirclekorean:12922,phieuphaparenkorean:12826,phieuphcirclekorean:12908,phieuphkorean:12621,phieuphparenkorean:12812,philatin:632,phinthuthai:3642,phisymbolgreek:981,phook:421,phophanthai:3614,phophungthai:3612,phosamphaothai:3616,pi:960,pieupacirclekorean:12915,pieupaparenkorean:12819,pieupcieuckorean:12662,pieupcirclekorean:12901,pieupkiyeokkorean:12658,pieupkorean:12610,pieupparenkorean:12805,pieupsioskiyeokkorean:12660,pieupsioskorean:12612,pieupsiostikeutkorean:12661,pieupthieuthkorean:12663,pieuptikeutkorean:12659,pihiragana:12404,pikatakana:12500,pisymbolgreek:982,piwrarmenian:1411,plus:43,plusbelowcmb:799,pluscircle:8853,plusminus:177,plusmod:726,plusmonospace:65291,plussmall:65122,plussuperior:8314,pmonospace:65360,pmsquare:13272,pohiragana:12413,pointingindexdownwhite:9759,pointingindexleftwhite:9756,pointingindexrightwhite:9758,pointingindexupwhite:9757,pokatakana:12509,poplathai:3611,postalmark:12306,postalmarkface:12320,pparen:9387,precedes:8826,prescription:8478,primemod:697,primereversed:8245,product:8719,projective:8965,prolongedkana:12540,propellor:8984,propersubset:8834,propersuperset:8835,proportion:8759,proportional:8733,psi:968,psicyrillic:1137,psilipneumatacyrilliccmb:1158,pssquare:13232,puhiragana:12407,pukatakana:12503,pvsquare:13236,pwsquare:13242,q:113,qadeva:2392,qadmahebrew:1448,qafarabic:1602,qaffinalarabic:65238,qafinitialarabic:65239,qafmedialarabic:65240,qamats:1464,qamats10:1464,qamats1a:1464,qamats1c:1464,qamats27:1464,qamats29:1464,qamats33:1464,qamatsde:1464,qamatshebrew:1464,qamatsnarrowhebrew:1464,qamatsqatanhebrew:1464,qamatsqatannarrowhebrew:1464,qamatsqatanquarterhebrew:1464,qamatsqatanwidehebrew:1464,qamatsquarterhebrew:1464,qamatswidehebrew:1464,qarneyparahebrew:1439,qbopomofo:12561,qcircle:9440,qhook:672,qmonospace:65361,qof:1511,qofdagesh:64327,qofdageshhebrew:64327,qofhebrew:1511,qparen:9388,quarternote:9833,qubuts:1467,qubuts18:1467,qubuts25:1467,qubuts31:1467,qubutshebrew:1467,qubutsnarrowhebrew:1467,qubutsquarterhebrew:1467,qubutswidehebrew:1467,question:63,questionarabic:1567,questionarmenian:1374,questiondown:191,questiondownsmall:63423,questiongreek:894,questionmonospace:65311,questionsmall:63295,quotedbl:34,quotedblbase:8222,quotedblleft:8220,quotedblmonospace:65282,quotedblprime:12318,quotedblprimereversed:12317,quotedblright:8221,quoteleft:8216,quoteleftreversed:8219,quotereversed:8219,quoteright:8217,quoterightn:329,quotesinglbase:8218,quotesingle:39,quotesinglemonospace:65287,r:114,raarmenian:1404,rabengali:2480,racute:341,radeva:2352,radical:8730,radicalex:63717,radoverssquare:13230,radoverssquaredsquare:13231,radsquare:13229,rafe:1471,rafehebrew:1471,ragujarati:2736,ragurmukhi:2608,rahiragana:12425,rakatakana:12521,rakatakanahalfwidth:65431,ralowerdiagonalbengali:2545,ramiddlediagonalbengali:2544,ramshorn:612,ratio:8758,rbopomofo:12566,rcaron:345,rcedilla:343,rcircle:9441,rcommaaccent:343,rdblgrave:529,rdotaccent:7769,rdotbelow:7771,rdotbelowmacron:7773,referencemark:8251,reflexsubset:8838,reflexsuperset:8839,registered:174,registersans:63720,registerserif:63194,reharabic:1585,reharmenian:1408,rehfinalarabic:65198,rehiragana:12428,rekatakana:12524,rekatakanahalfwidth:65434,resh:1512,reshdageshhebrew:64328,reshhebrew:1512,reversedtilde:8765,reviahebrew:1431,reviamugrashhebrew:1431,revlogicalnot:8976,rfishhook:638,rfishhookreversed:639,rhabengali:2525,rhadeva:2397,rho:961,rhook:637,rhookturned:635,rhookturnedsuperior:693,rhosymbolgreek:1009,rhotichookmod:734,rieulacirclekorean:12913,rieulaparenkorean:12817,rieulcirclekorean:12899,rieulhieuhkorean:12608,rieulkiyeokkorean:12602,rieulkiyeoksioskorean:12649,rieulkorean:12601,rieulmieumkorean:12603,rieulpansioskorean:12652,rieulparenkorean:12803,rieulphieuphkorean:12607,rieulpieupkorean:12604,rieulpieupsioskorean:12651,rieulsioskorean:12605,rieulthieuthkorean:12606,rieultikeutkorean:12650,rieulyeorinhieuhkorean:12653,rightangle:8735,righttackbelowcmb:793,righttriangle:8895,rihiragana:12426,rikatakana:12522,rikatakanahalfwidth:65432,ring:730,ringbelowcmb:805,ringcmb:778,ringhalfleft:703,ringhalfleftarmenian:1369,ringhalfleftbelowcmb:796,ringhalfleftcentered:723,ringhalfright:702,ringhalfrightbelowcmb:825,ringhalfrightcentered:722,rinvertedbreve:531,rittorusquare:13137,rlinebelow:7775,rlongleg:636,rlonglegturned:634,rmonospace:65362,rohiragana:12429,rokatakana:12525,rokatakanahalfwidth:65435,roruathai:3619,rparen:9389,rrabengali:2524,rradeva:2353,rragurmukhi:2652,rreharabic:1681,rrehfinalarabic:64397,rrvocalicbengali:2528,rrvocalicdeva:2400,rrvocalicgujarati:2784,rrvocalicvowelsignbengali:2500,rrvocalicvowelsigndeva:2372,rrvocalicvowelsigngujarati:2756,rsuperior:63217,rtblock:9616,rturned:633,rturnedsuperior:692,ruhiragana:12427,rukatakana:12523,rukatakanahalfwidth:65433,rupeemarkbengali:2546,rupeesignbengali:2547,rupiah:63197,ruthai:3620,rvocalicbengali:2443,rvocalicdeva:2315,rvocalicgujarati:2699,rvocalicvowelsignbengali:2499,rvocalicvowelsigndeva:2371,rvocalicvowelsigngujarati:2755,s:115,sabengali:2488,sacute:347,sacutedotaccent:7781,sadarabic:1589,sadeva:2360,sadfinalarabic:65210,sadinitialarabic:65211,sadmedialarabic:65212,sagujarati:2744,sagurmukhi:2616,sahiragana:12373,sakatakana:12469,sakatakanahalfwidth:65403,sallallahoualayhewasallamarabic:65018,samekh:1505,samekhdagesh:64321,samekhdageshhebrew:64321,samekhhebrew:1505,saraaathai:3634,saraaethai:3649,saraaimaimalaithai:3652,saraaimaimuanthai:3651,saraamthai:3635,saraathai:3632,saraethai:3648,saraiileftthai:63622,saraiithai:3637,saraileftthai:63621,saraithai:3636,saraothai:3650,saraueeleftthai:63624,saraueethai:3639,saraueleftthai:63623,sarauethai:3638,sarauthai:3640,sarauuthai:3641,sbopomofo:12569,scaron:353,scarondotaccent:7783,scedilla:351,schwa:601,schwacyrillic:1241,schwadieresiscyrillic:1243,schwahook:602,scircle:9442,scircumflex:349,scommaaccent:537,sdotaccent:7777,sdotbelow:7779,sdotbelowdotaccent:7785,seagullbelowcmb:828,second:8243,secondtonechinese:714,section:167,seenarabic:1587,seenfinalarabic:65202,seeninitialarabic:65203,seenmedialarabic:65204,segol:1462,segol13:1462,segol1f:1462,segol2c:1462,segolhebrew:1462,segolnarrowhebrew:1462,segolquarterhebrew:1462,segoltahebrew:1426,segolwidehebrew:1462,seharmenian:1405,sehiragana:12379,sekatakana:12475,sekatakanahalfwidth:65406,semicolon:59,semicolonarabic:1563,semicolonmonospace:65307,semicolonsmall:65108,semivoicedmarkkana:12444,semivoicedmarkkanahalfwidth:65439,sentisquare:13090,sentosquare:13091,seven:55,sevenarabic:1639,sevenbengali:2541,sevencircle:9318,sevencircleinversesansserif:10128,sevendeva:2413,seveneighths:8542,sevengujarati:2797,sevengurmukhi:2669,sevenhackarabic:1639,sevenhangzhou:12327,sevenideographicparen:12838,seveninferior:8327,sevenmonospace:65303,sevenoldstyle:63287,sevenparen:9338,sevenperiod:9358,sevenpersian:1783,sevenroman:8566,sevensuperior:8311,seventeencircle:9328,seventeenparen:9348,seventeenperiod:9368,seventhai:3671,sfthyphen:173,shaarmenian:1399,shabengali:2486,shacyrillic:1096,shaddaarabic:1617,shaddadammaarabic:64609,shaddadammatanarabic:64606,shaddafathaarabic:64608,shaddakasraarabic:64610,shaddakasratanarabic:64607,shade:9618,shadedark:9619,shadelight:9617,shademedium:9618,shadeva:2358,shagujarati:2742,shagurmukhi:2614,shalshelethebrew:1427,shbopomofo:12565,shchacyrillic:1097,sheenarabic:1588,sheenfinalarabic:65206,sheeninitialarabic:65207,sheenmedialarabic:65208,sheicoptic:995,sheqel:8362,sheqelhebrew:8362,sheva:1456,sheva115:1456,sheva15:1456,sheva22:1456,sheva2e:1456,shevahebrew:1456,shevanarrowhebrew:1456,shevaquarterhebrew:1456,shevawidehebrew:1456,shhacyrillic:1211,shimacoptic:1005,shin:1513,shindagesh:64329,shindageshhebrew:64329,shindageshshindot:64300,shindageshshindothebrew:64300,shindageshsindot:64301,shindageshsindothebrew:64301,shindothebrew:1473,shinhebrew:1513,shinshindot:64298,shinshindothebrew:64298,shinsindot:64299,shinsindothebrew:64299,shook:642,sigma:963,sigma1:962,sigmafinal:962,sigmalunatesymbolgreek:1010,sihiragana:12375,sikatakana:12471,sikatakanahalfwidth:65404,siluqhebrew:1469,siluqlefthebrew:1469,similar:8764,sindothebrew:1474,siosacirclekorean:12916,siosaparenkorean:12820,sioscieuckorean:12670,sioscirclekorean:12902,sioskiyeokkorean:12666,sioskorean:12613,siosnieunkorean:12667,siosparenkorean:12806,siospieupkorean:12669,siostikeutkorean:12668,six:54,sixarabic:1638,sixbengali:2540,sixcircle:9317,sixcircleinversesansserif:10127,sixdeva:2412,sixgujarati:2796,sixgurmukhi:2668,sixhackarabic:1638,sixhangzhou:12326,sixideographicparen:12837,sixinferior:8326,sixmonospace:65302,sixoldstyle:63286,sixparen:9337,sixperiod:9357,sixpersian:1782,sixroman:8565,sixsuperior:8310,sixteencircle:9327,sixteencurrencydenominatorbengali:2553,sixteenparen:9347,sixteenperiod:9367,sixthai:3670,slash:47,slashmonospace:65295,slong:383,slongdotaccent:7835,smileface:9786,smonospace:65363,sofpasuqhebrew:1475,softhyphen:173,softsigncyrillic:1100,sohiragana:12381,sokatakana:12477,sokatakanahalfwidth:65407,soliduslongoverlaycmb:824,solidusshortoverlaycmb:823,sorusithai:3625,sosalathai:3624,sosothai:3595,sosuathai:3626,space:32,spacehackarabic:32,spade:9824,spadesuitblack:9824,spadesuitwhite:9828,sparen:9390,squarebelowcmb:827,squarecc:13252,squarecm:13213,squarediagonalcrosshatchfill:9641,squarehorizontalfill:9636,squarekg:13199,squarekm:13214,squarekmcapital:13262,squareln:13265,squarelog:13266,squaremg:13198,squaremil:13269,squaremm:13212,squaremsquared:13217,squareorthogonalcrosshatchfill:9638,squareupperlefttolowerrightfill:9639,squareupperrighttolowerleftfill:9640,squareverticalfill:9637,squarewhitewithsmallblack:9635,srsquare:13275,ssabengali:2487,ssadeva:2359,ssagujarati:2743,ssangcieuckorean:12617,ssanghieuhkorean:12677,ssangieungkorean:12672,ssangkiyeokkorean:12594,ssangnieunkorean:12645,ssangpieupkorean:12611,ssangsioskorean:12614,ssangtikeutkorean:12600,ssuperior:63218,sterling:163,sterlingmonospace:65505,strokelongoverlaycmb:822,strokeshortoverlaycmb:821,subset:8834,subsetnotequal:8842,subsetorequal:8838,succeeds:8827,suchthat:8715,suhiragana:12377,sukatakana:12473,sukatakanahalfwidth:65405,sukunarabic:1618,summation:8721,sun:9788,superset:8835,supersetnotequal:8843,supersetorequal:8839,svsquare:13276,syouwaerasquare:13180,t:116,tabengali:2468,tackdown:8868,tackleft:8867,tadeva:2340,tagujarati:2724,tagurmukhi:2596,taharabic:1591,tahfinalarabic:65218,tahinitialarabic:65219,tahiragana:12383,tahmedialarabic:65220,taisyouerasquare:13181,takatakana:12479,takatakanahalfwidth:65408,tatweelarabic:1600,tau:964,tav:1514,tavdages:64330,tavdagesh:64330,tavdageshhebrew:64330,tavhebrew:1514,tbar:359,tbopomofo:12554,tcaron:357,tccurl:680,tcedilla:355,tcheharabic:1670,tchehfinalarabic:64379,tchehinitialarabic:64380,tchehmedialarabic:64381,tcircle:9443,tcircumflexbelow:7793,tcommaaccent:355,tdieresis:7831,tdotaccent:7787,tdotbelow:7789,tecyrillic:1090,tedescendercyrillic:1197,teharabic:1578,tehfinalarabic:65174,tehhahinitialarabic:64674,tehhahisolatedarabic:64524,tehinitialarabic:65175,tehiragana:12390,tehjeeminitialarabic:64673,tehjeemisolatedarabic:64523,tehmarbutaarabic:1577,tehmarbutafinalarabic:65172,tehmedialarabic:65176,tehmeeminitialarabic:64676,tehmeemisolatedarabic:64526,tehnoonfinalarabic:64627,tekatakana:12486,tekatakanahalfwidth:65411,telephone:8481,telephoneblack:9742,telishagedolahebrew:1440,telishaqetanahebrew:1449,tencircle:9321,tenideographicparen:12841,tenparen:9341,tenperiod:9361,tenroman:8569,tesh:679,tet:1496,tetdagesh:64312,tetdageshhebrew:64312,tethebrew:1496,tetsecyrillic:1205,tevirhebrew:1435,tevirlefthebrew:1435,thabengali:2469,thadeva:2341,thagujarati:2725,thagurmukhi:2597,thalarabic:1584,thalfinalarabic:65196,thanthakhatlowleftthai:63640,thanthakhatlowrightthai:63639,thanthakhatthai:3660,thanthakhatupperleftthai:63638,theharabic:1579,thehfinalarabic:65178,thehinitialarabic:65179,thehmedialarabic:65180,thereexists:8707,therefore:8756,theta:952,theta1:977,thetasymbolgreek:977,thieuthacirclekorean:12921,thieuthaparenkorean:12825,thieuthcirclekorean:12907,thieuthkorean:12620,thieuthparenkorean:12811,thirteencircle:9324,thirteenparen:9344,thirteenperiod:9364,thonangmonthothai:3601,thook:429,thophuthaothai:3602,thorn:254,thothahanthai:3607,thothanthai:3600,thothongthai:3608,thothungthai:3606,thousandcyrillic:1154,thousandsseparatorarabic:1644,thousandsseparatorpersian:1644,three:51,threearabic:1635,threebengali:2537,threecircle:9314,threecircleinversesansserif:10124,threedeva:2409,threeeighths:8540,threegujarati:2793,threegurmukhi:2665,threehackarabic:1635,threehangzhou:12323,threeideographicparen:12834,threeinferior:8323,threemonospace:65299,threenumeratorbengali:2550,threeoldstyle:63283,threeparen:9334,threeperiod:9354,threepersian:1779,threequarters:190,threequartersemdash:63198,threeroman:8562,threesuperior:179,threethai:3667,thzsquare:13204,tihiragana:12385,tikatakana:12481,tikatakanahalfwidth:65409,tikeutacirclekorean:12912,tikeutaparenkorean:12816,tikeutcirclekorean:12898,tikeutkorean:12599,tikeutparenkorean:12802,tilde:732,tildebelowcmb:816,tildecmb:771,tildecomb:771,tildedoublecmb:864,tildeoperator:8764,tildeoverlaycmb:820,tildeverticalcmb:830,timescircle:8855,tipehahebrew:1430,tipehalefthebrew:1430,tippigurmukhi:2672,titlocyrilliccmb:1155,tiwnarmenian:1407,tlinebelow:7791,tmonospace:65364,toarmenian:1385,tohiragana:12392,tokatakana:12488,tokatakanahalfwidth:65412,tonebarextrahighmod:741,tonebarextralowmod:745,tonebarhighmod:742,tonebarlowmod:744,tonebarmidmod:743, +tonefive:445,tonesix:389,tonetwo:424,tonos:900,tonsquare:13095,topatakthai:3599,tortoiseshellbracketleft:12308,tortoiseshellbracketleftsmall:65117,tortoiseshellbracketleftvertical:65081,tortoiseshellbracketright:12309,tortoiseshellbracketrightsmall:65118,tortoiseshellbracketrightvertical:65082,totaothai:3605,tpalatalhook:427,tparen:9391,trademark:8482,trademarksans:63722,trademarkserif:63195,tretroflexhook:648,triagdn:9660,triaglf:9668,triagrt:9658,triagup:9650,ts:678,tsadi:1510,tsadidagesh:64326,tsadidageshhebrew:64326,tsadihebrew:1510,tsecyrillic:1094,tsere:1461,tsere12:1461,tsere1e:1461,tsere2b:1461,tserehebrew:1461,tserenarrowhebrew:1461,tserequarterhebrew:1461,tserewidehebrew:1461,tshecyrillic:1115,tsuperior:63219,ttabengali:2463,ttadeva:2335,ttagujarati:2719,ttagurmukhi:2591,tteharabic:1657,ttehfinalarabic:64359,ttehinitialarabic:64360,ttehmedialarabic:64361,tthabengali:2464,tthadeva:2336,tthagujarati:2720,tthagurmukhi:2592,tturned:647,tuhiragana:12388,tukatakana:12484,tukatakanahalfwidth:65410,tusmallhiragana:12387,tusmallkatakana:12483,tusmallkatakanahalfwidth:65391,twelvecircle:9323,twelveparen:9343,twelveperiod:9363,twelveroman:8571,twentycircle:9331,twentyhangzhou:21316,twentyparen:9351,twentyperiod:9371,two:50,twoarabic:1634,twobengali:2536,twocircle:9313,twocircleinversesansserif:10123,twodeva:2408,twodotenleader:8229,twodotleader:8229,twodotleadervertical:65072,twogujarati:2792,twogurmukhi:2664,twohackarabic:1634,twohangzhou:12322,twoideographicparen:12833,twoinferior:8322,twomonospace:65298,twonumeratorbengali:2549,twooldstyle:63282,twoparen:9333,twoperiod:9353,twopersian:1778,tworoman:8561,twostroke:443,twosuperior:178,twothai:3666,twothirds:8532,u:117,uacute:250,ubar:649,ubengali:2441,ubopomofo:12584,ubreve:365,ucaron:468,ucircle:9444,ucircumflex:251,ucircumflexbelow:7799,ucyrillic:1091,udattadeva:2385,udblacute:369,udblgrave:533,udeva:2313,udieresis:252,udieresisacute:472,udieresisbelow:7795,udieresiscaron:474,udieresiscyrillic:1265,udieresisgrave:476,udieresismacron:470,udotbelow:7909,ugrave:249,ugujarati:2697,ugurmukhi:2569,uhiragana:12358,uhookabove:7911,uhorn:432,uhornacute:7913,uhorndotbelow:7921,uhorngrave:7915,uhornhookabove:7917,uhorntilde:7919,uhungarumlaut:369,uhungarumlautcyrillic:1267,uinvertedbreve:535,ukatakana:12454,ukatakanahalfwidth:65395,ukcyrillic:1145,ukorean:12636,umacron:363,umacroncyrillic:1263,umacrondieresis:7803,umatragurmukhi:2625,umonospace:65365,underscore:95,underscoredbl:8215,underscoremonospace:65343,underscorevertical:65075,underscorewavy:65103,union:8746,universal:8704,uogonek:371,uparen:9392,upblock:9600,upperdothebrew:1476,upsilon:965,upsilondieresis:971,upsilondieresistonos:944,upsilonlatin:650,upsilontonos:973,uptackbelowcmb:797,uptackmod:724,uragurmukhi:2675,uring:367,ushortcyrillic:1118,usmallhiragana:12357,usmallkatakana:12453,usmallkatakanahalfwidth:65385,ustraightcyrillic:1199,ustraightstrokecyrillic:1201,utilde:361,utildeacute:7801,utildebelow:7797,uubengali:2442,uudeva:2314,uugujarati:2698,uugurmukhi:2570,uumatragurmukhi:2626,uuvowelsignbengali:2498,uuvowelsigndeva:2370,uuvowelsigngujarati:2754,uvowelsignbengali:2497,uvowelsigndeva:2369,uvowelsigngujarati:2753,v:118,vadeva:2357,vagujarati:2741,vagurmukhi:2613,vakatakana:12535,vav:1493,vavdagesh:64309,vavdagesh65:64309,vavdageshhebrew:64309,vavhebrew:1493,vavholam:64331,vavholamhebrew:64331,vavvavhebrew:1520,vavyodhebrew:1521,vcircle:9445,vdotbelow:7807,vecyrillic:1074,veharabic:1700,vehfinalarabic:64363,vehinitialarabic:64364,vehmedialarabic:64365,vekatakana:12537,venus:9792,verticalbar:124,verticallineabovecmb:781,verticallinebelowcmb:809,verticallinelowmod:716,verticallinemod:712,vewarmenian:1406,vhook:651,vikatakana:12536,viramabengali:2509,viramadeva:2381,viramagujarati:2765,visargabengali:2435,visargadeva:2307,visargagujarati:2691,vmonospace:65366,voarmenian:1400,voicediterationhiragana:12446,voicediterationkatakana:12542,voicedmarkkana:12443,voicedmarkkanahalfwidth:65438,vokatakana:12538,vparen:9393,vtilde:7805,vturned:652,vuhiragana:12436,vukatakana:12532,w:119,wacute:7811,waekorean:12633,wahiragana:12431,wakatakana:12527,wakatakanahalfwidth:65436,wakorean:12632,wasmallhiragana:12430,wasmallkatakana:12526,wattosquare:13143,wavedash:12316,wavyunderscorevertical:65076,wawarabic:1608,wawfinalarabic:65262,wawhamzaabovearabic:1572,wawhamzaabovefinalarabic:65158,wbsquare:13277,wcircle:9446,wcircumflex:373,wdieresis:7813,wdotaccent:7815,wdotbelow:7817,wehiragana:12433,weierstrass:8472,wekatakana:12529,wekorean:12638,weokorean:12637,wgrave:7809,whitebullet:9702,whitecircle:9675,whitecircleinverse:9689,whitecornerbracketleft:12302,whitecornerbracketleftvertical:65091,whitecornerbracketright:12303,whitecornerbracketrightvertical:65092,whitediamond:9671,whitediamondcontainingblacksmalldiamond:9672,whitedownpointingsmalltriangle:9663,whitedownpointingtriangle:9661,whiteleftpointingsmalltriangle:9667,whiteleftpointingtriangle:9665,whitelenticularbracketleft:12310,whitelenticularbracketright:12311,whiterightpointingsmalltriangle:9657,whiterightpointingtriangle:9655,whitesmallsquare:9643,whitesmilingface:9786,whitesquare:9633,whitestar:9734,whitetelephone:9743,whitetortoiseshellbracketleft:12312,whitetortoiseshellbracketright:12313,whiteuppointingsmalltriangle:9653,whiteuppointingtriangle:9651,wihiragana:12432,wikatakana:12528,wikorean:12639,wmonospace:65367,wohiragana:12434,wokatakana:12530,wokatakanahalfwidth:65382,won:8361,wonmonospace:65510,wowaenthai:3623,wparen:9394,wring:7832,wsuperior:695,wturned:653,wynn:447,x:120,xabovecmb:829,xbopomofo:12562,xcircle:9447,xdieresis:7821,xdotaccent:7819,xeharmenian:1389,xi:958,xmonospace:65368,xparen:9395,xsuperior:739,y:121,yaadosquare:13134,yabengali:2479,yacute:253,yadeva:2351,yaekorean:12626,yagujarati:2735,yagurmukhi:2607,yahiragana:12420,yakatakana:12516,yakatakanahalfwidth:65428,yakorean:12625,yamakkanthai:3662,yasmallhiragana:12419,yasmallkatakana:12515,yasmallkatakanahalfwidth:65388,yatcyrillic:1123,ycircle:9448,ycircumflex:375,ydieresis:255,ydotaccent:7823,ydotbelow:7925,yeharabic:1610,yehbarreearabic:1746,yehbarreefinalarabic:64431,yehfinalarabic:65266,yehhamzaabovearabic:1574,yehhamzaabovefinalarabic:65162,yehhamzaaboveinitialarabic:65163,yehhamzaabovemedialarabic:65164,yehinitialarabic:65267,yehmedialarabic:65268,yehmeeminitialarabic:64733,yehmeemisolatedarabic:64600,yehnoonfinalarabic:64660,yehthreedotsbelowarabic:1745,yekorean:12630,yen:165,yenmonospace:65509,yeokorean:12629,yeorinhieuhkorean:12678,yerahbenyomohebrew:1450,yerahbenyomolefthebrew:1450,yericyrillic:1099,yerudieresiscyrillic:1273,yesieungkorean:12673,yesieungpansioskorean:12675,yesieungsioskorean:12674,yetivhebrew:1434,ygrave:7923,yhook:436,yhookabove:7927,yiarmenian:1397,yicyrillic:1111,yikorean:12642,yinyang:9775,yiwnarmenian:1410,ymonospace:65369,yod:1497,yoddagesh:64313,yoddageshhebrew:64313,yodhebrew:1497,yodyodhebrew:1522,yodyodpatahhebrew:64287,yohiragana:12424,yoikorean:12681,yokatakana:12520,yokatakanahalfwidth:65430,yokorean:12635,yosmallhiragana:12423,yosmallkatakana:12519,yosmallkatakanahalfwidth:65390,yotgreek:1011,yoyaekorean:12680,yoyakorean:12679,yoyakthai:3618,yoyingthai:3597,yparen:9396,ypogegrammeni:890,ypogegrammenigreekcmb:837,yr:422,yring:7833,ysuperior:696,ytilde:7929,yturned:654,yuhiragana:12422,yuikorean:12684,yukatakana:12518,yukatakanahalfwidth:65429,yukorean:12640,yusbigcyrillic:1131,yusbigiotifiedcyrillic:1133,yuslittlecyrillic:1127,yuslittleiotifiedcyrillic:1129,yusmallhiragana:12421,yusmallkatakana:12517,yusmallkatakanahalfwidth:65389,yuyekorean:12683,yuyeokorean:12682,yyabengali:2527,yyadeva:2399,z:122,zaarmenian:1382,zacute:378,zadeva:2395,zagurmukhi:2651,zaharabic:1592,zahfinalarabic:65222,zahinitialarabic:65223,zahiragana:12374,zahmedialarabic:65224,zainarabic:1586,zainfinalarabic:65200,zakatakana:12470,zaqefgadolhebrew:1429,zaqefqatanhebrew:1428,zarqahebrew:1432,zayin:1494,zayindagesh:64310,zayindageshhebrew:64310,zayinhebrew:1494,zbopomofo:12567,zcaron:382,zcircle:9449,zcircumflex:7825,zcurl:657,zdot:380,zdotaccent:380,zdotbelow:7827,zecyrillic:1079,zedescendercyrillic:1177,zedieresiscyrillic:1247,zehiragana:12380,zekatakana:12476,zero:48,zeroarabic:1632,zerobengali:2534,zerodeva:2406,zerogujarati:2790,zerogurmukhi:2662,zerohackarabic:1632,zeroinferior:8320,zeromonospace:65296,zerooldstyle:63280,zeropersian:1776,zerosuperior:8304,zerothai:3664,zerowidthjoiner:65279,zerowidthnonjoiner:8204,zerowidthspace:8203,zeta:950,zhbopomofo:12563,zhearmenian:1386,zhebrevecyrillic:1218,zhecyrillic:1078,zhedescendercyrillic:1175,zhedieresiscyrillic:1245,zihiragana:12376,zikatakana:12472,zinorhebrew:1454,zlinebelow:7829,zmonospace:65370,zohiragana:12382,zokatakana:12478,zparen:9397,zretroflexhook:656,zstroke:438,zuhiragana:12378,zukatakana:12474,".notdef":0},Ac={space:32,a1:9985,a2:9986,a202:9987,a3:9988,a4:9742,a5:9990,a119:9991,a118:9992,a117:9993,a11:9755,a12:9758,a13:9996,a14:9997,a15:9998,a16:9999,a105:1e4,a17:10001,a18:10002,a19:10003,a20:10004,a21:10005,a22:10006,a23:10007,a24:10008,a25:10009,a26:10010,a27:10011,a28:10012,a6:10013,a7:10014,a8:10015,a9:10016,a10:10017,a29:10018,a30:10019,a31:10020,a32:10021,a33:10022,a34:10023,a35:9733,a36:10025,a37:10026,a38:10027,a39:10028,a40:10029,a41:10030,a42:10031,a43:10032,a44:10033,a45:10034,a46:10035,a47:10036,a48:10037,a49:10038,a50:10039,a51:10040,a52:10041,a53:10042,a54:10043,a55:10044,a56:10045,a57:10046,a58:10047,a59:10048,a60:10049,a61:10050,a62:10051,a63:10052,a64:10053,a65:10054,a66:10055,a67:10056,a68:10057,a69:10058,a70:10059,a71:9679,a72:10061,a73:9632,a74:10063,a203:10064,a75:10065,a204:10066,a76:9650,a77:9660,a78:9670,a79:10070,a81:9687,a82:10072,a83:10073,a84:10074,a97:10075,a98:10076,a99:10077,a100:10078,a101:10081,a102:10082,a103:10083,a104:10084,a106:10085,a107:10086,a108:10087,a112:9827,a111:9830,a110:9829,a109:9824,a120:9312,a121:9313,a122:9314,a123:9315,a124:9316,a125:9317,a126:9318,a127:9319,a128:9320,a129:9321,a130:10102,a131:10103,a132:10104,a133:10105,a134:10106,a135:10107,a136:10108,a137:10109,a138:10110,a139:10111,a140:10112,a141:10113,a142:10114,a143:10115,a144:10116,a145:10117,a146:10118,a147:10119,a148:10120,a149:10121,a150:10122,a151:10123,a152:10124,a153:10125,a154:10126,a155:10127,a156:10128,a157:10129,a158:10130,a159:10131,a160:10132,a161:8594,a163:8596,a164:8597,a196:10136,a165:10137,a192:10138,a166:10139,a167:10140,a168:10141,a169:10142,a170:10143,a171:10144,a172:10145,a173:10146,a162:10147,a174:10148,a175:10149,a176:10150,a177:10151,a178:10152,a179:10153,a193:10154,a180:10155,a199:10156,a181:10157,a200:10158,a182:10159,a201:10161,a183:10162,a184:10163,a197:10164,a185:10165,a194:10166,a198:10167,a186:10168,a195:10169,a187:10170,a188:10171,a189:10172,a190:10173,a191:10174,a89:10088,a90:10089,a93:10090,a94:10091,a91:10092,a92:10093,a205:10094,a85:10095,a206:10096,a86:10097,a87:10098,a88:10099,a95:10100,a96:10101,".notdef":0},Bc=function(){function d(a,b,c,d){if(d instanceof Sc&&d.isNativelyDecodable(b,c)){var e=d.dict,f=e.get("ColorSpace","CS");f=Xa.parse(f,b,c);var g=f.numComps,h=a.sendWithPromise("JpegDecode",[d.getIR(),g]);return h.then(function(a){var b=a.data;return new Mc(b,0,b.length,d.dict)})}return Promise.resolve(d)}function f(a,b,c,d){return a=b+a*c,0>a?0:a>d?d:a}function g(b,d,e,f,h,i,j){this.image=e;var k=e.dict;if(k.has("Filter")){var l=k.get("Filter").name;if("JPXDecode"===l){var m=new hd;m.parseImageProperties(e.stream),e.stream.reset(),e.bitsPerComponent=m.bitsPerComponent,e.numComps=m.componentsCount}else"JBIG2Decode"===l&&(e.bitsPerComponent=1,e.numComps=1)}this.width=k.get("Width","W"),this.height=k.get("Height","H"),(this.width<1||this.height<1)&&c("Invalid image width: "+this.width+" or height: "+this.height),this.interpolate=k.get("Interpolate","I")||!1,this.imageMask=k.get("ImageMask","IM")||!1,this.matte=k.get("Matte")||!1;var n=e.bitsPerComponent;if(n||(n=k.get("BitsPerComponent","BPC"),n||(this.imageMask?n=1:c("Bits per component missing in image: "+this.imageMask))),this.bpc=n,!this.imageMask){var o=k.get("ColorSpace","CS");if(!o)switch(a("JPX images (which do not require color spaces)"),e.numComps){case 1:o=ya.get("DeviceGray");break;case 3:o=ya.get("DeviceRGB");break;case 4:o=ya.get("DeviceCMYK");break;default:c("JPX images with "+this.numComps+" color components not supported.")}this.colorSpace=Xa.parse(o,b,d),this.numComps=this.colorSpace.numComps}if(this.decode=k.get("Decode","D"),this.needsDecode=!1,this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode)||j&&!Xa.isDefaultDecode(this.decode,1))){this.needsDecode=!0;var p=(1<=b?new Uint8Array(o):16>=b?new Uint16Array(o):new Uint32Array(o),q=e/g,r=f/h,s=0,t=new Uint16Array(g),u=e*d;for(1!==j&&(j=0),l=0;g>l;l++)t[l]=Math.floor(l*q)*d;if(1===d)for(k=0;h>k;k++)for(m=Math.floor(k*r)*u,l=0;g>l;l++)n=m+t[l],p[s++]=a[n];else if(3===d)for(k=0;h>k;k++)for(m=Math.floor(k*r)*u,l=0;g>l;l++)n=m+t[l],p[s++]=a[n++],p[s++]=a[n++],p[s++]=a[n++],s+=j;return p},g.createMask=function(a,b,c,d,e){var f,g,h=(b+7>>3)*c,i=a.byteLength,j=h===i;if(!d||e&&!j)if(e)for(f=new Uint8Array(h),f.set(a),g=i;h>g;g++)f[g]=255;else f=new Uint8Array(i),f.set(a);else f=a;if(e)for(g=0;i>g;g++)f[g]=~f[g];return{data:f,width:b,height:c}},g.prototype={get drawWidth(){return Math.max(this.width,this.smask&&this.smask.width||0,this.mask&&this.mask.width||0)},get drawHeight(){return Math.max(this.height,this.smask&&this.smask.height||0,this.mask&&this.mask.height||0)},decodeBuffer:function(a){var b,c,d=this.bpc,e=this.numComps,g=this.decodeAddends,h=this.decodeCoefficients,i=(1<b;b++)for(var k=0;e>k;k++)a[j]=f(a[j],g[k],h[k],i),j++}else for(b=0,c=a.length;c>b;b++)a[b]=+!a[b]},getComponents:function(a){var b=this.bpc;if(8===b)return a;var c,d,e=this.width,f=this.height,g=this.numComps,h=e*f*g,i=0,j=8>=b?new Uint8Array(h):16>=b?new Uint16Array(h):new Uint32Array(h),k=e*g,l=(1<q;q++){for(o=m+(-8&k),p=m+k;o>m;)d=a[i++],j[m]=d>>7&1,j[m+1]=d>>6&1,j[m+2]=d>>5&1,j[m+3]=d>>4&1,j[m+4]=d>>3&1,j[m+5]=d>>2&1,j[m+6]=d>>1&1,j[m+7]=1&d,m+=8;if(p>m)for(d=a[i++],n=128;p>m;)j[m++]=+!!(d&n),n>>=1}else{var r=0;for(d=0,m=0,c=h;c>m;++m){for(m%k===0&&(d=0,r=0);b>r;)d=d<<8|a[i++],r+=8;var s=r-b,t=d>>s;j[m]=0>t?0:t>l?l:t,d&=(1<k;++k)h[k]=255-h[k];i===b&&j===d||(h=g.resize(h,o.bpc,1,i,j,b,d))}else if(C(o)){h=new Uint8Array(b*d);var p=this.numComps;for(k=0,l=b*d;l>k;++k){var q=0,r=k*p;for(m=0;p>m;++m){var s=f[r+m],t=2*m;if(so[t+1]){q=255;break}}h[k]=q}}else c("Unknown mask format.");if(h)for(k=0,m=3,l=b*e;l>k;++k,m+=4)a[m]=h[k];else for(k=0,m=3,l=b*e;l>k;++k,m+=4)a[m]=255},undoPreblend:function(a,b,c){var d=this.smask&&this.smask.matte;if(d)for(var e,f,g,h=this.colorSpace.getRgb(d,0),i=h[0],j=h[1],k=h[2],l=b*c*4,m=0;l>m;m+=4){var n=a[m+3];if(0!==n){var o=255/n;e=(a[m]-i)*o+i,f=(a[m+1]-j)*o+j,g=(a[m+2]-k)*o+k,a[m]=0>=e?0:e>=255?255:0|e,a[m+1]=0>=f?0:f>=255?255:0|f,a[m+2]=0>=g?0:g>=255?255:0|g}else a[m]=255,a[m+1]=255,a[m+2]=255}},createImageData:function(a){var b,c=this.drawWidth,d=this.drawHeight,f={width:c,height:d},g=this.numComps,h=this.width,i=this.height,j=this.bpc,k=h*g*j+7>>3;if(!a){var l;if("DeviceGray"===this.colorSpace.name&&1===j?l=V.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==j||this.needsDecode||(l=V.RGB_24BPP),l&&!this.smask&&!this.mask&&c===h&&d===i){if(f.kind=l,b=this.getImageBytes(i*k),this.image instanceof Oc)f.data=b;else{var m=new Uint8Array(b.length);m.set(b),f.data=m}if(this.needsDecode){e(l===V.GRAYSCALE_1BPP);for(var n=f.data,o=0,p=n.length;p>o;o++)n[o]^=255}return f}if(this.image instanceof Sc&&!this.smask&&!this.mask&&("DeviceGray"===this.colorSpace.name||"DeviceRGB"===this.colorSpace.name||"DeviceCMYK"===this.colorSpace.name))return f.kind=V.RGB_24BPP,f.data=this.getImageBytes(i*k,c,d,!0),f}b=this.getImageBytes(i*k);var q,r,s=0|b.length/k*d/i,t=this.getComponents(b);return a||this.smask||this.mask?(f.kind=V.RGBA_32BPP,f.data=new Uint8Array(c*d*4),q=1,r=!0,this.fillOpacity(f.data,c,d,s,t)):(f.kind=V.RGB_24BPP,f.data=new Uint8Array(c*d*3),q=0,r=!1),this.needsDecode&&this.decodeBuffer(t),this.colorSpace.fillRgb(f.data,h,i,c,d,s,j,t,q),r&&this.undoPreblend(f.data,c,s),f},fillGrayBuffer:function(a){var b=this.numComps;1!==b&&c("Reading gray scale from a color image: "+b);var d,e,f=this.width,g=this.height,h=this.bpc,i=f*b*h+7>>3,j=this.getImageBytes(g*i),k=this.getComponents(j);if(1!==h){this.needsDecode&&this.decodeBuffer(k),e=f*g;var l=255/((1<d;++d)a[d]=l*k[d]|0}else if(e=f*g,this.needsDecode)for(d=0;e>d;++d)a[d]=k[d]-1&255;else for(d=0;e>d;++d)a[d]=255&-k[d]},getImageBytes:function(a,b,c,d){return this.image.reset(),this.image.drawWidth=b||this.width,this.image.drawHeight=c||this.height,this.image.forceRGB=!!d,this.image.getBytes(a)}},g}(),Cc={Courier:600,"Courier-Bold":600,"Courier-BoldOblique":600,"Courier-Oblique":600,Helvetica:{space:278,exclam:278,quotedbl:355,numbersign:556,dollar:556,percent:889,ampersand:667,quoteright:222,parenleft:333,parenright:333,asterisk:389,plus:584,comma:278,hyphen:333,period:278,slash:278,zero:556,one:556,two:556,three:556,four:556,five:556,six:556,seven:556,eight:556,nine:556,colon:278,semicolon:278,less:584,equal:584,greater:584,question:556,at:1015,A:667,B:667,C:722,D:722,E:667,F:611,G:778,H:722,I:278,J:500,K:667,L:556,M:833,N:722,O:778,P:667,Q:778,R:722,S:667,T:611,U:722,V:667,W:944,X:667,Y:667,Z:611,bracketleft:278,backslash:278,bracketright:278,asciicircum:469,underscore:556,quoteleft:222,a:556,b:556,c:500,d:556,e:556,f:278,g:556,h:556,i:222,j:222,k:500,l:222,m:833,n:556,o:556,p:556,q:556,r:333,s:500,t:278,u:556,v:500,w:722,x:500,y:500,z:500,braceleft:334,bar:260,braceright:334,asciitilde:584,exclamdown:333,cent:556,sterling:556,fraction:167,yen:556,florin:556,section:556,currency:556,quotesingle:191,quotedblleft:333,guillemotleft:556,guilsinglleft:333,guilsinglright:333,fi:500,fl:500,endash:556,dagger:556,daggerdbl:556,periodcentered:278,paragraph:537,bullet:350,quotesinglbase:222,quotedblbase:333,quotedblright:333,guillemotright:556,ellipsis:1e3,perthousand:1e3,questiondown:611,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:370,Lslash:556,Oslash:778,OE:1e3,ordmasculine:365,ae:889,dotlessi:278,lslash:222,oslash:611,oe:944,germandbls:611,Idieresis:278,eacute:556,abreve:556,uhungarumlaut:556,ecaron:556,Ydieresis:667,divide:584,Yacute:667,Acircumflex:667,aacute:556,Ucircumflex:722,yacute:500,scommaaccent:500,ecircumflex:556,Uring:722,Udieresis:722,aogonek:556,Uacute:722,uogonek:556,Edieresis:667,Dcroat:722,commaaccent:250,copyright:737,Emacron:667,ccaron:500,aring:556,Ncommaaccent:722,lacute:222,agrave:556,Tcommaaccent:611,Cacute:722,atilde:556,Edotaccent:667,scaron:500,scedilla:500,iacute:278,lozenge:471,Rcaron:722,Gcommaaccent:778,ucircumflex:556,acircumflex:556,Amacron:667,rcaron:333,ccedilla:500,Zdotaccent:611,Thorn:667,Omacron:778,Racute:722,Sacute:667,dcaron:643,Umacron:722,uring:556,threesuperior:333,Ograve:778,Agrave:667,Abreve:667,multiply:584,uacute:556,Tcaron:611,partialdiff:476,ydieresis:500,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:556,edieresis:556,cacute:500,nacute:556,umacron:556,Ncaron:722,Iacute:278,plusminus:584,brokenbar:260,registered:737,Gbreve:778,Idotaccent:278,summation:600,Egrave:667,racute:333,omacron:556,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:222,tcaron:317,eogonek:556,Uogonek:722,Aacute:667,Adieresis:667,egrave:556,zacute:500,iogonek:222,Oacute:778,oacute:556,amacron:556,sacute:500,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:556,twosuperior:333,Odieresis:778,mu:556,igrave:278,ohungarumlaut:556,Eogonek:667,dcroat:556,threequarters:834,Scedilla:667,lcaron:299,Kcommaaccent:667,Lacute:556,trademark:1e3,edotaccent:556,Igrave:278,Imacron:278,Lcaron:556,onehalf:834,lessequal:549,ocircumflex:556,ntilde:556,Uhungarumlaut:722,Eacute:667,emacron:556,gbreve:556,onequarter:834,Scaron:667,Scommaaccent:667,Ohungarumlaut:778,degree:400,ograve:556,Ccaron:722,ugrave:556,radical:453,Dcaron:722,rcommaaccent:333,Ntilde:722,otilde:556,Rcommaaccent:722,Lcommaaccent:556,Atilde:667,Aogonek:667,Aring:667,Otilde:778,zdotaccent:500,Ecaron:667,Iogonek:278,kcommaaccent:500,minus:584,Icircumflex:278,ncaron:556,tcommaaccent:278,logicalnot:584,odieresis:556,udieresis:556,notequal:549,gcommaaccent:556,eth:556,zcaron:500,ncommaaccent:556,onesuperior:333,imacron:278,Euro:556},"Helvetica-Bold":{space:278,exclam:333,quotedbl:474,numbersign:556,dollar:556,percent:889,ampersand:722,quoteright:278,parenleft:333,parenright:333,asterisk:389,plus:584,comma:278,hyphen:333,period:278,slash:278,zero:556,one:556,two:556,three:556,four:556,five:556,six:556,seven:556,eight:556,nine:556,colon:333,semicolon:333,less:584,equal:584,greater:584,question:611,at:975,A:722,B:722,C:722,D:722,E:667,F:611,G:778,H:722,I:278,J:556,K:722,L:611,M:833,N:722,O:778,P:667,Q:778,R:722,S:667,T:611,U:722,V:667,W:944,X:667,Y:667,Z:611,bracketleft:333,backslash:278,bracketright:333,asciicircum:584,underscore:556,quoteleft:278,a:556,b:611,c:556,d:611,e:556,f:333,g:611,h:611,i:278,j:278,k:556,l:278,m:889,n:611,o:611,p:611,q:611,r:389,s:556,t:333,u:611,v:556,w:778,x:556,y:556,z:500,braceleft:389,bar:280,braceright:389,asciitilde:584,exclamdown:333,cent:556,sterling:556,fraction:167,yen:556,florin:556,section:556,currency:556,quotesingle:238,quotedblleft:500,guillemotleft:556,guilsinglleft:333,guilsinglright:333,fi:611,fl:611,endash:556,dagger:556,daggerdbl:556,periodcentered:278,paragraph:556,bullet:350,quotesinglbase:278,quotedblbase:500,quotedblright:500,guillemotright:556,ellipsis:1e3,perthousand:1e3,questiondown:611,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:370,Lslash:611,Oslash:778,OE:1e3,ordmasculine:365,ae:889,dotlessi:278,lslash:278,oslash:611,oe:944,germandbls:611,Idieresis:278,eacute:556,abreve:556,uhungarumlaut:611,ecaron:556,Ydieresis:667,divide:584,Yacute:667,Acircumflex:722,aacute:556,Ucircumflex:722,yacute:556,scommaaccent:556,ecircumflex:556,Uring:722,Udieresis:722,aogonek:556,Uacute:722,uogonek:611,Edieresis:667,Dcroat:722,commaaccent:250,copyright:737,Emacron:667,ccaron:556,aring:556,Ncommaaccent:722,lacute:278,agrave:556,Tcommaaccent:611,Cacute:722,atilde:556,Edotaccent:667,scaron:556,scedilla:556,iacute:278,lozenge:494,Rcaron:722,Gcommaaccent:778,ucircumflex:611,acircumflex:556,Amacron:722,rcaron:389,ccedilla:556,Zdotaccent:611,Thorn:667,Omacron:778,Racute:722,Sacute:667,dcaron:743,Umacron:722,uring:611,threesuperior:333,Ograve:778,Agrave:722,Abreve:722,multiply:584,uacute:611,Tcaron:611,partialdiff:494,ydieresis:556,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:556,edieresis:556,cacute:556,nacute:611,umacron:611,Ncaron:722,Iacute:278,plusminus:584,brokenbar:280,registered:737,Gbreve:778,Idotaccent:278,summation:600,Egrave:667,racute:389,omacron:611,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:278,tcaron:389,eogonek:556,Uogonek:722,Aacute:722,Adieresis:722,egrave:556,zacute:500,iogonek:278,Oacute:778,oacute:611,amacron:556,sacute:556,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:611,twosuperior:333,Odieresis:778,mu:611,igrave:278,ohungarumlaut:611,Eogonek:667,dcroat:611,threequarters:834,Scedilla:667,lcaron:400,Kcommaaccent:722,Lacute:611,trademark:1e3,edotaccent:556,Igrave:278,Imacron:278,Lcaron:611,onehalf:834,lessequal:549,ocircumflex:611,ntilde:611,Uhungarumlaut:722,Eacute:667,emacron:556,gbreve:611,onequarter:834,Scaron:667,Scommaaccent:667,Ohungarumlaut:778,degree:400,ograve:611,Ccaron:722,ugrave:611,radical:549,Dcaron:722,rcommaaccent:389,Ntilde:722,otilde:611,Rcommaaccent:722,Lcommaaccent:611,Atilde:722,Aogonek:722,Aring:722,Otilde:778,zdotaccent:500,Ecaron:667,Iogonek:278,kcommaaccent:556,minus:584,Icircumflex:278,ncaron:611,tcommaaccent:333,logicalnot:584,odieresis:611,udieresis:611,notequal:549,gcommaaccent:611,eth:611,zcaron:500,ncommaaccent:611,onesuperior:333,imacron:278,Euro:556},"Helvetica-BoldOblique":{space:278,exclam:333,quotedbl:474,numbersign:556,dollar:556,percent:889,ampersand:722,quoteright:278,parenleft:333,parenright:333,asterisk:389,plus:584,comma:278,hyphen:333,period:278,slash:278,zero:556,one:556,two:556,three:556,four:556,five:556,six:556,seven:556,eight:556,nine:556,colon:333,semicolon:333,less:584,equal:584,greater:584,question:611,at:975,A:722,B:722,C:722,D:722,E:667,F:611,G:778,H:722,I:278,J:556,K:722,L:611,M:833,N:722,O:778,P:667,Q:778,R:722,S:667,T:611,U:722,V:667,W:944,X:667,Y:667,Z:611,bracketleft:333,backslash:278,bracketright:333,asciicircum:584,underscore:556,quoteleft:278,a:556,b:611,c:556,d:611,e:556,f:333,g:611,h:611,i:278,j:278,k:556,l:278,m:889,n:611,o:611,p:611,q:611,r:389,s:556,t:333,u:611,v:556,w:778,x:556,y:556,z:500,braceleft:389,bar:280,braceright:389,asciitilde:584,exclamdown:333,cent:556,sterling:556,fraction:167,yen:556,florin:556,section:556,currency:556,quotesingle:238,quotedblleft:500,guillemotleft:556,guilsinglleft:333,guilsinglright:333,fi:611,fl:611,endash:556,dagger:556,daggerdbl:556,periodcentered:278,paragraph:556,bullet:350,quotesinglbase:278,quotedblbase:500,quotedblright:500,guillemotright:556,ellipsis:1e3,perthousand:1e3,questiondown:611,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:370,Lslash:611,Oslash:778,OE:1e3,ordmasculine:365,ae:889,dotlessi:278,lslash:278,oslash:611,oe:944,germandbls:611,Idieresis:278,eacute:556,abreve:556,uhungarumlaut:611,ecaron:556,Ydieresis:667,divide:584,Yacute:667,Acircumflex:722,aacute:556,Ucircumflex:722,yacute:556,scommaaccent:556,ecircumflex:556,Uring:722,Udieresis:722,aogonek:556,Uacute:722,uogonek:611,Edieresis:667,Dcroat:722,commaaccent:250,copyright:737,Emacron:667,ccaron:556,aring:556,Ncommaaccent:722,lacute:278,agrave:556,Tcommaaccent:611,Cacute:722,atilde:556,Edotaccent:667,scaron:556,scedilla:556,iacute:278,lozenge:494,Rcaron:722,Gcommaaccent:778,ucircumflex:611,acircumflex:556,Amacron:722,rcaron:389,ccedilla:556,Zdotaccent:611,Thorn:667,Omacron:778,Racute:722,Sacute:667,dcaron:743,Umacron:722,uring:611,threesuperior:333,Ograve:778,Agrave:722,Abreve:722,multiply:584,uacute:611,Tcaron:611,partialdiff:494,ydieresis:556,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:556,edieresis:556,cacute:556,nacute:611,umacron:611,Ncaron:722,Iacute:278,plusminus:584,brokenbar:280,registered:737,Gbreve:778,Idotaccent:278,summation:600,Egrave:667,racute:389,omacron:611,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:278,tcaron:389,eogonek:556,Uogonek:722,Aacute:722,Adieresis:722,egrave:556,zacute:500,iogonek:278,Oacute:778,oacute:611,amacron:556,sacute:556,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:611,twosuperior:333,Odieresis:778,mu:611,igrave:278,ohungarumlaut:611,Eogonek:667,dcroat:611,threequarters:834,Scedilla:667,lcaron:400,Kcommaaccent:722,Lacute:611,trademark:1e3,edotaccent:556,Igrave:278,Imacron:278,Lcaron:611,onehalf:834,lessequal:549,ocircumflex:611,ntilde:611,Uhungarumlaut:722,Eacute:667,emacron:556,gbreve:611,onequarter:834,Scaron:667,Scommaaccent:667,Ohungarumlaut:778,degree:400,ograve:611,Ccaron:722,ugrave:611,radical:549,Dcaron:722,rcommaaccent:389,Ntilde:722,otilde:611,Rcommaaccent:722,Lcommaaccent:611,Atilde:722,Aogonek:722,Aring:722,Otilde:778,zdotaccent:500,Ecaron:667,Iogonek:278,kcommaaccent:556,minus:584,Icircumflex:278,ncaron:611,tcommaaccent:333,logicalnot:584,odieresis:611,udieresis:611,notequal:549,gcommaaccent:611,eth:611,zcaron:500,ncommaaccent:611,onesuperior:333,imacron:278,Euro:556},"Helvetica-Oblique":{space:278,exclam:278,quotedbl:355,numbersign:556,dollar:556,percent:889,ampersand:667,quoteright:222,parenleft:333,parenright:333,asterisk:389,plus:584,comma:278,hyphen:333,period:278,slash:278,zero:556,one:556,two:556,three:556,four:556,five:556,six:556,seven:556,eight:556,nine:556,colon:278,semicolon:278,less:584,equal:584,greater:584,question:556,at:1015,A:667,B:667,C:722,D:722,E:667,F:611,G:778,H:722,I:278,J:500,K:667,L:556,M:833,N:722,O:778,P:667,Q:778,R:722,S:667,T:611,U:722,V:667,W:944,X:667,Y:667,Z:611,bracketleft:278,backslash:278,bracketright:278,asciicircum:469,underscore:556,quoteleft:222,a:556,b:556,c:500,d:556,e:556,f:278,g:556,h:556,i:222,j:222,k:500,l:222,m:833,n:556,o:556,p:556,q:556,r:333,s:500,t:278,u:556,v:500,w:722,x:500,y:500,z:500,braceleft:334,bar:260,braceright:334,asciitilde:584,exclamdown:333,cent:556,sterling:556,fraction:167,yen:556,florin:556,section:556,currency:556,quotesingle:191,quotedblleft:333,guillemotleft:556,guilsinglleft:333,guilsinglright:333,fi:500,fl:500,endash:556,dagger:556,daggerdbl:556,periodcentered:278,paragraph:537,bullet:350,quotesinglbase:222,quotedblbase:333,quotedblright:333,guillemotright:556,ellipsis:1e3,perthousand:1e3,questiondown:611,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:370,Lslash:556,Oslash:778,OE:1e3,ordmasculine:365,ae:889,dotlessi:278,lslash:222,oslash:611,oe:944,germandbls:611,Idieresis:278,eacute:556,abreve:556,uhungarumlaut:556,ecaron:556,Ydieresis:667,divide:584,Yacute:667,Acircumflex:667,aacute:556,Ucircumflex:722,yacute:500,scommaaccent:500,ecircumflex:556,Uring:722,Udieresis:722,aogonek:556,Uacute:722,uogonek:556,Edieresis:667,Dcroat:722,commaaccent:250,copyright:737,Emacron:667,ccaron:500,aring:556,Ncommaaccent:722,lacute:222,agrave:556,Tcommaaccent:611,Cacute:722,atilde:556,Edotaccent:667,scaron:500,scedilla:500,iacute:278,lozenge:471,Rcaron:722,Gcommaaccent:778,ucircumflex:556,acircumflex:556,Amacron:667,rcaron:333,ccedilla:500,Zdotaccent:611,Thorn:667,Omacron:778,Racute:722,Sacute:667,dcaron:643,Umacron:722,uring:556,threesuperior:333,Ograve:778,Agrave:667,Abreve:667,multiply:584,uacute:556,Tcaron:611,partialdiff:476,ydieresis:500,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:556,edieresis:556,cacute:500,nacute:556,umacron:556,Ncaron:722,Iacute:278,plusminus:584,brokenbar:260,registered:737,Gbreve:778,Idotaccent:278,summation:600,Egrave:667,racute:333,omacron:556,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:222,tcaron:317,eogonek:556,Uogonek:722,Aacute:667,Adieresis:667,egrave:556,zacute:500,iogonek:222,Oacute:778,oacute:556,amacron:556,sacute:500,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:556,twosuperior:333,Odieresis:778,mu:556,igrave:278,ohungarumlaut:556,Eogonek:667,dcroat:556,threequarters:834,Scedilla:667,lcaron:299,Kcommaaccent:667,Lacute:556,trademark:1e3,edotaccent:556,Igrave:278,Imacron:278,Lcaron:556, +onehalf:834,lessequal:549,ocircumflex:556,ntilde:556,Uhungarumlaut:722,Eacute:667,emacron:556,gbreve:556,onequarter:834,Scaron:667,Scommaaccent:667,Ohungarumlaut:778,degree:400,ograve:556,Ccaron:722,ugrave:556,radical:453,Dcaron:722,rcommaaccent:333,Ntilde:722,otilde:556,Rcommaaccent:722,Lcommaaccent:556,Atilde:667,Aogonek:667,Aring:667,Otilde:778,zdotaccent:500,Ecaron:667,Iogonek:278,kcommaaccent:500,minus:584,Icircumflex:278,ncaron:556,tcommaaccent:278,logicalnot:584,odieresis:556,udieresis:556,notequal:549,gcommaaccent:556,eth:556,zcaron:500,ncommaaccent:556,onesuperior:333,imacron:278,Euro:556},Symbol:{space:250,exclam:333,universal:713,numbersign:500,existential:549,percent:833,ampersand:778,suchthat:439,parenleft:333,parenright:333,asteriskmath:500,plus:549,comma:250,minus:549,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:278,semicolon:278,less:549,equal:549,greater:549,question:444,congruent:549,Alpha:722,Beta:667,Chi:722,Delta:612,Epsilon:611,Phi:763,Gamma:603,Eta:722,Iota:333,theta1:631,Kappa:722,Lambda:686,Mu:889,Nu:722,Omicron:722,Pi:768,Theta:741,Rho:556,Sigma:592,Tau:611,Upsilon:690,sigma1:439,Omega:768,Xi:645,Psi:795,Zeta:611,bracketleft:333,therefore:863,bracketright:333,perpendicular:658,underscore:500,radicalex:500,alpha:631,beta:549,chi:549,delta:494,epsilon:439,phi:521,gamma:411,eta:603,iota:329,phi1:603,kappa:549,lambda:549,mu:576,nu:521,omicron:549,pi:549,theta:521,rho:549,sigma:603,tau:439,upsilon:576,omega1:713,omega:686,xi:493,psi:686,zeta:494,braceleft:480,bar:200,braceright:480,similar:549,Euro:750,Upsilon1:620,minute:247,lessequal:549,fraction:167,infinity:713,florin:500,club:753,diamond:753,heart:753,spade:753,arrowboth:1042,arrowleft:987,arrowup:603,arrowright:987,arrowdown:603,degree:400,plusminus:549,second:411,greaterequal:549,multiply:549,proportional:713,partialdiff:494,bullet:460,divide:549,notequal:549,equivalence:549,approxequal:549,ellipsis:1e3,arrowvertex:603,arrowhorizex:1e3,carriagereturn:658,aleph:823,Ifraktur:686,Rfraktur:795,weierstrass:987,circlemultiply:768,circleplus:768,emptyset:823,intersection:768,union:768,propersuperset:713,reflexsuperset:713,notsubset:713,propersubset:713,reflexsubset:713,element:713,notelement:713,angle:768,gradient:713,registerserif:790,copyrightserif:790,trademarkserif:890,product:823,radical:549,dotmath:250,logicalnot:713,logicaland:603,logicalor:603,arrowdblboth:1042,arrowdblleft:987,arrowdblup:603,arrowdblright:987,arrowdbldown:603,lozenge:494,angleleft:329,registersans:790,copyrightsans:790,trademarksans:786,summation:713,parenlefttp:384,parenleftex:384,parenleftbt:384,bracketlefttp:384,bracketleftex:384,bracketleftbt:384,bracelefttp:494,braceleftmid:494,braceleftbt:494,braceex:494,angleright:329,integral:274,integraltp:686,integralex:686,integralbt:686,parenrighttp:384,parenrightex:384,parenrightbt:384,bracketrighttp:384,bracketrightex:384,bracketrightbt:384,bracerighttp:494,bracerightmid:494,bracerightbt:494,apple:790},"Times-Roman":{space:250,exclam:333,quotedbl:408,numbersign:500,dollar:500,percent:833,ampersand:778,quoteright:333,parenleft:333,parenright:333,asterisk:500,plus:564,comma:250,hyphen:333,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:278,semicolon:278,less:564,equal:564,greater:564,question:444,at:921,A:722,B:667,C:667,D:722,E:611,F:556,G:722,H:722,I:333,J:389,K:722,L:611,M:889,N:722,O:722,P:556,Q:722,R:667,S:556,T:611,U:722,V:722,W:944,X:722,Y:722,Z:611,bracketleft:333,backslash:278,bracketright:333,asciicircum:469,underscore:500,quoteleft:333,a:444,b:500,c:444,d:500,e:444,f:333,g:500,h:500,i:278,j:278,k:500,l:278,m:778,n:500,o:500,p:500,q:500,r:333,s:389,t:278,u:500,v:500,w:722,x:500,y:500,z:444,braceleft:480,bar:200,braceright:480,asciitilde:541,exclamdown:333,cent:500,sterling:500,fraction:167,yen:500,florin:500,section:500,currency:500,quotesingle:180,quotedblleft:444,guillemotleft:500,guilsinglleft:333,guilsinglright:333,fi:556,fl:556,endash:500,dagger:500,daggerdbl:500,periodcentered:250,paragraph:453,bullet:350,quotesinglbase:333,quotedblbase:444,quotedblright:444,guillemotright:500,ellipsis:1e3,perthousand:1e3,questiondown:444,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:889,ordfeminine:276,Lslash:611,Oslash:722,OE:889,ordmasculine:310,ae:667,dotlessi:278,lslash:278,oslash:500,oe:722,germandbls:500,Idieresis:333,eacute:444,abreve:444,uhungarumlaut:500,ecaron:444,Ydieresis:722,divide:564,Yacute:722,Acircumflex:722,aacute:444,Ucircumflex:722,yacute:500,scommaaccent:389,ecircumflex:444,Uring:722,Udieresis:722,aogonek:444,Uacute:722,uogonek:500,Edieresis:611,Dcroat:722,commaaccent:250,copyright:760,Emacron:611,ccaron:444,aring:444,Ncommaaccent:722,lacute:278,agrave:444,Tcommaaccent:611,Cacute:667,atilde:444,Edotaccent:611,scaron:389,scedilla:389,iacute:278,lozenge:471,Rcaron:667,Gcommaaccent:722,ucircumflex:500,acircumflex:444,Amacron:722,rcaron:333,ccedilla:444,Zdotaccent:611,Thorn:556,Omacron:722,Racute:667,Sacute:556,dcaron:588,Umacron:722,uring:500,threesuperior:300,Ograve:722,Agrave:722,Abreve:722,multiply:564,uacute:500,Tcaron:611,partialdiff:476,ydieresis:500,Nacute:722,icircumflex:278,Ecircumflex:611,adieresis:444,edieresis:444,cacute:444,nacute:500,umacron:500,Ncaron:722,Iacute:333,plusminus:564,brokenbar:200,registered:760,Gbreve:722,Idotaccent:333,summation:600,Egrave:611,racute:333,omacron:500,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:667,lcommaaccent:278,tcaron:326,eogonek:444,Uogonek:722,Aacute:722,Adieresis:722,egrave:444,zacute:444,iogonek:278,Oacute:722,oacute:500,amacron:444,sacute:389,idieresis:278,Ocircumflex:722,Ugrave:722,Delta:612,thorn:500,twosuperior:300,Odieresis:722,mu:500,igrave:278,ohungarumlaut:500,Eogonek:611,dcroat:500,threequarters:750,Scedilla:556,lcaron:344,Kcommaaccent:722,Lacute:611,trademark:980,edotaccent:444,Igrave:333,Imacron:333,Lcaron:611,onehalf:750,lessequal:549,ocircumflex:500,ntilde:500,Uhungarumlaut:722,Eacute:611,emacron:444,gbreve:500,onequarter:750,Scaron:556,Scommaaccent:556,Ohungarumlaut:722,degree:400,ograve:500,Ccaron:667,ugrave:500,radical:453,Dcaron:722,rcommaaccent:333,Ntilde:722,otilde:500,Rcommaaccent:667,Lcommaaccent:611,Atilde:722,Aogonek:722,Aring:722,Otilde:722,zdotaccent:444,Ecaron:611,Iogonek:333,kcommaaccent:500,minus:564,Icircumflex:333,ncaron:500,tcommaaccent:278,logicalnot:564,odieresis:500,udieresis:500,notequal:549,gcommaaccent:500,eth:500,zcaron:444,ncommaaccent:500,onesuperior:300,imacron:278,Euro:500},"Times-Bold":{space:250,exclam:333,quotedbl:555,numbersign:500,dollar:500,percent:1e3,ampersand:833,quoteright:333,parenleft:333,parenright:333,asterisk:500,plus:570,comma:250,hyphen:333,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:333,semicolon:333,less:570,equal:570,greater:570,question:500,at:930,A:722,B:667,C:722,D:722,E:667,F:611,G:778,H:778,I:389,J:500,K:778,L:667,M:944,N:722,O:778,P:611,Q:778,R:722,S:556,T:667,U:722,V:722,W:1e3,X:722,Y:722,Z:667,bracketleft:333,backslash:278,bracketright:333,asciicircum:581,underscore:500,quoteleft:333,a:500,b:556,c:444,d:556,e:444,f:333,g:500,h:556,i:278,j:333,k:556,l:278,m:833,n:556,o:500,p:556,q:556,r:444,s:389,t:333,u:556,v:500,w:722,x:500,y:500,z:444,braceleft:394,bar:220,braceright:394,asciitilde:520,exclamdown:333,cent:500,sterling:500,fraction:167,yen:500,florin:500,section:500,currency:500,quotesingle:278,quotedblleft:500,guillemotleft:500,guilsinglleft:333,guilsinglright:333,fi:556,fl:556,endash:500,dagger:500,daggerdbl:500,periodcentered:250,paragraph:540,bullet:350,quotesinglbase:333,quotedblbase:500,quotedblright:500,guillemotright:500,ellipsis:1e3,perthousand:1e3,questiondown:500,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:300,Lslash:667,Oslash:778,OE:1e3,ordmasculine:330,ae:722,dotlessi:278,lslash:278,oslash:500,oe:722,germandbls:556,Idieresis:389,eacute:444,abreve:500,uhungarumlaut:556,ecaron:444,Ydieresis:722,divide:570,Yacute:722,Acircumflex:722,aacute:500,Ucircumflex:722,yacute:500,scommaaccent:389,ecircumflex:444,Uring:722,Udieresis:722,aogonek:500,Uacute:722,uogonek:556,Edieresis:667,Dcroat:722,commaaccent:250,copyright:747,Emacron:667,ccaron:444,aring:500,Ncommaaccent:722,lacute:278,agrave:500,Tcommaaccent:667,Cacute:722,atilde:500,Edotaccent:667,scaron:389,scedilla:389,iacute:278,lozenge:494,Rcaron:722,Gcommaaccent:778,ucircumflex:556,acircumflex:500,Amacron:722,rcaron:444,ccedilla:444,Zdotaccent:667,Thorn:611,Omacron:778,Racute:722,Sacute:556,dcaron:672,Umacron:722,uring:556,threesuperior:300,Ograve:778,Agrave:722,Abreve:722,multiply:570,uacute:556,Tcaron:667,partialdiff:494,ydieresis:500,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:500,edieresis:444,cacute:444,nacute:556,umacron:556,Ncaron:722,Iacute:389,plusminus:570,brokenbar:220,registered:747,Gbreve:778,Idotaccent:389,summation:600,Egrave:667,racute:444,omacron:500,Zacute:667,Zcaron:667,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:278,tcaron:416,eogonek:444,Uogonek:722,Aacute:722,Adieresis:722,egrave:444,zacute:444,iogonek:278,Oacute:778,oacute:500,amacron:500,sacute:389,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:556,twosuperior:300,Odieresis:778,mu:556,igrave:278,ohungarumlaut:500,Eogonek:667,dcroat:556,threequarters:750,Scedilla:556,lcaron:394,Kcommaaccent:778,Lacute:667,trademark:1e3,edotaccent:444,Igrave:389,Imacron:389,Lcaron:667,onehalf:750,lessequal:549,ocircumflex:500,ntilde:556,Uhungarumlaut:722,Eacute:667,emacron:444,gbreve:500,onequarter:750,Scaron:556,Scommaaccent:556,Ohungarumlaut:778,degree:400,ograve:500,Ccaron:722,ugrave:556,radical:549,Dcaron:722,rcommaaccent:444,Ntilde:722,otilde:500,Rcommaaccent:722,Lcommaaccent:667,Atilde:722,Aogonek:722,Aring:722,Otilde:778,zdotaccent:444,Ecaron:667,Iogonek:389,kcommaaccent:556,minus:570,Icircumflex:389,ncaron:556,tcommaaccent:333,logicalnot:570,odieresis:500,udieresis:556,notequal:549,gcommaaccent:500,eth:500,zcaron:444,ncommaaccent:556,onesuperior:300,imacron:278,Euro:500},"Times-BoldItalic":{space:250,exclam:389,quotedbl:555,numbersign:500,dollar:500,percent:833,ampersand:778,quoteright:333,parenleft:333,parenright:333,asterisk:500,plus:570,comma:250,hyphen:333,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:333,semicolon:333,less:570,equal:570,greater:570,question:500,at:832,A:667,B:667,C:667,D:722,E:667,F:667,G:722,H:778,I:389,J:500,K:667,L:611,M:889,N:722,O:722,P:611,Q:722,R:667,S:556,T:611,U:722,V:667,W:889,X:667,Y:611,Z:611,bracketleft:333,backslash:278,bracketright:333,asciicircum:570,underscore:500,quoteleft:333,a:500,b:500,c:444,d:500,e:444,f:333,g:500,h:556,i:278,j:278,k:500,l:278,m:778,n:556,o:500,p:500,q:500,r:389,s:389,t:278,u:556,v:444,w:667,x:500,y:444,z:389,braceleft:348,bar:220,braceright:348,asciitilde:570,exclamdown:389,cent:500,sterling:500,fraction:167,yen:500,florin:500,section:500,currency:500,quotesingle:278,quotedblleft:500,guillemotleft:500,guilsinglleft:333,guilsinglright:333,fi:556,fl:556,endash:500,dagger:500,daggerdbl:500,periodcentered:250,paragraph:500,bullet:350,quotesinglbase:333,quotedblbase:500,quotedblright:500,guillemotright:500,ellipsis:1e3,perthousand:1e3,questiondown:500,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:944,ordfeminine:266,Lslash:611,Oslash:722,OE:944,ordmasculine:300,ae:722,dotlessi:278,lslash:278,oslash:500,oe:722,germandbls:500,Idieresis:389,eacute:444,abreve:500,uhungarumlaut:556,ecaron:444,Ydieresis:611,divide:570,Yacute:611,Acircumflex:667,aacute:500,Ucircumflex:722,yacute:444,scommaaccent:389,ecircumflex:444,Uring:722,Udieresis:722,aogonek:500,Uacute:722,uogonek:556,Edieresis:667,Dcroat:722,commaaccent:250,copyright:747,Emacron:667,ccaron:444,aring:500,Ncommaaccent:722,lacute:278,agrave:500,Tcommaaccent:611,Cacute:667,atilde:500,Edotaccent:667,scaron:389,scedilla:389,iacute:278,lozenge:494,Rcaron:667,Gcommaaccent:722,ucircumflex:556,acircumflex:500,Amacron:667,rcaron:389,ccedilla:444,Zdotaccent:611,Thorn:611,Omacron:722,Racute:667,Sacute:556,dcaron:608,Umacron:722,uring:556,threesuperior:300,Ograve:722,Agrave:667,Abreve:667,multiply:570,uacute:556,Tcaron:611,partialdiff:494,ydieresis:444,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:500,edieresis:444,cacute:444,nacute:556,umacron:556,Ncaron:722,Iacute:389,plusminus:570,brokenbar:220,registered:747,Gbreve:722,Idotaccent:389,summation:600,Egrave:667,racute:389,omacron:500,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:667,lcommaaccent:278,tcaron:366,eogonek:444,Uogonek:722,Aacute:667,Adieresis:667,egrave:444,zacute:389,iogonek:278,Oacute:722,oacute:500,amacron:500,sacute:389,idieresis:278,Ocircumflex:722,Ugrave:722,Delta:612,thorn:500,twosuperior:300,Odieresis:722,mu:576,igrave:278,ohungarumlaut:500,Eogonek:667,dcroat:500,threequarters:750,Scedilla:556,lcaron:382,Kcommaaccent:667,Lacute:611,trademark:1e3,edotaccent:444,Igrave:389,Imacron:389,Lcaron:611,onehalf:750,lessequal:549,ocircumflex:500,ntilde:556,Uhungarumlaut:722,Eacute:667,emacron:444,gbreve:500,onequarter:750,Scaron:556,Scommaaccent:556,Ohungarumlaut:722,degree:400,ograve:500,Ccaron:667,ugrave:556,radical:549,Dcaron:722,rcommaaccent:389,Ntilde:722,otilde:500,Rcommaaccent:667,Lcommaaccent:611,Atilde:667,Aogonek:667,Aring:667,Otilde:722,zdotaccent:389,Ecaron:667,Iogonek:389,kcommaaccent:500,minus:606,Icircumflex:389,ncaron:556,tcommaaccent:278,logicalnot:606,odieresis:500,udieresis:556,notequal:549,gcommaaccent:500,eth:500,zcaron:389,ncommaaccent:556,onesuperior:300,imacron:278,Euro:500},"Times-Italic":{space:250,exclam:333,quotedbl:420,numbersign:500,dollar:500,percent:833,ampersand:778,quoteright:333,parenleft:333,parenright:333,asterisk:500,plus:675,comma:250,hyphen:333,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:333,semicolon:333,less:675,equal:675,greater:675,question:500,at:920,A:611,B:611,C:667,D:722,E:611,F:611,G:722,H:722,I:333,J:444,K:667,L:556,M:833,N:667,O:722,P:611,Q:722,R:611,S:500,T:556,U:722,V:611,W:833,X:611,Y:556,Z:556,bracketleft:389,backslash:278,bracketright:389,asciicircum:422,underscore:500,quoteleft:333,a:500,b:500,c:444,d:500,e:444,f:278,g:500,h:500,i:278,j:278,k:444,l:278,m:722,n:500,o:500,p:500,q:500,r:389,s:389,t:278,u:500,v:444,w:667,x:444,y:444,z:389,braceleft:400,bar:275,braceright:400,asciitilde:541,exclamdown:389,cent:500,sterling:500,fraction:167,yen:500,florin:500,section:500,currency:500,quotesingle:214,quotedblleft:556,guillemotleft:500,guilsinglleft:333,guilsinglright:333,fi:500,fl:500,endash:500,dagger:500,daggerdbl:500,periodcentered:250,paragraph:523,bullet:350,quotesinglbase:333,quotedblbase:556,quotedblright:556,guillemotright:500,ellipsis:889,perthousand:1e3,questiondown:500,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:889,AE:889,ordfeminine:276,Lslash:556,Oslash:722,OE:944,ordmasculine:310,ae:667,dotlessi:278,lslash:278,oslash:500,oe:667,germandbls:500,Idieresis:333,eacute:444,abreve:500,uhungarumlaut:500,ecaron:444,Ydieresis:556,divide:675,Yacute:556,Acircumflex:611,aacute:500,Ucircumflex:722,yacute:444,scommaaccent:389,ecircumflex:444,Uring:722,Udieresis:722,aogonek:500,Uacute:722,uogonek:500,Edieresis:611,Dcroat:722,commaaccent:250,copyright:760,Emacron:611,ccaron:444,aring:500,Ncommaaccent:667,lacute:278,agrave:500,Tcommaaccent:556,Cacute:667,atilde:500,Edotaccent:611,scaron:389,scedilla:389,iacute:278,lozenge:471,Rcaron:611,Gcommaaccent:722,ucircumflex:500,acircumflex:500,Amacron:611,rcaron:389,ccedilla:444,Zdotaccent:556,Thorn:611,Omacron:722,Racute:611,Sacute:500,dcaron:544,Umacron:722,uring:500,threesuperior:300,Ograve:722,Agrave:611,Abreve:611,multiply:675,uacute:500,Tcaron:556,partialdiff:476,ydieresis:444,Nacute:667,icircumflex:278,Ecircumflex:611,adieresis:500,edieresis:444,cacute:444,nacute:500,umacron:500,Ncaron:667,Iacute:333,plusminus:675,brokenbar:275,registered:760,Gbreve:722,Idotaccent:333,summation:600,Egrave:611,racute:389,omacron:500,Zacute:556,Zcaron:556,greaterequal:549,Eth:722,Ccedilla:667,lcommaaccent:278,tcaron:300,eogonek:444,Uogonek:722,Aacute:611,Adieresis:611,egrave:444,zacute:389,iogonek:278,Oacute:722,oacute:500,amacron:500,sacute:389,idieresis:278,Ocircumflex:722,Ugrave:722,Delta:612,thorn:500,twosuperior:300,Odieresis:722,mu:500,igrave:278,ohungarumlaut:500,Eogonek:611,dcroat:500,threequarters:750,Scedilla:500,lcaron:300,Kcommaaccent:667,Lacute:556,trademark:980,edotaccent:444,Igrave:333,Imacron:333,Lcaron:611,onehalf:750,lessequal:549,ocircumflex:500,ntilde:500,Uhungarumlaut:722,Eacute:611,emacron:444,gbreve:500,onequarter:750,Scaron:500,Scommaaccent:500,Ohungarumlaut:722,degree:400,ograve:500,Ccaron:667,ugrave:500,radical:453,Dcaron:722,rcommaaccent:389,Ntilde:667,otilde:500,Rcommaaccent:611,Lcommaaccent:556,Atilde:611,Aogonek:611,Aring:611,Otilde:722,zdotaccent:389,Ecaron:611,Iogonek:333,kcommaaccent:444,minus:675,Icircumflex:333,ncaron:500,tcommaaccent:278,logicalnot:675,odieresis:500,udieresis:500,notequal:549,gcommaaccent:500,eth:500,zcaron:389,ncommaaccent:500,onesuperior:300,imacron:278,Euro:500},ZapfDingbats:{space:278,a1:974,a2:961,a202:974,a3:980,a4:719,a5:789,a119:790,a118:791,a117:690,a11:960,a12:939,a13:549,a14:855,a15:911,a16:933,a105:911,a17:945,a18:974,a19:755,a20:846,a21:762,a22:761,a23:571,a24:677,a25:763,a26:760,a27:759,a28:754,a6:494,a7:552,a8:537,a9:577,a10:692,a29:786,a30:788,a31:788,a32:790,a33:793,a34:794,a35:816,a36:823,a37:789,a38:841,a39:823,a40:833,a41:816,a42:831,a43:923,a44:744,a45:723,a46:749,a47:790,a48:792,a49:695,a50:776,a51:768,a52:792,a53:759,a54:707,a55:708,a56:682,a57:701,a58:826,a59:815,a60:789,a61:789,a62:707,a63:687,a64:696,a65:689,a66:786,a67:787,a68:713,a69:791,a70:785,a71:791,a72:873,a73:761,a74:762,a203:762,a75:759,a204:759,a76:892,a77:892,a78:788,a79:784,a81:438,a82:138,a83:277,a84:415,a97:392,a98:392,a99:668,a100:668,a89:390,a90:390,a93:317,a94:317,a91:276,a92:276,a205:509,a85:509,a206:410,a86:410,a87:234,a88:234,a95:334,a96:334,a101:732,a102:544,a103:544,a104:910,a106:667,a107:760,a108:760,a112:776,a111:595,a110:694,a109:626,a120:788,a121:788,a122:788,a123:788,a124:788,a125:788,a126:788,a127:788,a128:788,a129:788,a130:788,a131:788,a132:788,a133:788,a134:788,a135:788,a136:788,a137:788,a138:788,a139:788,a140:788,a141:788,a142:788,a143:788,a144:788,a145:788,a146:788,a147:788,a148:788,a149:788,a150:788,a151:788,a152:788,a153:788,a154:788,a155:788,a156:788,a157:788,a158:788,a159:788,a160:894,a161:838,a163:1016,a164:458,a196:748,a165:924,a192:748,a166:918,a167:927,a168:928,a169:928,a170:834,a171:873,a172:828,a173:924,a162:924,a174:917,a175:930,a176:931,a177:463,a178:883,a179:836,a193:836,a180:867,a199:867,a181:696,a200:696,a182:874,a201:874,a183:760,a184:946,a197:771,a185:865,a194:771,a198:888,a186:967,a195:888,a187:831,a188:873,a189:927,a190:970,a191:918}},Dc={},Ec=1e3,Fc=function(){function d(a,b,c){this.lexer=a,this.allowStreams=b,this.xref=c,this.imageCache={},this.refill()}return d.prototype={refill:function(){this.buf1=this.lexer.getObj(),this.buf2=this.lexer.getObj()},shift:function(){A(this.buf2,"ID")?(this.buf1=this.buf2,this.buf2=null):(this.buf1=this.buf2,this.buf2=this.lexer.getObj())},tryShift:function(){try{return this.shift(),!0}catch(a){if(a instanceof ja)throw a;return!1}},getObj:function(b){var d=this.buf1;if(this.shift(),d instanceof za)switch(d.cmd){case"BI":return this.makeInlineImage(b);case"[":for(var e=[];!A(this.buf1,"]")&&!R(this.buf1);)e.push(this.getObj(b));return R(this.buf1)&&c("End of file inside array"),this.shift(),e;case"<<":for(var f=new Aa(this.xref);!A(this.buf1,">>")&&!R(this.buf1);)if(z(this.buf1)){var g=this.buf1.name;if(this.shift(),R(this.buf1))break;f.set(g,this.getObj(b))}else a("Malformed dictionary: key must be a name object"),this.shift();return R(this.buf1)&&c("End of file inside dictionary"),A(this.buf2,"stream")?this.allowStreams?this.makeStream(f,b):f:(this.shift(),f);default:return d}if(w(d)){var h=d;if(w(this.buf1)&&A(this.buf2,"R")){var i=new Ba(h,this.buf1);return this.shift(),this.shift(),i}return h}if(y(d)){var j=d;return b&&(j=b.decryptString(j)),j}return d},findDefaultInlineStreamEnd:function(a){for(var b,c,d,f,g=69,h=73,i=32,j=10,k=13,l=a.pos,m=0;-1!==(b=a.getByte());)if(0===m)m=b===g?1:0;else if(1===m)m=b===h?2:0;else if(e(2===m),b===i||b===j||b===k){for(d=5,f=a.peekBytes(d),c=0;d>c;c++)if(b=f[c],b!==j&&b!==k&&(i>b||b>127)){m=0;break}if(2===m)break}else m=0;return a.pos-4-l},findDCTDecodeInlineStreamEnd:function(a){for(var c,d,e,f=a.pos,g=!1;-1!==(c=a.getByte());)if(255===c){switch(a.getByte()){case 0:break;case 255:a.skip(-1);break;case 217:g=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:d=a.getUint16(),d>2?a.skip(d-2):a.skip(-2)}if(g)break}return e=a.pos-f,-1===c?(b("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead."),a.skip(-e),this.findDefaultInlineStreamEnd(a)):(this.inlineStreamSkipEI(a),e)},findASCII85DecodeInlineStreamEnd:function(a){for(var c,d,e=126,f=62,g=a.pos;-1!==(c=a.getByte());)if(c===e&&a.peekByte()===f){a.skip();break}return d=a.pos-g,-1===c?(b("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead."),a.skip(-d),this.findDefaultInlineStreamEnd(a)):(this.inlineStreamSkipEI(a),d)},findASCIIHexDecodeInlineStreamEnd:function(a){for(var c,d,e=62,f=a.pos;-1!==(c=a.getByte())&&c!==e;);return d=a.pos-f,-1===c?(b("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead."),a.skip(-d),this.findDefaultInlineStreamEnd(a)):(this.inlineStreamSkipEI(a),d)},inlineStreamSkipEI:function(a){for(var b,c=69,d=73,e=0;-1!==(b=a.getByte());)if(0===e)e=b===c?1:0;else if(1===e)e=b===d?2:0;else if(2===e)break},makeInlineImage:function(a){for(var b=this.lexer,d=b.stream,e=new Aa(this.xref);!A(this.buf1,"ID")&&!R(this.buf1);){z(this.buf1)||c("Dictionary key must be a name object");var f=this.buf1.name;if(this.shift(),R(this.buf1))break;e.set(f,this.getObj(a))}var g,h=e.get("Filter","F");z(h)?g=h.name:C(h)&&z(h[0])&&(g=h[0].name);var i,j,k,l=d.pos;i="DCTDecode"===g||"DCT"===g?this.findDCTDecodeInlineStreamEnd(d):"ASCII85Decide"===g||"A85"===g?this.findASCII85DecodeInlineStreamEnd(d):"ASCIIHexDecode"===g||"AHx"===g?this.findASCIIHexDecodeInlineStreamEnd(d):this.findDefaultInlineStreamEnd(d);var m,n=d.makeSubStream(l,i,e);if(Ec>i){var o=n.getBytes();n.reset();var p=1,q=0;for(j=0,k=o.length;k>j;++j)p+=255&o[j],q+=p;if(m=q%65521<<16|p%65521,this.imageCache.adler32===m)return this.buf2=za.get("EI"),this.shift(),this.imageCache[m].reset(),this.imageCache[m]}return a&&(n=a.createStream(n,i)),n=this.filter(n,e,i),n.dict=e,void 0!==m&&(n.cacheKey="inline_"+i+"_"+m,this.imageCache[m]=n),this.buf2=za.get("EI"),this.shift(),n},makeStream:function(b,d){var e=this.lexer,f=e.stream;e.skipToNextLine();var g=f.pos-1,h=b.get("Length");if(w(h)||(a("Bad "+h+" attribute in stream"),h=0),f.pos=g+h,e.nextChar(),this.tryShift()&&A(this.buf2,"endstream"))this.shift();else{f.pos=g;for(var i,j,k=2048,l=9,m=[101,110,100,115,116,114,101,97,109],n=0,o=!1;f.pos=q)break;for(o=!1,i=0,j=0;q>i;i++){var r=p[i];if(r!==m[j])i-=j,j=0;else if(j++,j>=l){i++,o=!0;break}}if(o){n+=i-l,f.pos+=i-l;break}n+=q,f.pos+=q}o||c("Missing endstream"),h=n,e.nextChar(),this.shift(),this.shift()}return this.shift(),f=f.makeSubStream(g,h,b),d&&(f=d.createStream(f,h)),f=this.filter(f,b,h),f.dict=b,f},filter:function(a,b,d){var e=b.get("Filter","F"),f=b.get("DecodeParms","DP");if(z(e))return this.makeFilter(a,e.name,d,f);var g=d;if(C(e))for(var h=e,i=f,j=0,k=h.length;k>j;++j)e=h[j],z(e)||c("Bad filter name: "+e),f=null,C(i)&&j in i&&(f=i[j]),a=this.makeFilter(a,e.name,g,f),g=null;return a},makeFilter:function(a,c,d,e){if(0===a.dict.get("Length")&&!d)return b('Empty "'+c+'" stream.'),new _c(a);try{e&&this.xref&&(e=this.xref.fetchIfRef(e));var f=this.xref.stats.streamTypes;if("FlateDecode"===c||"Fl"===c)return f[Y.FLATE]=!0,e?new Rc(new Qc(a,d),d,e):new Qc(a,d);if("LZWDecode"===c||"LZW"===c){f[Y.LZW]=!0;var g=1;return e?(e.has("EarlyChange")&&(g=e.get("EarlyChange")),new Rc(new $c(a,d,g),d,e)):new $c(a,d,g)}return"DCTDecode"===c||"DCT"===c?(f[Y.DCT]=!0,new Sc(a,d,a.dict,this.xref)):"JPXDecode"===c||"JPX"===c?(f[Y.JPX]=!0,new Tc(a,d,a.dict)):"ASCII85Decode"===c||"A85"===c?(f[Y.A85]=!0,new Wc(a,d)):"ASCIIHexDecode"===c||"AHx"===c?(f[Y.AHX]=!0,new Xc(a,d)):"CCITTFaxDecode"===c||"CCF"===c?(f[Y.CCF]=!0,new Zc(a,d,e)):"RunLengthDecode"===c||"RL"===c?(f[Y.RL]=!0,new Yc(a,d)):"JBIG2Decode"===c?(f[Y.JBIG]=!0,new Uc(a,d,a.dict)):(b('filter "'+c+'" not supported yet'),a)}catch(h){if(h instanceof ja)throw h;return b('Invalid stream: "'+h+'"'),new _c(a)}}},d}(),Gc=function(){function a(a,b){this.stream=a,this.nextChar(),this.strBuf=[],this.knownCommands=b}function d(a){return a>=48&&57>=a?15&a:a>=65&&70>=a||a>=97&&102>=a?(15&a)+9:-1}a.isSpace=function(a){return 32===a||9===a||13===a||10===a};var e=[1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];return a.prototype={nextChar:function(){return this.currentChar=this.stream.getByte()},peekChar:function(){return this.stream.peekByte()},getNumber:function(){var a=this.currentChar,d=!1,e=0,f=1;if(45===a?(f=-1,a=this.nextChar(),45===a&&(a=this.nextChar())):43===a&&(a=this.nextChar()),46===a&&(e=10,a=this.nextChar()),48>a||a>57)return c("Invalid number: "+String.fromCharCode(a)),0;for(var g=a-48,h=0,i=1;(a=this.nextChar())>=0;)if(a>=48&&57>=a){var j=a-48;d?h=10*h+j:(0!==e&&(e*=10),g=10*g+j)}else if(46===a){if(0!==e)break;e=1}else if(45===a)b("Badly formated number");else{if(69!==a&&101!==a)break;if(a=this.peekChar(),43===a||45===a)i=45===a?-1:1,this.nextChar();else if(48>a||a>57)break;d=!0}return 0!==e&&(g/=e),d&&(g*=Math.pow(10,i*h)),f*g},getString:function(){var a=1,c=!1,d=this.strBuf;d.length=0;for(var e=this.nextChar();;){var f=!1;switch(0|e){case-1:b("Unterminated string"),c=!0;break;case 40:++a,d.push("(");break;case 41:0===--a?(this.nextChar(),c=!0):d.push(")");break;case 92:switch(e=this.nextChar()){case-1:b("Unterminated string"),c=!0;break;case 110:d.push("\n");break;case 114:d.push("\r");break;case 116:d.push(" ");break;case 98:d.push("\b");break;case 102:d.push("\f");break;case 92:case 40:case 41:d.push(String.fromCharCode(e));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:var g=15&e;e=this.nextChar(),f=!0,e>=48&&55>=e&&(g=(g<<3)+(15&e),e=this.nextChar(),e>=48&&55>=e&&(f=!1,g=(g<<3)+(15&e))),d.push(String.fromCharCode(g));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:d.push(String.fromCharCode(e))}break;default:d.push(String.fromCharCode(e))}if(c)break;f||(e=this.nextChar())}return d.join("")},getName:function(){var a,f=this.strBuf;for(f.length=0;(a=this.nextChar())>=0&&!e[a];)if(35===a){a=this.nextChar();var g=d(a);if(-1!==g){var h=d(this.nextChar());-1===h&&c("Illegal digit in hex char in name: "+h),f.push(String.fromCharCode(g<<4|h))}else f.push("#",String.fromCharCode(a))}else f.push(String.fromCharCode(a));return f.length>127&&b("name token is longer than allowed by the spec: "+f.length),ya.get(f.join(""))},getHexString:function(){var a=this.strBuf;a.length=0;for(var c,f,g=this.currentChar,h=!0;;){if(0>g){b("Unterminated hex string");break}if(62===g){this.nextChar();break}if(1!==e[g]){if(h){if(c=d(g),-1===c){b('Ignoring invalid character "'+g+'" in hex string'),g=this.nextChar();continue}}else{if(f=d(g),-1===f){b('Ignoring invalid character "'+g+'" in hex string'),g=this.nextChar();continue}a.push(String.fromCharCode(c<<4|f))}h=!h,g=this.nextChar()}else g=this.nextChar()}return a.join("")},getObj:function(){for(var a=!1,b=this.currentChar;;){if(0>b)return Dc;if(a)10!==b&&13!==b||(a=!1);else if(37===b)a=!0;else if(1!==e[b])break;b=this.nextChar()}switch(0|b){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:return this.nextChar(),za.get("[");case 93:return this.nextChar(),za.get("]");case 60:return b=this.nextChar(),60===b?(this.nextChar(),za.get("<<")):this.getHexString();case 62:return b=this.nextChar(),62===b?(this.nextChar(),za.get(">>")):za.get(">");case 123:return this.nextChar(),za.get("{");case 125:return this.nextChar(),za.get("}");case 41:c("Illegal character: "+b)}for(var d=String.fromCharCode(b),f=this.knownCommands,g=f&&void 0!==f[d];(b=this.nextChar())>=0&&!e[b];){var h=d+String.fromCharCode(b);if(g&&void 0===f[h])break;128===d.length&&c("Command token too long: "+d.length),d=h,g=f&&void 0!==f[d]}return"true"===d?!0:"false"===d?!1:"null"===d?null:za.get(d)},skipToNextLine:function(){for(var a=this.currentChar;a>=0;){if(13===a){a=this.nextChar(),10===a&&this.nextChar();break}if(10===a){this.nextChar();break}a=this.nextChar()}}},a}(),Hc={create:function(a){function b(a,b){var c=j.get(a);if(w(c)&&(b?c>=0:c>0))return c;throw new Error('The "'+a+'" parameter in the linearization dictionary is invalid.')}function c(){var a,b,c=j.get("H");if(C(c)&&(2===(a=c.length)||4===a)){for(var d=0;a>d;d++)if(!(w(b=c[d])&&b>0))throw new Error("Hint ("+d+") in the linearization dictionary is invalid.");return c}throw new Error("Hint array in the linearization dictionary is invalid.")}var d,e,f=new Fc(new Gc(a),!1,null),g=f.getObj(),h=f.getObj(),i=f.getObj(),j=f.getObj();if(!(w(g)&&w(h)&&A(i,"obj")&&B(j)&&x(d=j.get("Linearized"))&&d>0))return null;if((e=b("L"))!==a.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:e,hints:c(),objectNumberFirst:b("O"),endFirst:b("E"),numPages:b("N"),mainXRefEntriesOffset:b("T"),pageFirst:j.has("P")?b("P",!0):0}}},Ic=function(){function a(a){this.lexer=a,this.operators=[],this.token=null,this.prev=null}return a.prototype={nextToken:function(){this.prev=this.token,this.token=this.lexer.getToken()},accept:function(a){return this.token.type===a?(this.nextToken(),!0):!1},expect:function(a){return this.accept(a)?!0:void c("Unexpected symbol: found "+this.token.type+" expected "+a+".")},parse:function(){return this.nextToken(),this.expect(Jc.LBRACE),this.parseBlock(),this.expect(Jc.RBRACE),this.operators},parseBlock:function(){for(;;)if(this.accept(Jc.NUMBER))this.operators.push(this.prev.value);else if(this.accept(Jc.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(Jc.LBRACE))return;this.parseCondition()}},parseCondition:function(){var a=this.operators.length;if(this.operators.push(null,null),this.parseBlock(),this.expect(Jc.RBRACE),this.accept(Jc.IF))this.operators[a]=this.operators.length,this.operators[a+1]="jz";else if(this.accept(Jc.LBRACE)){var b=this.operators.length;this.operators.push(null,null);var d=this.operators.length; +this.parseBlock(),this.expect(Jc.RBRACE),this.expect(Jc.IFELSE),this.operators[b]=this.operators.length,this.operators[b+1]="j",this.operators[a]=d,this.operators[a+1]="jz"}else c("PS Function: error parsing conditional.")}},a}(),Jc={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5},Kc=function(){function a(a,b){this.type=a,this.value=b}var b={};return a.getOperator=function(c){var d=b[c];return d?d:b[c]=new a(Jc.OPERATOR,c)},a.LBRACE=new a(Jc.LBRACE,"{"),a.RBRACE=new a(Jc.RBRACE,"}"),a.IF=new a(Jc.IF,"IF"),a.IFELSE=new a(Jc.IFELSE,"IFELSE"),a}(),Lc=function(){function a(a){this.stream=a,this.nextChar(),this.strBuf=[]}return a.prototype={nextChar:function(){return this.currentChar=this.stream.getByte()},getToken:function(){for(var a=!1,b=this.currentChar;;){if(0>b)return Dc;if(a)10!==b&&13!==b||(a=!1);else if(37===b)a=!0;else if(!Gc.isSpace(b))break;b=this.nextChar()}switch(0|b){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new Kc(Jc.NUMBER,this.getNumber());case 123:return this.nextChar(),Kc.LBRACE;case 125:return this.nextChar(),Kc.RBRACE}var c=this.strBuf;for(c.length=0,c[0]=String.fromCharCode(b);(b=this.nextChar())>=0&&(b>=65&&90>=b||b>=97&&122>=b);)c.push(String.fromCharCode(b));var d=c.join("");switch(d.toLowerCase()){case"if":return Kc.IF;case"ifelse":return Kc.IFELSE;default:return Kc.getOperator(d)}},getNumber:function(){var a=this.currentChar,b=this.strBuf;for(b.length=0,b[0]=String.fromCharCode(a);(a=this.nextChar())>=0&&(a>=48&&57>=a||45===a||46===a);)b.push(String.fromCharCode(a));var d=parseFloat(b.join(""));return isNaN(d)&&c("Invalid floating point number: "+d),d}},a}(),Mc=function(){function a(a,b,c,d){this.bytes=a instanceof Uint8Array?a:new Uint8Array(a),this.start=b||0,this.pos=this.start,this.end=b+c||this.bytes.length,this.dict=d}return a.prototype={get length(){return this.end-this.start},get isEmpty(){return 0===this.length},getByte:function(){return this.pos>=this.end?-1:this.bytes[this.pos++]},getUint16:function(){var a=this.getByte(),b=this.getByte();return-1===a||-1===b?-1:(a<<8)+b},getInt32:function(){var a=this.getByte(),b=this.getByte(),c=this.getByte(),d=this.getByte();return(a<<24)+(b<<16)+(c<<8)+d},getBytes:function(a){var b=this.bytes,c=this.pos,d=this.end;if(!a)return b.subarray(c,d);var e=c+a;return e>d&&(e=d),this.pos=e,b.subarray(c,e)},peekByte:function(){var a=this.getByte();return this.pos--,a},peekBytes:function(a){var b=this.getBytes(a);return this.pos-=b.length,b},skip:function(a){a||(a=1),this.pos+=a},reset:function(){this.pos=this.start},moveStart:function(){this.start=this.pos},makeSubStream:function(b,c,d){return new a(this.bytes.buffer,b,c,d)},isStream:!0},a}(),Nc=function(){function a(a){for(var b=a.length,c=new Uint8Array(b),d=0;b>d;++d)c[d]=a.charCodeAt(d);Mc.call(this,c)}return a.prototype=Mc.prototype,a}(),Oc=function(){function a(a){if(this.pos=0,this.bufferLength=0,this.eof=!1,this.buffer=b,this.minBufferLength=512,a)for(;this.minBufferLengthc;)c*=2;var d=new Uint8Array(c);return d.set(b),this.buffer=d},getByte:function(){for(var a=this.pos;this.bufferLength<=a;){if(this.eof)return-1;this.readBlock()}return this.buffer[this.pos++]},getUint16:function(){var a=this.getByte(),b=this.getByte();return-1===a||-1===b?-1:(a<<8)+b},getInt32:function(){var a=this.getByte(),b=this.getByte(),c=this.getByte(),d=this.getByte();return(a<<24)+(b<<16)+(c<<8)+d},getBytes:function(a){var b,c=this.pos;if(a){for(this.ensureBuffer(c+a),b=c+a;!this.eof&&this.bufferLengthd&&(b=d)}else{for(;!this.eof;)this.readBlock();b=this.bufferLength}return this.pos=b,this.buffer.subarray(c,b)},peekByte:function(){var a=this.getByte();return this.pos--,a},peekBytes:function(a){var b=this.getBytes(a);return this.pos-=b.length,b},makeSubStream:function(a,b,c){for(var d=a+b;this.bufferLength<=d&&!this.eof;)this.readBlock();return new Mc(this.buffer,a,b,c)},skip:function(a){a||(a=1),this.pos+=a},reset:function(){this.pos=0},getBaseStreams:function(){return this.str&&this.str.getBaseStreams?this.str.getBaseStreams():[]}},a}(),Pc=function(){function a(a){this.streams=a,Oc.call(this,null)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){var a=this.streams;if(0===a.length)return void(this.eof=!0);var b=a.shift(),c=b.getBytes(),d=this.bufferLength,e=d+c.length,f=this.ensureBuffer(e);f.set(c,d),this.bufferLength=e},a.prototype.getBaseStreams=function(){for(var a=[],b=0,c=this.streams.length;c>b;b++){var d=this.streams[b];d.getBaseStreams&&na.appendToArray(a,d.getBaseStreams())}return a},a}(),Qc=function(){function a(a,b){this.str=a,this.dict=a.dict;var d=a.getByte(),e=a.getByte();-1!==d&&-1!==e||c("Invalid header in flate stream: "+d+", "+e),8!==(15&d)&&c("Unknown compression method in flate stream: "+d+", "+e),((d<<8)+e)%31!==0&&c("Bad FCHECK in flate stream: "+d+", "+e),32&e&&c("FDICT bit set in flate stream: "+d+", "+e),this.codeSize=0,this.codeBuf=0,Oc.call(this,b)}var b=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),e=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),f=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],g=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];return a.prototype=Object.create(Oc.prototype),a.prototype.getBits=function(a){for(var b,d=this.str,e=this.codeSize,f=this.codeBuf;a>e;)-1===(b=d.getByte())&&c("Bad encoding in flate stream"),f|=b<>a,this.codeSize=e-=a,b},a.prototype.getCode=function(a){for(var b,d=this.str,e=a[0],f=a[1],g=this.codeSize,h=this.codeBuf;f>g&&-1!==(b=d.getByte());)h|=b<>16,k=65535&i;return(1>j||j>g)&&c("Bad encoding in flate stream"),this.codeBuf=h>>j,this.codeSize=g-j,k},a.prototype.generateHuffmanTable=function(a){var b,c=a.length,d=0;for(b=0;c>b;++b)a[b]>d&&(d=a[b]);for(var e=1<=g;++g,h<<=1,i<<=1)for(var j=0;c>j;++j)if(a[j]===g){var k=0,l=h;for(b=0;g>b;++b)k=k<<1|1&l,l>>=1;for(b=k;e>b;b+=i)f[b]=g<<16|j;++h}return[f,d]},a.prototype.readBlock=function(){var a,h,i=this.str,j=this.getBits(3);if(1&j&&(this.eof=!0),j>>=1,0!==j){var k,l;if(1===j)k=f,l=g;else if(2===j){var m,n=this.getBits(5)+257,o=this.getBits(5)+1,p=this.getBits(4)+4,q=new Uint8Array(b.length);for(m=0;p>m;++m)q[b[m]]=this.getBits(3);var r=this.generateHuffmanTable(q);h=0,m=0;for(var s,t,u,v=n+o,w=new Uint8Array(v);v>m;){var x=this.getCode(r);if(16===x)s=2,t=3,u=h;else if(17===x)s=3,t=3,u=h=0;else{if(18!==x){w[m++]=h=x;continue}s=7,t=11,u=h=0}for(var y=this.getBits(s)+t;y-- >0;)w[m++]=u}k=this.generateHuffmanTable(w.subarray(0,n)),l=this.generateHuffmanTable(w.subarray(n,v))}else c("Unknown block type in flate stream");a=this.buffer;for(var z=a?a.length:0,A=this.bufferLength;;){var B=this.getCode(k);if(256>B)A+1>=z&&(a=this.ensureBuffer(A+1),z=a.length),a[A++]=B;else{if(256===B)return void(this.bufferLength=A);B-=257,B=d[B];var C=B>>16;C>0&&(C=this.getBits(C)),h=(65535&B)+C,B=this.getCode(l),B=e[B],C=B>>16,C>0&&(C=this.getBits(C));var D=(65535&B)+C;A+h>=z&&(a=this.ensureBuffer(A+h),z=a.length);for(var E=0;h>E;++E,++A)a[A]=a[A-D]}}}else{var F;-1===(F=i.getByte())&&c("Bad block header in flate stream");var G=F;-1===(F=i.getByte())&&c("Bad block header in flate stream"),G|=F<<8,-1===(F=i.getByte())&&c("Bad block header in flate stream");var H=F;-1===(F=i.getByte())&&c("Bad block header in flate stream"),H|=F<<8,H===(65535&~G)||0===G&&0===H||c("Bad uncompressed block length in flate stream"),this.codeBuf=0,this.codeSize=0;var I=this.bufferLength;a=this.ensureBuffer(I+G);var J=I+G;if(this.bufferLength=J,0===G)-1===i.peekByte()&&(this.eof=!0);else for(var K=I;J>K;++K){if(-1===(F=i.getByte())){this.eof=!0;break}a[K]=F}}},a}(),Rc=function(){function a(a,b,d){var e=this.predictor=d.get("Predictor")||1;if(1>=e)return a;2!==e&&(10>e||e>15)&&c("Unsupported predictor: "+e),2===e?this.readBlock=this.readBlockTiff:this.readBlock=this.readBlockPng,this.str=a,this.dict=a.dict;var f=this.colors=d.get("Colors")||1,g=this.bits=d.get("BitsPerComponent")||8,h=this.columns=d.get("Columns")||1;return this.pixBytes=f*g+7>>3,this.rowBytes=h*f*g+7>>3,Oc.call(this,b),this}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlockTiff=function(){var a=this.rowBytes,b=this.bufferLength,c=this.ensureBuffer(b+a),d=this.bits,e=this.colors,f=this.str.getBytes(a);if(this.eof=!f.length,!this.eof){var g,h=0,i=0,j=0,k=0,l=b;if(1===d)for(g=0;a>g;++g){var m=f[g];h=h<<8|m,c[l++]=255&(m^h>>e),h&=65535}else if(8===d){for(g=0;e>g;++g)c[l++]=f[g];for(;a>g;++g)c[l]=c[l-e]+f[g],l++}else{var n=new Uint8Array(e+1),o=(1<g;++g)for(var s=0;e>s;++s)d>j&&(h=h<<8|255&f[p++],j+=8),n[s]=n[s]+(h>>j-d)&o,j-=d,i=i<=8&&(c[q++]=i>>k-8&255,k-=8);k>0&&(c[q++]=(i<<8-k)+(h&(1<<8-k)-1))}this.bufferLength+=a}},a.prototype.readBlockPng=function(){var a=this.rowBytes,b=this.pixBytes,d=this.str.getByte(),e=this.str.getBytes(a);if(this.eof=!e.length,!this.eof){var f=this.bufferLength,g=this.ensureBuffer(f+a),h=g.subarray(f-a,f);0===h.length&&(h=new Uint8Array(a));var i,j,k,l=f;switch(d){case 0:for(i=0;a>i;++i)g[l++]=e[i];break;case 1:for(i=0;b>i;++i)g[l++]=e[i];for(;a>i;++i)g[l]=g[l-b]+e[i]&255,l++;break;case 2:for(i=0;a>i;++i)g[l++]=h[i]+e[i]&255;break;case 3:for(i=0;b>i;++i)g[l++]=(h[i]>>1)+e[i];for(;a>i;++i)g[l]=(h[i]+g[l-b]>>1)+e[i]&255,l++;break;case 4:for(i=0;b>i;++i)j=h[i],k=e[i],g[l++]=j+k;for(;a>i;++i){j=h[i];var m=h[i-b],n=g[l-b],o=n+j-m,p=o-n;0>p&&(p=-p);var q=o-j;0>q&&(q=-q);var r=o-m;0>r&&(r=-r),k=e[i],q>=p&&r>=p?g[l++]=n+k:r>=q?g[l++]=j+k:g[l++]=m+k}break;default:c("Unsupported predictor: "+d)}this.bufferLength+=a}},a}(),Sc=function(){function a(a,b,c,d){for(var e;-1!==(e=a.getByte());)if(255===e){a.skip(-1);break}this.stream=a,this.maybeLength=b,this.dict=c,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),Object.defineProperty(a.prototype,"bytes",{get:function(){return g(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0}),a.prototype.ensureBuffer=function(a){if(!this.bufferLength)try{var b=new gd;if(this.forceRGB&&this.dict&&C(this.dict.get("Decode"))){for(var d=this.dict.get("Decode"),e=this.dict.get("BitsPerComponent")||8,f=d.length,g=new Int32Array(f),h=!1,i=(1<j;j+=2)g[j]=256*(d[j+1]-d[j])|0,g[j+1]=d[j]*i|0,256===g[j]&&0===g[j+1]||(h=!0);h&&(b.decodeTransform=g)}b.parse(this.bytes);var k=b.getData(this.drawWidth,this.drawHeight,this.forceRGB);this.buffer=k,this.bufferLength=k.length,this.eof=!0}catch(l){c("JPEG error: "+l)}},a.prototype.getBytes=function(a){return this.ensureBuffer(),this.buffer},a.prototype.getIR=function(){return PDFJS.createObjectURL(this.bytes,"image/jpeg")},a.prototype.isNativelySupported=function(a,b){var c=Xa.parse(this.dict.get("ColorSpace","CS"),a,b);return("DeviceGray"===c.name||"DeviceRGB"===c.name)&&c.isDefaultDecode(this.dict.get("Decode","D"))},a.prototype.isNativelyDecodable=function(a,b){var c=Xa.parse(this.dict.get("ColorSpace","CS"),a,b);return(1===c.numComps||3===c.numComps)&&c.isDefaultDecode(this.dict.get("Decode","D"))},a}(),Tc=function(){function a(a,b,c){this.stream=a,this.maybeLength=b,this.dict=c,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),Object.defineProperty(a.prototype,"bytes",{get:function(){return g(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0}),a.prototype.ensureBuffer=function(a){if(!this.bufferLength){var b=new hd;b.parse(this.bytes);var c=b.width,d=b.height,e=b.componentsCount,f=b.tiles.length;if(1===f)this.buffer=b.tiles[0].items;else{for(var g=new Uint8Array(c*d*e),h=0;f>h;h++)for(var i=b.tiles[h],j=i.width,k=i.height,l=i.left,m=i.top,n=i.items,o=0,p=(c*m+l)*e,q=c*e,r=j*e,s=0;k>s;s++){var t=n.subarray(o,o+r);g.set(t,p),o+=r,p+=q}this.buffer=g}this.bufferLength=this.buffer.length,this.eof=!0}},a}(),Uc=function(){function a(a,b,c){this.stream=a,this.maybeLength=b,this.dict=c,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),Object.defineProperty(a.prototype,"bytes",{get:function(){return g(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0}),a.prototype.ensureBuffer=function(a){if(!this.bufferLength){var c=new id,d=[],e=this.dict.xref,f=e.fetchIfRef(this.dict.get("DecodeParms"));if(C(f)&&(f.length>1&&b("JBIG2 - 'DecodeParms' array with multiple elements not supported."),f=e.fetchIfRef(f[0])),f&&f.has("JBIG2Globals")){var g=f.get("JBIG2Globals"),h=g.getBytes();d.push({data:h,start:0,end:h.length})}d.push({data:this.bytes,start:0,end:this.bytes.length});for(var i=c.parseChunks(d),j=i.length,k=0;j>k;k++)i[k]^=255;this.buffer=i,this.bufferLength=j,this.eof=!0}},a}(),Vc=function(){function a(a,b,c){this.str=a,this.dict=a.dict,this.decrypt=c,this.nextChunk=null,this.initialized=!1,Oc.call(this,b)}var b=512;return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){var a;if(this.initialized?a=this.nextChunk:(a=this.str.getBytes(b),this.initialized=!0),!a||0===a.length)return void(this.eof=!0);this.nextChunk=this.str.getBytes(b);var c=this.nextChunk&&this.nextChunk.length>0,d=this.decrypt;a=d(a,!c);var e,f=this.bufferLength,g=a.length,h=this.ensureBuffer(f+g);for(e=0;g>e;e++)h[f++]=a[e];this.bufferLength=f},a}(),Wc=function(){function a(a,b){this.str=a,this.dict=a.dict,this.input=new Uint8Array(5),b&&(b=.8*b),Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){for(var a=126,b=122,c=-1,d=this.str,e=d.getByte();Gc.isSpace(e);)e=d.getByte();if(e===c||e===a)return void(this.eof=!0);var f,g,h=this.bufferLength;if(e===b){for(f=this.ensureBuffer(h+4),g=0;4>g;++g)f[h+g]=0;this.bufferLength+=4}else{var i=this.input;for(i[0]=e,g=1;5>g;++g){for(e=d.getByte();Gc.isSpace(e);)e=d.getByte();if(i[g]=e,e===c||e===a)break}if(f=this.ensureBuffer(h+g-1),this.bufferLength+=g-1,5>g){for(;5>g;++g)i[g]=117;this.eof=!0}var j=0;for(g=0;5>g;++g)j=85*j+(i[g]-33);for(g=3;g>=0;--g)f[h+g]=255&j,j>>=8}},a}(),Xc=function(){function a(a,b){this.str=a,this.dict=a.dict,this.firstDigit=-1,b&&(b=.5*b),Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){var a=8e3,b=this.str.getBytes(a);if(!b.length)return void(this.eof=!0);for(var c=b.length+1>>1,d=this.ensureBuffer(this.bufferLength+c),e=this.bufferLength,f=this.firstDigit,g=0,h=b.length;h>g;g++){var i,j=b[g];if(j>=48&&57>=j)i=15&j;else{if(!(j>=65&&70>=j||j>=97&&102>=j)){if(62===j){this.eof=!0;break}continue}i=(15&j)+9}0>f?f=i:(d[e++]=f<<4|i,f=-1)}f>=0&&this.eof&&(d[e++]=f<<4,f=-1),this.firstDigit=f,this.bufferLength=e},a}(),Yc=function(){function a(a,b){this.str=a,this.dict=a.dict,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){var a=this.str.getBytes(2);if(!a||a.length<2||128===a[0])return void(this.eof=!0);var b,c=this.bufferLength,d=a[0];if(128>d){if(b=this.ensureBuffer(c+d+1),b[c++]=a[1],d>0){var e=this.str.getBytes(d);b.set(e,c),c+=d}}else{d=257-d;var f=a[1];b=this.ensureBuffer(c+d+1);for(var g=0;d>g;g++)b[c++]=f}this.bufferLength=c},a}(),Zc=function(){function b(a,b,c){this.str=a,this.dict=a.dict,c=c||Aa.empty,this.encoding=c.get("K")||0,this.eoline=c.get("EndOfLine")||!1,this.byteAlign=c.get("EncodedByteAlign")||!1,this.columns=c.get("Columns")||1728,this.rows=c.get("Rows")||0;var d=c.get("EndOfBlock");null!==d&&void 0!==d||(d=!0),this.eoblock=d,this.black=c.get("BlackIs1")||!1,this.codingLine=new Uint32Array(this.columns+1),this.refLine=new Uint32Array(this.columns+2),this.codingLine[0]=this.columns,this.codingPos=0,this.row=0,this.nextLine2D=this.encoding<0,this.inputBits=0,this.inputBuf=0,this.outputBits=0;for(var e;0===(e=this.lookBits(12));)this.eatBits(1);1===e&&this.eatBits(12),this.encoding>0&&(this.nextLine2D=!this.lookBits(1),this.eatBits(1)),Oc.call(this,b)}var c=-2,d=0,e=1,f=2,g=3,h=4,i=5,j=6,k=7,l=8,m=[[-1,-1],[-1,-1],[7,l],[7,k],[6,j],[6,j],[6,i],[6,i],[4,d],[4,d],[4,d],[4,d],[4,d],[4,d],[4,d],[4,d],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f]],n=[[-1,-1],[12,c],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],o=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],p=[[-1,-1],[-1,-1],[12,c],[12,c],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],q=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],r=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];return b.prototype=Object.create(Oc.prototype),b.prototype.readBlock=function(){for(;!this.eof;){var a=this.lookChar();this.ensureBuffer(this.bufferLength+1),this.buffer[this.bufferLength++]=a}},b.prototype.addPixels=function(b,c){var d=this.codingLine,e=this.codingPos;b>d[e]&&(b>this.columns&&(a("row is wrong length"),this.err=!0,b=this.columns),1&e^c&&++e,d[e]=b),this.codingPos=e},b.prototype.addPixelsNeg=function(b,c){var d=this.codingLine,e=this.codingPos;if(b>d[e])b>this.columns&&(a("row is wrong length"),this.err=!0,b=this.columns),1&e^c&&++e,d[e]=b;else if(bb&&(a("invalid code"),this.err=!0,b=0);e>0&&b=64);do s+=t=this.getWhiteCode();while(t>=64)}else{do r+=t=this.getWhiteCode();while(t>=64);do s+=t=this.getBlackCode();while(t>=64)}for(this.addPixels(p[this.codingPos]+r,c),p[this.codingPos]0?--b:++b;o[b]<=p[this.codingPos]&&o[b]0?--b:++b;o[b]<=p[this.codingPos]&&o[b]0?--b:++b;o[b]<=p[this.codingPos]&&o[b]=64)}else do r+=t=this.getWhiteCode();while(t>=64);this.addPixels(p[this.codingPos]+r,c),c^=1}var u=!1;if(this.byteAlign&&(this.inputBits&=-8),this.eoblock||this.row!==this.rows-1){if(r=this.lookBits(12),this.eoline)for(;r!==Dc&&1!==r;)this.eatBits(1),r=this.lookBits(12);else for(;0===r;)this.eatBits(1),r=this.lookBits(12);1===r?(this.eatBits(12),u=!0):r===Dc&&(this.eof=!0)}else this.eof=!0;if(!this.eof&&this.encoding>0&&(this.nextLine2D=!this.lookBits(1),this.eatBits(1)),this.eoblock&&u&&this.byteAlign){if(r=this.lookBits(12),1===r){if(this.eatBits(12),this.encoding>0&&(this.lookBits(1),this.eatBits(1)),this.encoding>=0)for(n=0;4>n;++n)r=this.lookBits(12),1!==r&&a("bad rtc code: "+r),this.eatBits(12),this.encoding>0&&(this.lookBits(1),this.eatBits(1));this.eof=!0}}else if(this.err&&this.eoline){for(;;){if(r=this.lookBits(13),r===Dc)return this.eof=!0,null;if(r>>1===1)break;this.eatBits(1)}this.eatBits(12),this.encoding>0&&(this.eatBits(1),this.nextLine2D=!(1&r))}p[0]>0?this.outputBits=p[this.codingPos=0]:this.outputBits=p[this.codingPos=1],this.row++}var v;if(this.outputBits>=8)v=1&this.codingPos?0:255,this.outputBits-=8,0===this.outputBits&&p[this.codingPos]m?(v<<=m,1&this.codingPos||(v|=255>>8-m),this.outputBits-=m,m=0):(v<<=this.outputBits,1&this.codingPos||(v|=255>>8-this.outputBits),m-=this.outputBits,this.outputBits=0,p[this.codingPos]0&&(v<<=m,m=0));while(m)}return this.black&&(v^=255),v},b.prototype.findTableCode=function(a,b,c,d){for(var e=d||0,f=a;b>=f;++f){var g=this.lookBits(f);if(g===Dc)return[!0,1,!1];if(b>f&&(g<<=b-f),!e||g>=e){var h=c[g-e];if(h[0]===f)return this.eatBits(f),[!0,h[1],!0]}}return[!1,0,!1]},b.prototype.getTwoDimCode=function(){var b,c=0;if(this.eoblock){if(c=this.lookBits(7),b=m[c],b&&b[0]>0)return this.eatBits(b[0]), +b[1]}else{var d=this.findTableCode(1,7,m);if(d[0]&&d[2])return d[1]}return a("Bad two dim code"),Dc},b.prototype.getWhiteCode=function(){var b,c=0;if(this.eoblock){if(c=this.lookBits(12),c===Dc)return 1;if(b=c>>5===0?n[c]:o[c>>3],b[0]>0)return this.eatBits(b[0]),b[1]}else{var d=this.findTableCode(1,9,o);if(d[0])return d[1];if(d=this.findTableCode(11,12,n),d[0])return d[1]}return a("bad white code"),this.eatBits(1),1},b.prototype.getBlackCode=function(){var b,c;if(this.eoblock){if(b=this.lookBits(13),b===Dc)return 1;if(c=b>>7===0?p[b]:b>>9===0&&b>>7!==0?q[(b>>1)-64]:r[b>>7],c[0]>0)return this.eatBits(c[0]),c[1]}else{var d=this.findTableCode(2,6,r);if(d[0])return d[1];if(d=this.findTableCode(7,12,q,64),d[0])return d[1];if(d=this.findTableCode(10,13,p),d[0])return d[1]}return a("bad black code"),this.eatBits(1),1},b.prototype.lookBits=function(a){for(var b;this.inputBits>16-a;this.inputBuf=(this.inputBuf<<8)+b,this.inputBits+=8}return this.inputBuf>>this.inputBits-a&65535>>16-a},b.prototype.eatBits=function(a){(this.inputBits-=a)<0&&(this.inputBits=0)},b}(),$c=function(){function a(a,b,c){this.str=a,this.dict=a.dict,this.cachedData=0,this.bitsCached=0;for(var d=4096,e={earlyChange:c,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(d),dictionaryLengths:new Uint16Array(d),dictionaryPrevCodes:new Uint16Array(d),currentSequence:new Uint8Array(d),currentSequenceLength:0},f=0;256>f;++f)e.dictionaryValues[f]=f,e.dictionaryLengths[f]=1;this.lzwState=e,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBits=function(a){for(var b=this.bitsCached,c=this.cachedData;a>b;){var d=this.str.getByte();if(-1===d)return this.eof=!0,null;c=c<<8|d,b+=8}return this.bitsCached=b-=a,this.cachedData=c,this.lastCode=null,c>>>b&(1<a;a++){var t=this.readBits(m),u=p>0;if(256>t)o[0]=t,p=1;else{if(!(t>=258)){if(256===t){m=9,i=258,p=0;continue}this.eof=!0,delete this.lzwState;break}if(i>t)for(p=k[t],b=p-1,c=t;b>=0;b--)o[b]=j[c],c=l[c];else o[p++]=o[0]}if(u&&(l[i]=n,k[i]=k[n]+1,j[i]=o[0],i++,m=i+h&i+h-1?m:0|Math.min(Math.log(i+h)/.6931471805599453+1,12)),n=t,q+=p,q>e){do e+=f;while(q>e);s=this.ensureBuffer(this.bufferLength+e)}for(b=0;p>b;b++)s[r++]=o[b]}g.nextCode=i,g.codeLength=m,g.prevCode=n,g.currentSequenceLength=p,this.bufferLength=r}},a}(),_c=function(){function a(){Mc.call(this,new Uint8Array(0))}return a.prototype=Mc.prototype,a}(),ad=function(){function a(a){this.name=a,this.terminated=!1,this._capability=G()}return a.prototype={get finished(){return this._capability.promise},finish:function(){this._capability.resolve()},terminate:function(){this.terminated=!0},ensureNotTerminated:function(){if(this.terminated)throw new Error("Worker task was terminated")}},a}(),bd=PDFJS.WorkerMessageHandler={setup:function(c){function d(){if(j)throw new Error("Worker was terminated")}function e(a){l.push(a)}function f(a){a.finish();var b=l.indexOf(a);l.splice(b,1)}function g(a){var b=G(),c=function(){var a=i.ensureDoc("numPages"),c=i.ensureDoc("fingerprint"),e=i.ensureXRef("encrypt");Promise.all([a,c,e]).then(function(a){var c={numPages:a[0],fingerprint:a[1],encrypted:!!a[2]};b.resolve(c)},d)},d=function(a){b.reject(a)};return i.ensureDoc("checkHeader",[]).then(function(){i.ensureDoc("parseStartXRef",[]).then(function(){i.ensureDoc("parse",[a]).then(c,d)},d)},d),b.promise}function h(a){var d,e=G(),f=a.source,g=a.disableRange;if(f.data){try{d=new ua(f.data,f.password),e.resolve(d)}catch(h){e.reject(h)}return e.promise}if(f.chunkedViewerLoading){try{d=new va(f,c),e.resolve(d)}catch(h){e.reject(h)}return e.promise}var i=new pa(f.url,{httpHeaders:f.httpHeaders,withCredentials:f.withCredentials}),j=[],l=i.requestFull({onHeadersReceived:function(){if(!g){var a=i.getRequestXhr(l);if("bytes"===a.getResponseHeader("Accept-Ranges")){var b=a.getResponseHeader("Content-Encoding")||"identity";if("identity"===b){var h=a.getResponseHeader("Content-Length");if(h=parseInt(h,10),w(h)&&(f.length=h,!(2*sa>=h))){i.isStreamingRequest(l)?f.disableAutoFetch=!0:i.abortRequest(l);try{d=new va(f,c),e.resolve(d)}catch(j){e.reject(j)}k=null}}}}},onProgressiveData:f.disableStream?null:function(a){return d?void d.sendProgressiveData(a):void j.push(a)},onDone:function(a){if(!d){var c;if(null===a){var g=0,h=0;j.forEach(function(a){g+=a.byteLength}),f.length&&g!==f.length&&b("reported HTTP length is different from actual");var i=new Uint8Array(g);j.forEach(function(a){i.set(new Uint8Array(a),h),h+=a.byteLength}),c=i.buffer}else c=a.chunk;try{d=new ua(c,f.password),e.resolve(d)}catch(l){e.reject(l)}k=null}},onError:function(a){var b;404===a?(b=new ga('Missing PDF "'+f.url+'".'),c.send("MissingPDF",b)):(b=new ha("Unexpected server response ("+a+') while retrieving PDF "'+f.url+'".',a),c.send("UnexpectedResponse",b)),k=null},onProgress:function(a){c.send("DocProgress",{loaded:a.loaded,total:a.lengthComputable?a.total:f.length})}});return k=function(){i.abortRequest(l)},e.promise}var i,j=!1,k=null,l=[];c.on("test",function(a){if(!(a instanceof Uint8Array))return void c.send("test",!1);var b=255===a[0];c.postMessageTransfers=b;var d=new XMLHttpRequest,e="response"in d;try{d.responseType}catch(f){e=!1}return e?void c.send("test",{supportTypedArray:!0,supportTransfers:b}):void c.send("test",!1)}),c.on("GetDocRequest",function(a){var b=function(a){d(),c.send("GetDoc",{pdfInfo:a})},e=function(a){a instanceof da?a.code===ca.NEED_PASSWORD?c.send("NeedPassword",a):a.code===ca.INCORRECT_PASSWORD&&c.send("IncorrectPassword",a):a instanceof fa?c.send("InvalidPDF",a):a instanceof ga?c.send("MissingPDF",a):a instanceof ha?c.send("UnexpectedResponse",a):c.send("UnknownError",new ea(a.message,a.toString()))};d(),PDFJS.maxImageSize=void 0===a.maxImageSize?-1:a.maxImageSize,PDFJS.disableFontFace=a.disableFontFace,PDFJS.disableCreateObjectURL=a.disableCreateObjectURL,PDFJS.verbosity=a.verbosity,PDFJS.cMapUrl=void 0===a.cMapUrl?null:a.cMapUrl,PDFJS.cMapPacked=a.cMapPacked===!0,h(a).then(function(a){if(j)throw a.terminate(),new Error("Worker was terminated");i=a,c.send("PDFManagerReady",null),i.onLoadedStream().then(function(a){c.send("DataLoaded",{length:a.bytes.byteLength})})}).then(function f(){d(),g(!1).then(b,function(a){return d(),a instanceof ka?(i.requestLoadedStream(),void i.onLoadedStream().then(function(){d(),g(!0).then(b,e)})):(a instanceof da&&i.passwordChanged().then(f),void e(a))},e)},e)}),c.on("GetPage",function(a){return i.getPage(a.pageIndex).then(function(a){var b=i.ensure(a,"rotate"),c=i.ensure(a,"ref"),d=i.ensure(a,"view");return Promise.all([b,c,d]).then(function(a){return{rotate:a[0],ref:a[1],view:a[2]}})})}),c.on("GetPageIndex",function(a){var b=new Ba(a.ref.num,a.ref.gen),c=i.pdfDocument.catalog;return c.getPageIndex(b)}),c.on("GetDestinations",function(a){return i.ensureCatalog("destinations")}),c.on("GetDestination",function(a){return i.ensureCatalog("getDestination",[a.id])}),c.on("GetAttachments",function(a){return i.ensureCatalog("attachments")}),c.on("GetJavaScript",function(a){return i.ensureCatalog("javaScript")}),c.on("GetOutline",function(a){return i.ensureCatalog("documentOutline")}),c.on("GetMetadata",function(a){return Promise.all([i.ensureDoc("documentInfo"),i.ensureCatalog("metadata")])}),c.on("GetData",function(a){return i.requestLoadedStream(),i.onLoadedStream().then(function(a){return a.bytes})}),c.on("GetStats",function(a){return i.pdfDocument.xref.stats}),c.on("UpdatePassword",function(a){i.updatePassword(a)}),c.on("GetAnnotations",function(a){return i.getPage(a.pageIndex).then(function(a){return i.ensure(a,"getAnnotationsData",[])})}),c.on("RenderPageRequest",function(b){var d=b.pageIndex;i.getPage(d).then(function(g){var h=new ad("RenderPageRequest: page "+d);e(h);var i=d+1,j=Date.now();g.getOperatorList(c,h,b.intent).then(function(b){f(h),a("page="+i+" - getOperatorList: time="+(Date.now()-j)+"ms, len="+b.fnArray.length)},function(a){if(f(h),!h.terminated){var d,e="worker.js: while trying to getPage() and getOperatorList()";d="string"==typeof a?{message:a,stack:e}:"object"==typeof a?{message:a.message||a.toString(),stack:a.stack||e}:{message:"Unknown exception type: "+typeof a,stack:e},c.send("PageError",{pageNum:i,error:d,intent:b.intent})}})})},this),c.on("GetTextContent",function(b){var c=b.pageIndex;return i.getPage(c).then(function(b){var d=new ad("GetTextContent: page "+c);e(d);var g=c+1,h=Date.now();return b.extractTextContent(d).then(function(b){return f(d),a("text indexing: page="+g+" - time="+(Date.now()-h)+"ms"),b},function(a){if(f(d),!d.terminated)throw a})})}),c.on("Cleanup",function(a){return i.cleanup()}),c.on("Terminate",function(a){j=!0,i&&(i.terminate(),i=null),k&&k();var b=[];return l.forEach(function(a){b.push(a.finished),a.terminate()}),Promise.all(b).then(function(){})})}},cd={},dd={log:function(){var a=Array.prototype.slice.call(arguments);S.postMessage({action:"console_log",data:a})},error:function(){var a=Array.prototype.slice.call(arguments);throw S.postMessage({action:"console_error",data:a}),"pdf.js execution error"},time:function(a){cd[a]=Date.now()},timeEnd:function(a){var b=cd[a];b||c("Unknown timer name "+a),this.log("Timer:",a,Date.now()-b)}};if("undefined"==typeof window){"console"in S||(S.console=dd),PDFJS.UnsupportedManager.listen(function(a){S.postMessage({action:"_unsupported_feature",data:a})});var ed=new H("worker_processor",this);bd.setup(ed)}var fd=function(){function a(a,b,c){this.data=a,this.bp=b,this.dataEnd=c,this.chigh=a[b],this.clow=0,this.byteIn(),this.chigh=this.chigh<<7&65535|this.clow>>9&127,this.clow=this.clow<<7&65535,this.ct-=7,this.a=32768}var b=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];return a.prototype={byteIn:function(){var a=this.data,b=this.bp;if(255===a[b]){var c=a[b+1];c>143?(this.clow+=65280,this.ct=8):(b++,this.clow+=a[b]<<9,this.ct=7,this.bp=b)}else b++,this.clow+=b65535&&(this.chigh+=this.clow>>16,this.clow&=65535)},readBit:function(a,c){var d,e=a[c]>>1,f=1&a[c],g=b[e],h=g.qe,i=this.a-h;if(this.chighi?(i=h,d=f,e=g.nmps):(i=h,d=1^f,1===g.switchFlag&&(f=d),e=g.nlps);else{if(this.chigh-=h,0!==(32768&i))return this.a=i,f;h>i?(d=1^f,1===g.switchFlag&&(f=d),e=g.nlps):(d=f,e=g.nmps)}do 0===this.ct&&this.byteIn(),i<<=1,this.chigh=this.chigh<<1&65535|this.clow>>15&1,this.clow=this.clow<<1&65535,this.ct--;while(0===(32768&i));return this.a=i,a[c]=e<<1|f,d}},a}(),gd=function(){function a(){}function b(a,b){for(var c,d,e=0,f=[],g=16;g>0&&!a[g-1];)g--;f.push({children:[],index:0});var h,i=f[0];for(c=0;g>c;c++){for(d=0;d0;)i=f.pop();for(i.index++,f.push(i);f.length<=c;)f.push(h={children:[],index:0}),i.children[i.index]=h.children,i=h;e++}g>c+1&&(f.push(h={children:[],index:0}),i.children[i.index]=h.children,i=h)}return f[0].children}function c(a,b,c){return 64*((a.blocksPerLine+1)*b+c)}function d(a,b,d,e,f,g,i,j,k){function l(){if(H>0)return H--,G>>H&1;if(G=a[b++],255===G){var c=a[b++];if(c)throw"unexpected marker: "+(G<<8|c).toString(16)}return H=7,G>>>7}function m(a){for(var b=a;;){if(b=b[l()],"number"==typeof b)return b;if("object"!=typeof b)throw"invalid huffman sequence"}}function n(a){for(var b=0;a>0;)b=b<<1|l(),a--;return b}function o(a){if(1===a)return 1===l()?1:-1;var b=n(a);return b>=1<e;){var f=m(a.huffmanTableAC),g=15&f,i=f>>4;if(0!==g){e+=i;var j=h[e];a.blockData[b+j]=o(g),e++}else{if(15>i)break;e+=16}}}function q(a,b){var c=m(a.huffmanTableDC),d=0===c?0:o(c)<0)return void I--;for(var c=g,d=i;d>=c;){var e=m(a.huffmanTableAC),f=15&e,j=e>>4;if(0!==f){c+=j;var l=h[c];a.blockData[b+l]=o(f)*(1<j){I=n(j)+(1<=e;){var p=h[e];switch(J){case 0:if(d=m(a.huffmanTableAC),c=15&d,j=d>>4,0===c)15>j?(I=n(j)+(1<N;){for(y=0;K>y;y++)e[y].pred=0;if(I=0,1===K)for(x=e[0],B=0;f>B;B++)v(x,C,N),N++;else for(B=0;f>B;B++){for(y=0;K>y;y++)for(x=e[y],O=x.h,P=x.v,z=0;P>z;z++)for(A=0;O>A;A++)u(x,C,N,z,A);N++}if(H=0,L=a[b]<<8|a[b+1],65280>=L)throw"marker was not found";if(!(L>=65488&&65495>=L))break;b+=2}return b-F}function e(a,b,c){for(var d,e,f,g,h,q,r,s,t,u,v,w,x,y,z,A,B,C=a.quantizationTable,D=a.blockData,E=0;64>E;E+=8)t=D[b+E],u=D[b+E+1],v=D[b+E+2],w=D[b+E+3],x=D[b+E+4],y=D[b+E+5],z=D[b+E+6],A=D[b+E+7],t*=C[E],0!==(u|v|w|x|y|z|A)?(u*=C[E+1],v*=C[E+2],w*=C[E+3],x*=C[E+4],y*=C[E+5],z*=C[E+6],A*=C[E+7],d=o*t+128>>8,e=o*x+128>>8,f=v,g=z,h=p*(u-A)+128>>8,s=p*(u+A)+128>>8,q=w<<4,r=y<<4,d=d+e+1>>1,e=d-e,B=f*n+g*m+128>>8,f=f*m-g*n+128>>8,g=B,h=h+r+1>>1,r=h-r,s=s+q+1>>1,q=s-q,d=d+g+1>>1,g=d-g,e=e+f+1>>1,f=e-f,B=h*l+s*k+2048>>12,h=h*k-s*l+2048>>12,s=B,B=q*j+r*i+2048>>12,q=q*i-r*j+2048>>12,r=B,c[E]=d+s,c[E+7]=d-s,c[E+1]=e+r,c[E+6]=e-r,c[E+2]=f+q,c[E+5]=f-q,c[E+3]=g+h,c[E+4]=g-h):(B=o*t+512>>10,c[E]=B,c[E+1]=B,c[E+2]=B,c[E+3]=B,c[E+4]=B,c[E+5]=B,c[E+6]=B,c[E+7]=B);for(var F=0;8>F;++F)t=c[F],u=c[F+8],v=c[F+16],w=c[F+24],x=c[F+32],y=c[F+40],z=c[F+48],A=c[F+56],0!==(u|v|w|x|y|z|A)?(d=o*t+2048>>12,e=o*x+2048>>12,f=v,g=z,h=p*(u-A)+2048>>12,s=p*(u+A)+2048>>12,q=w,r=y,d=(d+e+1>>1)+4112,e=d-e,B=f*n+g*m+2048>>12,f=f*m-g*n+2048>>12,g=B,h=h+r+1>>1,r=h-r,s=s+q+1>>1,q=s-q,d=d+g+1>>1,g=d-g,e=e+f+1>>1,f=e-f,B=h*l+s*k+2048>>12,h=h*k-s*l+2048>>12,s=B,B=q*j+r*i+2048>>12,q=q*i-r*j+2048>>12,r=B,t=d+s,A=d-s,u=e+r,z=e-r,v=f+q,y=f-q,w=g+h,x=g-h,t=16>t?0:t>=4080?255:t>>4,u=16>u?0:u>=4080?255:u>>4,v=16>v?0:v>=4080?255:v>>4,w=16>w?0:w>=4080?255:w>>4,x=16>x?0:x>=4080?255:x>>4,y=16>y?0:y>=4080?255:y>>4,z=16>z?0:z>=4080?255:z>>4,A=16>A?0:A>=4080?255:A>>4,D[b+F]=t,D[b+F+8]=u,D[b+F+16]=v,D[b+F+24]=w,D[b+F+32]=x,D[b+F+40]=y,D[b+F+48]=z,D[b+F+56]=A):(B=o*t+8192>>14,B=-2040>B?0:B>=2024?255:B+2056>>4,D[b+F]=B,D[b+F+8]=B,D[b+F+16]=B,D[b+F+24]=B,D[b+F+32]=B,D[b+F+40]=B,D[b+F+48]=B,D[b+F+56]=B)}function f(a,b){for(var d=b.blocksPerLine,f=b.blocksPerColumn,g=new Int16Array(64),h=0;f>h;h++)for(var i=0;d>i;i++){var j=c(b,h,i);e(b,j,g)}return b.blockData}function g(a){return 0>=a?0:a>=255?255:a}var h=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),i=4017,j=799,k=3406,l=2276,m=1567,n=3784,o=5793,p=2896;return a.prototype={parse:function(a){function c(){var b=a[k]<<8|a[k+1];return k+=2,b}function e(){var b=c(),d=a.subarray(k,k+b-2);return k+=d.length,d}function g(a){for(var b=Math.ceil(a.samplesPerLine/8/a.maxH),c=Math.ceil(a.scanLines/8/a.maxV),d=0;dk;){var y=a[k++],z=new Uint16Array(64);if(y>>4===0)for(s=0;64>s;s++)v=h[s],z[v]=a[k++];else{if(y>>4!==1)throw"DQT: invalid table spec";for(s=0;64>s;s++)v=h[s],z[v]=c()}n[15&y]=z}break;case 65472:case 65473:case 65474:if(i)throw"Only single frame JPEGs supported";c(),i={},i.extended=65473===q,i.progressive=65474===q,i.precision=a[k++],i.scanLines=c(),i.samplesPerLine=c(),i.components=[],i.componentIds={};var A,B=a[k++],C=0,D=0;for(r=0;B>r;r++){A=a[k];var E=a[k+1]>>4,F=15&a[k+1];E>C&&(C=E),F>D&&(D=F);var G=a[k+2];t=i.components.push({h:E,v:F,quantizationTable:n[G]}),i.componentIds[A]=t-1,k+=3}i.maxH=C,i.maxV=D,g(i);break;case 65476:var H=c();for(r=2;H>r;){var I=a[k++],J=new Uint8Array(16),K=0;for(s=0;16>s;s++,k++)K+=J[s]=a[k];var L=new Uint8Array(K);for(s=0;K>s;s++,k++)L[s]=a[k];r+=17+K,(I>>4===0?p:o)[15&I]=b(J,L)}break;case 65501:c(),j=c();break;case 65498:var M,N=(c(),a[k++]),O=[];for(r=0;N>r;r++){var P=i.componentIds[a[k++]];M=i.components[P];var Q=a[k++];M.huffmanTableDC=p[Q>>4],M.huffmanTableAC=o[15&Q],O.push(M)}var R=a[k++],S=a[k++],T=a[k++],U=d(a,k,i,O,j,R,S,T>>4,15&T);k+=U;break;case 65535:255!==a[k]&&k--;break;default:if(255===a[k-3]&&a[k-2]>=192&&a[k-2]<=254){k-=3;break}throw"unknown JPEG marker "+q.toString(16)}q=c()}for(this.width=i.samplesPerLine,this.height=i.scanLines,this.jfif=l,this.adobe=m,this.components=[],r=0;ri;i++){for(c=this.components[i],d=c.scaleX*n,e=c.scaleY*o,p=i,m=c.output,f=c.blocksPerLine+1<<3,g=0;a>g;g++)j=0|g*d,t[g]=(j&u)<<3|7&j;for(h=0;b>h;h++)for(j=0|h*e,l=f*(j&u)|(7&j)<<3,g=0;a>g;g++)s[p]=m[l+t[g]],p+=q}var v=this.decodeTransform;if(v)for(i=0;r>i;)for(j=0,k=0;q>j;j++,i++,k+=2)s[i]=(s[i]*v[k]>>8)+v[k+1];return s},_isColorConversionNeeded:function(){return this.adobe&&this.adobe.transformCode?!0:3===this.numComponents},_convertYccToRgb:function(a){for(var b,c,d,e=0,f=a.length;f>e;e+=3)b=a[e],c=a[e+1],d=a[e+2],a[e]=g(b-179.456+1.402*d),a[e+1]=g(b+135.459-.344*c-.714*d),a[e+2]=g(b-226.816+1.772*c);return a},_convertYcckToRgb:function(a){for(var b,c,d,e,f=0,h=0,i=a.length;i>h;h+=4){b=a[h],c=a[h+1],d=a[h+2],e=a[h+3];var j=-122.67195406894+c*(-660635669420364e-19*c+.000437130475926232*d-54080610064599e-18*b+.00048449797120281*e-.154362151871126)+d*(-.000957964378445773*d+.000817076911346625*b-.00477271405408747*e+1.53380253221734)+b*(.000961250184130688*b-.00266257332283933*e+.48357088451265)+e*(-.000336197177618394*e+.484791561490776),k=107.268039397724+c*(219927104525741e-19*c-.000640992018297945*d+.000659397001245577*b+.000426105652938837*e-.176491792462875)+d*(-.000778269941513683*d+.00130872261408275*b+.000770482631801132*e-.151051492775562)+b*(.00126935368114843*b-.00265090189010898*e+.25802910206845)+e*(-.000318913117588328*e-.213742400323665),l=-20.810012546947+c*(-.000570115196973677*c-263409051004589e-19*d+.0020741088115012*b-.00288260236853442*e+.814272968359295)+d*(-153496057440975e-19*d-.000132689043961446*b+.000560833691242812*e-.195152027534049)+b*(.00174418132927582*b-.00255243321439347*e+.116935020465145)+e*(-.000343531996510555*e+.24165260232407);a[f++]=g(j),a[f++]=g(k),a[f++]=g(l)}return a},_convertYcckToCmyk:function(a){for(var b,c,d,e=0,f=a.length;f>e;e+=4)b=a[e],c=a[e+1],d=a[e+2],a[e]=g(434.456-b-1.402*d),a[e+1]=g(119.541-b+.344*c+.714*d),a[e+2]=g(481.816-b-1.772*c);return a},_convertCmykToRgb:function(a){for(var b,c,d,e,f=0,g=-16581375,h=1/255/255,i=0,j=a.length;j>i;i+=4){b=a[i],c=a[i+1],d=a[i+2],e=a[i+3];var k=b*(-4.387332384609988*b+54.48615194189176*c+18.82290502165302*d+212.25662451639585*e-72734.4411664936)+c*(1.7149763477362134*c-5.6096736904047315*d-17.873870861415444*e-1401.7366389350734)+d*(-2.5217340131683033*d-21.248923337353073*e+4465.541406466231)-e*(21.86122147463605*e+48317.86113160301),l=b*(8.841041422036149*b+60.118027045597366*c+6.871425592049007*d+31.159100130055922*e-20220.756542821975)+c*(-15.310361306967817*c+17.575251261109482*d+131.35250912493976*e-48691.05921601825)+d*(4.444339102852739*d+9.8632861493405*e-6341.191035517494)-e*(20.737325471181034*e+47890.15695978492),m=b*(.8842522430003296*b+8.078677503112928*c+30.89978309703729*d-.23883238689178934*e-3616.812083916688)+c*(10.49593273432072*c+63.02378494754052*d+50.606957656360734*e-28620.90484698408)+d*(.03296041114873217*d+115.60384449646641*e-49363.43385999684)-e*(22.33816807309886*e+45932.16563550634);a[f++]=k>=0?255:g>=k?0:255+k*h|0,a[f++]=l>=0?255:g>=l?0:255+l*h|0,a[f++]=m>=0?255:g>=m?0:255+m*h|0}return a},getData:function(a,b,c){if(this.numComponents>4)throw"Unsupported color mode";var d=this._getLinearizedBlockData(a,b);if(3===this.numComponents)return this._convertYccToRgb(d);if(4===this.numComponents){if(this._isColorConversionNeeded())return c?this._convertYcckToRgb(d):this._convertYcckToCmyk(d);if(c)return this._convertCmykToRgb(d)}return d}},a}(),hd=function(){function c(){this.failOnCorruptedImage=!1}function d(a,b){a.x0=Math.ceil(b.XOsiz/a.XRsiz),a.x1=Math.ceil(b.Xsiz/a.XRsiz),a.y0=Math.ceil(b.YOsiz/a.YRsiz),a.y1=Math.ceil(b.Ysiz/a.YRsiz),a.width=a.x1-a.x0,a.height=a.y1-a.y0}function e(a,b){for(var c,d=a.SIZ,e=[],f=Math.ceil((d.Xsiz-d.XTOsiz)/d.XTsiz),g=Math.ceil((d.Ysiz-d.YTOsiz)/d.YTsiz),h=0;g>h;h++)for(var i=0;f>i;i++)c={},c.tx0=Math.max(d.XTOsiz+i*d.XTsiz,d.XOsiz),c.ty0=Math.max(d.YTOsiz+h*d.YTsiz,d.YOsiz),c.tx1=Math.min(d.XTOsiz+(i+1)*d.XTsiz,d.Xsiz),c.ty1=Math.min(d.YTOsiz+(h+1)*d.YTsiz,d.Ysiz),c.width=c.tx1-c.tx0,c.height=c.ty1-c.ty0,c.components=[],e.push(c);a.tiles=e;for(var j=d.Csiz,k=0,l=j;l>k;k++)for(var m=b[k],n=0,o=e.length;o>n;n++){var p={};c=e[n],p.tcx0=Math.ceil(c.tx0/m.XRsiz),p.tcy0=Math.ceil(c.ty0/m.YRsiz),p.tcx1=Math.ceil(c.tx1/m.XRsiz),p.tcy1=Math.ceil(c.ty1/m.YRsiz),p.width=p.tcx1-p.tcx0,p.height=p.tcy1-p.tcy0,c.components[k]=p}}function f(a,b,c){var d=b.codingStyleParameters,e={};return d.entropyCoderWithCustomPrecincts?(e.PPx=d.precinctsSizes[c].PPx,e.PPy=d.precinctsSizes[c].PPy):(e.PPx=15,e.PPy=15),e.xcb_=c>0?Math.min(d.xcb,e.PPx-1):Math.min(d.xcb,e.PPx),e.ycb_=c>0?Math.min(d.ycb,e.PPy-1):Math.min(d.ycb,e.PPy),e}function g(a,b,c){var d=1<b.trx0?Math.ceil(b.trx1/d)-Math.floor(b.trx0/d):0,j=b.try1>b.try0?Math.ceil(b.try1/e)-Math.floor(b.try0/e):0,k=i*j;b.precinctParameters={precinctWidth:d,precinctHeight:e,numprecinctswide:i,numprecinctshigh:j,numprecincts:k,precinctWidthInSubband:g,precinctHeightInSubband:h}}function h(a,b,c){var d,e,f,g,h=c.xcb_,i=c.ycb_,j=1<>h,m=b.tby0>>i,n=b.tbx1+j-1>>h,o=b.tby1+k-1>>i,p=b.resolution.precinctParameters,q=[],r=[];for(e=m;o>e;e++)for(d=l;n>d;d++){f={cbx:d,cby:e,tbx0:j*d,tby0:k*e,tbx1:j*(d+1),tby1:k*(e+1)},f.tbx0_=Math.max(b.tbx0,f.tbx0),f.tby0_=Math.max(b.tby0,f.tby0),f.tbx1_=Math.min(b.tbx1,f.tbx1),f.tby1_=Math.min(b.tby1,f.tby1);var s=Math.floor((f.tbx0_-b.tbx0)/p.precinctWidthInSubband),t=Math.floor((f.tby0_-b.tby0)/p.precinctHeightInSubband);if(g=s+t*p.numprecinctswide,f.precinctNumber=g,f.subbandType=b.type,f.Lblock=3,!(f.tbx1_<=f.tbx0_||f.tby1_<=f.tby0_)){q.push(f);var u=r[g];void 0!==u?(du.cbxMax&&(u.cbxMax=d),eu.cbyMax&&(u.cbyMax=e)):r[g]=u={cbxMin:d,cbyMin:e,cbxMax:d,cbyMax:e},f.precinct=u}}b.codeblockParameters={codeblockWidth:h,codeblockHeight:i,numcodeblockwide:n-l+1,numcodeblockhigh:o-m+1},b.codeblocks=q,b.precincts=r}function i(a,b,c){for(var d=[],e=a.subbands,f=0,g=e.length;g>f;f++)for(var h=e[f],i=h.codeblocks,j=0,k=i.length;k>j;j++){var l=i[j];l.precinctNumber===b&&d.push(l)}return{layerNumber:c,codeblocks:d}}function j(a){for(var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=d.codingStyleDefaultParameters.layersCount,f=b.Csiz,g=0,h=0;f>h;h++)g=Math.max(g,d.components[h].codingStyleParameters.decompositionLevelsCount);var j=0,k=0,l=0,m=0;this.nextPacket=function(){for(;e>j;j++){for(;g>=k;k++){for(;f>l;l++){var a=d.components[l];if(!(k>a.codingStyleParameters.decompositionLevelsCount)){for(var b=a.resolutions[k],c=b.precinctParameters.numprecincts;c>m;){var h=i(b,m,j);return m++,h}m=0}}l=0}k=0}throw new Error("JPX Error: Out of packets")}}function k(a){for(var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=d.codingStyleDefaultParameters.layersCount,f=b.Csiz,g=0,h=0;f>h;h++)g=Math.max(g,d.components[h].codingStyleParameters.decompositionLevelsCount);var j=0,k=0,l=0,m=0;this.nextPacket=function(){for(;g>=j;j++){for(;e>k;k++){for(;f>l;l++){var a=d.components[l];if(!(j>a.codingStyleParameters.decompositionLevelsCount)){for(var b=a.resolutions[j],c=b.precinctParameters.numprecincts;c>m;){var h=i(b,m,k);return m++,h}m=0}}l=0}k=0}throw new Error("JPX Error: Out of packets")}}function m(a){var b,c,d,e,f=a.SIZ,g=a.currentTile.index,h=a.tiles[g],j=h.codingStyleDefaultParameters.layersCount,k=f.Csiz,l=0;for(d=0;k>d;d++){var m=h.components[d];l=Math.max(l,m.codingStyleParameters.decompositionLevelsCount)}var n=new Int32Array(l+1);for(c=0;l>=c;++c){var o=0;for(d=0;k>d;++d){var p=h.components[d].resolutions;c=c;c++){for(;ed;d++){var a=h.components[d];if(!(c>a.codingStyleParameters.decompositionLevelsCount)){var f=a.resolutions[c],g=f.precinctParameters.numprecincts;if(!(e>=g)){for(;j>b;){var m=i(f,e,b);return b++,m}b=0}}}d=0}e=0}throw new Error("JPX Error: Out of packets")}}function p(a){var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=d.codingStyleDefaultParameters.layersCount,f=b.Csiz,g=s(d),h=g,j=0,k=0,l=0,m=0,n=0;this.nextPacket=function(){for(;nl;l++){for(var a=d.components[l],b=a.codingStyleParameters.decompositionLevelsCount;b>=k;k++){var c=a.resolutions[k],o=g.components[l].resolutions[k],p=r(m,n,o,h,c);if(null!==p){for(;e>j;){var q=i(c,p,j);return j++,q}j=0}}k=0}l=0}m=0}throw new Error("JPX Error: Out of packets")}}function q(a){var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=d.codingStyleDefaultParameters.layersCount,f=b.Csiz,g=s(d),h=0,j=0,k=0,l=0,m=0;this.nextPacket=function(){for(;f>k;++k){for(var a=d.components[k],b=g.components[k],c=a.codingStyleParameters.decompositionLevelsCount;m=j;j++){var n=a.resolutions[j],o=b.resolutions[j],p=r(l,m,o,b,n);if(null!==p){for(;e>h;){var q=i(n,p,h);return h++,q}h=0}}j=0}l=0}m=0}throw new Error("JPX Error: Out of packets")}}function r(a,b,c,d,e){var f=a*d.minWidth,g=b*d.minHeight;if(f%c.width!==0||g%c.height!==0)return null;var h=g/c.width*e.precinctParameters.numprecinctswide;return f/c.height+h}function s(a){for(var b=a.components.length,c=Number.MAX_VALUE,d=Number.MAX_VALUE,e=0,f=0,g=new Array(b),h=0;b>h;h++){for(var i=a.components[h],j=i.codingStyleParameters.decompositionLevelsCount,k=new Array(j+1),l=Number.MAX_VALUE,m=Number.MAX_VALUE,n=0,o=0,p=1,q=j;q>=0;--q){var r=i.resolutions[q],s=p*r.precinctParameters.precinctWidth,t=p*r.precinctParameters.precinctHeight;l=Math.min(l,s),m=Math.min(m,t),n=Math.max(n,r.precinctParameters.numprecinctswide),o=Math.max(o,r.precinctParameters.numprecinctshigh),k[q]={width:s,height:t},p<<=1}c=Math.min(c,l),d=Math.min(d,m),e=Math.max(e,n),f=Math.max(f,o),g[h]={resolutions:k,minWidth:l,minHeight:m,maxNumWide:n,maxNumHigh:o}}return{components:g,minWidth:c,minHeight:d,maxNumWide:e,maxNumHigh:f}}function t(a){for(var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=b.Csiz,i=0;e>i;i++){for(var l=d.components[i],n=l.codingStyleParameters.decompositionLevelsCount,o=[],r=[],s=0;n>=s;s++){var t=f(a,l,s),u={},v=1<m;){var d=b[c+k];k++,n?(j=j<<7|d,m+=7,n=!1):(j=j<<8|d,m+=8),255===d&&(n=!0)}return m-=a,j>>>m&(1<a?a+3:(a=e(5),31>a?a+6:(a=e(7),a+37))}for(var j,k=0,m=0,n=!1,o=a.currentTile.index,p=a.tiles[o],q=a.COD.sopMarkerUsed,r=a.COD.ephMarkerUsed,s=p.packetsIterator;d>k;){h(),q&&f(145)&&g(4);var t=s.nextPacket();if(e(1)){for(var u,v=t.layerNumber,w=[],x=0,y=t.codeblocks.length;y>x;x++){u=t.codeblocks[x];var z,C=u.precinct,D=u.cbx-C.cbxMin,E=u.cby-C.cbyMin,F=!1,G=!1;if(void 0!==u.included)F=!!e(1);else{C=u.precinct;var H,I;if(void 0!==C.inclusionTree)H=C.inclusionTree;else{var J=C.cbxMax-C.cbxMin+1,K=C.cbyMax-C.cbyMin+1;H=new B(J,K,v),I=new A(J,K),C.inclusionTree=H,C.zeroBitPlanesTree=I}if(H.reset(D,E,v))for(;;){if(!e(1)){H.incrementValue(v);break}if(z=!H.nextLevel()){u.included=!0,F=G=!0;break}}}if(F){if(G){for(I=C.zeroBitPlanesTree,I.reset(D,E);;)if(e(1)){if(z=!I.nextLevel())break}else I.incrementValue();u.zeroBitPlanes=I.value}for(var L=i();e(1);)u.Lblock++;var M=l(L),N=(1<L?M-1:M)+u.Lblock,O=e(N);w.push({codeblock:u,codingpasses:L,dataLength:O})}}for(h(),r&&f(146);w.length>0;){var P=w.shift();u=P.codeblock,void 0===u.data&&(u.data=[]),u.data.push({data:b,start:c+k,end:c+k+P.dataLength,codingpasses:P.codingpasses}),k+=P.dataLength}}}return k}function v(a,b,c,d,e,f,g,h){for(var i=d.tbx0,j=d.tby0,k=d.tbx1-d.tbx0,l=d.codeblocks,m="H"===d.type.charAt(0)?1:0,n="H"===d.type.charAt(1)?b:0,o=0,p=l.length;p>o;++o){var q=l[o],r=q.tbx1_-q.tbx0_,s=q.tby1_-q.tby0_;if(0!==r&&0!==s&&void 0!==q.data){var t,u;t=new C(r,s,q.subbandType,q.zeroBitPlanes,f),u=2;var v,w,x,y=q.data,z=0,A=0;for(v=0,w=y.length;w>v;v++)x=y[v],z+=x.end-x.start,A+=x.codingpasses;var B=new Uint8Array(z),D=0;for(v=0,w=y.length;w>v;v++){x=y[v];var E=x.data.subarray(x.start,x.end);B.set(E,D),D+=E.length}var F=new fd(B,0,z);for(t.setDecoder(F),v=0;A>v;v++){switch(u){case 0:t.runSignificancePropogationPass();break;case 1:t.runMagnitudeRefinementPass();break;case 2:t.runCleanupPass(),h&&t.checkSegmentationSymbol()}u=(u+1)%3}var G,H,I,J=q.tbx0_-i+(q.tby0_-j)*k,K=t.coefficentsSign,L=t.coefficentsMagnitude,M=t.bitsDecoded,N=g?0:.5;D=0;var O="LL"!==d.type;for(v=0;s>v;v++){var P=J/k|0,Q=2*P*(b-k)+m+n;for(G=0;r>G;G++){if(H=L[D],0!==H){H=(H+N)*e,0!==K[D]&&(H=-H),I=M[D];var R=O?Q+(J<<1):J;g&&I>=f?a[R]=H:a[R]=H*(1<=q;q++){for(var r=d.resolutions[q],s=r.trx1-r.trx0,t=r.try1-r.try0,u=new Float32Array(s*t),w=0,x=r.subbands.length;x>w;w++){var y,A;i?(y=h[p].mu,A=h[p].epsilon,p++):(y=h[0].mu,A=h[0].epsilon+(q>0?1-q:0));var B=r.subbands[w],C=z[B.type],D=m?1:Math.pow(2,l+C-A)*(1+y/2048),G=j+A-1;v(u,s,t,B,D,G,m,k)}o.push({width:s,height:t,items:u})}var H=n.calculate(o,d.tcx0,d.tcy0);return{left:d.tcx0,top:d.tcy0,width:H.width,height:H.height,items:H.items}}function x(a){for(var b=a.SIZ,c=a.components,d=b.Csiz,e=[],f=0,g=a.tiles.length;g>f;f++){var h,i=a.tiles[f],j=[];for(h=0;d>h;h++)j[h]=w(a,i,h);var k,l,m,n,o,p,q,r,s,t,u,v,x,y,z,A=j[0],B=new Uint8Array(A.items.length*d),C={left:A.left,top:A.top,width:A.width,height:A.height,items:B},D=0;if(i.codingStyleDefaultParameters.multipleComponentTransform){var E=4===d,F=j[0].items,G=j[1].items,H=j[2].items,I=E?j[3].items:null;k=c[0].precision-8,l=(128<p;p++,D+=K)r=F[p]+l,s=G[p],t=H[p],v=r-(t+s>>2),u=v+t,x=v+s,B[D++]=0>=u?0:u>=m?255:u>>k,B[D++]=0>=v?0:v>=m?255:v>>k,B[D++]=0>=x?0:x>=m?255:x>>k;else for(p=0;q>p;p++,D+=K)r=F[p]+l,s=G[p],t=H[p],u=r+1.402*t,v=r-.34413*s-.71414*t,x=r+1.772*s,B[D++]=0>=u?0:u>=m?255:u>>k,B[D++]=0>=v?0:v>=m?255:v>>k,B[D++]=0>=x?0:x>=m?255:x>>k;if(E)for(p=0,D=3;q>p;p++,D+=4)y=I[p],B[D]=n>=y?0:y>=o?255:y+l>>k}else for(h=0;d>h;h++){var L=j[h].items;for(k=c[h].precision-8,l=(128<p;p++)z=L[p],B[D]=n>=z?0:z>=m?255:z+l>>k,D+=d}e.push(C)}return e}function y(a,b){for(var c=a.SIZ,d=c.Csiz,e=a.tiles[b],f=0;d>f;f++){var g=e.components[f],h=void 0!==a.currentTile.QCC[f]?a.currentTile.QCC[f]:a.currentTile.QCD;g.quantizationParameters=h;var i=void 0!==a.currentTile.COC[f]?a.currentTile.COC[f]:a.currentTile.COD;g.codingStyleParameters=i}e.codingStyleDefaultParameters=a.currentTile.COD}var z={LL:0,LH:1,HL:1,HH:2};c.prototype={parse:function(c){var d=n(c,0);if(65359===d)return void this.parseCodestream(c,0,c.length);for(var e=0,f=c.length;f>e;){var g=8,h=o(c,e),i=o(c,e+4);if(e+=g,1===h&&(h=4294967296*o(c,e)+o(c,e+4),e+=8,g+=8),0===h&&(h=f-e+g),g>h)throw new Error("JPX Error: Invalid box field size");var j=h-g,k=!0;switch(i){case 1785737832:k=!1;break;case 1668246642:var l=c[e];c[e+1],c[e+2];if(1===l){var m=o(c,e+3);switch(m){case 16:case 17:case 18:break;default:b("Unknown colorspace "+m)}}else 2===l&&a("ICC profile not supported");break;case 1785737827:this.parseCodestream(c,e,e+j);break;case 1783636e3:218793738!==o(c,e)&&b("Invalid JP2 signature");break;case 1783634458:case 1718909296:case 1920099697:case 1919251232:case 1768449138:break;default:var p=String.fromCharCode(i>>24&255,i>>16&255,i>>8&255,255&i);b("Unsupported header type "+i+" ("+p+")")}k&&(e+=j)}},parseImageProperties:function(a){for(var b=a.getByte();b>=0;){var c=b;b=a.getByte();var d=c<<8|b;if(65361===d){a.skip(4);var e=a.getInt32()>>>0,f=a.getInt32()>>>0,g=a.getInt32()>>>0,h=a.getInt32()>>>0;a.skip(16);var i=a.getUint16();return this.width=e-g,this.height=f-h,this.componentsCount=i,void(this.bitsPerComponent=8)}}throw new Error("JPX Error: No size marker found in JPX stream")},parseCodestream:function(a,c,f){var g={};try{for(var h=!1,i=c;f>i+1;){var j=n(a,i);i+=2;var k,l,m,p,q,r,s=0;switch(j){case 65359:g.mainHeader=!0;break;case 65497:break;case 65361:s=n(a,i);var v={};v.Xsiz=o(a,i+4),v.Ysiz=o(a,i+8),v.XOsiz=o(a,i+12),v.YOsiz=o(a,i+16),v.XTsiz=o(a,i+20),v.YTsiz=o(a,i+24),v.XTOsiz=o(a,i+28),v.YTOsiz=o(a,i+32);var w=n(a,i+36);v.Csiz=w;var z=[];k=i+38;for(var A=0;w>A;A++){var B={precision:(127&a[k])+1,isSigned:!!(128&a[k]),XRsiz:a[k+1],YRsiz:a[k+1]};d(B,v),z.push(B)}g.SIZ=v,g.components=z,e(g,z),g.QCC=[],g.COC=[];break;case 65372:s=n(a,i);var C={};switch(k=i+2,l=a[k++],31&l){case 0:p=8,q=!0;break;case 1:p=16,q=!1;break;case 2:p=16,q=!0;break;default:throw new Error("JPX Error: Invalid SQcd value "+l)}for(C.noQuantization=8===p,C.scalarExpounded=q,C.guardBits=l>>5,m=[];s+i>k;){var D={};8===p?(D.epsilon=a[k++]>>3,D.mu=0):(D.epsilon=a[k]>>3,D.mu=(7&a[k])<<8|a[k+1],k+=2),m.push(D)}C.SPqcds=m,g.mainHeader?g.QCD=C:(g.currentTile.QCD=C,g.currentTile.QCC=[]);break;case 65373:s=n(a,i);var E={};k=i+2;var F;switch(g.SIZ.Csiz<257?F=a[k++]:(F=n(a,k),k+=2),l=a[k++],31&l){case 0:p=8,q=!0;break;case 1:p=16,q=!1;break;case 2:p=16,q=!0;break;default:throw new Error("JPX Error: Invalid SQcd value "+l)}for(E.noQuantization=8===p,E.scalarExpounded=q,E.guardBits=l>>5,m=[];s+i>k;)D={},8===p?(D.epsilon=a[k++]>>3,D.mu=0):(D.epsilon=a[k]>>3,D.mu=(7&a[k])<<8|a[k+1],k+=2),m.push(D);E.SPqcds=m,g.mainHeader?g.QCC[F]=E:g.currentTile.QCC[F]=E;break;case 65362:s=n(a,i);var G={};k=i+2;var H=a[k++];G.entropyCoderWithCustomPrecincts=!!(1&H),G.sopMarkerUsed=!!(2&H),G.ephMarkerUsed=!!(4&H),G.progressionOrder=a[k++],G.layersCount=n(a,k),k+=2,G.multipleComponentTransform=a[k++],G.decompositionLevelsCount=a[k++],G.xcb=(15&a[k++])+2,G.ycb=(15&a[k++])+2;var I=a[k++];if(G.selectiveArithmeticCodingBypass=!!(1&I),G.resetContextProbabilities=!!(2&I),G.terminationOnEachCodingPass=!!(4&I),G.verticalyStripe=!!(8&I),G.predictableTermination=!!(16&I),G.segmentationSymbolUsed=!!(32&I),G.reversibleTransformation=a[k++],G.entropyCoderWithCustomPrecincts){for(var J=[];s+i>k;){var K=a[k++];J.push({PPx:15&K,PPy:K>>4})}G.precinctsSizes=J}var L=[];if(G.selectiveArithmeticCodingBypass&&L.push("selectiveArithmeticCodingBypass"),G.resetContextProbabilities&&L.push("resetContextProbabilities"),G.terminationOnEachCodingPass&&L.push("terminationOnEachCodingPass"),G.verticalyStripe&&L.push("verticalyStripe"),G.predictableTermination&&L.push("predictableTermination"),L.length>0)throw h=!0,new Error("JPX Error: Unsupported COD options ("+L.join(", ")+")");g.mainHeader?g.COD=G:(g.currentTile.COD=G,g.currentTile.COC=[]);break;case 65424:s=n(a,i),r={},r.index=n(a,i+2),r.length=o(a,i+4),r.dataEnd=r.length+i-2,r.partIndex=a[i+8],r.partsCount=a[i+9],g.mainHeader=!1,0===r.partIndex&&(r.COD=g.COD,r.COC=g.COC.slice(0),r.QCD=g.QCD,r.QCC=g.QCC.slice(0)),g.currentTile=r;break;case 65427:r=g.currentTile,0===r.partIndex&&(y(g,r.index),t(g)),s=r.dataEnd-i,u(g,a,i,s);break;case 65365:case 65367:case 65368:case 65380:s=n(a,i);break;case 65363:throw new Error("JPX Error: Codestream code 0xFF53 (COC) is not implemented");default:throw new Error("JPX Error: Unknown codestream code: "+j.toString(16))}i+=s}}catch(M){if(h||this.failOnCorruptedImage)throw M;b("Trying to recover from "+M.message)}this.tiles=x(g),this.width=g.SIZ.Xsiz-g.SIZ.XOsiz,this.height=g.SIZ.Ysiz-g.SIZ.YOsiz,this.componentsCount=g.SIZ.Csiz}};var A=function(){function a(a,b){var c=l(Math.max(a,b))+1;this.levels=[];for(var d=0;c>d;d++){var e={width:a,height:b,items:[]};this.levels.push(e),a=Math.ceil(a/2),b=Math.ceil(b/2)}}return a.prototype={reset:function(a,b){for(var c,d=0,e=0;d>=1,b>>=1,d++}d--,c=this.levels[d],c.items[c.index]=e,this.currentLevel=d,delete this.value},incrementValue:function(){var a=this.levels[this.currentLevel];a.items[a.index]++},nextLevel:function(){var a=this.currentLevel,b=this.levels[a],c=b.items[b.index];return a--,0>a?(this.value=c,!1):(this.currentLevel=a,b=this.levels[a],b.items[b.index]=c,!0)}},a}(),B=function(){function a(a,b,c){var d=l(Math.max(a,b))+1;this.levels=[];for(var e=0;d>e;e++){for(var f=new Uint8Array(a*b),g=0,h=f.length;h>g;g++)f[g]=c;var i={width:a,height:b,items:f};this.levels.push(i),a=Math.ceil(a/2),b=Math.ceil(b/2)}}return a.prototype={reset:function(a,b,c){for(var d=0;dc)return this.currentLevel=d,this.propagateValues(),!1;a>>=1,b>>=1,d++}return this.currentLevel=d-1,!0},incrementValue:function(a){var b=this.levels[this.currentLevel];b.items[b.index]=a+1,this.propagateValues()},propagateValues:function(){for(var a=this.currentLevel,b=this.levels[a],c=b.items[b.index];--a>=0;)b=this.levels[a],b.items[b.index]=c},nextLevel:function(){var a=this.currentLevel,b=this.levels[a],c=b.items[b.index];return b.items[b.index]=255,a--,0>a?!1:(this.currentLevel=a,b=this.levels[a],b.items[b.index]=c,!0)}},a}(),C=function(){function a(a,b,c,g,h){this.width=a,this.height=b,this.contextLabelTable="HH"===c?f:"HL"===c?e:d;var i=a*b;this.neighborsSignificance=new Uint8Array(i),this.coefficentsSign=new Uint8Array(i),this.coefficentsMagnitude=h>14?new Uint32Array(i):h>6?new Uint16Array(i):new Uint8Array(i),this.processingFlags=new Uint8Array(i);var j=new Uint8Array(i);if(0!==g)for(var k=0;i>k;k++)j[k]=g;this.bitsDecoded=j,this.reset()}var b=17,c=18,d=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),e=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),f=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);return a.prototype={setDecoder:function(a){this.decoder=a},reset:function(){this.contexts=new Int8Array(19),this.contexts[0]=8,this.contexts[b]=92,this.contexts[c]=6},setNeighborsSignificance:function(a,b,c){var d,e=this.neighborsSignificance,f=this.width,g=this.height,h=b>0,i=f>b+1;a>0&&(d=c-f,h&&(e[d-1]+=16),i&&(e[d+1]+=16),e[d]+=4),g>a+1&&(d=c+f,h&&(e[d-1]+=16),i&&(e[d+1]+=16),e[d]+=4),h&&(e[c-1]+=1),i&&(e[c+1]+=1),e[c]|=128},runSignificancePropogationPass:function(){for(var a=this.decoder,b=this.width,c=this.height,d=this.coefficentsMagnitude,e=this.coefficentsSign,f=this.neighborsSignificance,g=this.processingFlags,h=this.contexts,i=this.contextLabelTable,j=this.bitsDecoded,k=-2,l=1,m=2,n=0;c>n;n+=4)for(var o=0;b>o;o++)for(var p=n*b+o,q=0;4>q;q++,p+=b){var r=n+q;if(r>=c)break;if(g[p]&=k,!d[p]&&f[p]){var s=i[f[p]],t=a.readBit(h,s);if(t){var u=this.decodeSignBit(r,o,p);e[p]=u,d[p]=1,this.setNeighborsSignificance(r,o,p),g[p]|=m}j[p]++,g[p]|=l}}},decodeSignBit:function(a,b,c){var d,e,f,g,h,i,j=this.width,k=this.height,l=this.coefficentsMagnitude,m=this.coefficentsSign;g=b>0&&0!==l[c-1],j>b+1&&0!==l[c+1]?(f=m[c+1],g?(e=m[c-1],d=1-f-e):d=1-f-f):g?(e=m[c-1],d=1-e-e):d=0;var n=3*d;return g=a>0&&0!==l[c-j],k>a+1&&0!==l[c+j]?(f=m[c+j],g?(e=m[c-j],d=1-f-e+n):d=1-f-f+n):g?(e=m[c-j],d=1-e-e+n):d=n,d>=0?(h=9+d,i=this.decoder.readBit(this.contexts,h)):(h=9-d,i=1^this.decoder.readBit(this.contexts,h)),i},runMagnitudeRefinementPass:function(){for(var a,b=this.decoder,c=this.width,d=this.height,e=this.coefficentsMagnitude,f=this.neighborsSignificance,g=this.contexts,h=this.bitsDecoded,i=this.processingFlags,j=1,k=2,l=c*d,m=4*c,n=0;l>n;n=a){a=Math.min(l,n+m);for(var o=0;c>o;o++)for(var p=n+o;a>p;p+=c)if(e[p]&&0===(i[p]&j)){var q=16;if(0!==(i[p]&k)){i[p]^=k;var r=127&f[p];q=0===r?15:14}var s=b.readBit(g,q);e[p]=e[p]<<1|s,h[p]++,i[p]|=j}}},runCleanupPass:function(){for(var a,d=this.decoder,e=this.width,f=this.height,g=this.neighborsSignificance,h=this.coefficentsMagnitude,i=this.coefficentsSign,j=this.contexts,k=this.contextLabelTable,l=this.bitsDecoded,m=this.processingFlags,n=1,o=2,p=e,q=2*e,r=3*e,s=0;f>s;s=a){a=Math.min(s+4,f);for(var t=s*e,u=f>s+3,v=0;e>v;v++){var w,x=t+v,y=u&&0===m[x]&&0===m[x+p]&&0===m[x+q]&&0===m[x+r]&&0===g[x]&&0===g[x+p]&&0===g[x+q]&&0===g[x+r],z=0,A=x,B=s;if(y){var C=d.readBit(j,c);if(!C){l[x]++,l[x+p]++,l[x+q]++,l[x+r]++;continue}z=d.readBit(j,b)<<1|d.readBit(j,b),0!==z&&(B=s+z,A+=z*e),w=this.decodeSignBit(B,v,A),i[A]=w,h[A]=1,this.setNeighborsSignificance(B,v,A),m[A]|=o,A=x;for(var D=s;B>=D;D++,A+=e)l[A]++;z++}for(B=s+z;a>B;B++,A+=e)if(!h[A]&&0===(m[A]&n)){var E=k[g[A]],F=d.readBit(j,E);1===F&&(w=this.decodeSignBit(B,v,A),i[A]=w,h[A]=1,this.setNeighborsSignificance(B,v,A),m[A]|=o),l[A]++}}}},checkSegmentationSymbol:function(){var a=this.decoder,c=this.contexts,d=a.readBit(c,b)<<3|a.readBit(c,b)<<2|a.readBit(c,b)<<1|a.readBit(c,b);if(10!==d)throw new Error("JPX Error: Invalid segmentation symbol")}},a}(),D=function(){function a(){}return a.prototype.calculate=function(a,b,c){for(var d=a[0],e=1,f=a.length;f>e;e++)d=this.iterate(d,a[e],b,c);return d},a.prototype.extend=function(a,b,c){var d=b-1,e=b+1,f=b+c-2,g=b+c;a[d--]=a[e++],a[g++]=a[f--],a[d--]=a[e++],a[g++]=a[f--],a[d--]=a[e++],a[g++]=a[f--],a[d]=a[e],a[g]=a[f]},a.prototype.iterate=function(a,b,c,d){var e,f,g,h,i,j,k=a.width,l=a.height,m=a.items,n=b.width,o=b.height,p=b.items;for(g=0,e=0;l>e;e++)for(h=2*e*n,f=0;k>f;f++,g++,h+=2)p[h]=m[g];m=a.items=null;var q=4,r=new Float32Array(n+2*q);if(1===n){if(0!==(1&c))for(j=0,g=0;o>j;j++,g+=n)p[g]*=.5}else for(j=0,g=0;o>j;j++,g+=n)r.set(p.subarray(g,g+n),q),this.extend(r,q,n),this.filter(r,q,n),p.set(r.subarray(q,q+n),g);var s=16,t=[];for(e=0;s>e;e++)t.push(new Float32Array(o+2*q));var u,v=0;if(a=q+o,1===o){if(0!==(1&d))for(i=0;n>i;i++)p[i]*=.5}else for(i=0;n>i;i++){if(0===v){for(s=Math.min(n-i,s),g=i,h=q;a>h;g+=n,h++)for(u=0;s>u;u++)t[u][h]=p[g+u];v=s}v--;var w=t[v];if(this.extend(w,q,o),this.filter(w,q,o),0===v)for(g=i-s+1,h=q;a>h;g+=n,h++)for(u=0;s>u;u++)p[g+u]=t[u][h]}return{width:n,height:o,items:p}},a}(),E=function(){function a(){D.call(this)}return a.prototype=Object.create(D.prototype),a.prototype.filter=function(a,b,c){var d=c>>1;b=0|b;var e,f,g,h,i=-1.586134342059924,j=-.052980118572961,k=.882911075530934,l=.443506852043971,m=1.230174104914001,n=1/m;for(e=b-3,f=d+4;f--;e+=2)a[e]*=n;for(e=b-2,g=l*a[e-1],f=d+3;f--&&(h=l*a[e+1],a[e]=m*a[e]-g-h,f--);e+=2)e+=2,g=l*a[e+1],a[e]=m*a[e]-g-h;for(e=b-1,g=k*a[e-1],f=d+2;f--&&(h=k*a[e+1],a[e]-=g+h,f--);e+=2)e+=2,g=k*a[e+1],a[e]-=g+h;for(e=b,g=j*a[e-1],f=d+1;f--&&(h=j*a[e+1],a[e]-=g+h,f--);e+=2)e+=2,g=j*a[e+1],a[e]-=g+h;if(0!==d)for(e=b+1,g=i*a[e-1],f=d;f--&&(h=i*a[e+1],a[e]-=g+h,f--);e+=2)e+=2,g=i*a[e+1],a[e]-=g+h},a}(),F=function(){function a(){D.call(this)}return a.prototype=Object.create(D.prototype),a.prototype.filter=function(a,b,c){var d=c>>1;b=0|b;var e,f;for(e=b,f=d+1;f--;e+=2)a[e]-=a[e-1]+a[e+1]+2>>2;for(e=b+1,f=d;f--;e+=2)a[e]+=a[e-1]+a[e+1]>>1},a}();return c}(),id=function(){function a(){}function b(a,b,c){this.data=a,this.start=b,this.end=c}function d(a,b,c){function d(a){for(var b=0,d=0;a>d;d++){var g=c.readBit(e,f);f=256>f?f<<1|g:511&(f<<1|g)|256,b=b<<1|g}return b>>>0}var e=a.getContexts(b),f=1,g=d(1),h=d(1)?d(1)?d(1)?d(1)?d(1)?d(32)+4436:d(12)+340:d(8)+84:d(6)+20:d(4)+4:d(2);return 0===g?h:h>0?-h:null}function e(a,b,c){for(var d=a.getContexts("IAID"),e=1,f=0;c>f;f++){var g=b.readBit(d,e);e=e<<1|g}return 31>c?e&(1<e;e++)for(h=m[e]=new Uint8Array(a),i=1>e?h:m[e-1],j=2>e?h:m[e-2],d=j[0]<<13|j[1]<<12|j[2]<<11|i[0]<<7|i[1]<<6|i[2]<<5|i[3]<<4,f=0;a>f;f++)h[f]=g=k.readBit(l,d),d=(d&n)<<1|(a>f+3?j[f+3]<<11:0)|(a>f+4?i[f+4]<<4:0)|g;return m}function h(a,b,d,e,g,h,i,j){if(a&&c("JBIG2 error: MMR encoding is not supported"),0===e&&!h&&!g&&4===i.length&&3===i[0].x&&-1===i[0].y&&-3===i[1].x&&-1===i[1].y&&2===i[2].x&&-2===i[2].y&&-2===i[3].x&&-2===i[3].y)return f(b,d,j);var k=!!h,l=y[e].concat(i);l.sort(function(a,b){return a.y-b.y||a.x-b.x});var m,n,o=l.length,p=new Int8Array(o),q=new Int8Array(o),r=[],s=0,t=0,u=0,v=0;for(n=0;o>n;n++)p[n]=l[n].x,q[n]=l[n].y,t=Math.min(t,l[n].x),u=Math.max(u,l[n].x),v=Math.min(v,l[n].y),o-1>n&&l[n].y===l[n+1].y&&l[n].x===l[n+1].x-1?s|=1<m;m++)n=r[m],x[m]=l[n].x,z[m]=l[n].y,B[m]=1<R;R++){if(g){var S=N.readBit(O,K);if(P^=S){M.push(L);continue}}for(L=new Uint8Array(L),M.push(L),C=0;b>C;C++)if(k&&h[R][C])L[C]=0;else{if(C>=H&&J>C&&R>=I)for(Q=Q<<1&s,n=0;w>n;n++)D=R+z[n],E=C+x[n],F=M[D][E],F&&(F=B[n],Q|=F);else for(Q=0,G=o-1,n=0;o>n;n++,G--)E=C+p[n],E>=0&&b>E&&(D=R+q[n],D>=0&&(F=M[D][E],F&&(Q|=F<l;l++)n[l]=k[l].x,o[l]=k[l].y;var p=z[d].reference;0===d&&(p=p.concat([i[1]]));var q=p.length,r=new Int32Array(q),s=new Int32Array(q);for(l=0;q>l;l++)r[l]=p[l].x,s[l]=p[l].y;for(var t=e[0].length,u=e.length,v=B[d],w=[],x=j.decoder,y=j.contextCache.getContexts("GR"),A=0,C=0;b>C;C++){if(h){var D=x.readBit(y,v);A^=D,A&&c("JBIG2 error: prediction is not supported")}var E=new Uint8Array(a);w.push(E);for(var F=0;a>F;F++){var G,H,I=0;for(l=0;m>l;l++)G=C+o[l],H=F+n[l],0>G||0>H||H>=a?I<<=1:I=I<<1|w[G][H];for(l=0;q>l;l++)G=C+s[l]+g,H=F+r[l]+f,0>G||G>=u||0>H||H>=t?I<<=1:I=I<<1|e[G][H];var J=x.readBit(y,I);E[F]=J}}return w}function j(a,b,f,g,j,m,n,o,p,q,r){a&&c("JBIG2 error: huffman is not supported");for(var s=[],t=0,u=l(f.length+g),v=r.decoder,w=r.contextCache;s.length1)B=k(a,b,y,t,0,C,1,f.concat(s),u,0,0,1,0,m,p,q,r);else{var D=e(w,v,u),E=d(w,"IARDX",v),F=d(w,"IARDY",v),G=DM;M++)I[M]&&H.push(f[M]);for(var O=0;g>O;M++,O++)I[M]&&H.push(s[O]);return H}function k(a,b,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u){a&&c("JBIG2 error: huffman is not supported");var v,w,x=[];for(v=0;g>v;v++){if(w=new Uint8Array(f),h)for(var y=0;f>y;y++)w[y]=h;x.push(w)}var z=u.decoder,A=u.contextCache,B=-d(A,"IADT",z),C=0;for(v=0;j>v;){var D=d(A,"IADT",z);B+=D;var E=d(A,"IAFS",z);C+=E;for(var F=C;;){var G=1===k?0:d(A,"IAIT",z),H=k*B+G,I=e(A,z,m),J=b&&d(A,"IARI",z),K=l[I],L=K[0].length,M=K.length;if(J){var N=d(A,"IARDW",z),O=d(A,"IARDH",z),P=d(A,"IARDX",z),Q=d(A,"IARDY",z);L+=N,M+=O,K=i(L,M,s,K,(N>>1)+P,(O>>1)+Q,!1,t,u)}var R,S,T,U=H-(1&p?0:M),V=F-(2&p?L:0);if(n){for(R=0;M>R;R++)if(w=x[V+R]){T=K[R];var W=Math.min(f-U,L);switch(q){case 0:for(S=0;W>S;S++)w[U+S]|=T[S];break;case 2:for(S=0;W>S;S++)w[U+S]^=T[S];break;default:c("JBIG2 error: operator "+q+" is not supported")}}F+=M-1}else{for(S=0;M>S;S++)if(w=x[U+S])switch(T=K[S],q){case 0:for(R=0;L>R;R++)w[V+R]|=T[R];break;case 2:for(R=0;L>R;R++)w[V+R]^=T[R];break;default:c("JBIG2 error: operator "+q+" is not supported")}F+=L-1}v++;var X=d(A,"IADS",z);if(null===X)break;F+=X+o}}return x}function p(a,b){var d={};d.number=o(a,b);var e=a[b+4],f=63&e;x[f]||c("JBIG2 error: invalid segment type: "+f),d.type=f,d.typeName=x[f],d.deferredNonRetain=!!(128&e);var g=!!(64&e),h=a[b+5],i=h>>5&7,j=[31&h],k=b+6;if(7===h){i=536870911&o(a,k-1),k+=3;var l=i+7>>3;for(j[0]=a[k++];--l>0;)j.push(a[k++])}else 5!==h&&6!==h||c("JBIG2 error: invalid referred-to flags");d.retainBits=j;var m,p,q=d.number<=256?1:d.number<=65536?2:4,s=[];for(m=0;i>m;m++){var t=1===q?a[k]:2===q?n(a,k):o(a,k);s.push(t),k+=q}if(d.referredTo=s,g?(d.pageAssociation=o(a,k),k+=4):d.pageAssociation=a[k++],d.length=o(a,k),k+=4,4294967295===d.length)if(38===f){var u=r(a,k),v=a[k+C],w=!!(1&v),y=6,z=new Uint8Array(y);for(w||(z[0]=255,z[1]=172),z[2]=u.height>>>24&255,z[3]=u.height>>16&255,z[4]=u.height>>8&255,z[5]=255&u.height,m=k,p=a.length;p>m;m++){for(var A=0;y>A&&z[A]===a[m+A];)A++;if(A===y){d.length=m+y;break}}4294967295===d.length&&c("JBIG2 error: segment end was not found")}else c("JBIG2 error: invalid unknown segment length");return d.headerEnd=k,d}function q(a,b,c,d){for(var e=[],f=c;d>f;){var g=p(b,f);f=g.headerEnd;var h={header:g,data:b};if(a.randomAccess||(h.start=f,f+=g.length,h.end=f),e.push(h),51===g.type)break}if(a.randomAccess)for(var i=0,j=e.length;j>i;i++)e[i].start=f,f+=e[i].header.length,e[i].end=f;return e}function r(a,b){return{width:o(a,b),height:o(a,b+4),x:o(a,b+8),y:o(a,b+12),combinationOperator:7&a[b+16]}}function s(a,b){var d,e,f,g,h=a.header,i=a.data,j=a.start,k=a.end;switch(h.type){case 0:var l={},p=n(i,j);if(l.huffman=!!(1&p),l.refinement=!!(2&p),l.huffmanDHSelector=p>>2&3,l.huffmanDWSelector=p>>4&3,l.bitmapSizeSelector=p>>6&1,l.aggregationInstancesSelector=p>>7&1,l.bitmapCodingContextUsed=!!(256&p),l.bitmapCodingContextRetained=!!(512&p),l.template=p>>10&3,l.refinementTemplate=p>>12&1,j+=2,!l.huffman){for(g=0===l.template?4:1,e=[],f=0;g>f;f++)e.push({x:m(i,j),y:m(i,j+1)}),j+=2;l.at=e}if(l.refinement&&!l.refinementTemplate){for(e=[],f=0;2>f;f++)e.push({x:m(i,j),y:m(i,j+1)}),j+=2;l.refinementAt=e}l.numberOfExportedSymbols=o(i,j),j+=4,l.numberOfNewSymbols=o(i,j),j+=4,d=[l,h.number,h.referredTo,i,j,k];break;case 6:case 7:var q={};q.info=r(i,j),j+=C;var s=n(i,j);if(j+=2,q.huffman=!!(1&s),q.refinement=!!(2&s),q.stripSize=1<<(s>>2&3),q.referenceCorner=s>>4&3,q.transposed=!!(64&s),q.combinationOperator=s>>7&3,q.defaultPixelValue=s>>9&1,q.dsOffset=s<<17>>27,q.refinementTemplate=s>>15&1,q.huffman){var t=n(i,j);j+=2,q.huffmanFS=3&t,q.huffmanDS=t>>2&3,q.huffmanDT=t>>4&3,q.huffmanRefinementDW=t>>6&3,q.huffmanRefinementDH=t>>8&3,q.huffmanRefinementDX=t>>10&3,q.huffmanRefinementDY=t>>12&3,q.huffmanRefinementSizeSelector=!!(14&t)}if(q.refinement&&!q.refinementTemplate){for(e=[],f=0;2>f;f++)e.push({x:m(i,j),y:m(i,j+1)}),j+=2;q.refinementAt=e}q.numberOfSymbolInstances=o(i,j),j+=4,q.huffman&&c("JBIG2 error: huffman is not supported"),d=[q,h.referredTo,i,j,k];break;case 38:case 39:var u={};u.info=r(i,j),j+=C;var v=i[j++];if(u.mmr=!!(1&v),u.template=v>>1&3,u.prediction=!!(8&v),!u.mmr){for(g=0===u.template?4:1,e=[],f=0;g>f;f++)e.push({x:m(i,j),y:m(i,j+1)}),j+=2;u.at=e}d=[u,i,j,k];break;case 48:var w={width:o(i,j),height:o(i,j+4),resolutionX:o(i,j+8),resolutionY:o(i,j+12)};4294967295===w.height&&delete w.height;var x=i[j+16];n(i,j+17);w.lossless=!!(1&x),w.refinement=!!(2&x),w.defaultPixelValue=x>>2&1,w.combinationOperator=x>>3&3,w.requiresBuffer=!!(32&x),w.combinationOperatorOverride=!!(64&x),d=[w];break;case 49:break;case 50:break;case 51:break;case 62:break;default:c("JBIG2 error: segment type "+h.typeName+"("+h.type+") is not implemented")}var y="on"+h.typeName;y in b&&b[y].apply(b,d)}function t(a,b){for(var c=0,d=a.length;d>c;c++)s(a[c],b)}function u(a){for(var b=new v,c=0,d=a.length;d>c;c++){var e=a[c],f=q({},e.data,e.start,e.end);t(f,b)}return b.buffer}function v(){}function w(){}a.prototype={getContexts:function(a){return a in this?this[a]:this[a]=new Int8Array(65536)}},b.prototype={get decoder(){var a=new fd(this.data,this.start,this.end);return g(this,"decoder",a)},get contextCache(){var b=new a;return g(this,"contextCache",b)}};var x=["SymbolDictionary",null,null,null,"IntermediateTextRegion",null,"ImmediateTextRegion","ImmediateLosslessTextRegion",null,null,null,null,null,null,null,null,"patternDictionary",null,null,null,"IntermediateHalftoneRegion",null,"ImmediateHalftoneRegion","ImmediateLosslessHalftoneRegion",null,null,null,null,null,null,null,null,null,null,null,null,"IntermediateGenericRegion",null,"ImmediateGenericRegion","ImmediateLosslessGenericRegion","IntermediateGenericRefinementRegion",null,"ImmediateGenericRefinementRegion","ImmediateLosslessGenericRefinementRegion",null,null,null,null,"PageInformation","EndOfPage","EndOfStripe","EndOfFile","Profiles","Tables",null,null,null,null,null,null,null,null,"Extension"],y=[[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:2,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-2,y:0},{x:-1,y:0}],[{x:-3,y:-1},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}]],z=[{coding:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:-1,y:1},{x:0,y:1},{x:1,y:1}]},{coding:[{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}]}],A=[39717,1941,229,405],B=[32,8],C=17;return v.prototype={onPageInformation:function(a){this.currentPageInfo=a;var b=a.width+7>>3,c=new Uint8Array(b*a.height);if(a.defaultPixelValue)for(var d=0,e=c.length;e>d;d++)c[d]=255;this.buffer=c},drawBitmap:function(a,b){var d,e,f,g,h=this.currentPageInfo,i=a.width,j=a.height,k=h.width+7>>3,l=h.combinationOperatorOverride?a.combinationOperator:h.combinationOperator,m=this.buffer,n=128>>(7&a.x),o=a.y*k+(a.x>>3);switch(l){case 0:for(d=0;j>d;d++){for(f=n,g=o,e=0;i>e;e++)b[d][e]&&(m[g]|=f),f>>=1,f||(f=128,g++);o+=k}break;case 2:for(d=0;j>d;d++){for(f=n,g=o,e=0;i>e;e++)b[d][e]&&(m[g]^=f),f>>=1,f||(f=128,g++);o+=k}break;default:c("JBIG2 error: operator "+l+" is not supported")}},onImmediateGenericRegion:function(a,c,d,e){var f=a.info,g=new b(c,d,e),i=h(a.mmr,f.width,f.height,a.template,a.prediction,null,a.at,g);this.drawBitmap(f,i)},onImmediateLosslessGenericRegion:function(){this.onImmediateGenericRegion.apply(this,arguments)},onSymbolDictionary:function(a,d,e,f,g,h){var i;a.huffman&&c("JBIG2 error: huffman is not supported");var k=this.symbols;k||(this.symbols=k={});for(var l=[],m=0,n=e.length;n>m;m++)l=l.concat(k[e[m]]);var o=new b(f,g,h);k[d]=j(a.huffman,a.refinement,l,a.numberOfNewSymbols,a.numberOfExportedSymbols,i,a.template,a.at,a.refinementTemplate,a.refinementAt,o)},onImmediateTextRegion:function(a,c,d,e,f){for(var g,h=a.info,i=this.symbols,j=[],m=0,n=c.length;n>m;m++)j=j.concat(i[c[m]]);var o=l(j.length),p=new b(d,e,f),q=k(a.huffman,a.refinement,h.width,h.height,a.defaultPixelValue,a.numberOfSymbolInstances,a.stripSize,j,o,a.transposed,a.dsOffset,a.referenceCorner,a.combinationOperator,g,a.refinementTemplate,a.refinementAt,p);this.drawBitmap(h,q)},onImmediateLosslessTextRegion:function(){this.onImmediateTextRegion.apply(this,arguments)}},w.prototype={parseChunks:function(a){return u(a)}},w}(),jd=(PDFJS.bidi=function(){function a(a){return 0!==(1&a)}function b(a){return 0===(1&a)}function c(a,b,c){for(var d=b,e=a.length;e>d;++d)if(a[d]!==c)return d;return d}function d(a,b,c,d){for(var e=b;c>e;++e)a[e]=d}function e(a,b,c){for(var d=b,e=c-1;e>d;++d,--e){var f=a[d];a[d]=a[e],a[e]=f}}function f(a,b,c){return{str:a,dir:c?"ttb":b?"ltr":"rtl"}}function g(g,l,m){var n=!0,o=g.length;if(0===o||m)return f(g,n,m);j.length=o,k.length=o;var p,q,r=0;for(p=0;o>p;++p){j[p]=g.charAt(p);var s=g.charCodeAt(p),t="L";255>=s?t=h[s]:s>=1424&&1524>=s?t="R":s>=1536&&1791>=s?t=i[255&s]:s>=1792&&2220>=s&&(t="AL"),"R"!==t&&"AL"!==t&&"AN"!==t||r++,k[p]=t}if(0===r)return n=!0,f(g,n);-1===l&&(.3>o/r?(n=!0,l=0):(n=!1,l=1));var u=[];for(p=0;o>p;++p)u[p]=l;var v=a(l)?"R":"L",w=v,x=w,y=w;for(p=0;o>p;++p)"NSM"===k[p]?k[p]=y:y=k[p];y=w;var z;for(p=0;o>p;++p)z=k[p],"EN"===z?k[p]="AL"===y?"AN":"EN":"R"!==z&&"L"!==z&&"AL"!==z||(y=z);for(p=0;o>p;++p)z=k[p],"AL"===z&&(k[p]="R");for(p=1;o-1>p;++p)"ES"===k[p]&&"EN"===k[p-1]&&"EN"===k[p+1]&&(k[p]="EN"),"CS"!==k[p]||"EN"!==k[p-1]&&"AN"!==k[p-1]||k[p+1]!==k[p-1]||(k[p]=k[p-1]);for(p=0;o>p;++p)if("EN"===k[p]){var A;for(A=p-1;A>=0&&"ET"===k[A];--A)k[A]="EN";for(A=p+1;o>A&&"ET"===k[A];--A)k[A]="EN"}for(p=0;o>p;++p)z=k[p],"WS"!==z&&"ES"!==z&&"ET"!==z&&"CS"!==z||(k[p]="ON");for(y=w,p=0;o>p;++p)z=k[p],"EN"===z?k[p]="L"===y?"L":"EN":"R"!==z&&"L"!==z||(y=z);for(p=0;o>p;++p)if("ON"===k[p]){var B=c(k,p+1,"ON"),C=w;p>0&&(C=k[p-1]);var D=x;o>B+1&&(D=k[B+1]),"L"!==C&&(C="R"),"L"!==D&&(D="R"),C===D&&d(k,p,B,C),p=B-1}for(p=0;o>p;++p)"ON"===k[p]&&(k[p]=v);for(p=0;o>p;++p)z=k[p],b(u[p])?"R"===z?u[p]+=1:"AN"!==z&&"EN"!==z||(u[p]+=2):"L"!==z&&"AN"!==z&&"EN"!==z||(u[p]+=1);var E,F=-1,G=99;for(p=0,q=u.length;q>p;++p)E=u[p],E>F&&(F=E),G>E&&a(E)&&(G=E);for(E=F;E>=G;--E){var H=-1;for(p=0,q=u.length;q>p;++p)u[p]=0&&(e(j,H,p),H=-1):0>H&&(H=p);H>=0&&e(j,H,u.length)}for(p=0,q=j.length;q>p;++p){var I=j[p];"<"!==I&&">"!==I||(j[p]="")}return f(j.join(""),n)}var h=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ON","CS","ON","CS","ON","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","ON","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","ON","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],i=["AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","AL","AL","AL","AL","AL","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL"],j=[],k=[]; +return g}(),function(a){function b(a){var b=3285377520;this.h1=a?4294967295&a:b,this.h2=a?4294967295&a:b}var c=4294901760,d=65535,e=!1;try{new Uint32Array(new Uint8Array(5).buffer,0,1)}catch(f){e=!0}return b.prototype={update:function(a){var b,f=e;if("string"==typeof a){var g=new Uint8Array(2*a.length),h=0;for(b=0;b=i?g[h++]=i:(g[h++]=i>>>8,g[h++]=255&i)}}else if(a instanceof Uint8Array)g=a,h=g.length;else{if(!("object"==typeof a&&"length"in a))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");g=a,h=g.length,f=!0}var j=h>>2,k=h-4*j,l=f?new la(g,j):new Uint32Array(g.buffer,0,j),m=0,n=0,o=this.h1,p=this.h2,q=3432918353,r=461845907,s=q&d,t=r&d;for(b=0;j>b;b++)1&b?(m=l[b],m=m*q&c|m*s&d,m=m<<15|m>>>17,m=m*r&c|m*t&d,o^=m,o=o<<13|o>>>19,o=5*o+3864292196):(n=l[b],n=n*q&c|n*s&d,n=n<<15|n>>>17,n=n*r&c|n*t&d,p^=n,p=p<<13|p>>>19,p=5*p+3864292196);switch(m=0,k){case 3:m^=g[4*j+2]<<16;case 2:m^=g[4*j+1]<<8;case 1:m^=g[4*j],m=m*q&c|m*s&d,m=m<<15|m>>>17,m=m*r&c|m*t&d,1&j?o^=m:p^=m}return this.h1=o,this.h2=p,this},hexdigest:function(){var a=this.h1,b=this.h2;a^=b>>>1,a=3981806797*a&c|36045*a&d,b=4283543511*b&c|(2950163797*(b<<16|a>>>16)&c)>>>16,a^=b>>>1,a=444984403*a&c|60499*a&d,b=3301882366*b&c|(3120437893*(b<<16|a>>>16)&c)>>>16,a^=b>>>1;for(var e=0,f=[a,b],g="";e>>0).toString(16);h.length<8;)h="0"+h;g+=h}return g}},b}())}.call("undefined"==typeof window?this:window),PDFJS.workerSrc||"undefined"==typeof document||(PDFJS.workerSrc=function(){"use strict";var a=document.body||document.getElementsByTagName("head")[0],b=a.lastChild.src;return b&&b.replace(/\.js$/i,".worker.js")}()),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split("/"),o=s.map,p=o&&o["*"]||{};if(a&&"."===a.charAt(0))if(b){for(a=a.split("/"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,"")),a=n.slice(0,n.length-1).concat(a),k=0;k0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=v.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),n.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(a){if(e(r,a)){var c=r[a];delete r[a],t[a]=!0,m.apply(b,c)}if(!e(q,a)&&!e(t,a))throw new Error("No "+a);return q[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return"undefined"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:"",exports:q[a],config:l(a)}}},m=function(a,c,d,f){var h,k,l,m,n,s,u=[],v=typeof d;if(f=f||a,"undefined"===v||"function"===v){for(c=!c.length&&d.length?["require","exports","module"]:c,n=0;n0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;hc;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;a>c;c++){var d=Math.floor(36*Math.random());b+=d.toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e":">",'"':""","'":"'","/":"/"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('
      ');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('
    • '),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c-1?b.attr("aria-selected","true"):b.attr("aria-selected","false")});var f=e.filter("[aria-selected=true]");f.length>0?f.first().trigger("mouseenter"):e.first().trigger("mouseenter")})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(b){var c=document.createElement("li");c.className="select2-results__option";var d={role:"treeitem","aria-selected":"false"};b.disabled&&(delete d["aria-selected"],d["aria-disabled"]="true"),null==b.id&&delete d["aria-selected"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role="group",d["aria-label"]=b.text,delete d["aria-selected"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement("strong");h.className="select2-results__group";a(h);this.template(b,h);for(var i=[],j=0;j",{"class":"select2-results__options select2-results__options--nested"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b,c){var d=this,e=b.id+"-results";this.$results.attr("id",e),b.on("results:all",function(a){d.clear(),d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("results:append",function(a){d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("query",function(a){d.hideMessages(),d.showLoading(a)}),b.on("select",function(){b.isOpen()&&d.setClasses()}),b.on("unselect",function(){b.isOpen()&&d.setClasses()}),b.on("open",function(){d.$results.attr("aria-expanded","true"),d.$results.attr("aria-hidden","false"),d.setClasses(),d.ensureHighlightVisible()}),b.on("close",function(){d.$results.attr("aria-expanded","false"),d.$results.attr("aria-hidden","true"),d.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=d.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=d.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("aria-selected")?d.trigger("close",{}):d.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a);if(0!==c){var e=c-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top,h=f.offset().top,i=d.$results.scrollTop()+(h-g);0===e?d.$results.scrollTop(0):0>h-g&&d.$results.scrollTop(i)}}),b.on("results:next",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a),e=c+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top+d.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=d.$results.scrollTop()+h-g;0===e?d.$results.scrollTop(0):h>g&&d.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),b.on("results:message",function(a){d.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=d.$results.scrollTop(),c=d.$results.get(0).scrollHeight-d.$results.scrollTop()+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=d.$results.height();e?(d.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(d.$results.scrollTop(d.$results.get(0).scrollHeight-d.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(b){var c=a(this),e=c.data("data");return"true"===c.attr("aria-selected")?void(d.options.get("multiple")?d.trigger("unselect",{originalEvent:b,data:e}):d.trigger("close",{})):void d.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(b){var c=a(this).data("data");d.getHighlightedResults().removeClass("select2-results__option--highlighted"),d.trigger("results:focus",{data:c,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(".select2-results__option--highlighted");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};return a}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),b.attr("title",this.$element.attr("title")),b.attr("tabindex",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a,b){var d=this,e=(a.id+"-container",a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(b){a(document.body).on("mousedown.select2."+b.id,function(b){var c=a(b.target),d=c.closest(".select2"),e=a(".select2.select2-container--open");e.each(function(){var b=a(this);if(this!=d[0]){var c=b.data("element");c.select2("close")}})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){var c=b.find(".selection");c.append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html(''),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("selection:update",function(a){c.update(a.data)})},e.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},e.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},e.prototype.selectionContainer=function(){return a("")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.prop("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('
        '),a},d.prototype.bind=function(b,c){var e=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){e.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!e.options.get("disabled")){var c=a(this),d=c.parent(),f=d.data("data");e.trigger("unselect",{originalEvent:b,data:f})}})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},d.prototype.selectionContainer=function(){var b=a('
      • ×
      • ');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(e)},b}),b.define("select2/selection/allowClear",["jquery","../keys"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var c=this.$selection.find(".select2-selection__clear");if(0!==c.length){b.stopPropagation();for(var d=c.data("data"),e=0;e0||0===c.length)){var d=a('×');d.data("data",c),this.$selection.find(".select2-selection__rendered").prepend(d)}},c}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on("open",function(){e.$search.trigger("focus")}),b.on("close",function(){e.$search.val(""),e.$search.removeAttr("aria-activedescendant"),e.$search.trigger("focus")}),b.on("enable",function(){e.$search.prop("disabled",!1),e._transferTabIndex()}),b.on("disable",function(){e.$search.prop("disabled",!0)}),b.on("focus",function(a){e.$search.trigger("focus")}),b.on("results:focus",function(a){e.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&""===e.$search.val()){var d=e.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var f=d.data("data");e.searchRemoveChoice(f),a.preventDefault()}}});var f=document.documentMode,g=f&&11>=f;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){return g?void e.$selection.off("input.search input.searchcheck"):void e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(g&&"input"===a.type)return void e.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&e.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c&&this.$search.focus()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){var a={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ç ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ç¢":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","ï¼¢":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","ï¼£":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","È»":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","ï¼¥":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ç´":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ä ":"G","Ǧ":"G","Ä¢":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","â±µ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","Ä°":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Ä®":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ä´":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ä¿":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ä»":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","â±¢":"L","â± ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","ï¼­":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","â±®":"M","Ɯ":"M","Ⓝ":"N","ï¼®":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","È ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","È®":"O","È°":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Æ ":"O","Ờ":"O","Ớ":"O","á» ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Æ¢":"OI","Ꝏ":"OO","È¢":"OU","Ⓟ":"P","ï¼°":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","â±£":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","ï¼±":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","ï¼²":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","ï¼³":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","á¹ ":"S","Å ":"S","Ṧ":"S","á¹¢":"S","Ṩ":"S","Ș":"S","Ş":"S","â±¾":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","ï¼´":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Å¢":"T","á¹°":"T","á¹®":"T","Ŧ":"T","Ƭ":"T","Æ®":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","ï¼µ":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Å®":"U","Å°":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","á»®":"U","Ử":"U","á»°":"U","Ụ":"U","á¹²":"U","Ų":"U","Ṷ":"U","á¹´":"U","Ʉ":"U","Ⓥ":"V","V":"V","á¹¼":"V","á¹¾":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","ï¼·":"W","Ẁ":"W","Ẃ":"W","Å´":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","â±²":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","ï¼¹":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","á»´":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Å»":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","Ç¡":"a","ä":"a","ǟ":"a","ả":"a","Ã¥":"a","Ç»":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","â±¥":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","Ç£":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","È©":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","Ä¡":"g","ǧ":"g","Ä£":"g","Ç¥":"g","É ":"g","ꞡ":"g","áµ¹":"g","ꝿ":"g","ⓗ":"h","h":"h","Ä¥":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","É¥":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","Ä©":"i","Ä«":"i","Ä­":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","Ç°":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","Ç©":"k","ḳ":"k","Ä·":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","Å¿":"l","ł":"l","ƚ":"l","É«":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","È­":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","È«":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","Æ¡":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","Ç«":"o","Ç­":"o","ø":"o","Ç¿":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","Æ£":"oi","È£":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","Æ¥":"p","áµ½":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","á¹¥":"s","ŝ":"s","ṡ":"s","Å¡":"s","ṧ":"s","á¹£":"s","ṩ":"s","ș":"s","ş":"s","È¿":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","Å¥":"t","á¹­":"t","ț":"t","Å£":"t","á¹±":"t","ṯ":"t","ŧ":"t","Æ­":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","Å©":"u","á¹¹":"u","Å«":"u","á¹»":"u","Å­":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","Æ°":"u","ừ":"u","ứ":"u","ữ":"u","á»­":"u","á»±":"u","ụ":"u","á¹³":"u","ų":"u","á¹·":"u","á¹µ":"u","ʉ":"u","ⓥ":"v","v":"v","á¹½":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","â±³":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","Å·":"y","ỹ":"y","ȳ":"y","ẏ":"y", +"ÿ":"y","á»·":"y","ẙ":"y","ỵ":"y","Æ´":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","È¥":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Î¥","Ϋ":"Î¥","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};return a}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),d+=null!=c.id?"-"+c.id.toString():"-"+a.generateChars(4)},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},l,j),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&""!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");if(void 0!==f&&(this.createTag=f),b.call(this,c,d),a.isArray(e))for(var g=0;g0&&b.term.length>this.maximumInputLength?void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val("")}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('
      • '),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a(""),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(b){var c=a(this).data("select2-scroll-position");a(this).scrollTop(c.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id,h=this.$container.parents().filter(b.hasScroll);h.off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=(this.$container.position(),this.$container.offset());f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.topf.bottom+h.height,l={left:f.left,top:g.bottom};if("static"!==this.$dropdownParent[0].style.position){var m=this.$dropdownParent.offset();l.top-=m.top,l.left-=m.left}c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),null==l.tokenSeparators&&null==l.tokenizer||(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return 0>=e?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener("DOMAttrModified",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=a&&0!==a.length||(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._sync),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&this.$element[0].removeEventListener("DOMAttrModified",this._sync,!1),this._sync=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a(''); +return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),b.data("element",this.$element),b},e}),b.define("jquery-mousewheel",["jquery"],function(a){return a}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(a,b,c,d){if(null==a.fn.select2){var e=["open","close","destroy"];a.fn.select2=function(b){if(b=b||{},"object"==typeof b)return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d;return this.each(function(){var c=a(this).data("select2");null==c&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2.");var e=Array.prototype.slice.call(arguments,1);d=c[b].apply(c,e)}),a.inArray(b,e)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c}),angular.module("sprintf",[]).filter("sprintf",function(){return function(){return sprintf.apply(null,arguments)}}).filter("fmt",["$filter",function(a){return a("sprintf")}]).filter("vsprintf",function(){return function(a,b){return vsprintf(a,b)}}).filter("vfmt",["$filter",function(a){return a("vsprintf")}]),angular.module("ui.navbar",["ui.bootstrap","template/navbar-ul.html","template/navbar-li.html"]).directive("tree",function(){return{restrict:"E",replace:!0,scope:{tree:"="},templateUrl:"template/navbar-ul.html"}}).directive("leaf",["$compile",function(a){return{restrict:"E",replace:!0,scope:{leaf:"="},templateUrl:"template/navbar-li.html",link:function(b,c,d){if(angular.isArray(b.leaf.subtree)){c.append('');for(var e=c.parent(),f=!1;e.length>0&&!f;)e.hasClass("navbar-right")&&(f=!0),e=e.parent();f?c.addClass("dropdown-submenu-right"):c.addClass("dropdown-submenu"),a(c.contents())(b)}}}}]),angular.module("template/navbar-li.html",[]).run(["$templateCache",function(a){a.put("template/navbar-li.html",'
      • \n {{leaf.name}}\n
      • ')}]),angular.module("template/navbar-ul.html",[]).run(["$templateCache",function(a){a.put("template/navbar-ul.html","")}]),angular.module("ngAudio",[]).directive("ngAudio",["$compile","$q","ngAudio",function(a,b,c){return{restrict:"AEC",scope:{volume:"=",start:"=",currentTime:"=",loop:"=",clickPlay:"=",disablePreload:"="},controller:["$scope","$attrs","$element","$timeout",function(a,b,d,e){function f(){g=c.load(b.ngAudio,a),a.$audio=g,g.unbind()}var g;a.disablePreload||f(),d.on("click",function(){a.clickPlay!==!1&&(a.disablePreload&&f(),g.audio.play(),g.volume=a.volume||g.volume,g.loop=a.loop,g.currentTime=a.start||0,e(function(){g.play()},5))}),d.on("$destroy",function(){g.destroy()})}]}}]).directive("ngAudioHover",["$compile","$q","ngAudio",function(a,b,c){return{restrict:"AEC",controller:["$scope","$attrs","$element","$timeout",function(a,b,d,e){var f=c.load(b.ngAudioHover,a);d.on("mouseover rollover hover",function(){f.audio.play(),f.volume=b.volumeHover||f.volume,f.loop=b.loop,f.currentTime=b.startHover||0}),d.on("$destroy",function(){f.destroy()})}]}}]).service("localAudioFindingService",["$q",function(a){this.find=function(b){var c=a.defer(),d=document.getElementById(b);return d?c.resolve(d):c.reject(b),c.promise}}]).service("remoteAudioFindingService",["$q",function(a){this.find=function(b){var c=a.defer(),d=new Audio;return d.addEventListener("error",function(){c.reject()}),d.addEventListener("loadstart",function(){c.resolve(d)}),setTimeout(function(){d.src=b},1),c.promise}}]).service("cleverAudioFindingService",["$q","localAudioFindingService","remoteAudioFindingService",function(a,b,c){this.find=function(d){var e=a.defer();return d=d.replace("|","/"),b.find(d).then(e.resolve,function(){return c.find(d)}).then(e.resolve,e.reject),e.promise}}]).value("ngAudioGlobals",{muting:!1,songmuting:!1,performance:25,unlock:!0}).factory("NgAudioObject",["cleverAudioFindingService","$rootScope","$interval","$timeout","ngAudioGlobals",function(a,b,c,d,e){return function(d,f){function g(){o.play(),o.pause(),window.removeEventListener("click",g)}function h(){w||(A&&c.cancel(A),l&&l(),k&&k(),w=!0)}function i(){w||(k=x.$watch(function(){return{volume:y.volume,currentTime:y.currentTime,progress:y.progress,muting:y.muting,loop:y.loop,playbackRate:y.playbackRate}},function(a,b){a.currentTime!==b.currentTime&&y.setCurrentTime(a.currentTime),a.progress!==b.progress&&y.setProgress(a.progress),a.volume!==b.volume&&y.setVolume(a.volume),a.playbackRate!==b.playbackRate&&y.setPlaybackRate(a.playbackRate),n=a.loop,a.muting!==b.muting&&y.setMuting(a.muting)},!0))}function j(){k&&k(),o&&(u||e.isMuting?o.volume=0:o.volume=void 0!==y.volume?y.volume:1,p&&(o.play(),p=!1),r&&(o.pause(),o.currentTime=0,r=!1),q&&(o.pause(),q=!1),s&&(o.playbackRate=t,s=!1),m&&(o.volume=m,m=void 0),v&&(y.currentTime=o.currentTime,y.duration=o.duration,y.remaining=o.duration-o.currentTime,y.progress=o.currentTime/o.duration,y.paused=o.paused,y.src=o.src,y.currentTime>=y.duration&&z.forEach(function(a){a(y)}),n&&y.currentTime>=y.duration&&(n!==!0&&(n--,y.loop--),y.setCurrentTime(0),y.play())),u||e.isMuting||(y.volume=o.volume),y.audio=o),i()}var k,l,m,n,o,p=!1,q=!1,r=!1,s=!1,t=!1,u=!1,v=!0,w=!1,x=f||b,y=this;this.id=d,this.safeId=d.replace("/","|"),this.loop=0,this.unbind=function(){v=!1},this.play=function(){return p=!0,this};var z=[];this.complete=function(a){z.push(a)},this.pause=function(){q=!0},this.restart=function(){r=!0},this.stop=function(){this.restart()},this.setVolume=function(a){m=a},this.setPlaybackRate=function(a){t=a,s=!0},this.setMuting=function(a){u=a},this.setProgress=function(a){o&&o.duration&&isFinite(a)&&(o.currentTime=o.duration*a)},this.setCurrentTime=function(a){o&&o.duration&&(o.currentTime=a)},this.destroy=h,x.$on("$destroy",function(){h()}),a.find(d).then(function(a){o=a,e.unlock&&(window.addEventListener("click",g),o.addEventListener("playing",function(){window.removeEventListener("click",g)})),o.addEventListener("canplay",function(){y.canPlay=!0})},function(a){y.error=!0,console.warn(a)});var A=c(j,e.performance);l=x.$watch(function(){return e.performance},function(){c.cancel(A),A=c(j,e.performance)})}}]).service("ngAudio",["NgAudioObject","ngAudioGlobals",function(a,b){this.play=function(b,c){var d=new a(b,c);return d.play(),d},this.load=function(b,c){return new a(b,c)},this.mute=function(){b.muting=!0},this.unmute=function(){b.muting=!1},this.toggleMute=function(){b.muting=!b.muting},this.setUnlock=function(a){b.unlock=a}}]).filter("trackTime",function(){return function(a){var b=Math.floor(0|a),c="",d=0,e=0,f=0;return b>3599?(d=Math.floor(b/3600),e=Math.floor((b-3600*d)/60),f=b-(60*e+3600*d),1==d.toString().length&&(d="0"+Math.floor(b/3600).toString()),1==e.toString().length&&(e="0"+Math.floor((b-3600*d)/60).toString()),1==f.toString().length&&(f="0"+(b-(60*e+3600*d)).toString()),c=d+":"+e+":"+f):b>59?(e=Math.floor(b/60),f=b-60*e,1==e.toString().length&&(e="0"+Math.floor(b/60).toString()),1==f.toString().length&&(f="0"+(b-60*e).toString()),c=e+":"+f):(f=b,1==f.toString().length&&(f="0"+b.toString()),c=b+"s"),"function"==typeof Number.isNaN&&Number.isNaN(c),c}}),function(){"use strict";angular.module("ngEmoticons",["ngSanitize"]).filter("emoticons",["$sce",function(a){var b=[{text:":)","class":"smiley",code:"e60a"},{text:":D","class":"happy",code:"e608"},{text:":d","class":"happy",code:"e608"},{text:":(","class":"sad",code:"e60e"},{text:":/","class":"wondering",code:"e620"},{text:":P","class":"tongue",code:"e60c"},{text:":p","class":"tongue",code:"e60c"},{text:"3:)","class":"evil",code:"e618"},{text:"(^)","class":"thumbsup2",code:"e607"},{text:";)","class":"wink",code:"e610"},{text:":o","class":"shocked",code:"e61a"},{text:"-_-","class":"neutral",code:"e61e"},{text:"(y)","class":"thumbs-up",code:"e606"},{text:":*","class":"heart",code:"e604"},{text:"<3","class":"heart",code:"e604"},{text:"<3","class":"heart",code:"e604"},{text:"</3","class":"heart-broken",code:"e605"},{text:"&#x'+a.code+"")}),c.join(" ")}function h(a){var b=/((href|src)=["']|)(\b(https?|ftp|file):\/\/[-A-Z0-9+()&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi,c=a.replace(b,function(a){return''+a+""});return c}function i(a){var b=new RegExp(":("+c.join("|")+"):","g");return a.replace(b,function(a,b){return""})}var j={link:!0,linkTarget:"_self"};return f(j,e),void 0!==d&&null!==d?"object"==typeof d?d:(d=g(d),d=i(d),j.link&&(d=h(d)),a.trustAsHtml(d)):void 0}}]).directive("ngEmoticons",["$filter","$sce","$http","$timeout","$templateCache",function(a,b,c,d,e){var f="",g='
        {{video.description}}
        {{video.views}} {{video.likes}}
        ';return e.put(f,g),{restrict:"AE",scope:!0,templateUrl:function(a,b){return b.emoticonsTemplateUrl||f},link:function(e,f,g){function h(a){return angular.forEach(arguments,function(b){b!==a&&angular.forEach(b,function(b,c){a[c]&&a[c].constructor&&a[c].constructor===Object?h(a[c],b):a[c]=b})}),a}var i=e.$eval(g.emoticonsData),j=e.$eval(g.emoticonsOptions);e.video={},e.image={},e.pdf={},e.audio={};var k={link:!0,linkTarget:"_self",pdf:{embed:!0},image:{embed:!1},audio:{embed:!0},code:{highlight:!0,lineNumbers:!1},basicVideo:!1,video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,thumbnailQuality:"medium",ytAuthKey:null}};h(k,j),String.prototype.trunc=function(a,b){var c=this.length>a,d=c?this.substr(0,a-1):this;return d=b&&c?d.substr(0,d.lastIndexOf(" ")):d,c?d+"...":d};var l={calcDimensions:function(a){var b={width:null,height:null};return b.width=a.video.width,b.height=a.video.height,a.video.height&&a.video.width?b:a.video.height?(b.width=a.video.height/390*640,b):a.video.width?(b.height=b.width/640*390,b):(b.width=640,b.height=390,b)},embed:function(a,d){var f=/https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/ytscreeningroom\?v=|\/feeds\/api\/videos\/|\/user\S*[^\w\-\s]|\S*[^\w\-\s]))([\w\-]{11})[?=&+%\w-]*/gi;if(a.match(f)){var g=this.calcDimensions(d);return e.video.id=RegExp.$1,d.video.details?c.get("https://www.googleapis.com/youtube/v3/videos?id="+RegExp.$1+"&key="+d.video.ytAuthKey+"&part=snippet,statistics").success(function(a){var c=a.items[0];e.video.host="youtube",e.video.title=c.snippet.title,e.video.thumbnail=c.snippet.thumbnails.medium.url,e.video.description=c.snippet.description.trunc(250,!0).replace(/\n/g," ").replace(/ /g," "),e.video.rawDescription=c.snippet.description,e.video.views=c.statistics.viewCount,e.video.likes=c.statistics.likeCount,e.video.uploader=c.snippet.channelTitle,e.video.uploaderPage="https://www.youtube.com/channel/"+c.snippet.channelId,e.video.uploadDate=c.snippet.publishedAt,e.video.url=b.trustAsResourceUrl("https://www.youtube.com/watch?v="+c.id),e.video.embedSrc=b.trustAsResourceUrl("https://www.youtube.com/embed/"+e.video.id+"?autoplay=1"),e.video.width=g.width,e.video.height=g.height}):(e.video.width=g.width,e.video.height=g.height,e.video.host="youtube",e.video.embedSrc=b.trustAsResourceUrl("https://www.youtube.com/embed/"+RegExp.$1+"?autoplay=0")),a}var h=/https?:\/\/(?:www\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|)(\d+)(?:$|\/|\?)*/gi;if(a.match(h)){var i=this.calcDimensions(d);e.video.id=RegExp.$3,d.video.details?c.get("https://vimeo.com/api/v2/video/"+RegExp.$3+".json").success(function(a){e.video.host="vimeo",e.video.title=a[0].title,e.video.rawDescription=a[0].description.replace(/\n/g,"
        ").replace(/ /g,"
        "),e.video.description=a[0].description.replace(/((<|<)br\s*\/*(>|>)\r\n)/g," ").trunc(250,!0),e.video.thumbnail=a[0].thumbnail_medium,e.video.views=a[0].stats_number_of_plays,e.video.likes=a[0].stats_number_of_likes,e.video.uploader=a[0].user_name,e.video.uploaderPage=a[0].user_url,e.video.uploadDate=a[0].uploadDate,e.video.url=a[0].url,e.video.embedSrc=b.trustAsResourceUrl("//player.vimeo.com/video/"+a[0].id+"?title=0&byline=0&portrait=0&autoplay=1"),e.video.width=i.width,e.video.height=i.height}):(e.video.width=i.width,e.video.height=i.height,e.video.host="vimeo",e.video.embedSrc=b.trustAsResourceUrl("//player.vimeo.com/video/"+RegExp.$3+"?title=0&byline=0&portrait=0&autoplay=0"))}return a},embedBasic:function(a){var c=/((?:https?):\/\/\S*\.(?:ogv|webm|mp4))/gi;return a.match(c)&&(e.video.basic=b.trustAsResourceUrl(RegExp.$1)),a}},m={embed:function(a){var c=/((?:https?):\/\/\S*\.(?:wav|mp3|ogg))/gi;return a.match(c)&&(e.audio.url=b.trustAsResourceUrl(RegExp.$1)),a}},n={embed:function(a){var b=/((?:https?):\/\/\S*\.(?:gif|jpg|jpeg|tiff|png|svg|webp))/gi;return a.match(b)&&(e.image.url=RegExp.$1),a}},o={encodeCode:function(a){return a=a.replace(/\&/gm,"&"),a=a.replace(//gm,">")},getCode:function(a){var b=this;return a=a.replace(/(`+)(\s|[a-z]+)\s*([\s\S]*?[^`])\s*\1(?!`)/gm,function(a,c,d,e){var f=e;return f=f.replace(/^([ \t]*)/g,""),f=f.replace(/[ \t]*$/g,""),f=b.encodeCode(f),f=f.replace(/:\/\//g,"~P"),'
        '+f+"
        "})}},p={embed:function(a){var c=/((?:https?):\/\/\S*\.(?:pdf|PDF))/gi;return a.match(c)&&(e.pdf.url=b.trustAsResourceUrl(RegExp.$1)),a}};if(k.code.highlight){if(!window.hljs)throw"hlsj (Highlight JS is not defined.";i=o.getCode(i),d(function(){hljs.initHighlighting(),k.code.lineNumbers&&angular.element(".ne-code").each(function(){var a=1,b=$(this).text().split("\n").length,c=$("
          ").addClass("pre-numbering");for(angular.element(this).addClass("has-numbering").parent().append(c),a;b>=a;a++)c.append(angular.element("
        • ").text(a))})},0)}var q=a("emoticons")(i,k).$$unwrapTrustedValue();if(k.video.embed){if(!k.video.ytAuthKey)throw"Youtube authentication key is required to get data from youtube.";q=l.embed(q,k)}k.basicVideo&&(q=l.embedBasic(q)),k.audio.embed&&(q=m.embed(q)),k.image.embed&&(q=n.embed(q)),k.pdf.embed&&(q=p.embed(q)),e.neText=b.trustAsHtml(q)}}}]).directive("neHljs",["$timeout",function(a){return{restrict:"AE",link:function(b,c){a(function(){c.find(".ne-code").each(function(){hljs.highlightBlock(this)})},0)}}}])}(),function(a){"undefined"!=typeof exports?a(exports):(window.hljs=a({}),"function"==typeof define&&define.amd&&define("hljs",[],function(){return window.hljs}))}(function(a){function b(a){return a.replace(/&/gm,"&").replace(//gm,">")}function c(a){return a.nodeName.toLowerCase()}function d(a,b){var c=a&&a.exec(b);return c&&0==c.index}function e(a){return/^(no-?highlight|plain|text)$/i.test(a)}function f(a){var b,c,d,f=a.className+" ";if(f+=a.parentNode?a.parentNode.className:"",c=/\blang(?:uage)?-([\w-]+)\b/i.exec(f))return u(c[1])?c[1]:"no-highlight";for(f=f.split(/\s+/),b=0,d=f.length;d>b;b++)if(u(f[b])||e(f[b]))return f[b]}function g(a,b){var c,d={};for(c in a)d[c]=a[c];if(b)for(c in b)d[c]=b[c];return d}function h(a){var b=[];return function d(a,e){for(var f=a.firstChild;f;f=f.nextSibling)3==f.nodeType?e+=f.nodeValue.length:1==f.nodeType&&(b.push({event:"start",offset:e,node:f}),e=d(f,e),c(f).match(/br|hr|img|input/)||b.push({event:"stop",offset:e,node:f}));return e}(a,0),b}function i(a,d,e){function f(){return a.length&&d.length?a[0].offset!=d[0].offset?a[0].offset"}function h(a){k+=""}function i(a){("start"==a.event?g:h)(a.node)}for(var j=0,k="",l=[];a.length||d.length;){var m=f();if(k+=b(e.substr(j,m[0].offset-j)),j=m[0].offset,m==a){l.reverse().forEach(h);do i(m.splice(0,1)[0]),m=f();while(m==a&&m.length&&m[0].offset==j);l.reverse().forEach(g)}else"start"==m[0].event?l.push(m[0].node):l.pop(),i(m.splice(0,1)[0])}return k+b(e.substr(j))}function j(a){function b(a){return a&&a.source||a}function c(c,d){return new RegExp(b(c),"m"+(a.case_insensitive?"i":"")+(d?"g":""))}function d(e,f){if(!e.compiled){if(e.compiled=!0,e.keywords=e.keywords||e.beginKeywords,e.keywords){var h={},i=function(b,c){a.case_insensitive&&(c=c.toLowerCase()),c.split(" ").forEach(function(a){var c=a.split("|");h[c[0]]=[b,c[1]?Number(c[1]):1]})};"string"==typeof e.keywords?i("keyword",e.keywords):Object.keys(e.keywords).forEach(function(a){i(a,e.keywords[a])}),e.keywords=h}e.lexemesRe=c(e.lexemes||/\b\w+\b/,!0),f&&(e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")\\b"),e.begin||(e.begin=/\B|\b/),e.beginRe=c(e.begin),e.end||e.endsWithParent||(e.end=/\B|\b/),e.end&&(e.endRe=c(e.end)),e.terminator_end=b(e.end)||"",e.endsWithParent&&f.terminator_end&&(e.terminator_end+=(e.end?"|":"")+f.terminator_end)),e.illegal&&(e.illegalRe=c(e.illegal)),void 0===e.relevance&&(e.relevance=1),e.contains||(e.contains=[]);var j=[];e.contains.forEach(function(a){a.variants?a.variants.forEach(function(b){j.push(g(a,b))}):j.push("self"==a?e:a)}),e.contains=j,e.contains.forEach(function(a){d(a,e)}),e.starts&&d(e.starts,f);var k=e.contains.map(function(a){return a.beginKeywords?"\\.?("+a.begin+")\\.?":a.begin}).concat([e.terminator_end,e.illegal]).map(b).filter(Boolean);e.terminators=k.length?c(k.join("|"),!0):{exec:function(){return null}}}}d(a)}function k(a,c,e,f){function g(a,b){for(var c=0;c";return f+=a+'">',f+b+g}function o(){if(!y.keywords)return b(B);var a="",c=0;y.lexemesRe.lastIndex=0;for(var d=y.lexemesRe.exec(B);d;){a+=b(B.substr(c,d.index-c));var e=m(y,d);e?(C+=e[1],a+=n(e[0],b(d[0]))):a+=b(d[0]),c=y.lexemesRe.lastIndex,d=y.lexemesRe.exec(B)}return a+b(B.substr(c))}function p(){var a="string"==typeof y.subLanguage;if(a&&!w[y.subLanguage])return b(B);var c=a?k(y.subLanguage,B,!0,z[y.subLanguage]):l(B,y.subLanguage.length?y.subLanguage:void 0);return y.relevance>0&&(C+=c.relevance),a&&(z[y.subLanguage]=c.top),n(c.language,c.value,!1,!0)}function q(){return void 0!==y.subLanguage?p():o(); +}function r(a,c){var d=a.className?n(a.className,"",!0):"";a.returnBegin?(A+=d,B=""):a.excludeBegin?(A+=b(c)+d,B=""):(A+=d,B=c),y=Object.create(a,{parent:{value:y}})}function s(a,c){if(B+=a,void 0===c)return A+=q(),0;var d=g(c,y);if(d)return A+=q(),r(d,c),d.returnBegin?0:c.length;var e=h(y,c);if(e){var f=y;f.returnEnd||f.excludeEnd||(B+=c),A+=q();do y.className&&(A+=""),C+=y.relevance,y=y.parent;while(y!=e.parent);return f.excludeEnd&&(A+=b(c)),B="",e.starts&&r(e.starts,""),f.returnEnd?0:c.length}if(i(c,y))throw new Error('Illegal lexeme "'+c+'" for mode "'+(y.className||"")+'"');return B+=c,c.length||1}var t=u(a);if(!t)throw new Error('Unknown language: "'+a+'"');j(t);var x,y=f||t,z={},A="";for(x=y;x!=t;x=x.parent)x.className&&(A=n(x.className,"",!0)+A);var B="",C=0;try{for(var D,E,F=0;;){if(y.terminators.lastIndex=F,D=y.terminators.exec(c),!D)break;E=s(c.substr(F,D.index-F),D[0]),F=D.index+E}for(s(c.substr(F)),x=y;x.parent;x=x.parent)x.className&&(A+="");return{relevance:C,value:A,language:a,top:y}}catch(G){if(-1!=G.message.indexOf("Illegal"))return{relevance:0,value:b(c)};throw G}}function l(a,c){c=c||v.languages||Object.keys(w);var d={relevance:0,value:b(a)},e=d;return c.forEach(function(b){if(u(b)){var c=k(b,a,!1);c.language=b,c.relevance>e.relevance&&(e=c),c.relevance>d.relevance&&(e=d,d=c)}}),e.language&&(d.second_best=e),d}function m(a){return v.tabReplace&&(a=a.replace(/^((<[^>]+>|\t)+)/gm,function(a,b){return b.replace(/\t/g,v.tabReplace)})),v.useBR&&(a=a.replace(/\n/g,"
          ")),a}function n(a,b,c){var d=b?x[b]:c,e=[a.trim()];return a.match(/\bhljs\b/)||e.push("hljs"),-1===a.indexOf(d)&&e.push(d),e.join(" ").trim()}function o(a){var b=f(a);if(!e(b)){var c;v.useBR?(c=document.createElementNS("http://www.w3.org/1999/xhtml","div"),c.innerHTML=a.innerHTML.replace(/\n/g,"").replace(//g,"\n")):c=a;var d=c.textContent,g=b?k(b,d,!0):l(d),j=h(c);if(j.length){var o=document.createElementNS("http://www.w3.org/1999/xhtml","div");o.innerHTML=g.value,g.value=i(j,h(o),d)}g.value=m(g.value),a.innerHTML=g.value,a.className=n(a.className,b,g.language),a.result={language:g.language,re:g.relevance},g.second_best&&(a.second_best={language:g.second_best.language,re:g.second_best.relevance})}}function p(a){v=g(v,a)}function q(){if(!q.called){q.called=!0;var a=document.querySelectorAll("pre code");Array.prototype.forEach.call(a,o)}}function r(){addEventListener("DOMContentLoaded",q,!1),addEventListener("load",q,!1)}function s(b,c){var d=w[b]=c(a);d.aliases&&d.aliases.forEach(function(a){x[a]=b})}function t(){return Object.keys(w)}function u(a){return a=(a||"").toLowerCase(),w[a]||w[x[a]]}var v={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},w={},x={};return a.highlight=k,a.highlightAuto=l,a.fixMarkup=m,a.highlightBlock=o,a.configure=p,a.initHighlighting=q,a.initHighlightingOnLoad=r,a.registerLanguage=s,a.listLanguages=t,a.getLanguage=u,a.inherit=g,a.IDENT_RE="[a-zA-Z]\\w*",a.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",a.NUMBER_RE="\\b\\d+(\\.\\d+)?",a.C_NUMBER_RE="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",a.BINARY_NUMBER_RE="\\b(0b[01]+)",a.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",a.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},a.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[a.BACKSLASH_ESCAPE]},a.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[a.BACKSLASH_ESCAPE]},a.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},a.COMMENT=function(b,c,d){var e=a.inherit({className:"comment",begin:b,end:c,contains:[]},d||{});return e.contains.push(a.PHRASAL_WORDS_MODE),e.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),e},a.C_LINE_COMMENT_MODE=a.COMMENT("//","$"),a.C_BLOCK_COMMENT_MODE=a.COMMENT("/\\*","\\*/"),a.HASH_COMMENT_MODE=a.COMMENT("#","$"),a.NUMBER_MODE={className:"number",begin:a.NUMBER_RE,relevance:0},a.C_NUMBER_MODE={className:"number",begin:a.C_NUMBER_RE,relevance:0},a.BINARY_NUMBER_MODE={className:"number",begin:a.BINARY_NUMBER_RE,relevance:0},a.CSS_NUMBER_MODE={className:"number",begin:a.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},a.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[a.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[a.BACKSLASH_ESCAPE]}]},a.TITLE_MODE={className:"title",begin:a.IDENT_RE,relevance:0},a.UNDERSCORE_TITLE_MODE={className:"title",begin:a.UNDERSCORE_IDENT_RE,relevance:0},a.registerLanguage("1c",function(a){var b="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*",c="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт",d="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон",e={className:"dquote",begin:'""'},f={className:"string",begin:'"',end:'"|$',contains:[e]},g={className:"string",begin:"\\|",end:'"|$',contains:[e]};return{case_insensitive:!0,lexemes:b,keywords:{keyword:c,built_in:d},contains:[a.C_LINE_COMMENT_MODE,a.NUMBER_MODE,f,g,{className:"function",begin:"(процедура|функция)",end:"$",lexemes:b,keywords:"процедура функция",contains:[a.inherit(a.TITLE_MODE,{begin:b}),{className:"tail",endsWithParent:!0,contains:[{className:"params",begin:"\\(",end:"\\)",lexemes:b,keywords:"знач",contains:[f,g]},{className:"export",begin:"экспорт",endsWithParent:!0,lexemes:b,keywords:"экспорт",contains:[a.C_LINE_COMMENT_MODE]}]},a.C_LINE_COMMENT_MODE]},{className:"preprocessor",begin:"#",end:"$"},{className:"date",begin:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}),a.registerLanguage("accesslog",function(a){return{contains:[{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+\\b",relevance:0},{className:"string",begin:'"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)',end:'"',keywords:"GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE",illegal:"\\n",relevance:10},{className:"string",begin:/\[/,end:/\]/,illegal:"\\n"},{className:"string",begin:'"',end:'"',illegal:"\\n"}]}}),a.registerLanguage("actionscript",function(a){var b="[a-zA-Z_$][a-zA-Z0-9_$]*",c="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)",d={className:"rest_arg",begin:"[.]{3}",end:b,relevance:10};return{aliases:["as"],keywords:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.C_NUMBER_MODE,{className:"package",beginKeywords:"package",end:"{",contains:[a.TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},a.TITLE_MODE]},{className:"preprocessor",beginKeywords:"import include",end:";"},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[a.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,d]},{className:"type",begin:":",end:c,relevance:10}]}],illegal:/#/}}),a.registerLanguage("apache",function(a){var b={className:"number",begin:"[\\$%]\\d+"};return{aliases:["apacheconf"],case_insensitive:!0,contains:[a.HASH_COMMENT_MODE,{className:"tag",begin:""},{className:"keyword",begin:/\w+/,relevance:0,keywords:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all"},contains:[{className:"sqbracket",begin:"\\s\\[",end:"\\]$"},{className:"cbracket",begin:"[\\$%]\\{",end:"\\}",contains:["self",b]},b,a.QUOTE_STRING_MODE]}}],illegal:/\S/}}),a.registerLanguage("applescript",function(a){var b=a.inherit(a.QUOTE_STRING_MODE,{illegal:""}),c={className:"params",begin:"\\(",end:"\\)",contains:["self",a.C_NUMBER_MODE,b]},d=a.COMMENT("--","$"),e=a.COMMENT("\\(\\*","\\*\\)",{contains:["self",d]}),f=[d,e,a.HASH_COMMENT_MODE];return{aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},contains:[b,a.C_NUMBER_MODE,{className:"type",begin:"\\bPOSIX file\\b"},{className:"command",begin:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{className:"constant",begin:"\\b(text item delimiters|current application|missing value)\\b"},{className:"keyword",begin:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{className:"property",begin:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{className:"function_start",beginKeywords:"on",illegal:"[${=;\\n]",contains:[a.UNDERSCORE_TITLE_MODE,c]}].concat(f),illegal:"//|->|=>|\\[\\["}}),a.registerLanguage("armasm",function(a){return{case_insensitive:!0,aliases:["arm"],lexemes:"\\.?"+a.IDENT_RE,keywords:{literal:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ",preprocessor:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @ "},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?",end:"\\s"},a.COMMENT("[;@]","$",{relevance:0}),a.C_BLOCK_COMMENT_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"label",variants:[{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"[=#]\\w+"}],relevance:0}]}}),a.registerLanguage("xml",function(a){var b="[A-Za-z0-9\\._:-]+",c={begin:/<\?(php)?(?!\w)/,end:/\?>/,subLanguage:"php"},d={endsWithParent:!0,illegal:/]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xsl","plist"],case_insensitive:!0,contains:[{className:"doctype",begin:"",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},a.COMMENT("",{relevance:10}),{className:"cdata",begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{className:"tag",begin:"|$)",end:">",keywords:{title:"style"},contains:[d],starts:{end:"",returnEnd:!0,subLanguage:"css"}},{className:"tag",begin:"|$)",end:">",keywords:{title:"script"},contains:[d],starts:{end:"",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars"]}},c,{className:"pi",begin:/<\?\w+/,end:/\?>/,relevance:10},{className:"tag",begin:"",contains:[{className:"title",begin:/[^ \/><\n\t]+/,relevance:0},d]}]}}),a.registerLanguage("asciidoc",function(a){return{aliases:["adoc"],contains:[a.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),a.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"header",begin:"^(={1,5}) .+?( \\1)?$",relevance:10},{className:"header",begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",relevance:10},{className:"attribute",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"attribute",begin:"^\\[.+?\\]$",relevance:0},{className:"blockquote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{className:"bullet",begin:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{className:"label",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{className:"strong",begin:"\\B\\*(?![\\*\\s])",end:"(\\n{2}|\\*)",contains:[{begin:"\\\\*\\w",relevance:0}]},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0},{className:"emphasis",begin:"_(?![_\\s])",end:"(\\n{2}|_)",relevance:0},{className:"smartquote",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},{className:"horizontal_rule",begin:"^'{3,}[ \\t]*$",relevance:10},{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link_url",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"link_label",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}),a.registerLanguage("aspectj",function(a){var b="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else extends implements break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws privileged aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization staticinitialization withincode target within execution getWithinTypeName handler thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents warning error soft precedence thisAspectInstance",c="get set args call";return{keywords:b,illegal:/<\/|#/,contains:[a.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"aspect",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},a.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:b+" "+c,excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[a.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:b,illegal:/["\[\]]/,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",keywords:b+" "+c},a.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:b,excludeEnd:!0,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:b,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"}]}}),a.registerLanguage("autohotkey",function(a){var b={className:"escape",begin:"`[\\s\\S]"},c=a.COMMENT(";","$",{relevance:0}),d=[{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{className:"built_in",beginKeywords:"ComSpec Clipboard ClipboardAll ErrorLevel"}];return{case_insensitive:!0,keywords:{keyword:"Break Continue Else Gosub If Loop Return While",literal:"A true false NOT AND OR"},contains:d.concat([b,a.inherit(a.QUOTE_STRING_MODE,{contains:[b]}),c,{className:"number",begin:a.NUMBER_RE,relevance:0},{className:"var_expand",begin:"%",end:"%",illegal:"\\n",contains:[b]},{className:"label",contains:[b],variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{begin:",\\s*,",relevance:10}])}}),a.registerLanguage("autoit",function(a){var b="ByRef Case Const ContinueCase ContinueLoop Default Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",c="True False And Null Not Or",d="Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Opt Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown TCPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend UDPShutdown UDPStartup VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive Array1DToHistogram ArrayAdd ArrayBinarySearch ArrayColDelete ArrayColInsert ArrayCombinations ArrayConcatenate ArrayDelete ArrayDisplay ArrayExtract ArrayFindAll ArrayInsert ArrayMax ArrayMaxIndex ArrayMin ArrayMinIndex ArrayPermute ArrayPop ArrayPush ArrayReverse ArraySearch ArrayShuffle ArraySort ArraySwap ArrayToClip ArrayToString ArrayTranspose ArrayTrim ArrayUnique Assert ChooseColor ChooseFont ClipBoard_ChangeChain ClipBoard_Close ClipBoard_CountFormats ClipBoard_Empty ClipBoard_EnumFormats ClipBoard_FormatStr ClipBoard_GetData ClipBoard_GetDataEx ClipBoard_GetFormatName ClipBoard_GetOpenWindow ClipBoard_GetOwner ClipBoard_GetPriorityFormat ClipBoard_GetSequenceNumber ClipBoard_GetViewer ClipBoard_IsFormatAvailable ClipBoard_Open ClipBoard_RegisterFormat ClipBoard_SetData ClipBoard_SetDataEx ClipBoard_SetViewer ClipPutFile ColorConvertHSLtoRGB ColorConvertRGBtoHSL ColorGetBlue ColorGetCOLORREF ColorGetGreen ColorGetRed ColorGetRGB ColorSetCOLORREF ColorSetRGB Crypt_DecryptData Crypt_DecryptFile Crypt_DeriveKey Crypt_DestroyKey Crypt_EncryptData Crypt_EncryptFile Crypt_GenRandom Crypt_HashData Crypt_HashFile Crypt_Shutdown Crypt_Startup DateAdd DateDayOfWeek DateDaysInMonth DateDiff DateIsLeapYear DateIsValid DateTimeFormat DateTimeSplit DateToDayOfWeek DateToDayOfWeekISO DateToDayValue DateToMonth Date_Time_CompareFileTime Date_Time_DOSDateTimeToArray Date_Time_DOSDateTimeToFileTime Date_Time_DOSDateTimeToStr Date_Time_DOSDateToArray Date_Time_DOSDateToStr Date_Time_DOSTimeToArray Date_Time_DOSTimeToStr Date_Time_EncodeFileTime Date_Time_EncodeSystemTime Date_Time_FileTimeToArray Date_Time_FileTimeToDOSDateTime Date_Time_FileTimeToLocalFileTime Date_Time_FileTimeToStr Date_Time_FileTimeToSystemTime Date_Time_GetFileTime Date_Time_GetLocalTime Date_Time_GetSystemTime Date_Time_GetSystemTimeAdjustment Date_Time_GetSystemTimeAsFileTime Date_Time_GetSystemTimes Date_Time_GetTickCount Date_Time_GetTimeZoneInformation Date_Time_LocalFileTimeToFileTime Date_Time_SetFileTime Date_Time_SetLocalTime Date_Time_SetSystemTime Date_Time_SetSystemTimeAdjustment Date_Time_SetTimeZoneInformation Date_Time_SystemTimeToArray Date_Time_SystemTimeToDateStr Date_Time_SystemTimeToDateTimeStr Date_Time_SystemTimeToFileTime Date_Time_SystemTimeToTimeStr Date_Time_SystemTimeToTzSpecificLocalTime Date_Time_TzSpecificLocalTimeToSystemTime DayValueToDate DebugBugReportEnv DebugCOMError DebugOut DebugReport DebugReportEx DebugReportVar DebugSetup Degree EventLog__Backup EventLog__Clear EventLog__Close EventLog__Count EventLog__DeregisterSource EventLog__Full EventLog__Notify EventLog__Oldest EventLog__Open EventLog__OpenBackup EventLog__Read EventLog__RegisterSource EventLog__Report Excel_BookAttach Excel_BookClose Excel_BookList Excel_BookNew Excel_BookOpen Excel_BookOpenText Excel_BookSave Excel_BookSaveAs Excel_Close Excel_ColumnToLetter Excel_ColumnToNumber Excel_ConvertFormula Excel_Export Excel_FilterGet Excel_FilterSet Excel_Open Excel_PictureAdd Excel_Print Excel_RangeCopyPaste Excel_RangeDelete Excel_RangeFind Excel_RangeInsert Excel_RangeLinkAddRemove Excel_RangeRead Excel_RangeReplace Excel_RangeSort Excel_RangeValidate Excel_RangeWrite Excel_SheetAdd Excel_SheetCopyMove Excel_SheetDelete Excel_SheetList FileCountLines FileCreate FileListToArray FileListToArrayRec FilePrint FileReadToArray FileWriteFromArray FileWriteLog FileWriteToLine FTP_Close FTP_Command FTP_Connect FTP_DecodeInternetStatus FTP_DirCreate FTP_DirDelete FTP_DirGetCurrent FTP_DirPutContents FTP_DirSetCurrent FTP_FileClose FTP_FileDelete FTP_FileGet FTP_FileGetSize FTP_FileOpen FTP_FilePut FTP_FileRead FTP_FileRename FTP_FileTimeLoHiToStr FTP_FindFileClose FTP_FindFileFirst FTP_FindFileNext FTP_GetLastResponseInfo FTP_ListToArray FTP_ListToArray2D FTP_ListToArrayEx FTP_Open FTP_ProgressDownload FTP_ProgressUpload FTP_SetStatusCallback GDIPlus_ArrowCapCreate GDIPlus_ArrowCapDispose GDIPlus_ArrowCapGetFillState GDIPlus_ArrowCapGetHeight GDIPlus_ArrowCapGetMiddleInset GDIPlus_ArrowCapGetWidth GDIPlus_ArrowCapSetFillState GDIPlus_ArrowCapSetHeight GDIPlus_ArrowCapSetMiddleInset GDIPlus_ArrowCapSetWidth GDIPlus_BitmapApplyEffect GDIPlus_BitmapApplyEffectEx GDIPlus_BitmapCloneArea GDIPlus_BitmapConvertFormat GDIPlus_BitmapCreateApplyEffect GDIPlus_BitmapCreateApplyEffectEx GDIPlus_BitmapCreateDIBFromBitmap GDIPlus_BitmapCreateFromFile GDIPlus_BitmapCreateFromGraphics GDIPlus_BitmapCreateFromHBITMAP GDIPlus_BitmapCreateFromHICON GDIPlus_BitmapCreateFromHICON32 GDIPlus_BitmapCreateFromMemory GDIPlus_BitmapCreateFromResource GDIPlus_BitmapCreateFromScan0 GDIPlus_BitmapCreateFromStream GDIPlus_BitmapCreateHBITMAPFromBitmap GDIPlus_BitmapDispose GDIPlus_BitmapGetHistogram GDIPlus_BitmapGetHistogramEx GDIPlus_BitmapGetHistogramSize GDIPlus_BitmapGetPixel GDIPlus_BitmapLockBits GDIPlus_BitmapSetPixel GDIPlus_BitmapUnlockBits GDIPlus_BrushClone GDIPlus_BrushCreateSolid GDIPlus_BrushDispose GDIPlus_BrushGetSolidColor GDIPlus_BrushGetType GDIPlus_BrushSetSolidColor GDIPlus_ColorMatrixCreate GDIPlus_ColorMatrixCreateGrayScale GDIPlus_ColorMatrixCreateNegative GDIPlus_ColorMatrixCreateSaturation GDIPlus_ColorMatrixCreateScale GDIPlus_ColorMatrixCreateTranslate GDIPlus_CustomLineCapClone GDIPlus_CustomLineCapCreate GDIPlus_CustomLineCapDispose GDIPlus_CustomLineCapGetStrokeCaps GDIPlus_CustomLineCapSetStrokeCaps GDIPlus_Decoders GDIPlus_DecodersGetCount GDIPlus_DecodersGetSize GDIPlus_DrawImageFX GDIPlus_DrawImageFXEx GDIPlus_DrawImagePoints GDIPlus_EffectCreate GDIPlus_EffectCreateBlur GDIPlus_EffectCreateBrightnessContrast GDIPlus_EffectCreateColorBalance GDIPlus_EffectCreateColorCurve GDIPlus_EffectCreateColorLUT GDIPlus_EffectCreateColorMatrix GDIPlus_EffectCreateHueSaturationLightness GDIPlus_EffectCreateLevels GDIPlus_EffectCreateRedEyeCorrection GDIPlus_EffectCreateSharpen GDIPlus_EffectCreateTint GDIPlus_EffectDispose GDIPlus_EffectGetParameters GDIPlus_EffectSetParameters GDIPlus_Encoders GDIPlus_EncodersGetCLSID GDIPlus_EncodersGetCount GDIPlus_EncodersGetParamList GDIPlus_EncodersGetParamListSize GDIPlus_EncodersGetSize GDIPlus_FontCreate GDIPlus_FontDispose GDIPlus_FontFamilyCreate GDIPlus_FontFamilyCreateFromCollection GDIPlus_FontFamilyDispose GDIPlus_FontFamilyGetCellAscent GDIPlus_FontFamilyGetCellDescent GDIPlus_FontFamilyGetEmHeight GDIPlus_FontFamilyGetLineSpacing GDIPlus_FontGetHeight GDIPlus_FontPrivateAddFont GDIPlus_FontPrivateAddMemoryFont GDIPlus_FontPrivateCollectionDispose GDIPlus_FontPrivateCreateCollection GDIPlus_GraphicsClear GDIPlus_GraphicsCreateFromHDC GDIPlus_GraphicsCreateFromHWND GDIPlus_GraphicsDispose GDIPlus_GraphicsDrawArc GDIPlus_GraphicsDrawBezier GDIPlus_GraphicsDrawClosedCurve GDIPlus_GraphicsDrawClosedCurve2 GDIPlus_GraphicsDrawCurve GDIPlus_GraphicsDrawCurve2 GDIPlus_GraphicsDrawEllipse GDIPlus_GraphicsDrawImage GDIPlus_GraphicsDrawImagePointsRect GDIPlus_GraphicsDrawImageRect GDIPlus_GraphicsDrawImageRectRect GDIPlus_GraphicsDrawLine GDIPlus_GraphicsDrawPath GDIPlus_GraphicsDrawPie GDIPlus_GraphicsDrawPolygon GDIPlus_GraphicsDrawRect GDIPlus_GraphicsDrawString GDIPlus_GraphicsDrawStringEx GDIPlus_GraphicsFillClosedCurve GDIPlus_GraphicsFillClosedCurve2 GDIPlus_GraphicsFillEllipse GDIPlus_GraphicsFillPath GDIPlus_GraphicsFillPie GDIPlus_GraphicsFillPolygon GDIPlus_GraphicsFillRect GDIPlus_GraphicsFillRegion GDIPlus_GraphicsGetCompositingMode GDIPlus_GraphicsGetCompositingQuality GDIPlus_GraphicsGetDC GDIPlus_GraphicsGetInterpolationMode GDIPlus_GraphicsGetSmoothingMode GDIPlus_GraphicsGetTransform GDIPlus_GraphicsMeasureCharacterRanges GDIPlus_GraphicsMeasureString GDIPlus_GraphicsReleaseDC GDIPlus_GraphicsResetClip GDIPlus_GraphicsResetTransform GDIPlus_GraphicsRestore GDIPlus_GraphicsRotateTransform GDIPlus_GraphicsSave GDIPlus_GraphicsScaleTransform GDIPlus_GraphicsSetClipPath GDIPlus_GraphicsSetClipRect GDIPlus_GraphicsSetClipRegion GDIPlus_GraphicsSetCompositingMode GDIPlus_GraphicsSetCompositingQuality GDIPlus_GraphicsSetInterpolationMode GDIPlus_GraphicsSetPixelOffsetMode GDIPlus_GraphicsSetSmoothingMode GDIPlus_GraphicsSetTextRenderingHint GDIPlus_GraphicsSetTransform GDIPlus_GraphicsTransformPoints GDIPlus_GraphicsTranslateTransform GDIPlus_HatchBrushCreate GDIPlus_HICONCreateFromBitmap GDIPlus_ImageAttributesCreate GDIPlus_ImageAttributesDispose GDIPlus_ImageAttributesSetColorKeys GDIPlus_ImageAttributesSetColorMatrix GDIPlus_ImageDispose GDIPlus_ImageGetDimension GDIPlus_ImageGetFlags GDIPlus_ImageGetGraphicsContext GDIPlus_ImageGetHeight GDIPlus_ImageGetHorizontalResolution GDIPlus_ImageGetPixelFormat GDIPlus_ImageGetRawFormat GDIPlus_ImageGetThumbnail GDIPlus_ImageGetType GDIPlus_ImageGetVerticalResolution GDIPlus_ImageGetWidth GDIPlus_ImageLoadFromFile GDIPlus_ImageLoadFromStream GDIPlus_ImageResize GDIPlus_ImageRotateFlip GDIPlus_ImageSaveToFile GDIPlus_ImageSaveToFileEx GDIPlus_ImageSaveToStream GDIPlus_ImageScale GDIPlus_LineBrushCreate GDIPlus_LineBrushCreateFromRect GDIPlus_LineBrushCreateFromRectWithAngle GDIPlus_LineBrushGetColors GDIPlus_LineBrushGetRect GDIPlus_LineBrushMultiplyTransform GDIPlus_LineBrushResetTransform GDIPlus_LineBrushSetBlend GDIPlus_LineBrushSetColors GDIPlus_LineBrushSetGammaCorrection GDIPlus_LineBrushSetLinearBlend GDIPlus_LineBrushSetPresetBlend GDIPlus_LineBrushSetSigmaBlend GDIPlus_LineBrushSetTransform GDIPlus_MatrixClone GDIPlus_MatrixCreate GDIPlus_MatrixDispose GDIPlus_MatrixGetElements GDIPlus_MatrixInvert GDIPlus_MatrixMultiply GDIPlus_MatrixRotate GDIPlus_MatrixScale GDIPlus_MatrixSetElements GDIPlus_MatrixShear GDIPlus_MatrixTransformPoints GDIPlus_MatrixTranslate GDIPlus_PaletteInitialize GDIPlus_ParamAdd GDIPlus_ParamInit GDIPlus_ParamSize GDIPlus_PathAddArc GDIPlus_PathAddBezier GDIPlus_PathAddClosedCurve GDIPlus_PathAddClosedCurve2 GDIPlus_PathAddCurve GDIPlus_PathAddCurve2 GDIPlus_PathAddCurve3 GDIPlus_PathAddEllipse GDIPlus_PathAddLine GDIPlus_PathAddLine2 GDIPlus_PathAddPath GDIPlus_PathAddPie GDIPlus_PathAddPolygon GDIPlus_PathAddRectangle GDIPlus_PathAddString GDIPlus_PathBrushCreate GDIPlus_PathBrushCreateFromPath GDIPlus_PathBrushGetCenterPoint GDIPlus_PathBrushGetFocusScales GDIPlus_PathBrushGetPointCount GDIPlus_PathBrushGetRect GDIPlus_PathBrushGetWrapMode GDIPlus_PathBrushMultiplyTransform GDIPlus_PathBrushResetTransform GDIPlus_PathBrushSetBlend GDIPlus_PathBrushSetCenterColor GDIPlus_PathBrushSetCenterPoint GDIPlus_PathBrushSetFocusScales GDIPlus_PathBrushSetGammaCorrection GDIPlus_PathBrushSetLinearBlend GDIPlus_PathBrushSetPresetBlend GDIPlus_PathBrushSetSigmaBlend GDIPlus_PathBrushSetSurroundColor GDIPlus_PathBrushSetSurroundColorsWithCount GDIPlus_PathBrushSetTransform GDIPlus_PathBrushSetWrapMode GDIPlus_PathClone GDIPlus_PathCloseFigure GDIPlus_PathCreate GDIPlus_PathCreate2 GDIPlus_PathDispose GDIPlus_PathFlatten GDIPlus_PathGetData GDIPlus_PathGetFillMode GDIPlus_PathGetLastPoint GDIPlus_PathGetPointCount GDIPlus_PathGetPoints GDIPlus_PathGetWorldBounds GDIPlus_PathIsOutlineVisiblePoint GDIPlus_PathIsVisiblePoint GDIPlus_PathIterCreate GDIPlus_PathIterDispose GDIPlus_PathIterGetSubpathCount GDIPlus_PathIterNextMarkerPath GDIPlus_PathIterNextSubpathPath GDIPlus_PathIterRewind GDIPlus_PathReset GDIPlus_PathReverse GDIPlus_PathSetFillMode GDIPlus_PathSetMarker GDIPlus_PathStartFigure GDIPlus_PathTransform GDIPlus_PathWarp GDIPlus_PathWiden GDIPlus_PathWindingModeOutline GDIPlus_PenCreate GDIPlus_PenCreate2 GDIPlus_PenDispose GDIPlus_PenGetAlignment GDIPlus_PenGetColor GDIPlus_PenGetCustomEndCap GDIPlus_PenGetDashCap GDIPlus_PenGetDashStyle GDIPlus_PenGetEndCap GDIPlus_PenGetMiterLimit GDIPlus_PenGetWidth GDIPlus_PenSetAlignment GDIPlus_PenSetColor GDIPlus_PenSetCustomEndCap GDIPlus_PenSetDashCap GDIPlus_PenSetDashStyle GDIPlus_PenSetEndCap GDIPlus_PenSetLineCap GDIPlus_PenSetLineJoin GDIPlus_PenSetMiterLimit GDIPlus_PenSetStartCap GDIPlus_PenSetWidth GDIPlus_RectFCreate GDIPlus_RegionClone GDIPlus_RegionCombinePath GDIPlus_RegionCombineRect GDIPlus_RegionCombineRegion GDIPlus_RegionCreate GDIPlus_RegionCreateFromPath GDIPlus_RegionCreateFromRect GDIPlus_RegionDispose GDIPlus_RegionGetBounds GDIPlus_RegionGetHRgn GDIPlus_RegionTransform GDIPlus_RegionTranslate GDIPlus_Shutdown GDIPlus_Startup GDIPlus_StringFormatCreate GDIPlus_StringFormatDispose GDIPlus_StringFormatGetMeasurableCharacterRangeCount GDIPlus_StringFormatSetAlign GDIPlus_StringFormatSetLineAlign GDIPlus_StringFormatSetMeasurableCharacterRanges GDIPlus_TextureCreate GDIPlus_TextureCreate2 GDIPlus_TextureCreateIA GetIP GUICtrlAVI_Close GUICtrlAVI_Create GUICtrlAVI_Destroy GUICtrlAVI_IsPlaying GUICtrlAVI_Open GUICtrlAVI_OpenEx GUICtrlAVI_Play GUICtrlAVI_Seek GUICtrlAVI_Show GUICtrlAVI_Stop GUICtrlButton_Click GUICtrlButton_Create GUICtrlButton_Destroy GUICtrlButton_Enable GUICtrlButton_GetCheck GUICtrlButton_GetFocus GUICtrlButton_GetIdealSize GUICtrlButton_GetImage GUICtrlButton_GetImageList GUICtrlButton_GetNote GUICtrlButton_GetNoteLength GUICtrlButton_GetSplitInfo GUICtrlButton_GetState GUICtrlButton_GetText GUICtrlButton_GetTextMargin GUICtrlButton_SetCheck GUICtrlButton_SetDontClick GUICtrlButton_SetFocus GUICtrlButton_SetImage GUICtrlButton_SetImageList GUICtrlButton_SetNote GUICtrlButton_SetShield GUICtrlButton_SetSize GUICtrlButton_SetSplitInfo GUICtrlButton_SetState GUICtrlButton_SetStyle GUICtrlButton_SetText GUICtrlButton_SetTextMargin GUICtrlButton_Show GUICtrlComboBoxEx_AddDir GUICtrlComboBoxEx_AddString GUICtrlComboBoxEx_BeginUpdate GUICtrlComboBoxEx_Create GUICtrlComboBoxEx_CreateSolidBitMap GUICtrlComboBoxEx_DeleteString GUICtrlComboBoxEx_Destroy GUICtrlComboBoxEx_EndUpdate GUICtrlComboBoxEx_FindStringExact GUICtrlComboBoxEx_GetComboBoxInfo GUICtrlComboBoxEx_GetComboControl GUICtrlComboBoxEx_GetCount GUICtrlComboBoxEx_GetCurSel GUICtrlComboBoxEx_GetDroppedControlRect GUICtrlComboBoxEx_GetDroppedControlRectEx GUICtrlComboBoxEx_GetDroppedState GUICtrlComboBoxEx_GetDroppedWidth GUICtrlComboBoxEx_GetEditControl GUICtrlComboBoxEx_GetEditSel GUICtrlComboBoxEx_GetEditText GUICtrlComboBoxEx_GetExtendedStyle GUICtrlComboBoxEx_GetExtendedUI GUICtrlComboBoxEx_GetImageList GUICtrlComboBoxEx_GetItem GUICtrlComboBoxEx_GetItemEx GUICtrlComboBoxEx_GetItemHeight GUICtrlComboBoxEx_GetItemImage GUICtrlComboBoxEx_GetItemIndent GUICtrlComboBoxEx_GetItemOverlayImage GUICtrlComboBoxEx_GetItemParam GUICtrlComboBoxEx_GetItemSelectedImage GUICtrlComboBoxEx_GetItemText GUICtrlComboBoxEx_GetItemTextLen GUICtrlComboBoxEx_GetList GUICtrlComboBoxEx_GetListArray GUICtrlComboBoxEx_GetLocale GUICtrlComboBoxEx_GetLocaleCountry GUICtrlComboBoxEx_GetLocaleLang GUICtrlComboBoxEx_GetLocalePrimLang GUICtrlComboBoxEx_GetLocaleSubLang GUICtrlComboBoxEx_GetMinVisible GUICtrlComboBoxEx_GetTopIndex GUICtrlComboBoxEx_GetUnicode GUICtrlComboBoxEx_InitStorage GUICtrlComboBoxEx_InsertString GUICtrlComboBoxEx_LimitText GUICtrlComboBoxEx_ReplaceEditSel GUICtrlComboBoxEx_ResetContent GUICtrlComboBoxEx_SetCurSel GUICtrlComboBoxEx_SetDroppedWidth GUICtrlComboBoxEx_SetEditSel GUICtrlComboBoxEx_SetEditText GUICtrlComboBoxEx_SetExtendedStyle GUICtrlComboBoxEx_SetExtendedUI GUICtrlComboBoxEx_SetImageList GUICtrlComboBoxEx_SetItem GUICtrlComboBoxEx_SetItemEx GUICtrlComboBoxEx_SetItemHeight GUICtrlComboBoxEx_SetItemImage GUICtrlComboBoxEx_SetItemIndent GUICtrlComboBoxEx_SetItemOverlayImage GUICtrlComboBoxEx_SetItemParam GUICtrlComboBoxEx_SetItemSelectedImage GUICtrlComboBoxEx_SetMinVisible GUICtrlComboBoxEx_SetTopIndex GUICtrlComboBoxEx_SetUnicode GUICtrlComboBoxEx_ShowDropDown GUICtrlComboBox_AddDir GUICtrlComboBox_AddString GUICtrlComboBox_AutoComplete GUICtrlComboBox_BeginUpdate GUICtrlComboBox_Create GUICtrlComboBox_DeleteString GUICtrlComboBox_Destroy GUICtrlComboBox_EndUpdate GUICtrlComboBox_FindString GUICtrlComboBox_FindStringExact GUICtrlComboBox_GetComboBoxInfo GUICtrlComboBox_GetCount GUICtrlComboBox_GetCueBanner GUICtrlComboBox_GetCurSel GUICtrlComboBox_GetDroppedControlRect GUICtrlComboBox_GetDroppedControlRectEx GUICtrlComboBox_GetDroppedState GUICtrlComboBox_GetDroppedWidth GUICtrlComboBox_GetEditSel GUICtrlComboBox_GetEditText GUICtrlComboBox_GetExtendedUI GUICtrlComboBox_GetHorizontalExtent GUICtrlComboBox_GetItemHeight GUICtrlComboBox_GetLBText GUICtrlComboBox_GetLBTextLen GUICtrlComboBox_GetList GUICtrlComboBox_GetListArray GUICtrlComboBox_GetLocale GUICtrlComboBox_GetLocaleCountry GUICtrlComboBox_GetLocaleLang GUICtrlComboBox_GetLocalePrimLang GUICtrlComboBox_GetLocaleSubLang GUICtrlComboBox_GetMinVisible GUICtrlComboBox_GetTopIndex GUICtrlComboBox_InitStorage GUICtrlComboBox_InsertString GUICtrlComboBox_LimitText GUICtrlComboBox_ReplaceEditSel GUICtrlComboBox_ResetContent GUICtrlComboBox_SelectString GUICtrlComboBox_SetCueBanner GUICtrlComboBox_SetCurSel GUICtrlComboBox_SetDroppedWidth GUICtrlComboBox_SetEditSel GUICtrlComboBox_SetEditText GUICtrlComboBox_SetExtendedUI GUICtrlComboBox_SetHorizontalExtent GUICtrlComboBox_SetItemHeight GUICtrlComboBox_SetMinVisible GUICtrlComboBox_SetTopIndex GUICtrlComboBox_ShowDropDown GUICtrlDTP_Create GUICtrlDTP_Destroy GUICtrlDTP_GetMCColor GUICtrlDTP_GetMCFont GUICtrlDTP_GetMonthCal GUICtrlDTP_GetRange GUICtrlDTP_GetRangeEx GUICtrlDTP_GetSystemTime GUICtrlDTP_GetSystemTimeEx GUICtrlDTP_SetFormat GUICtrlDTP_SetMCColor GUICtrlDTP_SetMCFont GUICtrlDTP_SetRange GUICtrlDTP_SetRangeEx GUICtrlDTP_SetSystemTime GUICtrlDTP_SetSystemTimeEx GUICtrlEdit_AppendText GUICtrlEdit_BeginUpdate GUICtrlEdit_CanUndo GUICtrlEdit_CharFromPos GUICtrlEdit_Create GUICtrlEdit_Destroy GUICtrlEdit_EmptyUndoBuffer GUICtrlEdit_EndUpdate GUICtrlEdit_Find GUICtrlEdit_FmtLines GUICtrlEdit_GetCueBanner GUICtrlEdit_GetFirstVisibleLine GUICtrlEdit_GetLimitText GUICtrlEdit_GetLine GUICtrlEdit_GetLineCount GUICtrlEdit_GetMargins GUICtrlEdit_GetModify GUICtrlEdit_GetPasswordChar GUICtrlEdit_GetRECT GUICtrlEdit_GetRECTEx GUICtrlEdit_GetSel GUICtrlEdit_GetText GUICtrlEdit_GetTextLen GUICtrlEdit_HideBalloonTip GUICtrlEdit_InsertText GUICtrlEdit_LineFromChar GUICtrlEdit_LineIndex GUICtrlEdit_LineLength GUICtrlEdit_LineScroll GUICtrlEdit_PosFromChar GUICtrlEdit_ReplaceSel GUICtrlEdit_Scroll GUICtrlEdit_SetCueBanner GUICtrlEdit_SetLimitText GUICtrlEdit_SetMargins GUICtrlEdit_SetModify GUICtrlEdit_SetPasswordChar GUICtrlEdit_SetReadOnly GUICtrlEdit_SetRECT GUICtrlEdit_SetRECTEx GUICtrlEdit_SetRECTNP GUICtrlEdit_SetRectNPEx GUICtrlEdit_SetSel GUICtrlEdit_SetTabStops GUICtrlEdit_SetText GUICtrlEdit_ShowBalloonTip GUICtrlEdit_Undo GUICtrlHeader_AddItem GUICtrlHeader_ClearFilter GUICtrlHeader_ClearFilterAll GUICtrlHeader_Create GUICtrlHeader_CreateDragImage GUICtrlHeader_DeleteItem GUICtrlHeader_Destroy GUICtrlHeader_EditFilter GUICtrlHeader_GetBitmapMargin GUICtrlHeader_GetImageList GUICtrlHeader_GetItem GUICtrlHeader_GetItemAlign GUICtrlHeader_GetItemBitmap GUICtrlHeader_GetItemCount GUICtrlHeader_GetItemDisplay GUICtrlHeader_GetItemFlags GUICtrlHeader_GetItemFormat GUICtrlHeader_GetItemImage GUICtrlHeader_GetItemOrder GUICtrlHeader_GetItemParam GUICtrlHeader_GetItemRect GUICtrlHeader_GetItemRectEx GUICtrlHeader_GetItemText GUICtrlHeader_GetItemWidth GUICtrlHeader_GetOrderArray GUICtrlHeader_GetUnicodeFormat GUICtrlHeader_HitTest GUICtrlHeader_InsertItem GUICtrlHeader_Layout GUICtrlHeader_OrderToIndex GUICtrlHeader_SetBitmapMargin GUICtrlHeader_SetFilterChangeTimeout GUICtrlHeader_SetHotDivider GUICtrlHeader_SetImageList GUICtrlHeader_SetItem GUICtrlHeader_SetItemAlign GUICtrlHeader_SetItemBitmap GUICtrlHeader_SetItemDisplay GUICtrlHeader_SetItemFlags GUICtrlHeader_SetItemFormat GUICtrlHeader_SetItemImage GUICtrlHeader_SetItemOrder GUICtrlHeader_SetItemParam GUICtrlHeader_SetItemText GUICtrlHeader_SetItemWidth GUICtrlHeader_SetOrderArray GUICtrlHeader_SetUnicodeFormat GUICtrlIpAddress_ClearAddress GUICtrlIpAddress_Create GUICtrlIpAddress_Destroy GUICtrlIpAddress_Get GUICtrlIpAddress_GetArray GUICtrlIpAddress_GetEx GUICtrlIpAddress_IsBlank GUICtrlIpAddress_Set GUICtrlIpAddress_SetArray GUICtrlIpAddress_SetEx GUICtrlIpAddress_SetFocus GUICtrlIpAddress_SetFont GUICtrlIpAddress_SetRange GUICtrlIpAddress_ShowHide GUICtrlListBox_AddFile GUICtrlListBox_AddString GUICtrlListBox_BeginUpdate GUICtrlListBox_ClickItem GUICtrlListBox_Create GUICtrlListBox_DeleteString GUICtrlListBox_Destroy GUICtrlListBox_Dir GUICtrlListBox_EndUpdate GUICtrlListBox_FindInText GUICtrlListBox_FindString GUICtrlListBox_GetAnchorIndex GUICtrlListBox_GetCaretIndex GUICtrlListBox_GetCount GUICtrlListBox_GetCurSel GUICtrlListBox_GetHorizontalExtent GUICtrlListBox_GetItemData GUICtrlListBox_GetItemHeight GUICtrlListBox_GetItemRect GUICtrlListBox_GetItemRectEx GUICtrlListBox_GetListBoxInfo GUICtrlListBox_GetLocale GUICtrlListBox_GetLocaleCountry GUICtrlListBox_GetLocaleLang GUICtrlListBox_GetLocalePrimLang GUICtrlListBox_GetLocaleSubLang GUICtrlListBox_GetSel GUICtrlListBox_GetSelCount GUICtrlListBox_GetSelItems GUICtrlListBox_GetSelItemsText GUICtrlListBox_GetText GUICtrlListBox_GetTextLen GUICtrlListBox_GetTopIndex GUICtrlListBox_InitStorage GUICtrlListBox_InsertString GUICtrlListBox_ItemFromPoint GUICtrlListBox_ReplaceString GUICtrlListBox_ResetContent GUICtrlListBox_SelectString GUICtrlListBox_SelItemRange GUICtrlListBox_SelItemRangeEx GUICtrlListBox_SetAnchorIndex GUICtrlListBox_SetCaretIndex GUICtrlListBox_SetColumnWidth GUICtrlListBox_SetCurSel GUICtrlListBox_SetHorizontalExtent GUICtrlListBox_SetItemData GUICtrlListBox_SetItemHeight GUICtrlListBox_SetLocale GUICtrlListBox_SetSel GUICtrlListBox_SetTabStops GUICtrlListBox_SetTopIndex GUICtrlListBox_Sort GUICtrlListBox_SwapString GUICtrlListBox_UpdateHScroll GUICtrlListView_AddArray GUICtrlListView_AddColumn GUICtrlListView_AddItem GUICtrlListView_AddSubItem GUICtrlListView_ApproximateViewHeight GUICtrlListView_ApproximateViewRect GUICtrlListView_ApproximateViewWidth GUICtrlListView_Arrange GUICtrlListView_BeginUpdate GUICtrlListView_CancelEditLabel GUICtrlListView_ClickItem GUICtrlListView_CopyItems GUICtrlListView_Create GUICtrlListView_CreateDragImage GUICtrlListView_CreateSolidBitMap GUICtrlListView_DeleteAllItems GUICtrlListView_DeleteColumn GUICtrlListView_DeleteItem GUICtrlListView_DeleteItemsSelected GUICtrlListView_Destroy GUICtrlListView_DrawDragImage GUICtrlListView_EditLabel GUICtrlListView_EnableGroupView GUICtrlListView_EndUpdate GUICtrlListView_EnsureVisible GUICtrlListView_FindInText GUICtrlListView_FindItem GUICtrlListView_FindNearest GUICtrlListView_FindParam GUICtrlListView_FindText GUICtrlListView_GetBkColor GUICtrlListView_GetBkImage GUICtrlListView_GetCallbackMask GUICtrlListView_GetColumn GUICtrlListView_GetColumnCount GUICtrlListView_GetColumnOrder GUICtrlListView_GetColumnOrderArray GUICtrlListView_GetColumnWidth GUICtrlListView_GetCounterPage GUICtrlListView_GetEditControl GUICtrlListView_GetExtendedListViewStyle GUICtrlListView_GetFocusedGroup GUICtrlListView_GetGroupCount GUICtrlListView_GetGroupInfo GUICtrlListView_GetGroupInfoByIndex GUICtrlListView_GetGroupRect GUICtrlListView_GetGroupViewEnabled GUICtrlListView_GetHeader GUICtrlListView_GetHotCursor GUICtrlListView_GetHotItem GUICtrlListView_GetHoverTime GUICtrlListView_GetImageList GUICtrlListView_GetISearchString GUICtrlListView_GetItem GUICtrlListView_GetItemChecked GUICtrlListView_GetItemCount GUICtrlListView_GetItemCut GUICtrlListView_GetItemDropHilited GUICtrlListView_GetItemEx GUICtrlListView_GetItemFocused GUICtrlListView_GetItemGroupID GUICtrlListView_GetItemImage GUICtrlListView_GetItemIndent GUICtrlListView_GetItemParam GUICtrlListView_GetItemPosition GUICtrlListView_GetItemPositionX GUICtrlListView_GetItemPositionY GUICtrlListView_GetItemRect GUICtrlListView_GetItemRectEx GUICtrlListView_GetItemSelected GUICtrlListView_GetItemSpacing GUICtrlListView_GetItemSpacingX GUICtrlListView_GetItemSpacingY GUICtrlListView_GetItemState GUICtrlListView_GetItemStateImage GUICtrlListView_GetItemText GUICtrlListView_GetItemTextArray GUICtrlListView_GetItemTextString GUICtrlListView_GetNextItem GUICtrlListView_GetNumberOfWorkAreas GUICtrlListView_GetOrigin GUICtrlListView_GetOriginX GUICtrlListView_GetOriginY GUICtrlListView_GetOutlineColor GUICtrlListView_GetSelectedColumn GUICtrlListView_GetSelectedCount GUICtrlListView_GetSelectedIndices GUICtrlListView_GetSelectionMark GUICtrlListView_GetStringWidth GUICtrlListView_GetSubItemRect GUICtrlListView_GetTextBkColor GUICtrlListView_GetTextColor GUICtrlListView_GetToolTips GUICtrlListView_GetTopIndex GUICtrlListView_GetUnicodeFormat GUICtrlListView_GetView GUICtrlListView_GetViewDetails GUICtrlListView_GetViewLarge GUICtrlListView_GetViewList GUICtrlListView_GetViewRect GUICtrlListView_GetViewSmall GUICtrlListView_GetViewTile GUICtrlListView_HideColumn GUICtrlListView_HitTest GUICtrlListView_InsertColumn GUICtrlListView_InsertGroup GUICtrlListView_InsertItem GUICtrlListView_JustifyColumn GUICtrlListView_MapIDToIndex GUICtrlListView_MapIndexToID GUICtrlListView_RedrawItems GUICtrlListView_RegisterSortCallBack GUICtrlListView_RemoveAllGroups GUICtrlListView_RemoveGroup GUICtrlListView_Scroll GUICtrlListView_SetBkColor GUICtrlListView_SetBkImage GUICtrlListView_SetCallBackMask GUICtrlListView_SetColumn GUICtrlListView_SetColumnOrder GUICtrlListView_SetColumnOrderArray GUICtrlListView_SetColumnWidth GUICtrlListView_SetExtendedListViewStyle GUICtrlListView_SetGroupInfo GUICtrlListView_SetHotItem GUICtrlListView_SetHoverTime GUICtrlListView_SetIconSpacing GUICtrlListView_SetImageList GUICtrlListView_SetItem GUICtrlListView_SetItemChecked GUICtrlListView_SetItemCount GUICtrlListView_SetItemCut GUICtrlListView_SetItemDropHilited GUICtrlListView_SetItemEx GUICtrlListView_SetItemFocused GUICtrlListView_SetItemGroupID GUICtrlListView_SetItemImage GUICtrlListView_SetItemIndent GUICtrlListView_SetItemParam GUICtrlListView_SetItemPosition GUICtrlListView_SetItemPosition32 GUICtrlListView_SetItemSelected GUICtrlListView_SetItemState GUICtrlListView_SetItemStateImage GUICtrlListView_SetItemText GUICtrlListView_SetOutlineColor GUICtrlListView_SetSelectedColumn GUICtrlListView_SetSelectionMark GUICtrlListView_SetTextBkColor GUICtrlListView_SetTextColor GUICtrlListView_SetToolTips GUICtrlListView_SetUnicodeFormat GUICtrlListView_SetView GUICtrlListView_SetWorkAreas GUICtrlListView_SimpleSort GUICtrlListView_SortItems GUICtrlListView_SubItemHitTest GUICtrlListView_UnRegisterSortCallBack GUICtrlMenu_AddMenuItem GUICtrlMenu_AppendMenu GUICtrlMenu_CalculatePopupWindowPosition GUICtrlMenu_CheckMenuItem GUICtrlMenu_CheckRadioItem GUICtrlMenu_CreateMenu GUICtrlMenu_CreatePopup GUICtrlMenu_DeleteMenu GUICtrlMenu_DestroyMenu GUICtrlMenu_DrawMenuBar GUICtrlMenu_EnableMenuItem GUICtrlMenu_FindItem GUICtrlMenu_FindParent GUICtrlMenu_GetItemBmp GUICtrlMenu_GetItemBmpChecked GUICtrlMenu_GetItemBmpUnchecked GUICtrlMenu_GetItemChecked GUICtrlMenu_GetItemCount GUICtrlMenu_GetItemData GUICtrlMenu_GetItemDefault GUICtrlMenu_GetItemDisabled GUICtrlMenu_GetItemEnabled GUICtrlMenu_GetItemGrayed GUICtrlMenu_GetItemHighlighted GUICtrlMenu_GetItemID GUICtrlMenu_GetItemInfo GUICtrlMenu_GetItemRect GUICtrlMenu_GetItemRectEx GUICtrlMenu_GetItemState GUICtrlMenu_GetItemStateEx GUICtrlMenu_GetItemSubMenu GUICtrlMenu_GetItemText GUICtrlMenu_GetItemType GUICtrlMenu_GetMenu GUICtrlMenu_GetMenuBackground GUICtrlMenu_GetMenuBarInfo GUICtrlMenu_GetMenuContextHelpID GUICtrlMenu_GetMenuData GUICtrlMenu_GetMenuDefaultItem GUICtrlMenu_GetMenuHeight GUICtrlMenu_GetMenuInfo GUICtrlMenu_GetMenuStyle GUICtrlMenu_GetSystemMenu GUICtrlMenu_InsertMenuItem GUICtrlMenu_InsertMenuItemEx GUICtrlMenu_IsMenu GUICtrlMenu_LoadMenu GUICtrlMenu_MapAccelerator GUICtrlMenu_MenuItemFromPoint GUICtrlMenu_RemoveMenu GUICtrlMenu_SetItemBitmaps GUICtrlMenu_SetItemBmp GUICtrlMenu_SetItemBmpChecked GUICtrlMenu_SetItemBmpUnchecked GUICtrlMenu_SetItemChecked GUICtrlMenu_SetItemData GUICtrlMenu_SetItemDefault GUICtrlMenu_SetItemDisabled GUICtrlMenu_SetItemEnabled GUICtrlMenu_SetItemGrayed GUICtrlMenu_SetItemHighlighted GUICtrlMenu_SetItemID GUICtrlMenu_SetItemInfo GUICtrlMenu_SetItemState GUICtrlMenu_SetItemSubMenu GUICtrlMenu_SetItemText GUICtrlMenu_SetItemType GUICtrlMenu_SetMenu GUICtrlMenu_SetMenuBackground GUICtrlMenu_SetMenuContextHelpID GUICtrlMenu_SetMenuData GUICtrlMenu_SetMenuDefaultItem GUICtrlMenu_SetMenuHeight GUICtrlMenu_SetMenuInfo GUICtrlMenu_SetMenuStyle GUICtrlMenu_TrackPopupMenu GUICtrlMonthCal_Create GUICtrlMonthCal_Destroy GUICtrlMonthCal_GetCalendarBorder GUICtrlMonthCal_GetCalendarCount GUICtrlMonthCal_GetColor GUICtrlMonthCal_GetColorArray GUICtrlMonthCal_GetCurSel GUICtrlMonthCal_GetCurSelStr GUICtrlMonthCal_GetFirstDOW GUICtrlMonthCal_GetFirstDOWStr GUICtrlMonthCal_GetMaxSelCount GUICtrlMonthCal_GetMaxTodayWidth GUICtrlMonthCal_GetMinReqHeight GUICtrlMonthCal_GetMinReqRect GUICtrlMonthCal_GetMinReqRectArray GUICtrlMonthCal_GetMinReqWidth GUICtrlMonthCal_GetMonthDelta GUICtrlMonthCal_GetMonthRange GUICtrlMonthCal_GetMonthRangeMax GUICtrlMonthCal_GetMonthRangeMaxStr GUICtrlMonthCal_GetMonthRangeMin GUICtrlMonthCal_GetMonthRangeMinStr GUICtrlMonthCal_GetMonthRangeSpan GUICtrlMonthCal_GetRange GUICtrlMonthCal_GetRangeMax GUICtrlMonthCal_GetRangeMaxStr GUICtrlMonthCal_GetRangeMin GUICtrlMonthCal_GetRangeMinStr GUICtrlMonthCal_GetSelRange GUICtrlMonthCal_GetSelRangeMax GUICtrlMonthCal_GetSelRangeMaxStr GUICtrlMonthCal_GetSelRangeMin GUICtrlMonthCal_GetSelRangeMinStr GUICtrlMonthCal_GetToday GUICtrlMonthCal_GetTodayStr GUICtrlMonthCal_GetUnicodeFormat GUICtrlMonthCal_HitTest GUICtrlMonthCal_SetCalendarBorder GUICtrlMonthCal_SetColor GUICtrlMonthCal_SetCurSel GUICtrlMonthCal_SetDayState GUICtrlMonthCal_SetFirstDOW GUICtrlMonthCal_SetMaxSelCount GUICtrlMonthCal_SetMonthDelta GUICtrlMonthCal_SetRange GUICtrlMonthCal_SetSelRange GUICtrlMonthCal_SetToday GUICtrlMonthCal_SetUnicodeFormat GUICtrlRebar_AddBand GUICtrlRebar_AddToolBarBand GUICtrlRebar_BeginDrag GUICtrlRebar_Create GUICtrlRebar_DeleteBand GUICtrlRebar_Destroy GUICtrlRebar_DragMove GUICtrlRebar_EndDrag GUICtrlRebar_GetBandBackColor GUICtrlRebar_GetBandBorders GUICtrlRebar_GetBandBordersEx GUICtrlRebar_GetBandChildHandle GUICtrlRebar_GetBandChildSize GUICtrlRebar_GetBandCount GUICtrlRebar_GetBandForeColor GUICtrlRebar_GetBandHeaderSize GUICtrlRebar_GetBandID GUICtrlRebar_GetBandIdealSize GUICtrlRebar_GetBandLength GUICtrlRebar_GetBandLParam GUICtrlRebar_GetBandMargins GUICtrlRebar_GetBandMarginsEx GUICtrlRebar_GetBandRect GUICtrlRebar_GetBandRectEx GUICtrlRebar_GetBandStyle GUICtrlRebar_GetBandStyleBreak GUICtrlRebar_GetBandStyleChildEdge GUICtrlRebar_GetBandStyleFixedBMP GUICtrlRebar_GetBandStyleFixedSize GUICtrlRebar_GetBandStyleGripperAlways GUICtrlRebar_GetBandStyleHidden GUICtrlRebar_GetBandStyleHideTitle GUICtrlRebar_GetBandStyleNoGripper GUICtrlRebar_GetBandStyleTopAlign GUICtrlRebar_GetBandStyleUseChevron GUICtrlRebar_GetBandStyleVariableHeight GUICtrlRebar_GetBandText GUICtrlRebar_GetBarHeight GUICtrlRebar_GetBarInfo GUICtrlRebar_GetBKColor GUICtrlRebar_GetColorScheme GUICtrlRebar_GetRowCount GUICtrlRebar_GetRowHeight GUICtrlRebar_GetTextColor GUICtrlRebar_GetToolTips GUICtrlRebar_GetUnicodeFormat GUICtrlRebar_HitTest GUICtrlRebar_IDToIndex GUICtrlRebar_MaximizeBand GUICtrlRebar_MinimizeBand GUICtrlRebar_MoveBand GUICtrlRebar_SetBandBackColor GUICtrlRebar_SetBandForeColor GUICtrlRebar_SetBandHeaderSize GUICtrlRebar_SetBandID GUICtrlRebar_SetBandIdealSize GUICtrlRebar_SetBandLength GUICtrlRebar_SetBandLParam GUICtrlRebar_SetBandStyle GUICtrlRebar_SetBandStyleBreak GUICtrlRebar_SetBandStyleChildEdge GUICtrlRebar_SetBandStyleFixedBMP GUICtrlRebar_SetBandStyleFixedSize GUICtrlRebar_SetBandStyleGripperAlways GUICtrlRebar_SetBandStyleHidden GUICtrlRebar_SetBandStyleHideTitle GUICtrlRebar_SetBandStyleNoGripper GUICtrlRebar_SetBandStyleTopAlign GUICtrlRebar_SetBandStyleUseChevron GUICtrlRebar_SetBandStyleVariableHeight GUICtrlRebar_SetBandText GUICtrlRebar_SetBarInfo GUICtrlRebar_SetBKColor GUICtrlRebar_SetColorScheme GUICtrlRebar_SetTextColor GUICtrlRebar_SetToolTips GUICtrlRebar_SetUnicodeFormat GUICtrlRebar_ShowBand GUICtrlRichEdit_AppendText GUICtrlRichEdit_AutoDetectURL GUICtrlRichEdit_CanPaste GUICtrlRichEdit_CanPasteSpecial GUICtrlRichEdit_CanRedo GUICtrlRichEdit_CanUndo GUICtrlRichEdit_ChangeFontSize GUICtrlRichEdit_Copy GUICtrlRichEdit_Create GUICtrlRichEdit_Cut GUICtrlRichEdit_Deselect GUICtrlRichEdit_Destroy GUICtrlRichEdit_EmptyUndoBuffer GUICtrlRichEdit_FindText GUICtrlRichEdit_FindTextInRange GUICtrlRichEdit_GetBkColor GUICtrlRichEdit_GetCharAttributes GUICtrlRichEdit_GetCharBkColor GUICtrlRichEdit_GetCharColor GUICtrlRichEdit_GetCharPosFromXY GUICtrlRichEdit_GetCharPosOfNextWord GUICtrlRichEdit_GetCharPosOfPreviousWord GUICtrlRichEdit_GetCharWordBreakInfo GUICtrlRichEdit_GetFirstCharPosOnLine GUICtrlRichEdit_GetFont GUICtrlRichEdit_GetLineCount GUICtrlRichEdit_GetLineLength GUICtrlRichEdit_GetLineNumberFromCharPos GUICtrlRichEdit_GetNextRedo GUICtrlRichEdit_GetNextUndo GUICtrlRichEdit_GetNumberOfFirstVisibleLine GUICtrlRichEdit_GetParaAlignment GUICtrlRichEdit_GetParaAttributes GUICtrlRichEdit_GetParaBorder GUICtrlRichEdit_GetParaIndents GUICtrlRichEdit_GetParaNumbering GUICtrlRichEdit_GetParaShading GUICtrlRichEdit_GetParaSpacing GUICtrlRichEdit_GetParaTabStops GUICtrlRichEdit_GetPasswordChar GUICtrlRichEdit_GetRECT GUICtrlRichEdit_GetScrollPos GUICtrlRichEdit_GetSel GUICtrlRichEdit_GetSelAA GUICtrlRichEdit_GetSelText GUICtrlRichEdit_GetSpaceUnit GUICtrlRichEdit_GetText GUICtrlRichEdit_GetTextInLine GUICtrlRichEdit_GetTextInRange GUICtrlRichEdit_GetTextLength GUICtrlRichEdit_GetVersion GUICtrlRichEdit_GetXYFromCharPos GUICtrlRichEdit_GetZoom GUICtrlRichEdit_GotoCharPos GUICtrlRichEdit_HideSelection GUICtrlRichEdit_InsertText GUICtrlRichEdit_IsModified GUICtrlRichEdit_IsTextSelected GUICtrlRichEdit_Paste GUICtrlRichEdit_PasteSpecial GUICtrlRichEdit_PauseRedraw GUICtrlRichEdit_Redo GUICtrlRichEdit_ReplaceText GUICtrlRichEdit_ResumeRedraw GUICtrlRichEdit_ScrollLineOrPage GUICtrlRichEdit_ScrollLines GUICtrlRichEdit_ScrollToCaret GUICtrlRichEdit_SetBkColor GUICtrlRichEdit_SetCharAttributes GUICtrlRichEdit_SetCharBkColor GUICtrlRichEdit_SetCharColor GUICtrlRichEdit_SetEventMask GUICtrlRichEdit_SetFont GUICtrlRichEdit_SetLimitOnText GUICtrlRichEdit_SetModified GUICtrlRichEdit_SetParaAlignment GUICtrlRichEdit_SetParaAttributes GUICtrlRichEdit_SetParaBorder GUICtrlRichEdit_SetParaIndents GUICtrlRichEdit_SetParaNumbering GUICtrlRichEdit_SetParaShading GUICtrlRichEdit_SetParaSpacing GUICtrlRichEdit_SetParaTabStops GUICtrlRichEdit_SetPasswordChar GUICtrlRichEdit_SetReadOnly GUICtrlRichEdit_SetRECT GUICtrlRichEdit_SetScrollPos GUICtrlRichEdit_SetSel GUICtrlRichEdit_SetSpaceUnit GUICtrlRichEdit_SetTabStops GUICtrlRichEdit_SetText GUICtrlRichEdit_SetUndoLimit GUICtrlRichEdit_SetZoom GUICtrlRichEdit_StreamFromFile GUICtrlRichEdit_StreamFromVar GUICtrlRichEdit_StreamToFile GUICtrlRichEdit_StreamToVar GUICtrlRichEdit_Undo GUICtrlSlider_ClearSel GUICtrlSlider_ClearTics GUICtrlSlider_Create GUICtrlSlider_Destroy GUICtrlSlider_GetBuddy GUICtrlSlider_GetChannelRect GUICtrlSlider_GetChannelRectEx GUICtrlSlider_GetLineSize GUICtrlSlider_GetLogicalTics GUICtrlSlider_GetNumTics GUICtrlSlider_GetPageSize GUICtrlSlider_GetPos GUICtrlSlider_GetRange GUICtrlSlider_GetRangeMax GUICtrlSlider_GetRangeMin GUICtrlSlider_GetSel GUICtrlSlider_GetSelEnd GUICtrlSlider_GetSelStart GUICtrlSlider_GetThumbLength GUICtrlSlider_GetThumbRect GUICtrlSlider_GetThumbRectEx GUICtrlSlider_GetTic GUICtrlSlider_GetTicPos GUICtrlSlider_GetToolTips GUICtrlSlider_GetUnicodeFormat GUICtrlSlider_SetBuddy GUICtrlSlider_SetLineSize GUICtrlSlider_SetPageSize GUICtrlSlider_SetPos GUICtrlSlider_SetRange GUICtrlSlider_SetRangeMax GUICtrlSlider_SetRangeMin GUICtrlSlider_SetSel GUICtrlSlider_SetSelEnd GUICtrlSlider_SetSelStart GUICtrlSlider_SetThumbLength GUICtrlSlider_SetTic GUICtrlSlider_SetTicFreq GUICtrlSlider_SetTipSide GUICtrlSlider_SetToolTips GUICtrlSlider_SetUnicodeFormat GUICtrlStatusBar_Create GUICtrlStatusBar_Destroy GUICtrlStatusBar_EmbedControl GUICtrlStatusBar_GetBorders GUICtrlStatusBar_GetBordersHorz GUICtrlStatusBar_GetBordersRect GUICtrlStatusBar_GetBordersVert GUICtrlStatusBar_GetCount GUICtrlStatusBar_GetHeight GUICtrlStatusBar_GetIcon GUICtrlStatusBar_GetParts GUICtrlStatusBar_GetRect GUICtrlStatusBar_GetRectEx GUICtrlStatusBar_GetText GUICtrlStatusBar_GetTextFlags GUICtrlStatusBar_GetTextLength GUICtrlStatusBar_GetTextLengthEx GUICtrlStatusBar_GetTipText GUICtrlStatusBar_GetUnicodeFormat GUICtrlStatusBar_GetWidth GUICtrlStatusBar_IsSimple GUICtrlStatusBar_Resize GUICtrlStatusBar_SetBkColor GUICtrlStatusBar_SetIcon GUICtrlStatusBar_SetMinHeight GUICtrlStatusBar_SetParts GUICtrlStatusBar_SetSimple GUICtrlStatusBar_SetText GUICtrlStatusBar_SetTipText GUICtrlStatusBar_SetUnicodeFormat GUICtrlStatusBar_ShowHide GUICtrlTab_ActivateTab GUICtrlTab_ClickTab GUICtrlTab_Create GUICtrlTab_DeleteAllItems GUICtrlTab_DeleteItem GUICtrlTab_DeselectAll GUICtrlTab_Destroy GUICtrlTab_FindTab GUICtrlTab_GetCurFocus GUICtrlTab_GetCurSel GUICtrlTab_GetDisplayRect GUICtrlTab_GetDisplayRectEx GUICtrlTab_GetExtendedStyle GUICtrlTab_GetImageList GUICtrlTab_GetItem GUICtrlTab_GetItemCount GUICtrlTab_GetItemImage GUICtrlTab_GetItemParam GUICtrlTab_GetItemRect GUICtrlTab_GetItemRectEx GUICtrlTab_GetItemState GUICtrlTab_GetItemText GUICtrlTab_GetRowCount GUICtrlTab_GetToolTips GUICtrlTab_GetUnicodeFormat GUICtrlTab_HighlightItem GUICtrlTab_HitTest GUICtrlTab_InsertItem GUICtrlTab_RemoveImage GUICtrlTab_SetCurFocus GUICtrlTab_SetCurSel GUICtrlTab_SetExtendedStyle GUICtrlTab_SetImageList GUICtrlTab_SetItem GUICtrlTab_SetItemImage GUICtrlTab_SetItemParam GUICtrlTab_SetItemSize GUICtrlTab_SetItemState GUICtrlTab_SetItemText GUICtrlTab_SetMinTabWidth GUICtrlTab_SetPadding GUICtrlTab_SetToolTips GUICtrlTab_SetUnicodeFormat GUICtrlToolbar_AddBitmap GUICtrlToolbar_AddButton GUICtrlToolbar_AddButtonSep GUICtrlToolbar_AddString GUICtrlToolbar_ButtonCount GUICtrlToolbar_CheckButton GUICtrlToolbar_ClickAccel GUICtrlToolbar_ClickButton GUICtrlToolbar_ClickIndex GUICtrlToolbar_CommandToIndex GUICtrlToolbar_Create GUICtrlToolbar_Customize GUICtrlToolbar_DeleteButton GUICtrlToolbar_Destroy GUICtrlToolbar_EnableButton GUICtrlToolbar_FindToolbar GUICtrlToolbar_GetAnchorHighlight GUICtrlToolbar_GetBitmapFlags GUICtrlToolbar_GetButtonBitmap GUICtrlToolbar_GetButtonInfo GUICtrlToolbar_GetButtonInfoEx GUICtrlToolbar_GetButtonParam GUICtrlToolbar_GetButtonRect GUICtrlToolbar_GetButtonRectEx GUICtrlToolbar_GetButtonSize GUICtrlToolbar_GetButtonState GUICtrlToolbar_GetButtonStyle GUICtrlToolbar_GetButtonText GUICtrlToolbar_GetColorScheme GUICtrlToolbar_GetDisabledImageList GUICtrlToolbar_GetExtendedStyle GUICtrlToolbar_GetHotImageList GUICtrlToolbar_GetHotItem GUICtrlToolbar_GetImageList GUICtrlToolbar_GetInsertMark GUICtrlToolbar_GetInsertMarkColor GUICtrlToolbar_GetMaxSize GUICtrlToolbar_GetMetrics GUICtrlToolbar_GetPadding GUICtrlToolbar_GetRows GUICtrlToolbar_GetString GUICtrlToolbar_GetStyle GUICtrlToolbar_GetStyleAltDrag GUICtrlToolbar_GetStyleCustomErase GUICtrlToolbar_GetStyleFlat GUICtrlToolbar_GetStyleList GUICtrlToolbar_GetStyleRegisterDrop GUICtrlToolbar_GetStyleToolTips GUICtrlToolbar_GetStyleTransparent GUICtrlToolbar_GetStyleWrapable GUICtrlToolbar_GetTextRows GUICtrlToolbar_GetToolTips GUICtrlToolbar_GetUnicodeFormat GUICtrlToolbar_HideButton GUICtrlToolbar_HighlightButton GUICtrlToolbar_HitTest GUICtrlToolbar_IndexToCommand GUICtrlToolbar_InsertButton GUICtrlToolbar_InsertMarkHitTest GUICtrlToolbar_IsButtonChecked GUICtrlToolbar_IsButtonEnabled GUICtrlToolbar_IsButtonHidden GUICtrlToolbar_IsButtonHighlighted GUICtrlToolbar_IsButtonIndeterminate GUICtrlToolbar_IsButtonPressed GUICtrlToolbar_LoadBitmap GUICtrlToolbar_LoadImages GUICtrlToolbar_MapAccelerator GUICtrlToolbar_MoveButton GUICtrlToolbar_PressButton GUICtrlToolbar_SetAnchorHighlight GUICtrlToolbar_SetBitmapSize GUICtrlToolbar_SetButtonBitMap GUICtrlToolbar_SetButtonInfo GUICtrlToolbar_SetButtonInfoEx GUICtrlToolbar_SetButtonParam GUICtrlToolbar_SetButtonSize GUICtrlToolbar_SetButtonState GUICtrlToolbar_SetButtonStyle GUICtrlToolbar_SetButtonText GUICtrlToolbar_SetButtonWidth GUICtrlToolbar_SetCmdID GUICtrlToolbar_SetColorScheme GUICtrlToolbar_SetDisabledImageList GUICtrlToolbar_SetDrawTextFlags GUICtrlToolbar_SetExtendedStyle GUICtrlToolbar_SetHotImageList GUICtrlToolbar_SetHotItem GUICtrlToolbar_SetImageList GUICtrlToolbar_SetIndent GUICtrlToolbar_SetIndeterminate GUICtrlToolbar_SetInsertMark GUICtrlToolbar_SetInsertMarkColor GUICtrlToolbar_SetMaxTextRows GUICtrlToolbar_SetMetrics GUICtrlToolbar_SetPadding GUICtrlToolbar_SetParent GUICtrlToolbar_SetRows GUICtrlToolbar_SetStyle GUICtrlToolbar_SetStyleAltDrag GUICtrlToolbar_SetStyleCustomErase GUICtrlToolbar_SetStyleFlat GUICtrlToolbar_SetStyleList GUICtrlToolbar_SetStyleRegisterDrop GUICtrlToolbar_SetStyleToolTips GUICtrlToolbar_SetStyleTransparent GUICtrlToolbar_SetStyleWrapable GUICtrlToolbar_SetToolTips GUICtrlToolbar_SetUnicodeFormat GUICtrlToolbar_SetWindowTheme GUICtrlTreeView_Add GUICtrlTreeView_AddChild GUICtrlTreeView_AddChildFirst GUICtrlTreeView_AddFirst GUICtrlTreeView_BeginUpdate GUICtrlTreeView_ClickItem GUICtrlTreeView_Create GUICtrlTreeView_CreateDragImage GUICtrlTreeView_CreateSolidBitMap GUICtrlTreeView_Delete GUICtrlTreeView_DeleteAll GUICtrlTreeView_DeleteChildren GUICtrlTreeView_Destroy GUICtrlTreeView_DisplayRect GUICtrlTreeView_DisplayRectEx GUICtrlTreeView_EditText GUICtrlTreeView_EndEdit GUICtrlTreeView_EndUpdate GUICtrlTreeView_EnsureVisible GUICtrlTreeView_Expand GUICtrlTreeView_ExpandedOnce GUICtrlTreeView_FindItem GUICtrlTreeView_FindItemEx GUICtrlTreeView_GetBkColor GUICtrlTreeView_GetBold GUICtrlTreeView_GetChecked GUICtrlTreeView_GetChildCount GUICtrlTreeView_GetChildren GUICtrlTreeView_GetCount GUICtrlTreeView_GetCut GUICtrlTreeView_GetDropTarget GUICtrlTreeView_GetEditControl GUICtrlTreeView_GetExpanded GUICtrlTreeView_GetFirstChild GUICtrlTreeView_GetFirstItem GUICtrlTreeView_GetFirstVisible GUICtrlTreeView_GetFocused GUICtrlTreeView_GetHeight GUICtrlTreeView_GetImageIndex GUICtrlTreeView_GetImageListIconHandle GUICtrlTreeView_GetIndent GUICtrlTreeView_GetInsertMarkColor GUICtrlTreeView_GetISearchString GUICtrlTreeView_GetItemByIndex GUICtrlTreeView_GetItemHandle GUICtrlTreeView_GetItemParam GUICtrlTreeView_GetLastChild GUICtrlTreeView_GetLineColor GUICtrlTreeView_GetNext GUICtrlTreeView_GetNextChild GUICtrlTreeView_GetNextSibling GUICtrlTreeView_GetNextVisible GUICtrlTreeView_GetNormalImageList GUICtrlTreeView_GetParentHandle GUICtrlTreeView_GetParentParam GUICtrlTreeView_GetPrev GUICtrlTreeView_GetPrevChild GUICtrlTreeView_GetPrevSibling GUICtrlTreeView_GetPrevVisible GUICtrlTreeView_GetScrollTime GUICtrlTreeView_GetSelected GUICtrlTreeView_GetSelectedImageIndex GUICtrlTreeView_GetSelection GUICtrlTreeView_GetSiblingCount GUICtrlTreeView_GetState GUICtrlTreeView_GetStateImageIndex GUICtrlTreeView_GetStateImageList GUICtrlTreeView_GetText GUICtrlTreeView_GetTextColor GUICtrlTreeView_GetToolTips GUICtrlTreeView_GetTree GUICtrlTreeView_GetUnicodeFormat GUICtrlTreeView_GetVisible GUICtrlTreeView_GetVisibleCount GUICtrlTreeView_HitTest GUICtrlTreeView_HitTestEx GUICtrlTreeView_HitTestItem GUICtrlTreeView_Index GUICtrlTreeView_InsertItem GUICtrlTreeView_IsFirstItem GUICtrlTreeView_IsParent GUICtrlTreeView_Level GUICtrlTreeView_SelectItem GUICtrlTreeView_SelectItemByIndex GUICtrlTreeView_SetBkColor GUICtrlTreeView_SetBold GUICtrlTreeView_SetChecked GUICtrlTreeView_SetCheckedByIndex GUICtrlTreeView_SetChildren GUICtrlTreeView_SetCut GUICtrlTreeView_SetDropTarget GUICtrlTreeView_SetFocused GUICtrlTreeView_SetHeight GUICtrlTreeView_SetIcon GUICtrlTreeView_SetImageIndex GUICtrlTreeView_SetIndent GUICtrlTreeView_SetInsertMark GUICtrlTreeView_SetInsertMarkColor GUICtrlTreeView_SetItemHeight GUICtrlTreeView_SetItemParam GUICtrlTreeView_SetLineColor GUICtrlTreeView_SetNormalImageList GUICtrlTreeView_SetScrollTime GUICtrlTreeView_SetSelected GUICtrlTreeView_SetSelectedImageIndex GUICtrlTreeView_SetState GUICtrlTreeView_SetStateImageIndex GUICtrlTreeView_SetStateImageList GUICtrlTreeView_SetText GUICtrlTreeView_SetTextColor GUICtrlTreeView_SetToolTips GUICtrlTreeView_SetUnicodeFormat GUICtrlTreeView_Sort GUIImageList_Add GUIImageList_AddBitmap GUIImageList_AddIcon GUIImageList_AddMasked GUIImageList_BeginDrag GUIImageList_Copy GUIImageList_Create GUIImageList_Destroy GUIImageList_DestroyIcon GUIImageList_DragEnter GUIImageList_DragLeave GUIImageList_DragMove GUIImageList_Draw GUIImageList_DrawEx GUIImageList_Duplicate GUIImageList_EndDrag GUIImageList_GetBkColor GUIImageList_GetIcon GUIImageList_GetIconHeight GUIImageList_GetIconSize GUIImageList_GetIconSizeEx GUIImageList_GetIconWidth GUIImageList_GetImageCount GUIImageList_GetImageInfoEx GUIImageList_Remove GUIImageList_ReplaceIcon GUIImageList_SetBkColor GUIImageList_SetIconSize GUIImageList_SetImageCount GUIImageList_Swap GUIScrollBars_EnableScrollBar GUIScrollBars_GetScrollBarInfoEx GUIScrollBars_GetScrollBarRect GUIScrollBars_GetScrollBarRGState GUIScrollBars_GetScrollBarXYLineButton GUIScrollBars_GetScrollBarXYThumbBottom GUIScrollBars_GetScrollBarXYThumbTop GUIScrollBars_GetScrollInfo GUIScrollBars_GetScrollInfoEx GUIScrollBars_GetScrollInfoMax GUIScrollBars_GetScrollInfoMin GUIScrollBars_GetScrollInfoPage GUIScrollBars_GetScrollInfoPos GUIScrollBars_GetScrollInfoTrackPos GUIScrollBars_GetScrollPos GUIScrollBars_GetScrollRange GUIScrollBars_Init GUIScrollBars_ScrollWindow GUIScrollBars_SetScrollInfo GUIScrollBars_SetScrollInfoMax GUIScrollBars_SetScrollInfoMin GUIScrollBars_SetScrollInfoPage GUIScrollBars_SetScrollInfoPos GUIScrollBars_SetScrollRange GUIScrollBars_ShowScrollBar GUIToolTip_Activate GUIToolTip_AddTool GUIToolTip_AdjustRect GUIToolTip_BitsToTTF GUIToolTip_Create GUIToolTip_Deactivate GUIToolTip_DelTool GUIToolTip_Destroy GUIToolTip_EnumTools GUIToolTip_GetBubbleHeight GUIToolTip_GetBubbleSize GUIToolTip_GetBubbleWidth GUIToolTip_GetCurrentTool GUIToolTip_GetDelayTime GUIToolTip_GetMargin GUIToolTip_GetMarginEx GUIToolTip_GetMaxTipWidth GUIToolTip_GetText GUIToolTip_GetTipBkColor GUIToolTip_GetTipTextColor GUIToolTip_GetTitleBitMap GUIToolTip_GetTitleText GUIToolTip_GetToolCount GUIToolTip_GetToolInfo GUIToolTip_HitTest GUIToolTip_NewToolRect GUIToolTip_Pop GUIToolTip_PopUp GUIToolTip_SetDelayTime GUIToolTip_SetMargin GUIToolTip_SetMaxTipWidth GUIToolTip_SetTipBkColor GUIToolTip_SetTipTextColor GUIToolTip_SetTitle GUIToolTip_SetToolInfo GUIToolTip_SetWindowTheme GUIToolTip_ToolExists GUIToolTip_ToolToArray GUIToolTip_TrackActivate GUIToolTip_TrackPosition GUIToolTip_Update GUIToolTip_UpdateTipText HexToString IEAction IEAttach IEBodyReadHTML IEBodyReadText IEBodyWriteHTML IECreate IECreateEmbedded IEDocGetObj IEDocInsertHTML IEDocInsertText IEDocReadHTML IEDocWriteHTML IEErrorNotify IEFormElementCheckBoxSelect IEFormElementGetCollection IEFormElementGetObjByName IEFormElementGetValue IEFormElementOptionSelect IEFormElementRadioSelect IEFormElementSetValue IEFormGetCollection IEFormGetObjByName IEFormImageClick IEFormReset IEFormSubmit IEFrameGetCollection IEFrameGetObjByName IEGetObjById IEGetObjByName IEHeadInsertEventScript IEImgClick IEImgGetCollection IEIsFrameSet IELinkClickByIndex IELinkClickByText IELinkGetCollection IELoadWait IELoadWaitTimeout IENavigate IEPropertyGet IEPropertySet IEQuit IETableGetCollection IETableWriteToArray IETagNameAllGetCollection IETagNameGetCollection IE_Example IE_Introduction IE_VersionInfo INetExplorerCapable INetGetSource INetMail INetSmtpMail IsPressed MathCheckDiv Max MemGlobalAlloc MemGlobalFree MemGlobalLock MemGlobalSize MemGlobalUnlock MemMoveMemory MemVirtualAlloc MemVirtualAllocEx MemVirtualFree MemVirtualFreeEx Min MouseTrap NamedPipes_CallNamedPipe NamedPipes_ConnectNamedPipe NamedPipes_CreateNamedPipe NamedPipes_CreatePipe NamedPipes_DisconnectNamedPipe NamedPipes_GetNamedPipeHandleState NamedPipes_GetNamedPipeInfo NamedPipes_PeekNamedPipe NamedPipes_SetNamedPipeHandleState NamedPipes_TransactNamedPipe NamedPipes_WaitNamedPipe Net_Share_ConnectionEnum Net_Share_FileClose Net_Share_FileEnum Net_Share_FileGetInfo Net_Share_PermStr Net_Share_ResourceStr Net_Share_SessionDel Net_Share_SessionEnum Net_Share_SessionGetInfo Net_Share_ShareAdd Net_Share_ShareCheck Net_Share_ShareDel Net_Share_ShareEnum Net_Share_ShareGetInfo Net_Share_ShareSetInfo Net_Share_StatisticsGetSvr Net_Share_StatisticsGetWrk Now NowCalc NowCalcDate NowDate NowTime PathFull PathGetRelative PathMake PathSplit ProcessGetName ProcessGetPriority Radian ReplaceStringInFile RunDos ScreenCapture_Capture ScreenCapture_CaptureWnd ScreenCapture_SaveImage ScreenCapture_SetBMPFormat ScreenCapture_SetJPGQuality ScreenCapture_SetTIFColorDepth ScreenCapture_SetTIFCompression Security__AdjustTokenPrivileges Security__CreateProcessWithToken Security__DuplicateTokenEx Security__GetAccountSid Security__GetLengthSid Security__GetTokenInformation Security__ImpersonateSelf Security__IsValidSid Security__LookupAccountName Security__LookupAccountSid Security__LookupPrivilegeValue Security__OpenProcessToken Security__OpenThreadToken Security__OpenThreadTokenEx Security__SetPrivilege Security__SetTokenInformation Security__SidToStringSid Security__SidTypeStr Security__StringSidToSid SendMessage SendMessageA SetDate SetTime Singleton SoundClose SoundLength SoundOpen SoundPause SoundPlay SoundPos SoundResume SoundSeek SoundStatus SoundStop SQLite_Changes SQLite_Close SQLite_Display2DResult SQLite_Encode SQLite_ErrCode SQLite_ErrMsg SQLite_Escape SQLite_Exec SQLite_FastEncode SQLite_FastEscape SQLite_FetchData SQLite_FetchNames SQLite_GetTable SQLite_GetTable2d SQLite_LastInsertRowID SQLite_LibVersion SQLite_Open SQLite_Query SQLite_QueryFinalize SQLite_QueryReset SQLite_QuerySingleRow SQLite_SafeMode SQLite_SetTimeout SQLite_Shutdown SQLite_SQLiteExe SQLite_Startup SQLite_TotalChanges StringBetween StringExplode StringInsert StringProper StringRepeat StringTitleCase StringToHex TCPIpToName TempFile TicksToTime Timer_Diff Timer_GetIdleTime Timer_GetTimerID Timer_Init Timer_KillAllTimers Timer_KillTimer Timer_SetTimer TimeToTicks VersionCompare viClose viExecCommand viFindGpib viGpibBusReset viGTL viInteractiveControl viOpen viSetAttribute viSetTimeout WeekNumberISO WinAPI_AbortPath WinAPI_ActivateKeyboardLayout WinAPI_AddClipboardFormatListener WinAPI_AddFontMemResourceEx WinAPI_AddFontResourceEx WinAPI_AddIconOverlay WinAPI_AddIconTransparency WinAPI_AddMRUString WinAPI_AdjustBitmap WinAPI_AdjustTokenPrivileges WinAPI_AdjustWindowRectEx WinAPI_AlphaBlend WinAPI_AngleArc WinAPI_AnimateWindow WinAPI_Arc WinAPI_ArcTo WinAPI_ArrayToStruct WinAPI_AssignProcessToJobObject WinAPI_AssocGetPerceivedType WinAPI_AssocQueryString WinAPI_AttachConsole WinAPI_AttachThreadInput WinAPI_BackupRead WinAPI_BackupReadAbort WinAPI_BackupSeek WinAPI_BackupWrite WinAPI_BackupWriteAbort WinAPI_Beep WinAPI_BeginBufferedPaint WinAPI_BeginDeferWindowPos WinAPI_BeginPaint WinAPI_BeginPath WinAPI_BeginUpdateResource WinAPI_BitBlt WinAPI_BringWindowToTop WinAPI_BroadcastSystemMessage WinAPI_BrowseForFolderDlg WinAPI_BufferedPaintClear WinAPI_BufferedPaintInit WinAPI_BufferedPaintSetAlpha WinAPI_BufferedPaintUnInit WinAPI_CallNextHookEx WinAPI_CallWindowProc WinAPI_CallWindowProcW WinAPI_CascadeWindows WinAPI_ChangeWindowMessageFilterEx WinAPI_CharToOem WinAPI_ChildWindowFromPointEx WinAPI_ClientToScreen WinAPI_ClipCursor WinAPI_CloseDesktop WinAPI_CloseEnhMetaFile WinAPI_CloseFigure WinAPI_CloseHandle WinAPI_CloseThemeData WinAPI_CloseWindow WinAPI_CloseWindowStation WinAPI_CLSIDFromProgID WinAPI_CoInitialize WinAPI_ColorAdjustLuma WinAPI_ColorHLSToRGB WinAPI_ColorRGBToHLS WinAPI_CombineRgn WinAPI_CombineTransform WinAPI_CommandLineToArgv WinAPI_CommDlgExtendedError WinAPI_CommDlgExtendedErrorEx WinAPI_CompareString WinAPI_CompressBitmapBits WinAPI_CompressBuffer WinAPI_ComputeCrc32 WinAPI_ConfirmCredentials WinAPI_CopyBitmap WinAPI_CopyCursor WinAPI_CopyEnhMetaFile WinAPI_CopyFileEx WinAPI_CopyIcon WinAPI_CopyImage WinAPI_CopyRect WinAPI_CopyStruct WinAPI_CoTaskMemAlloc WinAPI_CoTaskMemFree WinAPI_CoTaskMemRealloc WinAPI_CoUninitialize WinAPI_Create32BitHBITMAP WinAPI_Create32BitHICON WinAPI_CreateANDBitmap WinAPI_CreateBitmap WinAPI_CreateBitmapIndirect WinAPI_CreateBrushIndirect WinAPI_CreateBuffer WinAPI_CreateBufferFromStruct WinAPI_CreateCaret WinAPI_CreateColorAdjustment WinAPI_CreateCompatibleBitmap WinAPI_CreateCompatibleBitmapEx WinAPI_CreateCompatibleDC WinAPI_CreateDesktop WinAPI_CreateDIB WinAPI_CreateDIBColorTable WinAPI_CreateDIBitmap WinAPI_CreateDIBSection WinAPI_CreateDirectory WinAPI_CreateDirectoryEx WinAPI_CreateEllipticRgn WinAPI_CreateEmptyIcon WinAPI_CreateEnhMetaFile WinAPI_CreateEvent WinAPI_CreateFile WinAPI_CreateFileEx WinAPI_CreateFileMapping WinAPI_CreateFont WinAPI_CreateFontEx WinAPI_CreateFontIndirect WinAPI_CreateGUID WinAPI_CreateHardLink WinAPI_CreateIcon WinAPI_CreateIconFromResourceEx WinAPI_CreateIconIndirect WinAPI_CreateJobObject WinAPI_CreateMargins WinAPI_CreateMRUList WinAPI_CreateMutex WinAPI_CreateNullRgn WinAPI_CreateNumberFormatInfo WinAPI_CreateObjectID WinAPI_CreatePen WinAPI_CreatePoint WinAPI_CreatePolygonRgn WinAPI_CreateProcess WinAPI_CreateProcessWithToken WinAPI_CreateRect WinAPI_CreateRectEx WinAPI_CreateRectRgn WinAPI_CreateRectRgnIndirect WinAPI_CreateRoundRectRgn WinAPI_CreateSemaphore WinAPI_CreateSize WinAPI_CreateSolidBitmap WinAPI_CreateSolidBrush WinAPI_CreateStreamOnHGlobal WinAPI_CreateString WinAPI_CreateSymbolicLink WinAPI_CreateTransform WinAPI_CreateWindowEx WinAPI_CreateWindowStation WinAPI_DecompressBuffer WinAPI_DecryptFile WinAPI_DeferWindowPos WinAPI_DefineDosDevice WinAPI_DefRawInputProc WinAPI_DefSubclassProc WinAPI_DefWindowProc WinAPI_DefWindowProcW WinAPI_DeleteDC WinAPI_DeleteEnhMetaFile WinAPI_DeleteFile WinAPI_DeleteObject WinAPI_DeleteObjectID WinAPI_DeleteVolumeMountPoint WinAPI_DeregisterShellHookWindow WinAPI_DestroyCaret WinAPI_DestroyCursor WinAPI_DestroyIcon WinAPI_DestroyWindow WinAPI_DeviceIoControl WinAPI_DisplayStruct WinAPI_DllGetVersion WinAPI_DllInstall WinAPI_DllUninstall WinAPI_DPtoLP WinAPI_DragAcceptFiles WinAPI_DragFinish WinAPI_DragQueryFileEx WinAPI_DragQueryPoint WinAPI_DrawAnimatedRects WinAPI_DrawBitmap WinAPI_DrawEdge WinAPI_DrawFocusRect WinAPI_DrawFrameControl WinAPI_DrawIcon WinAPI_DrawIconEx WinAPI_DrawLine WinAPI_DrawShadowText WinAPI_DrawText WinAPI_DrawThemeBackground WinAPI_DrawThemeEdge WinAPI_DrawThemeIcon WinAPI_DrawThemeParentBackground WinAPI_DrawThemeText WinAPI_DrawThemeTextEx WinAPI_DuplicateEncryptionInfoFile WinAPI_DuplicateHandle WinAPI_DuplicateTokenEx WinAPI_DwmDefWindowProc WinAPI_DwmEnableBlurBehindWindow WinAPI_DwmEnableComposition WinAPI_DwmExtendFrameIntoClientArea WinAPI_DwmGetColorizationColor WinAPI_DwmGetColorizationParameters WinAPI_DwmGetWindowAttribute WinAPI_DwmInvalidateIconicBitmaps WinAPI_DwmIsCompositionEnabled WinAPI_DwmQueryThumbnailSourceSize WinAPI_DwmRegisterThumbnail WinAPI_DwmSetColorizationParameters WinAPI_DwmSetIconicLivePreviewBitmap WinAPI_DwmSetIconicThumbnail WinAPI_DwmSetWindowAttribute WinAPI_DwmUnregisterThumbnail WinAPI_DwmUpdateThumbnailProperties WinAPI_DWordToFloat WinAPI_DWordToInt WinAPI_EjectMedia WinAPI_Ellipse WinAPI_EmptyWorkingSet WinAPI_EnableWindow WinAPI_EncryptFile WinAPI_EncryptionDisable WinAPI_EndBufferedPaint WinAPI_EndDeferWindowPos WinAPI_EndPaint WinAPI_EndPath WinAPI_EndUpdateResource WinAPI_EnumChildProcess WinAPI_EnumChildWindows WinAPI_EnumDesktops WinAPI_EnumDesktopWindows WinAPI_EnumDeviceDrivers WinAPI_EnumDisplayDevices WinAPI_EnumDisplayMonitors WinAPI_EnumDisplaySettings WinAPI_EnumDllProc WinAPI_EnumFiles WinAPI_EnumFileStreams WinAPI_EnumFontFamilies WinAPI_EnumHardLinks WinAPI_EnumMRUList WinAPI_EnumPageFiles WinAPI_EnumProcessHandles WinAPI_EnumProcessModules WinAPI_EnumProcessThreads WinAPI_EnumProcessWindows WinAPI_EnumRawInputDevices WinAPI_EnumResourceLanguages WinAPI_EnumResourceNames WinAPI_EnumResourceTypes WinAPI_EnumSystemGeoID WinAPI_EnumSystemLocales WinAPI_EnumUILanguages WinAPI_EnumWindows WinAPI_EnumWindowsPopup WinAPI_EnumWindowStations WinAPI_EnumWindowsTop WinAPI_EqualMemory WinAPI_EqualRect WinAPI_EqualRgn WinAPI_ExcludeClipRect WinAPI_ExpandEnvironmentStrings WinAPI_ExtCreatePen WinAPI_ExtCreateRegion WinAPI_ExtFloodFill WinAPI_ExtractIcon WinAPI_ExtractIconEx WinAPI_ExtSelectClipRgn WinAPI_FatalAppExit WinAPI_FatalExit WinAPI_FileEncryptionStatus WinAPI_FileExists WinAPI_FileIconInit WinAPI_FileInUse WinAPI_FillMemory WinAPI_FillPath WinAPI_FillRect WinAPI_FillRgn WinAPI_FindClose WinAPI_FindCloseChangeNotification WinAPI_FindExecutable WinAPI_FindFirstChangeNotification WinAPI_FindFirstFile WinAPI_FindFirstFileName WinAPI_FindFirstStream WinAPI_FindNextChangeNotification WinAPI_FindNextFile WinAPI_FindNextFileName WinAPI_FindNextStream WinAPI_FindResource WinAPI_FindResourceEx WinAPI_FindTextDlg WinAPI_FindWindow WinAPI_FlashWindow WinAPI_FlashWindowEx WinAPI_FlattenPath WinAPI_FloatToDWord WinAPI_FloatToInt WinAPI_FlushFileBuffers WinAPI_FlushFRBuffer WinAPI_FlushViewOfFile WinAPI_FormatDriveDlg WinAPI_FormatMessage WinAPI_FrameRect WinAPI_FrameRgn WinAPI_FreeLibrary WinAPI_FreeMemory WinAPI_FreeMRUList WinAPI_FreeResource WinAPI_GdiComment WinAPI_GetActiveWindow WinAPI_GetAllUsersProfileDirectory WinAPI_GetAncestor WinAPI_GetApplicationRestartSettings WinAPI_GetArcDirection WinAPI_GetAsyncKeyState WinAPI_GetBinaryType WinAPI_GetBitmapBits WinAPI_GetBitmapDimension WinAPI_GetBitmapDimensionEx WinAPI_GetBkColor WinAPI_GetBkMode WinAPI_GetBoundsRect WinAPI_GetBrushOrg WinAPI_GetBufferedPaintBits WinAPI_GetBufferedPaintDC WinAPI_GetBufferedPaintTargetDC WinAPI_GetBufferedPaintTargetRect WinAPI_GetBValue WinAPI_GetCaretBlinkTime WinAPI_GetCaretPos WinAPI_GetCDType WinAPI_GetClassInfoEx WinAPI_GetClassLongEx WinAPI_GetClassName WinAPI_GetClientHeight WinAPI_GetClientRect WinAPI_GetClientWidth WinAPI_GetClipboardSequenceNumber WinAPI_GetClipBox WinAPI_GetClipCursor WinAPI_GetClipRgn WinAPI_GetColorAdjustment WinAPI_GetCompressedFileSize WinAPI_GetCompression WinAPI_GetConnectedDlg WinAPI_GetCurrentDirectory WinAPI_GetCurrentHwProfile WinAPI_GetCurrentObject WinAPI_GetCurrentPosition WinAPI_GetCurrentProcess WinAPI_GetCurrentProcessExplicitAppUserModelID WinAPI_GetCurrentProcessID WinAPI_GetCurrentThemeName WinAPI_GetCurrentThread WinAPI_GetCurrentThreadId WinAPI_GetCursor WinAPI_GetCursorInfo WinAPI_GetDateFormat WinAPI_GetDC WinAPI_GetDCEx WinAPI_GetDefaultPrinter WinAPI_GetDefaultUserProfileDirectory WinAPI_GetDesktopWindow WinAPI_GetDeviceCaps WinAPI_GetDeviceDriverBaseName WinAPI_GetDeviceDriverFileName WinAPI_GetDeviceGammaRamp WinAPI_GetDIBColorTable WinAPI_GetDIBits WinAPI_GetDiskFreeSpaceEx WinAPI_GetDlgCtrlID WinAPI_GetDlgItem WinAPI_GetDllDirectory WinAPI_GetDriveBusType WinAPI_GetDriveGeometryEx WinAPI_GetDriveNumber WinAPI_GetDriveType WinAPI_GetDurationFormat WinAPI_GetEffectiveClientRect WinAPI_GetEnhMetaFile WinAPI_GetEnhMetaFileBits WinAPI_GetEnhMetaFileDescription WinAPI_GetEnhMetaFileDimension WinAPI_GetEnhMetaFileHeader WinAPI_GetErrorMessage WinAPI_GetErrorMode WinAPI_GetExitCodeProcess WinAPI_GetExtended WinAPI_GetFileAttributes WinAPI_GetFileID WinAPI_GetFileInformationByHandle WinAPI_GetFileInformationByHandleEx WinAPI_GetFilePointerEx WinAPI_GetFileSizeEx WinAPI_GetFileSizeOnDisk WinAPI_GetFileTitle WinAPI_GetFileType WinAPI_GetFileVersionInfo WinAPI_GetFinalPathNameByHandle WinAPI_GetFinalPathNameByHandleEx WinAPI_GetFocus WinAPI_GetFontMemoryResourceInfo WinAPI_GetFontName WinAPI_GetFontResourceInfo WinAPI_GetForegroundWindow WinAPI_GetFRBuffer WinAPI_GetFullPathName WinAPI_GetGeoInfo WinAPI_GetGlyphOutline WinAPI_GetGraphicsMode WinAPI_GetGuiResources WinAPI_GetGUIThreadInfo WinAPI_GetGValue WinAPI_GetHandleInformation WinAPI_GetHGlobalFromStream WinAPI_GetIconDimension WinAPI_GetIconInfo WinAPI_GetIconInfoEx WinAPI_GetIdleTime WinAPI_GetKeyboardLayout WinAPI_GetKeyboardLayoutList WinAPI_GetKeyboardState WinAPI_GetKeyboardType WinAPI_GetKeyNameText WinAPI_GetKeyState WinAPI_GetLastActivePopup WinAPI_GetLastError WinAPI_GetLastErrorMessage WinAPI_GetLayeredWindowAttributes WinAPI_GetLocaleInfo WinAPI_GetLogicalDrives WinAPI_GetMapMode WinAPI_GetMemorySize WinAPI_GetMessageExtraInfo WinAPI_GetModuleFileNameEx WinAPI_GetModuleHandle WinAPI_GetModuleHandleEx WinAPI_GetModuleInformation WinAPI_GetMonitorInfo WinAPI_GetMousePos WinAPI_GetMousePosX WinAPI_GetMousePosY WinAPI_GetMUILanguage WinAPI_GetNumberFormat WinAPI_GetObject WinAPI_GetObjectID WinAPI_GetObjectInfoByHandle WinAPI_GetObjectNameByHandle WinAPI_GetObjectType WinAPI_GetOpenFileName WinAPI_GetOutlineTextMetrics WinAPI_GetOverlappedResult WinAPI_GetParent WinAPI_GetParentProcess WinAPI_GetPerformanceInfo WinAPI_GetPEType WinAPI_GetPhysicallyInstalledSystemMemory WinAPI_GetPixel WinAPI_GetPolyFillMode WinAPI_GetPosFromRect WinAPI_GetPriorityClass WinAPI_GetProcAddress WinAPI_GetProcessAffinityMask WinAPI_GetProcessCommandLine WinAPI_GetProcessFileName WinAPI_GetProcessHandleCount WinAPI_GetProcessID WinAPI_GetProcessIoCounters WinAPI_GetProcessMemoryInfo WinAPI_GetProcessName WinAPI_GetProcessShutdownParameters WinAPI_GetProcessTimes WinAPI_GetProcessUser WinAPI_GetProcessWindowStation WinAPI_GetProcessWorkingDirectory WinAPI_GetProfilesDirectory WinAPI_GetPwrCapabilities WinAPI_GetRawInputBuffer WinAPI_GetRawInputBufferLength WinAPI_GetRawInputData WinAPI_GetRawInputDeviceInfo WinAPI_GetRegionData WinAPI_GetRegisteredRawInputDevices WinAPI_GetRegKeyNameByHandle WinAPI_GetRgnBox WinAPI_GetROP2 WinAPI_GetRValue WinAPI_GetSaveFileName WinAPI_GetShellWindow WinAPI_GetStartupInfo WinAPI_GetStdHandle WinAPI_GetStockObject WinAPI_GetStretchBltMode WinAPI_GetString WinAPI_GetSysColor WinAPI_GetSysColorBrush WinAPI_GetSystemDefaultLangID WinAPI_GetSystemDefaultLCID WinAPI_GetSystemDefaultUILanguage WinAPI_GetSystemDEPPolicy WinAPI_GetSystemInfo WinAPI_GetSystemMetrics WinAPI_GetSystemPowerStatus WinAPI_GetSystemTimes WinAPI_GetSystemWow64Directory WinAPI_GetTabbedTextExtent WinAPI_GetTempFileName WinAPI_GetTextAlign WinAPI_GetTextCharacterExtra WinAPI_GetTextColor WinAPI_GetTextExtentPoint32 WinAPI_GetTextFace WinAPI_GetTextMetrics WinAPI_GetThemeAppProperties WinAPI_GetThemeBackgroundContentRect WinAPI_GetThemeBackgroundExtent WinAPI_GetThemeBackgroundRegion WinAPI_GetThemeBitmap WinAPI_GetThemeBool WinAPI_GetThemeColor WinAPI_GetThemeDocumentationProperty WinAPI_GetThemeEnumValue WinAPI_GetThemeFilename WinAPI_GetThemeFont WinAPI_GetThemeInt WinAPI_GetThemeMargins WinAPI_GetThemeMetric WinAPI_GetThemePartSize WinAPI_GetThemePosition WinAPI_GetThemePropertyOrigin WinAPI_GetThemeRect WinAPI_GetThemeString WinAPI_GetThemeSysBool WinAPI_GetThemeSysColor WinAPI_GetThemeSysColorBrush WinAPI_GetThemeSysFont WinAPI_GetThemeSysInt WinAPI_GetThemeSysSize WinAPI_GetThemeSysString WinAPI_GetThemeTextExtent WinAPI_GetThemeTextMetrics WinAPI_GetThemeTransitionDuration WinAPI_GetThreadDesktop WinAPI_GetThreadErrorMode WinAPI_GetThreadLocale WinAPI_GetThreadUILanguage WinAPI_GetTickCount WinAPI_GetTickCount64 WinAPI_GetTimeFormat WinAPI_GetTopWindow WinAPI_GetUDFColorMode WinAPI_GetUpdateRect WinAPI_GetUpdateRgn WinAPI_GetUserDefaultLangID WinAPI_GetUserDefaultLCID WinAPI_GetUserDefaultUILanguage WinAPI_GetUserGeoID WinAPI_GetUserObjectInformation WinAPI_GetVersion WinAPI_GetVersionEx WinAPI_GetVolumeInformation WinAPI_GetVolumeInformationByHandle WinAPI_GetVolumeNameForVolumeMountPoint WinAPI_GetWindow WinAPI_GetWindowDC WinAPI_GetWindowDisplayAffinity WinAPI_GetWindowExt WinAPI_GetWindowFileName WinAPI_GetWindowHeight WinAPI_GetWindowInfo WinAPI_GetWindowLong WinAPI_GetWindowOrg WinAPI_GetWindowPlacement WinAPI_GetWindowRect WinAPI_GetWindowRgn WinAPI_GetWindowRgnBox WinAPI_GetWindowSubclass WinAPI_GetWindowText WinAPI_GetWindowTheme WinAPI_GetWindowThreadProcessId WinAPI_GetWindowWidth WinAPI_GetWorkArea WinAPI_GetWorldTransform WinAPI_GetXYFromPoint WinAPI_GlobalMemoryStatus WinAPI_GradientFill WinAPI_GUIDFromString WinAPI_GUIDFromStringEx WinAPI_HashData WinAPI_HashString WinAPI_HiByte WinAPI_HideCaret WinAPI_HiDWord WinAPI_HiWord WinAPI_InflateRect WinAPI_InitMUILanguage WinAPI_InProcess WinAPI_IntersectClipRect WinAPI_IntersectRect WinAPI_IntToDWord WinAPI_IntToFloat WinAPI_InvalidateRect WinAPI_InvalidateRgn WinAPI_InvertANDBitmap WinAPI_InvertColor WinAPI_InvertRect WinAPI_InvertRgn WinAPI_IOCTL WinAPI_IsAlphaBitmap WinAPI_IsBadCodePtr WinAPI_IsBadReadPtr WinAPI_IsBadStringPtr WinAPI_IsBadWritePtr WinAPI_IsChild WinAPI_IsClassName WinAPI_IsDoorOpen WinAPI_IsElevated WinAPI_IsHungAppWindow WinAPI_IsIconic WinAPI_IsInternetConnected WinAPI_IsLoadKBLayout WinAPI_IsMemory WinAPI_IsNameInExpression WinAPI_IsNetworkAlive WinAPI_IsPathShared WinAPI_IsProcessInJob WinAPI_IsProcessorFeaturePresent WinAPI_IsRectEmpty WinAPI_IsThemeActive WinAPI_IsThemeBackgroundPartiallyTransparent WinAPI_IsThemePartDefined WinAPI_IsValidLocale WinAPI_IsWindow WinAPI_IsWindowEnabled WinAPI_IsWindowUnicode WinAPI_IsWindowVisible WinAPI_IsWow64Process WinAPI_IsWritable WinAPI_IsZoomed WinAPI_Keybd_Event WinAPI_KillTimer WinAPI_LineDDA WinAPI_LineTo WinAPI_LoadBitmap WinAPI_LoadCursor WinAPI_LoadCursorFromFile WinAPI_LoadIcon WinAPI_LoadIconMetric WinAPI_LoadIconWithScaleDown WinAPI_LoadImage WinAPI_LoadIndirectString WinAPI_LoadKeyboardLayout WinAPI_LoadLibrary WinAPI_LoadLibraryEx WinAPI_LoadMedia WinAPI_LoadResource WinAPI_LoadShell32Icon WinAPI_LoadString WinAPI_LoadStringEx WinAPI_LoByte WinAPI_LocalFree WinAPI_LockDevice WinAPI_LockFile WinAPI_LockResource WinAPI_LockWindowUpdate WinAPI_LockWorkStation WinAPI_LoDWord WinAPI_LongMid WinAPI_LookupIconIdFromDirectoryEx WinAPI_LoWord WinAPI_LPtoDP WinAPI_MAKELANGID WinAPI_MAKELCID WinAPI_MakeLong WinAPI_MakeQWord WinAPI_MakeWord WinAPI_MapViewOfFile WinAPI_MapVirtualKey WinAPI_MaskBlt WinAPI_MessageBeep WinAPI_MessageBoxCheck WinAPI_MessageBoxIndirect WinAPI_MirrorIcon WinAPI_ModifyWorldTransform WinAPI_MonitorFromPoint WinAPI_MonitorFromRect WinAPI_MonitorFromWindow WinAPI_Mouse_Event WinAPI_MoveFileEx WinAPI_MoveMemory WinAPI_MoveTo WinAPI_MoveToEx WinAPI_MoveWindow WinAPI_MsgBox WinAPI_MulDiv WinAPI_MultiByteToWideChar WinAPI_MultiByteToWideCharEx WinAPI_NtStatusToDosError WinAPI_OemToChar WinAPI_OffsetClipRgn WinAPI_OffsetPoints WinAPI_OffsetRect WinAPI_OffsetRgn WinAPI_OffsetWindowOrg WinAPI_OpenDesktop WinAPI_OpenFileById WinAPI_OpenFileDlg WinAPI_OpenFileMapping WinAPI_OpenIcon WinAPI_OpenInputDesktop WinAPI_OpenJobObject WinAPI_OpenMutex WinAPI_OpenProcess WinAPI_OpenProcessToken WinAPI_OpenSemaphore WinAPI_OpenThemeData WinAPI_OpenWindowStation WinAPI_PageSetupDlg WinAPI_PaintDesktop WinAPI_PaintRgn WinAPI_ParseURL WinAPI_ParseUserName WinAPI_PatBlt WinAPI_PathAddBackslash WinAPI_PathAddExtension WinAPI_PathAppend WinAPI_PathBuildRoot WinAPI_PathCanonicalize WinAPI_PathCommonPrefix WinAPI_PathCompactPath WinAPI_PathCompactPathEx WinAPI_PathCreateFromUrl WinAPI_PathFindExtension WinAPI_PathFindFileName WinAPI_PathFindNextComponent WinAPI_PathFindOnPath WinAPI_PathGetArgs WinAPI_PathGetCharType WinAPI_PathGetDriveNumber WinAPI_PathIsContentType WinAPI_PathIsDirectory WinAPI_PathIsDirectoryEmpty WinAPI_PathIsExe WinAPI_PathIsFileSpec WinAPI_PathIsLFNFileSpec WinAPI_PathIsRelative WinAPI_PathIsRoot WinAPI_PathIsSameRoot WinAPI_PathIsSystemFolder WinAPI_PathIsUNC WinAPI_PathIsUNCServer WinAPI_PathIsUNCServerShare WinAPI_PathMakeSystemFolder WinAPI_PathMatchSpec WinAPI_PathParseIconLocation WinAPI_PathRelativePathTo WinAPI_PathRemoveArgs WinAPI_PathRemoveBackslash WinAPI_PathRemoveExtension WinAPI_PathRemoveFileSpec WinAPI_PathRenameExtension WinAPI_PathSearchAndQualify WinAPI_PathSkipRoot WinAPI_PathStripPath WinAPI_PathStripToRoot WinAPI_PathToRegion WinAPI_PathUndecorate WinAPI_PathUnExpandEnvStrings WinAPI_PathUnmakeSystemFolder WinAPI_PathUnquoteSpaces WinAPI_PathYetAnotherMakeUniqueName WinAPI_PickIconDlg WinAPI_PlayEnhMetaFile WinAPI_PlaySound WinAPI_PlgBlt WinAPI_PointFromRect WinAPI_PolyBezier WinAPI_PolyBezierTo WinAPI_PolyDraw WinAPI_Polygon WinAPI_PostMessage WinAPI_PrimaryLangId WinAPI_PrintDlg WinAPI_PrintDlgEx WinAPI_PrintWindow WinAPI_ProgIDFromCLSID WinAPI_PtInRect WinAPI_PtInRectEx WinAPI_PtInRegion WinAPI_PtVisible WinAPI_QueryDosDevice WinAPI_QueryInformationJobObject WinAPI_QueryPerformanceCounter WinAPI_QueryPerformanceFrequency WinAPI_RadialGradientFill WinAPI_ReadDirectoryChanges WinAPI_ReadFile WinAPI_ReadProcessMemory WinAPI_Rectangle WinAPI_RectInRegion WinAPI_RectIsEmpty WinAPI_RectVisible WinAPI_RedrawWindow WinAPI_RegCloseKey WinAPI_RegConnectRegistry WinAPI_RegCopyTree WinAPI_RegCopyTreeEx WinAPI_RegCreateKey WinAPI_RegDeleteEmptyKey WinAPI_RegDeleteKey WinAPI_RegDeleteKeyValue WinAPI_RegDeleteTree WinAPI_RegDeleteTreeEx WinAPI_RegDeleteValue WinAPI_RegDisableReflectionKey WinAPI_RegDuplicateHKey WinAPI_RegEnableReflectionKey WinAPI_RegEnumKey WinAPI_RegEnumValue WinAPI_RegFlushKey WinAPI_RegisterApplicationRestart WinAPI_RegisterClass WinAPI_RegisterClassEx WinAPI_RegisterHotKey WinAPI_RegisterPowerSettingNotification WinAPI_RegisterRawInputDevices WinAPI_RegisterShellHookWindow WinAPI_RegisterWindowMessage WinAPI_RegLoadMUIString WinAPI_RegNotifyChangeKeyValue WinAPI_RegOpenKey WinAPI_RegQueryInfoKey WinAPI_RegQueryLastWriteTime WinAPI_RegQueryMultipleValues WinAPI_RegQueryReflectionKey WinAPI_RegQueryValue WinAPI_RegRestoreKey WinAPI_RegSaveKey WinAPI_RegSetValue WinAPI_ReleaseCapture WinAPI_ReleaseDC WinAPI_ReleaseMutex WinAPI_ReleaseSemaphore WinAPI_ReleaseStream WinAPI_RemoveClipboardFormatListener WinAPI_RemoveDirectory WinAPI_RemoveFontMemResourceEx WinAPI_RemoveFontResourceEx WinAPI_RemoveWindowSubclass WinAPI_ReOpenFile WinAPI_ReplaceFile WinAPI_ReplaceTextDlg WinAPI_ResetEvent WinAPI_RestartDlg WinAPI_RestoreDC WinAPI_RGB WinAPI_RotatePoints WinAPI_RoundRect WinAPI_SaveDC WinAPI_SaveFileDlg WinAPI_SaveHBITMAPToFile WinAPI_SaveHICONToFile WinAPI_ScaleWindowExt WinAPI_ScreenToClient WinAPI_SearchPath WinAPI_SelectClipPath WinAPI_SelectClipRgn WinAPI_SelectObject WinAPI_SendMessageTimeout WinAPI_SetActiveWindow WinAPI_SetArcDirection WinAPI_SetBitmapBits WinAPI_SetBitmapDimensionEx WinAPI_SetBkColor WinAPI_SetBkMode WinAPI_SetBoundsRect WinAPI_SetBrushOrg WinAPI_SetCapture WinAPI_SetCaretBlinkTime WinAPI_SetCaretPos WinAPI_SetClassLongEx WinAPI_SetColorAdjustment WinAPI_SetCompression WinAPI_SetCurrentDirectory WinAPI_SetCurrentProcessExplicitAppUserModelID WinAPI_SetCursor WinAPI_SetDCBrushColor WinAPI_SetDCPenColor WinAPI_SetDefaultPrinter WinAPI_SetDeviceGammaRamp WinAPI_SetDIBColorTable WinAPI_SetDIBits WinAPI_SetDIBitsToDevice WinAPI_SetDllDirectory WinAPI_SetEndOfFile WinAPI_SetEnhMetaFileBits WinAPI_SetErrorMode WinAPI_SetEvent WinAPI_SetFileAttributes WinAPI_SetFileInformationByHandleEx WinAPI_SetFilePointer WinAPI_SetFilePointerEx WinAPI_SetFileShortName WinAPI_SetFileValidData WinAPI_SetFocus WinAPI_SetFont WinAPI_SetForegroundWindow WinAPI_SetFRBuffer WinAPI_SetGraphicsMode WinAPI_SetHandleInformation WinAPI_SetInformationJobObject WinAPI_SetKeyboardLayout WinAPI_SetKeyboardState WinAPI_SetLastError WinAPI_SetLayeredWindowAttributes WinAPI_SetLocaleInfo WinAPI_SetMapMode WinAPI_SetMessageExtraInfo WinAPI_SetParent WinAPI_SetPixel WinAPI_SetPolyFillMode WinAPI_SetPriorityClass WinAPI_SetProcessAffinityMask WinAPI_SetProcessShutdownParameters WinAPI_SetProcessWindowStation WinAPI_SetRectRgn WinAPI_SetROP2 WinAPI_SetSearchPathMode WinAPI_SetStretchBltMode WinAPI_SetSysColors WinAPI_SetSystemCursor WinAPI_SetTextAlign WinAPI_SetTextCharacterExtra WinAPI_SetTextColor WinAPI_SetTextJustification WinAPI_SetThemeAppProperties WinAPI_SetThreadDesktop WinAPI_SetThreadErrorMode WinAPI_SetThreadExecutionState WinAPI_SetThreadLocale WinAPI_SetThreadUILanguage WinAPI_SetTimer WinAPI_SetUDFColorMode WinAPI_SetUserGeoID WinAPI_SetUserObjectInformation WinAPI_SetVolumeMountPoint WinAPI_SetWindowDisplayAffinity WinAPI_SetWindowExt WinAPI_SetWindowLong WinAPI_SetWindowOrg WinAPI_SetWindowPlacement WinAPI_SetWindowPos WinAPI_SetWindowRgn WinAPI_SetWindowsHookEx WinAPI_SetWindowSubclass WinAPI_SetWindowText WinAPI_SetWindowTheme WinAPI_SetWinEventHook WinAPI_SetWorldTransform WinAPI_SfcIsFileProtected WinAPI_SfcIsKeyProtected WinAPI_ShellAboutDlg WinAPI_ShellAddToRecentDocs WinAPI_ShellChangeNotify WinAPI_ShellChangeNotifyDeregister WinAPI_ShellChangeNotifyRegister WinAPI_ShellCreateDirectory WinAPI_ShellEmptyRecycleBin WinAPI_ShellExecute WinAPI_ShellExecuteEx WinAPI_ShellExtractAssociatedIcon WinAPI_ShellExtractIcon WinAPI_ShellFileOperation WinAPI_ShellFlushSFCache WinAPI_ShellGetFileInfo WinAPI_ShellGetIconOverlayIndex WinAPI_ShellGetImageList WinAPI_ShellGetKnownFolderIDList WinAPI_ShellGetKnownFolderPath WinAPI_ShellGetLocalizedName WinAPI_ShellGetPathFromIDList WinAPI_ShellGetSetFolderCustomSettings WinAPI_ShellGetSettings WinAPI_ShellGetSpecialFolderLocation WinAPI_ShellGetSpecialFolderPath WinAPI_ShellGetStockIconInfo WinAPI_ShellILCreateFromPath WinAPI_ShellNotifyIcon WinAPI_ShellNotifyIconGetRect WinAPI_ShellObjectProperties WinAPI_ShellOpenFolderAndSelectItems WinAPI_ShellOpenWithDlg WinAPI_ShellQueryRecycleBin WinAPI_ShellQueryUserNotificationState WinAPI_ShellRemoveLocalizedName WinAPI_ShellRestricted WinAPI_ShellSetKnownFolderPath WinAPI_ShellSetLocalizedName WinAPI_ShellSetSettings WinAPI_ShellStartNetConnectionDlg WinAPI_ShellUpdateImage WinAPI_ShellUserAuthenticationDlg WinAPI_ShellUserAuthenticationDlgEx WinAPI_ShortToWord WinAPI_ShowCaret WinAPI_ShowCursor WinAPI_ShowError WinAPI_ShowLastError WinAPI_ShowMsg WinAPI_ShowOwnedPopups WinAPI_ShowWindow WinAPI_ShutdownBlockReasonCreate WinAPI_ShutdownBlockReasonDestroy WinAPI_ShutdownBlockReasonQuery WinAPI_SizeOfResource WinAPI_StretchBlt WinAPI_StretchDIBits WinAPI_StrFormatByteSize WinAPI_StrFormatByteSizeEx WinAPI_StrFormatKBSize WinAPI_StrFromTimeInterval WinAPI_StringFromGUID WinAPI_StringLenA WinAPI_StringLenW WinAPI_StrLen WinAPI_StrokeAndFillPath WinAPI_StrokePath WinAPI_StructToArray WinAPI_SubLangId WinAPI_SubtractRect WinAPI_SwapDWord WinAPI_SwapQWord WinAPI_SwapWord WinAPI_SwitchColor WinAPI_SwitchDesktop WinAPI_SwitchToThisWindow WinAPI_SystemParametersInfo WinAPI_TabbedTextOut WinAPI_TerminateJobObject WinAPI_TerminateProcess WinAPI_TextOut WinAPI_TileWindows WinAPI_TrackMouseEvent WinAPI_TransparentBlt WinAPI_TwipsPerPixelX WinAPI_TwipsPerPixelY WinAPI_UnhookWindowsHookEx WinAPI_UnhookWinEvent WinAPI_UnionRect WinAPI_UnionStruct WinAPI_UniqueHardwareID WinAPI_UnloadKeyboardLayout WinAPI_UnlockFile WinAPI_UnmapViewOfFile WinAPI_UnregisterApplicationRestart WinAPI_UnregisterClass WinAPI_UnregisterHotKey WinAPI_UnregisterPowerSettingNotification WinAPI_UpdateLayeredWindow WinAPI_UpdateLayeredWindowEx WinAPI_UpdateLayeredWindowIndirect WinAPI_UpdateResource WinAPI_UpdateWindow WinAPI_UrlApplyScheme WinAPI_UrlCanonicalize WinAPI_UrlCombine WinAPI_UrlCompare WinAPI_UrlCreateFromPath WinAPI_UrlFixup WinAPI_UrlGetPart WinAPI_UrlHash WinAPI_UrlIs WinAPI_UserHandleGrantAccess WinAPI_ValidateRect WinAPI_ValidateRgn WinAPI_VerQueryRoot WinAPI_VerQueryValue WinAPI_VerQueryValueEx WinAPI_WaitForInputIdle WinAPI_WaitForMultipleObjects WinAPI_WaitForSingleObject WinAPI_WideCharToMultiByte WinAPI_WidenPath WinAPI_WindowFromDC WinAPI_WindowFromPoint WinAPI_WordToShort WinAPI_Wow64EnableWow64FsRedirection WinAPI_WriteConsole WinAPI_WriteFile WinAPI_WriteProcessMemory WinAPI_ZeroMemory WinNet_AddConnection WinNet_AddConnection2 WinNet_AddConnection3 WinNet_CancelConnection WinNet_CancelConnection2 WinNet_CloseEnum WinNet_ConnectionDialog WinNet_ConnectionDialog1 WinNet_DisconnectDialog WinNet_DisconnectDialog1 WinNet_EnumResource WinNet_GetConnection WinNet_GetConnectionPerformance WinNet_GetLastError WinNet_GetNetworkInformation WinNet_GetProviderName WinNet_GetResourceInformation WinNet_GetResourceParent WinNet_GetUniversalName WinNet_GetUser WinNet_OpenEnum WinNet_RestoreConnection WinNet_UseConnection Word_Create Word_DocAdd Word_DocAttach Word_DocClose Word_DocExport Word_DocFind Word_DocFindReplace Word_DocGet Word_DocLinkAdd Word_DocLinkGet Word_DocOpen Word_DocPictureAdd Word_DocPrint Word_DocRangeSet Word_DocSave Word_DocSaveAs Word_DocTableRead Word_DocTableWrite Word_Quit",e={ +variants:[a.COMMENT(";","$",{relevance:0}),a.COMMENT("#cs","#ce"),a.COMMENT("#comments-start","#comments-end")]},f={className:"variable",begin:"\\$[A-z0-9_]+"},g={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},h={variants:[a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]},i={className:"preprocessor",begin:"#",end:"$",keywords:"include include-once NoTrayIcon OnAutoItStartRegister RequireAdmin pragma Au3Stripper_Ignore_Funcs Au3Stripper_Ignore_Variables Au3Stripper_Off Au3Stripper_On Au3Stripper_Parameters AutoIt3Wrapper_Add_Constants AutoIt3Wrapper_Au3Check_Parameters AutoIt3Wrapper_Au3Check_Stop_OnWarning AutoIt3Wrapper_Aut2Exe AutoIt3Wrapper_AutoIt3 AutoIt3Wrapper_AutoIt3Dir AutoIt3Wrapper_Change2CUI AutoIt3Wrapper_Compile_Both AutoIt3Wrapper_Compression AutoIt3Wrapper_EndIf AutoIt3Wrapper_Icon AutoIt3Wrapper_If_Compile AutoIt3Wrapper_If_Run AutoIt3Wrapper_Jump_To_First_Error AutoIt3Wrapper_OutFile AutoIt3Wrapper_OutFile_Type AutoIt3Wrapper_OutFile_X64 AutoIt3Wrapper_PlugIn_Funcs AutoIt3Wrapper_Res_Comment Autoit3Wrapper_Res_Compatibility AutoIt3Wrapper_Res_Description AutoIt3Wrapper_Res_Field AutoIt3Wrapper_Res_File_Add AutoIt3Wrapper_Res_FileVersion AutoIt3Wrapper_Res_FileVersion_AutoIncrement AutoIt3Wrapper_Res_Icon_Add AutoIt3Wrapper_Res_Language AutoIt3Wrapper_Res_LegalCopyright AutoIt3Wrapper_Res_ProductVersion AutoIt3Wrapper_Res_requestedExecutionLevel AutoIt3Wrapper_Res_SaveSource AutoIt3Wrapper_Run_After AutoIt3Wrapper_Run_Au3Check AutoIt3Wrapper_Run_Au3Stripper AutoIt3Wrapper_Run_Before AutoIt3Wrapper_Run_Debug_Mode AutoIt3Wrapper_Run_SciTE_Minimized AutoIt3Wrapper_Run_SciTE_OutputPane_Minimized AutoIt3Wrapper_Run_Tidy AutoIt3Wrapper_ShowProgress AutoIt3Wrapper_Testing AutoIt3Wrapper_Tidy_Stop_OnError AutoIt3Wrapper_UPX_Parameters AutoIt3Wrapper_UseUPX AutoIt3Wrapper_UseX64 AutoIt3Wrapper_Version AutoIt3Wrapper_Versioning AutoIt3Wrapper_Versioning_Parameters Tidy_Off Tidy_On Tidy_Parameters EndRegion Region",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[g,{className:"string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},g,e]},j={className:"constant",begin:"@[A-z0-9_]+"},k={className:"function",beginKeywords:"Func",end:"$",excludeEnd:!0,illegal:"\\$|\\[|%",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[f,g,h]}]};return{case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:b,built_in:d,literal:c},contains:[e,f,g,h,i,j,k]}}),a.registerLanguage("avrasm",function(a){return{case_insensitive:!0,lexemes:"\\.?"+a.IDENT_RE,keywords:{keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",preprocessor:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set"},contains:[a.C_BLOCK_COMMENT_MODE,a.COMMENT(";","$",{relevance:0}),a.C_NUMBER_MODE,a.BINARY_NUMBER_MODE,{className:"number",begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},a.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"label",begin:"^[A-Za-z0-9_.$]+:"},{className:"preprocessor",begin:"#",end:"$"},{className:"localvars",begin:"@[0-9]+"}]}}),a.registerLanguage("axapta",function(a){return{keywords:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{className:"preprocessor",begin:"#",end:"$"},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:":",contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]}]}}),a.registerLanguage("bash",function(a){var b={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},c={className:"string",begin:/"/,end:/"/,contains:[a.BACKSLASH_ESCAPE,b,{className:"variable",begin:/\$\(/,end:/\)/,contains:[a.BACKSLASH_ESCAPE]}]},d={className:"string",begin:/'/,end:/'/};return{aliases:["sh","zsh"],lexemes:/-?[a-z\.]+/,keywords:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[{className:"shebang",begin:/^#![^\n]+sh\s*$/,relevance:10},{className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[a.inherit(a.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},a.HASH_COMMENT_MODE,a.NUMBER_MODE,c,d,b]}}),a.registerLanguage("brainfuck",function(a){var b={className:"literal",begin:"[\\+\\-]",relevance:0};return{aliases:["bf"],contains:[a.COMMENT("[^\\[\\]\\.,\\+\\-<> \r\n]","[\\[\\]\\.,\\+\\-<> \r\n]",{returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/\+\+|\-\-/,returnBegin:!0,contains:[b]},b]}}),a.registerLanguage("cal",function(a){var b="div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to until while with var",c="false true",d=[a.C_LINE_COMMENT_MODE,a.COMMENT(/\{/,/\}/,{relevance:0}),a.COMMENT(/\(\*/,/\*\)/,{relevance:10})],e={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},f={className:"string",begin:/(#\d+)+/},g={className:"date",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},h={className:"variable",begin:'"',end:'"'},i={className:"function",beginKeywords:"procedure",end:/[:;]/,keywords:"procedure|10",contains:[a.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:b,contains:[e,f]}].concat(d)},j={className:"class",begin:"OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)",returnBegin:!0,contains:[a.TITLE_MODE,i]};return{case_insensitive:!0,keywords:{keyword:b,literal:c},illegal:/\/\*/,contains:[e,f,g,h,a.NUMBER_MODE,j,i]}}),a.registerLanguage("capnproto",function(a){return{aliases:["capnp"],keywords:{keyword:"struct enum interface union group import using const annotation extends in of on as with from fixed",built_in:"Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 Text Data AnyPointer AnyStruct Capability List",literal:"true false"},contains:[a.QUOTE_STRING_MODE,a.NUMBER_MODE,a.HASH_COMMENT_MODE,{className:"shebang",begin:/@0x[\w\d]{16};/,illegal:/\n/},{className:"number",begin:/@\d+\b/},{className:"class",beginKeywords:"struct enum",end:/\{/,illegal:/\n/,contains:[a.inherit(a.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"class",beginKeywords:"interface",end:/\{/,illegal:/\n/,contains:[a.inherit(a.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]}]}}),a.registerLanguage("ceylon",function(a){var b="assembly module package import alias class interface object given value assign void function new of extends satisfies abstracts in out return break continue throw assert dynamic if else switch case for while try catch finally then let this outer super is exists nonempty",c="shared abstract formal default actual variable late native deprecatedfinal sealed annotation suppressWarnings small",d="doc by license see throws tagged",e=c+" "+d,f={className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:b,relevance:10},g=[{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[f]},{className:"string",begin:"'",end:"'"},{className:"number",begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?",relevance:0}];return f.contains=g,{keywords:{keyword:b,annotation:e},illegal:"\\$[^01]|#[^0-9a-fA-F]",contains:[a.C_LINE_COMMENT_MODE,a.COMMENT("/\\*","\\*/",{contains:["self"]}),{className:"annotation",begin:'@[a-z]\\w*(?:\\:"[^"]*")?'}].concat(g)}}),a.registerLanguage("clojure",function(a){var b={built_in:"def defonce cond apply if-not if-let if not not= = < > <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"},c="a-zA-Z_\\-!.?+*=<>&#'",d="["+c+"]["+c+"0-9/;:]*",e="[-+]?\\d+(\\.\\d+)?",f={begin:d,relevance:0},g={className:"number",begin:e,relevance:0},h=a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),i=a.COMMENT(";","$",{relevance:0}),j={className:"literal",begin:/\b(true|false|nil)\b/},k={className:"collection",begin:"[\\[\\{]",end:"[\\]\\}]"},l={className:"comment",begin:"\\^"+d},m=a.COMMENT("\\^\\{","\\}"),n={className:"attribute",begin:"[:]"+d},o={className:"list",begin:"\\(",end:"\\)"},p={endsWithParent:!0,relevance:0},q={keywords:b,lexemes:d,className:"keyword",begin:d,starts:p},r=[o,h,l,m,i,n,k,g,j,f];return o.contains=[a.COMMENT("comment",""),q,p],p.contains=r,k.contains=r,{aliases:["clj"],illegal:/\S/,contains:[o,h,l,m,i,n,k,g,j]}}),a.registerLanguage("clojure-repl",function(a){return{contains:[{className:"prompt",begin:/^([\w.-]+|\s*#_)=>/,starts:{end:/$/,subLanguage:"clojure"}}]}}),a.registerLanguage("cmake",function(a){return{aliases:["cmake.in"],case_insensitive:!0,keywords:{keyword:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or",operator:"equal less greater strless strgreater strequal matches"},contains:[{className:"envvar",begin:"\\${",end:"}"},a.HASH_COMMENT_MODE,a.QUOTE_STRING_MODE,a.NUMBER_MODE]}}),a.registerLanguage("coffeescript",function(a){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",built_in:"npm require console print module global window document"},c="[A-Za-z$_][0-9A-Za-z$_]*",d={className:"subst",begin:/#\{/,end:/}/,keywords:b},e=[a.BINARY_NUMBER_MODE,a.inherit(a.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[a.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[a.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[a.BACKSLASH_ESCAPE,d]},{begin:/"/,end:/"/,contains:[a.BACKSLASH_ESCAPE,d]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[d,a.HASH_COMMENT_MODE]},{begin:"//[gim]*",relevance:0},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{className:"property",begin:"@"+c},{begin:"`",end:"`",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];d.contains=e;var f=a.inherit(a.TITLE_MODE,{begin:c}),g="(\\(.*\\))?\\s*\\B[-=]>",h={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:b,contains:["self"].concat(e)}]};return{aliases:["coffee","cson","iced"],keywords:b,illegal:/\/\*/,contains:e.concat([a.COMMENT("###","###"),a.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+c+"\\s*=\\s*"+g,end:"[-=]>",returnBegin:!0,contains:[f,h]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:g,end:"[-=]>",returnBegin:!0,contains:[h]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[f]},f]},{className:"attribute",begin:c+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}),a.registerLanguage("cpp",function(a){var b={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[a.inherit(a.QUOTE_STRING_MODE,{begin:'((u8?|U)|L)?"'}),{begin:'(u8?|U)?R"',end:'"',contains:[a.BACKSLASH_ESCAPE]},{begin:"'\\\\?.",end:"'",illegal:"."}]},d={className:"number",variants:[{begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},{begin:a.C_NUMBER_RE}]},e={className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line pragma ifdef ifndef",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[c,{className:"string",begin:"<",end:">",illegal:"\\n"}]},c,d,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},f=a.IDENT_RE+"\\s*\\(",g={keyword:"int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong",built_in:"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf",literal:"true false nullptr NULL"};return{aliases:["c","cc","h","c++","h++","hpp"],keywords:g,illegal:"",keywords:g,contains:["self",b]},{begin:a.IDENT_RE+"::",keywords:g},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"("+a.IDENT_RE+"[\\*&\\s]+)+"+f,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:g,illegal:/[^\w\s\*&]/,contains:[{begin:f,returnBegin:!0,contains:[a.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,c,d]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,e]}]}}),a.registerLanguage("crmsh",function(a){var b="primitive rsc_template",c="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml",d="property rsc_defaults op_defaults",e="params meta operations op rule attributes utilization",f="read write deny defined not_defined in_range date spec in ref reference attribute type xpath version and or lt gt tag lte gte eq ne \\",g="number string",h="Master Started Slave Stopped start promote demote stop monitor true false";return{aliases:["crm","pcmk"],case_insensitive:!0,keywords:{keyword:e,operator:f,type:g,literal:h},contains:[a.HASH_COMMENT_MODE,{beginKeywords:"node",starts:{className:"identifier",end:"\\s*([\\w_-]+:)?",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*"}}},{beginKeywords:b,starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*",starts:{className:"pragma",end:"\\s*@?[\\w_][\\w_\\.:-]*"}}},{begin:"\\b("+c.split(" ").join("|")+")\\s+",keywords:c,starts:{className:"title",end:"[\\$\\w_][\\w_-]*"}},{beginKeywords:d,starts:{className:"title",end:"\\s*([\\w_-]+:)?"}},a.QUOTE_STRING_MODE,{className:"pragma",begin:"(ocf|systemd|service|lsb):[\\w_:-]+",relevance:0},{className:"number",begin:"\\b\\d+(\\.\\d+)?(ms|s|h|m)?",relevance:0},{className:"number",begin:"[-]?(infinity|inf)",relevance:0},{className:"variable",begin:/([A-Za-z\$_\#][\w_-]+)=/,relevance:0},{className:"tag",begin:"",relevance:0}]}}),a.registerLanguage("crystal",function(a){function b(a,b){var c=[{begin:a,end:b}];return c[0].contains=c,c}var c="(_[uif](8|16|32|64))?",d="[a-zA-Z_]\\w*[!?=]?",e="!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",f="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?",g={keyword:"abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? return require self sizeof struct super then type typeof union unless until when while with yield __DIR__ __FILE__ __LINE__",literal:"false nil true"},h={className:"subst",begin:"#{",end:"}",keywords:g},i={className:"expansion",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:g,relevance:10},j={className:"string",contains:[a.BACKSLASH_ESCAPE,h],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%w?\\(",end:"\\)",contains:b("\\(","\\)")},{begin:"%w?\\[",end:"\\]",contains:b("\\[","\\]")},{begin:"%w?{",end:"}",contains:b("{","}")},{begin:"%w?<",end:">",contains:b("<",">")},{begin:"%w?/",end:"/"},{begin:"%w?%",end:"%"},{begin:"%w?-",end:"-"},{begin:"%w?\\|",end:"\\|"}],relevance:0},k={begin:"("+e+")\\s*",contains:[{className:"regexp",contains:[a.BACKSLASH_ESCAPE,h],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\(",end:"\\)",contains:b("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:b("\\[","\\]")},{begin:"%r{",end:"}",contains:b("{","}")},{begin:"%r<",end:">",contains:b("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}]}],relevance:0},l={className:"regexp",contains:[a.BACKSLASH_ESCAPE,h],variants:[{begin:"%r\\(",end:"\\)",contains:b("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:b("\\[","\\]")},{begin:"%r{",end:"}",contains:b("{","}")},{begin:"%r<",end:">",contains:b("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}],relevance:0},m={className:"annotation",begin:"@\\[",end:"\\]",relevance:5},n=[i,j,k,l,m,a.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[a.HASH_COMMENT_MODE,a.inherit(a.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{className:"inheritance",begin:"<\\s*",contains:[{className:"parent",begin:"("+a.IDENT_RE+"::)?"+a.IDENT_RE}]}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[a.HASH_COMMENT_MODE,a.inherit(a.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"})],relevance:10},{className:"function",beginKeywords:"def",end:/\B\b/,contains:[a.inherit(a.TITLE_MODE,{begin:f,endsParent:!0})]},{className:"function",beginKeywords:"fun macro",end:/\B\b/,contains:[a.inherit(a.TITLE_MODE,{begin:f,endsParent:!0})],relevance:5},{className:"constant",begin:"(::)?(\\b[A-Z]\\w*(::)?)+",relevance:0},{className:"symbol",begin:a.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[j,{begin:f}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]*[01])"+c},{begin:"\\b0o([0-7_]*[0-7])"+c},{begin:"\\b0x([A-Fa-f0-9_]*[A-Fa-f0-9])"+c},{begin:"\\b(([0-9][0-9_]*[0-9]|[0-9])(\\.[0-9_]*[0-9])?([eE][+-]?[0-9_]*[0-9])?)"+c}],relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?|%)(\\w+))"}];return h.contains=n,m.contains=n,i.contains=n.slice(1),{aliases:["cr"],lexemes:d,keywords:g,contains:n}}),a.registerLanguage("cs",function(a){var b="abstract as base bool break byte case catch char checked const continue decimal dynamic default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long null when object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async protected public private internal ascending descending from get group into join let orderby partial select set value var where yield",c=a.IDENT_RE+"(<"+a.IDENT_RE+">)?";return{aliases:["csharp"],keywords:b,illegal:/::/,contains:[a.COMMENT("///","$",{returnBegin:!0,contains:[{className:"xmlDocTag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line region endregion pragma checksum"},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:]/,contains:[a.TITLE_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[{className:"title",begin:"[a-zA-Z](\\.?\\w)*",relevance:0},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new return throw await",relevance:0},{className:"function",begin:"("+c+"\\s+)+"+a.IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:b,contains:[{begin:a.IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[a.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:b,relevance:0,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]}]}}),a.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*",c={className:"function",begin:b+"\\(",returnBegin:!0,excludeEnd:!0,end:"\\("},d={className:"rule",begin:/[A-Z\_\.\-]+\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{className:"value",endsWithParent:!0,excludeEnd:!0,contains:[c,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,a.C_BLOCK_COMMENT_MODE,{className:"hexcolor",begin:"#[0-9A-Fa-f]+"},{className:"important",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[a.C_BLOCK_COMMENT_MODE,{className:"id",begin:/\#[A-Za-z0-9_-]+/},{className:"class",begin:/\.[A-Za-z0-9_-]+/},{className:"attr_selector",begin:/\[/,end:/\]/,illegal:"$"},{className:"pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/},{className:"at_rule",begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{className:"at_rule",begin:"@",end:"[{;]",contains:[{className:"keyword",begin:/\S+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[c,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.CSS_NUMBER_MODE]}]},{className:"tag",begin:b,relevance:0},{className:"rules",begin:"{",end:"}",illegal:/\S/,contains:[a.C_BLOCK_COMMENT_MODE,d]}]}}),a.registerLanguage("d",function(a){var b={keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},c="(0|[1-9][\\d_]*)",d="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)",e="0[bB][01_]+",f="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)",g="0[xX]"+f,h="([eE][+-]?"+d+")",i="("+d+"(\\.\\d*|"+h+")|\\d+\\."+d+d+"|\\."+c+h+"?)",j="(0[xX]("+f+"\\."+f+"|\\.?"+f+")[pP][+-]?"+d+")",k="("+c+"|"+e+"|"+g+")",l="("+j+"|"+i+")",m="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",n={className:"number",begin:"\\b"+k+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},o={className:"number",begin:"\\b("+l+"([fF]|L|i|[fF]i|Li)?|"+k+"(i|[fF]i|Li))",relevance:0},p={className:"string",begin:"'("+m+"|.)",end:"'",illegal:"."},q={begin:m,relevance:0},r={className:"string",begin:'"',contains:[q],end:'"[cwd]?'},s={className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},t={className:"string",begin:"`",end:"`[cwd]?"},u={className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},v={className:"string",begin:'q"\\{',end:'\\}"'},w={className:"shebang",begin:"^#!",end:"$",relevance:5},x={className:"preprocessor",begin:"#(line)",end:"$",relevance:5},y={className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"},z=a.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{lexemes:a.UNDERSCORE_IDENT_RE,keywords:b,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,z,u,r,s,t,v,o,n,p,w,x,y]}}),a.registerLanguage("markdown",function(a){return{aliases:["md","mkdown","mkd"],contains:[{className:"header",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"blockquote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"`.+?`"},{begin:"^( {4}| )",end:"$",relevance:0}]},{className:"horizontal_rule",begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"link_label",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link_url",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"link_reference",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:"^\\[.+\\]:",returnBegin:!0,contains:[{className:"link_reference",begin:"\\[",end:"\\]:",excludeBegin:!0,excludeEnd:!0,starts:{className:"link_url",end:"$"}}]}]}}),a.registerLanguage("dart",function(a){var b={className:"subst",begin:"\\$\\{",end:"}",keywords:"true false null this is new super"},c={className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""',end:'"""'},{begin:"r'",end:"'",illegal:"\\n"},{ +begin:'r"',end:'"',illegal:"\\n"},{begin:"'''",end:"'''",contains:[a.BACKSLASH_ESCAPE,b]},{begin:'"""',end:'"""',contains:[a.BACKSLASH_ESCAPE,b]},{begin:"'",end:"'",illegal:"\\n",contains:[a.BACKSLASH_ESCAPE,b]},{begin:'"',end:'"',illegal:"\\n",contains:[a.BACKSLASH_ESCAPE,b]}]};b.contains=[a.C_NUMBER_MODE,c];var d={keyword:"assert break case catch class const continue default do else enum extends false final finally for if in is new null rethrow return super switch this throw true try var void while with",literal:"abstract as dynamic export external factory get implements import library operator part set static typedef",built_in:"print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num document window querySelector querySelectorAll Element ElementList"};return{keywords:d,contains:[c,a.COMMENT("/\\*\\*","\\*/",{subLanguage:"markdown"}),a.COMMENT("///","$",{subLanguage:"markdown"}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},a.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"},{begin:"=>"}]}}),a.registerLanguage("delphi",function(a){var b="exports register file shl array record property for mod while set ally label uses raise not stored class safecall var interface or private static exit index inherited to else stdcall override shr asm far resourcestring finalization packed virtual out and protected library do xorwrite goto near function end div overload object unit begin string on inline repeat until destructor write message program with read initialization except default nil if case cdecl in downto threadvar of try pascal const external constructor type public then implementation finally published procedure",c=[a.C_LINE_COMMENT_MODE,a.COMMENT(/\{/,/\}/,{relevance:0}),a.COMMENT(/\(\*/,/\*\)/,{relevance:10})],d={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},e={className:"string",begin:/(#\d+)+/},f={begin:a.IDENT_RE+"\\s*=\\s*class\\s*\\(",returnBegin:!0,contains:[a.TITLE_MODE]},g={className:"function",beginKeywords:"function constructor destructor procedure",end:/[:;]/,keywords:"function constructor|10 destructor|10 procedure|10",contains:[a.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:b,contains:[d,e]}].concat(c)};return{case_insensitive:!0,keywords:b,illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[d,e,a.NUMBER_MODE,f,g].concat(c)}}),a.registerLanguage("diff",function(a){return{aliases:["patch"],contains:[{className:"chunk",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"header",variants:[{begin:/Index: /,end:/$/},{begin:/=====/,end:/=====$/},{begin:/^\-\-\-/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+\+\+/,end:/$/},{begin:/\*{5}/,end:/\*{5}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"change",begin:"^\\!",end:"$"}]}}),a.registerLanguage("django",function(a){var b={className:"filter",begin:/\|[A-Za-z]+:?/,keywords:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",contains:[{className:"argument",begin:/"/,end:/"/},{className:"argument",begin:/'/,end:/'/}]};return{aliases:["jinja"],case_insensitive:!0,subLanguage:"xml",contains:[a.COMMENT(/\{%\s*comment\s*%}/,/\{%\s*endcomment\s*%}/),a.COMMENT(/\{#/,/#}/),{className:"template_tag",begin:/\{%/,end:/%}/,keywords:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim",contains:[b]},{className:"variable",begin:/\{\{/,end:/}}/,contains:[b]}]}}),a.registerLanguage("dns",function(a){return{aliases:["bind","zone"],keywords:{keyword:"IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT"},contains:[a.COMMENT(";","$"),{className:"operator",beginKeywords:"$TTL $GENERATE $INCLUDE $ORIGIN"},{className:"number",begin:"((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))"},{className:"number",begin:"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])"}]}}),a.registerLanguage("dockerfile",function(a){return{aliases:["docker"],case_insensitive:!0,keywords:{built_ins:"from maintainer cmd expose add copy entrypoint volume user workdir onbuild run env label"},contains:[a.HASH_COMMENT_MODE,{keywords:{built_in:"run cmd entrypoint volume add copy workdir onbuild label"},begin:/^ *(onbuild +)?(run|cmd|entrypoint|volume|add|copy|workdir|label) +/,starts:{end:/[^\\]\n/,subLanguage:"bash"}},{keywords:{built_in:"from maintainer expose env user onbuild"},begin:/^ *(onbuild +)?(from|maintainer|expose|env|user|onbuild) +/,end:/[^\\]\n/,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.NUMBER_MODE,a.HASH_COMMENT_MODE]}]}}),a.registerLanguage("dos",function(a){var b=a.COMMENT(/@?rem\b/,/$/,{relevance:10}),c={className:"label",begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",relevance:0};return{aliases:["bat","cmd"],case_insensitive:!0,illegal:/\/\*/,keywords:{flow:"if else goto for in do call exit not exist errorlevel defined",operator:"equ neq lss leq gtr geq",keyword:"shift cd dir echo setlocal endlocal set pause copy",stream:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",winutils:"ping net ipconfig taskkill xcopy ren del",built_in:"append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color comp compact convert date dir diskcomp diskcopy doskey erase fs find findstr format ftype graftabl help keyb label md mkdir mode more move path pause print popd pushd promt rd recover rem rename replace restore rmdir shiftsort start subst time title tree type ver verify vol"},contains:[{className:"envvar",begin:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{className:"function",begin:c.begin,end:"goto:eof",contains:[a.inherit(a.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),b]},{className:"number",begin:"\\b\\d+",relevance:0},b]}}),a.registerLanguage("dust",function(a){var b="if eq ne lt lte gt gte select default math sep";return{aliases:["dst"],case_insensitive:!0,subLanguage:"xml",contains:[{className:"expression",begin:"{",end:"}",relevance:0,contains:[{className:"begin-block",begin:"#[a-zA-Z- .]+",keywords:b},{className:"string",begin:'"',end:'"'},{className:"end-block",begin:"\\/[a-zA-Z- .]+",keywords:b},{className:"variable",begin:"[a-zA-Z-.]+",keywords:b,relevance:0}]}]}}),a.registerLanguage("elixir",function(a){var b="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?",c="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",d="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",e={className:"subst",begin:"#\\{",end:"}",lexemes:b,keywords:d},f={className:"string",contains:[a.BACKSLASH_ESCAPE,e],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},g={className:"function",beginKeywords:"def defp defmacro",end:/\B\b/,contains:[a.inherit(a.TITLE_MODE,{begin:b,endsParent:!0})]},h=a.inherit(g,{className:"class",beginKeywords:"defmodule defrecord",end:/\bdo\b|$|;/}),i=[f,a.HASH_COMMENT_MODE,h,g,{className:"constant",begin:"(\\b[A-Z_]\\w*(.)?)+",relevance:0},{className:"symbol",begin:":",contains:[f,{begin:c}],relevance:0},{className:"symbol",begin:b+":",relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"->"},{begin:"("+a.RE_STARTERS_RE+")\\s*",contains:[a.HASH_COMMENT_MODE,{className:"regexp",illegal:"\\n",contains:[a.BACKSLASH_ESCAPE,e],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}],relevance:0}];return e.contains=i,{lexemes:b,keywords:d,contains:i}}),a.registerLanguage("elm",function(a){var b=[a.COMMENT("--","$"),a.COMMENT("{-","-}",{contains:["self"]})],c={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},d={className:"container",begin:"\\(",end:"\\)",illegal:'"',contains:[{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"}].concat(b)},e={className:"container",begin:"{",end:"}",contains:d.contains};return{keywords:"let in if then else case of where module import exposing type alias as infix infixl infixr port",contains:[{className:"module",begin:"\\bmodule\\b",end:"where",keywords:"module where",contains:[d].concat(b),illegal:"\\W\\.|;"},{className:"import",begin:"\\bimport\\b",end:"$",keywords:"import|0 as exposing",contains:[d].concat(b),illegal:"\\W\\.|;"},{className:"typedef",begin:"\\btype\\b",end:"$",keywords:"type alias",contains:[c,d,e].concat(b)},{className:"infix",beginKeywords:"infix infixl infixr",end:"$",contains:[a.C_NUMBER_MODE].concat(b)},{className:"foreign",begin:"\\bport\\b",end:"$",keywords:"port",contains:b},a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,c,a.inherit(a.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),{begin:"->|<-"}].concat(b)}}),a.registerLanguage("ruby",function(a){var b="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",c="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",d={className:"doctag",begin:"@[A-Za-z]+"},e={className:"value",begin:"#<",end:">"},f=[a.COMMENT("#","$",{contains:[d]}),a.COMMENT("^\\=begin","^\\=end",{contains:[d],relevance:10}),a.COMMENT("^__END__","\\n$")],g={className:"subst",begin:"#\\{",end:"}",keywords:c},h={className:"string",contains:[a.BACKSLASH_ESCAPE,g],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]},i={className:"params",begin:"\\(",end:"\\)",keywords:c},j=[h,e,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[a.inherit(a.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{className:"inheritance",begin:"<\\s*",contains:[{className:"parent",begin:"("+a.IDENT_RE+"::)?"+a.IDENT_RE}]}].concat(f)},{className:"function",beginKeywords:"def",end:"$|;",contains:[a.inherit(a.TITLE_MODE,{begin:b}),i].concat(f)},{className:"constant",begin:"(::)?(\\b[A-Z]\\w*(::)?)+",relevance:0},{className:"symbol",begin:a.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[h,{begin:b}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"("+a.RE_STARTERS_RE+")\\s*",contains:[e,{className:"regexp",contains:[a.BACKSLASH_ESCAPE,g],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(f),relevance:0}].concat(f);g.contains=j,i.contains=j;var k="[>?]>",l="[\\w#]+\\(\\w+\\):\\d+:\\d+>",m="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",n=[{begin:/^\s*=>/,className:"status",starts:{end:"$",contains:j}},{className:"prompt",begin:"^("+k+"|"+l+"|"+m+")",starts:{end:"$",contains:j}}];return{aliases:["rb","gemspec","podspec","thor","irb"],keywords:c,illegal:/\/\*/,contains:f.concat(n).concat(j)}}),a.registerLanguage("erb",function(a){return{subLanguage:"xml",contains:[a.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]}}),a.registerLanguage("erlang-repl",function(a){return{keywords:{special_functions:"spawn spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"prompt",begin:"^[0-9]+> ",relevance:10},a.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"constant",begin:"\\?(::)?([A-Z]\\w*(::)?)+"},{className:"arrow",begin:"->"},{className:"ok",begin:"ok"},{className:"exclamation_mark",begin:"!"},{className:"function_or_atom",begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{className:"variable",begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}),a.registerLanguage("erlang",function(a){var b="[a-z'][a-zA-Z0-9_']*",c="("+b+":"+b+"|"+b+")",d={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},e=a.COMMENT("%","$"),f={className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},g={begin:"fun\\s+"+b+"/\\d+"},h={begin:c+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{className:"function_name",begin:c,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},i={className:"tuple",begin:"{",end:"}",relevance:0},j={className:"variable",begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},k={className:"variable",begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},l={begin:"#"+a.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{className:"record_name",begin:"#"+a.UNDERSCORE_IDENT_RE,relevance:0},{begin:"{",end:"}",relevance:0}]},m={beginKeywords:"fun receive if try case",end:"end",keywords:d};m.contains=[e,g,a.inherit(a.APOS_STRING_MODE,{className:""}),m,h,a.QUOTE_STRING_MODE,f,i,j,k,l];var n=[e,g,m,h,a.QUOTE_STRING_MODE,f,i,j,k,l];h.contains[1].contains=n,i.contains=n,l.contains[1].contains=n;var o={className:"params",begin:"\\(",end:"\\)",contains:n};return{aliases:["erl"],keywords:d,illegal:"(",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[o,a.inherit(a.TITLE_MODE,{begin:b})],starts:{end:";|\\.",keywords:d,contains:n}},e,{className:"pp",begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,lexemes:"-"+a.IDENT_RE,keywords:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",contains:[o]},f,a.QUOTE_STRING_MODE,l,j,k,i,{begin:/\.$/}]}}),a.registerLanguage("fix",function(a){return{contains:[{begin:/[^\u2401\u0001]+/,end:/[\u2401\u0001]/,excludeEnd:!0,returnBegin:!0,returnEnd:!1,contains:[{begin:/([^\u2401\u0001=]+)/,end:/=([^\u2401\u0001=]+)/,returnEnd:!0,returnBegin:!1,className:"attribute"},{begin:/=/,end:/([\u2401\u0001])/,excludeEnd:!0,excludeBegin:!0,className:"string"}]}],case_insensitive:!0}}),a.registerLanguage("fortran",function(a){var b={className:"params",begin:"\\(",end:"\\)"},c={constant:".False. .True.",type:"integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image"};return{case_insensitive:!0,aliases:["f90","f95"],keywords:c,illegal:/\/\*/,contains:[a.inherit(a.APOS_STRING_MODE,{className:"string",relevance:0}),a.inherit(a.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[a.UNDERSCORE_TITLE_MODE,b]},a.COMMENT("!","$",{relevance:0}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}}),a.registerLanguage("fsharp",function(a){var b={begin:"<",end:">",contains:[a.inherit(a.TITLE_MODE,{begin:/'[a-zA-Z0-9_]+/})]};return{aliases:["fs"],keywords:"abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",illegal:/\/\*/,contains:[{className:"keyword",begin:/\b(yield|return|let|do)!/},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:'"""',end:'"""'},a.COMMENT("\\(\\*","\\*\\)"),{className:"class",beginKeywords:"type",end:"\\(|=|$",excludeEnd:!0,contains:[a.UNDERSCORE_TITLE_MODE,b]},{className:"annotation",begin:"\\[<",end:">\\]",relevance:10},{className:"attribute",begin:"\\B('[A-Za-z])\\b",contains:[a.BACKSLASH_ESCAPE]},a.C_LINE_COMMENT_MODE,a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),a.C_NUMBER_MODE]}}),a.registerLanguage("gams",function(a){var b="abort acronym acronyms alias all and assign binary card diag display else1 eps eq equation equations file files for1 free ge gt if inf integer le loop lt maximizing minimizing model models na ne negative no not option options or ord parameter parameters positive prod putpage puttl repeat sameas scalar scalars semicont semiint set1 sets smax smin solve sos1 sos2 sum system table then until using variable variables while1 xor yes";return{aliases:["gms"],case_insensitive:!0,keywords:b,contains:[{className:"section",beginKeywords:"sets parameters variables equations",end:";",contains:[{begin:"/",end:"/",contains:[a.NUMBER_MODE]}]},{className:"string",begin:"\\*{3}",end:"\\*{3}"},a.NUMBER_MODE,{className:"number",begin:"\\$[a-zA-Z0-9]+"}]}}),a.registerLanguage("gcode",function(a){var b="[A-Z_][A-Z0-9_.]*",c="\\%",d={literal:"",built_in:"",keyword:"IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR"},e={className:"preprocessor",begin:"([O])([0-9]+)"},f=[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.COMMENT(/\(/,/\)/),a.inherit(a.C_NUMBER_MODE,{begin:"([-+]?([0-9]*\\.?[0-9]+\\.?))|"+a.C_NUMBER_RE}),a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"keyword",begin:"([G])([0-9]+\\.?[0-9]?)"},{className:"title",begin:"([M])([0-9]+\\.?[0-9]?)"},{className:"title",begin:"(VC|VS|#)",end:"(\\d+)"},{className:"title",begin:"(VZOFX|VZOFY|VZOFZ)"},{className:"built_in",begin:"(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)",end:"([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])"},{className:"label",variants:[{begin:"N",end:"\\d+",illegal:"\\W"}]}];return{aliases:["nc"],case_insensitive:!0,lexemes:b,keywords:d,contains:[{className:"preprocessor",begin:c},e].concat(f)}}),a.registerLanguage("gherkin",function(a){return{aliases:["feature"],keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",contains:[{className:"keyword",begin:"\\*"},a.COMMENT("@[^@\r\n ]+","$"),{begin:"\\|",end:"\\|\\w*$",contains:[{className:"string",begin:"[^|]+"}]},{className:"variable",begin:"<",end:">"},a.HASH_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},a.QUOTE_STRING_MODE]}}),a.registerLanguage("glsl",function(a){return{keywords:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},illegal:'"',contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.C_NUMBER_MODE,{className:"preprocessor",begin:"#",end:"$"}]}}),a.registerLanguage("go",function(a){var b={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer", +constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{aliases:["golang"],keywords:b,illegal:"",end:",\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"symbol",begin:":\\w+"},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]},{begin:"\\(\\s*",end:"\\s*\\)",excludeEnd:!0,contains:[{begin:"\\w+\\s*=",end:"\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attribute",begin:"\\w+",relevance:0},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]}]},{className:"bullet",begin:"^\\s*[=~]\\s*",relevance:0},{begin:"#{",starts:{end:"}",subLanguage:"ruby"}}]}}),a.registerLanguage("handlebars",function(a){var b="each in with if else unless bindattr action collection debugger log outlet template unbound view yield";return{aliases:["hbs","html.hbs","html.handlebars"],case_insensitive:!0,subLanguage:"xml",contains:[{className:"expression",begin:"{{",end:"}}",contains:[{className:"begin-block",begin:"#[a-zA-Z- .]+",keywords:b},{className:"string",begin:'"',end:'"'},{className:"end-block",begin:"\\/[a-zA-Z- .]+",keywords:b},{className:"variable",begin:"[a-zA-Z-.]+",keywords:b}]}]}}),a.registerLanguage("haskell",function(a){var b=[a.COMMENT("--","$"),a.COMMENT("{-","-}",{contains:["self"]})],c={className:"pragma",begin:"{-#",end:"#-}"},d={className:"preprocessor",begin:"^#",end:"$"},e={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},f={className:"container",begin:"\\(",end:"\\)",illegal:'"',contains:[c,d,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},a.inherit(a.TITLE_MODE,{begin:"[_a-z][\\w']*"})].concat(b)},g={className:"container",begin:"{",end:"}",contains:f.contains};return{aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{className:"module",begin:"\\bmodule\\b",end:"where",keywords:"module where",contains:[f].concat(b),illegal:"\\W\\.|;"},{className:"import",begin:"\\bimport\\b",end:"$",keywords:"import|0 qualified as hiding",contains:[f].concat(b),illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[e,f].concat(b)},{className:"typedef",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[c,e,f,g].concat(b)},{className:"default",beginKeywords:"default",end:"$",contains:[e,f].concat(b)},{className:"infix",beginKeywords:"infix infixl infixr",end:"$",contains:[a.C_NUMBER_MODE].concat(b)},{className:"foreign",begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[e,a.QUOTE_STRING_MODE].concat(b)},{className:"shebang",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},c,d,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,e,a.inherit(a.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),{begin:"->|<-"}].concat(b)}}),a.registerLanguage("haxe",function(a){var b="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)";return{aliases:["hx"],keywords:{keyword:"break callback case cast catch class continue default do dynamic else enum extends extern for function here if implements import in inline interface never new override package private public return static super switch this throw trace try typedef untyped using var while",literal:"true false null"},contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.C_NUMBER_MODE,{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},a.TITLE_MODE]},{className:"preprocessor",begin:"#",end:"$",keywords:"if else elseif end error"},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[a.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},{className:"type",begin:":",end:b,relevance:10}]}]}}),a.registerLanguage("http",function(a){return{aliases:["https"],illegal:"\\S",contains:[{className:"status",begin:"^HTTP/[0-9\\.]+",end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{className:"request",begin:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{className:"string",end:"$"}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}),a.registerLanguage("inform7",function(a){var b="\\[",c="\\]";return{aliases:["i7"],case_insensitive:!0,keywords:{keyword:"thing room person man woman animal container supporter backdrop door scenery open closed locked inside gender is are say understand kind of rule"},contains:[{className:"string",begin:'"',end:'"',relevance:0,contains:[{className:"subst",begin:b,end:c}]},{className:"title",begin:/^(Volume|Book|Part|Chapter|Section|Table)\b/,end:"$"},{begin:/^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,end:":",contains:[{begin:"\\b\\(This",end:"\\)"}]},{className:"comment",begin:b,end:c,contains:["self"]}]}}),a.registerLanguage("ini",function(a){var b={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]};return{aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[a.COMMENT(";","$"),a.HASH_COMMENT_MODE,{className:"title",begin:/^\s*\[+/,end:/\]+/},{className:"setting",begin:/^[a-z0-9\[\]_-]+\s*=\s*/,end:"$",contains:[{className:"value",endsWithParent:!0,keywords:"on off true false yes no",contains:[{className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},b,{className:"number",begin:/([\+\-]+)?[\d]+_[\d_]+/},a.NUMBER_MODE],relevance:0}]}]}}),a.registerLanguage("irpf90",function(a){var b={className:"params",begin:"\\(",end:"\\)"},c={constant:".False. .True.",type:"integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image IRP_ALIGN irp_here"};return{case_insensitive:!0,keywords:c,illegal:/\/\*/,contains:[a.inherit(a.APOS_STRING_MODE,{className:"string",relevance:0}),a.inherit(a.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[a.UNDERSCORE_TITLE_MODE,b]},a.COMMENT("!","$",{relevance:0}),a.COMMENT("begin_doc","end_doc",{relevance:10}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}}),a.registerLanguage("java",function(a){var b=a.UNDERSCORE_IDENT_RE+"(<"+a.UNDERSCORE_IDENT_RE+">)?",c="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",d="\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",e={className:"number",begin:d,relevance:0};return{aliases:["jsp"],keywords:c,illegal:/<\/|#/,contains:[a.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"("+b+"\\s+)+"+a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:c,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:c,relevance:0,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},e,{className:"annotation",begin:"@[A-Za-z]+"}]}}),a.registerLanguage("javascript",function(a){return{aliases:["js"],keywords:{keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},contains:[{className:"pi",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"}]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:a.C_NUMBER_RE}],relevance:0},{begin:"("+a.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.REGEXP_MODE,{begin:/\s*[);\]]/,relevance:0,subLanguage:"xml"}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[a.inherit(a.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]}],illegal:/\[|%/},{begin:/\$[(.]/},{begin:"\\."+a.IDENT_RE,relevance:0},{beginKeywords:"import",end:"[;$]",keywords:"import from as",contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE]},{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},a.UNDERSCORE_TITLE_MODE]}],illegal:/#/}}),a.registerLanguage("json",function(a){var b={literal:"true false null"},c=[a.QUOTE_STRING_MODE,a.C_NUMBER_MODE],d={className:"value",end:",",endsWithParent:!0,excludeEnd:!0,contains:c,keywords:b},e={begin:"{",end:"}",contains:[{className:"attribute",begin:'\\s*"',end:'"\\s*:\\s*',excludeBegin:!0,excludeEnd:!0,contains:[a.BACKSLASH_ESCAPE],illegal:"\\n",starts:d}],illegal:"\\S"},f={begin:"\\[",end:"\\]",contains:[a.inherit(d,{className:null})],illegal:"\\S"};return c.splice(c.length,0,e,f),{contains:c,keywords:b,illegal:"\\S"}}),a.registerLanguage("julia",function(a){var b={keyword:"in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export finally for function global if immutable import importall let local macro module quote return try type typealias using while",literal:"true false ANY ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e|0 eu|0 eulergamma golden im nothing pi γ π φ",built_in:"ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip"},c="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",d={lexemes:c,keywords:b},e={className:"type-annotation",begin:/::/},f={className:"subtype",begin:/<:/},g={className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},h={className:"char",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},i={className:"subst",begin:/\$\(/,end:/\)/,keywords:b},j={className:"variable",begin:"\\$"+c},k={className:"string",contains:[a.BACKSLASH_ESCAPE,i,j],variants:[{begin:/\w*"/,end:/"\w*/},{begin:/\w*"""/,end:/"""\w*/}]},l={className:"string",contains:[a.BACKSLASH_ESCAPE,i,j],begin:"`",end:"`"},m={className:"macrocall",begin:"@"+c},n={className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]};return d.contains=[g,h,e,f,k,l,m,n,a.HASH_COMMENT_MODE],i.contains=d.contains,d}),a.registerLanguage("kotlin",function(a){var b="val var get set class trait object public open private protected final enum if else do while for when break continue throw try catch finally import package is as in return fun override default companion reified inline volatile transient native";return{keywords:{typename:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null",keyword:b},contains:[a.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"type",begin://,returnBegin:!0,excludeEnd:!1,relevance:0},{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:b,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:b,relevance:0,illegal:/\([^\(,\s:]+,/,contains:[{className:"typename",begin:/:\s*/,end:/\s*[=\)]/,excludeBegin:!0,returnEnd:!0,relevance:0}]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},{className:"class",beginKeywords:"class trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[a.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"typename",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0}]},{className:"variable",beginKeywords:"var val",end:/\s*[=:$]/,excludeEnd:!0},a.QUOTE_STRING_MODE,{className:"shebang",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},a.C_NUMBER_MODE]}}),a.registerLanguage("lasso",function(a){var b="[a-zA-Z_][a-zA-Z0-9_.]*",c="<\\?(lasso(script)?|=)",d="\\]|\\?>",e={literal:"true false none minimal full all void bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",built_in:"array date decimal duration integer map pair string tag xml null boolean bytes keyword list locale queue set stack staticarray local var variable global data self inherited currentcapture givenblock",keyword:"error_code error_msg error_pop error_push error_reset cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome"},f=a.COMMENT("",{relevance:0}),g={className:"preprocessor",begin:"\\[noprocess\\]",starts:{className:"markup",end:"\\[/noprocess\\]",returnEnd:!0,contains:[f]}},h={className:"preprocessor",begin:"\\[/noprocess|"+c},i={className:"variable",begin:"'"+b+"'"},j=[a.COMMENT("/\\*\\*!","\\*/"),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.inherit(a.C_NUMBER_MODE,{begin:a.C_NUMBER_RE+"|(infinity|nan)\\b"}),a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"`",end:"`"},{className:"variable",variants:[{begin:"[#$]"+b},{begin:"#",end:"\\d+",illegal:"\\W"}]},{className:"tag",begin:"::\\s*",end:b,illegal:"\\W"},{className:"attribute",variants:[{begin:"-(?!infinity)"+a.UNDERSCORE_IDENT_RE,relevance:0},{begin:"(\\.\\.\\.)"}]},{className:"subst",variants:[{begin:"->\\s*",contains:[i]},{begin:"->|\\\\|&&?|\\|\\||!(?!=|>)|(and|or|not)\\b",relevance:0}]},{className:"built_in",begin:"\\.\\.?\\s*",relevance:0,contains:[i]},{className:"class",beginKeywords:"define",returnEnd:!0,end:"\\(|=>",contains:[a.inherit(a.TITLE_MODE,{begin:a.UNDERSCORE_IDENT_RE+"(=(?!>))?"})]}];return{aliases:["ls","lassoscript"],case_insensitive:!0,lexemes:b+"|&[lg]t;",keywords:e,contains:[{className:"preprocessor",begin:d,relevance:0,starts:{className:"markup",end:"\\[|"+c,returnEnd:!0,relevance:0,contains:[f]}},g,h,{className:"preprocessor",begin:"\\[no_square_brackets",starts:{end:"\\[/no_square_brackets\\]",lexemes:b+"|&[lg]t;",keywords:e,contains:[{className:"preprocessor",begin:d,relevance:0,starts:{className:"markup",end:"\\[noprocess\\]|"+c,returnEnd:!0,contains:[f]}},g,h].concat(j)}},{className:"preprocessor",begin:"\\[",relevance:0},{className:"shebang",begin:"^#!.+lasso9\\b",relevance:10}].concat(j)}}),a.registerLanguage("less",function(a){var b="[\\w-]+",c="("+b+"|@{"+b+"})",d=[],e=[],f=function(a){return{className:"string",begin:"~?"+a+".*?"+a}},g=function(a,b,c){return{className:a,begin:b,relevance:c}},h=function(b,c,d){return a.inherit({className:b,begin:c+"\\(",end:"\\(",returnBegin:!0,excludeEnd:!0,relevance:0},d)},i={begin:"\\(",end:"\\)",contains:e,relevance:0};e.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,f("'"),f('"'),a.CSS_NUMBER_MODE,g("hexcolor","#[0-9A-Fa-f]+\\b"),h("function","(url|data-uri)",{starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}}),h("function",b),i,g("variable","@@?"+b,10),g("variable","@{"+b+"}"),g("built_in","~?`[^`]*?`"),{className:"attribute",begin:b+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0});var j=e.concat({begin:"{",end:"}",contains:d}),k={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(e)},l={className:"attribute",begin:c,end:":",excludeEnd:!0,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE],illegal:/\S/,starts:{end:"[;}]",returnEnd:!0,contains:e,illegal:"[<=$]"}},m={className:"at_rule",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:e,relevance:0}},n={className:"variable",variants:[{begin:"@"+b+"\\s*:",relevance:15},{begin:"@"+b}],starts:{end:"[;}]",returnEnd:!0,contains:j}},o={variants:[{begin:"[\\.#:&\\[]",end:"[;{}]"},{begin:c+"[^;]*{",end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,k,g("keyword","all\\b"),g("variable","@{"+b+"}"),g("tag",c+"%?",0),g("id","#"+c),g("class","\\."+c,0),g("keyword","&",0),h("pseudo",":not"),h("keyword",":extend"),g("pseudo","::?"+c),{className:"attr_selector",begin:"\\[",end:"\\]"},{begin:"\\(",end:"\\)",contains:j},{begin:"!important"}]};return d.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,m,n,o,l),{case_insensitive:!0,illegal:"[=>'/<($\"]",contains:d}}),a.registerLanguage("lisp",function(a){var b="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*",c="\\|[^]*?\\|",d="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?",e={className:"shebang",begin:"^#!",end:"$"},f={className:"literal",begin:"\\b(t{1}|nil)\\b"},g={className:"number",variants:[{begin:d,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{begin:"#(c|C)\\("+d+" +"+d,end:"\\)"}]},h=a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),i=a.COMMENT(";","$",{relevance:0}),j={className:"variable",begin:"\\*",end:"\\*"},k={className:"keyword",begin:"[:&]"+b},l={begin:b,relevance:0},m={begin:c},n={begin:"\\(",end:"\\)",contains:["self",f,h,g,l]},o={className:"quoted",contains:[g,h,j,k,n,l],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:"quote"},{begin:"'"+c}]},p={className:"quoted",variants:[{begin:"'"+b},{begin:"#'"+b+"(::"+b+")*"}]},q={className:"list",begin:"\\(\\s*",end:"\\)"},r={endsWithParent:!0,relevance:0};return q.contains=[{className:"keyword",variants:[{begin:b},{begin:c}]},r],r.contains=[o,p,q,f,g,h,i,j,k,m,l],{illegal:/\S/,contains:[g,e,f,h,i,o,p,q,l]}}),a.registerLanguage("livecodeserver",function(a){var b={className:"variable",begin:"\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+",relevance:0},c=[a.C_BLOCK_COMMENT_MODE,a.HASH_COMMENT_MODE,a.COMMENT("--","$"),a.COMMENT("[^:]//","$")],d=a.inherit(a.TITLE_MODE,{variants:[{begin:"\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*"},{begin:"\\b_[a-z0-9\\-]+"}]}),e=a.inherit(a.TITLE_MODE,{begin:"\\b([A-Za-z0-9_\\-]+)\\b"});return{case_insensitive:!1,keywords:{keyword:"$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph after byte bytes english the until http forever descending using line real8 with seventh for stdout finally element word words fourth before black ninth sixth characters chars stderr uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat end repeat URL in try into switch to words https token binfile each tenth as ticks tick system real4 by dateItems without char character ascending eighth whole dateTime numeric short first ftp integer abbreviated abbr abbrev private case while if", +constant:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",operator:"div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys",built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress constantNames cos date dateFormat decompress directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge millisec millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load multiply socket prepare process post seek rel relative read from process rename replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop subtract union unload wait write"},contains:[b,{className:"keyword",begin:"\\bend\\sif\\b"},{className:"function",beginKeywords:"function",end:"$",contains:[b,e,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE,d]},{className:"function",begin:"\\bend\\s+",end:"$",keywords:"end",contains:[e,d]},{className:"command",beginKeywords:"command on",end:"$",contains:[b,e,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE,d]},{className:"preprocessor",variants:[{begin:"<\\?(rev|lc|livecode)",relevance:10},{begin:"<\\?"},{begin:"\\?>"}]},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE,d].concat(c),illegal:";$|^\\[|^="}}),a.registerLanguage("livescript",function(a){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger case default function var with then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super case default function var void const let enum export import native __hasProp __extends __slice __bind __indexOf",literal:"true false null undefined yes no on off it that void",built_in:"npm require console print module global window document"},c="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",d=a.inherit(a.TITLE_MODE,{begin:c}),e={className:"subst",begin:/#\{/,end:/}/,keywords:b},f={className:"subst",begin:/#[A-Za-z$_]/,end:/(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,keywords:b},g=[a.BINARY_NUMBER_MODE,{className:"number",begin:"(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)",relevance:0,starts:{end:"(\\s*/)?",relevance:0}},{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[a.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[a.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[a.BACKSLASH_ESCAPE,e,f]},{begin:/"/,end:/"/,contains:[a.BACKSLASH_ESCAPE,e,f]},{begin:/\\/,end:/(\s|$)/,excludeEnd:!0}]},{className:"pi",variants:[{begin:"//",end:"//[gim]*",contains:[e,a.HASH_COMMENT_MODE]},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{className:"property",begin:"@"+c},{begin:"``",end:"``",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];e.contains=g;var h={className:"params",begin:"\\(",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:b,contains:["self"].concat(g)}]};return{aliases:["ls"],keywords:b,illegal:/\/\*/,contains:g.concat([a.COMMENT("\\/\\*","\\*\\/"),a.HASH_COMMENT_MODE,{className:"function",contains:[d,h],returnBegin:!0,variants:[{begin:"("+c+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B\\->\\*?",end:"\\->\\*?"},{begin:"("+c+"\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?",end:"[-~]{1,2}>\\*?"},{begin:"("+c+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?",end:"!?[-~]{1,2}>\\*?"}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[d]},d]},{className:"attribute",begin:c+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}),a.registerLanguage("lua",function(a){var b="\\[=*\\[",c="\\]=*\\]",d={begin:b,end:c,contains:["self"]},e=[a.COMMENT("--(?!"+b+")","$"),a.COMMENT("--"+b,c,{contains:[d],relevance:10})];return{lexemes:a.UNDERSCORE_IDENT_RE,keywords:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},contains:e.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[a.inherit(a.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:e}].concat(e)},a.C_NUMBER_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:b,end:c,contains:[d],relevance:5}])}}),a.registerLanguage("makefile",function(a){var b={className:"variable",begin:/\$\(/,end:/\)/,contains:[a.BACKSLASH_ESCAPE]};return{aliases:["mk","mak"],contains:[a.HASH_COMMENT_MODE,{begin:/^\w+\s*\W*=/,returnBegin:!0,relevance:0,starts:{className:"constant",end:/\s*\W*=/,excludeEnd:!0,starts:{end:/$/,relevance:0,contains:[b]}}},{className:"title",begin:/^[\w]+:\s*$/},{className:"phony",begin:/^\.PHONY:/,end:/$/,keywords:".PHONY",lexemes:/[\.\w]+/},{begin:/^\t+/,end:/$/,relevance:0,contains:[a.QUOTE_STRING_MODE,b]}]}}),a.registerLanguage("mathematica",function(a){return{aliases:["mma"],lexemes:"(\\$|\\b)"+a.IDENT_RE+"\\b",keywords:"AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OwenT OwnValues PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine Transparent UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian XMLElement XMLObject Xnor Xor Yellow YuleDissimilarity ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform $Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber", +contains:[{className:"comment",begin:/\(\*/,end:/\*\)/},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{className:"list",begin:/\{/,end:/\}/,illegal:/:/}]}}),a.registerLanguage("matlab",function(a){var b=[a.C_NUMBER_MODE,{className:"string",begin:"'",end:"'",contains:[a.BACKSLASH_ESCAPE,{begin:"''"}]}],c={relevance:0,contains:[{className:"operator",begin:/'['\.]*/}]};return{keywords:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"},{className:"params",begin:"\\[",end:"\\]"}]},{begin:/[a-zA-Z_][a-zA-Z_0-9]*'['\.]*/,returnBegin:!0,relevance:0,contains:[{begin:/[a-zA-Z_][a-zA-Z_0-9]*/,relevance:0},c.contains[0]]},{className:"matrix",begin:"\\[",end:"\\]",contains:b,relevance:0,starts:c},{className:"cell",begin:"\\{",end:/}/,contains:b,relevance:0,starts:c},{begin:/\)/,relevance:0,starts:c},a.COMMENT("^\\s*\\%\\{\\s*$","^\\s*\\%\\}\\s*$"),a.COMMENT("\\%","$")].concat(b)}}),a.registerLanguage("mel",function(a){return{keywords:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",illegal:""},{begin:"<=",relevance:0},{begin:"=>",relevance:0},{begin:"/\\\\"},{begin:"\\\\/"}]},k={className:"built_in",variants:[{begin:":-\\|-->"},{begin:"=",relevance:0}]};return{aliases:["m","moo"],keywords:b,contains:[j,k,d,e,f,a.NUMBER_MODE,g,h,{begin:/:-/}]}}),a.registerLanguage("mizar",function(a){return{keywords:"environ vocabularies notations constructors definitions registrations theorems schemes requirements begin end definition registration cluster existence pred func defpred deffunc theorem proof let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from be being by means equals implies iff redefine define now not or attr is mode suppose per cases set thesis contradiction scheme reserve struct correctness compatibility coherence symmetry assymetry reflexivity irreflexivity connectedness uniqueness commutativity idempotence involutiveness projectivity",contains:[a.COMMENT("::","$")]}}),a.registerLanguage("perl",function(a){var b="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when",c={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:b},d={begin:"->{",end:"}"},e={className:"variable",variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},f=[a.BACKSLASH_ESCAPE,c,e],g=[e,a.HASH_COMMENT_MODE,a.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),d,{className:"string",contains:f,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*\\<",end:"\\>",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[a.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE]},{begin:"{\\w+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+a.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[a.HASH_COMMENT_MODE,{className:"regexp",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[a.BACKSLASH_ESCAPE],relevance:0}]},{className:"sub",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",relevance:5},{className:"operator",begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return c.contains=g,d.contains=g,{aliases:["pl"],keywords:b,contains:g}}),a.registerLanguage("mojolicious",function(a){return{subLanguage:"xml",contains:[{className:"preprocessor",begin:"^__(END|DATA)__$"},{begin:"^\\s*%{1,2}={0,2}",end:"$",subLanguage:"perl"},{begin:"<%{1,2}={0,2}",end:"={0,1}%>",subLanguage:"perl",excludeBegin:!0,excludeEnd:!0}]}}),a.registerLanguage("monkey",function(a){var b={className:"number",relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},a.NUMBER_MODE]};return{case_insensitive:!0,keywords:{keyword:"public private property continue exit extern new try catch eachin not abstract final select case default const local global field end if then else elseif endif while wend repeat until forever for to step next return module inline throw",built_in:"DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI",literal:"true false null and or shl shr mod"},illegal:/\/\*/,contains:[a.COMMENT("#rem","#end"),a.COMMENT("'","$",{relevance:0}),{className:"function",beginKeywords:"function method",end:"[(=:]|$",illegal:/\n/,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"$",contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{className:"variable",begin:"\\b(self|super)\\b"},{className:"preprocessor",beginKeywords:"import",end:"$"},{className:"preprocessor",begin:"\\s*#",end:"$",keywords:"if else elseif endif end then"},{className:"pi",begin:"^\\s*strict\\b"},{beginKeywords:"alias",end:"=",contains:[a.UNDERSCORE_TITLE_MODE]},a.QUOTE_STRING_MODE,b]}}),a.registerLanguage("nginx",function(a){var b={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+a.UNDERSCORE_IDENT_RE}]},c={endsWithParent:!0,lexemes:"[a-z/_]+",keywords:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[a.HASH_COMMENT_MODE,{className:"string",contains:[a.BACKSLASH_ESCAPE,b],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{className:"url",begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[b]},{className:"regexp",contains:[a.BACKSLASH_ESCAPE,b],variants:[{begin:"\\s\\^",end:"\\s|{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},b]};return{aliases:["nginxconf"],contains:[a.HASH_COMMENT_MODE,{begin:a.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"title",begin:a.UNDERSCORE_IDENT_RE,starts:c}],relevance:0}],illegal:"[^\\s\\}]"}}),a.registerLanguage("nimrod",function(a){return{aliases:["nim"],keywords:{keyword:"addr and as asm bind block break|0 case|0 cast const|0 continue|0 converter discard distinct|10 div do elif else|0 end|0 enum|0 except export finally for from generic if|0 import|0 in include|0 interface is isnot|10 iterator|10 let|0 macro method|10 mixin mod nil not notin|10 object|0 of or out proc|10 ptr raise ref|10 return shl shr static template try|0 tuple type|0 using|0 var|0 when while|0 with without xor yield",literal:"shared guarded stdin stdout stderr result|10 true false"},contains:[{className:"decorator",begin:/{\./,end:/\.}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/,end:/"""/},a.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/,relevance:0},{className:"type",begin:/\b(int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|float|float32|float64|bool|char|string|cstring|pointer|expr|stmt|void|auto|any|range|array|openarray|varargs|seq|set|clong|culong|cchar|cschar|cshort|cint|csize|clonglong|cfloat|cdouble|clongdouble|cuchar|cushort|cuint|culonglong|cstringarray|semistatic)\b/},{className:"number",begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},a.HASH_COMMENT_MODE]}}),a.registerLanguage("nix",function(a){var b={keyword:"rec with let in inherit assert if else then",constant:"true false or and null",built_in:"import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation"},c={className:"subst",begin:/\$\{/,end:/}/,keywords:b},d={className:"variable",begin:/[a-zA-Z0-9-_]+(\s*=)/,relevance:0},e={className:"string",begin:"''",end:"''",contains:[c]},f={className:"string",begin:'"',end:'"',contains:[c]},g=[a.NUMBER_MODE,a.HASH_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,e,f,d];return c.contains=g,{aliases:["nixos"],keywords:b,contains:g}}),a.registerLanguage("nsis",function(a){var b={className:"symbol",begin:"\\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)"},c={className:"constant",begin:"\\$+{[a-zA-Z0-9_]+}"},d={className:"variable",begin:"\\$+[a-zA-Z0-9_]+",illegal:"\\(\\){}"},e={className:"constant",begin:"\\$+\\([a-zA-Z0-9_]+\\)"},f={className:"params",begin:"(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)"},g={className:"constant",begin:"\\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)"};return{case_insensitive:!1,keywords:{keyword:"Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetPluginUnload SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption SubSectionEnd Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle", +literal:"admin all auto both colored current false force hide highest lastused leave listonly none normal notset off on open print show silent silentlog smooth textonly true user "},contains:[a.HASH_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[{className:"symbol",begin:"\\$(\\\\(n|r|t)|\\$)"},b,c,d,e]},a.COMMENT(";","$",{relevance:0}),{className:"function",beginKeywords:"Function PageEx Section SectionGroup SubSection",end:"$"},g,c,d,e,f,a.NUMBER_MODE,{className:"literal",begin:a.IDENT_RE+"::"+a.IDENT_RE}]}}),a.registerLanguage("objectivec",function(a){var b={className:"built_in",begin:"(AV|CA|CF|CG|CI|MK|MP|NS|UI)\\w+"},c={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},d=/[a-zA-Z@][a-zA-Z0-9_]*/,e="@interface @class @protocol @implementation";return{aliases:["mm","objc","obj-c"],keywords:c,lexemes:d,illegal:""}]}]},{className:"class",begin:"("+e.split(" ").join("|")+")\\b",end:"({|$)",excludeEnd:!0,keywords:e,lexemes:d,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"variable",begin:"\\."+a.UNDERSCORE_IDENT_RE,relevance:0}]}}),a.registerLanguage("ocaml",function(a){return{aliases:["ml"],keywords:{keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},illegal:/\/\/|>>/,lexemes:"[a-z_]\\w*!?",contains:[{className:"literal",begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},a.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"tag",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*"},a.inherit(a.APOS_STRING_MODE,{className:"char",relevance:0}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}}),a.registerLanguage("openscad",function(a){var b={className:"keyword",begin:"\\$(f[asn]|t|vp[rtd]|children)"},c={className:"literal",begin:"false|true|PI|undef"},d={className:"number",begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0},e=a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),f={className:"preprocessor",keywords:"include use",begin:"include|use <",end:">"},g={className:"params",begin:"\\(",end:"\\)",contains:["self",d,e,b,c]},h={className:"built_in",begin:"[*!#%]",relevance:0},i={className:"function",beginKeywords:"module function",end:"\\=|\\{",contains:[g,a.UNDERSCORE_TITLE_MODE]};return{aliases:["scad"],keywords:{keyword:"function module include use for intersection_for if else \\%",literal:"false true PI undef",built_in:"circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign"},contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,d,f,e,b,h,i]}}),a.registerLanguage("oxygene",function(a){var b="abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained",c=a.COMMENT("{","}",{relevance:0}),d=a.COMMENT("\\(\\*","\\*\\)",{relevance:10}),e={className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},f={className:"string",begin:"(#\\d+)+"},g={className:"function",beginKeywords:"function constructor destructor procedure method",end:"[:;]",keywords:"function constructor|10 destructor|10 procedure|10 method|10",contains:[a.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",keywords:b,contains:[e,f]},c,d]};return{case_insensitive:!0,keywords:b,illegal:'("|\\$[G-Zg-z]|\\/\\*||->)',contains:[c,d,a.C_LINE_COMMENT_MODE,e,f,a.NUMBER_MODE,g,{className:"class",begin:"=\\bclass\\b",end:"end;",keywords:b,contains:[e,f,c,d,a.C_LINE_COMMENT_MODE,g]}]}}),a.registerLanguage("parser3",function(a){var b=a.COMMENT("{","}",{contains:["self"]});return{subLanguage:"xml",relevance:0,contains:[a.COMMENT("^#","$"),a.COMMENT("\\^rem{","}",{relevance:10,contains:[b]}),{className:"preprocessor",begin:"^@(?:BASE|USE|CLASS|OPTIONS)$",relevance:10},{className:"title",begin:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{className:"variable",begin:"\\$\\{?[\\w\\-\\.\\:]+\\}?"},{className:"keyword",begin:"\\^[\\w\\-\\.\\:]+"},{className:"number",begin:"\\^#[0-9a-fA-F]+"},a.C_NUMBER_MODE]}}),a.registerLanguage("pf",function(a){var b={className:"variable",begin:/\$[\w\d#@][\w\d_]*/},c={className:"variable",begin://};return{aliases:["pf.conf"],lexemes:/[a-z0-9_<>-]+/,keywords:{built_in:"block match pass load anchor|5 antispoof|10 set table",keyword:"in out log quick on rdomain inet inet6 proto from port os to routeallow-opts divert-packet divert-reply divert-to flags group icmp-typeicmp6-type label once probability recieved-on rtable prio queuetos tag tagged user keep fragment for os dropaf-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robinsource-hash static-portdup-to reply-to route-toparent bandwidth default min max qlimitblock-policy debug fingerprints hostid limit loginterface optimizationreassemble ruleset-optimization basic none profile skip state-defaultsstate-policy timeoutconst counters persistno modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppysource-track global rule max-src-nodes max-src-states max-src-connmax-src-conn-rate overload flushscrub|5 max-mss min-ttl no-df|10 random-id",literal:"all any no-route self urpf-failed egress|5 unknown"},contains:[a.HASH_COMMENT_MODE,a.NUMBER_MODE,a.QUOTE_STRING_MODE,b,c]}}),a.registerLanguage("php",function(a){var b={className:"variable",begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},c={className:"preprocessor",begin:/<\?(php)?|\?>/},d={className:"string",contains:[a.BACKSLASH_ESCAPE,c],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null})]},e={variants:[a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]};return{aliases:["php3","php4","php5","php6"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",contains:[a.C_LINE_COMMENT_MODE,a.HASH_COMMENT_MODE,a.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"},c]}),a.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:a.UNDERSCORE_IDENT_RE}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[a.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},c,b,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",b,a.C_BLOCK_COMMENT_MODE,d,e]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[a.UNDERSCORE_TITLE_MODE]},{begin:"=>"},d,e]}}),a.registerLanguage("powershell",function(a){var b={begin:"`[\\s\\S]",relevance:0},c={className:"variable",variants:[{begin:/\$[\w\d][\w\d_:]*/}]},d={className:"string",begin:/"/,end:/"/,contains:[b,c,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},e={className:"string",begin:/'/,end:/'/};return{aliases:["ps"],lexemes:/-?[A-z\.\-]+/,case_insensitive:!0,keywords:{keyword:"if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch",literal:"$null $true $false",built_in:"Add-Content Add-History Add-Member Add-PSSnapin Clear-Content Clear-Item Clear-Item Property Clear-Variable Compare-Object ConvertFrom-SecureString Convert-Path ConvertTo-Html ConvertTo-SecureString Copy-Item Copy-ItemProperty Export-Alias Export-Clixml Export-Console Export-Csv ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-Content Get-Credential Get-Culture Get-Date Get-EventLog Get-ExecutionPolicy Get-Help Get-History Get-Host Get-Item Get-ItemProperty Get-Location Get-Member Get-PfxCertificate Get-Process Get-PSDrive Get-PSProvider Get-PSSnapin Get-Service Get-TraceSource Get-UICulture Get-Unique Get-Variable Get-WmiObject Group-Object Import-Alias Import-Clixml Import-Csv Invoke-Expression Invoke-History Invoke-Item Join-Path Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Item New-ItemProperty New-Object New-PSDrive New-Service New-TimeSpan New-Variable Out-Default Out-File Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Remove-Item Remove-ItemProperty Remove-PSDrive Remove-PSSnapin Remove-Variable Rename-Item Rename-ItemProperty Resolve-Path Restart-Service Resume-Service Select-Object Select-String Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-Location Set-PSDebug Set-Service Set-TraceSource Set-Variable Sort-Object Split-Path Start-Service Start-Sleep Start-Transcript Stop-Process Stop-Service Stop-Transcript Suspend-Service Tee-Object Test-Path Trace-Command Update-FormatData Update-TypeData Where-Object Write-Debug Write-Error Write-Host Write-Output Write-Progress Write-Verbose Write-Warning",operator:"-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace"},contains:[a.HASH_COMMENT_MODE,a.NUMBER_MODE,d,e,c]}}),a.registerLanguage("processing",function(a){return{keywords:{keyword:"BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject Object StringDict StringList Table TableRow XML false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",constant:"P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI",variable:"displayHeight displayWidth mouseY mouseX mousePressed pmouseX pmouseY key keyCode pixels focused frameCount frameRate height width",title:"setup draw",built_in:"size createGraphics beginDraw createShape loadShape PShape arc ellipse line point quad rect triangle bezier bezierDetail bezierPoint bezierTangent curve curveDetail curvePoint curveTangent curveTightness shape shapeMode beginContour beginShape bezierVertex curveVertex endContour endShape quadraticVertex vertex ellipseMode noSmooth rectMode smooth strokeCap strokeJoin strokeWeight mouseClicked mouseDragged mouseMoved mousePressed mouseReleased mouseWheel keyPressed keyPressedkeyReleased keyTyped print println save saveFrame day hour millis minute month second year background clear colorMode fill noFill noStroke stroke alpha blue brightness color green hue lerpColor red saturation modelX modelY modelZ screenX screenY screenZ ambient emissive shininess specular add createImage beginCamera camera endCamera frustum ortho perspective printCamera printProjection cursor frameRate noCursor exit loop noLoop popStyle pushStyle redraw binary boolean byte char float hex int str unbinary unhex join match matchAll nf nfc nfp nfs split splitTokens trim append arrayCopy concat expand reverse shorten sort splice subset box sphere sphereDetail createInput createReader loadBytes loadJSONArray loadJSONObject loadStrings loadTable loadXML open parseXML saveTable selectFolder selectInput beginRaw beginRecord createOutput createWriter endRaw endRecord PrintWritersaveBytes saveJSONArray saveJSONObject saveStream saveStrings saveXML selectOutput popMatrix printMatrix pushMatrix resetMatrix rotate rotateX rotateY rotateZ scale shearX shearY translate ambientLight directionalLight lightFalloff lights lightSpecular noLights normal pointLight spotLight image imageMode loadImage noTint requestImage tint texture textureMode textureWrap blend copy filter get loadPixels set updatePixels blendMode loadShader PShaderresetShader shader createFont loadFont text textFont textAlign textLeading textMode textSize textWidth textAscent textDescent abs ceil constrain dist exp floor lerp log mag map max min norm pow round sq sqrt acos asin atan atan2 cos degrees radians sin tan noise noiseDetail noiseSeed random randomGaussian randomSeed"},contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE]}}),a.registerLanguage("profile",function(a){return{contains:[a.C_NUMBER_MODE,{className:"built_in",begin:"{",end:"}$",excludeBegin:!0,excludeEnd:!0,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE],relevance:0},{className:"filename",begin:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",end:":",excludeEnd:!0},{className:"header",begin:"(ncalls|tottime|cumtime)",end:"$",keywords:"ncalls tottime|10 cumtime|10 filename",relevance:10},{className:"summary",begin:"function calls",end:"$",contains:[a.C_NUMBER_MODE],relevance:10},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"function",begin:"\\(",end:"\\)$",contains:[a.UNDERSCORE_TITLE_MODE],relevance:0}]}}),a.registerLanguage("prolog",function(a){var b={className:"atom",begin:/[a-z][A-Za-z0-9_]*/,relevance:0},c={className:"name",variants:[{begin:/[A-Z][a-zA-Z0-9_]*/},{begin:/_[A-Za-z0-9_]*/}],relevance:0},d={begin:/\(/,end:/\)/,relevance:0},e={begin:/\[/,end:/\]/},f={className:"comment",begin:/%/,end:/$/,contains:[a.PHRASAL_WORDS_MODE]},g={className:"string",begin:/`/,end:/`/,contains:[a.BACKSLASH_ESCAPE]},h={className:"string",begin:/0\'(\\\'|.)/},i={className:"string",begin:/0\'\\s/},j={begin:/:-/},k=[b,c,d,j,e,f,a.C_BLOCK_COMMENT_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,g,h,i,a.C_NUMBER_MODE];return d.contains=k,e.contains=k,{contains:k.concat([{begin:/\.$/}])}}),a.registerLanguage("protobuf",function(a){return{keywords:{keyword:"package import option optional required repeated group",built_in:"double float int32 int64 uint32 uint64 sint32 sint64 fixed32 fixed64 sfixed32 sfixed64 bool string bytes",literal:"true false"},contains:[a.QUOTE_STRING_MODE,a.NUMBER_MODE,a.C_LINE_COMMENT_MODE,{className:"class",beginKeywords:"message enum service",end:/\{/,illegal:/\n/,contains:[a.inherit(a.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"function",beginKeywords:"rpc",end:/;/,excludeEnd:!0,keywords:"rpc returns"},{className:"constant",begin:/^\s*[A-Z_]+/,end:/\s*=/,excludeEnd:!0}]}}),a.registerLanguage("puppet",function(a){var b={keyword:"and case default else elsif false if in import enherits node or true undef unless main settings $string ",literal:"alias audit before loglevel noop require subscribe tag owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check en_address ip_address realname command environment hour monute month monthday special target weekday creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey sslverify mounted",built_in:"architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version"},c=a.COMMENT("#","$"),d="([A-Za-z_]|::)(\\w|::)*",e=a.inherit(a.TITLE_MODE,{begin:d}),f={className:"variable",begin:"\\$"+d},g={className:"string",contains:[a.BACKSLASH_ESCAPE,f],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]};return{aliases:["pp"],contains:[c,f,g,{beginKeywords:"class",end:"\\{|;",illegal:/=/,contains:[e,c]},{beginKeywords:"define",end:/\{/,contains:[{className:"title",begin:a.IDENT_RE,endsParent:!0}]},{begin:a.IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\S/,contains:[{className:"name",begin:a.IDENT_RE},{begin:/\{/,end:/\}/,keywords:b,relevance:0,contains:[g,c,{begin:"[a-zA-Z_]+\\s*=>"},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},f]}],relevance:0}]}}),a.registerLanguage("python",function(a){var b={className:"prompt",begin:/^(>>>|\.\.\.) /},c={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[b],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[b],relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE]},d={className:"number",relevance:0,variants:[{begin:a.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:a.C_NUMBER_RE+"[lLjJ]?"}]},e={className:"params",begin:/\(/,end:/\)/,contains:["self",b,d,c]};return{aliases:["py","gyp"],keywords:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},illegal:/(<\/|->|\?)/,contains:[b,d,c,a.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def",relevance:10},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[a.UNDERSCORE_TITLE_MODE,e]},{className:"decorator",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}),a.registerLanguage("q",function(a){var b={keyword:"do while select delete by update from",constant:"0b 1b",built_in:"neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum",typename:"`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid"};return{aliases:["k","kdb"],keywords:b,lexemes:/\b(`?)[A-Za-z0-9_]+\b/,contains:[a.C_LINE_COMMENT_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE]}}),a.registerLanguage("r",function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{contains:[a.HASH_COMMENT_MODE,{begin:b,lexemes:b,keywords:{keyword:"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{begin:"`",end:"`",relevance:0},{className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]}]}}),a.registerLanguage("rib",function(a){return{keywords:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",illegal:""}]}}),a.registerLanguage("scala",function(a){var b={className:"annotation",begin:"@[A-Za-z]+"},c={className:"string",begin:'u?r?"""',end:'"""',relevance:10},d={className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},e={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},f={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},g={className:"class",beginKeywords:"class object trait type",end:/[:={\[(\n;]/,contains:[{className:"keyword",beginKeywords:"extends with",relevance:10},f]},h={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,contains:[f]};return{keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,c,a.QUOTE_STRING_MODE,d,e,h,g,a.C_NUMBER_MODE,b]}}),a.registerLanguage("scheme",function(a){var b="[^\\(\\)\\[\\]\\{\\}\",'`;#|\\\\\\s]+",c="(\\-|\\+)?\\d+([./]\\d+)?",d=c+"[+\\-]"+c+"i",e={built_in:"case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules ' * + , ,@ - ... / ; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"},f={className:"shebang",begin:"^#!",end:"$"},g={className:"literal",begin:"(#t|#f|#\\\\"+b+"|#\\\\.)"},h={className:"number",variants:[{begin:c,relevance:0},{begin:d,relevance:0},{begin:"#b[0-1]+(/[0-1]+)?"},{begin:"#o[0-7]+(/[0-7]+)?"},{begin:"#x[0-9a-f]+(/[0-9a-f]+)?"}]},i=a.QUOTE_STRING_MODE,j=[a.COMMENT(";","$",{relevance:0}),a.COMMENT("#\\|","\\|#")],k={begin:b,relevance:0},l={className:"variable",begin:"'"+b},m={endsWithParent:!0,relevance:0},n={className:"list",variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}],contains:[{className:"keyword",begin:b,lexemes:b,keywords:e},m]};return m.contains=[g,h,i,k,l,n].concat(j),{illegal:/\S/,contains:[f,h,i,l,n].concat(j)}}),a.registerLanguage("scilab",function(a){var b=[a.C_NUMBER_MODE,{className:"string",begin:"'|\"",end:"'|\"",contains:[a.BACKSLASH_ESCAPE,{begin:"''"}]}];return{aliases:["sci"],keywords:{keyword:"abort break case clear catch continue do elseif else endfunction end for functionglobal if pause return resume select try then while%f %F %t %T %pi %eps %inf %nan %e %i %z %s",built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp errorexec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isemptyisinfisnan isvector lasterror length load linspace list listfiles log10 log2 logmax min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand realround sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tantype typename warning zeros matrix"},illegal:'("|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function endfunction",end:"$",keywords:"function endfunction|10",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},{className:"transposed_variable",begin:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",end:"",relevance:0},{className:"matrix",begin:"\\[",end:"\\]'*[\\.']*",relevance:0,contains:b},a.COMMENT("//","$")].concat(b)}}),a.registerLanguage("scss",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*",c={className:"variable",begin:"(\\$"+b+")\\b"},d={className:"function",begin:b+"\\(",returnBegin:!0,excludeEnd:!0,end:"\\("},e={className:"hexcolor",begin:"#[0-9A-Fa-f]+"};({className:"attribute",begin:"[A-Z\\_\\.\\-]+",end:":",excludeEnd:!0,illegal:"[^\\s]",starts:{className:"value",endsWithParent:!0,excludeEnd:!0,contains:[d,e,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,a.C_BLOCK_COMMENT_MODE,{className:"important",begin:"!important"}]}});return{case_insensitive:!0,illegal:"[=/|']",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,d,{className:"id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{className:"class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{className:"attr_selector",begin:"\\[",end:"\\]",illegal:"$"},{className:"tag",begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",relevance:0},{className:"pseudo",begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{className:"pseudo",begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},c,{className:"attribute",begin:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",illegal:"[^\\s]"},{className:"value",begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{className:"value",begin:":",end:";",contains:[d,c,e,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,{className:"important",begin:"!important"}]},{className:"at_rule",begin:"@",end:"[{;]",keywords:"mixin include extend for if else each while charset import debug media page content font-face namespace warn",contains:[d,c,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,e,a.CSS_NUMBER_MODE,{className:"preprocessor",begin:"\\s[A-Za-z0-9_.-]+",relevance:0}]}]}}),a.registerLanguage("smali",function(a){var b=["add","and","cmp","cmpg","cmpl","const","div","double","float","goto","if","int","long","move","mul","neg","new","nop","not","or","rem","return","shl","shr","sput","sub","throw","ushr","xor"],c=["aget","aput","array","check","execute","fill","filled","goto/16","goto/32","iget","instance","invoke","iput","monitor","packed","sget","sparse"],d=["transient","constructor","abstract","final","synthetic","public","private","protected","static","bridge","system"];return{aliases:["smali"],contains:[{className:"string",begin:'"',end:'"',relevance:0},a.COMMENT("#","$",{relevance:0}),{className:"keyword",begin:"\\s*\\.end\\s[a-zA-Z0-9]*",relevance:1},{className:"keyword",begin:"^[ ]*\\.[a-zA-Z]*",relevance:0},{className:"keyword",begin:"\\s:[a-zA-Z_0-9]*",relevance:0},{className:"keyword",begin:"\\s("+d.join("|")+")",relevance:1},{className:"keyword",begin:"\\[",relevance:0},{className:"instruction",begin:"\\s("+b.join("|")+")\\s",relevance:1},{className:"instruction",begin:"\\s("+b.join("|")+")((\\-|/)[a-zA-Z0-9]+)+\\s",relevance:10},{className:"instruction",begin:"\\s("+c.join("|")+")((\\-|/)[a-zA-Z0-9]+)*\\s",relevance:10},{className:"class",begin:"L[^(;:\n]*;",relevance:0},{className:"function",begin:'( |->)[^(\n ;"]*\\(',relevance:0},{className:"function",begin:"\\)",relevance:0},{className:"variable",begin:"[vp][0-9]+",relevance:0}]}}),a.registerLanguage("smalltalk",function(a){var b="[a-z][a-zA-Z0-9_]*",c={className:"char",begin:"\\$.{1}"},d={className:"symbol",begin:"#"+a.UNDERSCORE_IDENT_RE};return{aliases:["st"],keywords:"self super nil true false thisContext",contains:[a.COMMENT('"','"'),a.APOS_STRING_MODE,{className:"class",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},{className:"method",begin:b+":",relevance:0},a.C_NUMBER_MODE,d,c,{className:"localvars",begin:"\\|[ ]*"+b+"([ ]+"+b+")*[ ]*\\|",returnBegin:!0,end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?"+b}]},{className:"array",begin:"\\#\\(",end:"\\)",contains:[a.APOS_STRING_MODE,c,a.C_NUMBER_MODE,d]}]}}),a.registerLanguage("sml",function(a){return{aliases:["ml"],keywords:{keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while",built_in:"array bool char exn int list option order real ref string substring vector unit word",literal:"true false NONE SOME LESS EQUAL GREATER nil"},illegal:/\/\/|>>/,lexemes:"[a-z_]\\w*!?",contains:[{className:"literal",begin:"\\[(\\|\\|)?\\]|\\(\\)"},a.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"tag",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*"},a.inherit(a.APOS_STRING_MODE,{className:"char",relevance:0}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}}),a.registerLanguage("sqf",function(a){var b=["!","-","+","!=","%","&&","*","/","=","==",">",">=","<","<=","or","plus","^",":",">>","abs","accTime","acos","action","actionKeys","actionKeysImages","actionKeysNames","actionKeysNamesArray","actionName","activateAddons","activatedAddons","activateKey","addAction","addBackpack","addBackpackCargo","addBackpackCargoGlobal","addBackpackGlobal","addCamShake","addCuratorAddons","addCuratorCameraArea","addCuratorEditableObjects","addCuratorEditingArea","addCuratorPoints","addEditorObject","addEventHandler","addGoggles","addGroupIcon","addHandgunItem","addHeadgear","addItem","addItemCargo","addItemCargoGlobal","addItemPool","addItemToBackpack","addItemToUniform","addItemToVest","addLiveStats","addMagazine","addMagazine array","addMagazineAmmoCargo","addMagazineCargo","addMagazineCargoGlobal","addMagazineGlobal","addMagazinePool","addMagazines","addMagazineTurret","addMenu","addMenuItem","addMissionEventHandler","addMPEventHandler","addMusicEventHandler","addPrimaryWeaponItem","addPublicVariableEventHandler","addRating","addResources","addScore","addScoreSide","addSecondaryWeaponItem","addSwitchableUnit","addTeamMember","addToRemainsCollector","addUniform","addVehicle","addVest","addWaypoint","addWeapon","addWeaponCargo","addWeaponCargoGlobal","addWeaponGlobal","addWeaponPool","addWeaponTurret","agent","agents","AGLToASL","aimedAtTarget","aimPos","airDensityRTD","airportSide","AISFinishHeal","alive","allControls","allCurators","allDead","allDeadMen","allDisplays","allGroups","allMapMarkers","allMines","allMissionObjects","allow3DMode","allowCrewInImmobile","allowCuratorLogicIgnoreAreas","allowDamage","allowDammage","allowFileOperations","allowFleeing","allowGetIn","allPlayers","allSites","allTurrets","allUnits","allUnitsUAV","allVariables","ammo","and","animate","animateDoor","animationPhase","animationState","append","armoryPoints","arrayIntersect","asin","ASLToAGL","ASLToATL","assert","assignAsCargo","assignAsCargoIndex","assignAsCommander","assignAsDriver","assignAsGunner","assignAsTurret","assignCurator","assignedCargo","assignedCommander","assignedDriver","assignedGunner","assignedItems","assignedTarget","assignedTeam","assignedVehicle","assignedVehicleRole","assignItem","assignTeam","assignToAirport","atan","atan2","atg","ATLToASL","attachedObject","attachedObjects","attachedTo","attachObject","attachTo","attackEnabled","backpack","backpackCargo","backpackContainer","backpackItems","backpackMagazines","backpackSpaceFor","behaviour","benchmark","binocular","blufor","boundingBox","boundingBoxReal","boundingCenter","breakOut","breakTo","briefingName","buildingExit","buildingPos","buttonAction","buttonSetAction","cadetMode","call","callExtension","camCommand","camCommit","camCommitPrepared","camCommitted","camConstuctionSetParams","camCreate","camDestroy","cameraEffect","cameraEffectEnableHUD","cameraInterest","cameraOn","cameraView","campaignConfigFile","camPreload","camPreloaded","camPrepareBank","camPrepareDir","camPrepareDive","camPrepareFocus","camPrepareFov","camPrepareFovRange","camPreparePos","camPrepareRelPos","camPrepareTarget","camSetBank","camSetDir","camSetDive","camSetFocus","camSetFov","camSetFovRange","camSetPos","camSetRelPos","camSetTarget","camTarget","camUseNVG","canAdd","canAddItemToBackpack","canAddItemToUniform","canAddItemToVest","cancelSimpleTaskDestination","canFire","canMove","canSlingLoad","canStand","canUnloadInCombat","captive","captiveNum","case","catch","cbChecked","cbSetChecked","ceil","cheatsEnabled","checkAIFeature","civilian","className","clearAllItemsFromBackpack","clearBackpackCargo","clearBackpackCargoGlobal","clearGroupIcons","clearItemCargo","clearItemCargoGlobal","clearItemPool","clearMagazineCargo","clearMagazineCargoGlobal","clearMagazinePool","clearOverlay","clearRadio","clearWeaponCargo","clearWeaponCargoGlobal","clearWeaponPool","closeDialog","closeDisplay","closeOverlay","collapseObjectTree","combatMode","commandArtilleryFire","commandChat","commander","commandFire","commandFollow","commandFSM","commandGetOut","commandingMenu","commandMove","commandRadio","commandStop","commandTarget","commandWatch","comment","commitOverlay","compile","compileFinal","completedFSM","composeText","configClasses","configFile","configHierarchy","configName","configProperties","configSourceMod","configSourceModList","connectTerminalToUAV","controlNull","controlsGroupCtrl","copyFromClipboard","copyToClipboard","copyWaypoints","cos","count","countEnemy","countFriendly","countSide","countType","countUnknown","createAgent","createCenter","createDialog","createDiaryLink","createDiaryRecord","createDiarySubject","createDisplay","createGearDialog","createGroup","createGuardedPoint","createLocation","createMarker","createMarkerLocal","createMenu","createMine","createMissionDisplay","createSimpleTask","createSite","createSoundSource","createTask","createTeam","createTrigger","createUnit","createUnit array","createVehicle","createVehicle array","createVehicleCrew","createVehicleLocal","crew","ctrlActivate","ctrlAddEventHandler","ctrlAutoScrollDelay","ctrlAutoScrollRewind","ctrlAutoScrollSpeed","ctrlChecked","ctrlClassName","ctrlCommit","ctrlCommitted","ctrlCreate","ctrlDelete","ctrlEnable","ctrlEnabled","ctrlFade","ctrlHTMLLoaded","ctrlIDC","ctrlIDD","ctrlMapAnimAdd","ctrlMapAnimClear","ctrlMapAnimCommit","ctrlMapAnimDone","ctrlMapCursor","ctrlMapMouseOver","ctrlMapScale","ctrlMapScreenToWorld","ctrlMapWorldToScreen","ctrlModel","ctrlModelDirAndUp","ctrlModelScale","ctrlParent","ctrlPosition","ctrlRemoveAllEventHandlers","ctrlRemoveEventHandler","ctrlScale","ctrlSetActiveColor","ctrlSetAutoScrollDelay","ctrlSetAutoScrollRewind","ctrlSetAutoScrollSpeed","ctrlSetBackgroundColor","ctrlSetChecked","ctrlSetEventHandler","ctrlSetFade","ctrlSetFocus","ctrlSetFont","ctrlSetFontH1","ctrlSetFontH1B","ctrlSetFontH2","ctrlSetFontH2B","ctrlSetFontH3","ctrlSetFontH3B","ctrlSetFontH4","ctrlSetFontH4B","ctrlSetFontH5","ctrlSetFontH5B","ctrlSetFontH6","ctrlSetFontH6B","ctrlSetFontHeight","ctrlSetFontHeightH1","ctrlSetFontHeightH2","ctrlSetFontHeightH3","ctrlSetFontHeightH4","ctrlSetFontHeightH5","ctrlSetFontHeightH6","ctrlSetFontP","ctrlSetFontPB","ctrlSetForegroundColor","ctrlSetModel","ctrlSetModelDirAndUp","ctrlSetModelScale","ctrlSetPosition","ctrlSetScale","ctrlSetStructuredText","ctrlSetText","ctrlSetTextColor","ctrlSetTooltip","ctrlSetTooltipColorBox","ctrlSetTooltipColorShade","ctrlSetTooltipColorText","ctrlShow","ctrlShown","ctrlText","ctrlTextHeight","ctrlType","ctrlVisible","curatorAddons","curatorCamera","curatorCameraArea","curatorCameraAreaCeiling","curatorCoef","curatorEditableObjects","curatorEditingArea","curatorEditingAreaType","curatorMouseOver","curatorPoints","curatorRegisteredObjects","curatorSelected","curatorWaypointCost","currentChannel","currentCommand","currentMagazine","currentMagazineDetail","currentMagazineDetailTurret","currentMagazineTurret","currentMuzzle","currentNamespace","currentTask","currentTasks","currentThrowable","currentVisionMode","currentWaypoint","currentWeapon","currentWeaponMode","currentWeaponTurret","currentZeroing","cursorTarget","customChat","customRadio","cutFadeOut","cutObj","cutRsc","cutText","damage","date","dateToNumber","daytime","deActivateKey","debriefingText","debugFSM","debugLog","default","deg","deleteAt","deleteCenter","deleteCollection","deleteEditorObject","deleteGroup","deleteIdentity","deleteLocation","deleteMarker","deleteMarkerLocal","deleteRange","deleteResources","deleteSite","deleteStatus","deleteTeam","deleteVehicle","deleteVehicleCrew","deleteWaypoint","detach","detectedMines","diag activeMissionFSMs","diag activeSQFScripts","diag activeSQSScripts","diag captureFrame","diag captureSlowFrame","diag fps","diag fpsMin","diag frameNo","diag log","diag logSlowFrame","diag tickTime","dialog","diarySubjectExists","didJIP","didJIPOwner","difficulty","difficultyEnabled","difficultyEnabledRTD","direction","directSay","disableAI","disableCollisionWith","disableConversation","disableDebriefingStats","disableSerialization","disableTIEquipment","disableUAVConnectability","disableUserInput","displayAddEventHandler","displayCtrl","displayNull","displayRemoveAllEventHandlers","displayRemoveEventHandler","displaySetEventHandler","dissolveTeam","distance","distance2D","distanceSqr","distributionRegion","do","doArtilleryFire","doFire","doFollow","doFSM","doGetOut","doMove","doorPhase","doStop","doTarget","doWatch","drawArrow","drawEllipse","drawIcon","drawIcon3D","drawLine","drawLine3D","drawLink","drawLocation","drawRectangle","driver","drop","east","echo","editObject","editorSetEventHandler","effectiveCommander","else","emptyPositions","enableAI","enableAIFeature","enableAttack","enableCamShake","enableCaustics","enableCollisionWith","enableCopilot","enableDebriefingStats","enableDiagLegend","enableEndDialog","enableEngineArtillery","enableEnvironment","enableFatigue","enableGunLights","enableIRLasers","enableMimics","enablePersonTurret","enableRadio","enableReload","enableRopeAttach","enableSatNormalOnDetail","enableSaving","enableSentences","enableSimulation","enableSimulationGlobal","enableTeamSwitch","enableUAVConnectability","enableUAVWaypoints","endLoadingScreen","endMission","engineOn","enginesIsOnRTD","enginesRpmRTD","enginesTorqueRTD","entities","estimatedEndServerTime","estimatedTimeLeft","evalObjectArgument","everyBackpack","everyContainer","exec","execEditorScript","execFSM","execVM","exit","exitWith","exp","expectedDestination","eyeDirection","eyePos","face","faction","fadeMusic","fadeRadio","fadeSound","fadeSpeech","failMission","false","fillWeaponsFromPool","find","findCover","findDisplay","findEditorObject","findEmptyPosition","findEmptyPositionReady","findNearestEnemy","finishMissionInit","finite","fire","fireAtTarget","firstBackpack","flag","flagOwner","fleeing","floor","flyInHeight","fog","fogForecast","fogParams","for","forceAddUniform","forceEnd","forceMap","forceRespawn","forceSpeed","forceWalk","forceWeaponFire","forceWeatherChange","forEach","forEachMember","forEachMemberAgent","forEachMemberTeam","format","formation","formationDirection","formationLeader","formationMembers","formationPosition","formationTask","formatText","formLeader","freeLook","from","fromEditor","fuel","fullCrew","gearSlotAmmoCount","gearSlotData","getAllHitPointsDamage","getAmmoCargo","getArray","getArtilleryAmmo","getArtilleryComputerSettings","getArtilleryETA","getAssignedCuratorLogic","getAssignedCuratorUnit","getBackpackCargo","getBleedingRemaining","getBurningValue","getCargoIndex","getCenterOfMass","getClientState","getConnectedUAV","getDammage","getDescription","getDir","getDirVisual","getDLCs","getEditorCamera","getEditorMode","getEditorObjectScope","getElevationOffset","getFatigue","getFriend","getFSMVariable","getFuelCargo","getGroupIcon","getGroupIconParams","getGroupIcons","getHideFrom","getHit","getHitIndex","getHitPointDamage","getItemCargo","getMagazineCargo","getMarkerColor","getMarkerPos","getMarkerSize","getMarkerType","getMass","getModelInfo","getNumber","getObjectArgument","getObjectChildren","getObjectDLC","getObjectMaterials","getObjectProxy","getObjectTextures","getObjectType","getObjectViewDistance","getOxygenRemaining","getPersonUsedDLCs","getPlayerChannel","getPlayerUID","getPos","getPosASL","getPosASLVisual","getPosASLW","getPosATL","getPosATLVisual","getPosVisual","getPosWorld","getRepairCargo","getResolution","getShadowDistance","getSlingLoad","getSpeed","getSuppression","getTerrainHeightASL","getText","getVariable","getWeaponCargo","getWPPos","glanceAt","globalChat","globalRadio","goggles","goto","group","groupChat","groupFromNetId","groupIconSelectable","groupIconsVisible","groupId","groupOwner","groupRadio","groupSelectedUnits","groupSelectUnit","grpNull","gunner","gusts","halt","handgunItems","handgunMagazine","handgunWeapon","handsHit","hasInterface","hasWeapon","hcAllGroups","hcGroupParams","hcLeader","hcRemoveAllGroups","hcRemoveGroup","hcSelected","hcSelectGroup","hcSetGroup","hcShowBar","hcShownBar","headgear","hideBody","hideObject","hideObjectGlobal","hint","hintC","hintCadet","hintSilent","hmd","hostMission","htmlLoad","HUDMovementLevels","humidity","if","image","importAllGroups","importance","in","incapacitatedState","independent","inflame","inflamed","inGameUISetEventHandler","inheritsFrom","initAmbientLife","inputAction","inRangeOfArtillery","insertEditorObject","intersect","isAbleToBreathe","isAgent","isArray","isAutoHoverOn","isAutonomous","isAutotest","isBleeding","isBurning","isClass","isCollisionLightOn","isCopilotEnabled","isDedicated","isDLCAvailable","isEngineOn","isEqualTo","isFlashlightOn","isFlatEmpty","isForcedWalk","isFormationLeader","isHidden","isInRemainsCollector","isInstructorFigureEnabled","isIRLaserOn","isKeyActive","isKindOf","isLightOn","isLocalized","isManualFire","isMarkedForCollection","isMultiplayer","isNil","isNull","isNumber","isObjectHidden","isObjectRTD","isOnRoad","isPipEnabled","isPlayer","isRealTime","isServer","isShowing3DIcons","isSteamMission","isStreamFriendlyUIEnabled","isText","isTouchingGround","isTurnedOut","isTutHintsEnabled","isUAVConnectable","isUAVConnected","isUniformAllowed","isWalking","isWeaponDeployed","isWeaponRested","itemCargo","items","itemsWithMagazines","join","joinAs","joinAsSilent","joinSilent","joinString","kbAddDatabase","kbAddDatabaseTargets","kbAddTopic","kbHasTopic","kbReact","kbRemoveTopic","kbTell","kbWasSaid","keyImage","keyName","knowsAbout","land","landAt","landResult","language","laserTarget","lbAdd","lbClear","lbColor","lbCurSel","lbData","lbDelete","lbIsSelected","lbPicture","lbSelection","lbSetColor","lbSetCurSel","lbSetData","lbSetPicture","lbSetPictureColor","lbSetPictureColorDisabled","lbSetPictureColorSelected","lbSetSelectColor","lbSetSelectColorRight","lbSetSelected","lbSetTooltip","lbSetValue","lbSize","lbSort","lbSortByValue","lbText","lbValue","leader","leaderboardDeInit","leaderboardGetRows","leaderboardInit","leaveVehicle","libraryCredits","libraryDisclaimers","lifeState","lightAttachObject","lightDetachObject","lightIsOn","lightnings","limitSpeed","linearConversion","lineBreak","lineIntersects","lineIntersectsObjs","lineIntersectsSurfaces","lineIntersectsWith","linkItem","list","listObjects","ln","lnbAddArray","lnbAddColumn","lnbAddRow","lnbClear","lnbColor","lnbCurSelRow","lnbData","lnbDeleteColumn","lnbDeleteRow","lnbGetColumnsPosition","lnbPicture","lnbSetColor","lnbSetColumnsPos","lnbSetCurSelRow","lnbSetData","lnbSetPicture","lnbSetText","lnbSetValue","lnbSize","lnbText","lnbValue","load","loadAbs","loadBackpack","loadFile","loadGame","loadIdentity","loadMagazine","loadOverlay","loadStatus","loadUniform","loadVest","local","localize","locationNull","locationPosition","lock","lockCameraTo","lockCargo","lockDriver","locked","lockedCargo","lockedDriver","lockedTurret","lockTurret","lockWP","log","logEntities","lookAt","lookAtPos","magazineCargo","magazines","magazinesAllTurrets","magazinesAmmo","magazinesAmmoCargo","magazinesAmmoFull","magazinesDetail","magazinesDetailBackpack","magazinesDetailUniform","magazinesDetailVest","magazinesTurret","magazineTurretAmmo","mapAnimAdd","mapAnimClear","mapAnimCommit","mapAnimDone","mapCenterOnCamera","mapGridPosition","markAsFinishedOnSteam","markerAlpha","markerBrush","markerColor","markerDir","markerPos","markerShape","markerSize","markerText","markerType","max","members","min","mineActive","mineDetectedBy","missionConfigFile","missionName","missionNamespace","missionStart","mod","modelToWorld","modelToWorldVisual","moonIntensity","morale","move","moveInAny","moveInCargo","moveInCommander","moveInDriver","moveInGunner","moveInTurret","moveObjectToEnd","moveOut","moveTime","moveTo","moveToCompleted","moveToFailed","musicVolume","name","name location","nameSound","nearEntities","nearestBuilding","nearestLocation","nearestLocations","nearestLocationWithDubbing","nearestObject","nearestObjects","nearObjects","nearObjectsReady","nearRoads","nearSupplies","nearTargets","needReload","netId","netObjNull","newOverlay","nextMenuItemIndex","nextWeatherChange","nil","nMenuItems","not","numberToDate","objectCurators","objectFromNetId","objectParent","objNull","objStatus","onBriefingGroup","onBriefingNotes","onBriefingPlan","onBriefingTeamSwitch","onCommandModeChanged","onDoubleClick","onEachFrame","onGroupIconClick","onGroupIconOverEnter","onGroupIconOverLeave","onHCGroupSelectionChanged","onMapSingleClick","onPlayerConnected","onPlayerDisconnected","onPreloadFinished","onPreloadStarted","onShowNewObject","onTeamSwitch","openCuratorInterface","openMap","openYoutubeVideo","opfor","or","orderGetIn","overcast","overcastForecast","owner","param","params","parseNumber","parseText","parsingNamespace","particlesQuality","pi","pickWeaponPool","pitch","playableSlotsNumber","playableUnits","playAction","playActionNow","player","playerRespawnTime","playerSide","playersNumber","playGesture","playMission","playMove","playMoveNow","playMusic","playScriptedMission","playSound","playSound3D","position","positionCameraToWorld","posScreenToWorld","posWorldToScreen","ppEffectAdjust","ppEffectCommit","ppEffectCommitted","ppEffectCreate","ppEffectDestroy","ppEffectEnable","ppEffectForceInNVG","precision","preloadCamera","preloadObject","preloadSound","preloadTitleObj","preloadTitleRsc","preprocessFile","preprocessFileLineNumbers","primaryWeapon","primaryWeaponItems","primaryWeaponMagazine","priority","private","processDiaryLink","productVersion","profileName","profileNamespace","profileNameSteam","progressLoadingScreen","progressPosition","progressSetPosition","publicVariable","publicVariableClient","publicVariableServer","pushBack","putWeaponPool","queryItemsPool","queryMagazinePool","queryWeaponPool","rad","radioChannelAdd","radioChannelCreate","radioChannelRemove","radioChannelSetCallSign","radioChannelSetLabel","radioVolume","rain","rainbow","random","rank","rankId","rating","rectangular","registeredTasks","registerTask","reload","reloadEnabled","remoteControl","remoteExec","remoteExecCall","removeAction","removeAllActions","removeAllAssignedItems","removeAllContainers","removeAllCuratorAddons","removeAllCuratorCameraAreas","removeAllCuratorEditingAreas","removeAllEventHandlers","removeAllHandgunItems","removeAllItems","removeAllItemsWithMagazines","removeAllMissionEventHandlers","removeAllMPEventHandlers","removeAllMusicEventHandlers","removeAllPrimaryWeaponItems","removeAllWeapons","removeBackpack","removeBackpackGlobal","removeCuratorAddons","removeCuratorCameraArea","removeCuratorEditableObjects","removeCuratorEditingArea","removeDrawIcon","removeDrawLinks","removeEventHandler","removeFromRemainsCollector","removeGoggles","removeGroupIcon","removeHandgunItem","removeHeadgear","removeItem","removeItemFromBackpack","removeItemFromUniform","removeItemFromVest","removeItems","removeMagazine","removeMagazineGlobal","removeMagazines","removeMagazinesTurret","removeMagazineTurret","removeMenuItem","removeMissionEventHandler","removeMPEventHandler","removeMusicEventHandler","removePrimaryWeaponItem","removeSecondaryWeaponItem","removeSimpleTask","removeSwitchableUnit","removeTeamMember","removeUniform","removeVest","removeWeapon","removeWeaponGlobal","removeWeaponTurret","requiredVersion","resetCamShake","resetSubgroupDirection","resistance","resize","resources","respawnVehicle","restartEditorCamera","reveal","revealMine","reverse","reversedMouseY","roadsConnectedTo","roleDescription","ropeAttachedObjects","ropeAttachedTo","ropeAttachEnabled","ropeAttachTo","ropeCreate","ropeCut","ropeEndPosition","ropeLength","ropes","ropeUnwind","ropeUnwound","rotorsForcesRTD","rotorsRpmRTD","round","runInitScript","safeZoneH","safeZoneW","safeZoneWAbs","safeZoneX","safeZoneXAbs","safeZoneY","saveGame","saveIdentity","saveJoysticks","saveOverlay","saveProfileNamespace","saveStatus","saveVar","savingEnabled","say","say2D","say3D","scopeName","score","scoreSide","screenToWorld","scriptDone","scriptName","scriptNull","scudState","secondaryWeapon","secondaryWeaponItems","secondaryWeaponMagazine","select","selectBestPlaces","selectDiarySubject","selectedEditorObjects","selectEditorObject","selectionPosition","selectLeader","selectNoPlayer","selectPlayer","selectWeapon","selectWeaponTurret","sendAUMessage","sendSimpleCommand","sendTask","sendTaskResult","sendUDPMessage","serverCommand","serverCommandAvailable","serverCommandExecutable","serverName","serverTime","set","setAccTime","setAirportSide","setAmmo","setAmmoCargo","setAperture","setApertureNew","setArmoryPoints","setAttributes","setAutonomous","setBehaviour","setBleedingRemaining","setCameraInterest","setCamShakeDefParams","setCamShakeParams","setCamUseTi","setCaptive","setCenterOfMass","setCollisionLight","setCombatMode","setCompassOscillation","setCuratorCameraAreaCeiling","setCuratorCoef","setCuratorEditingAreaType","setCuratorWaypointCost","setCurrentChannel","setCurrentTask","setCurrentWaypoint","setDamage","setDammage","setDate","setDebriefingText","setDefaultCamera","setDestination","setDetailMapBlendPars","setDir","setDirection","setDrawIcon","setDropInterval","setEditorMode","setEditorObjectScope","setEffectCondition","setFace","setFaceAnimation","setFatigue","setFlagOwner","setFlagSide","setFlagTexture","setFog","setFog array","setFormation","setFormationTask","setFormDir","setFriend","setFromEditor","setFSMVariable","setFuel","setFuelCargo","setGroupIcon","setGroupIconParams","setGroupIconsSelectable","setGroupIconsVisible","setGroupId","setGroupIdGlobal","setGroupOwner","setGusts","setHideBehind","setHit","setHitIndex","setHitPointDamage","setHorizonParallaxCoef","setHUDMovementLevels","setIdentity","setImportance","setLeader","setLightAmbient","setLightAttenuation","setLightBrightness","setLightColor","setLightDayLight","setLightFlareMaxDistance","setLightFlareSize","setLightIntensity","setLightnings","setLightUseFlare","setLocalWindParams","setMagazineTurretAmmo","setMarkerAlpha","setMarkerAlphaLocal","setMarkerBrush","setMarkerBrushLocal","setMarkerColor","setMarkerColorLocal","setMarkerDir","setMarkerDirLocal","setMarkerPos","setMarkerPosLocal","setMarkerShape","setMarkerShapeLocal","setMarkerSize","setMarkerSizeLocal","setMarkerText","setMarkerTextLocal","setMarkerType","setMarkerTypeLocal","setMass","setMimic","setMousePosition","setMusicEffect","setMusicEventHandler","setName","setNameSound","setObjectArguments","setObjectMaterial","setObjectProxy","setObjectTexture","setObjectTextureGlobal","setObjectViewDistance","setOvercast","setOwner","setOxygenRemaining","setParticleCircle","setParticleClass","setParticleFire","setParticleParams","setParticleRandom","setPilotLight","setPiPEffect","setPitch","setPlayable","setPlayerRespawnTime","setPos","setPosASL","setPosASL2","setPosASLW","setPosATL","setPosition","setPosWorld","setRadioMsg","setRain","setRainbow","setRandomLip","setRank","setRectangular","setRepairCargo","setShadowDistance","setSide","setSimpleTaskDescription","setSimpleTaskDestination","setSimpleTaskTarget","setSimulWeatherLayers","setSize","setSkill","setSkill array","setSlingLoad","setSoundEffect","setSpeaker","setSpeech","setSpeedMode","setStatValue","setSuppression","setSystemOfUnits","setTargetAge","setTaskResult","setTaskState","setTerrainGrid","setText","setTimeMultiplier","setTitleEffect","setTriggerActivation","setTriggerArea","setTriggerStatements","setTriggerText","setTriggerTimeout","setTriggerType","setType","setUnconscious","setUnitAbility","setUnitPos","setUnitPosWeak","setUnitRank","setUnitRecoilCoefficient","setUnloadInCombat","setUserActionText","setVariable","setVectorDir","setVectorDirAndUp","setVectorUp","setVehicleAmmo","setVehicleAmmoDef","setVehicleArmor","setVehicleId","setVehicleLock","setVehiclePosition","setVehicleTiPars","setVehicleVarName","setVelocity","setVelocityTransformation","setViewDistance","setVisibleIfTreeCollapsed","setWaves","setWaypointBehaviour","setWaypointCombatMode","setWaypointCompletionRadius","setWaypointDescription","setWaypointFormation","setWaypointHousePosition","setWaypointLoiterRadius","setWaypointLoiterType","setWaypointName","setWaypointPosition","setWaypointScript","setWaypointSpeed","setWaypointStatements","setWaypointTimeout","setWaypointType","setWaypointVisible","setWeaponReloadingTime","setWind","setWindDir","setWindForce","setWindStr","setWPPos","show3DIcons","showChat","showCinemaBorder","showCommandingMenu","showCompass","showCuratorCompass","showGPS","showHUD","showLegend","showMap","shownArtilleryComputer","shownChat","shownCompass","shownCuratorCompass","showNewEditorObject","shownGPS","shownHUD","shownMap","shownPad","shownRadio","shownUAVFeed","shownWarrant","shownWatch","showPad","showRadio","showSubtitles","showUAVFeed","showWarrant","showWatch","showWaypoint","side","sideChat","sideEnemy","sideFriendly","sideLogic","sideRadio","sideUnknown","simpleTasks","simulationEnabled","simulCloudDensity","simulCloudOcclusion","simulInClouds","simulWeatherSync","sin","size","sizeOf","skill","skillFinal","skipTime","sleep","sliderPosition","sliderRange","sliderSetPosition","sliderSetRange","sliderSetSpeed","sliderSpeed","slingLoadAssistantShown","soldierMagazines","someAmmo","sort","soundVolume","spawn","speaker","speed","speedMode","splitString","sqrt","squadParams","stance","startLoadingScreen","step","stop","stopped","str","sunOrMoon","supportInfo","suppressFor","surfaceIsWater","surfaceNormal","surfaceType","swimInDepth","switch","switchableUnits","switchAction","switchCamera","switchGesture","switchLight","switchMove","synchronizedObjects","synchronizedTriggers","synchronizedWaypoints","synchronizeObjectsAdd","synchronizeObjectsRemove","synchronizeTrigger","synchronizeWaypoint","synchronizeWaypoint trigger","systemChat","systemOfUnits","tan","targetKnowledge","targetsAggregate","targetsQuery","taskChildren","taskCompleted","taskDescription","taskDestination","taskHint","taskNull","taskParent","taskResult","taskState","teamMember","teamMemberNull","teamName","teams","teamSwitch","teamSwitchEnabled","teamType","terminate","terrainIntersect","terrainIntersectASL","text","text location","textLog","textLogFormat","tg","then","throw","time","timeMultiplier","titleCut","titleFadeOut","titleObj","titleRsc","titleText","to","toArray","toLower","toString","toUpper","triggerActivated","triggerActivation","triggerArea","triggerAttachedVehicle","triggerAttachObject","triggerAttachVehicle","triggerStatements","triggerText","triggerTimeout","triggerTimeoutCurrent","triggerType","true","try","turretLocal","turretOwner","turretUnit","tvAdd","tvClear","tvCollapse","tvCount","tvCurSel","tvData","tvDelete","tvExpand","tvPicture","tvSetCurSel","tvSetData","tvSetPicture","tvSetPictureColor","tvSetTooltip","tvSetValue","tvSort","tvSortByValue","tvText","tvValue","type","typeName","typeOf","UAVControl","uiNamespace","uiSleep","unassignCurator","unassignItem","unassignTeam","unassignVehicle","underwater","uniform","uniformContainer","uniformItems","uniformMagazines","unitAddons","unitBackpack","unitPos","unitReady","unitRecoilCoefficient","units","unitsBelowHeight","unlinkItem","unlockAchievement","unregisterTask","updateDrawIcon","updateMenuItem","updateObjectTree","useAudioTimeForMoves","vectorAdd","vectorCos","vectorCrossProduct","vectorDiff","vectorDir","vectorDirVisual","vectorDistance","vectorDistanceSqr","vectorDotProduct","vectorFromTo","vectorMagnitude","vectorMagnitudeSqr","vectorMultiply","vectorNormalized","vectorUp","vectorUpVisual","vehicle","vehicleChat","vehicleRadio","vehicles","vehicleVarName","velocity","velocityModelSpace","verifySignature","vest","vestContainer","vestItems","vestMagazines","viewDistance","visibleCompass","visibleGPS","visibleMap","visiblePosition","visiblePositionASL","visibleWatch","waitUntil","waves","waypointAttachedObject","waypointAttachedVehicle","waypointAttachObject","waypointAttachVehicle","waypointBehaviour","waypointCombatMode","waypointCompletionRadius","waypointDescription","waypointFormation","waypointHousePosition","waypointLoiterRadius","waypointLoiterType","waypointName","waypointPosition","waypoints","waypointScript","waypointsEnabledUAV","waypointShow","waypointSpeed","waypointStatements","waypointTimeout","waypointTimeoutCurrent","waypointType","waypointVisible","weaponAccessories","weaponCargo","weaponDirection","weaponLowered","weapons","weaponsItems","weaponsItemsCargo","weaponState","weaponsTurret","weightRTD","west","WFSideText","while","wind","windDir","windStr","wingsForcesRTD","with","worldName","worldSize","worldToModel","worldToModelVisual","worldToScreen"],c=["case","catch","default","do","else","exit","exitWith|5","for","forEach","from","if","switch","then","throw","to","try","while","with"],d=["!","-","+","!=","%","&&","*","/","=","==",">",">=","<","<=","^",":",">>"],e=["_forEachIndex|10","_this|10","_x|10"],f=["true","false","nil"],g=b.filter(function(a){ +return-1==c.indexOf(a)&&-1==f.indexOf(a)&&-1==d.indexOf(a)});g=g.concat(e);var h={className:"string",relevance:0,variants:[{begin:'"',end:'"',contains:[{begin:'""'}]},{begin:"'",end:"'",contains:[{begin:"''"}]}]},i={className:"number",begin:a.NUMBER_RE,relevance:0},j={className:"string",variants:[a.QUOTE_STRING_MODE,{begin:"'\\\\?.",end:"'",illegal:"."}]},k={className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line pragma ifdef ifndef",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[j,{className:"string",begin:"<",end:">",illegal:"\\n"}]},j,i,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]};return{aliases:["sqf"],case_insensitive:!0,keywords:{keyword:c.join(" "),built_in:g.join(" "),literal:f.join(" ")},contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,i,h,k]}}),a.registerLanguage("sql",function(a){var b=a.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*]/,contains:[{className:"operator",beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke",end:/;/,endsWithParent:!0,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes c cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle d data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration e each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract f failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function g general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http i id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists k keep keep_duplicates key keys kill l language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim m main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex n name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding p package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime t table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[a.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[a.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE]},a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE,b]},a.C_BLOCK_COMMENT_MODE,b]}}),a.registerLanguage("stata",function(a){return{aliases:["do","ado"],case_insensitive:!0,keywords:"if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate g gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l la lab labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize meqparse mer merg merge mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5",contains:[{className:"label",variants:[{begin:"\\$\\{?[a-zA-Z0-9_]+\\}?"},{begin:"`[a-zA-Z0-9_]+'"}]},{className:"string",variants:[{begin:'`"[^\r\n]*?"\''},{begin:'"[^\r\n"]*"'}]},{className:"literal",variants:[{begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\(|$)"}]},a.COMMENT("^[ ]*\\*.*$",!1),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]}}),a.registerLanguage("step21",function(a){var b="[A-Z_][A-Z0-9_.]*",c="END-ISO-10303-21;",d={literal:"",built_in:"",keyword:"HEADER ENDSEC DATA"},e={className:"preprocessor",begin:"ISO-10303-21;",relevance:10},f=[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.COMMENT("/\\*\\*!","\\*/"),a.C_NUMBER_MODE,a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"label",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}];return{aliases:["p21","step","stp"],case_insensitive:!0,lexemes:b,keywords:d,contains:[{className:"preprocessor",begin:c,relevance:10},e].concat(f)}}),a.registerLanguage("stylus",function(a){var b={className:"variable",begin:"\\$"+a.IDENT_RE},c={className:"hexcolor",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})",relevance:10},d=["charset","css","debug","extend","font-face","for","import","include","media","mixin","page","warn","while"],e=["after","before","first-letter","first-line","active","first-child","focus","hover","lang","link","visited"],f=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],g="[\\.\\s\\n\\[\\:,]",h=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-variant-ligatures","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"],i=["\\{","\\}","\\?","(\\bReturn\\b)","(\\bEnd\\b)","(\\bend\\b)",";","#\\s","\\*\\s","===\\s","\\|","%"]; +return{aliases:["styl"],case_insensitive:!1,illegal:"("+i.join("|")+")",keywords:"if else for in",contains:[a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,c,{begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"+g,returnBegin:!0,contains:[{className:"class",begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"+g,returnBegin:!0,contains:[{className:"id",begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\b("+f.join("|")+")"+g,returnBegin:!0,contains:[{className:"tag",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"}]},{className:"pseudo",begin:"&?:?:\\b("+e.join("|")+")"+g},{className:"at_rule",begin:"@("+d.join("|")+")\\b"},b,a.CSS_NUMBER_MODE,a.NUMBER_MODE,{className:"function",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)",illegal:"[\\n]",returnBegin:!0,contains:[{className:"title",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"},{className:"params",begin:/\(/,end:/\)/,contains:[c,b,a.APOS_STRING_MODE,a.CSS_NUMBER_MODE,a.NUMBER_MODE,a.QUOTE_STRING_MODE]}]},{className:"attribute",begin:"\\b("+h.reverse().join("|")+")\\b"}]}}),a.registerLanguage("swift",function(a){var b={keyword:"__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},c={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},d=a.COMMENT("/\\*","\\*/",{contains:["self"]}),e={className:"subst",begin:/\\\(/,end:"\\)",keywords:b,contains:[]},f={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0},g=a.inherit(a.QUOTE_STRING_MODE,{contains:[e,a.BACKSLASH_ESCAPE]});return e.contains=[f],{keywords:b,contains:[g,a.C_LINE_COMMENT_MODE,d,c,f,{className:"func",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[a.inherit(a.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/,illegal:/\(/}),{className:"generics",begin://,illegal:/>/},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:b,contains:["self",f,g,a.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:b,end:"\\{",excludeEnd:!0,contains:[a.inherit(a.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/})]},{className:"preprocessor",begin:"(@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain)"},{beginKeywords:"import",end:/$/,contains:[a.C_LINE_COMMENT_MODE,d]}]}}),a.registerLanguage("tcl",function(a){return{aliases:["tk"],keywords:"after append apply array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock close concat continue dde dict encoding eof error eval exec exit expr fblocked fconfigure fcopy file fileevent filename flush for foreach format gets glob global history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename return safe scan seek set socket source split string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update uplevel upvar variable vwait while",contains:[a.COMMENT(";[ \\t]*#","$"),a.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"symbol",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{className:"variable",excludeEnd:!0,variants:[{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)",end:"[^a-zA-Z0-9_\\}\\$]"},{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"(\\))?[^a-zA-Z0-9_\\}\\$]"}]},{className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null})]},{className:"number",variants:[a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]}]}}),a.registerLanguage("tex",function(a){var b={className:"command",begin:"\\\\[a-zA-Zа-яА-я]+[\\*]?"},c={className:"command",begin:"\\\\[^a-zA-Zа-яА-я0-9]"},d={className:"special",begin:"[{}\\[\\]\\&#~]",relevance:0};return{contains:[{begin:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",returnBegin:!0,contains:[b,c,{className:"number",begin:" *=",end:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",excludeBegin:!0}],relevance:10},b,c,d,{className:"formula",begin:"\\$\\$",end:"\\$\\$",contains:[b,c,d],relevance:0},{className:"formula",begin:"\\$",end:"\\$",contains:[b,c,d],relevance:0},a.COMMENT("%","$",{relevance:0})]}}),a.registerLanguage("thrift",function(a){var b="bool byte i16 i32 i64 double string binary";return{keywords:{keyword:"namespace const typedef struct enum service exception void oneway set list map required optional",built_in:b,literal:"true false"},contains:[a.QUOTE_STRING_MODE,a.NUMBER_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[a.inherit(a.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",end:">",keywords:b,contains:["self"]}]}}),a.registerLanguage("tp",function(a){var b={className:"number",begin:"[1-9][0-9]*",relevance:0},c={className:"comment",begin:":[^\\]]+"},d={className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER| TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",b,c]},e={className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",b,a.QUOTE_STRING_MODE,c]};return{keywords:{keyword:"ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN SUBSTR FINDSTR VOFFSET",constant:"ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET"},contains:[d,e,{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},a.COMMENT("//","[;$]"),a.COMMENT("!","[;$]"),a.COMMENT("--eg:","$"),a.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"'"},a.C_NUMBER_MODE,{className:"variable",begin:"\\$[A-Za-z0-9_]+"}]}}),a.registerLanguage("twig",function(a){var b={className:"params",begin:"\\(",end:"\\)"},c="attribute block constant cycle date dump include max min parent random range source template_from_string",d={className:"function",beginKeywords:c,relevance:0,contains:[b]},e={className:"filter",begin:/\|[A-Za-z_]+:?/,keywords:"abs batch capitalize convert_encoding date date_modify default escape first format join json_encode keys last length lower merge nl2br number_format raw replace reverse round slice sort split striptags title trim upper url_encode",contains:[d]},f="autoescape block do embed extends filter flush for if import include macro sandbox set spaceless use verbatim";return f=f+" "+f.split(" ").map(function(a){return"end"+a}).join(" "),{aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[a.COMMENT(/\{#/,/#}/),{className:"template_tag",begin:/\{%/,end:/%}/,keywords:f,contains:[e,d]},{className:"variable",begin:/\{\{/,end:/}}/,contains:[e,d]}]}}),a.registerLanguage("typescript",function(a){var b={keyword:"in if for while finally var new function|0 do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class public private protected get set super static implements enum export import declare type namespace abstract",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document any number boolean string void"};return{aliases:["ts"],keywords:b,contains:[{className:"pi",begin:/^\s*['"]use strict['"]/,relevance:0},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:a.C_NUMBER_RE}],relevance:0},{begin:"("+a.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.REGEXP_MODE],relevance:0},{className:"function",begin:"function",end:/[\{;]/,excludeEnd:!0,keywords:b,contains:["self",a.inherit(a.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:b,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE],illegal:/["'\(]/}],illegal:/\[|%/,relevance:0},{className:"constructor",beginKeywords:"constructor",end:/\{/,excludeEnd:!0,relevance:10},{className:"module",beginKeywords:"module",end:/\{/,excludeEnd:!0},{className:"interface",beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+a.IDENT_RE,relevance:0}]}}),a.registerLanguage("vala",function(a){return{keywords:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object",literal:"false true null"},contains:[{className:"class",beginKeywords:"class interface delegate namespace",end:"{",excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[a.UNDERSCORE_TITLE_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""',relevance:5},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{className:"preprocessor",begin:"^#",end:"$",relevance:2},{className:"constant",begin:" [A-Z_]+ ",relevance:0}]}}),a.registerLanguage("vbnet",function(a){return{aliases:["vb"],case_insensitive:!0,keywords:{keyword:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},illegal:"//|{|}|endif|gosub|variant|wend",contains:[a.inherit(a.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),a.COMMENT("'","$",{returnBegin:!0,contains:[{className:"xmlDocTag",begin:"'''|",contains:[a.PHRASAL_WORDS_MODE]},{className:"xmlDocTag",begin:"",contains:[a.PHRASAL_WORDS_MODE]}]}),a.C_NUMBER_MODE,{className:"preprocessor",begin:"#",end:"$",keywords:"if else elseif end region externalsource"}]}}),a.registerLanguage("vbscript",function(a){return{aliases:["vbs"],case_insensitive:!0,keywords:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},illegal:"//",contains:[a.inherit(a.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),a.COMMENT(/'/,/$/,{relevance:0}),a.C_NUMBER_MODE]}}),a.registerLanguage("vbscript-html",function(a){return{subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}}),a.registerLanguage("verilog",function(a){return{aliases:["v"],case_insensitive:!0,keywords:{keyword:"always and assign begin buf bufif0 bufif1 case casex casez cmos deassign default defparam disable edge else end endcase endfunction endmodule endprimitive endspecify endtable endtask event for force forever fork function if ifnone initial inout input join macromodule module nand negedge nmos nor not notif0 notif1 or output parameter pmos posedge primitive pulldown pullup rcmos release repeat rnmos rpmos rtran rtranif0 rtranif1 specify specparam table task timescale tran tranif0 tranif1 wait while xnor xor",typename:"highz0 highz1 integer large medium pull0 pull1 real realtime reg scalared signed small strong0 strong1 supply0 supply0 supply1 supply1 time tri tri0 tri1 triand trior trireg vectored wand weak0 weak1 wire wor"},contains:[a.C_BLOCK_COMMENT_MODE,a.C_LINE_COMMENT_MODE,a.QUOTE_STRING_MODE,{className:"number",begin:"\\b(\\d+'(b|h|o|d|B|H|O|D))?[0-9xzXZ]+",contains:[a.BACKSLASH_ESCAPE],relevance:0},{className:"typename",begin:"\\.\\w+",relevance:0},{className:"value",begin:"#\\((?!parameter).+\\)"},{className:"keyword",begin:"\\+|-|\\*|/|%|<|>|=|#|`|\\!|&|\\||@|:|\\^|~|\\{|\\}",relevance:0}]}}),a.registerLanguage("vhdl",function(a){var b="\\d(_|\\d)*",c="[eE][-+]?"+b,d=b+"(\\."+b+")?("+c+")?",e="\\w+",f=b+"#"+e+"(\\."+e+")?#("+c+")?",g="\\b("+f+"|"+d+")";return{case_insensitive:!0,keywords:{keyword:"abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",typename:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},illegal:"{",contains:[a.C_BLOCK_COMMENT_MODE,a.COMMENT("--","$"),a.QUOTE_STRING_MODE,{className:"number",begin:g,relevance:0},{className:"literal",begin:"'(U|X|0|1|Z|W|L|H|-)'",contains:[a.BACKSLASH_ESCAPE]},{className:"attribute",begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[a.BACKSLASH_ESCAPE]}]}}),a.registerLanguage("vim",function(a){return{lexemes:/[!#@\w]+/,keywords:{keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw d|0 delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu g|0 go gr grepa gu gv ha h|0 helpf helpg helpt hi hid his i|0 ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs n|0 new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf q|0 quita qa r|0 rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv s|0 sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync t|0 tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up v|0 ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank",built_in:"abs acos add and append argc argidx argv asin atan atan2 browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call ceil changenr char2nr cindent clearmatches col complete complete_add complete_check confirm copy cos cosh count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists exp expand extend feedkeys filereadable filewritable filter finddir findfile float2nr floor fmod fnameescape fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getmatches getpid getpos getqflist getreg getregtype gettabvar gettabwinvar getwinposx getwinposy getwinvar glob globpath has has_key haslocaldir hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert invert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime log log10 luaeval map maparg mapcheck match matchadd matcharg matchdelete matchend matchlist matchstr max min mkdir mode mzeval nextnonblank nr2char or pathshorten pow prevnonblank printf pumvisible py3eval pyeval range readfile reltime reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse round screenattr screenchar screencol screenrow search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setmatches setpos setqflist setreg settabvar settabwinvar setwinvar sha256 shellescape shiftwidth simplify sin sinh sort soundfold spellbadword spellsuggest split sqrt str2float str2nr strchars strdisplaywidth strftime stridx string strlen strpart strridx strtrans strwidth submatch substitute synconcealed synID synIDattr synIDtrans synstack system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tan tanh tempname tolower toupper tr trunc type undofile undotree values virtcol visualmode wildmenumode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile xor"},illegal:/[{:]/,contains:[a.NUMBER_MODE,a.APOS_STRING_MODE,{className:"string",begin:/"((\\")|[^"\n])*("|\n)/},{className:"variable",begin:/[bwtglsav]:[\w\d_]*/},{className:"function",beginKeywords:"function function!",end:"$",relevance:0,contains:[a.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]}]}}),a.registerLanguage("x86asm",function(a){return{case_insensitive:!0,lexemes:"\\.?"+a.IDENT_RE,keywords:{keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63", +literal:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l",pseudo:"db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times",preprocessor:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public ",built_in:"bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[a.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},a.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"},{begin:"\\.[A-Za-z0-9]+"}],relevance:0},{className:"label",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"argument",begin:"%[0-9]+",relevance:0},{className:"built_in",begin:"%!S+",relevance:0}]}}),a.registerLanguage("xl",function(a){var b="ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts",c={keyword:"if then else do while until for loop import with is as where when by data constant",literal:"true false nil",type:"integer real text name boolean symbol infix prefix postfix block tree",built_in:"in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin acos atan exp expm1 log log2 log10 log1p pi at",module:b,id:"text_length text_range text_find text_replace contains page slide basic_slide title_slide title subtitle fade_in fade_out fade_at clear_color color line_color line_width texture_wrap texture_transform texture scale_?x scale_?y scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y rotate_?z? rectangle circle ellipse sphere path line_to move_to quad_to curve_to theme background contents locally time mouse_?x mouse_?y mouse_buttons"},d={className:"constant",begin:"[A-Z][A-Z_0-9]+",relevance:0},e={className:"variable",begin:"([A-Z][a-z_0-9]+)+",relevance:0},f={className:"id",begin:"[a-z][a-z_0-9]+",relevance:0},g={className:"string",begin:'"',end:'"',illegal:"\\n"},h={className:"string",begin:"'",end:"'",illegal:"\\n"},i={className:"string",begin:"<<",end:">>"},j={className:"number",begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?",relevance:10},k={className:"import",beginKeywords:"import",end:"$",keywords:{keyword:"import",module:b},relevance:0,contains:[g]},l={className:"function",begin:"[a-z].*->"};return{aliases:["tao"],lexemes:/[a-zA-Z][a-zA-Z0-9_?]*/,keywords:c,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,g,h,i,l,k,d,e,f,j,a.NUMBER_MODE]}}),a.registerLanguage("xquery",function(a){var b="for let if while then else return where group by xquery encoding versionmodule namespace boundary-space preserve strip default collation base-uri orderingcopy-namespaces order declare import schema namespace function option in allowing emptyat tumbling window sliding window start when only end when previous next stable ascendingdescending empty greatest least some every satisfies switch case typeswitch try catch andor to union intersect instance of treat as castable cast map array delete insert intoreplace value rename copy modify update",c="false true xs:string xs:integer element item xs:date xs:datetime xs:float xs:double xs:decimal QName xs:anyURI xs:long xs:int xs:short xs:byte attribute",d={className:"variable",begin:/\$[a-zA-Z0-9\-]+/,relevance:5},e={className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},f={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},g={className:"decorator",begin:"%\\w+"},h={className:"comment",begin:"\\(:",end:":\\)",relevance:10,contains:[{className:"doc",begin:"@\\w+"}]},i={begin:"{",end:"}"},j=[d,f,e,h,g,i];return i.contains=j,{aliases:["xpath","xq"],case_insensitive:!1,lexemes:/[a-zA-Z\$][a-zA-Z0-9_:\-]*/,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{keyword:b,literal:c},contains:j}}),a.registerLanguage("zephir",function(a){var b={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null})]},c={variants:[a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]};return{aliases:["zep"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var let while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally int uint long ulong char uchar double float bool boolean stringlikely unlikely",contains:[a.C_LINE_COMMENT_MODE,a.HASH_COMMENT_MODE,a.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:a.UNDERSCORE_IDENT_RE}),{className:"string",begin:"<<<['\"]?\\w+['\"]?$",end:"^\\w+;",contains:[a.BACKSLASH_ESCAPE]},{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",a.C_BLOCK_COMMENT_MODE,b,c]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[a.UNDERSCORE_TITLE_MODE]},{begin:"=>"},b,c]}}),a}),function(a){"use strict";function b(b,c){if(c=c||{},c.worker&&y.WORKERS_SUPPORTED){var d=k();return d.userStep=c.step,d.userChunk=c.chunk,d.userComplete=c.complete,d.userError=c.error,c.step=r(c.step),c.chunk=r(c.chunk),c.complete=r(c.complete),c.error=r(c.error),delete c.worker,void d.postMessage({input:b,config:c,workerId:d.id})}var h=null;return"string"==typeof b?h=c.download?new e(c):new g(c):(a.File&&b instanceof File||b instanceof Object)&&(h=new f(c)),h.stream(b)}function c(a,b){function c(){"object"==typeof b&&("string"==typeof b.delimiter&&1==b.delimiter.length&&-1==y.BAD_DELIMITERS.indexOf(b.delimiter)&&(i=b.delimiter),("boolean"==typeof b.quotes||b.quotes instanceof Array)&&(h=b.quotes),"string"==typeof b.newline&&(j=b.newline))}function d(a){if("object"!=typeof a)return[];var b=[];for(var c in a)b.push(c);return b}function e(a,b){var c="";"string"==typeof a&&(a=JSON.parse(a)),"string"==typeof b&&(b=JSON.parse(b));var d=a instanceof Array&&a.length>0,e=!(b[0]instanceof Array);if(d){for(var g=0;g0&&(c+=i),c+=f(a[g],g);b.length>0&&(c+=j)}for(var h=0;hl;l++){l>0&&(c+=i);var m=d&&e?a[l]:l;c+=f(b[h][m],l)}h-1||" "==a.charAt(0)||" "==a.charAt(a.length-1);return c?'"'+a+'"':a}function g(a,b){for(var c=0;c-1)return!0;return!1}var h=!1,i=",",j="\r\n";if(c(),"string"==typeof a&&(a=JSON.parse(a)),a instanceof Array){if(!a.length||a[0]instanceof Array)return e(null,a);if("object"==typeof a[0])return e(d(a[0]),a)}else if("object"==typeof a)return"string"==typeof a.data&&(a.data=JSON.parse(a.data)),a.data instanceof Array&&(a.fields||(a.fields=a.data[0]instanceof Array?a.fields:d(a.data[0])),a.data[0]instanceof Array||"object"==typeof a.data[0]||(a.data=[a.data])),e(a.fields||[],a.data||[]);throw"exception: Unable to serialize unrecognized input"}function d(b){function c(a){var b=p(a);b.chunkSize=parseInt(b.chunkSize),a.step||a.chunk||(b.chunkSize=null),this._handle=new h(b),this._handle.streamer=this,this._config=b}this._handle=null,this._paused=!1,this._finished=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},c.call(this,b),this.parseChunk=function(b){if(this.isFirstChunk&&r(this._config.beforeFirstChunk)){var c=this._config.beforeFirstChunk(b);void 0!==c&&(b=c)}this.isFirstChunk=!1;var d=this._partialLine+b;this._partialLine="";var e=this._handle.parse(d,this._baseIndex,!this._finished);if(!this._handle.paused()&&!this._handle.aborted()){var f=e.meta.cursor;this._finished||(this._partialLine=d.substring(f-this._baseIndex),this._baseIndex=f),e&&e.data&&(this._rowCount+=e.data.length);var g=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(u)a.postMessage({results:e,workerId:y.WORKER_ID,finished:g});else if(r(this._config.chunk)){if(this._config.chunk(e,this._handle),this._paused)return;e=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(e.data),this._completeResults.errors=this._completeResults.errors.concat(e.errors),this._completeResults.meta=e.meta),!g||!r(this._config.complete)||e&&e.meta.aborted||this._config.complete(this._completeResults),g||e&&e.meta.paused||this._nextChunk(),e}},this._sendError=function(b){r(this._config.error)?this._config.error(b):u&&this._config.error&&a.postMessage({workerId:y.WORKER_ID,error:b,finished:!1})}}function e(a){function b(a){var b=a.getResponseHeader("Content-Range");return parseInt(b.substr(b.lastIndexOf("/")+1))}a=a||{},a.chunkSize||(a.chunkSize=y.RemoteChunkSize),d.call(this,a);var c;t?this._nextChunk=function(){this._readChunk(),this._chunkLoaded()}:this._nextChunk=function(){this._readChunk()},this.stream=function(a){this._input=a,this._nextChunk()},this._readChunk=function(){if(this._finished)return void this._chunkLoaded();if(c=new XMLHttpRequest,t||(c.onload=q(this._chunkLoaded,this),c.onerror=q(this._chunkError,this)),c.open("GET",this._input,!t),this._config.chunkSize){var a=this._start+this._config.chunkSize-1;c.setRequestHeader("Range","bytes="+this._start+"-"+a),c.setRequestHeader("If-None-Match","webkit-no-cache")}try{c.send()}catch(b){this._chunkError(b.message)}t&&0==c.status?this._chunkError():this._start+=this._config.chunkSize},this._chunkLoaded=function(){if(4==c.readyState){if(c.status<200||c.status>=400)return void this._chunkError();this._finished=!this._config.chunkSize||this._start>b(c),this.parseChunk(c.responseText)}},this._chunkError=function(a){var b=c.statusText||a;this._sendError(b)}}function f(a){a=a||{},a.chunkSize||(a.chunkSize=y.LocalChunkSize),d.call(this,a);var b,c,e="undefined"!=typeof FileReader;this.stream=function(a){this._input=a,c=a.slice||a.webkitSlice||a.mozSlice,e?(b=new FileReader,b.onload=q(this._chunkLoaded,this),b.onerror=q(this._chunkError,this)):b=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(a.target.result)},this._chunkError=function(){this._sendError(b.error)}}function g(a){a=a||{},d.call(this,a);var b,c;this.stream=function(a){return b=a,c=a,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var a=this._config.chunkSize,b=a?c.substr(0,a):c;return c=a?c.substr(a):"",this._finished=!c,this.parseChunk(b)}}}function h(a){function b(){if(v&&m&&(j("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+y.DefaultDelimiter+"'"),m=!1),a.skipEmptyLines)for(var b=0;b=u.length?(c.__parsed_extra||(c.__parsed_extra=[]),c.__parsed_extra.push(v.data[b][d])):c[u[d]]=v.data[b][d])}a.header&&(v.data[b]=c,d>u.length?j("FieldMismatch","TooManyFields","Too many fields: expected "+u.length+" fields but parsed "+d,b):d1&&(j+=Math.abs(n-e),e=n):e=n}l.data.length>0&&(k/=l.data.length),("undefined"==typeof d||d>j)&&k>1.99&&(d=j,c=h)}return a.delimiter=c,{successful:!!c,bestDelimiter:c}}function g(a){a=a.substr(0,1048576);var b=a.split("\r");if(1==b.length)return"\n";for(var c=0,d=0;d=b.length/2?"\r\n":"\r"}function h(a){var b=n.test(a);return b?parseFloat(a):a}function j(a,b,c,d){v.errors.push({type:a,code:b,message:c,row:d})}var k,l,m,n=/^\s*-?(\d*\.?\d+|\d+\.?\d*)(e[-+]?\d+)?\s*$/i,o=this,q=0,s=!1,t=!1,u=[],v={data:[],errors:[],meta:{}};if(r(a.step)){var w=a.step;a.step=function(d){if(v=d,c())b();else{if(b(),0==v.data.length)return;q+=d.data.length,a.preview&&q>a.preview?l.abort():w(v,o)}}}this.parse=function(c,d,e){if(a.newline||(a.newline=g(c)),m=!1,!a.delimiter){var h=f(c);h.successful?a.delimiter=h.bestDelimiter:(m=!0,a.delimiter=y.DefaultDelimiter),v.meta.delimiter=a.delimiter}var j=p(a);return a.preview&&a.header&&j.preview++,k=c,l=new i(j),v=l.parse(k,d,e),b(),s?{meta:{paused:!0}}:v||{meta:{paused:!1}}},this.paused=function(){return s},this.pause=function(){s=!0,l.abort(),k=k.substr(l.getCharIndex())},this.resume=function(){s=!1,o.streamer.parseChunk(k)},this.aborted=function(){return t},this.abort=function(){t=!0,l.abort(),v.meta.aborted=!0,r(a.complete)&&a.complete(v),k=""}}function i(a){a=a||{};var b=a.delimiter,c=a.newline,d=a.comments,e=a.step,f=a.preview,g=a.fastMode;if(("string"!=typeof b||y.BAD_DELIMITERS.indexOf(b)>-1)&&(b=","),d===b)throw"Comment character same as delimiter";d===!0?d="#":("string"!=typeof d||y.BAD_DELIMITERS.indexOf(d)>-1)&&(d=!1),"\n"!=c&&"\r"!=c&&"\r\n"!=c&&(c="\n");var h=0,i=!1;this.parse=function(a,j,k){function l(a){v.push(a),y=h}function m(b){return k?o():("undefined"==typeof b&&(b=a.substr(h)),x.push(b),h=q,l(x),u&&p(),o())}function n(b){h=b,l(x),x=[],C=a.indexOf(c,h)}function o(a){return{data:v,errors:w,meta:{delimiter:b,linebreak:c,aborted:i,truncated:!!a,cursor:y+(j||0)}}}function p(){e(o()),v=[],w=[]}if("string"!=typeof a)throw"Input must be a string";var q=a.length,r=b.length,s=c.length,t=d.length,u="function"==typeof e;h=0;var v=[],w=[],x=[],y=0;if(!a)return o();if(g||g!==!1&&-1===a.indexOf('"')){for(var z=a.split(c),A=0;A=f)return v=v.slice(0,f),o(!0)}}return o()}for(var B=a.indexOf(b,h),C=a.indexOf(c,h);;)if('"'!=a[h])if(d&&0===x.length&&a.substr(h,t)===d){if(-1==C)return o();h=C+s,C=a.indexOf(c,h),B=a.indexOf(b,h)}else if(-1!==B&&(C>B||-1===C))x.push(a.substring(h,B)),h=B+r,B=a.indexOf(b,h);else{if(-1===C)break;if(x.push(a.substring(h,C)),n(C+s),u&&(p(),i))return o();if(f&&v.length>=f)return o(!0)}else{var D=h;for(h++;;){var D=a.indexOf('"',D+1);if(-1===D)return k||w.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:v.length,index:h}),m();if(D===q-1){var E=a.substring(h,D).replace(/""/g,'"');return m(E)}if('"'!=a[D+1]){if(a[D+1]==b){x.push(a.substring(h,D).replace(/""/g,'"')),h=D+1+r,B=a.indexOf(b,h),C=a.indexOf(c,h);break}if(a.substr(D+1,s)===c){if(x.push(a.substring(h,D).replace(/""/g,'"')),n(D+1+s),B=a.indexOf(b,h),u&&(p(),i))return o();if(f&&v.length>=f)return o(!0);break}}else D++}}return m()},this.abort=function(){i=!0},this.getCharIndex=function(){return h}}function j(){var a=document.getElementsByTagName("script");return a.length?a[a.length-1].src:""}function k(){if(!y.WORKERS_SUPPORTED)return!1;if(!v&&null===y.SCRIPT_PATH)throw new Error("Script path cannot be determined automatically when Papa Parse is loaded asynchronously. You need to set Papa.SCRIPT_PATH manually.");var b=y.SCRIPT_PATH||s;b+=(-1!==b.indexOf("?")?"&":"?")+"papaworker";var c=new a.Worker(b);return c.onmessage=l,c.id=x++,w[c.id]=c,c}function l(a){var b=a.data,c=w[b.workerId],d=!1;if(b.error)c.userError(b.error,b.file);else if(b.results&&b.results.data){var e=function(){d=!0,m(b.workerId,{data:[],errors:[],meta:{aborted:!0}})},f={abort:e,pause:n,resume:n};if(r(c.userStep)){for(var g=0;gi;i++)e+=String.fromCharCode(f[i]);c.push(e)}else if("Blob"===b(a)||"File"===b(a)){if(!g)throw new h("NOT_READABLE_ERR");var k=new g;c.push(k.readAsBinaryString(a))}else a instanceof d?"base64"===a.encoding&&p?c.push(p(a.data)):"URI"===a.encoding?c.push(decodeURIComponent(a.data)):"raw"===a.encoding&&c.push(a.data):("string"!=typeof a&&(a+=""),c.push(unescape(encodeURIComponent(a))))},e.getBlob=function(a){return arguments.length||(a=null),new d(this.data.join(""),a,"raw")},e.toString=function(){return"[object BlobBuilder]"},f.slice=function(a,b,c){var e=arguments.length;return 3>e&&(c=null),new d(this.data.slice(a,e>1?b:this.data.length),c,this.encoding)},f.toString=function(){return"[object Blob]"},f.close=function(){this.size=0,delete this.data},c}(a);a.Blob=function(a,b){var d=b?b.type||"":"",e=new c;if(a)for(var f=0,g=a.length;g>f;f++)Uint8Array&&a[f]instanceof Uint8Array?e.append(a[f].buffer):e.append(a[f]);var h=e.getBlob(d);return!h.slice&&h.webkitSlice&&(h.slice=h.webkitSlice),h};var d=Object.getPrototypeOf||function(a){return a.__proto__};a.Blob.prototype=d(new a.Blob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this);var saveAs=saveAs||function(a){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var b=a.document,c=function(){return a.URL||a.webkitURL||a},d=b.createElementNS("http://www.w3.org/1999/xhtml","a"),e="download"in d,f=function(c){var d=b.createEvent("MouseEvents");d.initMouseEvent("click",!0,!1,a,0,0,0,0,0,!1,!1,!1,!1,0,null),c.dispatchEvent(d)},g=a.webkitRequestFileSystem,h=a.requestFileSystem||g||a.mozRequestFileSystem,i=function(b){(a.setImmediate||a.setTimeout)(function(){throw b},0)},j="application/octet-stream",k=0,l=500,m=function(b){var d=function(){"string"==typeof b?c().revokeObjectURL(b):b.remove()};a.chrome?d():setTimeout(d,l)},n=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"==typeof e)try{e.call(a,c||a)}catch(f){i(f)}}},o=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},p=function(b,i){b=o(b);var l,p,q,r=this,s=b.type,t=!1,u=function(){n(r,"writestart progress write writeend".split(" "))},v=function(){if(!t&&l||(l=c().createObjectURL(b)),p)p.location.href=l;else{var d=a.open(l,"_blank");void 0==d&&"undefined"!=typeof safari&&(a.location.href=l)}r.readyState=r.DONE,u(),m(l)},w=function(a){return function(){return r.readyState!==r.DONE?a.apply(this,arguments):void 0}},x={create:!0,exclusive:!1};return r.readyState=r.INIT,i||(i="download"),e?(l=c().createObjectURL(b),d.href=l,d.download=i,f(d),r.readyState=r.DONE,u(),void m(l)):(a.chrome&&s&&s!==j&&(q=b.slice||b.webkitSlice,b=q.call(b,0,b.size,j),t=!0),g&&"download"!==i&&(i+=".download"),(s===j||g)&&(p=a),h?(k+=b.size,void h(a.TEMPORARY,k,w(function(a){a.root.getDirectory("saved",x,w(function(a){var c=function(){a.getFile(i,x,w(function(a){a.createWriter(w(function(c){c.onwriteend=function(b){p.location.href=a.toURL(),r.readyState=r.DONE,n(r,"writeend",b),m(a)},c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&v()},"writestart progress write abort".split(" ").forEach(function(a){c["on"+a]=r["on"+a]}),c.write(b),r.abort=function(){c.abort(),r.readyState=r.DONE},r.readyState=r.WRITING}),v)}),v)};a.getFile(i,{create:!1},w(function(a){a.remove(),c()}),w(function(a){a.code===a.NOT_FOUND_ERR?c():v()}))}),v)}),v)):void v())},q=p.prototype,r=function(a,b){return new p(a,b)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(a,b){return navigator.msSaveOrOpenBlob(o(a),b)}:(q.abort=function(){var a=this;a.readyState=a.DONE,n(a,"abort")},q.readyState=q.INIT=0,q.WRITING=1,q.DONE=2,q.error=q.onwritestart=q.onprogress=q.onwrite=q.onabort=q.onerror=q.onwriteend=null,r)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&module.exports?module.exports.saveAs=saveAs:"undefined"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs}),function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gi;i++)e+=String.fromCharCode(f[i]);c.push(e)}else if("Blob"===b(a)||"File"===b(a)){if(!g)throw new h("NOT_READABLE_ERR");var k=new g;c.push(k.readAsBinaryString(a))}else a instanceof d?"base64"===a.encoding&&p?c.push(p(a.data)):"URI"===a.encoding?c.push(decodeURIComponent(a.data)):"raw"===a.encoding&&c.push(a.data):("string"!=typeof a&&(a+=""),c.push(unescape(encodeURIComponent(a))))},e.getBlob=function(a){return arguments.length||(a=null),new d(this.data.join(""),a,"raw")},e.toString=function(){return"[object BlobBuilder]"},f.slice=function(a,b,c){var e=arguments.length;return 3>e&&(c=null),new d(this.data.slice(a,e>1?b:this.data.length),c,this.encoding)},f.toString=function(){return"[object Blob]"},f.close=function(){this.size=0,delete this.data},c}(a);a.Blob=function(a,b){var d=b?b.type||"":"",e=new c;if(a)for(var f=0,g=a.length;g>f;f++)Uint8Array&&a[f]instanceof Uint8Array?e.append(a[f].buffer):e.append(a[f]);var h=e.getBlob(d);return!h.slice&&h.webkitSlice&&(h.slice=h.webkitSlice),h};var d=Object.getPrototypeOf||function(a){return a.__proto__};a.Blob.prototype=d(new a.Blob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this); +},{}],2:[function(a,b,c){var d=d||function(a){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var b=a.document,c=function(){return a.URL||a.webkitURL||a},d=b.createElementNS("http://www.w3.org/1999/xhtml","a"),e="download"in d,f=function(a){var b=new MouseEvent("click");a.dispatchEvent(b)},g=/Version\/[\d\.]+.*Safari/.test(navigator.userAgent),h=a.webkitRequestFileSystem,i=a.requestFileSystem||h||a.mozRequestFileSystem,j=function(b){(a.setImmediate||a.setTimeout)(function(){throw b},0)},k="application/octet-stream",l=0,m=500,n=function(b){var d=function(){"string"==typeof b?c().revokeObjectURL(b):b.remove()};a.chrome?d():setTimeout(d,m)},o=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"==typeof e)try{e.call(a,c||a)}catch(f){j(f)}}},p=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},q=function(b,j,m){m||(b=p(b));var q,r,s,t=this,u=b.type,v=!1,w=function(){o(t,"writestart progress write writeend".split(" "))},x=function(){if(r&&g&&"undefined"!=typeof FileReader){var d=new FileReader;return d.onloadend=function(){var a=d.result;r.location.href="data:attachment/file"+a.slice(a.search(/[,;]/)),t.readyState=t.DONE,w()},d.readAsDataURL(b),void(t.readyState=t.INIT)}if(!v&&q||(q=c().createObjectURL(b)),r)r.location.href=q;else{var e=a.open(q,"_blank");void 0==e&&g&&(a.location.href=q)}t.readyState=t.DONE,w(),n(q)},y=function(a){return function(){return t.readyState!==t.DONE?a.apply(this,arguments):void 0}},z={create:!0,exclusive:!1};return t.readyState=t.INIT,j||(j="download"),e?(q=c().createObjectURL(b),void setTimeout(function(){d.href=q,d.download=j,f(d),w(),n(q),t.readyState=t.DONE})):(a.chrome&&u&&u!==k&&(s=b.slice||b.webkitSlice,b=s.call(b,0,b.size,k),v=!0),h&&"download"!==j&&(j+=".download"),(u===k||h)&&(r=a),i?(l+=b.size,void i(a.TEMPORARY,l,y(function(a){a.root.getDirectory("saved",z,y(function(a){var c=function(){a.getFile(j,z,y(function(a){a.createWriter(y(function(c){c.onwriteend=function(b){r.location.href=a.toURL(),t.readyState=t.DONE,o(t,"writeend",b),n(a)},c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&x()},"writestart progress write abort".split(" ").forEach(function(a){c["on"+a]=t["on"+a]}),c.write(b),t.abort=function(){c.abort(),t.readyState=t.DONE},t.readyState=t.WRITING}),x)}),x)};a.getFile(j,{create:!1},y(function(a){a.remove(),c()}),y(function(a){a.code===a.NOT_FOUND_ERR?c():x()}))}),x)}),x)):void x())},r=q.prototype,s=function(a,b,c){return new q(a,b,c)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(a,b,c){return c||(a=p(a)),navigator.msSaveOrOpenBlob(a,b||"download")}:(r.abort=function(){var a=this;a.readyState=a.DONE,o(a,"abort")},r.readyState=r.INIT=0,r.WRITING=1,r.DONE=2,r.error=r.onwritestart=r.onprogress=r.onwrite=r.onabort=r.onerror=r.onwriteend=null,s)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof b&&b.exports?b.exports.saveAs=d:"undefined"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return d})},{}],3:[function(a,b,c){"use strict";angular.module("ngFileSaver",[]).factory("FileSaver",["Blob","SaveAs","FileSaverUtils",a("./angular-file-saver.service")]).factory("FileSaverUtils",[a("./utils/utils.service.js")]).factory("Blob",["$window",a("./dependencies/blob-bundle.service.js")]).factory("SaveAs",[a("./dependencies/file-saver-bundle.service.js")])},{"./angular-file-saver.service":4,"./dependencies/blob-bundle.service.js":5,"./dependencies/file-saver-bundle.service.js":6,"./utils/utils.service.js":7}],4:[function(a,b,c){"use strict";b.exports=function(a,b,c){function d(a,d,e){try{b(a,d,e)}catch(f){c.handleErrors(f.message)}}return{saveAs:function(a,b,e){return c.isBlobInstance(a)||c.handleErrors("Data argument should be a blob instance"),c.isString(b)||c.handleErrors("Filename argument should be a string"),d(a,b,e)}}}},{}],5:[function(a,b,c){"use strict";a("Blob.js"),b.exports=function(a){return a.Blob}},{"Blob.js":1}],6:[function(a,b,c){"use strict";b.exports=function(){return a("FileSaver.js").saveAs||function(){}}},{"FileSaver.js":2}],7:[function(a,b,c){"use strict";b.exports=function(){return{handleErrors:function(a){throw new Error(a)},isString:function(a){return"string"==typeof a||a instanceof String},isUndefined:function(a){return"undefined"==typeof a},isBlobInstance:function(a){return a instanceof Blob}}}},{}]},{},[3]),function(a){function b(a,b,c){switch(arguments.length){case 2:return null!=a?a:b;case 3:return null!=a?a:null!=b?b:c;default:throw new Error("Implement me")}}function c(a,b){return Ba.call(a,b)}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function e(a){va.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+a)}function f(a,b){var c=!0;return o(function(){return c&&(e(a),c=!1),b.apply(this,arguments)},b)}function g(a,b){sb[a]||(e(b),sb[a]=!0)}function h(a,b){return function(c){return r(a.call(this,c),b)}}function i(a,b){return function(c){return this.localeData().ordinal(a.call(this,c),b)}}function j(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,"months");return 0>b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)}function k(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}function l(){}function m(a,b){b!==!1&&H(a),p(this,a),this._d=new Date(+a._d),ub===!1&&(ub=!0,va.updateOffset(this),ub=!1)}function n(a){var b=A(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=va.localeData(),this._bubble()}function o(a,b){for(var d in b)c(b,d)&&(a[d]=b[d]);return c(b,"toString")&&(a.toString=b.toString),c(b,"valueOf")&&(a.valueOf=b.valueOf),a}function p(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=b._pf),"undefined"!=typeof b._locale&&(a._locale=b._locale),Ka.length>0)for(c in Ka)d=Ka[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function q(a){return 0>a?Math.ceil(a):Math.floor(a)}function r(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.lengthd;d++)(c&&a[d]!==b[d]||!c&&C(a[d])!==C(b[d]))&&g++;return g+f}function z(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=lb[a]||mb[b]||b}return a}function A(a){var b,d,e={};for(d in a)c(a,d)&&(b=z(d),b&&(e[b]=a[d]));return e}function B(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}va[b]=function(e,f){var g,h,i=va._locale[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=va().utc().set(d,a);return i.call(va._locale,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function C(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function D(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function E(a,b,c){return ja(va([a,11,31+b-c]),b,c).week}function F(a){return G(a)?366:365}function G(a){return a%4===0&&a%100!==0||a%400===0}function H(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[Da]<0||a._a[Da]>11?Da:a._a[Ea]<1||a._a[Ea]>D(a._a[Ca],a._a[Da])?Ea:a._a[Fa]<0||a._a[Fa]>24||24===a._a[Fa]&&(0!==a._a[Ga]||0!==a._a[Ha]||0!==a._a[Ia])?Fa:a._a[Ga]<0||a._a[Ga]>59?Ga:a._a[Ha]<0||a._a[Ha]>59?Ha:a._a[Ia]<0||a._a[Ia]>999?Ia:-1,a._pf._overflowDayOfYear&&(Ca>b||b>Ea)&&(b=Ea),a._pf.overflow=b)}function I(b){return null==b._isValid&&(b._isValid=!isNaN(b._d.getTime())&&b._pf.overflow<0&&!b._pf.empty&&!b._pf.invalidMonth&&!b._pf.nullInput&&!b._pf.invalidFormat&&!b._pf.userInvalidated,b._strict&&(b._isValid=b._isValid&&0===b._pf.charsLeftOver&&0===b._pf.unusedTokens.length&&b._pf.bigHour===a)),b._isValid}function J(a){return a?a.toLowerCase().replace("_","-"):a}function K(a){for(var b,c,d,e,f=0;f0;){if(d=L(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&y(e,c,!0)>=b-1)break;b--}f++}return null}function L(a){var b=null;if(!Ja[a]&&La)try{b=va.locale(),require("./locale/"+a),va.locale(b)}catch(c){}return Ja[a]}function M(a,b){var c,d;return b._isUTC?(c=b.clone(),d=(va.isMoment(a)||x(a)?+a:+va(a))-+c,c._d.setTime(+c._d+d),va.updateOffset(c,!1),c):va(a).local()}function N(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function O(a){var b,c,d=a.match(Pa);for(b=0,c=d.length;c>b;b++)rb[d[b]]?d[b]=rb[d[b]]:d[b]=N(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function P(a,b){return a.isValid()?(b=Q(b,a.localeData()),nb[b]||(nb[b]=O(b)),nb[b](a)):a.localeData().invalidDate()}function Q(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Qa.lastIndex=0;d>=0&&Qa.test(a);)a=a.replace(Qa,c),Qa.lastIndex=0,d-=1;return a}function R(a,b){var c,d=b._strict;switch(a){case"Q":return _a;case"DDDD":return bb;case"YYYY":case"GGGG":case"gggg":return d?cb:Ta;case"Y":case"G":case"g":return eb;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?db:Ua;case"S":if(d)return _a;case"SS":if(d)return ab;case"SSS":if(d)return bb;case"DDD":return Sa;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Wa;case"a":case"A":return b._locale._meridiemParse;case"x":return Za;case"X":return $a;case"Z":case"ZZ":return Xa;case"T":return Ya;case"SSSS":return Va;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?ab:Ra;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Ra;case"Do":return d?b._locale._ordinalParse:b._locale._ordinalParseLenient;default:return c=new RegExp($(Z(a.replace("\\","")),"i"))}}function S(a){a=a||"";var b=a.match(Xa)||[],c=b[b.length-1]||[],d=(c+"").match(jb)||["-",0,0],e=+(60*d[1])+C(d[2]);return"+"===d[0]?e:-e}function T(a,b,c){var d,e=c._a;switch(a){case"Q":null!=b&&(e[Da]=3*(C(b)-1));break;case"M":case"MM":null!=b&&(e[Da]=C(b)-1);break;case"MMM":case"MMMM":d=c._locale.monthsParse(b,a,c._strict),null!=d?e[Da]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[Ea]=C(b));break;case"Do":null!=b&&(e[Ea]=C(parseInt(b.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=C(b));break;case"YY":e[Ca]=va.parseTwoDigitYear(b);break;case"YYYY":case"YYYYY":case"YYYYYY":e[Ca]=C(b);break;case"a":case"A":c._meridiem=b;break;case"h":case"hh":c._pf.bigHour=!0;case"H":case"HH":e[Fa]=C(b);break;case"m":case"mm":e[Ga]=C(b);break;case"s":case"ss":e[Ha]=C(b);break;case"S":case"SS":case"SSS":case"SSSS":e[Ia]=C(1e3*("0."+b));break;case"x":c._d=new Date(C(b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=S(b);break;case"dd":case"ddd":case"dddd":d=c._locale.weekdaysParse(b),null!=d?(c._w=c._w||{},c._w.d=d):c._pf.invalidWeekday=b;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":a=a.substr(0,1);case"gggg":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=C(b));break;case"gg":case"GG":c._w=c._w||{},c._w[a]=va.parseTwoDigitYear(b)}}function U(a){var c,d,e,f,g,h,i;c=a._w,null!=c.GG||null!=c.W||null!=c.E?(g=1,h=4,d=b(c.GG,a._a[Ca],ja(va(),1,4).year),e=b(c.W,1),f=b(c.E,1)):(g=a._locale._week.dow,h=a._locale._week.doy,d=b(c.gg,a._a[Ca],ja(va(),g,h).year),e=b(c.w,1),null!=c.d?(f=c.d,g>f&&++e):f=null!=c.e?c.e+g:g),i=ka(d,e,f,h,g),a._a[Ca]=i.year,a._dayOfYear=i.dayOfYear}function V(a){var c,d,e,f,g=[];if(!a._d){for(e=X(a),a._w&&null==a._a[Ea]&&null==a._a[Da]&&U(a),a._dayOfYear&&(f=b(a._a[Ca],e[Ca]),a._dayOfYear>F(f)&&(a._pf._overflowDayOfYear=!0),d=fa(f,0,a._dayOfYear),a._a[Da]=d.getUTCMonth(),a._a[Ea]=d.getUTCDate()),c=0;3>c&&null==a._a[c];++c)a._a[c]=g[c]=e[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];24===a._a[Fa]&&0===a._a[Ga]&&0===a._a[Ha]&&0===a._a[Ia]&&(a._nextDay=!0,a._a[Fa]=0),a._d=(a._useUTC?fa:ea).apply(null,g),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[Fa]=24)}}function W(a){var b;a._d||(b=A(a._i),a._a=[b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],V(a))}function X(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function Y(b){if(b._f===va.ISO_8601)return void aa(b);b._a=[],b._pf.empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,j=0;for(e=Q(b._f,b._locale).match(Pa)||[],c=0;c0&&b._pf.unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),rb[f]?(d?b._pf.empty=!1:b._pf.unusedTokens.push(f),T(f,d,b)):b._strict&&!d&&b._pf.unusedTokens.push(f);b._pf.charsLeftOver=i-j,h.length>0&&b._pf.unusedInput.push(h),b._pf.bigHour===!0&&b._a[Fa]<=12&&(b._pf.bigHour=a),b._a[Fa]=k(b._locale,b._a[Fa],b._meridiem),V(b),H(b)}function Z(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function $(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function _(a){var b,c,e,f,g;if(0===a._f.length)return a._pf.invalidFormat=!0,void(a._d=new Date(NaN));for(f=0;fg)&&(e=g,c=b));o(a,c||b)}function aa(a){var b,c,d=a._i,e=fb.exec(d);if(e){for(a._pf.iso=!0,b=0,c=hb.length;c>b;b++)if(hb[b][1].exec(d)){a._f=hb[b][0]+(e[6]||" ");break}for(b=0,c=ib.length;c>b;b++)if(ib[b][1].exec(d)){a._f+=ib[b][0];break}d.match(Xa)&&(a._f+="Z"),Y(a)}else a._isValid=!1}function ba(a){aa(a),a._isValid===!1&&(delete a._isValid,va.createFromInputFallback(a))}function ca(a,b){var c,d=[];for(c=0;ca&&h.setFullYear(a),h}function fa(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function ga(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function ha(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function ia(a,b,c){var d=va.duration(a).abs(),e=Aa(d.as("s")),f=Aa(d.as("m")),g=Aa(d.as("h")),h=Aa(d.as("d")),i=Aa(d.as("M")),j=Aa(d.as("y")),k=e0,k[4]=c,ha.apply({},k)}function ja(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=va(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function ka(a,b,c,d,e){var f,g,h=fa(a,0,1).getUTCDay();return h=0===h?7:h,c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:F(a-1)+g}}function la(b){var c,d=b._i,e=b._f;return b._locale=b._locale||va.localeData(b._l),null===d||e===a&&""===d?va.invalid({nullInput:!0}):("string"==typeof d&&(b._i=d=b._locale.preparse(d)),va.isMoment(d)?new m(d,!0):(e?w(e)?_(b):Y(b):da(b),c=new m(b),c._nextDay&&(c.add(1,"d"),c._nextDay=a),c))}function ma(a,b){var c,d;if(1===b.length&&w(b[0])&&(b=b[0]),!b.length)return va();for(c=b[0],d=1;d=0?"+":"-";return b+r(Math.abs(a),6)},gg:function(){return r(this.weekYear()%100,2)},gggg:function(){return r(this.weekYear(),4)},ggggg:function(){return r(this.weekYear(),5)},GG:function(){return r(this.isoWeekYear()%100,2)},GGGG:function(){return r(this.isoWeekYear(),4)},GGGGG:function(){return r(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return C(this.milliseconds()/100)},SS:function(){return r(C(this.milliseconds()/10),2)},SSS:function(){return r(this.milliseconds(),3)},SSSS:function(){return r(this.milliseconds(),3)},Z:function(){var a=this.utcOffset(),b="+";return 0>a&&(a=-a,b="-"),b+r(C(a/60),2)+":"+r(C(a)%60,2)},ZZ:function(){var a=this.utcOffset(),b="+";return 0>a&&(a=-a,b="-"),b+r(C(a/60),2)+r(C(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},sb={},tb=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"],ub=!1;pb.length;)xa=pb.pop(),rb[xa+"o"]=i(rb[xa],xa);for(;qb.length;)xa=qb.pop(),rb[xa+xa]=h(rb[xa],2);rb.DDDD=h(rb.DDD,3),o(l.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a,b,c){var d,e,f;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;12>d;d++){if(e=va.utc([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=va([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b,c){var d=this._calendar[a];return"function"==typeof d?d.apply(b,[c]):d},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",_ordinalParse:/\d{1,2}/,preparse:function(a){return a},postformat:function(a){return a},week:function(a){return ja(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},firstDayOfWeek:function(){return this._week.dow},firstDayOfYear:function(){return this._week.doy},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),va=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=b,g._f=c,g._l=e,g._strict=f,g._isUTC=!1,g._pf=d(),la(g)},va.suppressDeprecationWarnings=!1,va.createFromInputFallback=f("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),va.min=function(){var a=[].slice.call(arguments,0);return ma("isBefore",a)},va.max=function(){var a=[].slice.call(arguments,0);return ma("isAfter",a)},va.utc=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=b,g._f=c,g._strict=f,g._pf=d(),la(g).utc()},va.unix=function(a){return va(1e3*a)},va.duration=function(a,b){var d,e,f,g,h=a,i=null;return va.isDuration(a)?h={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(h={},b?h[b]=a:h.milliseconds=a):(i=Na.exec(a))?(d="-"===i[1]?-1:1,h={y:0,d:C(i[Ea])*d,h:C(i[Fa])*d,m:C(i[Ga])*d,s:C(i[Ha])*d,ms:C(i[Ia])*d}):(i=Oa.exec(a))?(d="-"===i[1]?-1:1,f=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*d},h={y:f(i[2]),M:f(i[3]),d:f(i[4]),h:f(i[5]),m:f(i[6]),s:f(i[7]),w:f(i[8])}):null==h?h={}:"object"==typeof h&&("from"in h||"to"in h)&&(g=t(va(h.from),va(h.to)),h={},h.ms=g.milliseconds,h.M=g.months),e=new n(h),va.isDuration(a)&&c(a,"_locale")&&(e._locale=a._locale),e},va.version=ya,va.defaultFormat=gb,va.ISO_8601=function(){},va.momentProperties=Ka,va.updateOffset=function(){},va.relativeTimeThreshold=function(b,c){return ob[b]===a?!1:c===a?ob[b]:(ob[b]=c,!0)},va.lang=f("moment.lang is deprecated. Use moment.locale instead.",function(a,b){return va.locale(a,b)}),va.locale=function(a,b){var c;return a&&(c="undefined"!=typeof b?va.defineLocale(a,b):va.localeData(a),c&&(va.duration._locale=va._locale=c)),va._locale._abbr},va.defineLocale=function(a,b){return null!==b?(b.abbr=a,Ja[a]||(Ja[a]=new l),Ja[a].set(b),va.locale(a),Ja[a]):(delete Ja[a],null)},va.langData=f("moment.langData is deprecated. Use moment.localeData instead.",function(a){return va.localeData(a)}),va.localeData=function(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return va._locale;if(!w(a)){if(b=L(a))return b;a=[a]}return K(a)},va.isMoment=function(a){return a instanceof m||null!=a&&c(a,"_isAMomentObject")},va.isDuration=function(a){return a instanceof n};for(xa=tb.length-1;xa>=0;--xa)B(tb[xa]);va.normalizeUnits=function(a){return z(a)},va.invalid=function(a){var b=va.utc(NaN);return null!=a?o(b._pf,a):b._pf.userInvalidated=!0,b},va.parseZone=function(){return va.apply(null,arguments).parseZone()},va.parseTwoDigitYear=function(a){return C(a)+(C(a)>68?1900:2e3)},va.isDate=x,o(va.fn=m.prototype,{clone:function(){return va(this)},valueOf:function(){return+this._d-6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=va(this).utc();return 00:!1},parsingFlags:function(){return o({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(a){return this.utcOffset(0,a)},local:function(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(this._dateUtcOffset(),"m")),this},format:function(a){var b=P(this,a||va.defaultFormat);return this.localeData().postformat(b)},add:u(1,"add"),subtract:u(-1,"subtract"),diff:function(a,b,c){var d,e,f=M(a,this),g=6e4*(f.utcOffset()-this.utcOffset());return b=z(b),"year"===b||"month"===b||"quarter"===b?(e=j(this,f),"quarter"===b?e/=3:"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:q(e)},from:function(a,b){return va.duration({to:this,from:a}).locale(this.locale()).humanize(!b)},fromNow:function(a){return this.from(va(),a)},calendar:function(a){var b=a||va(),c=M(b,this).startOf("day"),d=this.diff(c,"days",!0),e=-6>d?"sameElse":-1>d?"lastWeek":0>d?"lastDay":1>d?"sameDay":2>d?"nextDay":7>d?"nextWeek":"sameElse";return this.format(this.localeData().calendar(e,this,va(b)))},isLeapYear:function(){return G(this.year())},isDST:function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=ga(a,this.localeData()),this.add(a-b,"d")):b},month:qa("Month",!0),startOf:function(a){switch(a=z(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a?this.weekday(0):"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(b){return b=z(b),b===a||"millisecond"===b?this:this.startOf(b).add(1,"isoWeek"===b?"week":b).subtract(1,"ms")},isAfter:function(a,b){var c;return b=z("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=va.isMoment(a)?a:va(a),+this>+a):(c=va.isMoment(a)?+a:+va(a),c<+this.clone().startOf(b))},isBefore:function(a,b){var c;return b=z("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=va.isMoment(a)?a:va(a),+a>+this):(c=va.isMoment(a)?+a:+va(a),+this.clone().endOf(b)a?this:a}),max:f("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(a){return a=va.apply(null,arguments),a>this?this:a}),zone:f("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",function(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}),utcOffset:function(a,b){var c,d=this._offset||0;return null!=a?("string"==typeof a&&(a=S(a)),Math.abs(a)<16&&(a=60*a),!this._isUTC&&b&&(c=this._dateUtcOffset()),this._offset=a,this._isUTC=!0,null!=c&&this.add(c,"m"),d!==a&&(!b||this._changeInProgress?v(this,va.duration(a-d,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,va.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?d:this._dateUtcOffset()},isLocal:function(){return!this._isUTC},isUtcOffset:function(){return this._isUTC},isUtc:function(){return this._isUTC&&0===this._offset},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(S(this._i)),this},hasAlignedHourOffset:function(a){return a=a?va(a).utcOffset():0,(this.utcOffset()-a)%60===0},daysInMonth:function(){return D(this.year(),this.month())},dayOfYear:function(a){var b=Aa((va(this).startOf("day")-va(this).startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")},quarter:function(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)},weekYear:function(a){var b=ja(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")},isoWeekYear:function(a){var b=ja(this,1,4).year;return null==a?b:this.add(a-b,"y")},week:function(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")},isoWeek:function(a){var b=ja(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")},weekday:function(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},isoWeeksInYear:function(){return E(this.year(),1,4)},weeksInYear:function(){var a=this.localeData()._week;return E(this.year(),a.dow,a.doy)},get:function(a){return a=z(a),this[a]()},set:function(a,b){var c;if("object"==typeof a)for(c in a)this.set(c,a[c]);else a=z(a),"function"==typeof this[a]&&this[a](b);return this},locale:function(b){var c;return b===a?this._locale._abbr:(c=va.localeData(b),null!=c&&(this._locale=c),this)},lang:f("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(b){return b===a?this.localeData():this.locale(b)}),localeData:function(){return this._locale},_dateUtcOffset:function(){return 15*-Math.round(this._d.getTimezoneOffset()/15)}}),va.fn.millisecond=va.fn.milliseconds=qa("Milliseconds",!1),va.fn.second=va.fn.seconds=qa("Seconds",!1),va.fn.minute=va.fn.minutes=qa("Minutes",!1),va.fn.hour=va.fn.hours=qa("Hours",!0),va.fn.date=qa("Date",!0),va.fn.dates=f("dates accessor is deprecated. Use date instead.",qa("Date",!0)),va.fn.year=qa("FullYear",!0),va.fn.years=f("years accessor is deprecated. Use year instead.",qa("FullYear",!0)),va.fn.days=va.fn.day,va.fn.months=va.fn.month,va.fn.weeks=va.fn.week,va.fn.isoWeeks=va.fn.isoWeek,va.fn.quarters=va.fn.quarter,va.fn.toJSON=va.fn.toISOString,va.fn.isUTC=va.fn.isUtc,o(va.duration.fn=n.prototype,{_bubble:function(){var a,b,c,d=this._milliseconds,e=this._days,f=this._months,g=this._data,h=0;g.milliseconds=d%1e3,a=q(d/1e3),g.seconds=a%60,b=q(a/60),g.minutes=b%60,c=q(b/60),g.hours=c%24,e+=q(c/24),h=q(ra(e)),e-=q(sa(h)),f+=q(e/30),e%=30,h+=q(f/12),f%=12,g.days=e,g.months=f,g.years=h},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return q(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*C(this._months/12)},humanize:function(a){var b=ia(this,!a,this.localeData());return a&&(b=this.localeData().pastFuture(+this,b)),this.localeData().postformat(b)},add:function(a,b){var c=va.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=va.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=z(a),this[a.toLowerCase()+"s"]()},as:function(a){var b,c;if(a=z(a),"month"===a||"year"===a)return b=this._days+this._milliseconds/864e5,c=this._months+12*ra(b),"month"===a?c:c/12;switch(b=this._days+Math.round(sa(this._months/12)),a){case"week":return b/7+this._milliseconds/6048e5;case"day":return b+this._milliseconds/864e5;case"hour":return 24*b+this._milliseconds/36e5;case"minute":return 24*b*60+this._milliseconds/6e4;case"second":return 24*b*60*60+this._milliseconds/1e3;case"millisecond":return Math.floor(24*b*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+a)}},lang:va.fn.lang,locale:va.fn.locale,toIsoString:f("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"},localeData:function(){return this._locale},toJSON:function(){return this.toISOString()}}),va.duration.fn.toString=va.duration.fn.toISOString;for(xa in kb)c(kb,xa)&&ta(xa.toLowerCase());va.duration.fn.asMilliseconds=function(){return this.as("ms")},va.duration.fn.asSeconds=function(){return this.as("s")},va.duration.fn.asMinutes=function(){return this.as("m")},va.duration.fn.asHours=function(){return this.as("h")},va.duration.fn.asDays=function(){return this.as("d")},va.duration.fn.asWeeks=function(){return this.as("weeks")},va.duration.fn.asMonths=function(){return this.as("M")},va.duration.fn.asYears=function(){return this.as("y")},va.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===C(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),La?module.exports=va:"function"==typeof define&&define.amd?(define(function(a,b,c){return c.config&&c.config()&&c.config().noGlobal===!0&&(za.moment=wa),va}),ua(!0)):ua()}.call(this),function(a,b){if("function"==typeof define&&define.amd)define(["moment","jquery","exports"],function(c,d,e){a.daterangepicker=b(a,e,c,d)});else if("undefined"!=typeof exports){var c,d=require("moment");try{c=require("jquery")}catch(e){if(c=window.jQuery,!c)throw new Error("jQuery dependency not found")}b(a,exports,d,c)}else a.daterangepicker=b(a,{},a.moment,a.jQuery||a.Zepto||a.ender||a.$)}(this,function(a,b,c,d){var e=function(a,b,c){this.parentEl="body",this.element=d(a),this.isShowing=!1;var e='';"object"==typeof b&&null!==b||(b={}),this.parentEl=d("object"==typeof b&&b.parentEl&&d(b.parentEl).length?b.parentEl:this.parentEl),this.container=d(e).appendTo(this.parentEl),this.setOptions(b,c);var f=this.container;d.each(this.buttonClasses,function(a,b){f.find("button").addClass(b)}),this.container.find(".daterangepicker_start_input label").html(this.locale.fromLabel),this.container.find(".daterangepicker_end_input label").html(this.locale.toLabel),this.applyClass.length&&this.container.find(".applyBtn").addClass(this.applyClass),this.cancelClass.length&&this.container.find(".cancelBtn").addClass(this.cancelClass),this.container.find(".applyBtn").html(this.locale.applyLabel),this.container.find(".cancelBtn").html(this.locale.cancelLabel),this.container.find(".calendar").on("click.daterangepicker",".prev",d.proxy(this.clickPrev,this)).on("click.daterangepicker",".next",d.proxy(this.clickNext,this)).on("click.daterangepicker","td.available",d.proxy(this.clickDate,this)).on("mouseenter.daterangepicker","td.available",d.proxy(this.hoverDate,this)).on("mouseleave.daterangepicker","td.available",d.proxy(this.updateFormInputs,this)).on("change.daterangepicker","select.yearselect",d.proxy(this.updateMonthYear,this)).on("change.daterangepicker","select.monthselect",d.proxy(this.updateMonthYear,this)).on("change.daterangepicker","select.hourselect,select.minuteselect,select.secondselect,select.ampmselect",d.proxy(this.updateTime,this)),this.container.find(".ranges").on("click.daterangepicker","button.applyBtn",d.proxy(this.clickApply,this)).on("click.daterangepicker","button.cancelBtn",d.proxy(this.clickCancel,this)).on("click.daterangepicker",".daterangepicker_start_input,.daterangepicker_end_input",d.proxy(this.showCalendars,this)).on("change.daterangepicker",".daterangepicker_start_input,.daterangepicker_end_input",d.proxy(this.inputsChanged,this)).on("keydown.daterangepicker",".daterangepicker_start_input,.daterangepicker_end_input",d.proxy(this.inputsKeydown,this)).on("click.daterangepicker","li",d.proxy(this.clickRange,this)).on("mouseenter.daterangepicker","li",d.proxy(this.enterRange,this)).on("mouseleave.daterangepicker","li",d.proxy(this.updateFormInputs,this)),this.element.is("input")?this.element.on({"click.daterangepicker":d.proxy(this.show,this),"focus.daterangepicker":d.proxy(this.show,this),"keyup.daterangepicker":d.proxy(this.updateFromControl,this)}):this.element.on("click.daterangepicker",d.proxy(this.toggle,this))};e.prototype={constructor:e,setOptions:function(a,b){if(this.startDate=c().startOf("day"),this.endDate=c().endOf("day"),this.timeZone=c().zone(),this.minDate=!1,this.maxDate=!1,this.dateLimit=!1,this.showDropdowns=!1,this.showWeekNumbers=!1,this.timePicker=!1,this.timePickerSeconds=!1,this.timePickerIncrement=30,this.timePicker12Hour=!0,this.singleDatePicker=!1,this.ranges={},this.opens="right",this.element.hasClass("pull-right")&&(this.opens="left"),this.buttonClasses=["btn","btn-small btn-sm"],this.applyClass="btn-success",this.cancelClass="btn-default",this.format="MM/DD/YYYY",this.separator=" - ",this.locale={applyLabel:"Apply",cancelLabel:"Cancel",fromLabel:"From",toLabel:"To",weekLabel:"W",customRangeLabel:"Custom Range",daysOfWeek:c.weekdaysMin(),monthNames:c.monthsShort(),firstDay:c.localeData()._week.dow},this.cb=function(){},"string"==typeof a.format&&(this.format=a.format),"string"==typeof a.separator&&(this.separator=a.separator),"string"==typeof a.startDate&&(this.startDate=c(a.startDate,this.format)),"string"==typeof a.endDate&&(this.endDate=c(a.endDate,this.format)),"string"==typeof a.minDate&&(this.minDate=c(a.minDate,this.format)),"string"==typeof a.maxDate&&(this.maxDate=c(a.maxDate,this.format)),"object"==typeof a.startDate&&(this.startDate=c(a.startDate)),"object"==typeof a.endDate&&(this.endDate=c(a.endDate)),"object"==typeof a.minDate&&(this.minDate=c(a.minDate)),"object"==typeof a.maxDate&&(this.maxDate=c(a.maxDate)),"string"==typeof a.applyClass&&(this.applyClass=a.applyClass),"string"==typeof a.cancelClass&&(this.cancelClass=a.cancelClass),"object"==typeof a.dateLimit&&(this.dateLimit=a.dateLimit),"object"==typeof a.locale&&("object"==typeof a.locale.daysOfWeek&&(this.locale.daysOfWeek=a.locale.daysOfWeek.slice()),"object"==typeof a.locale.monthNames&&(this.locale.monthNames=a.locale.monthNames.slice()),"number"==typeof a.locale.firstDay&&(this.locale.firstDay=a.locale.firstDay),"string"==typeof a.locale.applyLabel&&(this.locale.applyLabel=a.locale.applyLabel),"string"==typeof a.locale.cancelLabel&&(this.locale.cancelLabel=a.locale.cancelLabel),"string"==typeof a.locale.fromLabel&&(this.locale.fromLabel=a.locale.fromLabel),"string"==typeof a.locale.toLabel&&(this.locale.toLabel=a.locale.toLabel),"string"==typeof a.locale.weekLabel&&(this.locale.weekLabel=a.locale.weekLabel),"string"==typeof a.locale.customRangeLabel&&(this.locale.customRangeLabel=a.locale.customRangeLabel)),"string"==typeof a.opens&&(this.opens=a.opens),"boolean"==typeof a.showWeekNumbers&&(this.showWeekNumbers=a.showWeekNumbers),"string"==typeof a.buttonClasses&&(this.buttonClasses=[a.buttonClasses]),"object"==typeof a.buttonClasses&&(this.buttonClasses=a.buttonClasses),"boolean"==typeof a.showDropdowns&&(this.showDropdowns=a.showDropdowns),"boolean"==typeof a.singleDatePicker&&(this.singleDatePicker=a.singleDatePicker,this.singleDatePicker&&(this.endDate=this.startDate.clone())),"boolean"==typeof a.timePicker&&(this.timePicker=a.timePicker),"boolean"==typeof a.timePickerSeconds&&(this.timePickerSeconds=a.timePickerSeconds),"number"==typeof a.timePickerIncrement&&(this.timePickerIncrement=a.timePickerIncrement),"boolean"==typeof a.timePicker12Hour&&(this.timePicker12Hour=a.timePicker12Hour),0!=this.locale.firstDay)for(var e=this.locale.firstDay;e>0;)this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()),e--;var f,g,h;if("undefined"==typeof a.startDate&&"undefined"==typeof a.endDate&&d(this.element).is("input[type=text]")){var i=d(this.element).val(),j=i.split(this.separator);f=g=null,2==j.length?(f=c(j[0],this.format),g=c(j[1],this.format)):this.singleDatePicker&&""!==i&&(f=c(i,this.format),g=c(i,this.format)),null!==f&&null!==g&&(this.startDate=f,this.endDate=g)}if("string"==typeof a.timeZone||"number"==typeof a.timeZone?(this.timeZone=a.timeZone,this.startDate.zone(this.timeZone),this.endDate.zone(this.timeZone)):this.timeZone=c(this.startDate).zone(),"object"==typeof a.ranges){for(h in a.ranges)f="string"==typeof a.ranges[h][0]?c(a.ranges[h][0],this.format):c(a.ranges[h][0]),g="string"==typeof a.ranges[h][1]?c(a.ranges[h][1],this.format):c(a.ranges[h][1]),this.minDate&&f.isBefore(this.minDate)&&(f=c(this.minDate)),this.maxDate&&g.isAfter(this.maxDate)&&(g=c(this.maxDate)),this.minDate&&g.isBefore(this.minDate)||this.maxDate&&f.isAfter(this.maxDate)||(this.ranges[h]=[f,g]);var k="
            ";for(h in this.ranges)k+="
          • "+h+"
          • ";k+="
          • "+this.locale.customRangeLabel+"
          • ",k+="
          ",this.container.find(".ranges ul").remove(),this.container.find(".ranges").prepend(k)}if("function"==typeof b&&(this.cb=b),this.timePicker||(this.startDate=this.startDate.startOf("day"),this.endDate=this.endDate.endOf("day")),this.singleDatePicker?(this.opens="right",this.container.addClass("single"),this.container.find(".calendar.right").show(),this.container.find(".calendar.left").hide(),this.timePicker?this.container.find(".ranges .daterangepicker_start_input, .ranges .daterangepicker_end_input").hide():this.container.find(".ranges").hide(),this.container.find(".calendar.right").hasClass("single")||this.container.find(".calendar.right").addClass("single")):(this.container.removeClass("single"),this.container.find(".calendar.right").removeClass("single"),this.container.find(".ranges").show()),this.oldStartDate=this.startDate.clone(),this.oldEndDate=this.endDate.clone(),this.oldChosenLabel=this.chosenLabel,this.leftCalendar={month:c([this.startDate.year(),this.startDate.month(),1,this.startDate.hour(),this.startDate.minute(),this.startDate.second()]),calendar:[]},this.rightCalendar={month:c([this.endDate.year(),this.endDate.month(),1,this.endDate.hour(),this.endDate.minute(),this.endDate.second()]),calendar:[]},"right"==this.opens||"center"==this.opens){var l=this.container.find(".calendar.first"),m=this.container.find(".calendar.second");m.hasClass("single")&&(m.removeClass("single"),l.addClass("single")),l.removeClass("left").addClass("right"),m.removeClass("right").addClass("left"),this.singleDatePicker&&(l.show(),m.hide())}"undefined"!=typeof a.ranges||this.singleDatePicker||this.container.addClass("show-calendar"),this.container.addClass("opens"+this.opens),this.updateView(),this.updateCalendars()},setStartDate:function(a){"string"==typeof a&&(this.startDate=c(a,this.format).zone(this.timeZone)),"object"==typeof a&&(this.startDate=c(a)),this.timePicker||(this.startDate=this.startDate.startOf("day")),this.oldStartDate=this.startDate.clone(),this.updateView(),this.updateCalendars(),this.updateInputText()},setEndDate:function(a){"string"==typeof a&&(this.endDate=c(a,this.format).zone(this.timeZone)),"object"==typeof a&&(this.endDate=c(a)),this.timePicker||(this.endDate=this.endDate.endOf("day")),this.oldEndDate=this.endDate.clone(),this.updateView(),this.updateCalendars(),this.updateInputText()},updateView:function(){this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()).hour(this.startDate.hour()).minute(this.startDate.minute()),this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()).hour(this.endDate.hour()).minute(this.endDate.minute()),this.updateFormInputs()},updateFormInputs:function(){this.container.find("input[name=daterangepicker_start]").val(this.startDate.format(this.format)),this.container.find("input[name=daterangepicker_end]").val(this.endDate.format(this.format)),this.startDate.isSame(this.endDate)||this.startDate.isBefore(this.endDate)?this.container.find("button.applyBtn").removeAttr("disabled"):this.container.find("button.applyBtn").attr("disabled","disabled")},updateFromControl:function(){if(this.element.is("input")&&this.element.val().length){var a=this.element.val().split(this.separator),b=null,d=null;2===a.length&&(b=c(a[0],this.format).zone(this.timeZone),d=c(a[1],this.format).zone(this.timeZone)),(this.singleDatePicker||null===b||null===d)&&(b=c(this.element.val(),this.format).zone(this.timeZone),d=b),d.isBefore(b)||(this.oldStartDate=this.startDate.clone(),this.oldEndDate=this.endDate.clone(),this.startDate=b,this.endDate=d,this.startDate.isSame(this.oldStartDate)&&this.endDate.isSame(this.oldEndDate)||this.notify(),this.updateCalendars())}},notify:function(){this.updateView(),this.cb(this.startDate,this.endDate,this.chosenLabel)},move:function(){var a={top:0,left:0},b=d(window).width();this.parentEl.is("body")||(a={top:this.parentEl.offset().top-this.parentEl.scrollTop(),left:this.parentEl.offset().left-this.parentEl.scrollLeft()},b=this.parentEl[0].clientWidth+this.parentEl.offset().left),"left"==this.opens?(this.container.css({top:this.element.offset().top+this.element.outerHeight()-a.top,right:b-this.element.offset().left-this.element.outerWidth(),left:"auto"}),this.container.offset().left<0&&this.container.css({right:"auto",left:9})):"center"==this.opens?(this.container.css({top:this.element.offset().top+this.element.outerHeight()-a.top,left:this.element.offset().left-a.left+this.element.outerWidth()/2-this.container.outerWidth()/2,right:"auto"}),this.container.offset().left<0&&this.container.css({right:"auto",left:9})):(this.container.css({top:this.element.offset().top+this.element.outerHeight()-a.top,left:this.element.offset().left-a.left,right:"auto"}),this.container.offset().left+this.container.outerWidth()>d(window).width()&&this.container.css({left:"auto",right:0}))},toggle:function(a){this.element.hasClass("active")?this.hide():this.show()},show:function(a){this.isShowing||(this.element.addClass("active"),this.container.show(),this.move(),this._outsideClickProxy=d.proxy(function(a){this.outsideClick(a)},this),d(document).on("mousedown.daterangepicker",this._outsideClickProxy).on("touchend.daterangepicker",this._outsideClickProxy).on("click.daterangepicker","[data-toggle=dropdown]",this._outsideClickProxy).on("focusin.daterangepicker",this._outsideClickProxy),this.isShowing=!0,this.element.trigger("show.daterangepicker",this))},outsideClick:function(a){var b=d(a.target);"focusin"==a.type||b.closest(this.element).length||b.closest(this.container).length||b.closest(".calendar-date").length||this.hide()},hide:function(a){this.isShowing&&(d(document).off(".daterangepicker"),this.element.removeClass("active"),this.container.hide(),this.startDate.isSame(this.oldStartDate)&&this.endDate.isSame(this.oldEndDate)||this.notify(),this.oldStartDate=this.startDate.clone(),this.oldEndDate=this.endDate.clone(),this.isShowing=!1,this.element.trigger("hide.daterangepicker",this))},enterRange:function(a){var b=a.target.innerHTML;if(b==this.locale.customRangeLabel)this.updateView();else{var c=this.ranges[b];this.container.find("input[name=daterangepicker_start]").val(c[0].format(this.format)),this.container.find("input[name=daterangepicker_end]").val(c[1].format(this.format))}},showCalendars:function(){this.container.addClass("show-calendar"),this.move(),this.element.trigger("showCalendar.daterangepicker",this)},hideCalendars:function(){this.container.removeClass("show-calendar"),this.element.trigger("hideCalendar.daterangepicker",this)},inputsChanged:function(a){var b=d(a.target),e=c(b.val(),this.format);if(e.isValid()){var f,g;"daterangepicker_start"===b.attr("name")?(f=e,g=this.endDate):(f=this.startDate,g=e),this.setCustomDates(f,g)}},inputsKeydown:function(a){13===a.keyCode&&(this.inputsChanged(a),this.notify())},updateInputText:function(){this.element.is("input")&&!this.singleDatePicker?this.element.val(this.startDate.format(this.format)+this.separator+this.endDate.format(this.format)):this.element.is("input")&&this.element.val(this.endDate.format(this.format))},clickRange:function(a){var b=a.target.innerHTML;if(this.chosenLabel=b,b==this.locale.customRangeLabel)this.showCalendars();else{var c=this.ranges[b];this.startDate=c[0],this.endDate=c[1],this.timePicker||(this.startDate.startOf("day"),this.endDate.endOf("day")),this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()).hour(this.startDate.hour()).minute(this.startDate.minute()),this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()).hour(this.endDate.hour()).minute(this.endDate.minute()),this.updateCalendars(),this.updateInputText(),this.hideCalendars(),this.hide(),this.element.trigger("apply.daterangepicker",this)}},clickPrev:function(a){var b=d(a.target).parents(".calendar");b.hasClass("left")?this.leftCalendar.month.subtract(1,"month"):this.rightCalendar.month.subtract(1,"month"),this.updateCalendars()},clickNext:function(a){var b=d(a.target).parents(".calendar");b.hasClass("left")?this.leftCalendar.month.add(1,"month"):this.rightCalendar.month.add(1,"month"),this.updateCalendars()},hoverDate:function(a){var b=d(a.target).attr("data-title"),c=b.substr(1,1),e=b.substr(3,1),f=d(a.target).parents(".calendar");f.hasClass("left")?this.container.find("input[name=daterangepicker_start]").val(this.leftCalendar.calendar[c][e].format(this.format)):this.container.find("input[name=daterangepicker_end]").val(this.rightCalendar.calendar[c][e].format(this.format))},setCustomDates:function(a,b){if(this.chosenLabel=this.locale.customRangeLabel,a.isAfter(b)){var d=this.endDate.diff(this.startDate);b=c(a).add(d,"ms")}this.startDate=a,this.endDate=b,this.updateView(),this.updateCalendars()},clickDate:function(a){var b,e,f=d(a.target).attr("data-title"),g=f.substr(1,1),h=f.substr(3,1),i=d(a.target).parents(".calendar");if(i.hasClass("left")){if(b=this.leftCalendar.calendar[g][h],e=this.endDate,"object"==typeof this.dateLimit){var j=c(b).add(this.dateLimit).startOf("day");e.isAfter(j)&&(e=j)}}else if(b=this.startDate,e=this.rightCalendar.calendar[g][h],"object"==typeof this.dateLimit){var k=c(e).subtract(this.dateLimit).startOf("day");b.isBefore(k)&&(b=k)}this.singleDatePicker&&i.hasClass("left")?e=b.clone():this.singleDatePicker&&i.hasClass("right")&&(b=e.clone()),i.find("td").removeClass("active"),d(a.target).addClass("active"),this.setCustomDates(b,e),this.timePicker||e.endOf("day"),this.singleDatePicker&&!this.timePicker&&this.clickApply()},clickApply:function(a){this.updateInputText(),this.hide(),this.element.trigger("apply.daterangepicker",this)},clickCancel:function(a){this.startDate=this.oldStartDate,this.endDate=this.oldEndDate,this.chosenLabel=this.oldChosenLabel,this.updateView(),this.updateCalendars(),this.hide(),this.element.trigger("cancel.daterangepicker",this)},updateMonthYear:function(a){var b=d(a.target).closest(".calendar").hasClass("left"),c=b?"left":"right",e=this.container.find(".calendar."+c),f=parseInt(e.find(".monthselect").val(),10),g=e.find(".yearselect").val();this[c+"Calendar"].month.month(f).year(g),this.updateCalendars()},updateTime:function(a){var b=d(a.target).closest(".calendar"),c=b.hasClass("left"),e=parseInt(b.find(".hourselect").val(),10),f=parseInt(b.find(".minuteselect").val(),10),g=0;if(this.timePickerSeconds&&(g=parseInt(b.find(".secondselect").val(),10)),this.timePicker12Hour){var h=b.find(".ampmselect").val();"PM"===h&&12>e&&(e+=12),"AM"===h&&12===e&&(e=0)}if(c){var i=this.startDate.clone();i.hour(e),i.minute(f),i.second(g),this.startDate=i,this.leftCalendar.month.hour(e).minute(f).second(g),this.singleDatePicker&&(this.endDate=i.clone())}else{var j=this.endDate.clone();j.hour(e),j.minute(f),j.second(g),this.endDate=j,this.singleDatePicker&&(this.startDate=j.clone()),this.rightCalendar.month.hour(e).minute(f).second(g)}this.updateView(),this.updateCalendars()},updateCalendars:function(){this.leftCalendar.calendar=this.buildCalendar(this.leftCalendar.month.month(),this.leftCalendar.month.year(),this.leftCalendar.month.hour(),this.leftCalendar.month.minute(),this.leftCalendar.month.second(),"left"),this.rightCalendar.calendar=this.buildCalendar(this.rightCalendar.month.month(),this.rightCalendar.month.year(),this.rightCalendar.month.hour(),this.rightCalendar.month.minute(),this.rightCalendar.month.second(),"right"),this.container.find(".calendar.left").empty().html(this.renderCalendar(this.leftCalendar.calendar,this.startDate,this.minDate,this.maxDate,"left")),this.container.find(".calendar.right").empty().html(this.renderCalendar(this.rightCalendar.calendar,this.endDate,this.singleDatePicker?this.minDate:this.startDate,this.maxDate,"right")),this.container.find(".ranges li").removeClass("active");var a=!0,b=0;for(var c in this.ranges)this.timePicker?this.startDate.isSame(this.ranges[c][0])&&this.endDate.isSame(this.ranges[c][1])&&(a=!1,this.chosenLabel=this.container.find(".ranges li:eq("+b+")").addClass("active").html()):this.startDate.format("YYYY-MM-DD")==this.ranges[c][0].format("YYYY-MM-DD")&&this.endDate.format("YYYY-MM-DD")==this.ranges[c][1].format("YYYY-MM-DD")&&(a=!1,this.chosenLabel=this.container.find(".ranges li:eq("+b+")").addClass("active").html()),b++;a&&(this.chosenLabel=this.container.find(".ranges li:last").addClass("active").html(),this.showCalendars())},buildCalendar:function(a,b,d,e,f,g){var h,i=c([b,a]).daysInMonth(),j=c([b,a,1]),k=c([b,a,i]),l=c(j).subtract(1,"month").month(),m=c(j).subtract(1,"month").year(),n=c([m,l]).daysInMonth(),o=j.day(),p=[];for(p.firstDay=j,p.lastDay=k,h=0;6>h;h++)p[h]=[];var q=n-o+this.locale.firstDay+1;q>n&&(q-=7),o==this.locale.firstDay&&(q=n-6);var r,s,t=c([m,l,q,12,e,f]).zone(this.timeZone);for(h=0,r=0,s=0;42>h;h++,r++,t=c(t).add(24,"hour"))h>0&&r%7===0&&(r=0,s++),p[s][r]=t.clone().hour(d),t.hour(12),this.minDate&&p[s][r].format("YYYY-MM-DD")==this.minDate.format("YYYY-MM-DD")&&p[s][r].isBefore(this.minDate)&&"left"==g&&(p[s][r]=this.minDate.clone()),this.maxDate&&p[s][r].format("YYYY-MM-DD")==this.maxDate.format("YYYY-MM-DD")&&p[s][r].isAfter(this.maxDate)&&"right"==g&&(p[s][r]=this.maxDate.clone());return p},renderDropdowns:function(a,b,c){for(var d=a.month(),e=a.year(),f=c&&c.year()||e+5,g=b&&b.year()||e-50,h='";for(var l='",h+l},renderCalendar:function(a,b,c,e,f){var g='
          ';g+='',g+="",g+="",this.showWeekNumbers&&(g+=""),g+=!c||c.isBefore(a.firstDay)?'':"";var h=this.locale.monthNames[a[1][1].month()]+a[1][1].format(" YYYY");this.showDropdowns&&(h=this.renderDropdowns(a[1][1],c,e)),g+='",g+=!e||e.isAfter(a.lastDay)?'':"",g+="",g+="",this.showWeekNumbers&&(g+='"),d.each(this.locale.daysOfWeek,function(a,b){g+=""}),g+="",g+="",g+="";for(var i=0;6>i;i++){g+="",this.showWeekNumbers&&(g+='");for(var j=0;7>j;j++){var k="available ";k+=a[i][j].month()==a[1][1].month()?"":"off",c&&a[i][j].isBefore(c,"day")||e&&a[i][j].isAfter(e,"day")?k=" off disabled ":a[i][j].format("YYYY-MM-DD")==b.format("YYYY-MM-DD")?(k+=" active ",a[i][j].format("YYYY-MM-DD")==this.startDate.format("YYYY-MM-DD")&&(k+=" start-date "),a[i][j].format("YYYY-MM-DD")==this.endDate.format("YYYY-MM-DD")&&(k+=" end-date ")):a[i][j]>=this.startDate&&a[i][j]<=this.endDate&&(k+=" in-range ",a[i][j].isSame(this.startDate)&&(k+=" start-date "),a[i][j].isSame(this.endDate)&&(k+=" end-date "));var l="r"+i+"c"+j;g+='"}g+=""}g+="",g+="
          '+h+"
          '+this.locale.weekLabel+""+b+"
          '+a[i][0].week()+"'+a[i][j].date()+"
          ",g+="
          ";var m;if(this.timePicker){g+='
          ',g+=' : ",g+=' ",this.timePickerSeconds){for(g+=': "}if(this.timePicker12Hour){g+='"}g+="
          "}return g},remove:function(){this.container.remove(),this.element.off(".daterangepicker"),this.element.removeData("daterangepicker")}},d.fn.daterangepicker=function(a,b){return this.each(function(){var c=d(this);c.data("daterangepicker")&&c.data("daterangepicker").remove(),c.data("daterangepicker",new e(c,a,b))}),this}}),function(a){"use strict";a.module("ngBootstrap",[]).directive("input",["$compile","$parse","$filter",function(b,c,d){return{restrict:"E",require:"?ngModel",link:function(b,e,f,g){function h(a){return moment.isMoment(a)?a.toDate():a}function i(a){return moment.isMoment(a)?a:moment(a)}function j(a){return d("date")(h(a),l.format.replace(/Y/g,"y").replace(/D/g,"d"))}function k(a){return[j(a.startDate),j(a.endDate)].join(l.separator)}if("daterange"===f.type&&null!==g){var l={};l.format=f.format||"YYYY-MM-DD",l.separator=f.separator||" - ",l.minDate=f.minDate&&moment(f.minDate),l.maxDate=f.maxDate&&moment(f.maxDate),l.dateLimit=f.limit&&moment.duration.apply(this,f.limit.split(" ").map(function(a,b){return 0===b&&parseInt(a,10)||a})),l.ranges=f.ranges&&c(f.ranges)(b),l.locale=f.locale&&c(f.locale)(b),l.opens=f.opens||c(f.opens)(b),f.enabletimepicker&&(l.timePicker=!0,a.extend(l,c(f.enabletimepicker)(b))),g.$render=function(){g.$viewValue&&g.$viewValue.startDate&&e.val(k(g.$viewValue))},b.$watch(function(){return f.ngModel},function(a,c){return b[a]&&b[a].startDate?void(c===a&&(e.data("daterangepicker").startDate=i(b[a].startDate),e.data("daterangepicker").endDate=i(b[a].endDate),e.data("daterangepicker").updateView(),e.data("daterangepicker").updateCalendars(),e.data("daterangepicker").updateInputText())):void g.$setViewValue({startDate:moment().startOf("day"),endDate:moment().startOf("day")})}),e.daterangepicker(l,function(c,d,e){var f=g.$viewValue;a.equals(c,f.startDate)&&a.equals(d,f.endDate)||b.$apply(function(){g.$setViewValue({startDate:moment.isMoment(f.startDate)?c:c.toDate(),endDate:moment.isMoment(f.endDate)?d:d.toDate()}),g.$render()})})}}}}])}(angular),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.debounce","ui.bootstrap.dropdown","ui.bootstrap.stackedMap","ui.bootstrap.modal","ui.bootstrap.paging","ui.bootstrap.pager","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["uib/template/accordion/accordion-group.html","uib/template/accordion/accordion.html","uib/template/alert/alert.html","uib/template/carousel/carousel.html","uib/template/carousel/slide.html","uib/template/datepicker/datepicker.html","uib/template/datepicker/day.html","uib/template/datepicker/month.html","uib/template/datepicker/popup.html","uib/template/datepicker/year.html","uib/template/modal/backdrop.html","uib/template/modal/window.html","uib/template/pager/pager.html","uib/template/pagination/pagination.html","uib/template/tooltip/tooltip-html-popup.html","uib/template/tooltip/tooltip-popup.html","uib/template/tooltip/tooltip-template-popup.html","uib/template/popover/popover-html.html","uib/template/popover/popover-template.html","uib/template/popover/popover.html","uib/template/progressbar/bar.html","uib/template/progressbar/progress.html","uib/template/progressbar/progressbar.html","uib/template/rating/rating.html","uib/template/tabs/tab.html","uib/template/tabs/tabset.html","uib/template/timepicker/timepicker.html","uib/template/typeahead/typeahead-match.html","uib/template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.collapse",[]).directive("uibCollapse",["$animate","$injector",function(a,b){var c=b.has("$animateCss")?b.get("$animateCss"):null;return{link:function(b,d,e){function f(){d.removeClass("collapse").addClass("collapsing").attr("aria-expanded",!0).attr("aria-hidden",!1),c?c(d,{addClass:"in",easing:"ease",to:{height:d[0].scrollHeight+"px"}}).start()["finally"](g):a.addClass(d,"in",{to:{height:d[0].scrollHeight+"px"}}).then(g)}function g(){d.removeClass("collapsing").addClass("collapse").css({height:"auto"})}function h(){return d.hasClass("collapse")||d.hasClass("in")?(d.css({height:d[0].scrollHeight+"px"}).removeClass("collapse").addClass("collapsing").attr("aria-expanded",!1).attr("aria-hidden",!0),void(c?c(d,{removeClass:"in",to:{height:"0"}}).start()["finally"](i):a.removeClass(d,"in",{to:{height:"0"}}).then(i))):i()}function i(){d.css({height:"0"}),d.removeClass("collapsing").addClass("collapse")}b.$eval(e.uibCollapse)||d.addClass("in").addClass("collapse").css({height:"auto"}),b.$watch(e.uibCollapse,function(a){a?h():f()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("uibAccordionConfig",{closeOthers:!0}).controller("UibAccordionController",["$scope","$attrs","uibAccordionConfig",function(a,b,c){this.groups=[],this.closeOthers=function(d){var e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&&angular.forEach(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var b=this;this.groups.push(a),a.$on("$destroy",function(c){b.removeGroup(a)})},this.removeGroup=function(a){var b=this.groups.indexOf(a);-1!==b&&this.groups.splice(b,1)}}]).directive("uibAccordion",function(){return{controller:"UibAccordionController",controllerAs:"accordion",transclude:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/accordion/accordion.html"}}}).directive("uibAccordionGroup",function(){return{require:"^uibAccordion",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/accordion/accordion-group.html"},scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(a,b,c,d){d.addGroup(a),a.openClass=c.openClass||"panel-open",a.panelClass=c.panelClass||"panel-default",a.$watch("isOpen",function(c){b.toggleClass(a.openClass,!!c),c&&d.closeOthers(a)}),a.toggleOpen=function(b){a.isDisabled||b&&32!==b.which||(a.isOpen=!a.isOpen)}}}}).directive("uibAccordionHeading",function(){return{transclude:!0,template:"",replace:!0,require:"^uibAccordionGroup",link:function(a,b,c,d,e){d.setHeading(e(a,angular.noop))}}}).directive("uibAccordionTransclude",function(){return{require:"^uibAccordionGroup",link:function(a,b,c,d){a.$watch(function(){return d[c.uibAccordionTransclude]},function(a){a&&(b.find("span").html(""),b.find("span").append(a))})}}}),angular.module("ui.bootstrap.alert",[]).controller("UibAlertController",["$scope","$attrs","$interpolate","$timeout",function(a,b,c,d){a.closeable=!!b.close;var e=angular.isDefined(b.dismissOnTimeout)?c(b.dismissOnTimeout)(a.$parent):null;e&&d(function(){a.close()},parseInt(e,10))}]).directive("uibAlert",function(){return{controller:"UibAlertController",controllerAs:"alert",templateUrl:function(a,b){return b.templateUrl||"uib/template/alert/alert.html"},transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}),angular.module("ui.bootstrap.buttons",[]).constant("uibButtonConfig",{activeClass:"active",toggleEvent:"click"}).controller("UibButtonsController",["uibButtonConfig",function(a){this.activeClass=a.activeClass||"active",this.toggleEvent=a.toggleEvent||"click"}]).directive("uibBtnRadio",["$parse",function(a){return{require:["uibBtnRadio","ngModel"],controller:"UibButtonsController",controllerAs:"buttons",link:function(b,c,d,e){var f=e[0],g=e[1],h=a(d.uibUncheckable);c.find("input").css({display:"none"}),g.$render=function(){c.toggleClass(f.activeClass,angular.equals(g.$modelValue,b.$eval(d.uibBtnRadio)))},c.on(f.toggleEvent,function(){if(!d.disabled){var a=c.hasClass(f.activeClass);a&&!angular.isDefined(d.uncheckable)||b.$apply(function(){g.$setViewValue(a?null:b.$eval(d.uibBtnRadio)),g.$render()})}}),d.uibUncheckable&&b.$watch(h,function(a){d.$set("uncheckable",a?"":null)})}}}]).directive("uibBtnCheckbox",function(){return{require:["uibBtnCheckbox","ngModel"],controller:"UibButtonsController",controllerAs:"button",link:function(a,b,c,d){function e(){return g(c.btnCheckboxTrue,!0)}function f(){return g(c.btnCheckboxFalse,!1)}function g(b,c){return angular.isDefined(b)?a.$eval(b):c}var h=d[0],i=d[1];b.find("input").css({display:"none"}),i.$render=function(){b.toggleClass(h.activeClass,angular.equals(i.$modelValue,e()))},b.on(h.toggleEvent,function(){c.disabled||a.$apply(function(){i.$setViewValue(b.hasClass(h.activeClass)?f():e()),i.$render()})})}}}),angular.module("ui.bootstrap.carousel",[]).controller("UibCarouselController",["$scope","$element","$interval","$timeout","$animate",function(a,b,c,d,e){function f(){for(;s.length;)s.shift()}function g(a){if(angular.isUndefined(p[a].index))return p[a];for(var b=0,c=p.length;c>b;++b)if(p[b].index===a)return p[b]}function h(c,d,g){t||(angular.extend(c,{direction:g,active:!0}),angular.extend(o.currentSlide||{},{direction:g,active:!1}),e.enabled(b)&&!a.$currentTransition&&c.$element&&o.slides.length>1&&(c.$element.data(q,c.direction),o.currentSlide&&o.currentSlide.$element&&o.currentSlide.$element.data(q,c.direction),a.$currentTransition=!0,e.on("addClass",c.$element,function(b,c){if("close"===c&&(a.$currentTransition=null,e.off("addClass",b),s.length)){var d=s.pop(),g=a.indexOfSlide(d),i=g>o.getCurrentIndex()?"next":"prev";f(),h(d,g,i)}})),o.currentSlide=c,r=d,k())}function i(){m&&(c.cancel(m),m=null)}function j(b){b.length||(a.$currentTransition=null,f())}function k(){i();var b=+a.interval;!isNaN(b)&&b>0&&(m=c(l,b))}function l(){var b=+a.interval;n&&!isNaN(b)&&b>0&&p.length?a.next():a.pause()}var m,n,o=this,p=o.slides=a.slides=[],q="uib-slideDirection",r=-1,s=[];o.currentSlide=null;var t=!1;o.addSlide=function(b,c){b.$element=c,p.push(b),1===p.length||b.active?(a.$currentTransition&&(a.$currentTransition=null),o.select(p[p.length-1]),1===p.length&&a.play()):b.active=!1},o.getCurrentIndex=function(){return o.currentSlide&&angular.isDefined(o.currentSlide.index)?+o.currentSlide.index:r},o.next=a.next=function(){var b=(o.getCurrentIndex()+1)%p.length;return 0===b&&a.noWrap()?void a.pause():o.select(g(b),"next")},o.prev=a.prev=function(){var b=o.getCurrentIndex()-1<0?p.length-1:o.getCurrentIndex()-1;return a.noWrap()&&b===p.length-1?void a.pause():o.select(g(b),"prev")},o.removeSlide=function(a){angular.isDefined(a.index)&&p.sort(function(a,b){return+a.index>+b.index});var b=s.indexOf(a);-1!==b&&s.splice(b,1);var c=p.indexOf(a);p.splice(c,1),d(function(){p.length>0&&a.active?c>=p.length?o.select(p[c-1]):o.select(p[c]):r>c&&r--}),0===p.length&&(o.currentSlide=null,f())},o.select=a.select=function(b,c){var d=a.indexOfSlide(b);void 0===c&&(c=d>o.getCurrentIndex()?"next":"prev"),b&&b!==o.currentSlide&&!a.$currentTransition?h(b,d,c):b&&b!==o.currentSlide&&a.$currentTransition&&(s.push(b),b.active=!1)},a.indexOfSlide=function(a){return angular.isDefined(a.index)?+a.index:p.indexOf(a)},a.isActive=function(a){return o.currentSlide===a},a.pause=function(){a.noPause||(n=!1,i())},a.play=function(){n||(n=!0,k())},a.$on("$destroy",function(){t=!0,i()}),a.$watch("noTransition",function(a){e.enabled(b,!a)}),a.$watch("interval",k),a.$watchCollection("slides",j)}]).directive("uibCarousel",function(){return{transclude:!0,replace:!0,controller:"UibCarouselController",controllerAs:"carousel",templateUrl:function(a,b){return b.templateUrl||"uib/template/carousel/carousel.html"},scope:{interval:"=",noTransition:"=",noPause:"=",noWrap:"&"}}}).directive("uibSlide",function(){return{require:"^uibCarousel",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/carousel/slide.html"},scope:{active:"=?",actual:"=?",index:"=?"},link:function(a,b,c,d){d.addSlide(a,b),a.$on("$destroy",function(){d.removeSlide(a)}),a.$watch("active",function(b){b&&d.select(a)})}}}).animation(".item",["$animateCss",function(a){function b(a,b,c){a.removeClass(b),c&&c()}var c="uib-slideDirection";return{beforeAddClass:function(d,e,f){if("active"===e){var g=!1,h=d.data(c),i="next"===h?"left":"right",j=b.bind(this,d,i+" "+h,f);return d.addClass(h),a(d,{addClass:i}).start().done(j),function(){g=!0}}f()},beforeRemoveClass:function(d,e,f){if("active"===e){var g=!1,h=d.data(c),i="next"===h?"left":"right",j=b.bind(this,d,i,f);return a(d,{addClass:i}).start().done(j),function(){g=!0}}f()}}}]),angular.module("ui.bootstrap.dateparser",[]).service("uibDateParser",["$log","$locale","orderByFilter",function(a,b,c){function d(a){var b=[],d=a.split(""),e=a.indexOf("'");if(e>-1){var f=!1;a=a.split("");for(var g=e;g-1){a=a.split(""),d[e]="("+c.regex+")",a[e]="$";for(var f=e+1,g=e+c.key.length;g>f;f++)d[f]="",a[f]="$";a=a.join(""),b.push({index:e,apply:c.apply,matcher:c.regex})}}),{regex:new RegExp("^"+d.join("")+"$"),map:c(b,"index")}}function e(a,b,c){return 1>c?!1:1===b&&c>28?29===c&&(a%4===0&&a%100!==0||a%400===0):3===b||5===b||8===b||10===b?31>c:!0}function f(a){return parseInt(a,10)}function g(a,b){return a&&b?k(a,b):a}function h(a,b){return a&&b?k(a,b,!0):a}function i(a,b){var c=Date.parse("Jan 01, 1970 00:00:00 "+a)/6e4;return isNaN(c)?b:c}function j(a,b){return a=new Date(a.getTime()),a.setMinutes(a.getMinutes()+b),a}function k(a,b,c){c=c?-1:1;var d=i(b,a.getTimezoneOffset());return j(a,c*(d-a.getTimezoneOffset()))}var l,m,n=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;this.init=function(){l=b.id,this.parsers={},m=[{key:"yyyy",regex:"\\d{4}",apply:function(a){this.year=+a}},{key:"yy",regex:"\\d{2}",apply:function(a){this.year=+a+2e3}},{key:"y",regex:"\\d{1,4}",apply:function(a){this.year=+a}},{key:"M!",regex:"0?[1-9]|1[0-2]",apply:function(a){this.month=a-1}},{key:"MMMM",regex:b.DATETIME_FORMATS.MONTH.join("|"),apply:function(a){this.month=b.DATETIME_FORMATS.MONTH.indexOf(a)}},{key:"MMM",regex:b.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(a){this.month=b.DATETIME_FORMATS.SHORTMONTH.indexOf(a)}},{key:"MM",regex:"0[1-9]|1[0-2]",apply:function(a){this.month=a-1}},{key:"M",regex:"[1-9]|1[0-2]",apply:function(a){this.month=a-1}},{key:"d!",regex:"[0-2]?[0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},{key:"dd",regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},{key:"d",regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},{key:"EEEE",regex:b.DATETIME_FORMATS.DAY.join("|")},{key:"EEE",regex:b.DATETIME_FORMATS.SHORTDAY.join("|")},{key:"HH",regex:"(?:0|1)[0-9]|2[0-3]",apply:function(a){this.hours=+a}},{key:"hh",regex:"0[0-9]|1[0-2]",apply:function(a){this.hours=+a}},{key:"H",regex:"1?[0-9]|2[0-3]",apply:function(a){this.hours=+a}},{key:"h",regex:"[0-9]|1[0-2]",apply:function(a){this.hours=+a}},{key:"mm",regex:"[0-5][0-9]",apply:function(a){this.minutes=+a}},{key:"m",regex:"[0-9]|[1-5][0-9]",apply:function(a){this.minutes=+a}},{key:"sss",regex:"[0-9][0-9][0-9]",apply:function(a){this.milliseconds=+a}},{key:"ss",regex:"[0-5][0-9]",apply:function(a){this.seconds=+a}},{key:"s",regex:"[0-9]|[1-5][0-9]",apply:function(a){this.seconds=+a}},{key:"a",regex:b.DATETIME_FORMATS.AMPMS.join("|"),apply:function(a){12===this.hours&&(this.hours=0),"PM"===a&&(this.hours+=12)}},{key:"Z",regex:"[+-]\\d{4}",apply:function(a){var b=a.match(/([+-])(\d{2})(\d{2})/),c=b[1],d=b[2],e=b[3];this.hours+=f(c+d),this.minutes+=f(c+e)}},{key:"ww",regex:"[0-4][0-9]|5[0-3]"},{key:"w",regex:"[0-9]|[1-4][0-9]|5[0-3]"},{key:"GGGG",regex:b.DATETIME_FORMATS.ERANAMES.join("|").replace(/\s/g,"\\s")},{key:"GGG",regex:b.DATETIME_FORMATS.ERAS.join("|")},{key:"GG",regex:b.DATETIME_FORMATS.ERAS.join("|")},{key:"G",regex:b.DATETIME_FORMATS.ERAS.join("|")}]},this.init(),this.parse=function(c,f,g){if(!angular.isString(c)||!f)return c;f=b.DATETIME_FORMATS[f]||f,f=f.replace(n,"\\$&"),b.id!==l&&this.init(),this.parsers[f]||(this.parsers[f]=d(f));var h=this.parsers[f],i=h.regex,j=h.map,k=c.match(i),m=!1;if(k&&k.length){var o,p;angular.isDate(g)&&!isNaN(g.getTime())?o={year:g.getFullYear(),month:g.getMonth(),date:g.getDate(),hours:g.getHours(),minutes:g.getMinutes(),seconds:g.getSeconds(),milliseconds:g.getMilliseconds()}:(g&&a.warn("dateparser:","baseDate is not a valid date"),o={year:1900,month:0,date:1,hours:0,minutes:0,seconds:0,milliseconds:0});for(var q=1,r=k.length;r>q;q++){var s=j[q-1];"Z"===s.matcher&&(m=!0),s.apply&&s.apply.call(o,k[q])}var t=m?Date.prototype.setUTCFullYear:Date.prototype.setFullYear,u=m?Date.prototype.setUTCHours:Date.prototype.setHours;return e(o.year,o.month,o.date)&&(!angular.isDate(g)||isNaN(g.getTime())||m?(p=new Date(0),t.call(p,o.year,o.month,o.date),u.call(p,o.hours||0,o.minutes||0,o.seconds||0,o.milliseconds||0)):(p=new Date(g),t.call(p,o.year,o.month,o.date),u.call(p,o.hours,o.minutes,o.seconds,o.milliseconds))),p}},this.toTimezone=g,this.fromTimezone=h,this.timezoneToOffset=i,this.addDateMinutes=j,this.convertTimezoneToLocal=k}]),angular.module("ui.bootstrap.isClass",[]).directive("uibIsClass",["$animate",function(a){var b=/^\s*([\s\S]+?)\s+on\s+([\s\S]+?)\s*$/,c=/^\s*([\s\S]+?)\s+for\s+([\s\S]+?)\s*$/;return{restrict:"A",compile:function(d,e){function f(a,b,c){i.push(a),j.push({scope:a,element:b}),o.forEach(function(b,c){g(b,a)}),a.$on("$destroy",h)}function g(b,d){var e=b.match(c),f=d.$eval(e[1]),g=e[2],h=k[b];if(!h){var i=function(b){var c=null;j.some(function(a){var d=a.scope.$eval(m);return d===b?(c=a,!0):void 0}),h.lastActivated!==c&&(h.lastActivated&&a.removeClass(h.lastActivated.element,f),c&&a.addClass(c.element,f),h.lastActivated=c)};k[b]=h={lastActivated:null,scope:d,watchFn:i,compareWithExp:g,watcher:d.$watch(g,i)}}h.watchFn(d.$eval(g))}function h(a){var b=a.targetScope,c=i.indexOf(b);if(i.splice(c,1),j.splice(c,1),i.length){var d=i[0];angular.forEach(k,function(a){a.scope===b&&(a.watcher=d.$watch(a.compareWithExp,a.watchFn),a.scope=d)})}else k={}}var i=[],j=[],k={},l=e.uibIsClass.match(b),m=l[2],n=l[1],o=n.split(",");return f}}}]),angular.module("ui.bootstrap.position",[]).factory("$uibPosition",["$document","$window",function(a,b){var c,d={normal:/(auto|scroll)/,hidden:/(auto|scroll|hidden)/},e={auto:/\s?auto?\s?/i,primary:/^(top|bottom|left|right)$/,secondary:/^(top|bottom|left|right|center)$/,vertical:/^(top|bottom)$/};return{getRawNode:function(a){return a[0]||a},parseStyle:function(a){return a=parseFloat(a),isFinite(a)?a:0},offsetParent:function(c){function d(a){return"static"===(b.getComputedStyle(a).position||"static")}c=this.getRawNode(c);for(var e=c.offsetParent||a[0].documentElement;e&&e!==a[0].documentElement&&d(e);)e=e.offsetParent;return e||a[0].documentElement},scrollbarWidth:function(){if(angular.isUndefined(c)){var b=angular.element('
          ');a.find("body").append(b),c=b[0].offsetWidth-b[0].clientWidth,c=isFinite(c)?c:0,b.remove()}return c},scrollParent:function(c,e){c=this.getRawNode(c);var f=e?d.hidden:d.normal,g=a[0].documentElement,h=b.getComputedStyle(c),i="absolute"===h.position,j=c.parentElement||g;if(j===g||"fixed"===h.position)return g;for(;j.parentElement&&j!==g;){var k=b.getComputedStyle(j);if(i&&"static"!==k.position&&(i=!1),!i&&f.test(k.overflow+k.overflowY+k.overflowX))break;j=j.parentElement}return j},position:function(c,d){c=this.getRawNode(c);var e=this.offset(c);if(d){var f=b.getComputedStyle(c);e.top-=this.parseStyle(f.marginTop),e.left-=this.parseStyle(f.marginLeft)}var g=this.offsetParent(c),h={top:0,left:0};return g!==a[0].documentElement&&(h=this.offset(g),h.top+=g.clientTop-g.scrollTop,h.left+=g.clientLeft-g.scrollLeft),{width:Math.round(angular.isNumber(e.width)?e.width:c.offsetWidth),height:Math.round(angular.isNumber(e.height)?e.height:c.offsetHeight),top:Math.round(e.top-h.top),left:Math.round(e.left-h.left)}},offset:function(c){c=this.getRawNode(c);var d=c.getBoundingClientRect();return{width:Math.round(angular.isNumber(d.width)?d.width:c.offsetWidth),height:Math.round(angular.isNumber(d.height)?d.height:c.offsetHeight),top:Math.round(d.top+(b.pageYOffset||a[0].documentElement.scrollTop)),left:Math.round(d.left+(b.pageXOffset||a[0].documentElement.scrollLeft))}},viewportOffset:function(c,d,e){c=this.getRawNode(c),e=e!==!1;var f=c.getBoundingClientRect(),g={top:0,left:0,bottom:0,right:0},h=d?a[0].documentElement:this.scrollParent(c),i=h.getBoundingClientRect();if(g.top=i.top+h.clientTop,g.left=i.left+h.clientLeft,h===a[0].documentElement&&(g.top+=b.pageYOffset,g.left+=b.pageXOffset),g.bottom=g.top+h.clientHeight,g.right=g.left+h.clientWidth,e){var j=b.getComputedStyle(h);g.top+=this.parseStyle(j.paddingTop),g.bottom-=this.parseStyle(j.paddingBottom),g.left+=this.parseStyle(j.paddingLeft),g.right-=this.parseStyle(j.paddingRight)}return{top:Math.round(f.top-g.top),bottom:Math.round(g.bottom-f.bottom),left:Math.round(f.left-g.left),right:Math.round(g.right-f.right)}},parsePlacement:function(a){var b=e.auto.test(a);return b&&(a=a.replace(e.auto,"")),a=a.split("-"),a[0]=a[0]||"top",e.primary.test(a[0])||(a[0]="top"),a[1]=a[1]||"center",e.secondary.test(a[1])||(a[1]="center"),b?a[2]=!0:a[2]=!1,a},positionElements:function(a,c,d,f){a=this.getRawNode(a),c=this.getRawNode(c);var g=angular.isDefined(c.offsetWidth)?c.offsetWidth:c.prop("offsetWidth"),h=angular.isDefined(c.offsetHeight)?c.offsetHeight:c.prop("offsetHeight");d=this.parsePlacement(d);var i=f?this.offset(a):this.position(a),j={top:0,left:0,placement:""};if(d[2]){var k=this.viewportOffset(a),l=b.getComputedStyle(c),m={width:g+Math.round(Math.abs(this.parseStyle(l.marginLeft)+this.parseStyle(l.marginRight))),height:h+Math.round(Math.abs(this.parseStyle(l.marginTop)+this.parseStyle(l.marginBottom)))};if(d[0]="top"===d[0]&&m.height>k.top&&m.height<=k.bottom?"bottom":"bottom"===d[0]&&m.height>k.bottom&&m.height<=k.top?"top":"left"===d[0]&&m.width>k.left&&m.width<=k.right?"right":"right"===d[0]&&m.width>k.right&&m.width<=k.left?"left":d[0],d[1]="top"===d[1]&&m.height-i.height>k.bottom&&m.height-i.height<=k.top?"bottom":"bottom"===d[1]&&m.height-i.height>k.top&&m.height-i.height<=k.bottom?"top":"left"===d[1]&&m.width-i.width>k.right&&m.width-i.width<=k.left?"right":"right"===d[1]&&m.width-i.width>k.left&&m.width-i.width<=k.right?"left":d[1],"center"===d[1])if(e.vertical.test(d[0])){var n=i.width/2-g/2;k.left+n<0&&m.width-i.width<=k.right?d[1]="left":k.right+n<0&&m.width-i.width<=k.left&&(d[1]="right")}else{var o=i.height/2-m.height/2;k.top+o<0&&m.height-i.height<=k.bottom?d[1]="top":k.bottom+o<0&&m.height-i.height<=k.top&&(d[1]="bottom")}}switch(d[0]){case"top":j.top=i.top-h;break;case"bottom":j.top=i.top+i.height;break;case"left":j.left=i.left-g;break;case"right":j.left=i.left+i.width}switch(d[1]){case"top":j.top=i.top;break;case"bottom":j.top=i.top+i.height-h;break;case"left":j.left=i.left;break;case"right":j.left=i.left+i.width-g;break;case"center":e.vertical.test(d[0])?j.left=i.left+i.width/2-g/2:j.top=i.top+i.height/2-h/2}return j.top=Math.round(j.top),j.left=Math.round(j.left),j.placement="center"===d[1]?d[0]:d[0]+"-"+d[1],j},positionArrow:function(a,c){a=this.getRawNode(a);var d=!0,f=a.querySelector(".tooltip-inner");if(f||(d=!1,f=a.querySelector(".popover-inner")),f){var g=d?a.querySelector(".tooltip-arrow"):a.querySelector(".arrow");if(g){if(c=this.parsePlacement(c),"center"===c[1])return void angular.element(g).css({top:"",bottom:"",right:"",left:"",margin:""});var h="border-"+c[0]+"-width",i=b.getComputedStyle(g)[h],j="border-";j+=e.vertical.test(c[0])?c[0]+"-"+c[1]:c[1]+"-"+c[0],j+="-radius";var k=b.getComputedStyle(d?f:a)[j],l={top:"auto",bottom:"auto",left:"auto",right:"auto",margin:0};switch(c[0]){case"top":l.bottom=d?"0":"-"+i;break;case"bottom":l.top=d?"0":"-"+i;break;case"left":l.right=d?"0":"-"+i;break;case"right":l.left=d?"0":"-"+i}l[c[1]]=k,angular.element(g).css(l)}}}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.position"]).value("$datepickerSuppressError",!1).constant("uibDatepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRows:4,yearColumns:5,minDate:null,maxDate:null,shortcutPropagation:!1,ngModelOptions:{}}).controller("UibDatepickerController",["$scope","$attrs","$parse","$interpolate","$log","dateFilter","uibDatepickerConfig","$datepickerSuppressError","uibDateParser",function(a,b,c,d,e,f,g,h,i){var j=this,k={$setViewValue:angular.noop},l={};this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle"],function(c){j[c]=angular.isDefined(b[c])?d(b[c])(a.$parent):g[c]}),angular.forEach(["showWeeks","startingDay","yearRows","yearColumns","shortcutPropagation"],function(c){j[c]=angular.isDefined(b[c])?a.$parent.$eval(b[c]):g[c]}),angular.forEach(["minDate","maxDate"],function(c){b[c]?a.$parent.$watch(b[c],function(a){j[c]=a?angular.isDate(a)?i.fromTimezone(new Date(a),l.timezone):new Date(f(a,"medium")):null,j.refreshView()}):j[c]=g[c]?i.fromTimezone(new Date(g[c]),l.timezone):null}),angular.forEach(["minMode","maxMode"],function(c){b[c]?a.$parent.$watch(b[c],function(d){j[c]=a[c]=angular.isDefined(d)?d:b[c],("minMode"===c&&j.modes.indexOf(a.datepickerMode)j.modes.indexOf(j[c]))&&(a.datepickerMode=j[c])}):j[c]=a[c]=g[c]||null}),a.datepickerMode=a.datepickerMode||g.datepickerMode,a.uniqueId="datepicker-"+a.$id+"-"+Math.floor(1e4*Math.random()),angular.isDefined(b.initDate)?(this.activeDate=i.fromTimezone(a.$parent.$eval(b.initDate),l.timezone)||new Date,a.$parent.$watch(b.initDate,function(a){a&&(k.$isEmpty(k.$modelValue)||k.$invalid)&&(j.activeDate=i.fromTimezone(a,l.timezone),j.refreshView())})):this.activeDate=new Date,a.disabled=angular.isDefined(b.disabled)||!1,angular.isDefined(b.ngDisabled)&&a.$parent.$watch(b.ngDisabled,function(b){a.disabled=b,j.refreshView()}),a.isActive=function(b){return 0===j.compare(b.date,j.activeDate)?(a.activeDateId=b.uid,!0):!1},this.init=function(a){k=a,l=a.$options||g.ngModelOptions,k.$modelValue&&(this.activeDate=k.$modelValue),k.$render=function(){j.render()}},this.render=function(){if(k.$viewValue){var a=new Date(k.$viewValue),b=!isNaN(a);b?this.activeDate=i.fromTimezone(a,l.timezone):h||e.error('Datepicker directive: "ng-model" value must be a Date object')}this.refreshView()},this.refreshView=function(){if(this.element){a.selectedDt=null,this._refreshView(),a.activeDt&&(a.activeDateId=a.activeDt.uid);var b=k.$viewValue?new Date(k.$viewValue):null;b=i.fromTimezone(b,l.timezone),k.$setValidity("dateDisabled",!b||this.element&&!this.isDisabled(b))}},this.createDateObject=function(b,c){var d=k.$viewValue?new Date(k.$viewValue):null;d=i.fromTimezone(d,l.timezone);var e={date:b,label:f(b,c.replace(/d!/,"dd")).replace(/M!/,"MM"),selected:d&&0===this.compare(b,d),disabled:this.isDisabled(b),current:0===this.compare(b,new Date),customClass:this.customClass(b)||null};return d&&0===this.compare(b,d)&&(a.selectedDt=e),j.activeDate&&0===this.compare(e.date,j.activeDate)&&(a.activeDt=e),e},this.isDisabled=function(c){return a.disabled||this.minDate&&this.compare(c,this.minDate)<0||this.maxDate&&this.compare(c,this.maxDate)>0||b.dateDisabled&&a.dateDisabled({date:c,mode:a.datepickerMode})},this.customClass=function(b){return a.customClass({date:b,mode:a.datepickerMode})},this.split=function(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c},a.select=function(b){if(a.datepickerMode===j.minMode){var c=k.$viewValue?i.fromTimezone(new Date(k.$viewValue),l.timezone):new Date(0,0,0,0,0,0,0);c.setFullYear(b.getFullYear(),b.getMonth(),b.getDate()),c=i.toTimezone(c,l.timezone),k.$setViewValue(c),k.$render()}else j.activeDate=b,a.datepickerMode=j.modes[j.modes.indexOf(a.datepickerMode)-1]},a.move=function(a){var b=j.activeDate.getFullYear()+a*(j.step.years||0),c=j.activeDate.getMonth()+a*(j.step.months||0);j.activeDate.setFullYear(b,c,1),j.refreshView()},a.toggleMode=function(b){b=b||1,a.datepickerMode===j.maxMode&&1===b||a.datepickerMode===j.minMode&&-1===b||(a.datepickerMode=j.modes[j.modes.indexOf(a.datepickerMode)+b])},a.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};var m=function(){j.element[0].focus()};a.$on("uib:datepicker.focus",m),a.keydown=function(b){var c=a.keys[b.which];if(c&&!b.shiftKey&&!b.altKey&&!a.disabled)if(b.preventDefault(),j.shortcutPropagation||b.stopPropagation(),"enter"===c||"space"===c){if(j.isDisabled(j.activeDate))return;a.select(j.activeDate)}else!b.ctrlKey||"up"!==c&&"down"!==c?(j.handleKeyDown(c,b),j.refreshView()):a.toggleMode("up"===c?1:-1)}}]).controller("UibDaypickerController",["$scope","$element","dateFilter",function(a,b,c){function d(a,b){return 1!==b||a%4!==0||a%100===0&&a%400!==0?f[b]:29}function e(a){var b=new Date(a);b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1}var f=[31,28,31,30,31,30,31,31,30,31,30,31];this.step={months:1},this.element=b,this.init=function(b){angular.extend(b,this),a.showWeeks=b.showWeeks,b.refreshView()},this.getDates=function(a,b){for(var c,d=new Array(b),e=new Date(a),f=0;b>f;)c=new Date(e),d[f++]=c,e.setDate(e.getDate()+1);return d},this._refreshView=function(){var b=this.activeDate.getFullYear(),d=this.activeDate.getMonth(),f=new Date(this.activeDate);f.setFullYear(b,d,1);var g=this.startingDay-f.getDay(),h=g>0?7-g:-g,i=new Date(f);h>0&&i.setDate(-h+1);for(var j=this.getDates(i,42),k=0;42>k;k++)j[k]=angular.extend(this.createDateObject(j[k],this.formatDay),{secondary:j[k].getMonth()!==d,uid:a.uniqueId+"-"+k});a.labels=new Array(7);for(var l=0;7>l;l++)a.labels[l]={abbr:c(j[l].date,this.formatDayHeader),full:c(j[l].date,"EEEE")};if(a.title=c(this.activeDate,this.formatDayTitle),a.rows=this.split(j,7),a.showWeeks){a.weekNumbers=[];for(var m=(11-this.startingDay)%7,n=a.rows.length,o=0;n>o;o++)a.weekNumbers.push(e(a.rows[o][m].date))}},this.compare=function(a,b){var c=new Date(a.getFullYear(),a.getMonth(),a.getDate()),d=new Date(b.getFullYear(),b.getMonth(),b.getDate());return c.setFullYear(a.getFullYear()),d.setFullYear(b.getFullYear()),c-d},this.handleKeyDown=function(a,b){var c=this.activeDate.getDate();if("left"===a)c-=1;else if("up"===a)c-=7;else if("right"===a)c+=1;else if("down"===a)c+=7;else if("pageup"===a||"pagedown"===a){var e=this.activeDate.getMonth()+("pageup"===a?-1:1);this.activeDate.setMonth(e,1),c=Math.min(d(this.activeDate.getFullYear(),this.activeDate.getMonth()),c)}else"home"===a?c=1:"end"===a&&(c=d(this.activeDate.getFullYear(),this.activeDate.getMonth()));this.activeDate.setDate(c)}}]).controller("UibMonthpickerController",["$scope","$element","dateFilter",function(a,b,c){this.step={years:1},this.element=b,this.init=function(a){angular.extend(a,this),a.refreshView()},this._refreshView=function(){for(var b,d=new Array(12),e=this.activeDate.getFullYear(),f=0;12>f;f++)b=new Date(this.activeDate),b.setFullYear(e,f,1),d[f]=angular.extend(this.createDateObject(b,this.formatMonth),{ +uid:a.uniqueId+"-"+f});a.title=c(this.activeDate,this.formatMonthTitle),a.rows=this.split(d,3)},this.compare=function(a,b){var c=new Date(a.getFullYear(),a.getMonth()),d=new Date(b.getFullYear(),b.getMonth());return c.setFullYear(a.getFullYear()),d.setFullYear(b.getFullYear()),c-d},this.handleKeyDown=function(a,b){var c=this.activeDate.getMonth();if("left"===a)c-=1;else if("up"===a)c-=3;else if("right"===a)c+=1;else if("down"===a)c+=3;else if("pageup"===a||"pagedown"===a){var d=this.activeDate.getFullYear()+("pageup"===a?-1:1);this.activeDate.setFullYear(d)}else"home"===a?c=0:"end"===a&&(c=11);this.activeDate.setMonth(c)}}]).controller("UibYearpickerController",["$scope","$element","dateFilter",function(a,b,c){function d(a){return parseInt((a-1)/f,10)*f+1}var e,f;this.element=b,this.yearpickerInit=function(){e=this.yearColumns,f=this.yearRows*e,this.step={years:f}},this._refreshView=function(){for(var b,c=new Array(f),g=0,h=d(this.activeDate.getFullYear());f>g;g++)b=new Date(this.activeDate),b.setFullYear(h+g,0,1),c[g]=angular.extend(this.createDateObject(b,this.formatYear),{uid:a.uniqueId+"-"+g});a.title=[c[0].label,c[f-1].label].join(" - "),a.rows=this.split(c,e),a.columns=e},this.compare=function(a,b){return a.getFullYear()-b.getFullYear()},this.handleKeyDown=function(a,b){var c=this.activeDate.getFullYear();"left"===a?c-=1:"up"===a?c-=e:"right"===a?c+=1:"down"===a?c+=e:"pageup"===a||"pagedown"===a?c+=("pageup"===a?-1:1)*f:"home"===a?c=d(this.activeDate.getFullYear()):"end"===a&&(c=d(this.activeDate.getFullYear())+f-1),this.activeDate.setFullYear(c)}}]).directive("uibDatepicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/datepicker.html"},scope:{datepickerMode:"=?",dateDisabled:"&",customClass:"&",shortcutPropagation:"&?"},require:["uibDatepicker","^ngModel"],controller:"UibDatepickerController",controllerAs:"datepicker",link:function(a,b,c,d){var e=d[0],f=d[1];e.init(f)}}}).directive("uibDaypicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/day.html"},require:["^uibDatepicker","uibDaypicker"],controller:"UibDaypickerController",link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive("uibMonthpicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/month.html"},require:["^uibDatepicker","uibMonthpicker"],controller:"UibMonthpickerController",link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive("uibYearpicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/year.html"},require:["^uibDatepicker","uibYearpicker"],controller:"UibYearpickerController",link:function(a,b,c,d){var e=d[0];angular.extend(e,d[1]),e.yearpickerInit(),e.refreshView()}}}).constant("uibDatepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",datepickerPopupTemplateUrl:"uib/template/datepicker/popup.html",datepickerTemplateUrl:"uib/template/datepicker/datepicker.html",html5Types:{date:"yyyy-MM-dd","datetime-local":"yyyy-MM-ddTHH:mm:ss.sss",month:"yyyy-MM"},currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0,onOpenFocus:!0,altInputFormats:[]}).controller("UibDatepickerPopupController",["$scope","$element","$attrs","$compile","$parse","$document","$rootScope","$uibPosition","dateFilter","uibDateParser","uibDatepickerPopupConfig","$timeout","uibDatepickerConfig",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function o(b){var c=j.parse(b,t,a.date);if(isNaN(c))for(var d=0;d
        "),a.ngModelOptions=angular.copy(C),a.ngModelOptions.timezone=null,z.attr({"ng-model":"date","ng-model-options":"ngModelOptions","ng-change":"dateSelection(date)","template-url":x}),A=angular.element(z.children()[0]),A.attr("template-url",y),G&&"month"===c.type&&(A.attr("datepicker-mode",'"month"'),A.attr("min-mode","month")),c.datepickerOptions){var l=a.$parent.$eval(c.datepickerOptions);l&&l.initDate&&(a.initDate=j.fromTimezone(l.initDate,C.timezone),A.attr("init-date","initDate"),delete l.initDate),angular.forEach(l,function(a,b){A.attr(n(b),a)})}angular.forEach(["minMode","maxMode"],function(b){c[b]&&(a.$parent.$watch(function(){return c[b]},function(c){a.watchData[b]=c}),A.attr(n(b),"watchData."+b))}),angular.forEach(["datepickerMode","shortcutPropagation"],function(b){if(c[b]){var d=e(c[b]),f={get:function(){return d(a.$parent)}};if(A.attr(n(b),"watchData."+b),"datepickerMode"===b){var g=d.assign;f.set=function(b){g(a.$parent,b)}}Object.defineProperty(a.watchData,b,f)}}),angular.forEach(["minDate","maxDate","initDate"],function(b){if(c[b]){var d=e(c[b]);a.$parent.$watch(d,function(c){"minDate"!==b&&"maxDate"!==b||(F[b]=angular.isDate(c)?j.fromTimezone(new Date(c),C.timezone):new Date(i(c,"medium"))),a.watchData[b]=F[b]||j.fromTimezone(new Date(c),C.timezone)}),A.attr(n(b),"watchData."+b)}}),c.dateDisabled&&A.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","showWeeks","startingDay","yearRows","yearColumns"],function(a){angular.isDefined(c[a])&&A.attr(n(a),c[a])}),c.customClass&&A.attr("custom-class","customClass({ date: date, mode: mode })"),G?B.$formatters.push(function(b){return a.date=j.fromTimezone(b,C.timezone),b}):(B.$$parserName="date",B.$validators.date=q,B.$parsers.unshift(p),B.$formatters.push(function(b){return B.$isEmpty(b)?(a.date=b,b):(a.date=j.fromTimezone(b,C.timezone),t=t.replace(/M!/,"MM").replace(/d!/,"dd"),i(a.date,t))})),B.$viewChangeListeners.push(function(){a.date=o(B.$viewValue)}),b.bind("keydown",s),D=d(z)(a),z.remove(),v?f.find("body").append(D):b.after(D),a.$on("$destroy",function(){a.isOpen===!0&&(g.$$phase||a.$apply(function(){a.isOpen=!1})),D.remove(),b.unbind("keydown",s),f.unbind("click",r)})},a.getText=function(b){return a[b+"Text"]||k[b+"Text"]},a.isDisabled=function(b){return"today"===b&&(b=new Date),a.watchData.minDate&&a.compare(b,F.minDate)<0||a.watchData.maxDate&&a.compare(b,F.maxDate)>0},a.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate())-new Date(b.getFullYear(),b.getMonth(),b.getDate())},a.dateSelection=function(c){angular.isDefined(c)&&(a.date=c);var d=a.date?i(a.date,t):null;b.val(d),B.$setViewValue(d),u&&(a.isOpen=!1,b[0].focus())},a.keydown=function(c){27===c.which&&(c.stopPropagation(),a.isOpen=!1,b[0].focus())},a.select=function(b){if("today"===b){var c=new Date;angular.isDate(a.date)?(b=new Date(a.date),b.setFullYear(c.getFullYear(),c.getMonth(),c.getDate())):b=new Date(c.setHours(0,0,0,0))}a.dateSelection(b)},a.close=function(){a.isOpen=!1,b[0].focus()},a.disabled=angular.isDefined(c.disabled)||!1,c.ngDisabled&&a.$parent.$watch(e(c.ngDisabled),function(b){a.disabled=b}),a.$watch("isOpen",function(c){c?a.disabled?a.isOpen=!1:(a.position=v?h.offset(b):h.position(b),a.position.top=a.position.top+b.prop("offsetHeight"),l(function(){w&&a.$broadcast("uib:datepicker.focus"),f.bind("click",r)},0,!1)):f.unbind("click",r)})}]).directive("uibDatepickerPopup",function(){return{require:["ngModel","uibDatepickerPopup"],controller:"UibDatepickerPopupController",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&",customClass:"&"},link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive("uibDatepickerPopupWrap",function(){return{replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/popup.html"}}}),angular.module("ui.bootstrap.debounce",[]).factory("$$debounce",["$timeout",function(a){return function(b,c){var d;return function(){var e=this,f=Array.prototype.slice.call(arguments);d&&a.cancel(d),d=a(function(){b.apply(e,f)},c)}}}]),angular.module("ui.bootstrap.dropdown",["ui.bootstrap.position"]).constant("uibDropdownConfig",{appendToOpenClass:"uib-dropdown-open",openClass:"open"}).service("uibDropdownService",["$document","$rootScope",function(a,b){var c=null;this.open=function(b){c||(a.on("click",d),a.on("keydown",e)),c&&c!==b&&(c.isOpen=!1),c=b},this.close=function(b){c===b&&(c=null,a.off("click",d),a.off("keydown",e))};var d=function(a){if(c&&!(a&&"disabled"===c.getAutoClose()||a&&3===a.which)){var d=c.getToggleElement();if(!(a&&d&&d[0].contains(a.target))){var e=c.getDropdownElement();a&&"outsideClick"===c.getAutoClose()&&e&&e[0].contains(a.target)||(c.isOpen=!1,b.$$phase||c.$apply())}}},e=function(a){27===a.which?(c.focusToggleElement(),d()):c.isKeynavEnabled()&&-1!==[38,40].indexOf(a.which)&&c.isOpen&&(a.preventDefault(),a.stopPropagation(),c.focusDropdownEntry(a.which))}}]).controller("UibDropdownController",["$scope","$element","$attrs","$parse","uibDropdownConfig","uibDropdownService","$animate","$uibPosition","$document","$compile","$templateRequest",function(a,b,c,d,e,f,g,h,i,j,k){var l,m,n=this,o=a.$new(),p=e.appendToOpenClass,q=e.openClass,r=angular.noop,s=c.onToggle?d(c.onToggle):angular.noop,t=!1,u=null,v=!1,w=i.find("body");b.addClass("dropdown"),this.init=function(){if(c.isOpen&&(m=d(c.isOpen),r=m.assign,a.$watch(m,function(a){o.isOpen=!!a})),angular.isDefined(c.dropdownAppendTo)){var e=d(c.dropdownAppendTo)(o);e&&(u=angular.element(e))}t=angular.isDefined(c.dropdownAppendToBody),v=angular.isDefined(c.keyboardNav),t&&!u&&(u=w),u&&n.dropdownMenu&&(u.append(n.dropdownMenu),b.on("$destroy",function(){n.dropdownMenu.remove()}))},this.toggle=function(a){return o.isOpen=arguments.length?!!a:!o.isOpen},this.isOpen=function(){return o.isOpen},o.getToggleElement=function(){return n.toggleElement},o.getAutoClose=function(){return c.autoClose||"always"},o.getElement=function(){return b},o.isKeynavEnabled=function(){return v},o.focusDropdownEntry=function(a){var c=n.dropdownMenu?angular.element(n.dropdownMenu).find("a"):b.find("ul").eq(0).find("a");switch(a){case 40:angular.isNumber(n.selectedOption)?n.selectedOption=n.selectedOption===c.length-1?n.selectedOption:n.selectedOption+1:n.selectedOption=0;break;case 38:angular.isNumber(n.selectedOption)?n.selectedOption=0===n.selectedOption?0:n.selectedOption-1:n.selectedOption=c.length-1}c[n.selectedOption].focus()},o.getDropdownElement=function(){return n.dropdownMenu},o.focusToggleElement=function(){n.toggleElement&&n.toggleElement[0].focus()},o.$watch("isOpen",function(c,d){if(u&&n.dropdownMenu){var e,i,m=h.positionElements(b,n.dropdownMenu,"bottom-left",!0);if(e={top:m.top+"px",display:c?"block":"none"},i=n.dropdownMenu.hasClass("dropdown-menu-right"),i?(e.left="auto",e.right=window.innerWidth-(m.left+b.prop("offsetWidth"))+"px"):(e.left=m.left+"px",e.right="auto"),!t){var v=h.offset(u);e.top=m.top-v.top+"px",i?e.right=window.innerWidth-(m.left-v.left+b.prop("offsetWidth"))+"px":e.left=m.left-v.left+"px"}n.dropdownMenu.css(e)}var w=u?u:b;if(g[c?"addClass":"removeClass"](w,u?p:q).then(function(){angular.isDefined(c)&&c!==d&&s(a,{open:!!c})}),c)n.dropdownMenuTemplateUrl&&k(n.dropdownMenuTemplateUrl).then(function(a){l=o.$new(),j(a.trim())(l,function(a){var b=a;n.dropdownMenu.replaceWith(b),n.dropdownMenu=b})}),o.focusToggleElement(),f.open(o);else{if(n.dropdownMenuTemplateUrl){l&&l.$destroy();var x=angular.element('');n.dropdownMenu.replaceWith(x),n.dropdownMenu=x}f.close(o),n.selectedOption=null}angular.isFunction(r)&&r(a,c)}),a.$on("$locationChangeSuccess",function(){"disabled"!==o.getAutoClose()&&(o.isOpen=!1)})}]).directive("uibDropdown",function(){return{controller:"UibDropdownController",link:function(a,b,c,d){d.init()}}}).directive("uibDropdownMenu",function(){return{restrict:"A",require:"?^uibDropdown",link:function(a,b,c,d){if(d&&!angular.isDefined(c.dropdownNested)){b.addClass("dropdown-menu");var e=c.templateUrl;e&&(d.dropdownMenuTemplateUrl=e),d.dropdownMenu||(d.dropdownMenu=b)}}}}).directive("uibDropdownToggle",function(){return{require:"?^uibDropdown",link:function(a,b,c,d){if(d){b.addClass("dropdown-toggle"),d.toggleElement=b;var e=function(e){e.preventDefault(),b.hasClass("disabled")||c.disabled||a.$apply(function(){d.toggle()})};b.bind("click",e),b.attr({"aria-haspopup":!0,"aria-expanded":!1}),a.$watch(d.isOpen,function(a){b.attr("aria-expanded",!!a)}),a.$on("$destroy",function(){b.unbind("click",e)})}}}}),angular.module("ui.bootstrap.stackedMap",[]).factory("$$stackedMap",function(){return{createNew:function(){var a=[];return{add:function(b,c){a.push({key:b,value:c})},get:function(b){for(var c=0;c0&&(b=t.top().value,b.modalDomEl.toggleClass(b.windowTopClass||"",a))}function l(){if(p&&-1===i()){var a=q;m(p,q,function(){a=null}),p=void 0,q=void 0}}function m(a,c,d,e){function g(){g.done||(g.done=!0,b(a,{event:"leave"}).start().then(function(){a.remove(),e&&e.resolve()}),c.$destroy(),d&&d())}var h,i=null,j=function(){return h||(h=f.defer(),i=h.promise),function(){h.resolve()}};return c.$broadcast(v.NOW_CLOSING_EVENT,j),f.when(i).then(g)}function n(a){if(a.isDefaultPrevented())return a;var b=t.top();if(b)switch(a.which){case 27:b.value.keyboard&&(a.preventDefault(),e.$apply(function(){v.dismiss(b.key,"escape key press")}));break;case 9:v.loadFocusElementList(b);var c=!1;a.shiftKey?v.isFocusInFirstItem(a)&&(c=v.focusLastFocusableElement()):v.isFocusInLastItem(a)&&(c=v.focusFirstFocusableElement()),c&&(a.preventDefault(),a.stopPropagation())}}function o(a,b,c){return!a.value.modalScope.$broadcast("modal.closing",b,c).defaultPrevented}var p,q,r,s="modal-open",t=h.createNew(),u=g.createNew(),v={NOW_CLOSING_EVENT:"modal.stack.now-closing"},w=0,x="a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]";return e.$watch(i,function(a){q&&(q.index=a)}),c.on("keydown",n),e.$on("$destroy",function(){c.off("keydown",n)}),v.open=function(b,f){var g=c[0].activeElement,h=f.openedClass||s;k(!1),t.add(b,{deferred:f.deferred,renderDeferred:f.renderDeferred,closedDeferred:f.closedDeferred,modalScope:f.scope,backdrop:f.backdrop,keyboard:f.keyboard,openedClass:f.openedClass,windowTopClass:f.windowTopClass,animation:f.animation,appendTo:f.appendTo}),u.put(h,b);var j=f.appendTo,l=i();if(!j.length)throw new Error("appendTo element not found. Make sure that the element passed is in DOM.");l>=0&&!p&&(q=e.$new(!0),q.modalOptions=f,q.index=l,p=angular.element('
        '),p.attr("backdrop-class",f.backdropClass),f.animation&&p.attr("modal-animation","true"),d(p)(q),a.enter(p,j));var m=angular.element('
        ');m.attr({"template-url":f.windowTemplateUrl,"window-class":f.windowClass,"window-top-class":f.windowTopClass,size:f.size,index:t.length()-1,animate:"animate"}).html(f.content),f.animation&&m.attr("modal-animation","true"),a.enter(m,j).then(function(){d(m)(f.scope),a.addClass(j,h)}),t.top().value.modalDomEl=m,t.top().value.modalOpener=g,v.clearFocusListCache()},v.close=function(a,b){var c=t.get(a);return c&&o(c,b,!0)?(c.value.modalScope.$$uibDestructionScheduled=!0,c.value.deferred.resolve(b),j(a,c.value.modalOpener),!0):!c},v.dismiss=function(a,b){var c=t.get(a);return c&&o(c,b,!1)?(c.value.modalScope.$$uibDestructionScheduled=!0,c.value.deferred.reject(b),j(a,c.value.modalOpener),!0):!c},v.dismissAll=function(a){for(var b=this.getTop();b&&this.dismiss(b.key,a);)b=this.getTop()},v.getTop=function(){return t.top()},v.modalRendered=function(a){var b=t.get(a);b&&b.value.renderDeferred.resolve()},v.focusFirstFocusableElement=function(){return r.length>0?(r[0].focus(),!0):!1},v.focusLastFocusableElement=function(){return r.length>0?(r[r.length-1].focus(),!0):!1},v.isFocusInFirstItem=function(a){return r.length>0?(a.target||a.srcElement)===r[0]:!1},v.isFocusInLastItem=function(a){return r.length>0?(a.target||a.srcElement)===r[r.length-1]:!1},v.clearFocusListCache=function(){r=[],w=0},v.loadFocusElementList=function(a){if((void 0===r||!r.length)&&a){var b=a.value.modalDomEl;b&&b.length&&(r=b[0].querySelectorAll(x))}},v}]).provider("$uibModal",function(){var a={options:{animation:!0,backdrop:!0,keyboard:!0},$get:["$rootScope","$q","$document","$templateRequest","$controller","$uibResolve","$uibModalStack",function(b,c,d,e,f,g,h){function i(a){return a.template?c.when(a.template):e(angular.isFunction(a.templateUrl)?a.templateUrl():a.templateUrl)}var j={},k=null;return j.getPromiseChain=function(){return k},j.open=function(e){function j(){return r}var l=c.defer(),m=c.defer(),n=c.defer(),o=c.defer(),p={result:l.promise,opened:m.promise,closed:n.promise,rendered:o.promise,close:function(a){return h.close(p,a)},dismiss:function(a){return h.dismiss(p,a)}};if(e=angular.extend({},a.options,e),e.resolve=e.resolve||{},e.appendTo=e.appendTo||d.find("body").eq(0),!e.template&&!e.templateUrl)throw new Error("One of template or templateUrl options is required.");var q,r=c.all([i(e),g.resolve(e.resolve,{},null,null)]);return q=k=c.all([k]).then(j,j).then(function(a){var c=e.scope||b,d=c.$new();d.$close=p.close,d.$dismiss=p.dismiss,d.$on("$destroy",function(){d.$$uibDestructionScheduled||d.$dismiss("$uibUnscheduledDestruction")});var g,i={};e.controller&&(i.$scope=d,i.$uibModalInstance=p,angular.forEach(a[1],function(a,b){i[b]=a}),g=f(e.controller,i),e.controllerAs&&(e.bindToController&&(g.$close=d.$close,g.$dismiss=d.$dismiss,angular.extend(g,c)),d[e.controllerAs]=g)),h.open(p,{scope:d,deferred:l,renderDeferred:o,closedDeferred:n,content:a[0],animation:e.animation,backdrop:e.backdrop,keyboard:e.keyboard,backdropClass:e.backdropClass,windowTopClass:e.windowTopClass,windowClass:e.windowClass,windowTemplateUrl:e.windowTemplateUrl,size:e.size,openedClass:e.openedClass,appendTo:e.appendTo}),m.resolve(!0)},function(a){m.reject(a),l.reject(a)})["finally"](function(){k===q&&(k=null)}),p},j}]};return a}),angular.module("ui.bootstrap.paging",[]).factory("uibPaging",["$parse",function(a){return{create:function(b,c,d){b.setNumPages=d.numPages?a(d.numPages).assign:angular.noop,b.ngModelCtrl={$setViewValue:angular.noop},b.init=function(e,f){b.ngModelCtrl=e,b.config=f,e.$render=function(){b.render()},d.itemsPerPage?c.$parent.$watch(a(d.itemsPerPage),function(a){b.itemsPerPage=parseInt(a,10),c.totalPages=b.calculateTotalPages(),b.updatePage()}):b.itemsPerPage=f.itemsPerPage,c.$watch("totalItems",function(a,d){(angular.isDefined(a)||a!==d)&&(c.totalPages=b.calculateTotalPages(),b.updatePage())})},b.calculateTotalPages=function(){var a=b.itemsPerPage<1?1:Math.ceil(c.totalItems/b.itemsPerPage);return Math.max(a||0,1)},b.render=function(){c.page=parseInt(b.ngModelCtrl.$viewValue,10)||1},c.selectPage=function(a,d){d&&d.preventDefault();var e=!c.ngDisabled||!d;e&&c.page!==a&&a>0&&a<=c.totalPages&&(d&&d.target&&d.target.blur(),b.ngModelCtrl.$setViewValue(a),b.ngModelCtrl.$render())},c.getText=function(a){return c[a+"Text"]||b.config[a+"Text"]},c.noPrevious=function(){return 1===c.page},c.noNext=function(){return c.page===c.totalPages},b.updatePage=function(){b.setNumPages(c.$parent,c.totalPages),c.page>c.totalPages?c.selectPage(c.totalPages):b.ngModelCtrl.$render()}}}}]),angular.module("ui.bootstrap.pager",["ui.bootstrap.paging"]).controller("UibPagerController",["$scope","$attrs","uibPaging","uibPagerConfig",function(a,b,c,d){a.align=angular.isDefined(b.align)?a.$parent.$eval(b.align):d.align,c.create(this,a,b)}]).constant("uibPagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("uibPager",["uibPagerConfig",function(a){return{scope:{totalItems:"=",previousText:"@",nextText:"@",ngDisabled:"="},require:["uibPager","?ngModel"],controller:"UibPagerController",controllerAs:"pager",templateUrl:function(a,b){return b.templateUrl||"uib/template/pager/pager.html"},replace:!0,link:function(b,c,d,e){var f=e[0],g=e[1];g&&f.init(g,a)}}}]),angular.module("ui.bootstrap.pagination",["ui.bootstrap.paging"]).controller("UibPaginationController",["$scope","$attrs","$parse","uibPaging","uibPaginationConfig",function(a,b,c,d,e){function f(a,b,c){return{number:a,text:b,active:c}}function g(a,b){var c=[],d=1,e=b,g=angular.isDefined(i)&&b>i;g&&(j?(d=Math.max(a-Math.floor(i/2),1),e=d+i-1,e>b&&(e=b,d=e-i+1)):(d=(Math.ceil(a/i)-1)*i+1,e=Math.min(d+i-1,b)));for(var h=d;e>=h;h++){var m=f(h,h,h===a);c.push(m)}if(g&&i>0&&(!j||k||l)){if(d>1){if(!l||d>3){var n=f(d-1,"...",!1);c.unshift(n)}if(l){if(3===d){var o=f(2,"2",!1);c.unshift(o)}var p=f(1,"1",!1);c.unshift(p)}}if(b>e){if(!l||b-2>e){var q=f(e+1,"...",!1);c.push(q)}if(l){if(e===b-2){var r=f(b-1,b-1,!1);c.push(r)}var s=f(b,b,!1);c.push(s)}}}return c}var h=this,i=angular.isDefined(b.maxSize)?a.$parent.$eval(b.maxSize):e.maxSize,j=angular.isDefined(b.rotate)?a.$parent.$eval(b.rotate):e.rotate,k=angular.isDefined(b.forceEllipses)?a.$parent.$eval(b.forceEllipses):e.forceEllipses,l=angular.isDefined(b.boundaryLinkNumbers)?a.$parent.$eval(b.boundaryLinkNumbers):e.boundaryLinkNumbers;a.boundaryLinks=angular.isDefined(b.boundaryLinks)?a.$parent.$eval(b.boundaryLinks):e.boundaryLinks,a.directionLinks=angular.isDefined(b.directionLinks)?a.$parent.$eval(b.directionLinks):e.directionLinks,d.create(this,a,b),b.maxSize&&a.$parent.$watch(c(b.maxSize),function(a){i=parseInt(a,10),h.render()});var m=this.render;this.render=function(){m(),a.page>0&&a.page<=a.totalPages&&(a.pages=g(a.page,a.totalPages))}}]).constant("uibPaginationConfig",{itemsPerPage:10,boundaryLinks:!1,boundaryLinkNumbers:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0,forceEllipses:!1}).directive("uibPagination",["$parse","uibPaginationConfig",function(a,b){return{scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@",ngDisabled:"="},require:["uibPagination","?ngModel"],controller:"UibPaginationController",controllerAs:"pagination",templateUrl:function(a,b){return b.templateUrl||"uib/template/pagination/pagination.html"},replace:!0,link:function(a,c,d,e){var f=e[0],g=e[1];g&&f.init(g,b)}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.stackedMap"]).provider("$uibTooltip",function(){function a(a){var b=/[A-Z]/g,c="-";return a.replace(b,function(a,b){return(b?c:"")+a.toLowerCase()})}var b={placement:"top",placementClassPrefix:"",animation:!0,popupDelay:0,popupCloseDelay:0,useContentExp:!1},c={mouseenter:"mouseleave",click:"click",outsideClick:"outsideClick",focus:"blur",none:""},d={};this.options=function(a){angular.extend(d,a)},this.setTriggers=function(a){angular.extend(c,a)},this.$get=["$window","$compile","$timeout","$document","$uibPosition","$interpolate","$rootScope","$parse","$$stackedMap",function(e,f,g,h,i,j,k,l,m){function n(a){if(27===a.which){var b=o.top();b&&(b.value.close(),o.removeTop(),b=null)}}var o=m.createNew();return h.on("keypress",n),k.$on("$destroy",function(){h.off("keypress",n)}),function(e,k,m,n){function p(a){var b=(a||n.trigger||m).split(" "),d=b.map(function(a){return c[a]||a});return{show:b,hide:d}}n=angular.extend({},b,d,n);var q=a(e),r=j.startSymbol(),s=j.endSymbol(),t="
        ';return{compile:function(a,b){var c=f(t);return function(a,b,d,f){function j(){M.isOpen?q():m()}function m(){L&&!a.$eval(d[k+"Enable"])||(u(),x(),M.popupDelay?G||(G=g(r,M.popupDelay,!1)):r())}function q(){s(),M.popupCloseDelay?H||(H=g(t,M.popupCloseDelay,!1)):t()}function r(){return s(),u(),M.content?(v(),void M.$evalAsync(function(){M.isOpen=!0,y(!0),R()})):angular.noop}function s(){G&&(g.cancel(G),G=null),I&&(g.cancel(I),I=null)}function t(){M&&M.$evalAsync(function(){M.isOpen=!1,y(!1),M.animation?F||(F=g(w,150,!1)):w()})}function u(){H&&(g.cancel(H),H=null),F&&(g.cancel(F),F=null)}function v(){D||(E=M.$new(),D=c(E,function(a){J?h.find("body").append(a):b.after(a)}),z())}function w(){s(),u(),A(),D&&(D.remove(),D=null),E&&(E.$destroy(),E=null)}function x(){M.title=d[k+"Title"],P?M.content=P(a):M.content=d[e],M.popupClass=d[k+"Class"],M.placement=angular.isDefined(d[k+"Placement"])?d[k+"Placement"]:n.placement;var b=parseInt(d[k+"PopupDelay"],10),c=parseInt(d[k+"PopupCloseDelay"],10);M.popupDelay=isNaN(b)?n.popupDelay:b,M.popupCloseDelay=isNaN(c)?n.popupCloseDelay:c}function y(b){O&&angular.isFunction(O.assign)&&O.assign(a,b)}function z(){Q.length=0,P?(Q.push(a.$watch(P,function(a){M.content=a,!a&&M.isOpen&&t()})),Q.push(E.$watch(function(){N||(N=!0,E.$$postDigest(function(){N=!1,M&&M.isOpen&&R()}))}))):Q.push(d.$observe(e,function(a){M.content=a,!a&&M.isOpen?t():R()})),Q.push(d.$observe(k+"Title",function(a){M.title=a,M.isOpen&&R()})),Q.push(d.$observe(k+"Placement",function(a){M.placement=a?a:n.placement,M.isOpen&&R()}))}function A(){Q.length&&(angular.forEach(Q,function(a){a()}),Q.length=0)}function B(a){M&&M.isOpen&&D&&(b[0].contains(a.target)||D[0].contains(a.target)||q())}function C(){var a=d[k+"Trigger"];S(),K=p(a),"none"!==K.show&&K.show.forEach(function(a,c){"outsideClick"===a?(b.on("click",j),h.on("click",B)):a===K.hide[c]?b.on(a,j):a&&(b.on(a,m),b.on(K.hide[c],q)),b.on("keypress",function(a){27===a.which&&q()})})}var D,E,F,G,H,I,J=angular.isDefined(n.appendToBody)?n.appendToBody:!1,K=p(void 0),L=angular.isDefined(d[k+"Enable"]),M=a.$new(!0),N=!1,O=angular.isDefined(d[k+"IsOpen"])?l(d[k+"IsOpen"]):!1,P=n.useContentExp?l(d[e]):!1,Q=[],R=function(){D&&D.html()&&(I||(I=g(function(){D.css({top:0,left:0});var a=i.positionElements(b,D,M.placement,J);D.css({top:a.top+"px",left:a.left+"px",visibility:"visible"}),n.placementClassPrefix&&D.removeClass("top bottom left right"),D.removeClass(n.placementClassPrefix+"top "+n.placementClassPrefix+"top-left "+n.placementClassPrefix+"top-right "+n.placementClassPrefix+"bottom "+n.placementClassPrefix+"bottom-left "+n.placementClassPrefix+"bottom-right "+n.placementClassPrefix+"left "+n.placementClassPrefix+"left-top "+n.placementClassPrefix+"left-bottom "+n.placementClassPrefix+"right "+n.placementClassPrefix+"right-top "+n.placementClassPrefix+"right-bottom"); +var c=a.placement.split("-");D.addClass(c[0],n.placementClassPrefix+a.placement),i.positionArrow(D,a.placement),I=null},0,!1)))};M.origScope=a,M.isOpen=!1,o.add(M,{close:t}),M.contentExp=function(){return M.content},d.$observe("disabled",function(a){a&&s(),a&&M.isOpen&&t()}),O&&a.$watch(O,function(a){M&&!a===M.isOpen&&j()});var S=function(){K.show.forEach(function(a){"outsideClick"===a?b.off("click",j):(b.off(a,m),b.off(a,j))}),K.hide.forEach(function(a){"outsideClick"===a?h.off("click",B):b.off(a,q)})};C();var T=a.$eval(d[k+"Animation"]);M.animation=angular.isDefined(T)?!!T:n.animation;var U,V=k+"AppendToBody";U=V in d&&void 0===d[V]?!0:a.$eval(d[V]),J=angular.isDefined(U)?U:J,J&&a.$on("$locationChangeSuccess",function(){M.isOpen&&t()}),a.$on("$destroy",function(){S(),w(),o.remove(M),M=null})}}}}}]}).directive("uibTooltipTemplateTransclude",["$animate","$sce","$compile","$templateRequest",function(a,b,c,d){return{link:function(e,f,g){var h,i,j,k=e.$eval(g.tooltipTemplateTranscludeScope),l=0,m=function(){i&&(i.remove(),i=null),h&&(h.$destroy(),h=null),j&&(a.leave(j).then(function(){i=null}),i=j,j=null)};e.$watch(b.parseAsResourceUrl(g.uibTooltipTemplateTransclude),function(b){var g=++l;b?(d(b,!0).then(function(d){if(g===l){var e=k.$new(),i=d,n=c(i)(e,function(b){m(),a.enter(b,f)});h=e,j=n,h.$emit("$includeContentLoaded",b)}},function(){g===l&&(m(),e.$emit("$includeContentError",b))}),e.$emit("$includeContentRequested",b)):m()}),e.$on("$destroy",m)}}}]).directive("uibTooltipClasses",["$uibPosition",function(a){return{restrict:"A",link:function(b,c,d){if(b.placement){var e=a.parsePlacement(b.placement);c.addClass(e[0])}else c.addClass("top");b.popupClass&&c.addClass(b.popupClass),b.animation()&&c.addClass(d.tooltipAnimationClass)}}}]).directive("uibTooltipPopup",function(){return{replace:!0,scope:{content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-popup.html"}}).directive("uibTooltip",["$uibTooltip",function(a){return a("uibTooltip","tooltip","mouseenter")}]).directive("uibTooltipTemplatePopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/tooltip/tooltip-template-popup.html"}}).directive("uibTooltipTemplate",["$uibTooltip",function(a){return a("uibTooltipTemplate","tooltip","mouseenter",{useContentExp:!0})}]).directive("uibTooltipHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-html-popup.html"}}).directive("uibTooltipHtml",["$uibTooltip",function(a){return a("uibTooltipHtml","tooltip","mouseenter",{useContentExp:!0})}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("uibPopoverTemplatePopup",function(){return{replace:!0,scope:{title:"@",contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/popover/popover-template.html"}}).directive("uibPopoverTemplate",["$uibTooltip",function(a){return a("uibPopoverTemplate","popover","click",{useContentExp:!0})}]).directive("uibPopoverHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",title:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover-html.html"}}).directive("uibPopoverHtml",["$uibTooltip",function(a){return a("uibPopoverHtml","popover","click",{useContentExp:!0})}]).directive("uibPopoverPopup",function(){return{replace:!0,scope:{title:"@",content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover.html"}}).directive("uibPopover",["$uibTooltip",function(a){return a("uibPopover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("uibProgressConfig",{animate:!0,max:100}).controller("UibProgressController",["$scope","$attrs","uibProgressConfig",function(a,b,c){var d=this,e=angular.isDefined(b.animate)?a.$parent.$eval(b.animate):c.animate;this.bars=[],a.max=angular.isDefined(a.max)?a.max:c.max,this.addBar=function(b,c,f){e||c.css({transition:"none"}),this.bars.push(b),b.max=a.max,b.title=f&&angular.isDefined(f.title)?f.title:"progressbar",b.$watch("value",function(a){b.recalculatePercentage()}),b.recalculatePercentage=function(){var a=d.bars.reduce(function(a,b){return b.percent=+(100*b.value/b.max).toFixed(2),a+b.percent},0);a>100&&(b.percent-=a-100)},b.$on("$destroy",function(){c=null,d.removeBar(b)})},this.removeBar=function(a){this.bars.splice(this.bars.indexOf(a),1),this.bars.forEach(function(a){a.recalculatePercentage()})},a.$watch("max",function(b){d.bars.forEach(function(b){b.max=a.max,b.recalculatePercentage()})})}]).directive("uibProgress",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",require:"uibProgress",scope:{max:"=?"},templateUrl:"uib/template/progressbar/progress.html"}}).directive("uibBar",function(){return{replace:!0,transclude:!0,require:"^uibProgress",scope:{value:"=",type:"@"},templateUrl:"uib/template/progressbar/bar.html",link:function(a,b,c,d){d.addBar(a,b,c)}}}).directive("uibProgressbar",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",scope:{value:"=",max:"=?",type:"@"},templateUrl:"uib/template/progressbar/progressbar.html",link:function(a,b,c,d){d.addBar(a,angular.element(b.children()[0]),{title:c.title})}}}),angular.module("ui.bootstrap.rating",[]).constant("uibRatingConfig",{max:5,stateOn:null,stateOff:null,titles:["one","two","three","four","five"]}).controller("UibRatingController",["$scope","$attrs","uibRatingConfig",function(a,b,c){var d={$setViewValue:angular.noop};this.init=function(e){d=e,d.$render=this.render,d.$formatters.push(function(a){return angular.isNumber(a)&&a<<0!==a&&(a=Math.round(a)),a}),this.stateOn=angular.isDefined(b.stateOn)?a.$parent.$eval(b.stateOn):c.stateOn,this.stateOff=angular.isDefined(b.stateOff)?a.$parent.$eval(b.stateOff):c.stateOff;var f=angular.isDefined(b.titles)?a.$parent.$eval(b.titles):c.titles;this.titles=angular.isArray(f)&&f.length>0?f:c.titles;var g=angular.isDefined(b.ratingStates)?a.$parent.$eval(b.ratingStates):new Array(angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max);a.range=this.buildTemplateObjects(g)},this.buildTemplateObjects=function(a){for(var b=0,c=a.length;c>b;b++)a[b]=angular.extend({index:b},{stateOn:this.stateOn,stateOff:this.stateOff,title:this.getTitle(b)},a[b]);return a},this.getTitle=function(a){return a>=this.titles.length?a+1:this.titles[a]},a.rate=function(b){!a.readonly&&b>=0&&b<=a.range.length&&(d.$setViewValue(d.$viewValue===b?0:b),d.$render())},a.enter=function(b){a.readonly||(a.value=b),a.onHover({value:b})},a.reset=function(){a.value=d.$viewValue,a.onLeave()},a.onKeydown=function(b){/(37|38|39|40)/.test(b.which)&&(b.preventDefault(),b.stopPropagation(),a.rate(a.value+(38===b.which||39===b.which?1:-1)))},this.render=function(){a.value=d.$viewValue}}]).directive("uibRating",function(){return{require:["uibRating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"UibRatingController",templateUrl:"uib/template/rating/rating.html",replace:!0,link:function(a,b,c,d){var e=d[0],f=d[1];e.init(f)}}}),angular.module("ui.bootstrap.tabs",[]).controller("UibTabsetController",["$scope",function(a){var b=this,c=b.tabs=a.tabs=[];b.select=function(a){angular.forEach(c,function(b){b.active&&b!==a&&(b.active=!1,b.onDeselect(),a.selectCalled=!1)}),a.active=!0,a.selectCalled||(a.onSelect(),a.selectCalled=!0)},b.addTab=function(a){c.push(a),1===c.length&&a.active!==!1?a.active=!0:a.active?b.select(a):a.active=!1},b.removeTab=function(a){var e=c.indexOf(a);if(a.active&&c.length>1&&!d){var f=e===c.length-1?e-1:e+1;b.select(c[f])}c.splice(e,1)};var d;a.$on("$destroy",function(){d=!0})}]).directive("uibTabset",function(){return{transclude:!0,replace:!0,scope:{type:"@"},controller:"UibTabsetController",templateUrl:"uib/template/tabs/tabset.html",link:function(a,b,c){a.vertical=angular.isDefined(c.vertical)?a.$parent.$eval(c.vertical):!1,a.justified=angular.isDefined(c.justified)?a.$parent.$eval(c.justified):!1}}}).directive("uibTab",["$parse",function(a){return{require:"^uibTabset",replace:!0,templateUrl:"uib/template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},controllerAs:"tab",link:function(b,c,d,e,f){b.$watch("active",function(a){a&&e.select(b)}),b.disabled=!1,d.disable&&b.$parent.$watch(a(d.disable),function(a){b.disabled=!!a}),b.select=function(){b.disabled||(b.active=!0)},e.addTab(b),b.$on("$destroy",function(){e.removeTab(b)}),b.$transcludeFn=f}}}]).directive("uibTabHeadingTransclude",function(){return{restrict:"A",require:"^uibTab",link:function(a,b){a.$watch("headingElement",function(a){a&&(b.html(""),b.append(a))})}}}).directive("uibTabContentTransclude",function(){function a(a){return a.tagName&&(a.hasAttribute("uib-tab-heading")||a.hasAttribute("data-uib-tab-heading")||a.hasAttribute("x-uib-tab-heading")||"uib-tab-heading"===a.tagName.toLowerCase()||"data-uib-tab-heading"===a.tagName.toLowerCase()||"x-uib-tab-heading"===a.tagName.toLowerCase())}return{restrict:"A",require:"^uibTabset",link:function(b,c,d){var e=b.$eval(d.uibTabContentTransclude);e.$transcludeFn(e.$parent,function(b){angular.forEach(b,function(b){a(b)?e.headingElement=b:c.append(b)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("uibTimepickerConfig",{hourStep:1,minuteStep:1,secondStep:1,showMeridian:!0,showSeconds:!1,meridians:null,readonlyInput:!1,mousewheel:!0,arrowkeys:!0,showSpinners:!0,templateUrl:"uib/template/timepicker/timepicker.html"}).controller("UibTimepickerController",["$scope","$element","$attrs","$parse","$log","$locale","uibTimepickerConfig",function(a,b,c,d,e,f,g){function h(){var b=+a.hours,c=a.showMeridian?b>0&&13>b:b>=0&&24>b;return c?(a.showMeridian&&(12===b&&(b=0),a.meridian===t[1]&&(b+=12)),b):void 0}function i(){var b=+a.minutes;return b>=0&&60>b?b:void 0}function j(){var b=+a.seconds;return b>=0&&60>b?b:void 0}function k(a){return null===a?"":angular.isDefined(a)&&a.toString().length<2?"0"+a:a.toString()}function l(a){m(),s.$setViewValue(new Date(r)),n(a)}function m(){s.$setValidity("time",!0),a.invalidHours=!1,a.invalidMinutes=!1,a.invalidSeconds=!1}function n(b){if(s.$modelValue){var c=r.getHours(),d=r.getMinutes(),e=r.getSeconds();a.showMeridian&&(c=0===c||12===c?12:c%12),a.hours="h"===b?c:k(c),"m"!==b&&(a.minutes=k(d)),a.meridian=r.getHours()<12?t[0]:t[1],"s"!==b&&(a.seconds=k(e)),a.meridian=r.getHours()<12?t[0]:t[1]}else a.hours=null,a.minutes=null,a.seconds=null,a.meridian=t[0]}function o(a){r=q(r,a),l()}function p(a,b){return q(a,60*b)}function q(a,b){var c=new Date(a.getTime()+1e3*b),d=new Date(a);return d.setHours(c.getHours(),c.getMinutes(),c.getSeconds()),d}var r=new Date,s={$setViewValue:angular.noop},t=angular.isDefined(c.meridians)?a.$parent.$eval(c.meridians):g.meridians||f.DATETIME_FORMATS.AMPMS;a.tabindex=angular.isDefined(c.tabindex)?c.tabindex:0,b.removeAttr("tabindex"),this.init=function(b,d){s=b,s.$render=this.render,s.$formatters.unshift(function(a){return a?new Date(a):null});var e=d.eq(0),f=d.eq(1),h=d.eq(2),i=angular.isDefined(c.mousewheel)?a.$parent.$eval(c.mousewheel):g.mousewheel;i&&this.setupMousewheelEvents(e,f,h);var j=angular.isDefined(c.arrowkeys)?a.$parent.$eval(c.arrowkeys):g.arrowkeys;j&&this.setupArrowkeyEvents(e,f,h),a.readonlyInput=angular.isDefined(c.readonlyInput)?a.$parent.$eval(c.readonlyInput):g.readonlyInput,this.setupInputEvents(e,f,h)};var u=g.hourStep;c.hourStep&&a.$parent.$watch(d(c.hourStep),function(a){u=+a});var v=g.minuteStep;c.minuteStep&&a.$parent.$watch(d(c.minuteStep),function(a){v=+a});var w;a.$parent.$watch(d(c.min),function(a){var b=new Date(a);w=isNaN(b)?void 0:b});var x;a.$parent.$watch(d(c.max),function(a){var b=new Date(a);x=isNaN(b)?void 0:b});var y=!1;c.ngDisabled&&a.$parent.$watch(d(c.ngDisabled),function(a){y=a}),a.noIncrementHours=function(){var a=p(r,60*u);return y||a>x||r>a&&w>a},a.noDecrementHours=function(){var a=p(r,60*-u);return y||w>a||a>r&&a>x},a.noIncrementMinutes=function(){var a=p(r,v);return y||a>x||r>a&&w>a},a.noDecrementMinutes=function(){var a=p(r,-v);return y||w>a||a>r&&a>x},a.noIncrementSeconds=function(){var a=q(r,z);return y||a>x||r>a&&w>a},a.noDecrementSeconds=function(){var a=q(r,-z);return y||w>a||a>r&&a>x},a.noToggleMeridian=function(){return r.getHours()<12?y||p(r,720)>x:y||p(r,-720)0};b.bind("mousewheel wheel",function(b){y||a.$apply(e(b)?a.incrementHours():a.decrementHours()),b.preventDefault()}),c.bind("mousewheel wheel",function(b){y||a.$apply(e(b)?a.incrementMinutes():a.decrementMinutes()),b.preventDefault()}),d.bind("mousewheel wheel",function(b){y||a.$apply(e(b)?a.incrementSeconds():a.decrementSeconds()),b.preventDefault()})},this.setupArrowkeyEvents=function(b,c,d){b.bind("keydown",function(b){y||(38===b.which?(b.preventDefault(),a.incrementHours(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementHours(),a.$apply()))}),c.bind("keydown",function(b){y||(38===b.which?(b.preventDefault(),a.incrementMinutes(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementMinutes(),a.$apply()))}),d.bind("keydown",function(b){y||(38===b.which?(b.preventDefault(),a.incrementSeconds(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementSeconds(),a.$apply()))})},this.setupInputEvents=function(b,c,d){if(a.readonlyInput)return a.updateHours=angular.noop,a.updateMinutes=angular.noop,void(a.updateSeconds=angular.noop);var e=function(b,c,d){s.$setViewValue(null),s.$setValidity("time",!1),angular.isDefined(b)&&(a.invalidHours=b),angular.isDefined(c)&&(a.invalidMinutes=c),angular.isDefined(d)&&(a.invalidSeconds=d)};a.updateHours=function(){var a=h(),b=i();s.$setDirty(),angular.isDefined(a)&&angular.isDefined(b)?(r.setHours(a),r.setMinutes(b),w>r||r>x?e(!0):l("h")):e(!0)},b.bind("blur",function(b){s.$setTouched(),null===a.hours||""===a.hours?e(!0):!a.invalidHours&&a.hours<10&&a.$apply(function(){a.hours=k(a.hours)})}),a.updateMinutes=function(){var a=i(),b=h();s.$setDirty(),angular.isDefined(a)&&angular.isDefined(b)?(r.setHours(b),r.setMinutes(a),w>r||r>x?e(void 0,!0):l("m")):e(void 0,!0)},c.bind("blur",function(b){s.$setTouched(),null===a.minutes?e(void 0,!0):!a.invalidMinutes&&a.minutes<10&&a.$apply(function(){a.minutes=k(a.minutes)})}),a.updateSeconds=function(){var a=j();s.$setDirty(),angular.isDefined(a)?(r.setSeconds(a),l("s")):e(void 0,void 0,!0)},d.bind("blur",function(b){!a.invalidSeconds&&a.seconds<10&&a.$apply(function(){a.seconds=k(a.seconds)})})},this.render=function(){var b=s.$viewValue;isNaN(b)?(s.$setValidity("time",!1),e.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(b&&(r=b),w>r||r>x?(s.$setValidity("time",!1),a.invalidHours=!0,a.invalidMinutes=!0):m(),n())},a.showSpinners=angular.isDefined(c.showSpinners)?a.$parent.$eval(c.showSpinners):g.showSpinners,a.incrementHours=function(){a.noIncrementHours()||o(60*u*60)},a.decrementHours=function(){a.noDecrementHours()||o(60*-u*60)},a.incrementMinutes=function(){a.noIncrementMinutes()||o(60*v)},a.decrementMinutes=function(){a.noDecrementMinutes()||o(60*-v)},a.incrementSeconds=function(){a.noIncrementSeconds()||o(z)},a.decrementSeconds=function(){a.noDecrementSeconds()||o(-z)},a.toggleMeridian=function(){var b=i(),c=h();a.noToggleMeridian()||(angular.isDefined(b)&&angular.isDefined(c)?o(720*(r.getHours()<12?60:-60)):a.meridian=a.meridian===t[0]?t[1]:t[0])},a.blur=function(){s.$setTouched()}}]).directive("uibTimepicker",["uibTimepickerConfig",function(a){return{require:["uibTimepicker","?^ngModel"],controller:"UibTimepickerController",controllerAs:"timepicker",replace:!0,scope:{},templateUrl:function(b,c){return c.templateUrl||a.templateUrl},link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f,b.find("input"))}}}]),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.debounce","ui.bootstrap.position"]).factory("uibTypeaheadParser",["$parse",function(a){var b=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(c){var d=c.match(b);if(!d)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+c+'".');return{itemName:d[3],source:a(d[4]),viewMapper:a(d[2]||d[1]),modelMapper:a(d[1])}}}}]).controller("UibTypeaheadController",["$scope","$element","$attrs","$compile","$parse","$q","$timeout","$document","$window","$rootScope","$$debounce","$uibPosition","uibTypeaheadParser",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){N.moveInProgress||(N.moveInProgress=!0,N.$digest()),Y()}function o(){N.position=D?l.offset(b):l.position(b),N.position.top+=b.prop("offsetHeight")}var p,q,r=[9,13,27,38,40],s=200,t=a.$eval(c.typeaheadMinLength);t||0===t||(t=1);var u=a.$eval(c.typeaheadWaitMs)||0,v=a.$eval(c.typeaheadEditable)!==!1;a.$watch(c.typeaheadEditable,function(a){v=a!==!1});var w,x,y=e(c.typeaheadLoading).assign||angular.noop,z=e(c.typeaheadOnSelect),A=angular.isDefined(c.typeaheadSelectOnBlur)?a.$eval(c.typeaheadSelectOnBlur):!1,B=e(c.typeaheadNoResults).assign||angular.noop,C=c.typeaheadInputFormatter?e(c.typeaheadInputFormatter):void 0,D=c.typeaheadAppendToBody?a.$eval(c.typeaheadAppendToBody):!1,E=c.typeaheadAppendTo?a.$eval(c.typeaheadAppendTo):null,F=a.$eval(c.typeaheadFocusFirst)!==!1,G=c.typeaheadSelectOnExact?a.$eval(c.typeaheadSelectOnExact):!1,H=e(c.typeaheadIsOpen).assign||angular.noop,I=a.$eval(c.typeaheadShowHint)||!1,J=e(c.ngModel),K=e(c.ngModel+"($$$p)"),L=function(b,c){return angular.isFunction(J(a))&&q&&q.$options&&q.$options.getterSetter?K(b,{$$$p:c}):J.assign(b,c)},M=m.parse(c.uibTypeahead),N=a.$new(),O=a.$on("$destroy",function(){N.$destroy()});N.$on("$destroy",O);var P="typeahead-"+N.$id+"-"+Math.floor(1e4*Math.random());b.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":P});var Q,R;I&&(Q=angular.element("
        "),Q.css("position","relative"),b.after(Q),R=b.clone(),R.attr("placeholder",""),R.val(""),R.css({position:"absolute",top:"0px",left:"0px","border-color":"transparent","box-shadow":"none",opacity:1,background:"none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255)",color:"#999"}),b.css({position:"relative","vertical-align":"top","background-color":"transparent"}),Q.append(R),R.after(b));var S=angular.element("
        ");S.attr({id:P,matches:"matches",active:"activeIdx",select:"select(activeIdx, evt)","move-in-progress":"moveInProgress",query:"query",position:"position","assign-is-open":"assignIsOpen(isOpen)",debounce:"debounceUpdate"}),angular.isDefined(c.typeaheadTemplateUrl)&&S.attr("template-url",c.typeaheadTemplateUrl),angular.isDefined(c.typeaheadPopupTemplateUrl)&&S.attr("popup-template-url",c.typeaheadPopupTemplateUrl);var T=function(){I&&R.val("")},U=function(){N.matches=[],N.activeIdx=-1,b.attr("aria-expanded",!1),T()},V=function(a){return P+"-option-"+a};N.$watch("activeIdx",function(a){0>a?b.removeAttr("aria-activedescendant"):b.attr("aria-activedescendant",V(a))});var W=function(a,b){return N.matches.length>b&&a?a.toUpperCase()===N.matches[b].label.toUpperCase():!1},X=function(c,d){var e={$viewValue:c};y(a,!0),B(a,!1),f.when(M.source(a,e)).then(function(f){var g=c===p.$viewValue;if(g&&w)if(f&&f.length>0){N.activeIdx=F?0:-1,B(a,!1),N.matches.length=0;for(var h=0;h0&&i.slice(0,c.length).toUpperCase()===c.toUpperCase()?R.val(c+i.slice(c.length)):R.val("")}}else U(),B(a,!0);g&&y(a,!1)},function(){U(),y(a,!1),B(a,!0)})};D&&(angular.element(i).on("resize",n),h.find("body").on("scroll",n));var Y=k(function(){N.matches.length&&o(),N.moveInProgress=!1},s);N.moveInProgress=!1,N.query=void 0;var Z,$=function(a){Z=g(function(){X(a)},u)},_=function(){Z&&g.cancel(Z)};U(),N.assignIsOpen=function(b){H(a,b)},N.select=function(d,e){var f,h,i={};x=!0,i[M.itemName]=h=N.matches[d].model,f=M.modelMapper(a,i),L(a,f),p.$setValidity("editable",!0),p.$setValidity("parse",!0),z(a,{$item:h,$model:f,$label:M.viewMapper(a,i),$event:e}),U(),N.$eval(c.typeaheadFocusOnSelect)!==!1&&g(function(){b[0].focus()},0,!1)},b.on("keydown",function(a){if(0!==N.matches.length&&-1!==r.indexOf(a.which)){if(-1===N.activeIdx&&(9===a.which||13===a.which))return U(),void N.$digest();a.preventDefault();var b;switch(a.which){case 9:case 13:N.$apply(function(){angular.isNumber(N.debounceUpdate)||angular.isObject(N.debounceUpdate)?k(function(){N.select(N.activeIdx,a)},angular.isNumber(N.debounceUpdate)?N.debounceUpdate:N.debounceUpdate["default"]):N.select(N.activeIdx,a)});break;case 27:a.stopPropagation(),U(),N.$digest();break;case 38:N.activeIdx=(N.activeIdx>0?N.activeIdx:N.matches.length)-1,N.$digest(),b=S.find("li")[N.activeIdx],b.parentNode.scrollTop=b.offsetTop;break;case 40:N.activeIdx=(N.activeIdx+1)%N.matches.length,N.$digest(),b=S.find("li")[N.activeIdx],b.parentNode.scrollTop=b.offsetTop}}}),b.bind("focus",function(a){w=!0,0!==t||p.$viewValue||g(function(){X(p.$viewValue,a)},0)}),b.bind("blur",function(a){A&&N.matches.length&&-1!==N.activeIdx&&!x&&(x=!0,N.$apply(function(){angular.isObject(N.debounceUpdate)&&angular.isNumber(N.debounceUpdate.blur)?k(function(){N.select(N.activeIdx,a)},N.debounceUpdate.blur):N.select(N.activeIdx,a)})),!v&&p.$error.editable&&(p.$viewValue="",b.val("")),w=!1,x=!1});var aa=function(a){b[0]!==a.target&&3!==a.which&&0!==N.matches.length&&(U(),j.$$phase||N.$digest())};h.on("click",aa),a.$on("$destroy",function(){h.off("click",aa),(D||E)&&ba.remove(),D&&(angular.element(i).off("resize",n),h.find("body").off("scroll",n)),S.remove(),I&&Q.remove()});var ba=d(S)(N);D?h.find("body").append(ba):E?angular.element(E).eq(0).append(ba):b.after(ba),this.init=function(b,c){p=b,q=c,N.debounceUpdate=p.$options&&e(p.$options.debounce)(a),p.$parsers.unshift(function(b){return w=!0,0===t||b&&b.length>=t?u>0?(_(),$(b)):X(b):(y(a,!1),_(),U()),v?b:b?void p.$setValidity("editable",!1):(p.$setValidity("editable",!0),null)}),p.$formatters.push(function(b){var c,d,e={};return v||p.$setValidity("editable",!0),C?(e.$model=b,C(a,e)):(e[M.itemName]=b,c=M.viewMapper(a,e),e[M.itemName]=void 0,d=M.viewMapper(a,e),c!==d?c:b)})}}]).directive("uibTypeahead",function(){return{controller:"UibTypeaheadController",require:["ngModel","^?ngModelOptions","uibTypeahead"],link:function(a,b,c,d){d[2].init(d[0],d[1])}}}).directive("uibTypeaheadPopup",["$$debounce",function(a){return{scope:{matches:"=",query:"=",active:"=",position:"&",moveInProgress:"=",select:"&",assignIsOpen:"&",debounce:"&"},replace:!0,templateUrl:function(a,b){return b.popupTemplateUrl||"uib/template/typeahead/typeahead-popup.html"},link:function(b,c,d){b.templateUrl=d.templateUrl,b.isOpen=function(){var a=b.matches.length>0;return b.assignIsOpen({isOpen:a}),a},b.isActive=function(a){return b.active===a},b.selectActive=function(a){b.active=a},b.selectMatch=function(c,d){var e=b.debounce();angular.isNumber(e)||angular.isObject(e)?a(function(){b.select({activeIdx:c,evt:d})},angular.isNumber(e)?e:e["default"]):b.select({activeIdx:c,evt:d})}}}}]).directive("uibTypeaheadMatch",["$templateRequest","$compile","$parse",function(a,b,c){return{scope:{index:"=",match:"=",query:"="},link:function(d,e,f){var g=c(f.templateUrl)(d.$parent)||"uib/template/typeahead/typeahead-match.html";a(g).then(function(a){var c=angular.element(a.trim());e.replaceWith(c),b(c)(d)})}}}]).filter("uibTypeaheadHighlight",["$sce","$injector","$log",function(a,b,c){function d(a){return a.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function e(a){return/<.*>/g.test(a)}var f;return f=b.has("$sanitize"),function(b,g){return!f&&e(b)&&c.warn("Unsafe use of typeahead please use ngSanitize"),b=g?(""+b).replace(new RegExp(d(g),"gi"),"$&"):b,f||(b=a.trustAsHtml(b)),b}}]),angular.module("uib/template/accordion/accordion-group.html",[]).run(["$templateCache",function(a){a.put("uib/template/accordion/accordion-group.html",'
        \n
        \n

        \n
        {{heading}}
        \n

        \n
        \n
        \n
        \n
        \n
        \n')}]),angular.module("uib/template/accordion/accordion.html",[]).run(["$templateCache",function(a){a.put("uib/template/accordion/accordion.html",'
        ')}]),angular.module("uib/template/alert/alert.html",[]).run(["$templateCache",function(a){a.put("uib/template/alert/alert.html",'\n')}]),angular.module("uib/template/carousel/carousel.html",[]).run(["$templateCache",function(a){a.put("uib/template/carousel/carousel.html",'')}]),angular.module("uib/template/carousel/slide.html",[]).run(["$templateCache",function(a){a.put("uib/template/carousel/slide.html",'
        \n')}]),angular.module("uib/template/datepicker/datepicker.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/datepicker.html",'
        \n \n \n \n
        ')}]),angular.module("uib/template/datepicker/day.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/day.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        {{::label.abbr}}
        {{ weekNumbers[$index] }}\n \n
        \n')}]),angular.module("uib/template/datepicker/month.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/month.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n
        \n \n
        \n')}]),angular.module("uib/template/datepicker/popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/popup.html",'\n'); +}]),angular.module("uib/template/datepicker/year.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/year.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n
        \n \n
        \n')}]),angular.module("uib/template/modal/backdrop.html",[]).run(["$templateCache",function(a){a.put("uib/template/modal/backdrop.html",'\n')}]),angular.module("uib/template/modal/window.html",[]).run(["$templateCache",function(a){a.put("uib/template/modal/window.html",'\n')}]),angular.module("uib/template/pager/pager.html",[]).run(["$templateCache",function(a){a.put("uib/template/pager/pager.html",'\n')}]),angular.module("uib/template/pagination/pagination.html",[]).run(["$templateCache",function(a){a.put("uib/template/pagination/pagination.html",'\n')}]),angular.module("uib/template/tooltip/tooltip-html-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/tooltip/tooltip-html-popup.html",'
        \n
        \n
        \n
        \n')}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(a){a.put("template/tooltip/tooltip-html-unsafe-popup.html",'
        \n
        \n
        \n
        \n')}]),angular.module("uib/template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/tooltip/tooltip-popup.html",'
        \n
        \n
        \n
        \n')}]),angular.module("uib/template/tooltip/tooltip-template-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/tooltip/tooltip-template-popup.html",'
        \n
        \n
        \n
        \n')}]),angular.module("uib/template/popover/popover-html.html",[]).run(["$templateCache",function(a){a.put("uib/template/popover/popover-html.html",'
        \n
        \n\n
        \n

        \n
        \n
        \n
        \n')}]),angular.module("uib/template/popover/popover-template.html",[]).run(["$templateCache",function(a){a.put("uib/template/popover/popover-template.html",'
        \n
        \n\n
        \n

        \n
        \n
        \n
        \n')}]),angular.module("uib/template/popover/popover.html",[]).run(["$templateCache",function(a){a.put("uib/template/popover/popover.html",'
        \n
        \n\n
        \n

        \n
        \n
        \n
        \n')}]),angular.module("uib/template/progressbar/bar.html",[]).run(["$templateCache",function(a){a.put("uib/template/progressbar/bar.html",'
        \n')}]),angular.module("uib/template/progressbar/progress.html",[]).run(["$templateCache",function(a){a.put("uib/template/progressbar/progress.html",'
        ')}]),angular.module("uib/template/progressbar/progressbar.html",[]).run(["$templateCache",function(a){a.put("uib/template/progressbar/progressbar.html",'
        \n
        \n
        \n')}]),angular.module("uib/template/rating/rating.html",[]).run(["$templateCache",function(a){a.put("uib/template/rating/rating.html",'\n ({{ $index < value ? \'*\' : \' \' }})\n \n\n')}]),angular.module("uib/template/tabs/tab.html",[]).run(["$templateCache",function(a){a.put("uib/template/tabs/tab.html",'
      • \n
        {{heading}}
        \n
      • \n')}]),angular.module("uib/template/tabs/tabset.html",[]).run(["$templateCache",function(a){a.put("uib/template/tabs/tabset.html",'
        \n \n
        \n
        \n
        \n
        \n
        \n')}]),angular.module("uib/template/timepicker/timepicker.html",[]).run(["$templateCache",function(a){a.put("uib/template/timepicker/timepicker.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
          
        \n \n :\n \n :\n \n
          
        \n')}]),angular.module("uib/template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(a){a.put("uib/template/typeahead/typeahead-match.html",'\n')}]),angular.module("uib/template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/typeahead/typeahead-popup.html",'\n')}]),angular.module("ui.bootstrap.carousel").run(function(){!angular.$$csp().noInlineStyle&&angular.element(document).find("head").prepend('')}),angular.module("ui.bootstrap.tabs").run(function(){!angular.$$csp().noInlineStyle&&angular.element(document).find("head").prepend('')}),function(a){"use strict";"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a():"undefined"!=typeof Package?Sortable=a():window.Sortable=a()}(function(){"use strict";function a(a,b){if(!a||!a.nodeType||1!==a.nodeType)throw"Sortable: `el` must be HTMLElement, and not "+{}.toString.call(a);this.el=a,this.options=b=r({},b),a[L]=this;var c={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(a.nodeName)?"li":">*",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",ignore:"a, img",filter:null,animation:0,setData:function(a,b){a.setData("Text",b.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1};for(var d in c)!(d in b)&&(b[d]=c[d]);V(b);for(var f in this)"_"===f.charAt(0)&&(this[f]=this[f].bind(this));this.nativeDraggable=b.forceFallback?!1:P,e(a,"mousedown",this._onTapStart),e(a,"touchstart",this._onTapStart),this.nativeDraggable&&(e(a,"dragover",this),e(a,"dragenter",this)),T.push(this._onDragOver),b.store&&this.sort(b.store.get(this))}function b(a){v&&v.state!==a&&(h(v,"display",a?"none":""),!a&&v.state&&w.insertBefore(v,s),v.state=a)}function c(a,b,c){if(a){c=c||N,b=b.split(".");var d=b.shift().toUpperCase(),e=new RegExp("\\s("+b.join("|")+")(?=\\s)","g");do if(">*"===d&&a.parentNode===c||(""===d||a.nodeName.toUpperCase()==d)&&(!b.length||((" "+a.className+" ").match(e)||[]).length==b.length))return a;while(a!==c&&(a=a.parentNode))}return null}function d(a){a.dataTransfer&&(a.dataTransfer.dropEffect="move"),a.preventDefault()}function e(a,b,c){a.addEventListener(b,c,!1)}function f(a,b,c){a.removeEventListener(b,c,!1)}function g(a,b,c){if(a)if(a.classList)a.classList[c?"add":"remove"](b);else{var d=(" "+a.className+" ").replace(K," ").replace(" "+b+" "," ");a.className=(d+(c?" "+b:"")).replace(K," ")}}function h(a,b,c){var d=a&&a.style;if(d){if(void 0===c)return N.defaultView&&N.defaultView.getComputedStyle?c=N.defaultView.getComputedStyle(a,""):a.currentStyle&&(c=a.currentStyle),void 0===b?c:c[b];b in d||(b="-webkit-"+b),d[b]=c+("string"==typeof c?"":"px")}}function i(a,b,c){if(a){var d=a.getElementsByTagName(b),e=0,f=d.length;if(c)for(;f>e;e++)c(d[e],e);return d}return[]}function j(a,b,c,d,e,f,g){var h=N.createEvent("Event"),i=(a||b[L]).options,j="on"+c.charAt(0).toUpperCase()+c.substr(1);h.initEvent(c,!0,!0),h.to=b,h.from=e||b,h.item=d||b,h.clone=v,h.oldIndex=f,h.newIndex=g,b.dispatchEvent(h),i[j]&&i[j].call(a,h)}function k(a,b,c,d,e,f){var g,h,i=a[L],j=i.options.onMove;return g=N.createEvent("Event"),g.initEvent("move",!0,!0),g.to=b,g.from=a,g.dragged=c,g.draggedRect=d,g.related=e||b,g.relatedRect=f||b.getBoundingClientRect(),a.dispatchEvent(g),j&&(h=j.call(i,g)),h}function l(a){a.draggable=!1}function m(){R=!1}function n(a,b){var c=a.lastElementChild,d=c.getBoundingClientRect();return(b.clientY-(d.top+d.height)>5||b.clientX-(d.right+d.width)>5)&&c}function o(a){for(var b=a.tagName+a.className+a.src+a.href+a.textContent,c=b.length,d=0;c--;)d+=b.charCodeAt(c);return d.toString(36)}function p(a){var b=0;if(!a||!a.parentNode)return-1;for(;a&&(a=a.previousElementSibling);)"TEMPLATE"!==a.nodeName.toUpperCase()&&b++;return b}function q(a,b){var c,d;return function(){void 0===c&&(c=arguments,d=this,setTimeout(function(){1===c.length?a.call(d,c[0]):a.apply(d,c),c=void 0},b))}}function r(a,b){if(a&&b)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}var s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J={},K=/\s+/g,L="Sortable"+(new Date).getTime(),M=window,N=M.document,O=M.parseInt,P=!!("draggable"in N.createElement("div")),Q=function(a){return a=N.createElement("x"),a.style.cssText="pointer-events:auto","auto"===a.style.pointerEvents}(),R=!1,S=Math.abs,T=([].slice,[]),U=q(function(a,b,c){if(c&&b.scroll){var d,e,f,g,h=b.scrollSensitivity,i=b.scrollSpeed,j=a.clientX,k=a.clientY,l=window.innerWidth,m=window.innerHeight;if(z!==c&&(y=b.scroll,z=c,y===!0)){y=c;do if(y.offsetWidth=l-j)-(h>=j),g=(h>=m-k)-(h>=k),(f||g)&&(d=M)),J.vx===f&&J.vy===g&&J.el===d||(J.el=d,J.vx=f,J.vy=g,clearInterval(J.pid),d&&(J.pid=setInterval(function(){d===M?M.scrollTo(M.pageXOffset+f*i,M.pageYOffset+g*i):(g&&(d.scrollTop+=g*i),f&&(d.scrollLeft+=f*i))},24)))}},30),V=function(a){var b=a.group;b&&"object"==typeof b||(b=a.group={name:b}),["pull","put"].forEach(function(a){a in b||(b[a]=!0)}),a.groups=" "+b.name+(b.put.join?" "+b.put.join(" "):"")+" "};return a.prototype={constructor:a,_onTapStart:function(a){var b=this,d=this.el,e=this.options,f=a.type,g=a.touches&&a.touches[0],h=(g||a).target,i=h,k=e.filter;if(!("mousedown"===f&&0!==a.button||e.disabled)&&(h=c(h,e.draggable,d))){if(D=p(h),"function"==typeof k){if(k.call(this,a,h,this))return j(b,i,"filter",h,d,D),void a.preventDefault()}else if(k&&(k=k.split(",").some(function(a){return a=c(i,a.trim(),d),a?(j(b,a,"filter",h,d,D),!0):void 0})))return void a.preventDefault();e.handle&&!c(i,e.handle,d)||this._prepareDragStart(a,g,h)}},_prepareDragStart:function(a,b,c){var d,f=this,h=f.el,j=f.options,k=h.ownerDocument;c&&!s&&c.parentNode===h&&(G=a,w=h,s=c,t=s.parentNode,x=s.nextSibling,F=j.group,d=function(){f._disableDelayedDrag(),s.draggable=!0,g(s,f.options.chosenClass,!0),f._triggerDragStart(b)},j.ignore.split(",").forEach(function(a){i(s,a.trim(),l)}),e(k,"mouseup",f._onDrop),e(k,"touchend",f._onDrop),e(k,"touchcancel",f._onDrop),j.delay?(e(k,"mouseup",f._disableDelayedDrag),e(k,"touchend",f._disableDelayedDrag),e(k,"touchcancel",f._disableDelayedDrag),e(k,"mousemove",f._disableDelayedDrag),e(k,"touchmove",f._disableDelayedDrag),f._dragStartTimer=setTimeout(d,j.delay)):d())},_disableDelayedDrag:function(){var a=this.el.ownerDocument;clearTimeout(this._dragStartTimer),f(a,"mouseup",this._disableDelayedDrag),f(a,"touchend",this._disableDelayedDrag),f(a,"touchcancel",this._disableDelayedDrag),f(a,"mousemove",this._disableDelayedDrag),f(a,"touchmove",this._disableDelayedDrag)},_triggerDragStart:function(a){a?(G={target:s,clientX:a.clientX,clientY:a.clientY},this._onDragStart(G,"touch")):this.nativeDraggable?(e(s,"dragend",this),e(w,"dragstart",this._onDragStart)):this._onDragStart(G,!0);try{N.selection?N.selection.empty():window.getSelection().removeAllRanges()}catch(b){}},_dragStarted:function(){w&&s&&(g(s,this.options.ghostClass,!0),a.active=this,j(this,w,"start",s,w,D))},_emulateDragOver:function(){if(H){if(this._lastX===H.clientX&&this._lastY===H.clientY)return;this._lastX=H.clientX,this._lastY=H.clientY,Q||h(u,"display","none");var a=N.elementFromPoint(H.clientX,H.clientY),b=a,c=" "+this.options.group.name,d=T.length;if(b)do{if(b[L]&&b[L].options.groups.indexOf(c)>-1){for(;d--;)T[d]({clientX:H.clientX,clientY:H.clientY,target:a,rootEl:b});break}a=b}while(b=b.parentNode);Q||h(u,"display","")}},_onTouchMove:function(b){if(G){a.active||this._dragStarted(),this._appendGhost();var c=b.touches?b.touches[0]:b,d=c.clientX-G.clientX,e=c.clientY-G.clientY,f=b.touches?"translate3d("+d+"px,"+e+"px,0)":"translate("+d+"px,"+e+"px)";I=!0,H=c,h(u,"webkitTransform",f),h(u,"mozTransform",f),h(u,"msTransform",f),h(u,"transform",f),b.preventDefault()}},_appendGhost:function(){if(!u){var a,b=s.getBoundingClientRect(),c=h(s),d=this.options;u=s.cloneNode(!0),g(u,d.ghostClass,!1),g(u,d.fallbackClass,!0),h(u,"top",b.top-O(c.marginTop,10)),h(u,"left",b.left-O(c.marginLeft,10)),h(u,"width",b.width),h(u,"height",b.height),h(u,"opacity","0.8"),h(u,"position","fixed"),h(u,"zIndex","100000"),h(u,"pointerEvents","none"),d.fallbackOnBody&&N.body.appendChild(u)||w.appendChild(u),a=u.getBoundingClientRect(),h(u,"width",2*b.width-a.width),h(u,"height",2*b.height-a.height)}},_onDragStart:function(a,b){var c=a.dataTransfer,d=this.options;this._offUpEvents(),"clone"==F.pull&&(v=s.cloneNode(!0),h(v,"display","none"),w.insertBefore(v,s)),b?("touch"===b?(e(N,"touchmove",this._onTouchMove),e(N,"touchend",this._onDrop),e(N,"touchcancel",this._onDrop)):(e(N,"mousemove",this._onTouchMove),e(N,"mouseup",this._onDrop)),this._loopId=setInterval(this._emulateDragOver,50)):(c&&(c.effectAllowed="move",d.setData&&d.setData.call(this,c,s)),e(N,"drop",this),setTimeout(this._dragStarted,0))},_onDragOver:function(a){var d,e,f,g=this.el,i=this.options,j=i.group,l=j.put,o=F===j,p=i.sort;if(void 0!==a.preventDefault&&(a.preventDefault(),!i.dragoverBubble&&a.stopPropagation()),I=!0,F&&!i.disabled&&(o?p||(f=!w.contains(s)):F.pull&&l&&(F.name===j.name||l.indexOf&&~l.indexOf(F.name)))&&(void 0===a.rootEl||a.rootEl===this.el)){if(U(a,i,this.el),R)return;if(d=c(a.target,i.draggable,g),e=s.getBoundingClientRect(),f)return b(!0),void(v||x?w.insertBefore(s,v||x):p||w.appendChild(s));if(0===g.children.length||g.children[0]===u||g===a.target&&(d=n(g,a))){if(d){if(d.animated)return;r=d.getBoundingClientRect()}b(o),k(w,g,s,e,d,r)!==!1&&(s.contains(g)||(g.appendChild(s),t=g),this._animate(e,s),d&&this._animate(r,d))}else if(d&&!d.animated&&d!==s&&void 0!==d.parentNode[L]){A!==d&&(A=d,B=h(d),C=h(d.parentNode));var q,r=d.getBoundingClientRect(),y=r.right-r.left,z=r.bottom-r.top,D=/left|right|inline/.test(B.cssFloat+B.display)||"flex"==C.display&&0===C["flex-direction"].indexOf("row"),E=d.offsetWidth>s.offsetWidth,G=d.offsetHeight>s.offsetHeight,H=(D?(a.clientX-r.left)/y:(a.clientY-r.top)/z)>.5,J=d.nextElementSibling,K=k(w,g,s,e,d,r);if(K!==!1){if(R=!0,setTimeout(m,30),b(o),1===K||-1===K)q=1===K;else if(D){var M=s.offsetTop,N=d.offsetTop;q=M===N?d.previousElementSibling===s&&!E||H&&E:N>M}else q=J!==s&&!G||H&&G;s.contains(g)||(q&&!J?g.appendChild(s):d.parentNode.insertBefore(s,q?J:d)),t=s.parentNode,this._animate(e,s),this._animate(r,d)}}}},_animate:function(a,b){var c=this.options.animation;if(c){var d=b.getBoundingClientRect();h(b,"transition","none"),h(b,"transform","translate3d("+(a.left-d.left)+"px,"+(a.top-d.top)+"px,0)"),b.offsetWidth,h(b,"transition","all "+c+"ms"),h(b,"transform","translate3d(0,0,0)"),clearTimeout(b.animated),b.animated=setTimeout(function(){h(b,"transition",""),h(b,"transform",""),b.animated=!1},c)}},_offUpEvents:function(){var a=this.el.ownerDocument;f(N,"touchmove",this._onTouchMove),f(a,"mouseup",this._onDrop),f(a,"touchend",this._onDrop),f(a,"touchcancel",this._onDrop)},_onDrop:function(b){var c=this.el,d=this.options;clearInterval(this._loopId),clearInterval(J.pid),clearTimeout(this._dragStartTimer),f(N,"mousemove",this._onTouchMove),this.nativeDraggable&&(f(N,"drop",this),f(c,"dragstart",this._onDragStart)),this._offUpEvents(),b&&(I&&(b.preventDefault(),!d.dropBubble&&b.stopPropagation()),u&&u.parentNode.removeChild(u),s&&(this.nativeDraggable&&f(s,"dragend",this),l(s),g(s,this.options.ghostClass,!1),g(s,this.options.chosenClass,!1),w!==t?(E=p(s),E>=0&&(j(null,t,"sort",s,w,D,E),j(this,w,"sort",s,w,D,E),j(null,t,"add",s,w,D,E),j(this,w,"remove",s,w,D,E))):(v&&v.parentNode.removeChild(v),s.nextSibling!==x&&(E=p(s),E>=0&&(j(this,w,"update",s,w,D,E),j(this,w,"sort",s,w,D,E)))),a.active&&(null!==E&&-1!==E||(E=D),j(this,w,"end",s,w,D,E),this.save())),w=s=t=u=x=v=y=z=G=H=I=E=A=B=F=a.active=null)},handleEvent:function(a){var b=a.type;"dragover"===b||"dragenter"===b?s&&(this._onDragOver(a),d(a)):"drop"!==b&&"dragend"!==b||this._onDrop(a)},toArray:function(){for(var a,b=[],d=this.el.children,e=0,f=d.length,g=this.options;f>e;e++)a=d[e],c(a,g.draggable,this.el)&&b.push(a.getAttribute(g.dataIdAttr)||o(a));return b},sort:function(a){var b={},d=this.el;this.toArray().forEach(function(a,e){var f=d.children[e];c(f,this.options.draggable,d)&&(b[a]=f)},this),a.forEach(function(a){b[a]&&(d.removeChild(b[a]),d.appendChild(b[a]))})},save:function(){var a=this.options.store;a&&a.set(this)},closest:function(a,b){return c(a,b||this.options.draggable,this.el)},option:function(a,b){var c=this.options;return void 0===b?c[a]:(c[a]=b,void("group"===a&&V(c)))},destroy:function(){var a=this.el;a[L]=null,f(a,"mousedown",this._onTapStart),f(a,"touchstart",this._onTapStart),this.nativeDraggable&&(f(a,"dragover",this),f(a,"dragenter",this)),Array.prototype.forEach.call(a.querySelectorAll("[draggable]"),function(a){a.removeAttribute("draggable")}),T.splice(T.indexOf(this._onDragOver),1),this._onDrop(),this.el=a=null}},a.utils={on:e,off:f,css:h,find:i,is:function(a,b){return!!c(a,b,a)},extend:r,throttle:q,closest:c,toggleClass:g,index:p},a.create=function(b,c){return new a(b,c)},a.version="1.4.2",a}),function(a){"use strict";"function"==typeof define&&define.amd?define(["angular","./Sortable"],a):"function"==typeof require&&"object"==typeof exports&&"object"==typeof module?(require("angular"),a(angular,require("./Sortable")),module.exports="ng-sortable"):window.angular&&window.Sortable&&a(angular,Sortable)}(function(a,b){"use strict";var c="Sortable:ng-sortable";a.module("ng-sortable",[]).constant("ngSortableVersion","0.4.0").constant("ngSortableConfig",{}).directive("ngSortable",["$parse","ngSortableConfig",function(d,e){var f,g,h=function(a,b){var c=[].filter.call(a.childNodes,function(a){return 8===a.nodeType&&-1!==a.nodeValue.indexOf("ngRepeat:")})[0];if(!c)return function(){return null};c=c.nodeValue.match(/ngRepeat:\s*(?:\(.*?,\s*)?([^\s)]+)[\s)]+in\s+([^\s|]+)/);var e=d(c[2]);return function(){return e(b.$parent)||[]}};return{restrict:"AC",scope:{ngSortable:"=?"},link:function(d,i){function j(a,b){var c="on"+a.type.charAt(0).toUpperCase()+a.type.substr(1),d=p();n[c]&&n[c]({model:b||d[a.newIndex],models:d,oldIndex:a.oldIndex,newIndex:a.newIndex})}function k(e){var h=p();if(h){var i=e.oldIndex,j=e.newIndex;if(m!==e.from){var k=e.from[c]();f=k[i],e.clone?(f=a.copy(f),k.splice(b.utils.index(e.clone),0,k.splice(i,1)[0]),e.from.removeChild(e.clone)):k.splice(i,1),h.splice(j,0,f),e.from.insertBefore(e.item,g)}else h.splice(j,0,h.splice(i,1)[0]);d.$apply()}}var l,m=i[0],n=a.extend(d.ngSortable||{},e),o=[],p=h(m,d);m[c]=p,l=b.create(m,Object.keys(n).reduce(function(a,b){return a[b]=a[b]||n[b],a},{onStart:function(a){g=a.item.nextSibling,j(a),d.$apply()},onEnd:function(a){j(a,f),d.$apply()},onAdd:function(a){k(a),j(a,f),d.$apply()},onUpdate:function(a){k(a),j(a)},onRemove:function(a){j(a,f)},onSort:function(a){j(a)}})),i.on("$destroy",function(){a.forEach(o,function(a){a()}),l.destroy(),m[c]=null,m=null,o=null,l=null,g=null}),a.forEach(["sort","disabled","draggable","handle","animation","group","ghostClass","filter","onStart","onEnd","onAdd","onUpdate","onRemove","onSort"],function(a){o.push(d.$watch("ngSortable."+a,function(b){void 0!==b&&(n[a]=b,/^on[A-Z]/.test(a)||l.option(a,b))}))})}}}])}),function(a){"use strict";"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a(require("./Sortable")):"function"==typeof define&&define.amd?define(["./Sortable"],a):window.SortableMixin=a(Sortable)}(function(a){"use strict";function b(a){return a.sortableOptions&&a.sortableOptions.model||g.model}function c(a){var c=b(a),d=a.state&&a.state[c]||a.props[c];return d.slice()}function d(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}var e,f,g={ref:"list",model:"items",animation:100,onStart:"handleStart",onEnd:"handleEnd",onAdd:"handleAdd",onUpdate:"handleUpdate",onRemove:"handleRemove",onSort:"handleSort",onFilter:"handleFilter",onMove:"handleMove"},h={sortableMixinVersion:"0.1.1",_sortableInstance:null,componentDidMount:function(){var h,i=d(d({},g),this.sortableOptions||{}),j=d({},i),k=function(a,b){var c=this[i[a]];c&&c.call(this,b,this._sortableInstance)}.bind(this);"onStart onEnd onAdd onSort onUpdate onRemove onFilter onMove".split(" ").forEach(function(a){j[a]=function(d){if("onStart"===a)e=d.item.nextElementSibling,f=this;else if("onAdd"===a||"onUpdate"===a){d.from.insertBefore(d.item,e);var g,h,i={},l={},m=d.oldIndex,n=d.newIndex,o=c(this);"onAdd"===a?(g=c(f),h=g.splice(m,1)[0],o.splice(n,0,h),l[b(f)]=g):o.splice(n,0,o.splice(m,1)[0]),i[b(this)]=o,j.stateHandler?this[j.stateHandler](i):this.setState(i),this!==f&&f.setState(l)}setTimeout(function(){k(a,d)},0)}.bind(this)},this),h=this.getDOMNode()?(this.refs[i.ref]||this).getDOMNode():this.refs[i.ref]||this,this._sortableInstance=a.create(h,j); +},componentWillReceiveProps:function(a){var c={},d=b(this),e=a[d];e&&(c[d]=e,this.setState(c))},componentWillUnmount:function(){this._sortableInstance.destroy(),this._sortableInstance=null}};return h}),function(a,b){"use strict";angular.module("adf",["adf.provider","ui.bootstrap"]).value("adfTemplatePath","../src/templates/").value("rowTemplate",'').value("columnTemplate",'').value("adfVersion","0.11.0"),angular.module("adf").directive("adfDashboardColumn",["$log","$compile","$rootScope","adfTemplatePath","rowTemplate","dashboard",function(a,b,c,d,e,f){function g(a,b,d){var e=b.widgets;a.$apply(function(){e.splice(d.newIndex,0,e.splice(d.oldIndex,1)[0]),c.$broadcast("adfWidgetMovedInColumn")})}function h(a,b){for(var c=null,d=0;d0)for(var c=a.widgets.shift();c;)b.widgets.push(c),c=a.widgets.shift()}function i(a,b,c){return c=c||0,angular.isDefined(a.rows)&&angular.forEach(a.rows,function(a){angular.forEach(a.columns,function(a){a.widgets||(a.widgets=[]),angular.isDefined(b[c])&&(angular.isDefined(a.rows)||(h(b[c],a),c++)),c=i(a,b,c)})}),c}function j(a,b){return b=b||[],angular.isDefined(a.rows)&&angular.forEach(a.rows,function(a){angular.forEach(a.columns,function(a){b.push(a),j(a,b)})}),b}function k(a,b){var c=j(a),d=0;for(a.rows=angular.copy(b.rows);d{}
        ',e='
        \n
        \n loading ...\n
        \n
        ',f=function(){return!0};this.widget=function(b,c){var d=angular.extend({reload:!1,frameless:!1},c);if(d.edit){var e={reload:!0,immediate:!1,apply:f};angular.extend(e,d.edit),d.edit=e}return a[b]=d,this},this.widgetsPath=function(a){return b=a,this},this.structure=function(a,b){return c[a]=b,this},this.messageTemplate=function(a){return d=a,this},this.loadingTemplate=function(a){return e=a,this},this.$get=function(){var f=0;return{widgets:a,widgetsPath:b,structures:c,messageTemplate:d,loadingTemplate:e,id:function(){return(new Date).getTime()+"-"+ ++f},idEquals:function(a,b){return a&&b&&a.toString()===b.toString()}}}}),angular.module("adf").directive("adfDashboardRow",["$compile","adfTemplatePath","columnTemplate",function(a,b,c){return{restrict:"E",replace:!0,scope:{row:"=",adfModel:"=",editMode:"=",continuousEditMode:"=",options:"="},templateUrl:b+"dashboard-row.html",link:function(b,d){angular.isDefined(b.row.columns)&&angular.isArray(b.row.columns)&&a(c)(b,function(a){d.append(a)})}}}]),angular.module("adf").directive("adfWidgetContent",["$log","$q","$sce","$http","$templateCache","$compile","$controller","$injector","dashboard",function(a,b,c,d,e,f,g,h,i){function j(a){var b=a;return a.indexOf("{widgetsPath}")>=0&&(b=a.replace("{widgetsPath}",i.widgetsPath).replace("//","/"),0===b.indexOf("/")&&(b=b.substring(1))),b}function k(a){var f=b.defer();if(a.template)f.resolve(a.template);else if(a.templateUrl){var g=e.get(a.templateUrl);if(g)f.resolve(g);else{var h=c.getTrustedResourceUrl(j(a.templateUrl));d.get(h).success(function(b){e.put(a.templateUrl,b),f.resolve(b)}).error(function(){f.reject("could not load template")})}}return f.promise}function l(c,d,e){var j=c.model,l=c.content;d.html(i.loadingTemplate);var m=c.$new();j.config||(j.config={}),m.config=j.config;var n={$scope:m,widget:j,config:j.config},o={};return o.$tpl=k(l),l.resolve&&angular.forEach(l.resolve,function(a,b){angular.isString(a)?o[b]=h.get(a):o[b]=h.invoke(a,a,n)}),b.all(o).then(function(a){angular.extend(a,n);var b=a.$tpl;if(d.html(b),l.controller){var c=g(l.controller,a);l.controllerAs&&(m[l.controllerAs]=c),d.children().data("$ngControllerController",c)}f(d.contents())(m)},function(b){var c="Could not resolve all promises";b&&(c+=": "+b),a.warn(c),d.html(i.messageTemplate.replace(/{}/g,c))}),e&&e.$destroy(),m}return{replace:!0,restrict:"EA",transclude:!1,scope:{model:"=",content:"="},link:function(a,b){var c=l(a,b,null);a.$on("widgetConfigChanged",function(){c=l(a,b,c)}),a.$on("widgetReload",function(){c=l(a,b,c)})}}}]),angular.module("adf").directive("adfWidget",["$injector","$q","$log","$uibModal","$rootScope","dashboard","adfTemplatePath",function(a,b,c,d,e,f,g){function h(a){var b=a.definition;if(b){var d=f.widgets[b.type];if(d){b.title||(b.title=d.title),b.titleTemplateUrl||(b.titleTemplateUrl=g+"widget-title.html",d.titleTemplateUrl&&(b.titleTemplateUrl=d.titleTemplateUrl)),b.titleTemplateUrl||(b.frameless=d.frameless),b.styleClass||(b.styleClass=d.styleClass),b.wid||(b.wid=f.id()),a.widget=angular.copy(d);var e=b.config;e?angular.isString(e)&&(e=angular.fromJson(e)):e={},a.config=e,a.widgetState||(a.widgetState={},a.widgetState.isCollapsed=d.collapsed===!0?d.collapsed:!1)}else c.warn("could not find widget "+b.type)}else c.debug("definition not specified, widget was probably removed")}function i(f,h){var i=f.definition;if(i){var j=function(){var a=f.col;if(a){var b=a.widgets.indexOf(i);b>=0&&a.widgets.splice(b,1)}h.remove(),e.$broadcast("adfWidgetRemovedFromColumn")};f.remove=function(){if(f.options.enableConfirmDelete){var a=f.$new(),b=g+"widget-delete.html";i.deleteTemplateUrl&&(b=i.deleteTemplateUrl);var c={scope:a,templateUrl:b,backdrop:"static"},e=d.open(c);a.closeDialog=function(){e.close(),a.$destroy()},a.deleteDialog=function(){j(),a.closeDialog()}}else j()},f.reload=function(){f.$broadcast("widgetReload")},f.edit=function(){function c(a){var c;if("boolean"==typeof a){var d=b.defer();a?d.resolve():d.reject(),c=d.promise}else c=b.when(a);return c}var e=f.$new();e.definition=angular.copy(i);var h=g+"widget-edit.html";i.editTemplateUrl&&(h=i.editTemplateUrl);var j={scope:e,templateUrl:h,backdrop:"static"},k=d.open(j);e.closeDialog=function(){k.close(),e.$destroy()},e.saveDialog=function(){e.validationError=null;var b=f.widget,d=b.edit.apply,g={widget:b,definition:e.definition,config:e.definition.config},h=a.invoke(d,d,g);c(h).then(function(){i.title=e.definition.title,angular.extend(i.config,e.definition.config),b.edit&&b.edit.reload&&f.$broadcast("widgetConfigChanged"),e.closeDialog()},function(a){a?e.validationError=a:e.validationError="Validation durring apply failed"})}}}else c.debug("widget not found")}return{replace:!0,restrict:"EA",transclude:!1,templateUrl:g+"widget.html",scope:{definition:"=",col:"=column",editMode:"=",options:"=",widgetState:"="},controller:["$scope",function(a){a.$on("adfDashboardCollapseExpand",function(b,c){a.widgetState.isCollapsed=c.collapseExpandStatus}),a.$on("adfWidgetEnterEditMode",function(b,c){f.idEquals(a.definition.wid,c.wid)&&a.edit()}),a.widgetClasses=function(b,c){var d=c.styleClass||"";return b.frameless&&!a.editMode||(d+=" panel panel-default"),d},a.openFullScreen=function(){var b=a.definition,c=a.$new(),e={scope:c,templateUrl:g+"widget-fullscreen.html",size:b.modalSize||"lg",backdrop:"static",windowClass:b.fullScreen?"dashboard-modal widget-fullscreen":"dashboard-modal"},f=d.open(e);c.closeDialog=function(){f.close(),c.$destroy()}}}],compile:function(){return{pre:h,post:i}}}}]),angular.module("adf").run(["$templateCache",function(a){a.put("../src/templates/dashboard-column.html",'
        '),a.put("../src/templates/dashboard-edit.html",' '),a.put("../src/templates/dashboard-row.html","
        "),a.put("../src/templates/dashboard-title.html",'

        {{model.title}}

        '),a.put("../src/templates/dashboard.html",'
        '),a.put("../src/templates/widget-add.html",' '),a.put("../src/templates/widget-delete.html",' '),a.put("../src/templates/widget-edit.html",'
        '),a.put("../src/templates/widget-fullscreen.html",' '),a.put("../src/templates/widget-title.html",'

        {{definition.title}}

        '),a.put("../src/templates/widget.html",'
        ')}])}(window),angular.module("adf.structures.base",["adf"]).config(["dashboardProvider",function(a){a.structure("6-6",{rows:[{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]}]}).structure("4-8",{rows:[{columns:[{styleClass:"col-md-4",widgets:[]},{styleClass:"col-md-8",widgets:[]}]}]}).structure("12/4-4-4",{rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-4"},{styleClass:"col-md-4"},{styleClass:"col-md-4"}]}]}).structure("12/6-6",{rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]}]}).structure("12/6-6/12",{rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]},{columns:[{styleClass:"col-md-12"}]}]}).structure("3-9 (12/6-6)",{rows:[{columns:[{styleClass:"col-md-3"},{styleClass:"col-md-9",rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]}]}]}]})}]),function(a,b){"use strict";angular.module("adf.widget.clock",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("clock",{title:"Clock",description:"Displays date and time",templateUrl:"{widgetsPath}/clock/src/view.html",controller:"clockController",controllerAs:"clock",config:{timePattern:"HH:mm:ss",datePattern:"YYYY-MM-DD"},edit:{templateUrl:"{widgetsPath}/clock/src/edit.html"}})}]).controller("clockController",["$scope","$interval","config",function(a,b,c){function d(){var a=new moment;e.time=a.format(c.timePattern),e.date=a.format(c.datePattern)}var e=this;d();var f=b(d,1e3);a.$on("$destroy",function(){b.cancel(f)})}]),angular.module("adf.widget.clock").run(["$templateCache",function(a){a.put("{widgetsPath}/clock/src/edit.html",'

        For the list of possible patterns, please have a look at moment.js documentation

        '),a.put("{widgetsPath}/clock/src/view.html","
        {{clock.time}}
        {{clock.date}}
        ")}])}(window),function(a,b){"use strict";angular.module("adf.widget.iframe",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("iframe",{title:"iframe",description:"Embed an external page into the dashboard",templateUrl:"{widgetsPath}/iframe/src/view.html",controller:"iframeController",controllerAs:"iframe",edit:{templateUrl:"{widgetsPath}/iframe/src/edit.html"},config:{height:"420px"}})}]).controller("iframeController",["$sce","config",function(a,b){b.url&&(this.url=a.trustAsResourceUrl(b.url))}]),angular.module("adf.widget.iframe").run(["$templateCache",function(a){a.put("{widgetsPath}/iframe/src/edit.html","
        "),a.put("{widgetsPath}/iframe/src/view.html",'
        Please insert a url in the widget configuration
        ')}])}(window),function(){"use strict";angular.module("ui.grid.i18n",[]),angular.module("ui.grid",["ui.grid.i18n"])}(),function(){"use strict";angular.module("ui.grid").constant("uiGridConstants",{LOG_DEBUG_MESSAGES:!0,LOG_WARN_MESSAGES:!0,LOG_ERROR_MESSAGES:!0,CUSTOM_FILTERS:/CUSTOM_FILTERS/g,COL_FIELD:/COL_FIELD/g,MODEL_COL_FIELD:/MODEL_COL_FIELD/g,TOOLTIP:/title=\"TOOLTIP\"/g,DISPLAY_CELL_TEMPLATE:/DISPLAY_CELL_TEMPLATE/g,TEMPLATE_REGEXP:/<.+>/,FUNC_REGEXP:/(\([^)]*\))?$/,DOT_REGEXP:/\./g,APOS_REGEXP:/'/g,BRACKET_REGEXP:/^(.*)((?:\s*\[\s*\d+\s*\]\s*)|(?:\s*\[\s*"(?:[^"\\]|\\.)*"\s*\]\s*)|(?:\s*\[\s*'(?:[^'\\]|\\.)*'\s*\]\s*))(.*)$/,COL_CLASS_PREFIX:"ui-grid-col",events:{GRID_SCROLL:"uiGridScroll",COLUMN_MENU_SHOWN:"uiGridColMenuShown",ITEM_DRAGGING:"uiGridItemDragStart",COLUMN_HEADER_CLICK:"uiGridColumnHeaderClick"},keymap:{TAB:9,STRG:17,CAPSLOCK:20,CTRL:17,CTRLRIGHT:18,CTRLR:18,SHIFT:16,RETURN:13,ENTER:13,BACKSPACE:8,BCKSP:8,ALT:18,ALTR:17,ALTRIGHT:17,SPACE:32,WIN:91,MAC:91,FN:null,PG_UP:33,PG_DOWN:34,UP:38,DOWN:40,LEFT:37,RIGHT:39,ESC:27,DEL:46,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123},ASC:"asc",DESC:"desc",filter:{STARTS_WITH:2,ENDS_WITH:4,EXACT:8,CONTAINS:16,GREATER_THAN:32,GREATER_THAN_OR_EQUAL:64,LESS_THAN:128,LESS_THAN_OR_EQUAL:256,NOT_EQUAL:512,SELECT:"select",INPUT:"input"},aggregationTypes:{sum:2,count:4,avg:8,min:16,max:32},CURRENCY_SYMBOLS:["ƒ","$","£","$","¤","¥","៛","₩","₱","฿","₫"],scrollDirection:{UP:"up",DOWN:"down",LEFT:"left",RIGHT:"right",NONE:"none"},dataChange:{ALL:"all",EDIT:"edit",ROW:"row",COLUMN:"column",OPTIONS:"options"},scrollbars:{NEVER:0,ALWAYS:1}})}(),angular.module("ui.grid").directive("uiGridCell",["$compile","$parse","gridUtil","uiGridConstants",function(a,b,c,d){var e={priority:0,scope:!1,require:"?^uiGrid",compile:function(){return{pre:function(b,e,f,g){function h(){var a=b.col.compiledElementFn;a(b,function(a,b){e.append(a)})}if(g&&b.col.compiledElementFn)h();else if(g&&!b.col.compiledElementFn)b.col.getCompiledElementFn().then(function(a){a(b,function(a,b){e.append(a)})});else{var i=b.col.cellTemplate.replace(d.MODEL_COL_FIELD,"row.entity."+c.preEval(b.col.field)).replace(d.COL_FIELD,"grid.getCellValue(row, col)"),j=a(i)(b);e.append(j)}},post:function(a,b,c,e){var f=a.col.getColClass(!1);b.addClass(f);var g,h=function(c){var d=b;g&&(d.removeClass(g),g=null),g=angular.isFunction(a.col.cellClass)?a.col.cellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.cellClass,d.addClass(g)};a.col.cellClass&&h();var i=a.grid.registerDataChangeCallback(h,[d.dataChange.COLUMN,d.dataChange.EDIT]),j=function(c,d){if(c!==d){(g||a.col.cellClass)&&h();var e=a.col.getColClass(!1);e!==f&&(b.removeClass(f),b.addClass(e),f=e)}},k=a.$watch("row",j),l=function(){i(),k()};a.$on("$destroy",l),b.on("$destroy",l)}}}};return e}]),function(){angular.module("ui.grid").service("uiGridColumnMenuService",["i18nService","uiGridConstants","gridUtil",function(a,b,c){var d={initialize:function(a,b){a.grid=b.grid,b.columnMenuScope=a,a.menuShown=!1},setColMenuItemWatch:function(a){var b=a.$watch("col.menuItems",function(b,c){"undefined"!=typeof b&&b&&angular.isArray(b)?(b.forEach(function(b){"undefined"!=typeof b.context&&b.context||(b.context={}),b.context.col=a.col}),a.menuItems=a.defaultMenuItems.concat(b)):a.menuItems=a.defaultMenuItems});a.$on("$destroy",b)},sortable:function(a){return!!(a.grid.options.enableSorting&&"undefined"!=typeof a.col&&a.col&&a.col.enableSorting)},isActiveSort:function(a,b){return"undefined"!=typeof a.col&&"undefined"!=typeof a.col.sort&&"undefined"!=typeof a.col.sort.direction&&a.col.sort.direction===b},suppressRemoveSort:function(a){return!(!a.col||!a.col.suppressRemoveSort)},hideable:function(a){return"undefined"==typeof a.col||!a.col||!a.col.colDef||a.col.colDef.enableHiding!==!1},getDefaultMenuItems:function(c){return[{title:a.getSafeText("sort.ascending"),icon:"ui-grid-icon-sort-alt-up",action:function(a){a.stopPropagation(),c.sortColumn(a,b.ASC)},shown:function(){return d.sortable(c)},active:function(){return d.isActiveSort(c,b.ASC)}},{title:a.getSafeText("sort.descending"),icon:"ui-grid-icon-sort-alt-down",action:function(a){a.stopPropagation(),c.sortColumn(a,b.DESC)},shown:function(){return d.sortable(c)},active:function(){return d.isActiveSort(c,b.DESC)}},{title:a.getSafeText("sort.remove"),icon:"ui-grid-icon-cancel",action:function(a){a.stopPropagation(),c.unsortColumn()},shown:function(){return d.sortable(c)&&"undefined"!=typeof c.col&&"undefined"!=typeof c.col.sort&&"undefined"!=typeof c.col.sort.direction&&null!==c.col.sort.direction&&!d.suppressRemoveSort(c)}},{title:a.getSafeText("column.hide"),icon:"ui-grid-icon-cancel",shown:function(){return d.hideable(c)},action:function(a){a.stopPropagation(),c.hideColumn()}},{title:a.getSafeText("columnMenu.close"),screenReaderOnly:!0,shown:function(){return!0},action:function(a){a.stopPropagation()}}]},getColumnElementPosition:function(a,b,d){var e={};return e.left=d[0].offsetLeft,e.top=d[0].offsetTop,e.parentLeft=d[0].offsetParent.offsetLeft,e.offset=0,b.grid.options.offsetLeft&&(e.offset=b.grid.options.offsetLeft),e.height=c.elementHeight(d,!0),e.width=c.elementWidth(d,!0),e},repositionMenu:function(a,b,d,e,f){var g=e[0].querySelectorAll(".ui-grid-menu"),h=b.renderContainer?b.renderContainer:"body",i=(b.grid.renderContainers[h],c.closestElm(f,".ui-grid-render-container")),j=i.getBoundingClientRect().left-a.grid.element[0].getBoundingClientRect().left,k=i.querySelectorAll(".ui-grid-viewport")[0].scrollLeft,l=b.lastMenuWidth?b.lastMenuWidth:a.lastMenuWidth?a.lastMenuWidth:170,m=b.lastMenuPaddingRight?b.lastMenuPaddingRight:a.lastMenuPaddingRight?a.lastMenuPaddingRight:10;if(0!==g.length){var n=g[0].querySelectorAll(".ui-grid-menu-mid");0===n.length||angular.element(n).hasClass("ng-hide")||(l=c.elementWidth(g,!0),a.lastMenuWidth=l,b.lastMenuWidth=l,m=parseInt(c.getStyles(angular.element(g)[0]).paddingRight,10),a.lastMenuPaddingRight=m,b.lastMenuPaddingRight=m)}var o=d.left+j-k+d.parentLeft+d.width-l+m;oc)d=b;else{if(c>a&&!d)return d=b,!0;if(c>a&&d)return!0}}),d){var g=d.getColClass();b.focus.bySelector(e,".ui-grid-header-cell."+g+" .ui-grid-header-cell-primary-focus",!0).then(angular.noop,function(a){return"canceled"!==a?c():void 0})}else c()})};f.hideColumn=function(){f.col.colDef.visible=!1,f.col.visible=!1,f.grid.queueGridRefresh(),f.hideMenu(),f.grid.api.core.notifyDataChange(c.dataChange.COLUMN),f.grid.api.core.raise.columnVisibilityChanged(f.col),j()}},controller:["$scope",function(a){var b=this;a.$watch("menuItems",function(a,c){b.menuItems=a})}]};return f}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFilter",["$compile","$templateCache","i18nService","gridUtil",function(a,b,c,d){return{compile:function(){return{pre:function(b,c,d,e){b.col.updateFilters=function(d){if(c.children().remove(),d){var e=b.col.filterHeaderTemplate;c.append(a(e)(b))}},b.$on("$destroy",function(){delete b.col.updateFilters})},post:function(a,b,e,f){a.aria=c.getSafeText("headerCell.aria"),a.removeFilter=function(a,c){a.term=null,d.focus.bySelector(b,".ui-grid-filter-input-"+c)}}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFooterCell",["$timeout","gridUtil","uiGridConstants","$compile",function(a,b,c,d){var e={priority:0,scope:{col:"=",row:"=",renderIndex:"="},replace:!0,require:"^uiGrid",compile:function(a,b,e){return{pre:function(a,b,c,e){var f=d(a.col.footerCellTemplate)(a);b.append(f)},post:function(a,b,d,e){a.grid=e.grid;var f=a.col.getColClass(!1);b.addClass(f);var g,h=function(c){var d=b;g&&(d.removeClass(g),g=null),g=angular.isFunction(a.col.footerCellClass)?a.col.footerCellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.footerCellClass,d.addClass(g)};a.col.footerCellClass&&h(),a.col.updateAggregationValue();var i=a.grid.registerDataChangeCallback(h,[c.dataChange.COLUMN]);a.grid.api.core.on.rowsRendered(a,a.col.updateAggregationValue), +a.grid.api.core.on.rowsRendered(a,h),a.$on("$destroy",i)}}}};return e}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFooter",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout",function(a,b,c,d,e){return{restrict:"EA",replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:!0,compile:function(a,c){return{pre:function(a,c,e,f){var g=f[0],h=f[1];a.grid=g.grid,a.colContainer=h.colContainer,h.footer=c;var i=a.grid.options.footerTemplate;d.getTemplate(i).then(function(d){var e=angular.element(d),f=b(e)(a);if(c.append(f),h){var g=c[0].getElementsByClassName("ui-grid-footer-viewport")[0];g&&(h.footerViewport=g)}})},post:function(a,b,c,e){var f=e[0],g=e[1];f.grid;d.disableAnimations(b),g.footer=b;var h=b[0].getElementsByClassName("ui-grid-footer-viewport")[0];h&&(g.footerViewport=h)}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridGridFooter",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout",function(a,b,c,d,e){return{restrict:"EA",replace:!0,require:"^uiGrid",scope:!0,compile:function(a,c){return{pre:function(a,c,e,f){a.grid=f.grid;var g=a.grid.options.gridFooterTemplate;d.getTemplate(g).then(function(d){var e=angular.element(d),f=b(e)(a);c.append(f)})},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridGroupPanel",["$compile","uiGridConstants","gridUtil",function(a,b,c){var d="ui-grid/ui-grid-group-panel";return{restrict:"EA",replace:!0,require:"?^uiGrid",scope:!1,compile:function(b,e){return{pre:function(b,e,f,g){var h=b.grid.options.groupPanelTemplate||d;c.getTemplate(h).then(function(c){var d=angular.element(c),f=a(d)(b);e.append(f)})},post:function(a,b,c,d){b.bind("$destroy",function(){})}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridHeaderCell",["$compile","$timeout","$window","$document","gridUtil","uiGridConstants","ScrollEvent","i18nService",function(a,b,c,d,e,f,g,h){var i=500,j=500,k={priority:0,scope:{col:"=",row:"=",renderIndex:"="},require:["^uiGrid","^uiGridRenderContainer"],replace:!0,compile:function(){return{pre:function(b,c,d){var e=a(b.col.headerCellTemplate)(b);c.append(e)},post:function(a,c,e,g){var k=g[0],l=g[1];a.i18n={headerCell:h.getSafeText("headerCell"),sort:h.getSafeText("sort")},a.isSortPriorityVisible=function(){return a.col.sort.priority&&a.grid.columns.some(function(b,c){return b.sort.priority&&b!==a.col})},a.getSortDirectionAriaLabel=function(){var b=a.col,c=b.sort.direction===f.ASC?a.i18n.sort.ascending:b.sort.direction===f.DESC?a.i18n.sort.descending:a.i18n.sort.none,d=c;return a.isSortPriorityVisible()&&(d=d+". "+a.i18n.headerCell.priority+" "+b.sort.priority),d},a.grid=k.grid,a.renderContainer=k.grid.renderContainers[l.containerId];var m=a.col.getColClass(!1);c.addClass(m),a.menuShown=!1,a.asc=f.ASC,a.desc=f.DESC;var n,o,p=(angular.element(c[0].querySelectorAll(".ui-grid-header-cell-menu")),angular.element(c[0].querySelectorAll(".ui-grid-cell-contents"))),q=[];a.downFn=function(e){e.stopPropagation(),"undefined"!=typeof e.originalEvent&&void 0!==e.originalEvent&&(e=e.originalEvent),e.button&&0!==e.button||(o=e.pageX,a.mousedownStartTime=(new Date).getTime(),a.mousedownTimeout=b(function(){},i),a.mousedownTimeout.then(function(){a.colMenu&&k.columnMenuScope.showMenu(a.col,c,e)}),k.fireEvent(f.events.COLUMN_HEADER_CLICK,{event:e,columnName:a.col.colDef.name}),a.offAllEvents(),"touchstart"===e.type?(d.on("touchend",a.upFn),d.on("touchmove",a.moveFn)):"mousedown"===e.type&&(d.on("mouseup",a.upFn),d.on("mousemove",a.moveFn)))},a.upFn=function(c){c.stopPropagation(),b.cancel(a.mousedownTimeout),a.offAllEvents(),a.onDownEvents(c.type);var d=(new Date).getTime(),e=d-a.mousedownStartTime;e>i||a.sortable&&a.handleClick(c)},a.moveFn=function(c){var d=c.pageX-o;0!==d&&(b.cancel(a.mousedownTimeout),a.offAllEvents(),a.onDownEvents(c.type))},a.clickFn=function(b){b.stopPropagation(),p.off("click",a.clickFn)},a.offAllEvents=function(){p.off("touchstart",a.downFn),p.off("mousedown",a.downFn),d.off("touchend",a.upFn),d.off("mouseup",a.upFn),d.off("touchmove",a.moveFn),d.off("mousemove",a.moveFn),p.off("click",a.clickFn)},a.onDownEvents=function(c){switch(c){case"touchmove":case"touchend":p.on("click",a.clickFn),p.on("touchstart",a.downFn),b(function(){p.on("mousedown",a.downFn)},j);break;case"mousemove":case"mouseup":p.on("click",a.clickFn),p.on("mousedown",a.downFn),b(function(){p.on("touchstart",a.downFn)},j);break;default:p.on("click",a.clickFn),p.on("touchstart",a.downFn),p.on("mousedown",a.downFn)}};var r=function(d){var e=c;n&&(e.removeClass(n),n=null),n=angular.isFunction(a.col.headerCellClass)?a.col.headerCellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.headerCellClass,e.addClass(n),b(function(){var b=a.grid.renderContainers.right?a.grid.renderContainers.right:a.grid.renderContainers.body;a.isLastCol=a.col===b.visibleColumnCache[b.visibleColumnCache.length-1]}),k.grid.options.enableSorting&&a.col.enableSorting?a.sortable=!0:a.sortable=!1;var g=a.filterable;k.grid.options.enableFiltering&&a.col.enableFiltering?a.filterable=!0:a.filterable=!1,g!==a.filterable&&("undefined"!=typeof a.col.updateFilters&&a.col.updateFilters(a.filterable),a.filterable?(a.col.filters.forEach(function(b,c){q.push(a.$watch("col.filters["+c+"].term",function(a,b){a!==b&&(k.grid.api.core.raise.filterChanged(),k.grid.api.core.notifyDataChange(f.dataChange.COLUMN),k.grid.queueGridRefresh())}))}),a.$on("$destroy",function(){q.forEach(function(a){a()})})):q.forEach(function(a){a()})),a.col.grid.options&&a.col.grid.options.enableColumnMenus!==!1&&a.col.colDef&&a.col.colDef.enableColumnMenu!==!1?a.colMenu=!0:a.colMenu=!1,a.offAllEvents(),(a.sortable||a.colMenu)&&(a.onDownEvents(),a.$on("$destroy",function(){a.offAllEvents()}))};r();var s=a.grid.registerDataChangeCallback(r,[f.dataChange.COLUMN]);a.$on("$destroy",s),a.handleClick=function(b){var c=!1;b.shiftKey&&(c=!0),k.grid.sortColumn(a.col,c).then(function(){k.columnMenuScope&&k.columnMenuScope.hideMenu(),k.grid.refresh()})},a.toggleMenu=function(b){b.stopPropagation(),k.columnMenuScope.menuShown&&k.columnMenuScope.col===a.col?k.columnMenuScope.hideMenu():k.columnMenuScope.showMenu(a.col,c)}}}}};return k}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridHeader",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout","ScrollEvent",function(a,b,c,d,e,f){var g="ui-grid/ui-grid-header",h="ui-grid/ui-grid-no-header";return{restrict:"EA",replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:!0,compile:function(a,c){return{pre:function(a,c,e,i){function j(){m.header=m.colContainer.header=c;var a=c[0].getElementsByClassName("ui-grid-header-canvas");a.length>0?m.headerCanvas=m.colContainer.headerCanvas=a[0]:m.headerCanvas=null}function k(a){if(!l.grid.isScrollingHorizontally){var b=d.normalizeScrollLeft(m.headerViewport,l.grid),c=m.colContainer.scrollHorizontal(b),e=new f(l.grid,null,m.colContainer,f.Sources.ViewPortScroll);e.newScrollLeft=b,c>-1&&(e.x={percentage:c}),l.grid.scrollContainers(null,e)}}var l=i[0],m=i[1];a.grid=l.grid,a.colContainer=m.colContainer,j();var n;n=a.grid.options.showHeader?a.grid.options.headerTemplate?a.grid.options.headerTemplate:g:h,d.getTemplate(n).then(function(d){var e=angular.element(d),f=b(e)(a);if(c.replaceWith(f),c=f,j(),m){var g=c[0].getElementsByClassName("ui-grid-header-viewport")[0];g&&(m.headerViewport=g,angular.element(g).on("scroll",k),a.$on("$destroy",function(){angular.element(g).off("scroll",k)}))}a.grid.queueRefresh()})},post:function(a,b,c,e){function f(){var a=h.colContainer.visibleColumnCache,b="",c=0;return a.forEach(function(a){b+=a.getColClassDefinition(),c+=a.drawnWidth}),h.colContainer.canvasWidth=c,b}var g=e[0],h=e[1];g.grid;d.disableAnimations(b),h.header=b;var i=b[0].getElementsByClassName("ui-grid-header-viewport")[0];i&&(h.headerViewport=i),g&&g.grid.registerStyleComputation({priority:15,func:f})}}}}}])}(),function(){angular.module("ui.grid").service("uiGridGridMenuService",["gridUtil","i18nService","uiGridConstants",function(a,b,c){var d={initialize:function(a,b){b.gridMenuScope=a,a.grid=b,a.registeredMenuItems=[],a.$on("$destroy",function(){a.grid&&a.grid.gridMenuScope&&(a.grid.gridMenuScope=null),a.grid&&(a.grid=null),a.registeredMenuItems&&(a.registeredMenuItems=null)}),a.registeredMenuItems=[],b.api.registerMethod("core","addToGridMenu",d.addToGridMenu),b.api.registerMethod("core","removeFromGridMenu",d.removeFromGridMenu)},addToGridMenu:function(b,c){angular.isArray(c)?b.gridMenuScope?(b.gridMenuScope.registeredMenuItems=b.gridMenuScope.registeredMenuItems?b.gridMenuScope.registeredMenuItems:[],b.gridMenuScope.registeredMenuItems=b.gridMenuScope.registeredMenuItems.concat(c)):a.logError("Asked to addToGridMenu, but gridMenuScope not present. Timing issue? Please log issue with ui-grid"):a.logError("addToGridMenu: menuItems must be an array, and is not, not adding any items")},removeFromGridMenu:function(b,c){var d=-1;b&&b.gridMenuScope&&b.gridMenuScope.registeredMenuItems.forEach(function(b,e){b.id===c&&(d>-1?a.logError("removeFromGridMenu: found multiple items with the same id, removing only the last"):d=e)}),d>-1&&b.gridMenuScope.registeredMenuItems.splice(d,1)},getMenuItems:function(c){var e=[];c.grid.options.gridMenuCustomItems&&(angular.isArray(c.grid.options.gridMenuCustomItems)?e=e.concat(c.grid.options.gridMenuCustomItems):a.logError("gridOptions.gridMenuCustomItems must be an array, and is not"));var f=[{title:b.getSafeText("gridMenu.clearAllFilters"),action:function(a){c.grid.clearAllFilters(void 0,!0,void 0)},shown:function(){return c.grid.options.enableFiltering},order:100}];return e=e.concat(f),e=e.concat(c.registeredMenuItems),c.grid.options.gridMenuShowHideColumns!==!1&&(e=e.concat(d.showHideColumns(c))),e.sort(function(a,b){return a.order-b.order}),e},showHideColumns:function(a){var c=[];return a.grid.options.columnDefs&&0!==a.grid.options.columnDefs.length&&0!==a.grid.columns.length?(c.push({title:b.getSafeText("gridMenu.columns"),order:300}),a.grid.options.gridMenuTitleFilter=a.grid.options.gridMenuTitleFilter?a.grid.options.gridMenuTitleFilter:function(a){return a},a.grid.options.columnDefs.forEach(function(b,e){if(b.enableHiding!==!1){var f={icon:"ui-grid-icon-ok",action:function(a){a.stopPropagation(),d.toggleColumnVisibility(this.context.gridCol)},shown:function(){return this.context.gridCol.colDef.visible===!0||void 0===this.context.gridCol.colDef.visible},context:{gridCol:a.grid.getColumn(b.name||b.field)},leaveOpen:!0,order:301+2*e};d.setMenuItemTitle(f,b,a.grid),c.push(f),f={icon:"ui-grid-icon-cancel",action:function(a){a.stopPropagation(),d.toggleColumnVisibility(this.context.gridCol)},shown:function(){return!(this.context.gridCol.colDef.visible===!0||void 0===this.context.gridCol.colDef.visible)},context:{gridCol:a.grid.getColumn(b.name||b.field)},leaveOpen:!0,order:301+2*e+1},d.setMenuItemTitle(f,b,a.grid),c.push(f)}}),c):c},setMenuItemTitle:function(b,c,d){var e=d.options.gridMenuTitleFilter(c.displayName||a.readableColumnName(c.name)||c.field);"string"==typeof e?b.title=e:e.then?(b.title="",e.then(function(a){b.title=a},function(a){b.title=a})):(a.logError("Expected gridMenuTitleFilter to return a string or a promise, it has returned neither, bad config"),b.title="badconfig")},toggleColumnVisibility:function(a){a.colDef.visible=!(a.colDef.visible===!0||void 0===a.colDef.visible),a.grid.refresh(),a.grid.api.core.notifyDataChange(c.dataChange.COLUMN),a.grid.api.core.raise.columnVisibilityChanged(a)}};return d}]).directive("uiGridMenuButton",["gridUtil","uiGridConstants","uiGridGridMenuService","i18nService",function(a,b,c,d){return{priority:0,scope:!0,require:["^uiGrid"],templateUrl:"ui-grid/ui-grid-menu-button",replace:!0,link:function(b,e,f,g){var h=g[0];b.i18n={aria:d.getSafeText("gridMenu.aria")},c.initialize(b,h.grid),b.shown=!1,b.toggleMenu=function(){b.shown?(b.$broadcast("hide-menu"),b.shown=!1):(b.menuItems=c.getMenuItems(b),b.$broadcast("show-menu"),b.shown=!0)},b.$on("menu-hidden",function(){b.shown=!1,a.focus.bySelector(e,".ui-grid-icon-container")})}}}])}(),function(){angular.module("ui.grid").directive("uiGridMenu",["$compile","$timeout","$window","$document","gridUtil","uiGridConstants","i18nService",function(a,b,c,d,e,f,g){var h={priority:0,scope:{menuItems:"=",autoHide:"=?"},require:"?^uiGrid",templateUrl:"ui-grid/uiGridMenu",replace:!1,link:function(a,d,h,i){var j;a.dynamicStyles="",i&&(j=i.grid.gridHeight-30,a.dynamicStyles=[".grid"+i.grid.id+" .ui-grid-menu-mid {","max-height: "+j+"px;","}"].join(" ")),a.i18n={close:g.getSafeText("columnMenu.close")},a.showMenu=function(c,f){a.shown?a.shownMid||(a.shownMid=!0,a.$emit("menu-shown")):(a.shown=!0,b(function(){a.shownMid=!0,a.$emit("menu-shown")}));var g="click";f&&f.originalEvent&&f.originalEvent.type&&"touchstart"===f.originalEvent.type&&(g=f.originalEvent.type),angular.element(document).off("click touchstart",k),b(function(){angular.element(document).on(g,k)}),e.focus.bySelector(d,"button[type=button]",!0)},a.hideMenu=function(c,d){a.shown&&(a.shownMid=!1,b(function(){a.shownMid||(a.shown=!1,a.$emit("menu-hidden"))},200)),angular.element(document).off("click touchstart",k)},a.$on("hide-menu",function(b,c){a.hideMenu(b,c)}),a.$on("show-menu",function(b,c){a.showMenu(b,c)});var k=function(){a.shown&&a.$apply(function(){a.hideMenu()})};"undefined"!=typeof a.autoHide&&void 0!==a.autoHide||(a.autoHide=!0),a.autoHide&&angular.element(c).on("resize",k),a.$on("$destroy",function(){angular.element(document).off("click touchstart",k)}),a.$on("$destroy",function(){angular.element(c).off("resize",k)}),i&&a.$on("$destroy",i.grid.api.core.on.scrollBegin(a,k)),a.$on("$destroy",a.$on(f.events.ITEM_DRAGGING,k))},controller:["$scope","$element","$attrs",function(a,b,c){}]};return h}]).directive("uiGridMenuItem",["gridUtil","$compile","i18nService",function(a,b,c){var d={priority:0,scope:{name:"=",active:"=",action:"=",icon:"=",shown:"=",context:"=",templateUrl:"=",leaveOpen:"=",screenReaderOnly:"="},require:["?^uiGrid","^uiGridMenu"],templateUrl:"ui-grid/uiGridMenuItem",replace:!1,compile:function(d,e){return{pre:function(c,d,e,f){f[0],f[1];c.templateUrl&&a.getTemplate(c.templateUrl).then(function(a){var e=angular.element(a),f=b(e)(c);d.replaceWith(f)})},post:function(b,d,e,f){var g=f[0];f[1];"undefined"!=typeof b.shown&&null!==b.shown||(b.shown=function(){return!0}),b.itemShown=function(){var a={};return b.context&&(a.context=b.context),"undefined"!=typeof g&&g&&(a.grid=g.grid),b.shown.call(a)},b.itemAction=function(c,e){if(a.logDebug("itemAction"),c.stopPropagation(),"function"==typeof b.action){var f={};b.context&&(f.context=b.context),"undefined"!=typeof g&&g&&(f.grid=g.grid),b.action.call(f,c,e),b.leaveOpen?a.focus.bySelector(angular.element(a.closestElm(d,".ui-grid-menu-items")),"button[type=button]",!0):b.$emit("hide-menu")}},b.i18n=c.get()}}}};return d}])}(),function(){"use strict";var a=angular.module("ui.grid");angular.forEach([{tag:"Src",method:"attr"},{tag:"Text",method:"text"},{tag:"Href",method:"attr"},{tag:"Class",method:"addClass"},{tag:"Html",method:"html"},{tag:"Alt",method:"attr"},{tag:"Style",method:"css"},{tag:"Value",method:"attr"},{tag:"Id",method:"attr"},{tag:"Id",directiveName:"IdGrid",method:"attr",appendGridId:!0},{tag:"Title",method:"attr"},{tag:"Label",method:"attr",aria:!0},{tag:"Labelledby",method:"attr",aria:!0},{tag:"Labelledby",directiveName:"LabelledbyGrid",appendGridId:!0,method:"attr",aria:!0},{tag:"Describedby",method:"attr",aria:!0},{tag:"Describedby",directiveName:"DescribedbyGrid",appendGridId:!0,method:"attr",aria:!0}],function(b){var c="uiGridOneBind",d=(b.aria?c+"Aria":c)+(b.directiveName?b.directiveName:b.tag);a.directive(d,["gridUtil",function(a){return{restrict:"A",require:["?uiGrid","?^uiGrid"],link:function(c,e,f,g){var h=function(b){var e;if(c.grid)e=c.grid;else if(c.col&&c.col.grid)e=c.col.grid;else if(!g.some(function(a){return a&&a.grid?(e=a.grid,!0):void 0}))throw a.logError("["+d+"] A valid grid could not be found to bind id. Are you using this directive within the correct scope? Trying to generate id: [gridID]-"+b),new Error("No valid grid could be found");if(e){var f=new RegExp(e.id.toString());f.test(b)||(b=e.id.toString()+"-"+b)}return b},i=c.$watch(f[d],function(a){if(a){if(b.appendGridId){var c=null;angular.forEach(a.split(" "),function(a){c=(c?c+" ":"")+h(a)}),a=c}switch(b.method){case"attr":b.aria?e[b.method]("aria-"+b.tag.toLowerCase(),a):e[b.method](b.tag.toLowerCase(),a);break;case"addClass":if(angular.isObject(a)&&!angular.isArray(a)){var d=[],f=!1;if(angular.forEach(a,function(a,b){null!==a&&"undefined"!=typeof a&&(f=!0,a&&d.push(b))}),!f)return;a=d}if(!a)return;e.addClass(angular.isArray(a)?a.join(" "):a);break;default:e[b.method](a)}i()}},!0)}}}])})}(),function(){"use strict";var a=angular.module("ui.grid");a.directive("uiGridRenderContainer",["$timeout","$document","uiGridConstants","gridUtil","ScrollEvent",function(a,b,c,d,e){return{replace:!0,transclude:!0,templateUrl:"ui-grid/uiGridRenderContainer",require:["^uiGrid","uiGridRenderContainer"],scope:{containerId:"=",rowContainerName:"=",colContainerName:"=",bindScrollHorizontal:"=",bindScrollVertical:"=",enableVerticalScrollbar:"=",enableHorizontalScrollbar:"="},controller:"uiGridRenderContainer as RenderContainer",compile:function(){return{pre:function(a,b,c,d){var e=d[0],f=d[1],g=a.grid=e.grid;if(!a.rowContainerName)throw"No row render container name specified";if(!a.colContainerName)throw"No column render container name specified";if(!g.renderContainers[a.rowContainerName])throw"Row render container '"+a.rowContainerName+"' is not registered.";if(!g.renderContainers[a.colContainerName])throw"Column render container '"+a.colContainerName+"' is not registered.";var h=a.rowContainer=g.renderContainers[a.rowContainerName],i=a.colContainer=g.renderContainers[a.colContainerName];f.containerId=a.containerId,f.rowContainer=h,f.colContainer=i},post:function(a,b,c,f){function g(){var b="",c=l.canvasWidth,d=l.getViewportWidth(),e=k.getCanvasHeight(),f=k.getViewportHeight();l.needsHScrollbarPlaceholder()&&(f-=j.scrollbarHeight);var g,i;return g=i=l.getHeaderViewportWidth(),b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-canvas { width: "+c+"px; height: "+e+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-canvas { width: "+(c+j.scrollbarWidth)+"px; }",b+=o.explicitHeaderCanvasHeight?"\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-canvas { height: "+o.explicitHeaderCanvasHeight+"px; }":"\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-canvas { height: inherit; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-viewport { width: "+d+"px; height: "+f+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-viewport { width: "+g+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-footer-canvas { width: "+(c+j.scrollbarWidth)+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-footer-viewport { width: "+i+"px; }"}var h=f[0],i=f[1],j=h.grid,k=i.rowContainer,l=i.colContainer,m=null,n=null,o=j.renderContainers[a.containerId];b.addClass("ui-grid-render-container-"+a.containerId),d.on.mousewheel(b,function(a){var b=new e(j,k,l,e.Sources.RenderContainerMouseWheel);if(0!==a.deltaY){var c=-1*a.deltaY*a.deltaFactor;m=i.viewport[0].scrollTop,b.verticalScrollLength=k.getVerticalScrollLength();var f=(m+c)/b.verticalScrollLength;f>=1&&mf?f=0:f>1&&(f=1),b.y={percentage:f,pixels:c}}if(0!==a.deltaX){var g=a.deltaX*a.deltaFactor;n=d.normalizeScrollLeft(i.viewport,j),b.horizontalScrollLength=l.getCanvasWidth()-l.getViewportWidth();var h=(n+g)/b.horizontalScrollLength;0>h?h=0:h>1&&(h=1),b.x={percentage:h,pixels:g}}0!==a.deltaY&&(b.atTop(m)||b.atBottom(m))||0!==a.deltaX&&(b.atLeft(n)||b.atRight(n))||(a.preventDefault(),a.stopPropagation(),b.fireThrottledScrollingEvent("",b))}),b.bind("$destroy",function(){b.unbind("keydown"),["touchstart","touchmove","touchend","keydown","wheel","mousewheel","DomMouseScroll","MozMousePixelScroll"].forEach(function(a){b.unbind(a)})}),h.grid.registerStyleComputation({priority:6,func:g})}}}}}]),a.controller("uiGridRenderContainer",["$scope","gridUtil",function(a,b){}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridRow",["gridUtil",function(a){return{replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:{row:"=uiGridRow",rowRenderIndex:"="},compile:function(){return{pre:function(a,b,c,d){function e(){a.row.getRowTemplateFn.then(function(c){var d=a.$new();c(d,function(a,c){h&&(h.remove(),i.$destroy()),b.empty().append(a),h=a,i=d})})}var f=d[0],g=d[1];f.grid;a.grid=f.grid,a.colContainer=g.colContainer;var h,i;e(),a.$watch("row.getRowTemplateFn",function(a,b){a!==b&&e()})},post:function(a,b,c,d){}}}}}])}(),function(){angular.module("ui.grid").directive("uiGridStyle",["gridUtil","$interpolate",function(a,b){return{link:function(a,c,d,e){var f=b(c.text(),!0);f&&a.$watch(f,function(a){c.text(a)})}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridViewport",["gridUtil","ScrollEvent","uiGridConstants","$log",function(a,b,c,d){return{replace:!0,scope:{},controllerAs:"Viewport",templateUrl:"ui-grid/uiGridViewport",require:["^uiGrid","^uiGridRenderContainer"],link:function(c,d,e,f){function g(e){var f=d[0].scrollTop,g=a.normalizeScrollLeft(d,p),h=n.scrollVertical(f),i=o.scrollHorizontal(g),j=new b(p,n,o,b.Sources.ViewPortScroll);j.newScrollLeft=g,j.newScrollTop=f,i>-1&&(j.x={percentage:i}),h>-1&&(j.y={percentage:h}),p.scrollContainers(c.$parent.containerId,j)}function h(a){m.prevScrollArgs=a;var b=a.getNewScrollTop(n,m.viewport);d[0].scrollTop=b}function i(b){m.prevScrollArgs=b;var c=b.getNewScrollLeft(o,m.viewport);d[0].scrollLeft=a.denormalizeScrollLeft(m.viewport,c,p)}function j(b){var c=b.getNewScrollLeft(o,m.viewport);m.headerViewport&&(m.headerViewport.scrollLeft=a.denormalizeScrollLeft(m.viewport,c,p))}function k(b){var c=b.getNewScrollLeft(o,m.viewport);m.footerViewport&&(m.footerViewport.scrollLeft=a.denormalizeScrollLeft(m.viewport,c,p))}var l=f[0],m=f[1];c.containerCtrl=m;var n=m.rowContainer,o=m.colContainer,p=l.grid;c.grid=l.grid,c.rowContainer=m.rowContainer,c.colContainer=m.colContainer,m.viewport=d,d.on("scroll",g);c.$parent.bindScrollVertical&&p.addVerticalScrollSync(c.$parent.containerId,h),c.$parent.bindScrollHorizontal&&(p.addHorizontalScrollSync(c.$parent.containerId,i),p.addHorizontalScrollSync(c.$parent.containerId+"header",j),p.addHorizontalScrollSync(c.$parent.containerId+"footer",k))},controller:["$scope",function(a){this.rowStyle=function(b){var c=a.rowContainer,d=a.colContainer,e={};if(0===b&&0!==c.currentTopRow){var f=c.currentTopRow*c.grid.options.rowHeight;e["margin-top"]=f+"px"}return 0!==d.currentFirstColumn&&(d.grid.isRTL()?e["margin-right"]=d.columnOffset+"px":e["margin-left"]=d.columnOffset+"px"),e}}]}}])}(),function(){angular.module("ui.grid").directive("uiGridVisible",function(){return function(a,b,c){a.$watch(c.uiGridVisible,function(a){b[a?"removeClass":"addClass"]("ui-grid-invisible")})}})}(),function(){"use strict";function a(a,b,c,d,e,f){return{templateUrl:"ui-grid/ui-grid",scope:{uiGrid:"="},replace:!0,transclude:!0,controller:"uiGridController",compile:function(){return{post:function(a,b,g,h){function i(){b[0].offsetWidth<=0&&p>q?(setTimeout(i,o),q++):c(k)}function j(){angular.element(d).on("resize",m),b.on("$destroy",function(){angular.element(d).off("resize",m)}),a.$watch(function(){return n.hasLeftContainer()},function(a,b){a!==b&&n.refreshCanvas(!0)}),a.$watch(function(){return n.hasRightContainer()},function(a,b){a!==b&&n.refreshCanvas(!0)})}function k(){n.gridWidth=a.gridWidth=e.elementWidth(b),n.canvasWidth=h.grid.gridWidth,n.gridHeight=a.gridHeight=e.elementHeight(b),n.gridHeight<=n.options.rowHeight&&n.options.enableMinHeightCheck&&l(),n.refreshCanvas(!0)}function l(){var c=n.options.minRowsToShow*n.options.rowHeight,d=n.options.showHeader?n.options.headerRowHeight:0,g=n.calcFooterHeight(),h=0;n.options.enableHorizontalScrollbar===f.scrollbars.ALWAYS&&(h=e.getScrollbarWidth());var i=0;if(angular.forEach(n.options.columnDefs,function(a){a.hasOwnProperty("filter")?1>i&&(i=1):a.hasOwnProperty("filters")&&i(n.grid.rowHeaderColumns?n.grid.rowHeaderColumns.length:0);!g&&!c.uiGridColumns&&0===n.grid.options.columnDefs.length&&b.length>0&&n.grid.buildColumnDefsFromData(b),!g&&(n.grid.options.columnDefs.length>0||b.length>0)&&d.push(n.grid.buildColumns().then(function(){n.grid.preCompileCellTemplates()})),e.all(d).then(function(){n.grid.modifyRows(p).then(function(){n.grid.redrawInPlace(!0),a.$evalAsync(function(){n.grid.refreshCanvas(!0),n.grid.callDataChangeCallbacks(f.dataChange.ROW)})})})}}var n=this;n.grid=h.createGrid(a.uiGrid),n.grid.appScope=n.grid.appScope||a.$parent,b.addClass("grid"+n.grid.id),n.grid.rtl="rtl"===d.getStyles(b[0]).direction,a.grid=n.grid,c.uiGridColumns&&c.$observe("uiGridColumns",function(a){n.grid.options.columnDefs=a,n.grid.buildColumns().then(function(){n.grid.preCompileCellTemplates(),n.grid.refreshCanvas(!0)})});var o=[];n.grid.options.fastWatch?(n.uiGrid=a.uiGrid,angular.isString(a.uiGrid.data)?(o.push(a.$parent.$watch(a.uiGrid.data,m)),o.push(a.$parent.$watch(function(){return n.grid.appScope[a.uiGrid.data]?n.grid.appScope[a.uiGrid.data].length:void 0},m))):(o.push(a.$parent.$watch(function(){return a.uiGrid.data},m)),o.push(a.$parent.$watch(function(){return a.uiGrid.data.length},m))),o.push(a.$parent.$watch(function(){return a.uiGrid.columnDefs},l)),o.push(a.$parent.$watch(function(){return a.uiGrid.columnDefs.length},l))):(angular.isString(a.uiGrid.data)?o.push(a.$parent.$watchCollection(a.uiGrid.data,m)):o.push(a.$parent.$watchCollection(function(){return a.uiGrid.data},m)),o.push(a.$parent.$watchCollection(function(){return a.uiGrid.columnDefs},l)));var p,q=a.$watch(function(){return n.grid.styleComputations},function(){n.grid.refreshCanvas(!0)});a.$on("$destroy",function(){o.forEach(function(a){a()}),q()}),n.fireEvent=function(b,c){"undefined"!=typeof c&&void 0!==c||(c={}),"undefined"!=typeof c.grid&&void 0!==c.grid||(c.grid=n.grid),a.$broadcast(b,c)},n.innerCompile=function(b){k(b)(a)}}]),angular.module("ui.grid").directive("uiGrid",a),a.$inject=["$compile","$templateCache","$timeout","$window","gridUtil","uiGridConstants"]}(),function(){"use strict";angular.module("ui.grid").directive("uiGridPinnedContainer",["gridUtil",function(a){return{restrict:"EA",replace:!0,template:'
        ',scope:{side:"=uiGridPinnedContainer"},require:"^uiGrid",compile:function(){return{post:function(a,b,c,d){function e(){var a=this,b=0;a.visibleColumnCache.forEach(function(a){b+=a.drawnWidth});var c=a.getViewportAdjustment();return b+=c.width}function f(){if("left"===a.side||"right"===a.side){for(var b=h.renderContainers[a.side].visibleColumnCache,c=0,d=0;d0?b[0]:null},p.prototype.getColDef=function(a){var b=this.options.columnDefs.filter(function(b){return b.name===a});return b.length>0?b[0]:null},p.prototype.assignTypes=function(){var a=this;a.options.columnDefs.forEach(function(b,c){if(!b.type){var e=new g(b,c,a),f=a.rows.length>0?a.rows[0]:null;f?b.type=d.guessType(a.getCellValue(f,e)):b.type="string"}})},p.prototype.isRowHeaderColumn=function(a){return-1!==this.rowHeaderColumns.indexOf(a)},p.prototype.addRowHeaderColumn=function(a){var b=this,c=new g(a,d.nextUid(),b);c.isRowHeader=!0,b.isRTL()?(b.createRightContainer(),c.renderContainer="right"):(b.createLeftContainer(),c.renderContainer="left"),b.columnBuilders[0](a,c,b.options).then(function(){c.enableFiltering=!1,c.enableSorting=!1,c.enableHiding=!1,b.rowHeaderColumns.push(c),b.buildColumns().then(function(){b.preCompileCellTemplates(),b.queueGridRefresh()})})},p.prototype.getOnlyDataColumns=function(){var a=this,b=[];return a.columns.forEach(function(c){-1===a.rowHeaderColumns.indexOf(c)&&b.push(c)}),b},p.prototype.buildColumns=function(b){var c={orderByColumnDefs:!1};angular.extend(c,b);var e,f=this,h=[],i=f.rowHeaderColumns.length;for(e=0;ee;e++)f.columns[e+i].name!==f.options.columnDefs[e].name?j[e+i]=f.getColumn(f.options.columnDefs[e].name):j[e+i]=f.columns[e+i];f.columns.length=0,Array.prototype.splice.apply(f.columns,[0,0].concat(j))}return a.all(h).then(function(){f.rows.length>0&&f.assignTypes()})},p.prototype.preCompileCellTemplates=function(){var a=this,c=function(c){var d=c.cellTemplate.replace(e.MODEL_COL_FIELD,a.getQualifiedColField(c));d=d.replace(e.COL_FIELD,"grid.getCellValue(row, col)");var f=b(d);c.compiledElementFn=f,c.compiledElementFnDefer&&c.compiledElementFnDefer.resolve(c.compiledElementFn)};this.columns.forEach(function(a){a.cellTemplate?c(a):a.cellTemplatePromise&&a.cellTemplatePromise.then(function(){c(a)})})},p.prototype.getQualifiedColField=function(a){return"row.entity."+d.preEval(a.field)},p.prototype.createLeftContainer=function(){this.hasLeftContainer()||(this.renderContainers.left=new l("left",this,{disableColumnOffset:!0}))},p.prototype.createRightContainer=function(){this.hasRightContainer()||(this.renderContainers.right=new l("right",this,{disableColumnOffset:!0}))},p.prototype.hasLeftContainer=function(){return void 0!==this.renderContainers.left},p.prototype.hasRightContainer=function(){return void 0!==this.renderContainers.right},p.prototype.preprocessColDef=function(a){var b=this;if(!a.field&&!a.name)throw new Error("colDef.name or colDef.field property is required");if(void 0===a.name&&void 0!==a.field){for(var c=a.field,d=2;b.getColumn(c);)c=a.field+d.toString(),d++;a.name=c}},p.prototype.newInN=function(a,b,c,d){for(var e=this,f=[],g=0;g0?d[0]:null},p.prototype.modifyRows=function(b){var c=this,d=c.rows.slice(0),e=c.rowHashMap||c.createRowHashMap();c.rowHashMap=c.createRowHashMap(),c.rows.length=0,b.forEach(function(a,b){var f;f=c.options.enableRowHashing?e.get(a):c.getRow(a,d),f||(f=c.processRowBuilders(new h(a,b,c))),c.rows.push(f),c.rowHashMap.put(a,f)}),c.assignTypes();var f=a.when(c.processRowsProcessors(c.rows)).then(function(a){return c.setVisibleRows(a)}),g=a.when(c.processColumnsProcessors(c.columns)).then(function(a){return c.setVisibleColumns(a)});return a.all([f,g])},p.prototype.addRows=function(a){for(var b=this,c=b.rows.length,d=0;dd)d+=e.drawnWidth,c++;else{for(var g=0,h=f;h>=f-c;h--)g+=a.columns[h].drawnWidth;b>g&&c++}}),c},p.prototype.getBodyHeight=function(){var a=this.getViewportHeight();return a},p.prototype.getViewportHeight=function(){var a=this,b=this.gridHeight-this.headerHeight-this.footerHeight,c=a.getViewportAdjustment();return b+=c.height},p.prototype.getViewportWidth=function(){var a=this,b=this.gridWidth,c=a.getViewportAdjustment();return b+=c.width},p.prototype.getHeaderViewportWidth=function(){var a=this.getViewportWidth();return a},p.prototype.addVerticalScrollSync=function(a,b){this.verticalScrollSyncCallBackFns[a]=b},p.prototype.addHorizontalScrollSync=function(a,b){this.horizontalScrollSyncCallBackFns[a]=b},p.prototype.scrollContainers=function(a,b){if(b.y){var c=["body","left","right"];this.flagScrollingVertically(b),"body"===a?c=["left","right"]:"left"===a?c=["body","right"]:"right"===a&&(c=["body","left"]);for(var d=0;db&&(b=a.sort.priority)}),b+1},p.prototype.resetColumnSorting=function(a){var b=this;b.columns.forEach(function(b){b===a||b.suppressRemoveSort||(b.sort={})})},p.prototype.getColumnSorting=function(){var a,b=this,c=[];return a=b.columns.slice(0),a.sort(j.prioritySort).forEach(function(a){a.sort&&"undefined"!=typeof a.sort.direction&&a.sort.direction&&(a.sort.direction===e.ASC||a.sort.direction===e.DESC)&&c.push(a)}),c},p.prototype.sortColumn=function(b,c,d){var e=this,f=null;if("undefined"==typeof b||!b)throw new Error("No column parameter provided");if("boolean"==typeof c?d=c:f=c,d?b.sort.priority||(b.sort.priority=e.getNextColumnSortPriority()):(e.resetColumnSorting(b),b.sort.priority=0,b.sort.priority=e.getNextColumnSortPriority()),f)b.sort.direction=f;else{var g=b.sortDirectionCycle.indexOf(b.sort.direction?b.sort.direction:null);g=(g+1)%b.sortDirectionCycle.length,b.colDef&&b.suppressRemoveSort&&!b.sortDirectionCycle[g]&&(g=(g+1)%b.sortDirectionCycle.length),b.sortDirectionCycle[g]?b.sort.direction=b.sortDirectionCycle[g]:b.sort={}}return e.api.core.raise.sortChanged(e,e.getColumnSorting()),a.when(b)},p.prototype.renderingComplete=function(){angular.isFunction(this.options.onRegisterApi)&&this.options.onRegisterApi(this.api),this.api.core.raise.renderingComplete(this.api)},p.prototype.createRowHashMap=function(){var a=this,b=new o;return b.grid=a,b},p.prototype.refresh=function(b){var c=this,d=c.processRowsProcessors(c.rows).then(function(a){c.setVisibleRows(a)}),e=c.processColumnsProcessors(c.columns).then(function(a){c.setVisibleColumns(a)});return a.all([d,e]).then(function(){c.redrawInPlace(b),c.refreshCanvas(!0)})},p.prototype.refreshRows=function(){var a=this;return a.processRowsProcessors(a.rows).then(function(b){a.setVisibleRows(b),a.redrawInPlace(),a.refreshCanvas(!0)})},p.prototype.refreshCanvas=function(b){var c=this;b&&c.buildStyles();var e=a.defer(),f=[];for(var g in c.renderContainers)if(c.renderContainers.hasOwnProperty(g)){var h=c.renderContainers[g];if(null===h.canvasWidth||isNaN(h.canvasWidth))continue;(h.header||h.headerCanvas)&&(h.explicitHeaderHeight=h.explicitHeaderHeight||null,h.explicitHeaderCanvasHeight=h.explicitHeaderCanvasHeight||null,f.push(h))}return f.length>0?(b&&c.buildStyles(),m(function(){var a,g,h=!1,i=0,j=0,k=function(a,b){return a!==b&&(h=!0),b};for(a=0;ao?0:o,g.innerHeaderHeight=o,!g.explicitHeaderHeight&&o>i&&(i=o)}if(g.headerCanvas){var p=g.headerCanvasHeight=k(g.headerCanvasHeight,parseInt(d.outerElementHeight(g.headerCanvas),10));!g.explicitHeaderCanvasHeight&&p>j&&(j=p)}}for(a=0;a0&&"undefined"!=typeof g.headerHeight&&null!==g.headerHeight&&(g.explicitHeaderHeight||g.headerHeight0&&"undefined"!=typeof g.headerCanvasHeight&&null!==g.headerCanvasHeight&&(g.explicitHeaderCanvasHeight||g.headerCanvasHeight0},p.prototype.hasRightContainerColumns=function(){return this.hasRightContainer()&&this.renderContainers.right.renderedColumns.length>0},p.prototype.scrollToIfNecessary=function(b,c){var d=this,e=new n(d,"uiGrid.scrollToIfNecessary"),f=d.renderContainers.body.visibleRowCache,g=d.renderContainers.body.visibleColumnCache,h=d.renderContainers.body.prevScrollTop+d.headerHeight;h=0>h?0:h;var i=d.renderContainers.body.prevScrollLeft,j=d.renderContainers.body.prevScrollTop+d.gridHeight-d.renderContainers.body.headerHeight-d.footerHeight-d.scrollbarWidth,k=d.renderContainers.body.prevScrollLeft+Math.ceil(d.renderContainers.body.getViewportWidth());if(null!==b){var l=f.indexOf(b),m=d.renderContainers.body.getCanvasHeight()-d.renderContainers.body.getViewportHeight(),o=l*d.options.rowHeight+d.headerHeight;o=0>o?0:o;var p,q;h>o?(p=d.renderContainers.body.prevScrollTop-(h-o),q=p/m,e.y={percentage:q}):o>j&&(p=o-j+d.renderContainers.body.prevScrollTop,q=p/m,e.y={percentage:q})}if(null!==c){for(var r=g.indexOf(c),s=d.renderContainers.body.getCanvasWidth()-d.renderContainers.body.getViewportWidth(),t=0,u=0;r>u;u++){var v=g[u];t+=v.drawnWidth}t=0>t?0:t;var w=t+c.drawnWidth;w=0>w?0:w;var x,y;i>t?(x=d.renderContainers.body.prevScrollLeft-(i-t),y=x/s,y=y>1?1:y,e.x={percentage:y}):w>k&&(x=w-k+d.renderContainers.body.prevScrollLeft,y=x/s,y=y>1?1:y,e.x={percentage:y})}var z=a.defer();if(e.y||e.x){e.withDelay=!1,d.scrollContainers("",e);var A=d.api.core.on.scrollEnd(null,function(){z.resolve(e),A()})}else z.resolve();return z.promise},p.prototype.scrollTo=function(a,b){var c=null,d=null;return null!==a&&"undefined"!=typeof a&&(c=this.getRow(a)),null!==b&&"undefined"!=typeof b&&(d=this.getColumn(b.name?b.name:b.field)),this.scrollToIfNecessary(c,d)},p.prototype.clearAllFilters=function(a,b,c){return void 0===a&&(a=!0),void 0===b&&(b=!1),void 0===c&&(c=!1),this.columns.forEach(function(a){a.filters.forEach(function(a){a.term=void 0,b&&(a.condition=void 0),c&&(a.flags=void 0)})}),a?this.refreshRows():void 0},o.prototype={put:function(a,b){this[this.grid.options.rowIdentity(a)]=b},get:function(a){return this[this.grid.options.rowIdentity(a)]},remove:function(a){var b=this[a=this.grid.options.rowIdentity(a)];return delete this[a],b}},p}])}(),function(){angular.module("ui.grid").factory("GridApi",["$q","$rootScope","gridUtil","uiGridConstants","GridRow","uiGridGridMenuService",function(a,b,c,d,e,f){function g(a,c,d,e){return b.$on(a,function(a){var b=Array.prototype.slice.call(arguments);b.splice(0,1),c.apply(e?e:d.api,b)})}var h=function(a){this.grid=a,this.listeners=[],this.registerEvent("core","renderingComplete"),this.registerEvent("core","filterChanged"),this.registerMethod("core","setRowInvisible",e.prototype.setRowInvisible),this.registerMethod("core","clearRowInvisible",e.prototype.clearRowInvisible),this.registerMethod("core","getVisibleRows",this.grid.getVisibleRows),this.registerEvent("core","rowsVisibleChanged"),this.registerEvent("core","rowsRendered"),this.registerEvent("core","scrollBegin"),this.registerEvent("core","scrollEnd"),this.registerEvent("core","canvasHeightChanged")};return h.prototype.suppressEvents=function(a,b){var c=this,d=angular.isArray(a)?a:[a],e=c.listeners.filter(function(a){return d.some(function(b){return a.handler===b})});e.forEach(function(a){a.dereg()}),b(),e.forEach(function(a){a.dereg=g(a.eventId,a.handler,c.grid,a._this)})},h.prototype.registerEvent=function(a,d){var e=this;e[a]||(e[a]={});var f=e[a];f.on||(f.on={},f.raise={});var h=e.grid.id+a+d;f.raise[d]=function(){b.$emit.apply(b,[h].concat(Array.prototype.slice.call(arguments)))},f.on[d]=function(b,f,i){if(null!==b&&"undefined"==typeof b.$on)return void c.logError("asked to listen on "+a+".on."+d+" but scope wasn't passed in the input parameters. It is legitimate to pass null, but you've passed something else, so you probably forgot to provide scope rather than did it deliberately, not registering");var j=g(h,f,e.grid,i),k={handler:f,dereg:j,eventId:h,scope:b,_this:i};e.listeners.push(k);var l=function(){k.dereg();var a=e.listeners.indexOf(k);e.listeners.splice(a,1)};return b&&b.$on("$destroy",function(){l()}),l}},h.prototype.registerEventsFromObject=function(a){var b=this,c=[];angular.forEach(a,function(a,b){var d={name:b,events:[]};angular.forEach(a,function(a,b){d.events.push(b)}),c.push(d)}),c.forEach(function(a){a.events.forEach(function(c){b.registerEvent(a.name,c)})})},h.prototype.registerMethod=function(a,b,d,e){this[a]||(this[a]={});var f=this[a];f[b]=c.createBoundedWrapper(e||this.grid,d)},h.prototype.registerMethodsFromObject=function(a,b){var c=this,d=[];angular.forEach(a,function(a,b){var c={name:b,methods:[]};angular.forEach(a,function(a,b){c.methods.push({name:b,fn:a})}),d.push(c)}),d.forEach(function(a){a.methods.forEach(function(d){c.registerMethod(a.name,d.name,d.fn,b)})})},h}])}(),function(){angular.module("ui.grid").factory("GridColumn",["gridUtil","uiGridConstants","i18nService",function(a,b,c){function d(a,c,d){var e=this;e.grid=d,e.uid=c,e.updateColumnDef(a,!0),e.aggregationValue=void 0,e.updateAggregationValue=function(){if(!e.aggregationType)return void(e.aggregationValue=void 0);var a=0,c=e.grid.getVisibleRows(),d=function(){var a=[];return c.forEach(function(b){var c=e.grid.getCellValue(b,e),d=Number(c);isNaN(d)||a.push(d)}),a};angular.isFunction(e.aggregationType)?e.aggregationValue=e.aggregationType(c,e):e.aggregationType===b.aggregationTypes.count?e.aggregationValue=e.grid.getVisibleRowCount():e.aggregationType===b.aggregationTypes.sum?(d().forEach(function(b){a+=b}),e.aggregationValue=a):e.aggregationType===b.aggregationTypes.avg?(d().forEach(function(b){a+=b}),a/=d().length,e.aggregationValue=a):e.aggregationType===b.aggregationTypes.min?e.aggregationValue=Math.min.apply(null,d()):e.aggregationType===b.aggregationTypes.max?e.aggregationValue=Math.max.apply(null,d()):e.aggregationValue=" "},this.getAggregationValue=function(){return e.aggregationValue}}return d.prototype.hideColumn=function(){this.colDef.visible=!1},d.prototype.setPropertyOrDefault=function(a,b,c){var d=this;"undefined"!=typeof a[b]&&a[b]?d[b]=a[b]:"undefined"!=typeof d[b]?d[b]=d[b]:d[b]=c?c:{}},d.prototype.updateColumnDef=function(c,d){var e=this;if(e.colDef=c,void 0===c.name)throw new Error("colDef.name is required for column at index "+e.grid.options.columnDefs.indexOf(c));if(e.displayName=void 0===c.displayName?a.readableColumnName(c.name):c.displayName,!angular.isNumber(e.width)||!e.hasCustomWidth||c.allowCustomWidthOverride){var f=c.width,g="Cannot parse column width '"+f+"' for column named '"+c.name+"'";if(e.hasCustomWidth=!1,angular.isString(f)||angular.isNumber(f))if(angular.isString(f))if(a.endsWith(f,"%")){var h=f.replace(/%/g,""),i=parseInt(h,10);if(isNaN(i))throw new Error(g);e.width=f}else if(f.match(/^(\d+)$/))e.width=parseInt(f.match(/^(\d+)$/)[1],10);else{if(!f.match(/^\*+$/))throw new Error(g);e.width=f}else e.width=f;else e.width="*"}["minWidth","maxWidth"].forEach(function(a){var b=c[a],d="Cannot parse column "+a+" '"+b+"' for column named '"+c.name+"'";if(angular.isString(b)||angular.isNumber(b))if(angular.isString(b)){if(!b.match(/^(\d+)$/))throw new Error(d);e[a]=parseInt(b.match(/^(\d+)$/)[1],10)}else e[a]=b;else e[a]="minWidth"===a?30:9e3}),e.field=void 0===c.field?c.name:c.field,"string"!=typeof e.field&&a.logError("Field is not a string, this is likely to break the code, Field is: "+e.field),e.name=c.name,e.displayName=void 0===c.displayName?a.readableColumnName(c.name):c.displayName,e.aggregationType=angular.isDefined(c.aggregationType)?c.aggregationType:null,e.footerCellTemplate=angular.isDefined(c.footerCellTemplate)?c.footerCellTemplate:null,"undefined"==typeof c.cellTooltip||c.cellTooltip===!1?e.cellTooltip=!1:c.cellTooltip===!0?e.cellTooltip=function(a,b){return e.grid.getCellValue(a,b)}:"function"==typeof c.cellTooltip?e.cellTooltip=c.cellTooltip:e.cellTooltip=function(a,b){return b.colDef.cellTooltip},"undefined"==typeof c.headerTooltip||c.headerTooltip===!1?e.headerTooltip=!1:c.headerTooltip===!0?e.headerTooltip=function(a){return a.displayName}:"function"==typeof c.headerTooltip?e.headerTooltip=c.headerTooltip:e.headerTooltip=function(a){return a.colDef.headerTooltip},e.footerCellClass=c.footerCellClass,e.cellClass=c.cellClass,e.headerCellClass=c.headerCellClass,e.cellFilter=c.cellFilter?c.cellFilter:"",e.sortCellFiltered=!!c.sortCellFiltered,e.filterCellFiltered=!!c.filterCellFiltered,e.headerCellFilter=c.headerCellFilter?c.headerCellFilter:"",e.footerCellFilter=c.footerCellFilter?c.footerCellFilter:"",e.visible=a.isNullOrUndefined(c.visible)||c.visible,e.headerClass=c.headerClass,e.enableSorting="undefined"!=typeof c.enableSorting?c.enableSorting:!0,e.sortingAlgorithm=c.sortingAlgorithm,e.sortDirectionCycle="undefined"!=typeof c.sortDirectionCycle?c.sortDirectionCycle:[null,b.ASC,b.DESC],"undefined"==typeof e.suppressRemoveSort&&(e.suppressRemoveSort="undefined"!=typeof c.suppressRemoveSort?c.suppressRemoveSort:!1),e.enableFiltering="undefined"!=typeof c.enableFiltering?c.enableFiltering:!0,e.setPropertyOrDefault(c,"menuItems",[]),d&&e.setPropertyOrDefault(c,"sort");var j=[];c.filter?j.push(c.filter):c.filters?j=c.filters:j.push({}),d?(e.setPropertyOrDefault(c,"filter"),e.setPropertyOrDefault(c,"filters",j)):e.filters.length===j.length&&e.filters.forEach(function(a,b){"undefined"!=typeof j[b].placeholder&&(a.placeholder=j[b].placeholder),"undefined"!=typeof j[b].ariaLabel&&(a.ariaLabel=j[b].ariaLabel),"undefined"!=typeof j[b].flags&&(a.flags=j[b].flags),"undefined"!=typeof j[b].type&&(a.type=j[b].type),"undefined"!=typeof j[b].selectOptions&&(a.selectOptions=j[b].selectOptions)})},d.prototype.unsort=function(){this.sort={},this.grid.api.core.raise.sortChanged(this.grid,this.grid.getColumnSorting())},d.prototype.getColClass=function(a){var c=b.COL_CLASS_PREFIX+this.uid;return a?"."+c:c},d.prototype.isPinnedLeft=function(){return"left"===this.renderContainer},d.prototype.isPinnedRight=function(){return"right"===this.renderContainer},d.prototype.getColClassDefinition=function(){return" .grid"+this.grid.id+" "+this.getColClass(!0)+" { min-width: "+this.drawnWidth+"px; max-width: "+this.drawnWidth+"px; }"},d.prototype.getRenderContainer=function(){var a=this,b=a.renderContainer;return null!==b&&""!==b&&void 0!==b||(b="body"),a.grid.renderContainers[b]},d.prototype.showColumn=function(){this.colDef.visible=!0},d.prototype.getAggregationText=function(){var a=this;if(a.colDef.aggregationHideLabel)return"";if(a.colDef.aggregationLabel)return a.colDef.aggregationLabel;switch(a.colDef.aggregationType){case b.aggregationTypes.count:return c.getSafeText("aggregation.count");case b.aggregationTypes.sum:return c.getSafeText("aggregation.sum");case b.aggregationTypes.avg:return c.getSafeText("aggregation.avg");case b.aggregationTypes.min:return c.getSafeText("aggregation.min");case b.aggregationTypes.max:return c.getSafeText("aggregation.max");default:return""}},d.prototype.getCellTemplate=function(){var a=this;return a.cellTemplatePromise},d.prototype.getCompiledElementFn=function(){var a=this;return a.compiledElementFnDefer.promise},d}])}(),function(){angular.module("ui.grid").factory("GridOptions",["gridUtil","uiGridConstants",function(a,b){return{initialize:function(c){return c.onRegisterApi=c.onRegisterApi||angular.noop(),c.data=c.data||[],c.columnDefs=c.columnDefs||[],c.excludeProperties=c.excludeProperties||["$$hashKey"],c.enableRowHashing=c.enableRowHashing!==!1,c.rowIdentity=c.rowIdentity||function(b){return a.hashKey(b)},c.getRowIdentity=c.getRowIdentity||function(a){return a.$$hashKey},c.flatEntityAccess=c.flatEntityAccess===!0,c.showHeader="undefined"!=typeof c.showHeader?c.showHeader:!0,c.showHeader?c.headerRowHeight="undefined"!=typeof c.headerRowHeight?c.headerRowHeight:30:c.headerRowHeight=0,c.rowHeight=c.rowHeight||30,c.minRowsToShow="undefined"!=typeof c.minRowsToShow?c.minRowsToShow:10,c.showGridFooter=c.showGridFooter===!0,c.showColumnFooter=c.showColumnFooter===!0,c.columnFooterHeight="undefined"!=typeof c.columnFooterHeight?c.columnFooterHeight:30,c.gridFooterHeight="undefined"!=typeof c.gridFooterHeight?c.gridFooterHeight:30,c.columnWidth="undefined"!=typeof c.columnWidth?c.columnWidth:50,c.maxVisibleColumnCount="undefined"!=typeof c.maxVisibleColumnCount?c.maxVisibleColumnCount:200,c.virtualizationThreshold="undefined"!=typeof c.virtualizationThreshold?c.virtualizationThreshold:20,c.columnVirtualizationThreshold="undefined"!=typeof c.columnVirtualizationThreshold?c.columnVirtualizationThreshold:10,c.excessRows="undefined"!=typeof c.excessRows?c.excessRows:4,c.scrollThreshold="undefined"!=typeof c.scrollThreshold?c.scrollThreshold:4,c.excessColumns="undefined"!=typeof c.excessColumns?c.excessColumns:4,c.horizontalScrollThreshold="undefined"!=typeof c.horizontalScrollThreshold?c.horizontalScrollThreshold:2,c.aggregationCalcThrottle="undefined"!=typeof c.aggregationCalcThrottle?c.aggregationCalcThrottle:500,c.wheelScrollThrottle="undefined"!=typeof c.wheelScrollThrottle?c.wheelScrollThrottle:70,c.scrollDebounce="undefined"!=typeof c.scrollDebounce?c.scrollDebounce:300,c.enableSorting=c.enableSorting!==!1,c.enableFiltering=c.enableFiltering===!0,c.enableColumnMenus=c.enableColumnMenus!==!1,c.enableVerticalScrollbar="undefined"!=typeof c.enableVerticalScrollbar?c.enableVerticalScrollbar:b.scrollbars.ALWAYS,c.enableHorizontalScrollbar="undefined"!=typeof c.enableHorizontalScrollbar?c.enableHorizontalScrollbar:b.scrollbars.ALWAYS,c.enableMinHeightCheck=c.enableMinHeightCheck!==!1,c.minimumColumnSize="undefined"!=typeof c.minimumColumnSize?c.minimumColumnSize:10,c.rowEquality=c.rowEquality||function(a,b){return a===b},c.headerTemplate=c.headerTemplate||null,c.footerTemplate=c.footerTemplate||"ui-grid/ui-grid-footer",c.gridFooterTemplate=c.gridFooterTemplate||"ui-grid/ui-grid-grid-footer",c.rowTemplate=c.rowTemplate||"ui-grid/ui-grid-row",c.appScopeProvider=c.appScopeProvider||null, +c}}}])}(),function(){angular.module("ui.grid").factory("GridRenderContainer",["gridUtil","uiGridConstants",function(a,b){function c(a,b,c){var d=this;d.name=a,d.grid=b,d.visibleRowCache=[],d.visibleColumnCache=[],d.renderedRows=[],d.renderedColumns=[],d.prevScrollTop=0,d.prevScrolltopPercentage=0,d.prevRowScrollIndex=0,d.prevScrollLeft=0,d.prevScrollleftPercentage=0,d.prevColumnScrollIndex=0,d.columnStyles="",d.viewportAdjusters=[],d.hasHScrollbar=!1,d.hasVScrollbar=!1,d.canvasHeightShouldUpdate=!0,d.$$canvasHeight=0,c&&angular.isObject(c)&&angular.extend(d,c),b.registerStyleComputation({priority:5,func:function(){return d.updateColumnWidths(),d.columnStyles}})}return c.prototype.reset=function(){this.visibleColumnCache.length=0,this.visibleRowCache.length=0,this.renderedRows.length=0,this.renderedColumns.length=0},c.prototype.containsColumn=function(a){return-1!==this.visibleColumnCache.indexOf(a)},c.prototype.minRowsToRender=function(){for(var a=this,b=0,c=0,d=a.getViewportHeight(),e=a.visibleRowCache.length-1;d>c&&e>=0;e--)c+=a.visibleRowCache[e].height,b++;return b},c.prototype.minColumnsToRender=function(){for(var a=this,b=this.getViewportWidth(),c=0,d=0,e=0;ed)d+=f.drawnWidth?f.drawnWidth:0,c++;else{for(var g=0,h=e;h>=e-c;h--)g+=a.visibleColumnCache[h].drawnWidth?a.visibleColumnCache[h].drawnWidth:0;b>g&&c++}}return c},c.prototype.getVisibleRowCount=function(){return this.visibleRowCache.length},c.prototype.registerViewportAdjuster=function(a){this.viewportAdjusters.push(a)},c.prototype.removeViewportAdjuster=function(a){var b=this.viewportAdjusters.indexOf(a);b>-1&&this.viewportAdjusters.splice(b,1)},c.prototype.getViewportAdjustment=function(){var a=this,b={height:0,width:0};return a.viewportAdjusters.forEach(function(a){b=a.call(this,b)}),b},c.prototype.getMargin=function(a){var b=this,c=0;return b.viewportAdjusters.forEach(function(b){var d=b.call(this,{height:0,width:0});d.side&&d.side===a&&(c+=-1*d.width)}),c},c.prototype.getViewportHeight=function(){var a=this,b=a.headerHeight?a.headerHeight:a.grid.headerHeight,c=a.grid.gridHeight-b-a.grid.footerHeight,d=a.getViewportAdjustment();return c+=d.height},c.prototype.getViewportWidth=function(){var a=this,b=a.grid.gridWidth,c=a.getViewportAdjustment();return b+=c.width},c.prototype.getHeaderViewportWidth=function(){var a=this.getViewportWidth();return a},c.prototype.getCanvasHeight=function(){var a=this;if(!a.canvasHeightShouldUpdate)return a.$$canvasHeight;var b=a.$$canvasHeight;return a.$$canvasHeight=0,a.visibleRowCache.forEach(function(b){a.$$canvasHeight+=b.height}),a.canvasHeightShouldUpdate=!1,a.grid.api.core.raise.canvasHeightChanged(b,a.$$canvasHeight),a.$$canvasHeight},c.prototype.getVerticalScrollLength=function(){return this.getCanvasHeight()-this.getViewportHeight()+this.grid.scrollbarHeight},c.prototype.getCanvasWidth=function(){var a=this,b=a.canvasWidth;return b},c.prototype.setRenderedRows=function(a){this.renderedRows.length=a.length;for(var b=0;b0&&(this.grid.scrollDirection=b.scrollDirection.DOWN),0>d&&(this.grid.scrollDirection=b.scrollDirection.UP);var e=this.getVerticalScrollLength();return c=a/e,c>1&&(c=1),0>c&&(c=0),this.adjustScrollVertical(a,c),c}},c.prototype.scrollHorizontal=function(a){var c=-1;if(a!==this.prevScrollLeft){var d=a-this.prevScrollLeft;d>0&&(this.grid.scrollDirection=b.scrollDirection.RIGHT),0>d&&(this.grid.scrollDirection=b.scrollDirection.LEFT);var e=this.canvasWidth-this.getViewportWidth();return c=0!==e?a/e:0,this.adjustScrollHorizontal(a,c),c}},c.prototype.adjustScrollVertical=function(a,b,c){(this.prevScrollTop!==a||c)&&("undefined"!=typeof a&&void 0!==a&&null!==a||(a=(this.getCanvasHeight()-this.getViewportHeight())*b),this.adjustRows(a,b,!1),this.prevScrollTop=a,this.prevScrolltopPercentage=b,this.grid.queueRefresh())},c.prototype.adjustScrollHorizontal=function(a,b,c){(this.prevScrollLeft!==a||c)&&("undefined"!=typeof a&&void 0!==a&&null!==a||(a=(this.getCanvasWidth()-this.getViewportWidth())*b),this.adjustColumns(a,b),this.prevScrollLeft=a,this.prevScrollleftPercentage=b,this.grid.queueRefresh())},c.prototype.adjustRows=function(a,b,c){var d=this,e=d.minRowsToRender(),f=d.visibleRowCache,g=f.length-e;"undefined"!=typeof b&&null!==b||!a||(b=a/d.getVerticalScrollLength());var h=Math.ceil(Math.min(g,g*b));h>g&&(h=g);var i=[];if(f.length>d.grid.options.virtualizationThreshold){if("undefined"!=typeof a&&null!==a){if(!d.grid.suppressParentScrollDown&&d.prevScrollToph)return;if(!d.grid.suppressParentScrollUp&&d.prevScrollTop>a&&h>d.prevRowScrollIndex-d.grid.options.scrollThreshold&&g>h)return}var j={},k={};j=Math.max(0,h-d.grid.options.excessRows),k=Math.min(f.length,h+e+d.grid.options.excessRows),i=[j,k]}else{var l=d.visibleRowCache.length;i=[0,Math.max(l,e+d.grid.options.excessRows)]}d.updateViewableRowRange(i),d.prevRowScrollIndex=h},c.prototype.adjustColumns=function(a,b){var c=this,d=c.minColumnsToRender(),e=c.visibleColumnCache,f=e.length-d;if(("undefined"==typeof b||null===b)&&a){var g=c.getCanvasWidth()-c.getViewportWidth();b=a/g}var h=Math.ceil(Math.min(f,f*b));h>f&&(h=f);var i=[];if(e.length>c.grid.options.columnVirtualizationThreshold&&c.getCanvasWidth()>c.getViewportWidth()){var j=Math.max(0,h-c.grid.options.excessColumns),k=Math.min(e.length,h+d+c.grid.options.excessColumns);i=[j,k]}else{var l=c.visibleColumnCache.length;i=[0,Math.max(l,d+c.grid.options.excessColumns)]}c.updateViewableColumnRange(i),c.prevColumnScrollIndex=h},c.prototype.updateViewableRowRange=function(a){var b=this.visibleRowCache.slice(a[0],a[1]);this.currentTopRow=a[0],this.setRenderedRows(b)},c.prototype.updateViewableColumnRange=function(a){var b=this.visibleColumnCache.slice(a[0],a[1]);this.currentFirstColumn=a[0],this.setRenderedColumns(b)},c.prototype.headerCellWrapperStyle=function(){var a=this;if(0!==a.currentFirstColumn){var b=a.columnOffset;return a.grid.isRTL()?{"margin-right":b+"px"}:{"margin-left":b+"px"}}return null},c.prototype.updateColumnWidths=function(){var b=this,c=[],d=0,e=0,f="",g=b.grid.getViewportWidth()-b.grid.scrollbarWidth,h=[];angular.forEach(b.grid.renderContainers,function(a,b){h=h.concat(a.visibleColumnCache)}),h.forEach(function(b,f){var h=0;b.visible&&(angular.isNumber(b.width)?(h=parseInt(b.width,10),e+=h,b.drawnWidth=h):a.endsWith(b.width,"%")?(h=parseInt(parseInt(b.width.replace(/%/g,""),10)/100*g),h>b.maxWidth&&(h=b.maxWidth),h0){var j=i/d;c.forEach(function(a){var b=parseInt(a.width.length*j,10);b>a.maxWidth&&(b=a.maxWidth),b0&&(a.drawnWidth++,e++,l--,m=!0)},l=g-e,m=!0;l>0&&m;)m=!1,c.forEach(k);var n=function(a){a.drawnWidth>a.minWidth&&o>0&&(a.drawnWidth--,e--,o--,m=!0)},o=e-g;for(m=!0;o>0&&m;)m=!1,c.forEach(n);var p=0;b.visibleColumnCache.forEach(function(a){a.visible&&(p+=a.drawnWidth)}),h.forEach(function(a){f+=a.getColClassDefinition()}),b.canvasWidth=p,this.columnStyles=f},c.prototype.needsHScrollbarPlaceholder=function(){return this.grid.options.enableHorizontalScrollbar&&!this.hasHScrollbar&&!this.grid.disableScrolling},c.prototype.getViewportStyle=function(){var a=this,c={};return a.hasHScrollbar=!1,a.hasVScrollbar=!1,a.grid.disableScrolling?(c["overflow-x"]="hidden",c["overflow-y"]="hidden",c):("body"===a.name?(a.hasHScrollbar=a.grid.options.enableHorizontalScrollbar!==b.scrollbars.NEVER,a.grid.isRTL()?a.grid.hasLeftContainerColumns()||(a.hasVScrollbar=a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER):a.grid.hasRightContainerColumns()||(a.hasVScrollbar=a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER)):"left"===a.name?a.hasVScrollbar=a.grid.isRTL()?a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER:!1:a.hasVScrollbar=a.grid.isRTL()?!1:a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER,c["overflow-x"]=a.hasHScrollbar?"scroll":"hidden",c["overflow-y"]=a.hasVScrollbar?"scroll":"hidden",c)},c}])}(),function(){angular.module("ui.grid").factory("GridRow",["gridUtil",function(a){function b(b,c,d){this.grid=d,this.entity=b,this.uid=a.nextUid(),this.visible=!0,this.$$height=d.options.rowHeight}return Object.defineProperty(b.prototype,"height",{get:function(){return this.$$height},set:function(a){a!==this.$$height&&(this.grid.updateCanvasHeight(),this.$$height=a)}}),b.prototype.getQualifiedColField=function(a){return"row."+this.getEntityQualifiedColField(a)},b.prototype.getEntityQualifiedColField=function(b){return a.preEval("entity."+b.field)},b.prototype.setRowInvisible=function(a){a&&a.setThisRowInvisible&&a.setThisRowInvisible("user")},b.prototype.clearRowInvisible=function(a){a&&a.clearThisRowInvisible&&a.clearThisRowInvisible("user")},b.prototype.setThisRowInvisible=function(a,b){this.invisibleReason||(this.invisibleReason={}),this.invisibleReason[a]=!0,this.evaluateRowVisibility(b)},b.prototype.clearThisRowInvisible=function(a,b){"undefined"!=typeof this.invisibleReason&&delete this.invisibleReason[a],this.evaluateRowVisibility(b)},b.prototype.evaluateRowVisibility=function(a){var b=!0;"undefined"!=typeof this.invisibleReason&&angular.forEach(this.invisibleReason,function(a,c){a&&(b=!1)}),"undefined"!=typeof this.visible&&this.visible===b||(this.visible=b,a||(this.grid.queueGridRefresh(),this.grid.api.core.raise.rowsVisibleChanged(this)))},b}])}(),function(){"use strict";angular.module("ui.grid").factory("GridRowColumn",["$parse","$filter",function(a,b){var c=function d(a,b){if(!(this instanceof d))throw"Using GridRowColumn as a function insead of as a constructor. Must be called with `new` keyword";this.row=a,this.col=b};return c.prototype.getIntersectionValueRaw=function(){var b=a(this.row.getEntityQualifiedColField(this.col)),c=this.row;return b(c)},c.prototype.getIntersectionValueFiltered=function(){var a=this.getIntersectionValueRaw();if(this.col.cellFilter&&""!==this.col.cellFilter){var c=function(a){try{return b(a)}catch(c){return null}},d=c(this.col.cellFilter);if(d)a=d(a);else{var e,f=/([^:]*):([^:]*):?([\s\S]+)?/;null!==(e=f.exec(this.col.cellFilter))&&(a=b(e[1])(a,e[2],e[3]))}}return a},c}])}(),function(){angular.module("ui.grid").factory("ScrollEvent",["gridUtil",function(a){function b(b,c,d,e){var f=this;if(!b)throw new Error("grid argument is required");f.grid=b,f.source=e,f.withDelay=!0,f.sourceRowContainer=c,f.sourceColContainer=d,f.newScrollLeft=null,f.newScrollTop=null,f.x=null,f.y=null,f.verticalScrollLength=-9999999,f.horizontalScrollLength=-999999,f.fireThrottledScrollingEvent=a.throttle(function(a){f.grid.scrollContainers(a,f)},f.grid.options.wheelScrollThrottle,{trailing:!0})}return b.prototype.getNewScrollLeft=function(b,c){var d=this;if(!d.newScrollLeft){var e,f=b.getCanvasWidth()-b.getViewportWidth(),g=a.normalizeScrollLeft(c,d.grid);if("undefined"!=typeof d.x.percentage&&void 0!==d.x.percentage)e=d.x.percentage;else{if("undefined"==typeof d.x.pixels||void 0===d.x.pixels)throw new Error("No percentage or pixel value provided for scroll event X axis");e=d.x.percentage=(g+d.x.pixels)/f}return Math.max(0,e*f)}return d.newScrollLeft},b.prototype.getNewScrollTop=function(a,b){var c=this;if(!c.newScrollTop){var d,e=a.getVerticalScrollLength(),f=b[0].scrollTop;if("undefined"!=typeof c.y.percentage&&void 0!==c.y.percentage)d=c.y.percentage;else{if("undefined"==typeof c.y.pixels||void 0===c.y.pixels)throw new Error("No percentage or pixel value provided for scroll event Y axis");d=c.y.percentage=(f+c.y.pixels)/e}return Math.max(0,d*e)}return c.newScrollTop},b.prototype.atTop=function(a){return this.y&&(0===this.y.percentage||this.verticalScrollLength<0)&&0===a},b.prototype.atBottom=function(a){return this.y&&(1===this.y.percentage||0===this.verticalScrollLength)&&a>0},b.prototype.atLeft=function(a){return this.x&&(0===this.x.percentage||this.horizontalScrollLength<0)&&0===a},b.prototype.atRight=function(a){return this.x&&(1===this.x.percentage||0===this.horizontalScrollLength)&&a>0},b.Sources={ViewPortScroll:"ViewPortScroll",RenderContainerMouseWheel:"RenderContainerMouseWheel",RenderContainerTouchMove:"RenderContainerTouchMove",Other:99},b}])}(),function(){"use strict";angular.module("ui.grid").service("gridClassFactory",["gridUtil","$q","$compile","$templateCache","uiGridConstants","Grid","GridColumn","GridRow",function(a,b,c,d,e,f,g,h){var i={createGrid:function(d){d="undefined"!=typeof d?d:{},d.id=a.newId();var e=new f(d);if(e.options.rowTemplate){var g=b.defer();e.getRowTemplateFn=g.promise,a.getTemplate(e.options.rowTemplate).then(function(a){var b=c(a);g.resolve(b)},function(a){throw new Error("Couldn't fetch/use row template '"+e.options.rowTemplate+"'")})}return e.registerColumnBuilder(i.defaultColumnBuilder),e.registerRowBuilder(i.rowTemplateAssigner),e.registerRowsProcessor(function(a){return a.forEach(function(a){a.evaluateRowVisibility(!0)},50),a}),e.registerColumnsProcessor(function(a){return a.forEach(function(a){a.visible=!0}),a},50),e.registerColumnsProcessor(function(a){return a.forEach(function(a){a.colDef.visible===!1&&(a.visible=!1)}),a},50),e.registerRowsProcessor(e.searchRows,100),e.options.externalSort&&angular.isFunction(e.options.externalSort)?e.registerRowsProcessor(e.options.externalSort,200):e.registerRowsProcessor(e.sortByColumn,200),e},defaultColumnBuilder:function(c,d,f){var g=[],h=function(b,f,h,i,j){c[b]?d[f]=c[b]:d[f]=h,g.push(a.getTemplate(d[f]).then(function(a){angular.isFunction(a)&&(a=a());var c="cellTooltip"===j?"col.cellTooltip(row,col)":"col.headerTooltip(col)";j&&d[j]===!1?a=a.replace(e.TOOLTIP,""):j&&d[j]&&(a=a.replace(e.TOOLTIP,'title="{{'+c+' CUSTOM_FILTERS }}"')),i?d[b]=a.replace(e.CUSTOM_FILTERS,function(){return d[i]?"|"+d[i]:""}):d[b]=a},function(a){throw new Error("Couldn't fetch/use colDef."+b+" '"+c[b]+"'")}))};return h("cellTemplate","providedCellTemplate","ui-grid/uiGridCell","cellFilter","cellTooltip"),d.cellTemplatePromise=g[0],h("headerCellTemplate","providedHeaderCellTemplate","ui-grid/uiGridHeaderCell","headerCellFilter","headerTooltip"),h("footerCellTemplate","providedFooterCellTemplate","ui-grid/uiGridFooterCell","footerCellFilter"),h("filterHeaderTemplate","providedFilterHeaderTemplate","ui-grid/ui-grid-filter"),d.compiledElementFnDefer=b.defer(),b.all(g)},rowTemplateAssigner:function(d){var e=this;if(d.rowTemplate){var f=b.defer();d.getRowTemplateFn=f.promise,a.getTemplate(d.rowTemplate).then(function(a){var b=c(a);f.resolve(b)},function(a){throw new Error("Couldn't fetch/use row template '"+d.rowTemplate+"'")})}else d.rowTemplate=e.options.rowTemplate,d.getRowTemplateFn=e.getRowTemplateFn;return d.getRowTemplateFn}};return i}])}(),function(){function a(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var b=angular.module("ui.grid");b.service("rowSearcher",["gridUtil","uiGridConstants",function(b,c){var d=c.filter.CONTAINS,e={};return e.getTerm=function(a){if("undefined"==typeof a.term)return a.term;var b=a.term;return"string"==typeof b&&(b=b.trim()),b},e.stripTerm=function(b){var c=e.getTerm(b);return"string"==typeof c?a(c.replace(/(^\*|\*$)/g,"")):c},e.guessCondition=function(a){if("undefined"==typeof a.term||!a.term)return d;var b=e.getTerm(a);if(/\*/.test(b)){var c="";a.flags&&a.flags.caseSensitive||(c+="i");var f=b.replace(/(\\)?\*/g,function(a,b){return b?a:"[\\s\\S]*?"});return new RegExp("^"+f+"$",c)}return d},e.setupFilters=function(a){for(var d=[],f=a.length,g=0;f>g;g++){var h=a[g];if(h.noTerm||!b.isNullOrUndefined(h.term)){var i={},j="";h.flags&&h.flags.caseSensitive||(j+="i"),b.isNullOrUndefined(h.term)||(i.term=e.stripTerm(h)),h.condition?i.condition=h.condition:i.condition=e.guessCondition(h),i.flags=angular.extend({caseSensitive:!1,date:!1},h.flags),i.condition===c.filter.STARTS_WITH&&(i.startswithRE=new RegExp("^"+i.term,j)),i.condition===c.filter.ENDS_WITH&&(i.endswithRE=new RegExp(i.term+"$",j)),i.condition===c.filter.CONTAINS&&(i.containsRE=new RegExp(i.term,j)),i.condition===c.filter.EXACT&&(i.exactRE=new RegExp("^"+i.term+"$",j)),d.push(i)}}return d},e.runColumnFilter=function(a,b,d,e){var f,g=typeof e.condition,h=e.term;if(f=d.filterCellFiltered?a.getCellDisplayValue(b,d):a.getCellValue(b,d),e.condition instanceof RegExp)return e.condition.test(f);if("function"===g)return e.condition(h,f,b,d);if(e.startswithRE)return e.startswithRE.test(f);if(e.endswithRE)return e.endswithRE.test(f);if(e.containsRE)return e.containsRE.test(f);if(e.exactRE)return e.exactRE.test(f);if(e.condition===c.filter.NOT_EQUAL){var i=new RegExp("^"+h+"$");return!i.exec(f)}if("number"==typeof f&&"string"==typeof h){var j=parseFloat(h.replace(/\\\./,".").replace(/\\\-/,"-"));isNaN(j)||(h=j)}return e.flags.date===!0&&(f=new Date(f),h=new Date(h.replace(/\\/g,""))),e.condition===c.filter.GREATER_THAN?f>h:e.condition===c.filter.GREATER_THAN_OR_EQUAL?f>=h:e.condition===c.filter.LESS_THAN?h>f:e.condition===c.filter.LESS_THAN_OR_EQUAL?h>=f:!0},e.searchColumn=function(a,b,c,d){if(a.options.useExternalFiltering)return!0;for(var f=d.length,g=0;f>g;g++){var h=d[g],i=e.runColumnFilter(a,b,c,h);if(!i)return!1}return!0},e.search=function(a,c,d){if(c){if(!a.options.enableFiltering)return c;for(var f=[],g=d.length,h=function(a){var c=!1;return a.forEach(function(a){(!b.isNullOrUndefined(a.term)&&""!==a.term||a.noTerm)&&(c=!0)}),c},i=0;g>i;i++){var j=d[i];"undefined"!=typeof j.filters&&h(j.filters)&&f.push({col:j,filters:e.setupFilters(j.filters)})}if(f.length>0){for(var k=function(a,b,c,d){b.visible&&!e.searchColumn(a,b,c,d)&&(b.visible=!1)},l=function(a,b){for(var d=c.length,e=0;d>e;e++)k(a,c[e],b.col,b.filters)},m=f.length,n=0;m>n;n++)l(a,f[n]);a.api.core.raise.rowsVisibleChanged&&a.api.core.raise.rowsVisibleChanged()}return c}},e}])}(),function(){var a=angular.module("ui.grid");a.service("rowSorter",["$parse","uiGridConstants",function(a,b){var c="("+b.CURRENCY_SYMBOLS.map(function(a){return"\\"+a}).join("|")+")?",d=(new RegExp("^[-+]?"+c+"[\\d,.]+"+c+"%?$"),{colSortFnCache:{}});return d.guessSortFn=function(a){switch(a){case"number":return d.sortNumber;case"numberStr":return d.sortNumberStr;case"boolean":return d.sortBool;case"string":return d.sortAlpha;case"date":return d.sortDate;case"object":return d.basicSort;default:throw new Error("No sorting function found for type:"+a)}},d.handleNulls=function(a,b){if(!a&&0!==a&&a!==!1||!b&&0!==b&&b!==!1){if(!a&&0!==a&&a!==!1&&!b&&0!==b&&b!==!1)return 0;if(!a&&0!==a&&a!==!1)return 1;if(!b&&0!==b&&b!==!1)return-1}return null},d.basicSort=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a===b?0:b>a?-1:1},d.sortNumber=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a-b},d.sortNumberStr=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;var e,f,g=!1,h=!1;return e=parseFloat(a.replace(/[^0-9.-]/g,"")),isNaN(e)&&(g=!0),f=parseFloat(b.replace(/[^0-9.-]/g,"")),isNaN(f)&&(h=!0),g&&h?0:g?1:h?-1:e-f},d.sortAlpha=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;var e=a.toString().toLowerCase(),f=b.toString().toLowerCase();return e===f?0:e.localeCompare(f)},d.sortDate=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;a instanceof Date||(a=new Date(a)),b instanceof Date||(b=new Date(b));var e=a.getTime(),f=b.getTime();return e===f?0:f>e?-1:1},d.sortBool=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a&&b?0:a||b?a?1:-1:0},d.getSortFn=function(a,b,c){var e;return d.colSortFnCache[b.colDef.name]?e=d.colSortFnCache[b.colDef.name]:void 0!==b.sortingAlgorithm?(e=b.sortingAlgorithm,d.colSortFnCache[b.colDef.name]=b.sortingAlgorithm):b.sortCellFiltered&&b.cellFilter?(e=d.sortAlpha,d.colSortFnCache[b.colDef.name]=e):(e=d.guessSortFn(b.colDef.type),e?d.colSortFnCache[b.colDef.name]=e:e=d.sortAlpha),e},d.prioritySort=function(a,b){return void 0!==a.sort.priority&&void 0!==b.sort.priority?a.sort.priorityf;f+=2){var i=h[f];if("margin"===c){var j=parseFloat(e[c+i]);isNaN(j)||(g+=j)}if(d){if("content"===c){var k=parseFloat(e["padding"+i]);isNaN(k)||(g-=k)}if("margin"!==c){var l=parseFloat(e["border"+i+"Width"]);isNaN(l)||(g-=l)}}else{var m=parseFloat(e["padding"+i]);if(isNaN(m)||(g+=m),"padding"!==c){var n=parseFloat(e["border"+i+"Width"]);isNaN(n)||(g+=n)}}}return g}function c(c,d,e){var f,h=!0,i=a(c),j="border-box"===i.boxSizing;if(0>=f||null==f){if(f=i[d],(0>f||null==f)&&(f=c.style[d]),g.test(f))return f;h=j&&!0,f=parseFloat(f)||0}var k=f+b(c,d,e||(j?"border":"content"),h,i);return k}function d(b){b=angular.element(b)[0];var c=b.parentElement;return c||(c=document.getElementsByTagName("body")[0]),parseInt(a(c).fontSize)||parseInt(a(b).fontSize)||16}var e,f=angular.module("ui.grid");"function"!=typeof Function.prototype.bind&&(e=function(){var a=Array.prototype.slice;return function(b){var c=this,d=a.call(arguments,1);return d.length?function(){return arguments.length?c.apply(b,d.concat(a.call(arguments))):c.apply(b,d)}:function(){return arguments.length?c.apply(b,arguments):c.call(b)}}});var g=new RegExp("^("+/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source+")(?!px)[a-z%]+$","i"),h=/^(block|none|table(?!-c[ea]).+)/,i={position:"absolute",visibility:"hidden",display:"block"},j=["0","0","0","0"],k="uiGrid-";f.service("gridUtil",["$log","$window","$document","$http","$templateCache","$timeout","$interval","$injector","$q","$interpolate","uiGridConstants",function(f,g,l,m,n,o,p,q,r,s,t){function u(a,b){var c=angular.element(this),d=0,e=0,f=0,g=0;if(b.originalEvent&&(b=b.originalEvent),"detail"in b&&(f=-1*b.detail),"wheelDelta"in b&&(f=b.wheelDelta),"wheelDeltaY"in b&&(f=b.wheelDeltaY),"wheelDeltaX"in b&&(e=-1*b.wheelDeltaX),"axis"in b&&b.axis===b.HORIZONTAL_AXIS&&(e=-1*f,f=0),d=0===f?e:f,"deltaY"in b&&(f=-1*b.deltaY,d=f),"deltaX"in b&&(e=b.deltaX,0===f&&(d=-1*e)),0!==f||0!==e){if(1===b.deltaMode){var h=c.data("mousewheel-line-height");d*=h,f*=h,e*=h}else if(2===b.deltaMode){var i=c.data("mousewheel-page-height");d*=i,f*=i,e*=i}g=Math.max(Math.abs(f),Math.abs(e)),(!z||z>g)&&(z=g,w(b,g)&&(z/=40)),d=Math[d>=1?"floor":"ceil"](d/z),e=Math[e>=1?"floor":"ceil"](e/z),f=Math[f>=1?"floor":"ceil"](f/z),b.deltaMode=0;var j={originalEvent:b,deltaX:e,deltaY:f,deltaFactor:z,preventDefault:function(){b.preventDefault()},stopPropagation:function(){b.stopPropagation()}};y&&clearTimeout(y),y=setTimeout(v,200),a.call(c[0],j)}}function v(){z=null}function w(a,b){return"mousewheel"===a.type&&b%120===0}var x={augmentWidthOrHeight:b,getStyles:a,createBoundedWrapper:function(a,b){return function(){return b.apply(a,arguments)}},readableColumnName:function(a){return"undefined"==typeof a||void 0===a||null===a?a:("string"!=typeof a&&(a=String(a)),a.replace(/_+/g," ").replace(/^[A-Z]+$/,function(a){return angular.lowercase(angular.uppercase(a.charAt(0))+a.slice(1))}).replace(/([\w\u00C0-\u017F]+)/g,function(a){return angular.uppercase(a.charAt(0))+a.slice(1)}).replace(/(\w+?(?=[A-Z]))/g,"$1 "))},getColumnsFromData:function(a,b){var c=[];if(!a||"undefined"==typeof a[0]||void 0===a[0])return[];angular.isUndefined(b)&&(b=[]);var d=a[0];return angular.forEach(d,function(a,d){-1===b.indexOf(d)&&c.push({name:d})}),c},newId:function(){var a=(new Date).getTime();return function(){return a+=1}}(),getTemplate:function(a){if(n.get(a))return x.postProcessTemplate(n.get(a));if(a.hasOwnProperty("then"))return a.then(x.postProcessTemplate);try{if(angular.element(a).length>0)return r.when(a).then(x.postProcessTemplate)}catch(b){}return x.logDebug("fetching url",a),m({method:"GET",url:a}).then(function(b){var c=b.data.trim();return n.put(a,c),c},function(b){throw new Error("Could not get template "+a+": "+b)}).then(x.postProcessTemplate)},postProcessTemplate:function(a){var b=s.startSymbol(),c=s.endSymbol();return"{{"===b&&"}}"===c||(a=a.replace(/\{\{/g,b),a=a.replace(/\}\}/g,c)),r.when(a)},guessType:function(a){var b=typeof a;switch(b){case"number":case"boolean":case"string":return b;default:return angular.isDate(a)?"date":"object"}},elementWidth:function(a){},elementHeight:function(a){},getScrollbarWidth:function(){var a=document.createElement("div");a.style.visibility="hidden",a.style.width="100px",a.style.msOverflowStyle="scrollbar",document.body.appendChild(a);var b=a.offsetWidth;a.style.overflow="scroll";var c=document.createElement("div");c.style.width="100%",a.appendChild(c);var d=c.offsetWidth;return a.parentNode.removeChild(a),b-d},swap:function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},fakeElement:function(a,b,c,d){var e,f,g=angular.element(a).clone()[0];for(f in b)g.style[f]=b[f];return angular.element(document.body).append(g),e=c.call(g,g),angular.element(g).remove(),e},normalizeWheelEvent:function(a){var b,c,d,e=a||window.event,f=([].slice.call(arguments,1),0),g=0,h=0,i=0,j=0;return e.originalEvent&&(e=e.originalEvent),e.wheelDelta&&(f=e.wheelDelta),e.detail&&(f=-1*e.detail),h=f,void 0!==e.axis&&e.axis===e.HORIZONTAL_AXIS&&(h=0,g=-1*f),e.deltaY&&(h=-1*e.deltaY,f=h),e.deltaX&&(g=e.deltaX,f=-1*g),void 0!==e.wheelDeltaY&&(h=e.wheelDeltaY),void 0!==e.wheelDeltaX&&(g=e.wheelDeltaX),i=Math.abs(f),(!b||b>i)&&(b=i),j=Math.max(Math.abs(h),Math.abs(g)),(!c||c>j)&&(c=j),d=f>0?"floor":"ceil",f=Math[d](f/b),g=Math[d](g/c),h=Math[d](h/c),{delta:f,deltaX:g,deltaY:h}},isTouchEnabled:function(){var a;return("ontouchstart"in g||g.DocumentTouch&&l instanceof DocumentTouch)&&(a=!0),a},isNullOrUndefined:function(a){return void 0===a||null===a},endsWith:function(a,b){return a&&b&&"string"==typeof a?-1!==a.indexOf(b,a.length-b.length):!1},arrayContainsObjectWithProperty:function(a,b,c){var d=!1;return angular.forEach(a,function(a){a[b]===c&&(d=!0)}),d},numericAndNullSort:function(a,b){return null===a?1:null===b?-1:null===a&&null===b?0:a-b},disableAnimations:function(a){var b;try{b=q.get("$animate"),angular.version.major>1||1===angular.version.major&&angular.version.minor>=4?b.enabled(a,!1):b.enabled(!1,a)}catch(c){}},enableAnimations:function(a){var b;try{return b=q.get("$animate"),angular.version.major>1||1===angular.version.major&&angular.version.minor>=4?b.enabled(a,!0):b.enabled(!0,a),b}catch(c){}},nextUid:function(){for(var a,b=j.length;b;){if(b--,a=j[b].charCodeAt(0),57===a)return j[b]="A",k+j.join("");if(90!==a)return j[b]=String.fromCharCode(a+1),k+j.join("");j[b]="0"}return j.unshift("0"),k+j.join("")},hashKey:function(a){var b,c=typeof a;return"object"===c&&null!==a?"function"==typeof(b=a.$$hashKey)?b=a.$$hashKey():"undefined"!=typeof a.$$hashKey&&a.$$hashKey?b=a.$$hashKey:void 0===b&&(b=a.$$hashKey=x.nextUid()):b=a,c+":"+b},resetUids:function(){j=["0","0","0"]},logError:function(a){t.LOG_ERROR_MESSAGES&&f.error(a)},logWarn:function(a){t.LOG_WARN_MESSAGES&&f.warn(a)},logDebug:function(){t.LOG_DEBUG_MESSAGES&&f.debug.apply(f,arguments)}};x.focus={queue:[],byId:function(a,b){this._purgeQueue();var c=o(function(){var c=(b&&b.id?b.id+"-":"")+a,d=g.document.getElementById(c);d?d.focus():x.logWarn("[focus.byId] Element id "+c+" was not found.")});return this.queue.push(c),c},byElement:function(a){if(!angular.isElement(a))return x.logWarn("Trying to focus on an element that isn't an element."),r.reject("not-element");a=angular.element(a),this._purgeQueue();var b=o(function(){a&&a[0].focus()});return this.queue.push(b),b},bySelector:function(a,b,c){var d=this;if(!angular.isElement(a))throw new Error("The parent element is not an element.");a=angular.element(a);var e=function(){var c=a[0].querySelector(b);return d.byElement(c)};if(this._purgeQueue(),c){var f=o(e);return this.queue.push(o(e)),f}return e()},_purgeQueue:function(){this.queue.forEach(function(a){o.cancel(a)}),this.queue=[]}},["width","height"].forEach(function(b){var d=angular.uppercase(b.charAt(0))+b.substr(1);x["element"+d]=function(d,e){var f=d;if(f&&"undefined"!=typeof f.length&&f.length&&(f=d[0]),f){var g=a(f);return 0===f.offsetWidth&&h.test(g.display)?x.swap(f,i,function(){return c(f,b,e)}):c(f,b,e)}return null},x["outerElement"+d]=function(a,b){return a?x["element"+d].call(this,a,b?"margin":"border"):null}}),x.closestElm=function(a,b){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var c;["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"].some(function(a){return"function"==typeof document.body[a]?(c=a,!0):!1});for(var d;null!==a;){if(d=a.parentElement,null!==d&&d[c](b))return d;a=d}return null},x.type=function(a){var b=Function.prototype.toString.call(a.constructor);return b.match(/function (.*?)\(/)[1]},x.getBorderSize=function(b,c){"undefined"!=typeof b.length&&b.length&&(b=b[0]);var d=a(b);c=c?"border"+c.charAt(0).toUpperCase()+c.slice(1):"border",c+="Width";var e=parseInt(d[c],10);return isNaN(e)?0:e},x.detectBrowser=function(){var a=g.navigator.userAgent,b={chrome:/chrome/i,safari:/safari/i,firefox:/firefox/i,ie:/internet explorer|trident\//i};for(var c in b)if(b[c].test(a))return c;return"unknown"},x.rtlScrollType=function B(){if(B.type)return B.type;var a=angular.element('
        A
        ')[0],b="reverse";return document.body.appendChild(a),a.scrollLeft>0?b="default":(a.scrollLeft=1,0===a.scrollLeft&&(b="negative")),angular.element(a).remove(),B.type=b,b},x.normalizeScrollLeft=function(a,b){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var c=a.scrollLeft;if(b.isRTL())switch(x.rtlScrollType()){case"default":return a.scrollWidth-c-a.clientWidth;case"negative":return Math.abs(c);case"reverse":return c}return c},x.denormalizeScrollLeft=function(a,b,c){if("undefined"!=typeof a.length&&a.length&&(a=a[0]),c.isRTL())switch(x.rtlScrollType()){case"default":var d=a.scrollWidth-a.clientWidth;return d-b;case"negative":return-1*b;case"reverse":return b}return b},x.preEval=function(a){var b=t.BRACKET_REGEXP.exec(a);if(b)return(b[1]?x.preEval(b[1]):b[1])+b[2]+(b[3]?x.preEval(b[3]):b[3]);a=a.replace(t.APOS_REGEXP,"\\'");var c=a.split(t.DOT_REGEXP),d=[c.shift()];return angular.forEach(c,function(a){d.push(a.replace(t.FUNC_REGEXP,"']$1"))}),d.join("['")},x.debounce=function(a,b,c){function d(){g=this,f=arguments;var d=function(){e=null,c||(h=a.apply(g,f))},i=c&&!e;return e&&o.cancel(e),e=o(d,b),i&&(h=a.apply(g,f)),h}var e,f,g,h;return d.cancel=function(){o.cancel(e), +e=null},d},x.throttle=function(a,b,c){function d(b){g=+new Date,a.apply(e,f),p(function(){h=null},0,1)}c=c||{};var e,f,g=0,h=null;return function(){if(e=this,f=arguments,null===h){var a=+new Date-g;a>b?d():c.trailing&&(h=p(d,b-a,1))}}},x.on={},x.off={},x._events={},x.addOff=function(a){x.off[a]=function(b,c){var d=x._events[a].indexOf(c);d>0&&x._events[a].removeAt(d)}};var y,z,A="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"];return x.on.mousewheel=function(a,b){if(a&&b){var c=angular.element(a);c.data("mousewheel-line-height",d(c)),c.data("mousewheel-page-height",x.elementHeight(c)),c.data("mousewheel-callbacks")||c.data("mousewheel-callbacks",{});var f=c.data("mousewheel-callbacks");f[b]=(Function.prototype.bind||e).call(u,c[0],b);for(var g=A.length;g;)c.on(A[--g],f[b])}},x.off.mousewheel=function(a,b){var c=angular.element(a),d=c.data("mousewheel-callbacks"),e=d[b];if(e)for(var f=A.length;f;)c.off(A[--f],e);delete d[b],0===Object.keys(d).length&&(c.removeData("mousewheel-line-height"),c.removeData("mousewheel-page-height"),c.removeData("mousewheel-callbacks"))},x}]),f.filter("px",function(){return function(a){return a.match(/^[\d\.]+$/)?a+"px":a}})}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){var b={aggregate:{label:"položky"},groupPanel:{description:"Přesuňte záhlaví zde pro vytvoření skupiny dle sloupce."},search:{placeholder:"Hledat...",showingItems:"Zobrazuji položky:",selectedItems:"Vybrané položky:",totalItems:"Celkem položek:",size:"Velikost strany:",first:"První strana",next:"Další strana",previous:"Předchozí strana",last:"Poslední strana"},menu:{text:"Vyberte sloupec:"},sort:{ascending:"Seřadit od A-Z",descending:"Seřadit od Z-A",remove:"Odebrat seřazení"},column:{hide:"Schovat sloupec"},aggregation:{count:"celkem řádků: ",sum:"celkem: ",avg:"avg: ",min:"min.: ",max:"max.: "},pinning:{pinLeft:"Zamknout vlevo",pinRight:"Zamknout vpravo",unpin:"Odemknout"},gridMenu:{columns:"Sloupce:",importerTitle:"Importovat soubor",exporterAllAsCsv:"Exportovat všechna data do csv",exporterVisibleAsCsv:"Exportovat viditelná data do csv",exporterSelectedAsCsv:"Exportovat vybraná data do csv",exporterAllAsPdf:"Exportovat všechna data do pdf",exporterVisibleAsPdf:"Exportovat viditelná data do pdf",exporterSelectedAsPdf:"Exportovat vybraná data do pdf",clearAllFilters:"Odstranit všechny filtry"},importer:{noHeaders:"Názvy sloupců se nepodařilo získat, obsahuje soubor záhlaví?",noObjects:"Data se nepodařilo zpracovat, obsahuje soubor řádky mimo záhlaví?",invalidCsv:"Soubor nelze zpracovat, jedná se o CSV?",invalidJson:"Soubor nelze zpracovat, je to JSON?",jsonNotArray:"Soubor musí obsahovat json. Ukončuji.."},pagination:{sizes:"položek na stránku",totalItems:"položek"},grouping:{group:"Seskupit",ungroup:"Odebrat seskupení",aggregate_count:"Agregace: Count",aggregate_sum:"Agregace: Sum",aggregate_max:"Agregace: Max",aggregate_min:"Agregace: Min",aggregate_avg:"Agregace: Avg",aggregate_remove:"Agregace: Odebrat"}};return a.add("cs",b),a.add("cz",b),a.add("cs-cz",b),a.add("cs-CZ",b),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("da",{aggregate:{label:"artikler"},groupPanel:{description:"Grupér rækker udfra en kolonne ved at trække dens overskift hertil."},search:{placeholder:"Søg...",showingItems:"Viste rækker:",selectedItems:"Valgte rækker:",totalItems:"Rækker totalt:",size:"Side størrelse:",first:"Første side",next:"Næste side",previous:"Forrige side",last:"Sidste side"},menu:{text:"Vælg kolonner:"},sort:{ascending:"Sorter stigende",descending:"Sorter faldende",none:"Sorter ingen",remove:"Fjern sortering"},column:{hide:"Skjul kolonne"},aggregation:{count:"antal rækker: ",sum:"sum: ",avg:"gns: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("de",{headerCell:{aria:{defaultFilterLabel:"Filter für Spalte",removeFilter:"Filter löschen",columnMenuButtonLabel:"Spaltenmenü"},priority:"Priorität:",filterLabel:"Filter für Spalte: "},aggregate:{label:"Eintrag"},groupPanel:{description:"Ziehen Sie eine Spaltenüberschrift hierhin, um nach dieser Spalte zu gruppieren."},search:{placeholder:"Suche...",showingItems:"Zeige Einträge:",selectedItems:"Ausgewählte Einträge:",totalItems:"Einträge gesamt:",size:"Einträge pro Seite:",first:"Erste Seite",next:"Nächste Seite",previous:"Vorherige Seite",last:"Letzte Seite"},menu:{text:"Spalten auswählen:"},sort:{ascending:"aufsteigend sortieren",descending:"absteigend sortieren",none:"keine Sortierung",remove:"Sortierung zurücksetzen"},column:{hide:"Spalte ausblenden"},aggregation:{count:"Zeilen insgesamt: ",sum:"gesamt: ",avg:"Durchschnitt: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Links anheften",pinRight:"Rechts anheften",unpin:"Lösen"},columnMenu:{close:"Schließen"},gridMenu:{aria:{buttonLabel:"Tabellenmenü"},columns:"Spalten:",importerTitle:"Datei importieren",exporterAllAsCsv:"Alle Daten als CSV exportieren",exporterVisibleAsCsv:"sichtbare Daten als CSV exportieren",exporterSelectedAsCsv:"markierte Daten als CSV exportieren",exporterAllAsPdf:"Alle Daten als PDF exportieren",exporterVisibleAsPdf:"sichtbare Daten als PDF exportieren",exporterSelectedAsPdf:"markierte Daten als CSV exportieren",clearAllFilters:"Alle Filter zurücksetzen"},importer:{noHeaders:"Es konnten keine Spaltennamen ermittelt werden. Sind in der Datei Spaltendefinitionen enthalten?",noObjects:"Es konnten keine Zeileninformationen gelesen werden, Sind in der Datei außer den Spaltendefinitionen auch Daten enthalten?",invalidCsv:"Die Datei konnte nicht eingelesen werden, ist es eine gültige CSV-Datei?",invalidJson:"Die Datei konnte nicht eingelesen werden. Enthält sie gültiges JSON?",jsonNotArray:"Die importierte JSON-Datei muß ein Array enthalten. Breche Import ab."},pagination:{aria:{pageToFirst:"Zum Anfang",pageBack:"Seite zurück",pageSelected:"Ausgwählte Seite",pageForward:"Seite vor",pageToLast:"Zum Ende"},sizes:"Einträge pro Seite",totalItems:"Einträge",through:"bis",of:"von"},grouping:{group:"Gruppieren",ungroup:"Gruppierung aufheben",aggregate_count:"Agg: Anzahl",aggregate_sum:"Agg: Summe",aggregate_max:"Agg: Maximum",aggregate_min:"Agg: Minimum",aggregate_avg:"Agg: Mittelwert",aggregate_remove:"Aggregation entfernen"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("en",{headerCell:{aria:{defaultFilterLabel:"Filter for column",removeFilter:"Remove Filter",columnMenuButtonLabel:"Column Menu"},priority:"Priority:",filterLabel:"Filter for column: "},aggregate:{label:"items"},groupPanel:{description:"Drag a column header here and drop it to group by that column."},search:{placeholder:"Search...",showingItems:"Showing Items:",selectedItems:"Selected Items:",totalItems:"Total Items:",size:"Page Size:",first:"First Page",next:"Next Page",previous:"Previous Page",last:"Last Page"},menu:{text:"Choose Columns:"},sort:{ascending:"Sort Ascending",descending:"Sort Descending",none:"Sort None",remove:"Remove Sort"},column:{hide:"Hide Column"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Pin Left",pinRight:"Pin Right",unpin:"Unpin"},columnMenu:{close:"Close"},gridMenu:{aria:{buttonLabel:"Grid Menu"},columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."},pagination:{aria:{pageToFirst:"Page to first",pageBack:"Page back",pageSelected:"Selected page",pageForward:"Page forward",pageToLast:"Page to last"},sizes:"items per page",totalItems:"items",through:"through",of:"of"},grouping:{group:"Group",ungroup:"Ungroup",aggregate_count:"Agg: Count",aggregate_sum:"Agg: Sum",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Avg",aggregate_remove:"Agg: Remove"},validate:{error:"Error:",minLength:"Value should be at least THRESHOLD characters long.",maxLength:"Value should be at most THRESHOLD characters long.",required:"A value is needed."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("es",{aggregate:{label:"Artículos"},groupPanel:{description:"Arrastre un encabezado de columna aquí y suéltelo para agrupar por esa columna."},search:{placeholder:"Buscar...",showingItems:"Artículos Mostrados:",selectedItems:"Artículos Seleccionados:",totalItems:"Artículos Totales:",size:"Tamaño de Página:",first:"Primera Página",next:"Página Siguiente",previous:"Página Anterior",last:"Última Página"},menu:{text:"Elegir columnas:"},sort:{ascending:"Orden Ascendente",descending:"Orden Descendente",remove:"Sin Ordenar"},column:{hide:"Ocultar la columna"},aggregation:{count:"filas totales: ",sum:"total: ",avg:"media: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fijar a la Izquierda",pinRight:"Fijar a la Derecha",unpin:"Quitar Fijación"},gridMenu:{columns:"Columnas:",importerTitle:"Importar archivo",exporterAllAsCsv:"Exportar todo como csv",exporterVisibleAsCsv:"Exportar vista como csv",exporterSelectedAsCsv:"Exportar selección como csv",exporterAllAsPdf:"Exportar todo como pdf",exporterVisibleAsPdf:"Exportar vista como pdf",exporterSelectedAsPdf:"Exportar selección como pdf",clearAllFilters:"Limpiar todos los filtros"},importer:{noHeaders:"No fue posible derivar los nombres de las columnas, ¿tiene encabezados el archivo?",noObjects:"No fue posible obtener registros, ¿contiene datos el archivo, aparte de los encabezados?",invalidCsv:"No fue posible procesar el archivo, ¿es un CSV válido?",invalidJson:"No fue posible procesar el archivo, ¿es un Json válido?",jsonNotArray:"El archivo json importado debe contener un array, abortando."},pagination:{sizes:"registros por página",totalItems:"registros",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Cont",aggregate_sum:"Agr: Sum",aggregate_max:"Agr: Máx",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Prom",aggregate_remove:"Agr: Quitar"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fa",{aggregate:{label:"قلم"},groupPanel:{description:"عنوان یک ستون را بگیر و به گروهی از آن ستون رها کن."},search:{placeholder:"جستجو...",showingItems:"نمایش اقلام:",selectedItems:"قلم‌های انتخاب شده:",totalItems:"مجموع اقلام:",size:"اندازه‌ی صفحه:",first:"اولین صفحه",next:"صفحه‌ی‌بعدی",previous:"صفحه‌ی‌ قبلی",last:"آخرین صفحه"},menu:{text:"ستون‌های انتخابی:"},sort:{ascending:"ترتیب صعودی",descending:"ترتیب نزولی",remove:"حذف مرتب کردن"},column:{hide:"پنهان‌کردن ستون"},aggregation:{count:"تعداد: ",sum:"مجموع: ",avg:"میانگین: ",min:"کمترین: ",max:"بیشترین: "},pinning:{pinLeft:"پین کردن سمت چپ",pinRight:"پین کردن سمت راست",unpin:"حذف پین"},gridMenu:{columns:"ستون‌ها:",importerTitle:"وارد کردن فایل",exporterAllAsCsv:"خروجی تمام داده‌ها در فایل csv",exporterVisibleAsCsv:"خروجی داده‌های قابل مشاهده در فایل csv",exporterSelectedAsCsv:"خروجی داده‌های انتخاب‌شده در فایل csv",exporterAllAsPdf:"خروجی تمام داده‌ها در فایل pdf",exporterVisibleAsPdf:"خروجی داده‌های قابل مشاهده در فایل pdf",exporterSelectedAsPdf:"خروجی داده‌های انتخاب‌شده در فایل pdf",clearAllFilters:"پاک کردن تمام فیلتر"},importer:{noHeaders:"نام ستون قابل استخراج نیست. آیا فایل عنوان دارد؟",noObjects:"اشیا قابل استخراج نیستند. آیا به جز عنوان‌ها در فایل داده وجود دارد؟",invalidCsv:"فایل قابل پردازش نیست. آیا فرمت csv معتبر است؟",invalidJson:"فایل قابل پردازش نیست. آیا فرمت json معتبر است؟",jsonNotArray:"فایل json وارد شده باید حاوی آرایه باشد. عملیات ساقط شد."},pagination:{sizes:"اقلام در هر صفحه",totalItems:"اقلام",of:"از"},grouping:{group:"گروه‌بندی",ungroup:"حذف گروه‌بندی",aggregate_count:"Agg: تعداد",aggregate_sum:"Agg: جمع",aggregate_max:"Agg: بیشینه",aggregate_min:"Agg: کمینه",aggregate_avg:"Agg: میانگین",aggregate_remove:"Agg: حذف"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fi",{aggregate:{label:"rivit"},groupPanel:{description:"Raahaa ja pudota otsikko tähän ryhmittääksesi sarakkeen mukaan."},search:{placeholder:"Hae...",showingItems:"Näytetään rivejä:",selectedItems:"Valitut rivit:",totalItems:"Rivejä yht.:",size:"Näytä:",first:"Ensimmäinen sivu",next:"Seuraava sivu",previous:"Edellinen sivu",last:"Viimeinen sivu"},menu:{text:"Valitse sarakkeet:"},sort:{ascending:"Järjestä nouseva",descending:"Järjestä laskeva",remove:"Poista järjestys"},column:{hide:"Piilota sarake"},aggregation:{count:"Rivejä yht.: ",sum:"Summa: ",avg:"K.a.: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Lukitse vasemmalle",pinRight:"Lukitse oikealle",unpin:"Poista lukitus"},gridMenu:{columns:"Sarakkeet:",importerTitle:"Tuo tiedosto",exporterAllAsCsv:"Vie tiedot csv-muodossa",exporterVisibleAsCsv:"Vie näkyvä tieto csv-muodossa",exporterSelectedAsCsv:"Vie valittu tieto csv-muodossa",exporterAllAsPdf:"Vie tiedot pdf-muodossa",exporterVisibleAsPdf:"Vie näkyvä tieto pdf-muodossa",exporterSelectedAsPdf:"Vie valittu tieto pdf-muodossa",clearAllFilters:"Puhdista kaikki suodattimet"},importer:{noHeaders:"Sarakkeen nimiä ei voitu päätellä, onko tiedostossa otsikkoriviä?",noObjects:"Tietoja ei voitu lukea, onko tiedostossa muuta kuin otsikkot?",invalidCsv:"Tiedostoa ei voitu käsitellä, oliko se CSV-muodossa?",invalidJson:"Tiedostoa ei voitu käsitellä, oliko se JSON-muodossa?",jsonNotArray:"Tiedosto ei sisältänyt taulukkoa, lopetetaan."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fr",{aggregate:{label:"éléments"},groupPanel:{description:"Faites glisser une en-tête de colonne ici pour créer un groupe de colonnes."},search:{placeholder:"Recherche...",showingItems:"Affichage des éléments :",selectedItems:"Éléments sélectionnés :",totalItems:"Nombre total d'éléments:",size:"Taille de page:",first:"Première page",next:"Page Suivante",previous:"Page précédente",last:"Dernière page"},menu:{text:"Choisir des colonnes :"},sort:{ascending:"Trier par ordre croissant",descending:"Trier par ordre décroissant",remove:"Enlever le tri"},column:{hide:"Cacher la colonne"},aggregation:{count:"lignes totales: ",sum:"total: ",avg:"moy: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Épingler à gauche",pinRight:"Épingler à droite",unpin:"Détacher"},gridMenu:{columns:"Colonnes:",importerTitle:"Importer un fichier",exporterAllAsCsv:"Exporter toutes les données en CSV",exporterVisibleAsCsv:"Exporter les données visibles en CSV",exporterSelectedAsCsv:"Exporter les données sélectionnées en CSV",exporterAllAsPdf:"Exporter toutes les données en PDF",exporterVisibleAsPdf:"Exporter les données visibles en PDF",exporterSelectedAsPdf:"Exporter les données sélectionnées en PDF",clearAllFilters:"Nettoyez tous les filtres"},importer:{noHeaders:"Impossible de déterminer le nom des colonnes, le fichier possède-t-il une en-tête ?",noObjects:"Aucun objet trouvé, le fichier possède-t-il des données autres que l'en-tête ?",invalidCsv:"Le fichier n'a pas pu être traité, le CSV est-il valide ?",invalidJson:"Le fichier n'a pas pu être traité, le JSON est-il valide ?",jsonNotArray:"Le fichier JSON importé doit contenir un tableau, abandon."},pagination:{sizes:"éléments par page",totalItems:"éléments",of:"sur"},grouping:{group:"Grouper",ungroup:"Dégrouper",aggregate_count:"Agg: Compte",aggregate_sum:"Agg: Somme",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Moy",aggregate_remove:"Agg: Retirer"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("he",{aggregate:{label:"items"},groupPanel:{description:"גרור עמודה לכאן ושחרר בכדי לקבץ עמודה זו."},search:{placeholder:"חפש...",showingItems:"מציג:",selectedItems:'סה"כ נבחרו:',totalItems:'סה"כ רשומות:',size:"תוצאות בדף:",first:"דף ראשון",next:"דף הבא",previous:"דף קודם",last:"דף אחרון"},menu:{text:"בחר עמודות:"},sort:{ascending:"סדר עולה",descending:"סדר יורד",remove:"בטל"},column:{hide:"טור הסתר"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clean all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("hy",{aggregate:{label:"տվյալներ"},groupPanel:{description:"Ըստ սյան խմբավորելու համար քաշեք և գցեք վերնագիրն այստեղ։"},search:{placeholder:"Փնտրում...",showingItems:"Ցուցադրված տվյալներ՝",selectedItems:"Ընտրված:",totalItems:"Ընդամենը՝",size:"Տողերի քանակը էջում՝",first:"Առաջին էջ",next:"Հաջորդ էջ",previous:"Նախորդ էջ",last:"Վերջին էջ"},menu:{text:"Ընտրել սյուները:"},sort:{ascending:"Աճման կարգով",descending:"Նվազման կարգով",remove:"Հանել "},column:{hide:"Թաքցնել սյունը"},aggregation:{count:"ընդամենը տող՝ ",sum:"ընդամենը՝ ",avg:"միջին՝ ",min:"մին՝ ",max:"մաքս՝ "},pinning:{pinLeft:"Կպցնել ձախ կողմում",pinRight:"Կպցնել աջ կողմում",unpin:"Արձակել"},gridMenu:{columns:"Սյուներ:",importerTitle:"Ներմուծել ֆայլ",exporterAllAsCsv:"Արտահանել ամբողջը CSV",exporterVisibleAsCsv:"Արտահանել երևացող տվյալները CSV",exporterSelectedAsCsv:"Արտահանել ընտրված տվյալները CSV",exporterAllAsPdf:"Արտահանել PDF",exporterVisibleAsPdf:"Արտահանել երևացող տվյալները PDF",exporterSelectedAsPdf:"Արտահանել ընտրված տվյալները PDF",clearAllFilters:"Մաքրել բոլոր ֆիլտրերը"},importer:{noHeaders:"Հնարավոր չեղավ որոշել սյան վերնագրերը։ Արդյո՞ք ֆայլը ունի վերնագրեր։",noObjects:"Հնարավոր չեղավ կարդալ տվյալները։ Արդյո՞ք ֆայլում կան տվյալներ։",invalidCsv:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր CSV է։",invalidJson:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր Json է։",jsonNotArray:"Ներմուծված json ֆայլը պետք է պարունակի զանգված, կասեցվում է։"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("it",{aggregate:{label:"elementi"},groupPanel:{description:"Trascina un'intestazione all'interno del gruppo della colonna."},search:{placeholder:"Ricerca...",showingItems:"Mostra:",selectedItems:"Selezionati:",totalItems:"Totali:",size:"Tot Pagine:",first:"Prima",next:"Prossima",previous:"Precedente",last:"Ultima"},menu:{text:"Scegli le colonne:"},sort:{ascending:"Asc.",descending:"Desc.",remove:"Annulla ordinamento"},column:{hide:"Nascondi"},aggregation:{count:"righe totali: ",sum:"tot: ",avg:"media: ",min:"minimo: ",max:"massimo: "},pinning:{pinLeft:"Blocca a sx",pinRight:"Blocca a dx",unpin:"Blocca in alto"},gridMenu:{columns:"Colonne:",importerTitle:"Importa",exporterAllAsCsv:"Esporta tutti i dati in CSV",exporterVisibleAsCsv:"Esporta i dati visibili in CSV",exporterSelectedAsCsv:"Esporta i dati selezionati in CSV",exporterAllAsPdf:"Esporta tutti i dati in PDF",exporterVisibleAsPdf:"Esporta i dati visibili in PDF",exporterSelectedAsPdf:"Esporta i dati selezionati in PDF",clearAllFilters:"Pulire tutti i filtri"},importer:{noHeaders:"Impossibile reperire i nomi delle colonne, sicuro che siano indicati all'interno del file?",noObjects:"Impossibile reperire gli oggetti, sicuro che siano indicati all'interno del file?",invalidCsv:"Impossibile elaborare il file, sicuro che sia un CSV?",invalidJson:"Impossibile elaborare il file, sicuro che sia un JSON valido?",jsonNotArray:"Errore! Il file JSON da importare deve contenere un array."},grouping:{group:"Raggruppa",ungroup:"Separa",aggregate_count:"Agg: N. Elem.",aggregate_sum:"Agg: Somma",aggregate_max:"Agg: Massimo",aggregate_min:"Agg: Minimo",aggregate_avg:"Agg: Media",aggregate_remove:"Agg: Rimuovi"},validate:{error:"Errore:",minLength:"Lunghezza minima pari a THRESHOLD caratteri.",maxLength:"Lunghezza massima pari a THRESHOLD caratteri.",required:"Necessario inserire un valore."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ja",{aggregate:{label:"項目"},groupPanel:{description:"ここに列ヘッダをドラッグアンドドロップして、その列でグループ化します。"},search:{placeholder:"検索...",showingItems:"表示中の項目:",selectedItems:"選択した項目:",totalItems:"項目の総数:",size:"ページサイズ:",first:"最初のページ",next:"次のページ",previous:"前のページ",last:"前のページ"},menu:{text:"列の選択:"},sort:{ascending:"昇順に並べ替え",descending:"降順に並べ替え",remove:"並べ替えの解除"},column:{hide:"列の非表示"},aggregation:{count:"合計行数: ",sum:"合計: ",avg:"平均: ",min:"最小: ",max:"最大: "},pinning:{pinLeft:"左に固定",pinRight:"右に固定",unpin:"固定解除"},gridMenu:{columns:"列:",importerTitle:"ファイルのインポート",exporterAllAsCsv:"すべてのデータをCSV形式でエクスポート",exporterVisibleAsCsv:"表示中のデータをCSV形式でエクスポート",exporterSelectedAsCsv:"選択したデータをCSV形式でエクスポート",exporterAllAsPdf:"すべてのデータをPDF形式でエクスポート",exporterVisibleAsPdf:"表示中のデータをPDF形式でエクスポート",exporterSelectedAsPdf:"選択したデータをPDF形式でエクスポート",clearAllFilters:"すべてのフィルタを清掃してください"},importer:{noHeaders:"列名を取得できません。ファイルにヘッダが含まれていることを確認してください。",noObjects:"オブジェクトを取得できません。ファイルにヘッダ以外のデータが含まれていることを確認してください。",invalidCsv:"ファイルを処理できません。ファイルが有効なCSV形式であることを確認してください。",invalidJson:"ファイルを処理できません。ファイルが有効なJSON形式であることを確認してください。",jsonNotArray:"インポートしたJSONファイルには配列が含まれている必要があります。処理を中止します。"},pagination:{sizes:"項目/ページ",totalItems:"項目"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ko",{aggregate:{label:"아이템"},groupPanel:{description:"컬럼으로 그룹핑하기 위해서는 컬럼 헤더를 끌어 떨어뜨려 주세요."},search:{placeholder:"검색...",showingItems:"항목 보여주기:",selectedItems:"선택 항목:",totalItems:"전체 항목:",size:"페이지 크기:",first:"첫번째 페이지",next:"다음 페이지",previous:"이전 페이지",last:"마지막 페이지"},menu:{text:"컬럼을 선택하세요:"},sort:{ascending:"오름차순 정렬",descending:"내림차순 정렬",remove:"소팅 제거"},column:{hide:"컬럼 제거"},aggregation:{count:"전체 갯수: ",sum:"전체: ",avg:"평균: ",min:"최소: ",max:"최대: "},pinning:{pinLeft:"왼쪽 핀",pinRight:"오른쪽 핀",unpin:"핀 제거"},gridMenu:{columns:"컬럼:",importerTitle:"파일 가져오기",exporterAllAsCsv:"csv로 모든 데이터 내보내기",exporterVisibleAsCsv:"csv로 보이는 데이터 내보내기",exporterSelectedAsCsv:"csv로 선택된 데이터 내보내기",exporterAllAsPdf:"pdf로 모든 데이터 내보내기",exporterVisibleAsPdf:"pdf로 보이는 데이터 내보내기",exporterSelectedAsPdf:"pdf로 선택 데이터 내보내기",clearAllFilters:"모든 필터를 청소"},importer:{noHeaders:"컬럼명이 지정되어 있지 않습니다. 파일에 헤더가 명시되어 있는지 확인해 주세요.",noObjects:"데이터가 지정되어 있지 않습니다. 데이터가 파일에 있는지 확인해 주세요.",invalidCsv:"파일을 처리할 수 없습니다. 올바른 csv인지 확인해 주세요.",invalidJson:"파일을 처리할 수 없습니다. 올바른 json인지 확인해 주세요.",jsonNotArray:"json 파일은 배열을 포함해야 합니다."},pagination:{sizes:"페이지당 항목",totalItems:"전체 항목"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("nl",{aggregate:{label:"items"},groupPanel:{description:"Sleep hier een kolomnaam heen om op te groeperen."},search:{placeholder:"Zoeken...",showingItems:"Getoonde items:",selectedItems:"Geselecteerde items:",totalItems:"Totaal aantal items:",size:"Items per pagina:",first:"Eerste pagina",next:"Volgende pagina",previous:"Vorige pagina",last:"Laatste pagina"},menu:{text:"Kies kolommen:"},sort:{ascending:"Sorteer oplopend",descending:"Sorteer aflopend",remove:"Verwijder sortering"},column:{hide:"Verberg kolom"},aggregation:{count:"Aantal rijen: ",sum:"Som: ",avg:"Gemiddelde: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Zet links vast",pinRight:"Zet rechts vast",unpin:"Maak los"},gridMenu:{columns:"Kolommen:",importerTitle:"Importeer bestand",exporterAllAsCsv:"Exporteer alle data als csv",exporterVisibleAsCsv:"Exporteer zichtbare data als csv",exporterSelectedAsCsv:"Exporteer geselecteerde data als csv",exporterAllAsPdf:"Exporteer alle data als pdf",exporterVisibleAsPdf:"Exporteer zichtbare data als pdf",exporterSelectedAsPdf:"Exporteer geselecteerde data als pdf",clearAllFilters:"Reinig alle filters"},importer:{noHeaders:"Kolomnamen kunnen niet worden afgeleid. Heeft het bestand een header?",noObjects:"Objecten kunnen niet worden afgeleid. Bevat het bestand data naast de headers?",invalidCsv:"Het bestand kan niet verwerkt worden. Is het een valide csv bestand?",invalidJson:"Het bestand kan niet verwerkt worden. Is het valide json?",jsonNotArray:"Het json bestand moet een array bevatten. De actie wordt geannuleerd."},pagination:{sizes:"items per pagina",totalItems:"items",of:"van de"},grouping:{group:"Groepeer",ungroup:"Groepering opheffen",aggregate_count:"Agg: Aantal",aggregate_sum:"Agg: Som",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Gem",aggregate_remove:"Agg: Verwijder"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pl",{headerCell:{aria:{defaultFilterLabel:"Filter dla kolumny",removeFilter:"Usuń filter",columnMenuButtonLabel:"Menu kolumny"},priority:"Prioritet:",filterLabel:"Filtr dla kolumny: "},aggregate:{label:"pozycji"},groupPanel:{description:"Przeciągnij nagłówek kolumny tutaj, aby pogrupować według niej."},search:{placeholder:"Szukaj...",showingItems:"Widoczne pozycje:",selectedItems:"Zaznaczone pozycje:",totalItems:"Wszystkich pozycji:",size:"Rozmiar strony:",first:"Pierwsza strona",next:"Następna strona",previous:"Poprzednia strona",last:"Ostatnia strona"},menu:{text:"Wybierz kolumny:"},sort:{ascending:"Sortuj rosnąco",descending:"Sortuj malejąco",none:"Brak sortowania",remove:"Wyłącz sortowanie"},column:{hide:"Ukryj kolumne"},aggregation:{count:"Razem pozycji: ",sum:"Razem: ",avg:"Średnia: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Przypnij do lewej",pinRight:"Przypnij do prawej",unpin:"Odepnij"},columnMenu:{close:"Zamknij"},gridMenu:{aria:{buttonLabel:"Menu Grida"},columns:"Kolumny:",importerTitle:"Importuj plik",exporterAllAsCsv:"Eksportuj wszystkie dane do csv",exporterVisibleAsCsv:"Eksportuj widoczne dane do csv",exporterSelectedAsCsv:"Eksportuj zaznaczone dane do csv",exporterAllAsPdf:"Eksportuj wszystkie dane do pdf",exporterVisibleAsPdf:"Eksportuj widoczne dane do pdf",exporterSelectedAsPdf:"Eksportuj zaznaczone dane do pdf",clearAllFilters:"Wyczyść filtry"},importer:{noHeaders:"Nie udało się wczytać nazw kolumn. Czy plik posiada nagłówek?",noObjects:"Nie udalo się wczytać pozycji. Czy plik zawiera dane??",invalidCsv:"Nie udało się przetworzyć pliku, jest to prawidlowy plik CSV??",invalidJson:"Nie udało się przetworzyć pliku, jest to prawidlowy plik Json?",jsonNotArray:"Importowany plik json musi zawierać tablicę, importowanie przerwane."},pagination:{aria:{pageToFirst:"Pierwsza strona",pageBack:"Poprzednia strona",pageSelected:"Wybrana strona",pageForward:"Następna strona",pageToLast:"Ostatnia strona"},sizes:"pozycji na stronę",totalItems:"pozycji",through:"do",of:"z"},grouping:{group:"Grupuj",ungroup:"Rozgrupuj",aggregate_count:"Zbiorczo: Razem",aggregate_sum:"Zbiorczo: Suma",aggregate_max:"Zbiorczo: Max",aggregate_min:"Zbiorczo: Min",aggregate_avg:"Zbiorczo: Średnia",aggregate_remove:"Zbiorczo: Usuń"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt-br",{headerCell:{aria:{defaultFilterLabel:"Filtro por coluna",removeFilter:"Remover filtro",columnMenuButtonLabel:"Menu coluna"},priority:"Prioridade:",filterLabel:"Filtro por coluna: "},aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Items Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",none:"Nenhuma Ordem",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},columnMenu:{close:"Fechar"},gridMenu:{aria:{buttonLabel:"Menu Grid"},columns:"Colunas:",importerTitle:"Importar arquivo",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O arquivo tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no arquivo, além dos cabeçalhos?",invalidCsv:"Arquivo não pode ser processado. É um CSV válido?",invalidJson:"Arquivo não pode ser processado. É um Json válido?",jsonNotArray:"Arquivo json importado tem que conter um array. Abortando."},pagination:{aria:{pageToFirst:"Primeira página",pageBack:"Página anterior",pageSelected:"Página Selecionada",pageForward:"Proxima",pageToLast:"Anterior"},sizes:"itens por página",totalItems:"itens",through:"através dos",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt",{headerCell:{aria:{defaultFilterLabel:"Filtro por coluna",removeFilter:"Remover filtro",columnMenuButtonLabel:"Menu coluna"},priority:"Prioridade:",filterLabel:"Filtro por coluna: "},aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:", +selectedItems:"Itens Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",none:"Nenhuma Ordem",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},columnMenu:{close:"Fechar"},gridMenu:{aria:{buttonLabel:"Menu Grid"},columns:"Colunas:",importerTitle:"Importar ficheiro",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O ficheiro tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no ficheiro, além dos cabeçalhos?",invalidCsv:"Ficheiro não pode ser processado. É um CSV válido?",invalidJson:"Ficheiro não pode ser processado. É um Json válido?",jsonNotArray:"Ficheiro json importado tem que conter um array. Interrompendo."},pagination:{aria:{pageToFirst:"Primeira página",pageBack:"Página anterior",pageSelected:"Página Selecionada",pageForward:"Próxima",pageToLast:"Anterior"},sizes:"itens por página",totalItems:"itens",through:"através dos",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ro",{headerCell:{aria:{defaultFilterLabel:"Filtru pentru coloana",removeFilter:"Sterge filtru",columnMenuButtonLabel:"Column Menu"},priority:"Prioritate:",filterLabel:"Filtru pentru coloana:"},aggregate:{label:"Elemente"},groupPanel:{description:"Trage un cap de coloana aici pentru a grupa elementele dupa coloana respectiva"},search:{placeholder:"Cauta...",showingItems:"Arata elementele:",selectedItems:"Elementele selectate:",totalItems:"Total elemente:",size:"Marime pagina:",first:"Prima pagina",next:"Pagina urmatoare",previous:"Pagina anterioara",last:"Ultima pagina"},menu:{text:"Alege coloane:"},sort:{ascending:"Ordoneaza crescator",descending:"Ordoneaza descrescator",none:"Fara ordonare",remove:"Sterge ordonarea"},column:{hide:"Ascunde coloana"},aggregation:{count:"total linii: ",sum:"total: ",avg:"medie: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Pin la stanga",pinRight:"Pin la dreapta",unpin:"Sterge pinul"},columnMenu:{close:"Inchide"},gridMenu:{aria:{buttonLabel:"Grid Menu"},columns:"Coloane:",importerTitle:"Incarca fisier",exporterAllAsCsv:"Exporta toate datele ca csv",exporterVisibleAsCsv:"Exporta datele vizibile ca csv",exporterSelectedAsCsv:"Exporta datele selectate ca csv",exporterAllAsPdf:"Exporta toate datele ca pdf",exporterVisibleAsPdf:"Exporta datele vizibile ca pdf",exporterSelectedAsPdf:"Exporta datele selectate ca csv pdf",clearAllFilters:"Sterge toate filtrele"},importer:{noHeaders:"Numele coloanelor nu a putut fi incarcat, acest fisier are un header?",noObjects:"Datele nu au putut fi incarcate, exista date in fisier in afara numelor de coloane?",invalidCsv:"Fisierul nu a putut fi procesat, ati incarcat un CSV valid ?",invalidJson:"Fisierul nu a putut fi procesat, ati incarcat un Json valid?",jsonNotArray:"Json-ul incarcat trebuie sa contina un array, inchidere."},pagination:{aria:{pageToFirst:"Prima pagina",pageBack:"O pagina inapoi",pageSelected:"Pagina selectata",pageForward:"O pagina inainte",pageToLast:"Ultima pagina"},sizes:"Elemente per pagina",totalItems:"elemente",through:"prin",of:"of"},grouping:{group:"Grupeaza",ungroup:"Opreste gruparea",aggregate_count:"Agg: Count",aggregate_sum:"Agg: Sum",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Avg",aggregate_remove:"Agg: Remove"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ru",{headerCell:{aria:{defaultFilterLabel:"Фильтр столбца",removeFilter:"Удалить фильтр",columnMenuButtonLabel:"Меню столбца"},priority:"Приоритет:",filterLabel:"Фильтр столбца: "},aggregate:{label:"элементы"},groupPanel:{description:"Для группировки по столбцу перетащите сюда его название."},search:{placeholder:"Поиск...",showingItems:"Показать элементы:",selectedItems:"Выбранные элементы:",totalItems:"Всего элементов:",size:"Размер страницы:",first:"Первая страница",next:"Следующая страница",previous:"Предыдущая страница",last:"Последняя страница"},menu:{text:"Выбрать столбцы:"},sort:{ascending:"По возрастанию",descending:"По убыванию",none:"Без сортировки",remove:"Убрать сортировку"},column:{hide:"Спрятать столбец"},aggregation:{count:"всего строк: ",sum:"итого: ",avg:"среднее: ",min:"мин: ",max:"макс: "},pinning:{pinLeft:"Закрепить слева",pinRight:"Закрепить справа",unpin:"Открепить"},columnMenu:{close:"Закрыть"},gridMenu:{aria:{buttonLabel:"Меню"},columns:"Столбцы:",importerTitle:"Импортировать файл",exporterAllAsCsv:"Экспортировать всё в CSV",exporterVisibleAsCsv:"Экспортировать видимые данные в CSV",exporterSelectedAsCsv:"Экспортировать выбранные данные в CSV",exporterAllAsPdf:"Экспортировать всё в PDF",exporterVisibleAsPdf:"Экспортировать видимые данные в PDF",exporterSelectedAsPdf:"Экспортировать выбранные данные в PDF",clearAllFilters:"Очистите все фильтры"},importer:{noHeaders:"Не удалось получить названия столбцов, есть ли в файле заголовок?",noObjects:"Не удалось получить данные, есть ли в файле строки кроме заголовка?",invalidCsv:"Не удалось обработать файл, это правильный CSV-файл?",invalidJson:"Не удалось обработать файл, это правильный JSON?",jsonNotArray:"Импортируемый JSON-файл должен содержать массив, операция отменена."},pagination:{aria:{pageToFirst:"Первая страница",pageBack:"Предыдущая страница",pageSelected:"Выбранная страница",pageForward:"Следующая страница",pageToLast:"Последняя страница"},sizes:"строк на страницу",totalItems:"строк",through:"по",of:"из"},grouping:{group:"Группировать",ungroup:"Разгруппировать",aggregate_count:"Группировать: Count",aggregate_sum:"Для группы: Сумма",aggregate_max:"Для группы: Максимум",aggregate_min:"Для группы: Минимум",aggregate_avg:"Для группы: Среднее",aggregate_remove:"Для группы: Пусто"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sk",{aggregate:{label:"items"},groupPanel:{description:"Pretiahni sem názov stĺpca pre zoskupenie podľa toho stĺpca."},search:{placeholder:"Hľadaj...",showingItems:"Zobrazujem položky:",selectedItems:"Vybraté položky:",totalItems:"Počet položiek:",size:"Počet:",first:"Prvá strana",next:"Ďalšia strana",previous:"Predchádzajúca strana",last:"Posledná strana"},menu:{text:"Vyberte stĺpce:"},sort:{ascending:"Zotriediť vzostupne",descending:"Zotriediť zostupne",remove:"Vymazať triedenie"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sv",{aggregate:{label:"Artiklar"},groupPanel:{description:"Dra en kolumnrubrik hit och släpp den för att gruppera efter den kolumnen."},search:{placeholder:"Sök...",showingItems:"Visar artiklar:",selectedItems:"Valda artiklar:",totalItems:"Antal artiklar:",size:"Sidstorlek:",first:"Första sidan",next:"Nästa sida",previous:"Föregående sida",last:"Sista sidan"},menu:{text:"Välj kolumner:"},sort:{ascending:"Sortera stigande",descending:"Sortera fallande",remove:"Inaktivera sortering"},column:{hide:"Göm kolumn"},aggregation:{count:"Antal rader: ",sum:"Summa: ",avg:"Genomsnitt: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Fäst vänster",pinRight:"Fäst höger",unpin:"Lösgör"},gridMenu:{columns:"Kolumner:",importerTitle:"Importera fil",exporterAllAsCsv:"Exportera all data som CSV",exporterVisibleAsCsv:"Exportera synlig data som CSV",exporterSelectedAsCsv:"Exportera markerad data som CSV",exporterAllAsPdf:"Exportera all data som PDF",exporterVisibleAsPdf:"Exportera synlig data som PDF",exporterSelectedAsPdf:"Exportera markerad data som PDF",clearAllFilters:"Rengör alla filter"},importer:{noHeaders:"Kolumnnamn kunde inte härledas. Har filen ett sidhuvud?",noObjects:"Objekt kunde inte härledas. Har filen data undantaget sidhuvud?",invalidCsv:"Filen kunde inte behandlas, är den en giltig CSV?",invalidJson:"Filen kunde inte behandlas, är den en giltig JSON?",jsonNotArray:"Importerad JSON-fil måste innehålla ett fält. Import avbruten."},pagination:{sizes:"Artiklar per sida",totalItems:"Artiklar"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ta",{aggregate:{label:"உருப்படிகள்"},groupPanel:{description:"ஒரு பத்தியை குழுவாக அமைக்க அப்பத்தியின் தலைப்பை இங்கே இழுத்து வரவும் "},search:{placeholder:"தேடல் ...",showingItems:"உருப்படிகளை காண்பித்தல்:",selectedItems:"தேர்ந்தெடுக்கப்பட்ட உருப்படிகள்:",totalItems:"மொத்த உருப்படிகள்:",size:"பக்க அளவு: ",first:"முதல் பக்கம்",next:"அடுத்த பக்கம்",previous:"முந்தைய பக்கம் ",last:"இறுதி பக்கம்"},menu:{text:"பத்திகளை தேர்ந்தெடு:"},sort:{ascending:"மேலிருந்து கீழாக",descending:"கீழிருந்து மேலாக",remove:"வரிசையை நீக்கு"},column:{hide:"பத்தியை மறைத்து வை "},aggregation:{count:"மொத்த வரிகள்:",sum:"மொத்தம்: ",avg:"சராசரி: ",min:"குறைந்தபட்ச: ",max:"அதிகபட்ச: "},pinning:{pinLeft:"இடதுபுறமாக தைக்க ",pinRight:"வலதுபுறமாக தைக்க",unpin:"பிரி"},gridMenu:{columns:"பத்திகள்:",importerTitle:"கோப்பு : படித்தல்",exporterAllAsCsv:"எல்லா தரவுகளையும் கோப்பாக்கு: csv",exporterVisibleAsCsv:"இருக்கும் தரவுகளை கோப்பாக்கு: csv",exporterSelectedAsCsv:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: csv",exporterAllAsPdf:"எல்லா தரவுகளையும் கோப்பாக்கு: pdf",exporterVisibleAsPdf:"இருக்கும் தரவுகளை கோப்பாக்கு: pdf",exporterSelectedAsPdf:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"பத்தியின் தலைப்புகளை பெற இயலவில்லை, கோப்பிற்கு தலைப்பு உள்ளதா?",noObjects:"இலக்குகளை உருவாக்க முடியவில்லை, கோப்பில் தலைப்புகளை தவிர தரவு ஏதேனும் உள்ளதா? ",invalidCsv:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - csv",invalidJson:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - json",jsonNotArray:"படித்த கோப்பில் வரிசைகள் உள்ளது, நடைமுறை ரத்து செய் : json"},pagination:{sizes:"உருப்படிகள் / பக்கம்",totalItems:"உருப்படிகள் "},grouping:{group:"குழு",ungroup:"பிரி",aggregate_count:"மதிப்பீட்டு : எண்ணு",aggregate_sum:"மதிப்பீட்டு : கூட்டல்",aggregate_max:"மதிப்பீட்டு : அதிகபட்சம்",aggregate_min:"மதிப்பீட்டு : குறைந்தபட்சம்",aggregate_avg:"மதிப்பீட்டு : சராசரி",aggregate_remove:"மதிப்பீட்டு : நீக்கு"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("tr",{headerCell:{aria:{defaultFilterLabel:"Sütun için filtre",removeFilter:"Filtreyi Kaldır",columnMenuButtonLabel:"Sütun Menüsü"},priority:"Öncelik:",filterLabel:"Sütun için filtre: "},aggregate:{label:"kayıtlar"},groupPanel:{description:"Sütuna göre gruplamak için sütun başlığını buraya sürükleyin ve bırakın."},search:{placeholder:"Arama...",showingItems:"Gösterilen Kayıt:",selectedItems:"Seçili Kayıt:",totalItems:"Toplam Kayıt:",size:"Sayfa Boyutu:",first:"İlk Sayfa",next:"Sonraki Sayfa",previous:"Önceki Sayfa",last:"Son Sayfa"},menu:{text:"Sütunları Seç:"},sort:{ascending:"Artan Sırada Sırala",descending:"Azalan Sırada Sırala",none:"Sıralama Yapma",remove:"Sıralamayı Kaldır"},column:{hide:"Sütunu Gizle"},aggregation:{count:"toplam satır: ",sum:"toplam: ",avg:"ort: ",min:"min: ",max:"maks: "},pinning:{pinLeft:"Sola Sabitle",pinRight:"Sağa Sabitle",unpin:"Sabitlemeyi Kaldır"},columnMenu:{close:"Kapat"},gridMenu:{aria:{buttonLabel:"Tablo Menü"},columns:"Sütunlar:",importerTitle:"Dosya içeri aktar",exporterAllAsCsv:"Bütün veriyi CSV olarak dışarı aktar",exporterVisibleAsCsv:"Görünen veriyi CSV olarak dışarı aktar",exporterSelectedAsCsv:"Seçili veriyi CSV olarak dışarı aktar",exporterAllAsPdf:"Bütün veriyi PDF olarak dışarı aktar",exporterVisibleAsPdf:"Görünen veriyi PDF olarak dışarı aktar",exporterSelectedAsPdf:"Seçili veriyi PDF olarak dışarı aktar",clearAllFilters:"Bütün filtreleri kaldır"},importer:{noHeaders:"Sütun isimleri üretilemiyor, dosyanın bir başlığı var mı?",noObjects:"Nesneler üretilemiyor, dosyada başlıktan başka bir veri var mı?",invalidCsv:"Dosya işlenemedi, geçerli bir CSV dosyası mı?",invalidJson:"Dosya işlenemedi, geçerli bir Json dosyası mı?",jsonNotArray:"Alınan Json dosyasında bir dizi bulunmalıdır, işlem iptal ediliyor."},pagination:{aria:{pageToFirst:"İlk sayfaya",pageBack:"Geri git",pageSelected:"Seçili sayfa",pageForward:"İleri git",pageToLast:"Sona git"},sizes:"Sayfadaki nesne sayısı",totalItems:"kayıtlar",through:"",of:""},grouping:{group:"Grupla",ungroup:"Gruplama",aggregate_count:"Yekun: Sayı",aggregate_sum:"Yekun: Toplam",aggregate_max:"Yekun: Maks",aggregate_min:"Yekun: Min",aggregate_avg:"Yekun: Ort",aggregate_remove:"Yekun: Sil"}}),a}])}])}(),function(){var a=["uiT","uiTranslate"],b=["t","uiTranslate"],c=angular.module("ui.grid.i18n");c.constant("i18nConstants",{MISSING:"[MISSING]",UPDATE_EVENT:"$uiI18n",LOCALE_DIRECTIVE_ALIAS:"uiI18n",DEFAULT_LANG:"en"}),c.service("i18nService",["$log","i18nConstants","$rootScope",function(a,b,c){var d={_langs:{},current:null,get:function(a){return this._langs[a.toLowerCase()]},add:function(a,b){var c=a.toLowerCase();this._langs[c]||(this._langs[c]={}),angular.extend(this._langs[c],b)},getAllLangs:function(){var a=[];if(!this._langs)return a;for(var b in this._langs)a.push(b);return a},setCurrent:function(a){this.current=a.toLowerCase()},getCurrentLang:function(){return this.current}},e={add:function(a,b){"object"==typeof a?angular.forEach(a,function(a){a&&d.add(a,b)}):d.add(a,b)},getAllLangs:function(){return d.getAllLangs()},get:function(a){var b=a?a:e.getCurrentLang();return d.get(b)},getSafeText:function(a,c){var f=c?c:e.getCurrentLang(),g=d.get(f);if(!g)return b.MISSING;for(var h=a.split("."),i=g,j=0;jf?0===g?new d(a,c[h]):new d(e[g-1],c[h]):new d(a,c[h])},f.prototype.getRowColRight=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=f===c.length-1?0:f+1;return f>h?g===e.length-1?new d(a,c[h]):new d(e[g+1],c[h]):new d(a,c[h])},f.prototype.getRowColDown=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);return-1===f&&(f=0),g===e.length-1?new d(a,c[f]):new d(e[g+1],c[f])},f.prototype.getRowColPageDown=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=this.bodyContainer.minRowsToRender();return g>=e.length-h?new d(e[e.length-1],c[f]):new d(e[g+h],c[f])},f.prototype.getRowColUp=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);return-1===f&&(f=0),0===g?new d(a,c[f]):new d(e[g-1],c[f])},f.prototype.getRowColPageUp=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=this.bodyContainer.minRowsToRender();return 0>g-h?new d(e[0],c[f]):new d(e[g-h],c[f])},f}]),a.service("uiGridCellNavService",["gridUtil","uiGridConstants","uiGridCellNavConstants","$q","uiGridCellNavFactory","GridRowColumn","ScrollEvent",function(a,b,c,d,e,f,g){var h={initializeGrid:function(a){a.registerColumnBuilder(h.cellNavColumnBuilder),a.cellNav={},a.cellNav.lastRowCol=null,a.cellNav.focusedCells=[],h.defaultGridOptions(a.options);var b={events:{cellNav:{navigate:function(a,b){},viewPortKeyDown:function(a,b){},viewPortKeyPress:function(a,b){}}},methods:{cellNav:{scrollToFocus:function(b,c){return h.scrollToFocus(a,b,c)},getFocusedCell:function(){return a.cellNav.lastRowCol},getCurrentSelection:function(){return a.cellNav.focusedCells},rowColSelectIndex:function(b){for(var c=-1,d=0;db&&(c+=a.drawnWidth)});var e=0===d?0:(d+1)/a.renderContainers.body.visibleColumnCache.length;return c+=b.drawnWidth*e}};return h}]),a.directive("uiGridCellnav",["gridUtil","uiGridCellNavService","uiGridCellNavConstants","uiGridConstants","GridRowColumn","$timeout","$compile",function(a,b,c,d,e,f,g){return{replace:!0,priority:-150,require:"^uiGrid",scope:!1,controller:function(){},compile:function(){return{pre:function(a,f,g,h){var i=a,j=h.grid;b.initializeGrid(j),h.cellNav={},h.cellNav.makeRowCol=function(a){return a instanceof e||(a=new e(a.row,a.col)),a},h.cellNav.getActiveCell=function(){var a=f[0].getElementsByClassName("ui-grid-cell-focus");return a.length>0?a[0]:void 0},h.cellNav.broadcastCellNav=j.cellNav.broadcastCellNav=function(a,b,d){b=!(void 0===b||!b),a=h.cellNav.makeRowCol(a),h.cellNav.broadcastFocus(a,b,d),i.$broadcast(c.CELL_NAV_EVENT,a,b,d)},h.cellNav.clearFocus=j.cellNav.clearFocus=function(){j.cellNav.focusedCells=[],i.$broadcast(c.CELL_NAV_EVENT)},h.cellNav.broadcastFocus=function(a,b,c){b=!(void 0===b||!b),a=h.cellNav.makeRowCol(a);var d=a.row,f=a.col,g=h.grid.api.cellNav.rowColSelectIndex(a);if(null===j.cellNav.lastRowCol||-1===g){var i=new e(d,f);null!==j.cellNav.lastRowCol&&j.cellNav.lastRowCol.row===i.row&&j.cellNav.lastRowCol.col===i.col||(j.api.cellNav.raise.navigate(i,j.cellNav.lastRowCol),j.cellNav.lastRowCol=i),h.grid.options.modifierKeysToMultiSelectCells&&b?j.cellNav.focusedCells.push(a):j.cellNav.focusedCells=[a]}else j.options.modifierKeysToMultiSelectCells&&b&&g>=0&&j.cellNav.focusedCells.splice(g,1)},h.cellNav.handleKeyDown=function(a){var e=b.getDirection(a);if(null===e)return null;var f="body";a.uiGridTargetRenderContainerId&&(f=a.uiGridTargetRenderContainerId);var g=h.grid.api.cellNav.getFocusedCell();if(g){var i=h.grid.renderContainers[f].cellNav.getNextRowCol(e,g.row,g.col),k=h.grid.renderContainers[f].cellNav.getFocusableCols(),l=h.grid.api.cellNav.rowColSelectIndex(i);return e===c.direction.LEFT&&i.col===k[k.length-1]&&i.row===g.row&&a.keyCode===d.keymap.TAB&&a.shiftKey?(j.cellNav.focusedCells.splice(l,1),h.cellNav.clearFocus(),!0):e!==c.direction.RIGHT||i.col!==k[0]||i.row!==g.row||a.keyCode!==d.keymap.TAB||a.shiftKey?(j.scrollToIfNecessary(i.row,i.col).then(function(){h.cellNav.broadcastCellNav(i)}),a.stopPropagation(),a.preventDefault(),!1):(j.cellNav.focusedCells.splice(l,1),h.cellNav.clearFocus(),!0)}}},post:function(a,b,d,e){function f(){var d='
         
        ',e=g(d)(a);b.prepend(e),a.$on(c.CELL_NAV_EVENT,function(a,b,c,d){function f(a){a!==e.text()&&(e[0].style.clip="rect(0px,0px,0px,0px)",e[0].innerHTML="",e[0].style.visibility="hidden",e[0].style.visibility="visible",""!==a&&(e[0].style.clip="auto",e[0].appendChild(document.createTextNode(a+" ")),e[0].style.visibility="hidden",e[0].style.visibility="visible"))}if(!d||"focus"!==d.type){for(var g=[],i=h.api.cellNav.getCurrentSelection(),j=0;j
        ')(b);d.append(o),o.on("focus",function(a){a.uiGridTargetRenderContainerId=m;var b=j.grid.api.cellNav.getFocusedCell();null===b&&(b=j.grid.renderContainers[m].cellNav.getNextRowCol(g.direction.DOWN,null,null),b.row&&b.col&&j.cellNav.broadcastCellNav(b))}),l.setAriaActivedescendant=function(a){d.attr("aria-activedescendant",a)},l.removeAriaActivedescendant=function(a){d.attr("aria-activedescendant")===a&&d.attr("aria-activedescendant","")},j.focus=function(){c.focus.byElement(o[0])};var p=null;o.on("keydown",function(a){a.uiGridTargetRenderContainerId=m;var b=j.grid.api.cellNav.getFocusedCell(),c=j.cellNav.handleKeyDown(a);null===c&&(j.grid.api.cellNav.raise.viewPortKeyDown(a,b),p=b)}),o.on("keypress",function(b){p&&(a(function(){j.grid.api.cellNav.raise.viewPortKeyPress(b,p)},4),p=null)}),b.$on("$destroy",function(){o.off()})}}}}}}}]),a.directive("uiGridViewport",["$timeout","$document","gridUtil","uiGridConstants","uiGridCellNavService","uiGridCellNavConstants","$log","$compile",function(a,b,c,d,e,f,g,h){return{replace:!0,priority:-99999,require:["^uiGrid","^uiGridRenderContainer","?^uiGridCellnav"],scope:!1,compile:function(){return{pre:function(a,b,c,d){},post:function(a,b,c,d){var e=d[0],f=d[1];if(e.grid.api.cellNav){var g=f.containerId;if("body"===g){var h=e.grid;h.api.core.on.scrollBegin(a,function(a){var b=e.grid.api.cellNav.getFocusedCell();null!==b&&f.colContainer.containsColumn(b.col)&&e.cellNav.clearFocus()}),h.api.core.on.scrollEnd(a,function(a){var b=e.grid.api.cellNav.getFocusedCell();null!==b&&f.colContainer.containsColumn(b.col)&&e.cellNav.broadcastCellNav(b)}),h.api.cellNav.on.navigate(a,function(){e.focus()})}}}}}}}]),a.directive("uiGridCell",["$timeout","$document","uiGridCellNavService","gridUtil","uiGridCellNavConstants","uiGridConstants","GridRowColumn",function(a,b,c,d,e,f,g){return{priority:-150,restrict:"A",require:["^uiGrid","?^uiGridCellnav"],scope:!1,link:function(a,b,c,d){function f(a){a.preventDefault()}function h(){if(!a.focused){var c=b.find("div");c.addClass("ui-grid-cell-focus"),b.attr("aria-selected",!0),k.setAriaActivedescendant(b.attr("id")),a.focused=!0}}function i(){if(a.focused){var c=b.find("div");c.removeClass("ui-grid-cell-focus"),b.attr("aria-selected",!1),k.removeAriaActivedescendant(b.attr("id")),a.focused=!1}}var j=d[0],k=d[1];if(j.grid.api.cellNav&&a.col.colDef.allowCellFocus){var l=j.grid;a.focused=!1,b.attr("tabindex",-1),b.find("div").on("click",function(b){j.cellNav.broadcastCellNav(new g(a.row,a.col),b.ctrlKey||b.metaKey,b),b.stopPropagation(),a.$apply()}),b.on("mousedown",f),j.grid.api.edit&&(j.grid.api.edit.on.beginCellEdit(a,function(){b.off("mousedown",f)}),j.grid.api.edit.on.afterCellEdit(a,function(){b.on("mousedown",f)}),j.grid.api.edit.on.cancelCellEdit(a,function(){b.on("mousedown",f)})),b.on("focus",function(b){j.cellNav.broadcastCellNav(new g(a.row,a.col),!1,b),b.stopPropagation(),a.$apply()}),a.$on(e.CELL_NAV_EVENT,function(b,c,d){var e=l.cellNav.focusedCells.some(function(b,c){return b.row===a.row&&b.col===a.col; +});e?h():i()}),a.$on("$destroy",function(){b.find("div").off(),b.off()})}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.edit",["ui.grid"]);a.constant("uiGridEditConstants",{EDITABLE_CELL_TEMPLATE:/EDITABLE_CELL_TEMPLATE/g,EDITABLE_CELL_DIRECTIVE:/editable_cell_directive/g,events:{BEGIN_CELL_EDIT:"uiGridEventBeginCellEdit",END_CELL_EDIT:"uiGridEventEndCellEdit",CANCEL_CELL_EDIT:"uiGridEventCancelCellEdit"}}),a.service("uiGridEditService",["$q","uiGridConstants","gridUtil",function(a,b,c){var d={initializeGrid:function(a){d.defaultGridOptions(a.options),a.registerColumnBuilder(d.editColumnBuilder),a.edit={};var b={events:{edit:{afterCellEdit:function(a,b,c,d){},beginCellEdit:function(a,b,c){},cancelCellEdit:function(a,b){}}},methods:{edit:{}}};a.api.registerEventsFromObject(b.events)},defaultGridOptions:function(a){a.cellEditableCondition=void 0===a.cellEditableCondition?!0:a.cellEditableCondition,a.enableCellEditOnFocus=void 0===a.enableCellEditOnFocus?!1:a.enableCellEditOnFocus},editColumnBuilder:function(b,d,e){var f=[];return b.enableCellEdit=void 0===b.enableCellEdit?void 0===e.enableCellEdit?"object"!==b.type:e.enableCellEdit:b.enableCellEdit,b.cellEditableCondition=void 0===b.cellEditableCondition?e.cellEditableCondition:b.cellEditableCondition,b.enableCellEdit&&(b.editableCellTemplate=b.editableCellTemplate||e.editableCellTemplate||"ui-grid/cellEditor",f.push(c.getTemplate(b.editableCellTemplate).then(function(a){d.editableCellTemplate=a},function(a){throw new Error("Couldn't fetch/use colDef.editableCellTemplate '"+b.editableCellTemplate+"'")}))),b.enableCellEditOnFocus=void 0===b.enableCellEditOnFocus?e.enableCellEditOnFocus:b.enableCellEditOnFocus,a.all(f)},isStartEditKey:function(a){return!(a.metaKey||a.keyCode===b.keymap.ESC||a.keyCode===b.keymap.SHIFT||a.keyCode===b.keymap.CTRL||a.keyCode===b.keymap.ALT||a.keyCode===b.keymap.WIN||a.keyCode===b.keymap.CAPSLOCK||a.keyCode===b.keymap.LEFT||a.keyCode===b.keymap.TAB&&a.shiftKey||a.keyCode===b.keymap.RIGHT||a.keyCode===b.keymap.TAB||a.keyCode===b.keymap.UP||a.keyCode===b.keymap.ENTER&&a.shiftKey||a.keyCode===b.keymap.DOWN||a.keyCode===b.keymap.ENTER)}};return d}]),a.directive("uiGridEdit",["gridUtil","uiGridEditService",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridViewport",["uiGridEditConstants",function(a){return{replace:!0,priority:-99998,require:["^uiGrid","^uiGridRenderContainer"],scope:!1,compile:function(){return{post:function(b,c,d,e){var f=e[0];if(f.grid.api.edit&&f.grid.api.cellNav){var g=e[1].containerId;"body"===g&&(b.$on(a.events.CANCEL_CELL_EDIT,function(){f.focus()}),b.$on(a.events.END_CELL_EDIT,function(){f.focus()}))}}}}}}]),a.directive("uiGridCell",["$compile","$injector","$timeout","uiGridConstants","uiGridEditConstants","gridUtil","$parse","uiGridEditService","$rootScope","$q",function(a,b,c,d,e,f,g,h,i,j){var k=500;if(b.has("uiGridCellNavService")){b.get("uiGridCellNavService")}return{priority:-100,restrict:"A",scope:!1,require:"?^uiGrid",link:function(b,l,m,n){function o(){l.on("dblclick",u),l.on("touchstart",p),n&&n.grid.api.cellNav&&(G=n.grid.api.cellNav.on.viewPortKeyDown(b,function(a,c){null!==c&&(c.row!==b.row||c.col!==b.col||b.col.colDef.enableCellEditOnFocus||s(a))}),F=n.grid.api.cellNav.on.navigate(b,function(a,d){b.col.colDef.enableCellEditOnFocus&&(d&&a.row===d.row&&a.col===d.col||a.row!==b.row||a.col!==b.col||c(function(){u()}))})),b.beginEditEventsWired=!0}function p(a){"undefined"!=typeof a.originalEvent&&void 0!==a.originalEvent&&(a=a.originalEvent),l.on("touchend",q),C=c(function(){},k),C.then(function(){setTimeout(u,0),l.off("touchend",q)})}function q(a){c.cancel(C),l.off("touchend",q)}function r(){l.off("dblclick",u),l.off("keydown",s),l.off("touchstart",p),F(),G(),b.beginEditEventsWired=!1}function s(a){h.isStartEditKey(a)&&u(a)}function t(a,c){return!c.isSaving&&(angular.isFunction(a.colDef.cellEditableCondition)?a.colDef.cellEditableCondition(b):a.colDef.cellEditableCondition)}function u(a){b.grid.api.core.scrollToIfNecessary(b.row,b.col).then(function(){v(a)})}function v(h){if(!E&&t(b.col,b.row)){B=g(b.row.getQualifiedColField(b.col)),A=B(b),z=b.col.editableCellTemplate,z=b.col.colDef.editModelField?z.replace(d.MODEL_COL_FIELD,f.preEval("row.entity."+b.col.colDef.editModelField)):z.replace(d.MODEL_COL_FIELD,b.row.getQualifiedColField(b.col)),z=z.replace(d.COL_FIELD,"grid.getCellValue(row, col)");var k=b.col.colDef.editDropdownFilter?"|"+b.col.colDef.editDropdownFilter:"";z=z.replace(d.CUSTOM_FILTERS,k);var m="text";switch(b.col.colDef.type){case"boolean":m="checkbox";break;case"number":m="number";break;case"date":m="date"}z=z.replace("INPUT_TYPE",m);var n=b.col.colDef.editDropdownOptionsFunction;if(n)j.when(n(b.row.entity,b.col.colDef)).then(function(a){b.editDropdownOptionsArray=a});else{var o=b.col.colDef.editDropdownRowEntityOptionsArrayPath;o?b.editDropdownOptionsArray=y(b.row.entity,o):b.editDropdownOptionsArray=b.col.colDef.editDropdownOptionsArray}b.editDropdownIdLabel=b.col.colDef.editDropdownIdLabel?b.col.colDef.editDropdownIdLabel:"id",b.editDropdownValueLabel=b.col.colDef.editDropdownValueLabel?b.col.colDef.editDropdownValueLabel:"value";var p=function(){E=!0,r();var c=angular.element(z);l.append(c),D=b.$new(),a(c)(D);var d=angular.element(l.children()[0]);d.addClass("ui-grid-cell-contents-hidden")};i.$$phase?p():b.$apply(p);var q=b.col.grid.api.core.on.scrollBegin(b,function(){b.grid.disableScrolling||(w(),b.grid.api.edit.raise.afterCellEdit(b.row.entity,b.col.colDef,B(b),A),q(),s(),u())}),s=b.$on(e.events.END_CELL_EDIT,function(){w(),b.grid.api.edit.raise.afterCellEdit(b.row.entity,b.col.colDef,B(b),A),s(),q(),u()}),u=b.$on(e.events.CANCEL_CELL_EDIT,function(){x(),u(),q(),s()});b.$broadcast(e.events.BEGIN_CELL_EDIT,h),c(function(){b.grid.api.edit.raise.beginCellEdit(b.row.entity,b.col.colDef,h)})}}function w(){if(b.grid.disableScrolling=!1,E){n&&n.grid.api.cellNav&&n.focus();var a=angular.element(l.children()[0]);D.$destroy(),angular.element(l.children()[1]).remove(),a.removeClass("ui-grid-cell-contents-hidden"),E=!1,o(),b.grid.api.core.notifyDataChange(d.dataChange.EDIT)}}function x(){b.grid.disableScrolling=!1,E&&(B.assign(b,A),b.$apply(),b.grid.api.edit.raise.cancelCellEdit(b.row.entity,b.col.colDef),w())}function y(a,b){b=b.replace(/\[(\w+)\]/g,".$1"),b=b.replace(/^\./,"");for(var c=b.split(".");c.length;){var d=c.shift();if(!(d in a))return;a=a[d]}return a}var z,A,B,C,D,E=!1;if(b.col.colDef.enableCellEdit){var F=function(){},G=function(){},H=function(){b.col.colDef.enableCellEdit&&b.row.enableCellEdit!==!1?b.beginEditEventsWired||o():b.beginEditEventsWired&&r()};H();var I=b.$watch("row",function(a,b){a!==b&&H()});b.$on("$destroy",I)}}}}]),a.directive("uiGridEditor",["gridUtil","uiGridConstants","uiGridEditConstants","$timeout","uiGridEditService",function(a,b,c,d,e){return{scope:!0,require:["?^uiGrid","?^uiGridRenderContainer","ngModel"],compile:function(){return{pre:function(a,b,c){},post:function(a,f,g,h){var i,j,k;h[0]&&(i=h[0]),h[1]&&(j=h[1]),h[2]&&(k=h[2]),a.$on(c.events.BEGIN_CELL_EDIT,function(b,c){if(d(function(){if(f[0].focus(),!a.col.colDef.enableCellEditOnFocus&&i&&i.grid.api.cellNav)try{f[0].setSelectionRange(f[0].value.length,f[0].value.length)}catch(b){}else f[0].select()}),i&&i.grid.api.cellNav)var g=i.grid.api.cellNav.on.viewPortKeyPress(a,function(a,b){e.isStartEditKey(a)&&(k.$setViewValue(String.fromCharCode("number"==typeof a.which?a.which:a.keyCode),a),k.$render()),g()});f.on("blur",function(b){a.stopEdit(b)})}),a.deepEdit=!1,a.stopEdit=function(b){a.inputForm&&!a.inputForm.$valid?(b.stopPropagation(),a.$emit(c.events.CANCEL_CELL_EDIT)):a.$emit(c.events.END_CELL_EDIT),a.deepEdit=!1},f.on("click",function(b){"checkbox"!==f[0].type&&(a.deepEdit=!0,d(function(){a.grid.disableScrolling=!0}))}),f.on("keydown",function(d){switch(d.keyCode){case b.keymap.ESC:d.stopPropagation(),a.$emit(c.events.CANCEL_CELL_EDIT)}if(!a.deepEdit||d.keyCode!==b.keymap.LEFT&&d.keyCode!==b.keymap.RIGHT&&d.keyCode!==b.keymap.UP&&d.keyCode!==b.keymap.DOWN)if(i&&i.grid.api.cellNav)d.uiGridTargetRenderContainerId=j.containerId,null!==i.cellNav.handleKeyDown(d)&&a.stopEdit(d);else switch(d.keyCode){case b.keymap.ENTER:case b.keymap.TAB:d.stopPropagation(),d.preventDefault(),a.stopEdit(d)}else d.stopPropagation();return!0})}}}}}]),a.directive("uiGridEditor",["$filter",function(a){function b(a){if("undefined"==typeof a||""===a)return null;var b=a.split("-");if(3!==b.length)return null;var c=parseInt(b[0],10),d=parseInt(b[1],10),e=parseInt(b[2],10);return 1>d||1>c||1>e?null:new Date(c,d-1,e)}return{priority:-100,require:"?ngModel",link:function(c,d,e,f){2===angular.version.minor&&e.type&&"date"===e.type&&f&&(f.$formatters.push(function(b){return f.$setValidity(null,!b||!isNaN(b.getTime())),a("date")(b,"yyyy-MM-dd")}),f.$parsers.push(function(a){if(a&&a.length>0){var c=b(a);return f.$setValidity(null,c&&!isNaN(c.getTime())),c}return f.$setValidity(null,!0),null}))}}}]),a.directive("uiGridEditDropdown",["uiGridConstants","uiGridEditConstants",function(a,b){return{require:["?^uiGrid","?^uiGridRenderContainer"],scope:!0,compile:function(){return{pre:function(a,b,c){},post:function(c,d,e,f){var g=f[0],h=f[1];c.$on(b.events.BEGIN_CELL_EDIT,function(){d[0].focus(),d[0].style.width=d[0].parentElement.offsetWidth-1+"px",d.on("blur",function(a){c.stopEdit(a)})}),c.stopEdit=function(a){c.$emit(b.events.END_CELL_EDIT)},d.on("keydown",function(d){switch(d.keyCode){case a.keymap.ESC:d.stopPropagation(),c.$emit(b.events.CANCEL_CELL_EDIT)}if(g&&g.grid.api.cellNav)d.uiGridTargetRenderContainerId=h.containerId,null!==g.cellNav.handleKeyDown(d)&&c.stopEdit(d);else switch(d.keyCode){case a.keymap.ENTER:case a.keymap.TAB:d.stopPropagation(),d.preventDefault(),c.stopEdit(d)}return!0})}}}}}]),a.directive("uiGridEditFileChooser",["gridUtil","uiGridConstants","uiGridEditConstants","$timeout",function(a,b,c,d){return{scope:!0,require:["?^uiGrid","?^uiGridRenderContainer"],compile:function(){return{pre:function(a,b,c){},post:function(b,d,e,f){var g,h;f[0]&&(g=f[0]),f[1]&&(h=f[1]);var i=(g.grid,function(d){var e=d.srcElement||d.target;e&&e.files&&e.files.length>0?("function"==typeof b.col.colDef.editFileChooserCallback?b.col.colDef.editFileChooserCallback(b.row,b.col,e.files):a.logError("You need to set colDef.editFileChooserCallback to use the file chooser"),e.form.reset(),b.$emit(c.events.END_CELL_EDIT)):b.$emit(c.events.CANCEL_CELL_EDIT)});d[0].addEventListener("change",i,!1),b.$on(c.events.BEGIN_CELL_EDIT,function(){d[0].focus(),d[0].select(),d.on("blur",function(a){b.$emit(c.events.END_CELL_EDIT)})})}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.expandable",["ui.grid"]);a.service("uiGridExpandableService",["gridUtil","$compile",function(a,b){var c={initializeGrid:function(b){b.expandable={},b.expandable.expandedAll=!1,b.options.enableExpandable=b.options.enableExpandable!==!1,b.options.expandableRowHeight=b.options.expandableRowHeight||150,b.options.expandableRowHeaderWidth=b.options.expandableRowHeaderWidth||40,b.options.enableExpandable&&!b.options.expandableRowTemplate&&(a.logError("You have not set the expandableRowTemplate, disabling expandable module"),b.options.enableExpandable=!1);var d={events:{expandable:{rowExpandedBeforeStateChanged:function(a,b){},rowExpandedStateChanged:function(a,b){}}},methods:{expandable:{toggleRowExpansion:function(a){var d=b.getRow(a);null!==d&&c.toggleRowExpansion(b,d)},expandAllRows:function(){c.expandAllRows(b)},collapseAllRows:function(){c.collapseAllRows(b)},toggleAllRows:function(){c.toggleAllRows(b)}}}};b.api.registerEventsFromObject(d.events),b.api.registerMethodsFromObject(d.methods)},toggleRowExpansion:function(a,b){a.api.expandable.raise.rowExpandedBeforeStateChanged(b),b.isExpanded=!b.isExpanded,angular.isUndefined(b.expandedRowHeight)&&(b.expandedRowHeight=a.options.expandableRowHeight),b.isExpanded?b.height=b.grid.options.rowHeight+b.expandedRowHeight:(b.height=b.grid.options.rowHeight,a.expandable.expandedAll=!1),a.api.expandable.raise.rowExpandedStateChanged(b)},expandAllRows:function(a,b){a.renderContainers.body.visibleRowCache.forEach(function(b){b.isExpanded||c.toggleRowExpansion(a,b)}),a.expandable.expandedAll=!0,a.queueGridRefresh()},collapseAllRows:function(a){a.renderContainers.body.visibleRowCache.forEach(function(b){b.isExpanded&&c.toggleRowExpansion(a,b)}),a.expandable.expandedAll=!1,a.queueGridRefresh()},toggleAllRows:function(a){a.expandable.expandedAll?c.collapseAllRows(a):c.expandAllRows(a)}};return c}]),a.directive("uiGridExpandable",["uiGridExpandableService","$templateCache",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(c,d,e,f){if(f.grid.options.enableExpandableRowHeader!==!1){var g={name:"expandableButtons",displayName:"",exporterSuppressExport:!0,enableColumnResizing:!1,enableColumnMenu:!1,width:f.grid.options.expandableRowHeaderWidth||40};g.cellTemplate=b.get("ui-grid/expandableRowHeader"),g.headerCellTemplate=b.get("ui-grid/expandableTopRowHeader"),f.grid.addRowHeaderColumn(g)}a.initializeGrid(f.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGrid",["uiGridExpandableService","$templateCache",function(a,b){return{replace:!0,priority:599,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,b,c,d){d.grid.api.core.on.renderingComplete(a,function(){a.row&&a.row.grid&&a.row.grid.options&&a.row.grid.options.enableExpandable&&(d.grid.parentRow=a.row)})},post:function(a,b,c,d){}}}}}]),a.directive("uiGridExpandableRow",["uiGridExpandableService","$timeout","$compile","uiGridConstants","gridUtil","$interval","$log",function(a,b,c,d,e,f,g){return{replace:!1,priority:0,scope:!1,compile:function(){return{pre:function(a,b,d,f){e.getTemplate(a.grid.options.expandableRowTemplate).then(function(d){if(a.grid.options.expandableRowScope){var e=a.grid.options.expandableRowScope;for(var f in e)e.hasOwnProperty(f)&&(a[f]=e[f])}var g=c(d)(a);b.append(g),a.row.expandedRendered=!0})},post:function(a,b,c,d){a.$on("$destroy",function(){a.row.expandedRendered=!1})}}}}}]),a.directive("uiGridRow",["$compile","gridUtil","$templateCache",function(a,b,c){return{priority:-200,scope:!1,compile:function(a,b){return{pre:function(a,b,c,d){a.expandableRow={},a.expandableRow.shouldRenderExpand=function(){var b="body"===a.colContainer.name&&a.grid.options.enableExpandable!==!1&&a.row.isExpanded&&(!a.grid.isScrollingVertically||a.row.expandedRendered);return b},a.expandableRow.shouldRenderFiller=function(){var b=a.row.isExpanded&&("body"!==a.colContainer.name||a.grid.isScrollingVertically&&!a.row.expandedRendered);return b}},post:function(a,b,c,d){}}}}}]),a.directive("uiGridViewport",["$compile","gridUtil","$templateCache",function(a,b,c){return{priority:-200,scope:!1,compile:function(a,b){var d=angular.element(a.children().children()[0]),e=c.get("ui-grid/expandableScrollFiller"),f=c.get("ui-grid/expandableRow");return d.append(f),d.append(e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.exporter",["ui.grid"]);a.constant("uiGridExporterConstants",{featureName:"exporter",ALL:"all",VISIBLE:"visible",SELECTED:"selected",CSV_CONTENT:"CSV_CONTENT",BUTTON_LABEL:"BUTTON_LABEL",FILE_NAME:"FILE_NAME"}),a.service("uiGridExporterService",["$q","uiGridExporterConstants","gridUtil","$compile","$interval","i18nService",function(a,b,c,d,e,f){var g={delay:100,initializeGrid:function(a){a.exporter={},this.defaultGridOptions(a.options);var b={events:{exporter:{}},methods:{exporter:{csvExport:function(b,c){g.csvExport(a,b,c)},pdfExport:function(b,c){g.pdfExport(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods),a.api.core.addToGridMenu?g.addToMenu(a):e(function(){a.api.core.addToGridMenu&&g.addToMenu(a)},this.delay,1)},defaultGridOptions:function(a){a.exporterSuppressMenu=a.exporterSuppressMenu===!0,a.exporterMenuLabel=a.exporterMenuLabel?a.exporterMenuLabel:"Export",a.exporterSuppressColumns=a.exporterSuppressColumns?a.exporterSuppressColumns:[],a.exporterCsvColumnSeparator=a.exporterCsvColumnSeparator?a.exporterCsvColumnSeparator:",",a.exporterCsvFilename=a.exporterCsvFilename?a.exporterCsvFilename:"download.csv",a.exporterPdfFilename=a.exporterPdfFilename?a.exporterPdfFilename:"download.pdf",a.exporterOlderExcelCompatibility=a.exporterOlderExcelCompatibility===!0,a.exporterPdfDefaultStyle=a.exporterPdfDefaultStyle?a.exporterPdfDefaultStyle:{fontSize:11},a.exporterPdfTableStyle=a.exporterPdfTableStyle?a.exporterPdfTableStyle:{margin:[0,5,0,15]},a.exporterPdfTableHeaderStyle=a.exporterPdfTableHeaderStyle?a.exporterPdfTableHeaderStyle:{bold:!0,fontSize:12,color:"black"},a.exporterPdfHeader=a.exporterPdfHeader?a.exporterPdfHeader:null,a.exporterPdfFooter=a.exporterPdfFooter?a.exporterPdfFooter:null,a.exporterPdfOrientation=a.exporterPdfOrientation?a.exporterPdfOrientation:"landscape",a.exporterPdfPageSize=a.exporterPdfPageSize?a.exporterPdfPageSize:"A4",a.exporterPdfMaxGridWidth=a.exporterPdfMaxGridWidth?a.exporterPdfMaxGridWidth:720,a.exporterMenuAllData=void 0!==a.exporterMenuAllData?a.exporterMenuAllData:!0,a.exporterMenuVisibleData=void 0!==a.exporterMenuVisibleData?a.exporterMenuVisibleData:!0,a.exporterMenuSelectedData=void 0!==a.exporterMenuSelectedData?a.exporterMenuSelectedData:!0,a.exporterMenuCsv=void 0!==a.exporterMenuCsv?a.exporterMenuCsv:!0,a.exporterMenuPdf=void 0!==a.exporterMenuPdf?a.exporterMenuPdf:!0,a.exporterPdfCustomFormatter=a.exporterPdfCustomFormatter&&"function"==typeof a.exporterPdfCustomFormatter?a.exporterPdfCustomFormatter:function(a){return a},a.exporterHeaderFilterUseName=a.exporterHeaderFilterUseName===!0,a.exporterFieldCallback=a.exporterFieldCallback?a.exporterFieldCallback:function(a,b,c,d){return d},a.exporterAllDataFn=a.exporterAllDataFn?a.exporterAllDataFn:null,null==a.exporterAllDataFn&&a.exporterAllDataPromise&&(a.exporterAllDataFn=a.exporterAllDataPromise)},addToMenu:function(a){a.api.core.addToGridMenu(a,[{title:f.getSafeText("gridMenu.exporterAllAsCsv"),action:function(a){this.grid.api.exporter.csvExport(b.ALL,b.ALL)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuAllData},order:200},{title:f.getSafeText("gridMenu.exporterVisibleAsCsv"),action:function(a){this.grid.api.exporter.csvExport(b.VISIBLE,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuVisibleData},order:201},{title:f.getSafeText("gridMenu.exporterSelectedAsCsv"),action:function(a){this.grid.api.exporter.csvExport(b.SELECTED,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuSelectedData&&this.grid.api.selection&&this.grid.api.selection.getSelectedRows().length>0},order:202},{title:f.getSafeText("gridMenu.exporterAllAsPdf"),action:function(a){this.grid.api.exporter.pdfExport(b.ALL,b.ALL)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuAllData},order:203},{title:f.getSafeText("gridMenu.exporterVisibleAsPdf"),action:function(a){this.grid.api.exporter.pdfExport(b.VISIBLE,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuVisibleData},order:204},{title:f.getSafeText("gridMenu.exporterSelectedAsPdf"),action:function(a){this.grid.api.exporter.pdfExport(b.SELECTED,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuSelectedData&&this.grid.api.selection&&this.grid.api.selection.getSelectedRows().length>0},order:205}])},csvExport:function(a,b,c){var d=this;this.loadAllDataIfNeeded(a,b,c).then(function(){var e=a.options.showHeader?d.getColumnHeaders(a,c):[],f=d.getData(a,b,c),g=d.formatAsCsv(e,f,a.options.exporterCsvColumnSeparator);d.downloadFile(a.options.exporterCsvFilename,g,a.options.exporterOlderExcelCompatibility)})},loadAllDataIfNeeded:function(c,d,e){if(d===b.ALL&&c.rows.length!==c.options.totalItems&&c.options.exporterAllDataFn)return c.options.exporterAllDataFn().then(function(){c.modifyRows(c.options.data)});var f=a.defer();return f.resolve(),f.promise},getColumnHeaders:function(a,c){var d,e=[];if(c===b.ALL)d=a.columns;else{var f=a.renderContainers.left?a.renderContainers.left.visibleColumnCache.filter(function(a){return a.visible}):[],g=a.renderContainers.body?a.renderContainers.body.visibleColumnCache.filter(function(a){return a.visible}):[],h=a.renderContainers.right?a.renderContainers.right.visibleColumnCache.filter(function(a){return a.visible}):[];d=f.concat(g,h)}return d.forEach(function(b,c){b.colDef.exporterSuppressExport!==!0&&-1===a.options.exporterSuppressColumns.indexOf(b.name)&&e.push({name:b.field,displayName:a.options.exporterHeaderFilter?a.options.exporterHeaderFilterUseName?a.options.exporterHeaderFilter(b.name):a.options.exporterHeaderFilter(b.displayName):b.displayName,width:b.drawnWidth?b.drawnWidth:b.width,align:"number"===b.colDef.type?"right":"left"})}),e},getData:function(a,d,e,f){var g,h,i=[];switch(d){case b.ALL:g=a.rows;break;case b.VISIBLE:g=a.getVisibleRows();break;case b.SELECTED:a.api.selection?g=a.api.selection.getSelectedGridRows():c.logError("selection feature must be enabled to allow selected rows to be exported")}if(e===b.ALL)h=a.columns;else{var j=a.renderContainers.left?a.renderContainers.left.visibleColumnCache.filter(function(a){return a.visible}):[],k=a.renderContainers.body?a.renderContainers.body.visibleColumnCache.filter(function(a){return a.visible}):[],l=a.renderContainers.right?a.renderContainers.right.visibleColumnCache.filter(function(a){return a.visible}):[];h=j.concat(k,l)}return g.forEach(function(c,d){if(c.exporterEnableExporting!==!1){var g=[];h.forEach(function(d,h){if((d.visible||e===b.ALL)&&d.colDef.exporterSuppressExport!==!0&&-1===a.options.exporterSuppressColumns.indexOf(d.name)){var i=f?a.getCellDisplayValue(c,d):a.getCellValue(c,d),j={value:a.options.exporterFieldCallback(a,c,d,i)};d.colDef.exporterPdfAlign&&(j.alignment=d.colDef.exporterPdfAlign),g.push(j)}}),i.push(g)}}),i},formatAsCsv:function(a,b,c){var d=this,e=a.map(function(a){return{value:a.displayName}}),f=e.length>0?d.formatRowAsCsv(this,c)(e)+"\n":"";return f+=b.map(this.formatRowAsCsv(this,c)).join("\n")},formatRowAsCsv:function(a,b){return function(c){return c.map(a.formatFieldAsCsv).join(b)}},formatFieldAsCsv:function(a){return null==a.value?"":"number"==typeof a.value?a.value:"boolean"==typeof a.value?a.value?"TRUE":"FALSE":"string"==typeof a.value?'"'+a.value.replace(/"/g,'""')+'"':JSON.stringify(a.value)},isIE:function(){var a=navigator.userAgent.search(/(?:Edge|MSIE|Trident\/.*; rv:)/),b=!1;return-1!==a&&(b=!0),b},downloadFile:function(a,b,c){var d,e,f=document,g=f.createElement("a"),h="application/octet-stream;charset=utf-8";if(e=this.isIE(),e&&10>e){var i=f.createElement("iframe");return document.body.appendChild(i),i.contentWindow.document.open("text/html","replace"),i.contentWindow.document.write("sep=,\r\n"+b),i.contentWindow.document.close(),i.contentWindow.focus(),i.contentWindow.document.execCommand("SaveAs",!0,a),document.body.removeChild(i),!0}if(navigator.msSaveBlob)return navigator.msSaveOrOpenBlob(new Blob([c?"\ufeff":"",b],{type:h}),a);if("download"in g){var j=new Blob([c?"\ufeff":"",b],{type:h});d=URL.createObjectURL(j),g.setAttribute("download",a)}else d="data:"+h+","+encodeURIComponent(b),g.setAttribute("target","_blank");g.href=d,g.setAttribute("style","display:none;"),f.body.appendChild(g),setTimeout(function(){if(g.click)g.click();else if(document.createEvent){var a=document.createEvent("MouseEvents");a.initEvent("click",!0,!0),g.dispatchEvent(a)}f.body.removeChild(g)},this.delay)},pdfExport:function(a,b,c){var d=this;this.loadAllDataIfNeeded(a,b,c).then(function(){var e=d.getColumnHeaders(a,c),f=d.getData(a,b,c),g=d.prepareAsPdf(a,e,f);d.isIE()||-1!==navigator.appVersion.indexOf("Edge")?d.downloadPDF(a.options.exporterPdfFilename,g):pdfMake.createPdf(g).open()})},downloadPDF:function(a,b){var c,d=document;d.createElement("a");c=this.isIE();var e,f=pdfMake.createPdf(b);f.getBuffer(function(b){if(e=new Blob([b]),navigator.msSaveBlob)return navigator.msSaveBlob(e,a);if(c){var f=d.createElement("iframe");return document.body.appendChild(f),f.contentWindow.document.open("text/html","replace"),f.contentWindow.document.write(e),f.contentWindow.document.close(),f.contentWindow.focus(),f.contentWindow.document.execCommand("SaveAs",!0,a),document.body.removeChild(f),!0}})},prepareAsPdf:function(a,b,c){var d=this.calculatePdfHeaderWidths(a,b),e=b.map(function(a){return{text:a.displayName,style:"tableHeader"}}),f=c.map(this.formatRowAsPdf(this)),g=[e].concat(f),h={pageOrientation:a.options.exporterPdfOrientation,pageSize:a.options.exporterPdfPageSize,content:[{style:"tableStyle",table:{headerRows:1,widths:d,body:g}}],styles:{tableStyle:a.options.exporterPdfTableStyle,tableHeader:a.options.exporterPdfTableHeaderStyle},defaultStyle:a.options.exporterPdfDefaultStyle};return a.options.exporterPdfLayout&&(h.layout=a.options.exporterPdfLayout),a.options.exporterPdfHeader&&(h.header=a.options.exporterPdfHeader),a.options.exporterPdfFooter&&(h.footer=a.options.exporterPdfFooter),a.options.exporterPdfCustomFormatter&&(h=a.options.exporterPdfCustomFormatter(h)),h},calculatePdfHeaderWidths:function(a,b){var c=0;b.forEach(function(a){"number"==typeof a.width&&(c+=a.width)});var d=0;b.forEach(function(a){if("*"===a.width&&(d+=100),"string"==typeof a.width&&a.width.match(/(\d)*%/)){var b=parseInt(a.width.match(/(\d)*%/)[0]);a.width=c*b/100,d+=a.width}});var e=c+d;return b.map(function(b){return"*"===b.width?b.width:b.width*a.options.exporterPdfMaxGridWidth/e})},formatRowAsPdf:function(a){return function(b){return b.map(a.formatFieldAsPdfString)}},formatFieldAsPdfString:function(a){var b;return b=null==a.value?"":"number"==typeof a.value?a.value.toString():"boolean"==typeof a.value?a.value?"TRUE":"FALSE":"string"==typeof a.value?a.value.replace(/"/g,'""'):JSON.stringify(a.value).replace(/^"/,"").replace(/"$/,""),a.alignment&&"string"==typeof a.alignment&&(b={text:b,alignment:a.alignment}),b}};return g}]),a.directive("uiGridExporter",["uiGridExporterConstants","uiGridExporterService","gridUtil","$compile",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(a,c,d,e){b.initializeGrid(e.grid),e.grid.exporter.$scope=a}}}])}(),function(){"use strict";var a=angular.module("ui.grid.grouping",["ui.grid","ui.grid.treeBase"]);a.constant("uiGridGroupingConstants",{featureName:"grouping",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}}),a.service("uiGridGroupingService",["$q","uiGridGroupingConstants","gridUtil","rowSorter","GridRow","gridClassFactory","i18nService","uiGridConstants","uiGridTreeBaseService",function(a,b,c,d,e,f,g,h,i){var j={initializeGrid:function(a,b){i.initializeGrid(a,b),a.grouping={},a.grouping.groupHeaderCache={},j.defaultGridOptions(a.options),a.registerRowsProcessor(j.groupRows,400),a.registerColumnBuilder(j.groupingColumnBuilder),a.registerColumnsProcessor(j.groupingColumnProcessor,400);var c={events:{grouping:{aggregationChanged:{},groupingChanged:{}}},methods:{grouping:{getGrouping:function(b){var c=j.getGrouping(a);return c.grouping.forEach(function(a){a.colName=a.col.name,delete a.col}),c.aggregations.forEach(function(a){a.colName=a.col.name,delete a.col}),c.aggregations=c.aggregations.filter(function(a){return!a.aggregation.source||"grouping"!==a.aggregation.source}),b&&(c.rowExpandedStates=j.getRowExpandedStates(a.grouping.groupingHeaderCache)),c},setGrouping:function(b){j.setGrouping(a,b)},groupColumn:function(b){var c=a.getColumn(b);j.groupColumn(a,c)},ungroupColumn:function(b){var c=a.getColumn(b);j.ungroupColumn(a,c)},clearGrouping:function(){j.clearGrouping(a)},aggregateColumn:function(b,c,d){var e=a.getColumn(b);j.aggregateColumn(a,e,c,d)}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods),a.api.core.on.sortChanged(b,j.tidyPriorities)},defaultGridOptions:function(a){a.enableGrouping=a.enableGrouping!==!1,a.groupingShowCounts=a.groupingShowCounts!==!1,a.groupingNullLabel="undefined"==typeof a.groupingNullLabel?"Null":a.groupingNullLabel,a.enableGroupHeaderSelection=a.enableGroupHeaderSelection===!0},groupingColumnBuilder:function(a,d,e){if(a.enableGrouping!==!1){"undefined"==typeof d.grouping&&"undefined"!=typeof a.grouping?(d.grouping=angular.copy(a.grouping),"undefined"!=typeof d.grouping.groupPriority&&d.grouping.groupPriority>-1&&(d.treeAggregationFn=i.nativeAggregations()[b.aggregation.COUNT].aggregationFn,d.treeAggregationFinalizerFn=j.groupedFinalizerFn)):"undefined"==typeof d.grouping&&(d.grouping={}),"undefined"!=typeof d.grouping&&"undefined"!=typeof d.grouping.groupPriority&&d.grouping.groupPriority>=0&&(d.suppressRemoveSort=!0);var f={name:"ui.grid.grouping.group",title:g.get().grouping.group,icon:"ui-grid-icon-indent-right",shown:function(){return"undefined"==typeof this.context.col.grouping||"undefined"==typeof this.context.col.grouping.groupPriority||this.context.col.grouping.groupPriority<0},action:function(){j.groupColumn(this.context.col.grid,this.context.col)}},h={name:"ui.grid.grouping.ungroup",title:g.get().grouping.ungroup,icon:"ui-grid-icon-indent-left",shown:function(){return"undefined"!=typeof this.context.col.grouping&&"undefined"!=typeof this.context.col.grouping.groupPriority&&this.context.col.grouping.groupPriority>=0},action:function(){j.ungroupColumn(this.context.col.grid,this.context.col)}},k={name:"ui.grid.grouping.aggregateRemove",title:g.get().grouping.aggregate_remove,shown:function(){return"undefined"!=typeof this.context.col.treeAggregationFn},action:function(){j.aggregateColumn(this.context.col.grid,this.context.col,null)}},l=function(a,b){b=b||g.get().grouping["aggregate_"+a]||a;var e={name:"ui.grid.grouping.aggregate"+a,title:b,shown:function(){return"undefined"==typeof this.context.col.treeAggregation||"undefined"==typeof this.context.col.treeAggregation.type||this.context.col.treeAggregation.type!==a},action:function(){j.aggregateColumn(this.context.col.grid,this.context.col,a)}};c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.aggregate"+a)||d.menuItems.push(e)};d.colDef.groupingShowGroupingMenu!==!1&&(c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.group")||d.menuItems.push(f),c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.ungroup")||d.menuItems.push(h)),d.colDef.groupingShowAggregationMenu!==!1&&(angular.forEach(i.nativeAggregations(),function(a,b){l(b)}),angular.forEach(e.treeCustomAggregations,function(a,b){l(b,a.menuTitle)}),c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.aggregateRemove")||d.menuItems.push(k))}},groupingColumnProcessor:function(a,b){return a=j.moveGroupColumns(this,a,b)},groupedFinalizerFn:function(a){var b=this;"undefined"!=typeof a.groupVal?(a.rendered=a.groupVal,b.grid.options.groupingShowCounts&&"date"!==b.colDef.type&&(a.rendered+=" ("+a.value+")")):a.rendered=null},moveGroupColumns:function(a,b,c){return a.options.moveGroupColumns===!1?b:(b.forEach(function(a,b){a.groupingPosition=b}),b.sort(function(a,b){var c,d;return c=a.isRowHeader?-1e3:"undefined"==typeof a.grouping||"undefined"==typeof a.grouping.groupPriority||a.grouping.groupPriority<0?null:a.grouping.groupPriority,d=b.isRowHeader?-1e3:"undefined"==typeof b.grouping||"undefined"==typeof b.grouping.groupPriority||b.grouping.groupPriority<0?null:b.grouping.groupPriority,null!==c&&null===d?-1:null!==d&&null===c?1:null!==c&&null!==d?c-d:a.groupingPosition-b.groupingPosition}),b.forEach(function(a,b){delete a.groupingPosition}),b)},groupColumn:function(a,c){"undefined"==typeof c.grouping&&(c.grouping={});var d=j.getGrouping(a); +c.grouping.groupPriority=d.grouping.length,c.sort?"undefined"!=typeof c.sort.direction&&null!==c.sort.direction||(c.sort.direction=h.ASC):c.sort={direction:h.ASC},c.treeAggregation={type:b.aggregation.COUNT,source:"grouping"},c.treeAggregationFn=i.nativeAggregations()[b.aggregation.COUNT].aggregationFn,c.treeAggregationFinalizerFn=j.groupedFinalizerFn,a.api.grouping.raise.groupingChanged(c),a.api.core.raise.sortChanged(a,a.getColumnSorting()),a.queueGridRefresh()},ungroupColumn:function(a,b){"undefined"!=typeof b.grouping&&(delete b.grouping.groupPriority,delete b.treeAggregation,delete b.customTreeAggregationFinalizer,j.tidyPriorities(a),a.api.grouping.raise.groupingChanged(b),a.queueGridRefresh())},aggregateColumn:function(a,b,c){"undefined"!=typeof b.grouping&&"undefined"!=typeof b.grouping.groupPriority&&b.grouping.groupPriority>=0&&j.ungroupColumn(a,b);var d={};"undefined"!=typeof a.options.treeCustomAggregations[c]?d=a.options.treeCustomAggregations[c]:"undefined"!=typeof i.nativeAggregations()[c]&&(d=i.nativeAggregations()[c]),b.treeAggregation={type:c,label:g.get().aggregation[d.label]||d.label},b.treeAggregationFn=d.aggregationFn,b.treeAggregationFinalizerFn=d.finalizerFn,a.api.grouping.raise.aggregationChanged(b),a.queueGridRefresh()},setGrouping:function(a,b){"undefined"!=typeof b&&(j.clearGrouping(a),b.grouping&&b.grouping.length&&b.grouping.length>0&&b.grouping.forEach(function(b){var c=a.getColumn(b.colName);c&&j.groupColumn(a,c)}),b.aggregations&&b.aggregations.length&&b.aggregations.forEach(function(b){var c=a.getColumn(b.colName);c&&j.aggregateColumn(a,c,b.aggregation.type)}),b.rowExpandedStates&&j.applyRowExpandedStates(a.grouping.groupingHeaderCache,b.rowExpandedStates))},clearGrouping:function(a){var b=j.getGrouping(a);b.grouping.length>0&&b.grouping.forEach(function(b){b.col||(b.col=a.getColumn(b.colName)),j.ungroupColumn(a,b.col)}),b.aggregations.length>0&&b.aggregations.forEach(function(b){b.col||(b.col=a.getColumn(b.colName)),j.aggregateColumn(a,b.col,null)})},tidyPriorities:function(a){"undefined"!=typeof a&&"undefined"==typeof a.grid||"undefined"==typeof this.grid||(a=this.grid);var b=[],c=[];a.columns.forEach(function(a,d){"undefined"!=typeof a.grouping&&"undefined"!=typeof a.grouping.groupPriority&&a.grouping.groupPriority>=0?b.push(a):"undefined"!=typeof a.sort&&"undefined"!=typeof a.sort.priority&&a.sort.priority>=0&&c.push(a)}),b.sort(function(a,b){return a.grouping.groupPriority-b.grouping.groupPriority}),b.forEach(function(a,b){a.grouping.groupPriority=b,a.suppressRemoveSort=!0,"undefined"==typeof a.sort&&(a.sort={}),a.sort.priority=b});var d=b.length;c.sort(function(a,b){return a.sort.priority-b.sort.priority}),c.forEach(function(a,b){a.sort.priority=d,a.suppressRemoveSort=a.colDef.suppressRemoveSort,d++})},groupRows:function(a){if(0===a.length)return a;var b=this;b.grouping.oldGroupingHeaderCache=b.grouping.groupingHeaderCache||{},b.grouping.groupingHeaderCache={};for(var c=j.initialiseProcessingState(b),e=function(e,h){var i=b.getCellValue(g,e.col);e.initialised&&0===d.getSortFn(b,e.col,a)(i,e.currentValue)||(j.insertGroupHeader(b,a,f,c,h),f++)},f=0;f=0&&b.push({field:a.field,col:a,groupPriority:a.grouping.groupPriority,grouping:a.grouping}),a.treeAggregation&&a.treeAggregation.type&&c.push({field:a.field,col:a,aggregation:a.treeAggregation})}),b.sort(function(a,b){return a.groupPriority-b.groupPriority}),b.forEach(function(a,b){a.grouping.groupPriority=b,a.groupPriority=b,delete a.grouping}),{grouping:b,aggregations:c}},insertGroupHeader:function(a,b,c,d,g){var h=(d[g].fieldName,d[g].col),i=a.getCellValue(b[c],h),k=i;"undefined"!=typeof i&&null!==i||(k=a.options.groupingNullLabel);for(var l=function(a){return angular.isObject(a)?JSON.stringify(a):a},m=a.grouping.oldGroupingHeaderCache,n=0;g>n;n++)m&&m[l(d[n].currentValue)]&&(m=m[l(d[n].currentValue)].children);var o;for(m&&m[l(i)]?(o=m[l(i)].row,o.entity={}):(o=new e({},null,a),f.rowTemplateAssigner.call(a,o)),o.entity["$$"+d[g].col.uid]={groupVal:k},o.treeLevel=g,o.groupHeader=!0,o.internalRow=!0,o.enableCellEdit=!1,o.enableSelection=a.options.enableGroupHeaderSelection,d[g].initialised=!0,d[g].currentValue=i,d[g].currentRow=o,j.finaliseProcessingState(d,g+1),b.splice(c,0,o),m=a.grouping.groupingHeaderCache,n=0;g>n;n++)m=m[l(d[n].currentValue)].children;m[l(i)]={row:o,children:{}}},finaliseProcessingState:function(a,b){for(var c=b;c 1 or < 1 file choosers within the menu item, error, cannot continue"):h[0].addEventListener("change",g,!1)}}}])}(),function(){"use strict";var a=angular.module("ui.grid.infiniteScroll",["ui.grid"]);a.service("uiGridInfiniteScrollService",["gridUtil","$compile","$timeout","uiGridConstants","ScrollEvent","$q",function(a,b,c,d,e,f){var g={initializeGrid:function(a,b){if(g.defaultGridOptions(a.options),a.options.enableInfiniteScroll){a.infiniteScroll={dataLoading:!1},g.setScrollDirections(a,a.options.infiniteScrollUp,a.options.infiniteScrollDown),a.api.core.on.scrollEnd(b,g.handleScroll);var c={events:{infiniteScroll:{needLoadMoreData:function(a,b){},needLoadMoreDataTop:function(a,b){}}},methods:{infiniteScroll:{dataLoaded:function(b,c){g.setScrollDirections(a,b,c);var d=g.adjustScroll(a).then(function(){a.infiniteScroll.dataLoading=!1});return d},resetScroll:function(b,c){return g.setScrollDirections(a,b,c),g.adjustInfiniteScrollPosition(a,0)},saveScrollPercentage:function(){a.infiniteScroll.prevScrollTop=a.renderContainers.body.prevScrollTop,a.infiniteScroll.previousVisibleRows=a.getVisibleRowCount()},dataRemovedTop:function(b,c){g.dataRemovedTop(a,b,c)},dataRemovedBottom:function(b,c){g.dataRemovedBottom(a,b,c)},setScrollDirections:function(b,c){g.setScrollDirections(a,b,c)}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)}},defaultGridOptions:function(a){a.enableInfiniteScroll=a.enableInfiniteScroll!==!1,a.infiniteScrollRowsFromEnd=a.infiniteScrollRowsFromEnd||20,a.infiniteScrollUp=a.infiniteScrollUp===!0,a.infiniteScrollDown=a.infiniteScrollDown!==!1},setScrollDirections:function(a,b,c){a.infiniteScroll.scrollUp=b===!0,a.suppressParentScrollUp=b===!0,a.infiniteScroll.scrollDown=c!==!1,a.suppressParentScrollDown=c!==!1},handleScroll:function(a){if(!(a.grid.infiniteScroll&&a.grid.infiniteScroll.dataLoading||"ui.grid.adjustInfiniteScrollPosition"===a.source)&&a.y){var b,c=a.grid.options.infiniteScrollRowsFromEnd/a.grid.renderContainers.body.visibleRowCache.length;a.grid.scrollDirection===d.scrollDirection.UP?(b=a.y.percentage,c>=b&&g.loadData(a.grid)):a.grid.scrollDirection===d.scrollDirection.DOWN&&(b=1-a.y.percentage,c>=b&&g.loadData(a.grid))}},loadData:function(a){a.infiniteScroll.previousVisibleRows=a.renderContainers.body.visibleRowCache.length,a.infiniteScroll.direction=a.scrollDirection,delete a.infiniteScroll.prevScrollTop,a.scrollDirection===d.scrollDirection.UP&&a.infiniteScroll.scrollUp?(a.infiniteScroll.dataLoading=!0,a.api.infiniteScroll.raise.needLoadMoreDataTop()):a.scrollDirection===d.scrollDirection.DOWN&&a.infiniteScroll.scrollDown&&(a.infiniteScroll.dataLoading=!0,a.api.infiniteScroll.raise.needLoadMoreData())},adjustScroll:function(a){var b=f.defer();return c(function(){var e,f,h,i,j;e=a.getViewportHeight()+a.headerHeight-a.renderContainers.body.headerHeight-a.scrollbarHeight,f=a.options.rowHeight,void 0===a.infiniteScroll.direction&&g.adjustInfiniteScrollPosition(a,0),h=a.getVisibleRowCount();var k=f*h;a.infiniteScroll.scrollDown&&e>k&&a.api.infiniteScroll.raise.needLoadMoreData(),a.infiniteScroll.direction===d.scrollDirection.UP&&(i=a.infiniteScroll.prevScrollTop||0,j=i+(h-a.infiniteScroll.previousVisibleRows)*f,g.adjustInfiniteScrollPosition(a,j),c(function(){b.resolve()})),a.infiniteScroll.direction===d.scrollDirection.DOWN&&(j=a.infiniteScroll.prevScrollTop||a.infiniteScroll.previousVisibleRows*f-e,g.adjustInfiniteScrollPosition(a,j),c(function(){b.resolve()}))},0),b.promise},adjustInfiniteScrollPosition:function(a,b){var c=new e(a,null,null,"ui.grid.adjustInfiniteScrollPosition"),d=a.getVisibleRowCount(),f=a.getViewportHeight()+a.headerHeight-a.renderContainers.body.headerHeight-a.scrollbarHeight,g=a.options.rowHeight,h=d*g-f;0===b&&a.infiniteScroll.scrollUp?c.y={percentage:1/h}:c.y={percentage:b/h},a.scrollContainers("",c)},dataRemovedTop:function(a,b,c){var d,e,f,h;return g.setScrollDirections(a,b,c),d=a.renderContainers.body.visibleRowCache.length,e=a.infiniteScroll.prevScrollTop,h=a.options.rowHeight,f=e-(a.infiniteScroll.previousVisibleRows-d)*h,g.adjustInfiniteScrollPosition(a,f)},dataRemovedBottom:function(a,b,c){var d;return g.setScrollDirections(a,b,c),d=a.infiniteScroll.prevScrollTop,g.adjustInfiniteScrollPosition(a,d)}};return g}]),a.directive("uiGridInfiniteScroll",["uiGridInfiniteScrollService",function(a){return{priority:-200,scope:!1,require:"^uiGrid",compile:function(b,c,d){return{pre:function(b,c,d,e){a.initializeGrid(e.grid,b)},post:function(a,b,c){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.moveColumns",["ui.grid"]);a.service("uiGridMoveColumnService",["$q","$timeout","$log","ScrollEvent","uiGridConstants","gridUtil",function(a,b,c,d,e,f){var g={initializeGrid:function(a){var b=this;this.registerPublicApi(a),this.defaultGridOptions(a.options),a.moveColumns={orderCache:[]},a.registerColumnBuilder(b.movableColumnBuilder),a.registerDataChangeCallback(b.verifyColumnOrder,[e.dataChange.COLUMN])},registerPublicApi:function(a){var b=this,c={events:{colMovable:{columnPositionChanged:function(a,b,c){}}},methods:{colMovable:{moveColumn:function(c,d){var e=a.columns;if(!angular.isNumber(c)||!angular.isNumber(d))return void f.logError("MoveColumn: Please provide valid values for originalPosition and finalPosition");for(var g=0,h=0;h=e.length-g||d>=e.length-g)return void f.logError("MoveColumn: Invalid values for originalPosition, finalPosition");var i=function(a){for(var b=a,c=0;b>=c;c++)angular.isDefined(e[c])&&(angular.isDefined(e[c].colDef.visible)&&e[c].colDef.visible===!1||e[c].isRowHeader===!0)&&b++;return b};b.redrawColumnAtPosition(a,i(c),i(d))}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.enableColumnMoving=a.enableColumnMoving!==!1},movableColumnBuilder:function(b,c,d){var e=[];return b.enableColumnMoving=void 0===b.enableColumnMoving?d.enableColumnMoving:b.enableColumnMoving,a.all(e)},updateColumnCache:function(a){a.moveColumns.orderCache=a.getOnlyDataColumns()},verifyColumnOrder:function(a){var b,c=a.rowHeaderColumns.length;angular.forEach(a.moveColumns.orderCache,function(d,e){if(b=a.columns.indexOf(d),-1!==b&&b-c!==e){var f=a.columns.splice(b,1)[0];a.columns.splice(e+c,0,f)}})},redrawColumnAtPosition:function(a,c,d){if(c!==d){var f=a.columns,h=f[c];if(h.colDef.enableColumnMoving){if(c>d)for(var i=c;i>d;i--)f[i]=f[i-1];else if(d>c)for(var j=c;d>j;j++)f[j]=f[j+1];f[d]=h,g.updateColumnCache(a),a.queueGridRefresh(),b(function(){a.api.core.notifyDataChange(e.dataChange.COLUMN),a.api.colMovable.raise.columnPositionChanged(h.colDef,c,d)})}}}};return g}]),a.directive("uiGridMoveColumns",["uiGridMoveColumnService",function(a){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(b,c,d,e){a.initializeGrid(e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridHeaderCell",["$q","gridUtil","uiGridMoveColumnService","$document","$log","uiGridConstants","ScrollEvent",function(a,b,c,d,e,f,g){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(a,b,e,f){if(a.col.colDef.enableColumnMoving){var h,i,j,k,l,m,n=angular.element(b[0].querySelectorAll(".ui-grid-cell-contents")),o=!1,p=!1,q=function(b){h=a.grid.element[0].getBoundingClientRect().left,a.grid.hasLeftContainer()&&(h+=a.grid.renderContainers.left.header[0].getBoundingClientRect().width),i=b.pageX,j=0,k=h+a.grid.getViewportWidth(),"mousedown"===b.type?(d.on("mousemove",r),d.on("mouseup",s)):"touchstart"===b.type&&(d.on("touchmove",r),d.on("touchend",s))},r=function(a){var b=a.pageX-i;0!==b&&(document.onselectstart=function(){return!1},p=!0,o?o&&(w(b),i=a.pageX):v())},s=function(b){if(document.onselectstart=null,l&&(l.remove(),o=!1),u(),t(),p){for(var d=a.grid.columns,e=0,f=0;fj){for(var g=0,h=e-1;h>=0;h--)if((angular.isUndefined(d[h].colDef.visible)||d[h].colDef.visible===!0)&&(g+=d[h].drawnWidth||d[h].width||d[h].colDef.width,g>Math.abs(j))){c.redrawColumnAtPosition(a.grid,e,h+1);break}g0){for(var i=0,k=e+1;kj)){c.redrawColumnAtPosition(a.grid,e,k-1);break}j>i&&c.redrawColumnAtPosition(a.grid,e,d.length-1)}}},t=function(){n.on("touchstart",q),n.on("mousedown",q)},u=function(){n.off("touchstart",q),n.off("mousedown",q),d.off("mousemove",r),d.off("touchmove",r),d.off("mouseup",s),d.off("touchend",s)};t();var v=function(){o=!0,l=b.clone(),b.parent().append(l),l.addClass("movingColumn");var c={};c.left=b[0].offsetLeft+"px";var d=a.grid.element[0].getBoundingClientRect().right,e=b[0].getBoundingClientRect().right;e>d&&(m=a.col.drawnWidth+(d-e),c.width=m+"px"),l.css(c)},w=function(b){for(var c=a.grid.columns,d=0,e=0;ei?i:k,(n>=h||b>0)&&(k>=o||0>b))l.css({visibility:"visible",left:l[0].offsetLeft+(k>i?b:k-n)+"px"});else if(d>Math.ceil(f.grid.gridWidth)){b*=8;var p=new g(a.col.grid,null,null,"uiGridHeaderCell.moveElement");p.x={pixels:b},p.grid.scrollContainers("",p)}for(var q=0,r=0;r0?a.options.paginationCurrentPage=Math.min(a.options.paginationCurrentPage+1,c.methods.pagination.getTotalPages()):a.options.paginationCurrentPage++)},previousPage:function(){a.options.enablePagination&&(a.options.paginationCurrentPage=Math.max(a.options.paginationCurrentPage-1,1))},seek:function(b){if(a.options.enablePagination){if(!angular.isNumber(b)||1>b)throw"Invalid page number: "+b;a.options.paginationCurrentPage=Math.min(b,c.methods.pagination.getTotalPages())}}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods);var d=function(b){if(a.options.useExternalPagination||!a.options.enablePagination)return b;var c=parseInt(a.options.paginationPageSize,10),d=parseInt(a.options.paginationCurrentPage,10),e=b.filter(function(a){return a.visible});a.options.totalItems=e.length;var f=(d-1)*c;return f>e.length&&(d=a.options.paginationCurrentPage=1,f=(d-1)*c),e.slice(f,f+c)};a.registerRowsProcessor(d,900)},defaultGridOptions:function(b){b.enablePagination=b.enablePagination!==!1,b.enablePaginationControls=b.enablePaginationControls!==!1,b.useExternalPagination=b.useExternalPagination===!0,a.isNullOrUndefined(b.totalItems)&&(b.totalItems=0),a.isNullOrUndefined(b.paginationPageSizes)&&(b.paginationPageSizes=[250,500,1e3]),a.isNullOrUndefined(b.paginationPageSize)&&(b.paginationPageSizes.length>0?b.paginationPageSize=b.paginationPageSizes[0]:b.paginationPageSize=0),a.isNullOrUndefined(b.paginationCurrentPage)&&(b.paginationCurrentPage=1),a.isNullOrUndefined(b.paginationTemplate)&&(b.paginationTemplate="ui-grid/pagination")},onPaginationChanged:function(a,b,c){a.api.pagination.raise.paginationChanged(b,c),a.options.useExternalPagination||a.queueGridRefresh()}};return b}]),a.directive("uiGridPagination",["gridUtil","uiGridPaginationService",function(a,b){return{priority:-200,scope:!1,require:"uiGrid",link:{pre:function(c,d,e,f){b.initializeGrid(f.grid),a.getTemplate(f.grid.options.paginationTemplate).then(function(a){var b=angular.element(a);d.append(b),f.innerCompile(b)})}}}}]),a.directive("uiGridPager",["uiGridPaginationService","uiGridConstants","gridUtil","i18nService",function(a,b,c,d){return{priority:-200,scope:!0,require:"^uiGrid",link:function(e,f,g,h){var i=".ui-grid-pager-control-input";e.aria=d.getSafeText("pagination.aria"),e.paginationApi=h.grid.api.pagination,e.sizesLabel=d.getSafeText("pagination.sizes"),e.totalItemsLabel=d.getSafeText("pagination.totalItems"),e.paginationOf=d.getSafeText("pagination.of"),e.paginationThrough=d.getSafeText("pagination.through");var j=h.grid.options;h.grid.renderContainers.body.registerViewportAdjuster(function(a){return a.height=a.height-c.elementHeight(f,"padding"),a});var k=h.grid.registerDataChangeCallback(function(a){a.options.useExternalPagination||(a.options.totalItems=a.rows.length)},[b.dataChange.ROW]);e.$on("$destroy",k);var l=function(){e.showingLow=(j.paginationCurrentPage-1)*j.paginationPageSize+1,e.showingHigh=Math.min(j.paginationCurrentPage*j.paginationPageSize,j.totalItems)},m=e.$watch("grid.options.totalItems + grid.options.paginationPageSize",l),n=e.$watch("grid.options.paginationCurrentPage + grid.options.paginationPageSize",function(b,c){if(b!==c&&void 0!==c){if(!angular.isNumber(j.paginationCurrentPage)||j.paginationCurrentPage<1)return void(j.paginationCurrentPage=1);if(j.totalItems>0&&j.paginationCurrentPage>e.paginationApi.getTotalPages())return void(j.paginationCurrentPage=e.paginationApi.getTotalPages());l(),a.onPaginationChanged(e.grid,j.paginationCurrentPage,j.paginationPageSize)}});e.$on("$destroy",function(){m(),n()}),e.cantPageForward=function(){return j.totalItems>0?j.paginationCurrentPage>=e.paginationApi.getTotalPages():j.data.length<1},e.cantPageToLast=function(){return j.totalItems>0?e.cantPageForward():!0},e.cantPageBackward=function(){return j.paginationCurrentPage<=1};var o=function(a){a&&c.focus.bySelector(f,i)};e.pageFirstPageClick=function(){e.paginationApi.seek(1),o(e.cantPageBackward())},e.pagePreviousPageClick=function(){e.paginationApi.previousPage(),o(e.cantPageBackward())},e.pageNextPageClick=function(){e.paginationApi.nextPage(),o(e.cantPageForward())},e.pageLastPageClick=function(){e.paginationApi.seek(e.paginationApi.getTotalPages()),o(e.cantPageToLast())}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.pinning",["ui.grid"]);a.constant("uiGridPinningConstants",{container:{LEFT:"left",RIGHT:"right",NONE:""}}),a.service("uiGridPinningService",["gridUtil","GridRenderContainer","i18nService","uiGridPinningConstants",function(a,b,c,d){var e={initializeGrid:function(a){e.defaultGridOptions(a.options),a.registerColumnBuilder(e.pinningColumnBuilder);var b={events:{pinning:{columnPinned:function(a,b){}}},methods:{pinning:{pinColumn:function(b,c){e.pinColumn(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.enablePinning=a.enablePinning!==!1},pinningColumnBuilder:function(b,f,g){if(b.enablePinning=void 0===b.enablePinning?g.enablePinning:b.enablePinning,b.pinnedLeft?(f.renderContainer="left",f.grid.createLeftContainer()):b.pinnedRight&&(f.renderContainer="right",f.grid.createRightContainer()),b.enablePinning){var h={name:"ui.grid.pinning.pinLeft",title:c.get().pinning.pinLeft,icon:"ui-grid-icon-left-open",shown:function(){return"undefined"==typeof this.context.col.renderContainer||!this.context.col.renderContainer||"left"!==this.context.col.renderContainer},action:function(){e.pinColumn(this.context.col.grid,this.context.col,d.container.LEFT)}},i={name:"ui.grid.pinning.pinRight",title:c.get().pinning.pinRight,icon:"ui-grid-icon-right-open",shown:function(){return"undefined"==typeof this.context.col.renderContainer||!this.context.col.renderContainer||"right"!==this.context.col.renderContainer},action:function(){e.pinColumn(this.context.col.grid,this.context.col,d.container.RIGHT)}},j={name:"ui.grid.pinning.unpin",title:c.get().pinning.unpin,icon:"ui-grid-icon-cancel",shown:function(){return"undefined"!=typeof this.context.col.renderContainer&&null!==this.context.col.renderContainer&&"body"!==this.context.col.renderContainer},action:function(){e.pinColumn(this.context.col.grid,this.context.col,d.container.UNPIN)}};a.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.pinLeft")||f.menuItems.push(h),a.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.pinRight")||f.menuItems.push(i),a.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.unpin")||f.menuItems.push(j)}},pinColumn:function(a,b,c){c===d.container.NONE?b.renderContainer=null:(b.renderContainer=c,c===d.container.LEFT?a.createLeftContainer():c===d.container.RIGHT&&a.createRightContainer()),a.refresh().then(function(){a.api.pinning.raise.columnPinned(b.colDef,c)})}};return e}]),a.directive("uiGridPinning",["gridUtil","uiGridPinningService",function(a,b){return{require:"uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(e.grid)},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.resizeColumns",["ui.grid"]);a.service("uiGridResizeColumnsService",["gridUtil","$q","$timeout",function(a,b,c){var d={defaultGridOptions:function(a){a.enableColumnResizing=a.enableColumnResizing!==!1,a.enableColumnResize===!1&&(a.enableColumnResizing=!1)},colResizerColumnBuilder:function(a,c,d){var e=[];return a.enableColumnResizing=void 0===a.enableColumnResizing?d.enableColumnResizing:a.enableColumnResizing,a.enableColumnResize===!1&&(a.enableColumnResizing=!1),b.all(e)},registerPublicApi:function(a){var b={events:{colResizable:{columnSizeChanged:function(a,b){}}}};a.api.registerEventsFromObject(b.events)},fireColumnSizeChanged:function(b,d,e){c(function(){b.api.colResizable?b.api.colResizable.raise.columnSizeChanged(d,e):a.logError("The resizeable api is not registered, this may indicate that you've included the module but not added the 'ui-grid-resize-columns' directive to your grid definition. Cannot raise any events.")})},findTargetCol:function(a,b,c){var d=a.getRenderContainer();if("left"===b){var e=d.visibleColumnCache.indexOf(a);return d.visibleColumnCache[e-1*c]}return a}};return d}]),a.directive("uiGridResizeColumns",["gridUtil","uiGridResizeColumnsService",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.defaultGridOptions(e.grid.options),e.grid.registerColumnBuilder(b.colResizerColumnBuilder),b.registerPublicApi(e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridHeaderCell",["gridUtil","$templateCache","$compile","$q","uiGridResizeColumnsService","uiGridConstants","$timeout",function(a,b,c,d,e,f,g){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(a,d,h,i){var j=i.grid;if(j.options.enableColumnResizing){var k=b.get("ui-grid/columnResizer"),l=1;j.isRTL()&&(a.position="left",l=-1);var m=function(){for(var b=d[0].getElementsByClassName("ui-grid-column-resizer"),f=0;f
        '),f={priority:0,scope:{col:"=",position:"@",renderIndex:"="},require:"?^uiGrid",link:function(f,g,h,i){function j(a){i.grid.refreshCanvas(!0).then(function(){i.grid.queueGridRefresh()})}function k(a,b){var c=b;return a.minWidth&&ca.maxWidth&&(c=a.maxWidth),c}function l(a,b){a.originalEvent&&(a=a.originalEvent),a.preventDefault(),o=(a.targetTouches?a.targetTouches[0]:a).clientX-p,0>o?o=0:o>i.grid.gridWidth&&(o=i.grid.gridWidth);var g=d.findTargetCol(f.col,f.position,q); +if(g.colDef.enableColumnResizing!==!1){i.grid.element.hasClass("column-resizing")||i.grid.element.addClass("column-resizing");var h=o-n,j=parseInt(g.drawnWidth+h*q,10);o+=(k(g,j)-j)*q,e.css({left:o+"px"}),i.fireEvent(c.events.ITEM_DRAGGING)}}function m(a,b){a.originalEvent&&(a=a.originalEvent),a.preventDefault(),i.grid.element.removeClass("column-resizing"),e.remove(),o=(a.changedTouches?a.changedTouches[0]:a).clientX-p;var c=o-n;if(0===c)return t(),void s();var g=d.findTargetCol(f.col,f.position,q);if(g.colDef.enableColumnResizing!==!1){var h=parseInt(g.drawnWidth+c*q,10);g.width=k(g,h),g.hasCustomWidth=!0,j(c),d.fireColumnSizeChanged(i.grid,g.colDef,c),t(),s()}}var n=0,o=0,p=0,q=1;i.grid.isRTL()&&(f.position="left",q=-1),"left"===f.position?g.addClass("left"):"right"===f.position&&g.addClass("right");var r=function(b,c){b.originalEvent&&(b=b.originalEvent),b.stopPropagation(),p=i.grid.element[0].getBoundingClientRect().left,n=(b.targetTouches?b.targetTouches[0]:b).clientX-p,i.grid.element.append(e),e.css({left:n}),"touchstart"===b.type?(a.on("touchend",m),a.on("touchmove",l),g.off("mousedown",r)):(a.on("mouseup",m),a.on("mousemove",l),g.off("touchstart",r))},s=function(){g.on("mousedown",r),g.on("touchstart",r)},t=function(){a.off("mouseup",m),a.off("touchend",m),a.off("mousemove",l),a.off("touchmove",l),g.off("mousedown",r),g.off("touchstart",r)};s();var u=function(a,e){a.stopPropagation();var h=d.findTargetCol(f.col,f.position,q);if(h.colDef.enableColumnResizing!==!1){var l=0,m=0,n=b.closestElm(g,".ui-grid-render-container"),o=n.querySelectorAll("."+c.COL_CLASS_PREFIX+h.uid+" .ui-grid-cell-contents");Array.prototype.forEach.call(o,function(a){var c;angular.element(a).parent().hasClass("ui-grid-header-cell")&&(c=angular.element(a).parent()[0].querySelectorAll(".ui-grid-column-menu-button")),b.fakeElement(a,{},function(a){var d=angular.element(a);d.attr("style","float: left");var e=b.elementWidth(d);if(c){var f=b.elementWidth(c);e+=f}e>l&&(l=e,m=l-e)})}),h.width=k(h,l),h.hasCustomWidth=!0,j(m),d.fireColumnSizeChanged(i.grid,h.colDef,m)}};g.on("dblclick",u),g.on("$destroy",function(){g.off("dblclick",u),t()})}};return f}])}(),function(){"use strict";var a=angular.module("ui.grid.rowEdit",["ui.grid","ui.grid.edit","ui.grid.cellNav"]);a.constant("uiGridRowEditConstants",{}),a.service("uiGridRowEditService",["$interval","$q","uiGridConstants","uiGridRowEditConstants","gridUtil",function(a,b,c,d,e){var f={initializeGrid:function(a,b){b.rowEdit={};var c={events:{rowEdit:{saveRow:function(a){}}},methods:{rowEdit:{setSavePromise:function(a,c){f.setSavePromise(b,a,c)},getDirtyRows:function(){return b.rowEdit.dirtyRows?b.rowEdit.dirtyRows:[]},getErrorRows:function(){return b.rowEdit.errorRows?b.rowEdit.errorRows:[]},flushDirtyRows:function(){return f.flushDirtyRows(b)},setRowsDirty:function(a){f.setRowsDirty(b,a)},setRowsClean:function(a){f.setRowsClean(b,a)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods),b.api.core.on.renderingComplete(a,function(c){b.api.edit.on.afterCellEdit(a,f.endEditCell),b.api.edit.on.beginCellEdit(a,f.beginEditCell),b.api.edit.on.cancelCellEdit(a,f.cancelEditCell),b.api.cellNav&&b.api.cellNav.on.navigate(a,f.navigate)})},defaultGridOptions:function(a){},saveRow:function(a,b){var c=this;return function(){if(b.isSaving=!0,b.rowEditSavePromise)return b.rowEditSavePromise;var d=a.api.rowEdit.raise.saveRow(b.entity);return b.rowEditSavePromise?b.rowEditSavePromise.then(c.processSuccessPromise(a,b),c.processErrorPromise(a,b)):e.logError("A promise was not returned when saveRow event was raised, either nobody is listening to event, or event handler did not return a promise"),d}},setSavePromise:function(a,b,c){var d=a.getRow(b);d.rowEditSavePromise=c},processSuccessPromise:function(a,b){var c=this;return function(){delete b.isSaving,delete b.isDirty,delete b.isError,delete b.rowEditSaveTimer,delete b.rowEditSavePromise,c.removeRow(a.rowEdit.errorRows,b),c.removeRow(a.rowEdit.dirtyRows,b)}},processErrorPromise:function(a,b){return function(){delete b.isSaving,delete b.rowEditSaveTimer,delete b.rowEditSavePromise,b.isError=!0,a.rowEdit.errorRows||(a.rowEdit.errorRows=[]),f.isRowPresent(a.rowEdit.errorRows,b)||a.rowEdit.errorRows.push(b)}},removeRow:function(a,b){"undefined"!=typeof a&&null!==a&&a.forEach(function(c,d){c.uid===b.uid&&a.splice(d,1)})},isRowPresent:function(a,b){var c=!1;return a.forEach(function(a,d){a.uid===b.uid&&(c=!0)}),c},flushDirtyRows:function(a){var c=[];return a.api.rowEdit.getDirtyRows().forEach(function(b){f.saveRow(a,b)(),c.push(b.rowEditSavePromise)}),b.all(c)},endEditCell:function(a,b,c,d){var g=this.grid,h=g.getRow(a);return h?void((c!==d||h.isDirty)&&(g.rowEdit.dirtyRows||(g.rowEdit.dirtyRows=[]),h.isDirty||(h.isDirty=!0,g.rowEdit.dirtyRows.push(h)),delete h.isError,f.considerSetTimer(g,h))):void e.logError("Unable to find rowEntity in grid data, dirty flag cannot be set")},beginEditCell:function(a,b){var c=this.grid,d=c.getRow(a);return d?void f.cancelTimer(c,d):void e.logError("Unable to find rowEntity in grid data, timer cannot be cancelled")},cancelEditCell:function(a,b){var c=this.grid,d=c.getRow(a);return d?void f.considerSetTimer(c,d):void e.logError("Unable to find rowEntity in grid data, timer cannot be set")},navigate:function(a,b){var c=this.grid;a.row.rowEditSaveTimer&&f.cancelTimer(c,a.row),b&&b.row&&b.row!==a.row&&f.considerSetTimer(c,b.row)},considerSetTimer:function(b,c){if(f.cancelTimer(b,c),c.isDirty&&!c.isSaving&&-1!==b.options.rowEditWaitInterval){var d=b.options.rowEditWaitInterval?b.options.rowEditWaitInterval:2e3;c.rowEditSaveTimer=a(f.saveRow(b,c),d,1)}},cancelTimer:function(b,c){c.rowEditSaveTimer&&!c.isSaving&&(a.cancel(c.rowEditSaveTimer),delete c.rowEditSaveTimer)},setRowsDirty:function(a,b){var c;b.forEach(function(b,d){c=a.getRow(b),c?(a.rowEdit.dirtyRows||(a.rowEdit.dirtyRows=[]),c.isDirty||(c.isDirty=!0,a.rowEdit.dirtyRows.push(c)),delete c.isError,f.considerSetTimer(a,c)):e.logError("requested row not found in rowEdit.setRowsDirty, row was: "+b)})},setRowsClean:function(a,b){var c;b.forEach(function(b,d){c=a.getRow(b),c?(delete c.isDirty,f.removeRow(a.rowEdit.dirtyRows,c),f.cancelTimer(a,c),delete c.isError,f.removeRow(a.rowEdit.errorRows,c)):e.logError("requested row not found in rowEdit.setRowsClean, row was: "+b)})}};return f}]),a.directive("uiGridRowEdit",["gridUtil","uiGridRowEditService","uiGridEditConstants",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(a,e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","gridUtil","$parse",function(a,b,c,d){return{priority:-200,scope:!1,compile:function(a,b){var c=angular.element(a.children().children()[0]),d=c.attr("ng-class"),e="";return e=d?d.slice(0,-1)+", 'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}":"{'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}",c.attr("ng-class",e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.saveState",["ui.grid","ui.grid.selection","ui.grid.cellNav","ui.grid.grouping","ui.grid.pinning","ui.grid.treeView"]);a.constant("uiGridSaveStateConstants",{featureName:"saveState"}),a.service("uiGridSaveStateService",["$q","uiGridSaveStateConstants","gridUtil","$compile","$interval","uiGridConstants",function(a,b,c,d,e,f){var g={initializeGrid:function(a){a.saveState={},this.defaultGridOptions(a.options);var b={events:{saveState:{}},methods:{saveState:{save:function(){return g.save(a)},restore:function(b,c){g.restore(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.saveWidths=a.saveWidths!==!1,a.saveOrder=a.saveOrder!==!1,a.saveScroll=a.saveScroll===!0,a.saveFocus=a.saveScroll!==!0&&a.saveFocus!==!1,a.saveVisible=a.saveVisible!==!1,a.saveSort=a.saveSort!==!1,a.saveFilter=a.saveFilter!==!1,a.saveSelection=a.saveSelection!==!1,a.saveGrouping=a.saveGrouping!==!1,a.saveGroupingExpandedStates=a.saveGroupingExpandedStates===!0,a.savePinning=a.savePinning!==!1,a.saveTreeView=a.saveTreeView!==!1},save:function(a){var b={};return b.columns=g.saveColumns(a),b.scrollFocus=g.saveScrollFocus(a),b.selection=g.saveSelection(a),b.grouping=g.saveGrouping(a),b.treeView=g.saveTreeView(a),b},restore:function(a,b,c){c.columns&&g.restoreColumns(a,c.columns),c.scrollFocus&&g.restoreScrollFocus(a,b,c.scrollFocus),c.selection&&g.restoreSelection(a,c.selection),c.grouping&&g.restoreGrouping(a,c.grouping),c.treeView&&g.restoreTreeView(a,c.treeView),a.refresh()},saveColumns:function(a){var b=[];return a.getOnlyDataColumns().forEach(function(c){var d={};d.name=c.name,a.options.saveVisible&&(d.visible=c.visible),a.options.saveWidths&&(d.width=c.width),a.options.saveSort&&(d.sort=angular.copy(c.sort)),a.options.saveFilter&&(d.filters=[],c.filters.forEach(function(a){var b={};angular.forEach(a,function(a,c){"condition"!==c&&"$$hashKey"!==c&&"placeholder"!==c&&(b[c]=a)}),d.filters.push(b)})),a.api.pinning&&a.options.savePinning&&(d.pinned=c.renderContainer?c.renderContainer:""),b.push(d)}),b},saveScrollFocus:function(a){if(!a.api.cellNav)return{};var b={};if(a.options.saveFocus){b.focus=!0;var c=a.api.cellNav.getFocusedCell();null!==c&&(null!==c.col&&(b.colName=c.col.colDef.name),null!==c.row&&(b.rowVal=g.getRowVal(a,c.row)))}return(a.options.saveScroll||a.options.saveFocus&&!b.colName&&!b.rowVal)&&(b.focus=!1,a.renderContainers.body.prevRowScrollIndex&&(b.rowVal=g.getRowVal(a,a.renderContainers.body.visibleRowCache[a.renderContainers.body.prevRowScrollIndex])),a.renderContainers.body.prevColScrollIndex&&(b.colName=a.renderContainers.body.visibleColumnCache[a.renderContainers.body.prevColScrollIndex].name)),b},saveSelection:function(a){if(!a.api.selection||!a.options.saveSelection)return[];var b=a.api.selection.getSelectedGridRows().map(function(b){return g.getRowVal(a,b)});return b},saveGrouping:function(a){return a.api.grouping&&a.options.saveGrouping?a.api.grouping.getGrouping(a.options.saveGroupingExpandedStates):{}},saveTreeView:function(a){return a.api.treeView&&a.options.saveTreeView?a.api.treeView.getTreeView():{}},getRowVal:function(a,b){if(!b)return null;var c={};return a.options.saveRowIdentity?(c.identity=!0,c.row=a.options.saveRowIdentity(b.entity)):(c.identity=!1,c.row=a.renderContainers.body.visibleRowCache.indexOf(b)),c},restoreColumns:function(a,b){var c=!1;b.forEach(function(b,d){var e=a.getColumn(b.name);if(e&&!a.isRowHeaderColumn(e)){!a.options.saveVisible||e.visible===b.visible&&e.colDef.visible===b.visible||(e.visible=b.visible,e.colDef.visible=b.visible,a.api.core.raise.columnVisibilityChanged(e)),a.options.saveWidths&&(e.width=b.width),!a.options.saveSort||angular.equals(e.sort,b.sort)||void 0===e.sort&&angular.isEmpty(b.sort)||(e.sort=angular.copy(b.sort),c=!0),a.options.saveFilter&&!angular.equals(e.filters,b.filters)&&(b.filters.forEach(function(a,b){angular.extend(e.filters[b],a),"undefined"!=typeof a.term&&null!==a.term||delete e.filters[b].term}),a.api.core.raise.filterChanged()),a.api.pinning&&a.options.savePinning&&e.renderContainer!==b.pinned&&a.api.pinning.pinColumn(e,b.pinned);var f=a.getOnlyDataColumns().indexOf(e);if(-1!==f&&a.options.saveOrder&&f!==d){var g=a.columns.splice(f+a.rowHeaderColumns.length,1)[0];a.columns.splice(d+a.rowHeaderColumns.length,0,g)}}}),c&&a.api.core.raise.sortChanged(a,a.getColumnSorting())},restoreScrollFocus:function(a,b,c){if(a.api.cellNav){var d,e;if(c.colName){var f=a.options.columnDefs.filter(function(a){return a.name===c.colName});f.length>0&&(d=f[0])}c.rowVal&&c.rowVal.row&&(e=c.rowVal.identity?g.findRowByIdentity(a,c.rowVal):a.renderContainers.body.visibleRowCache[c.rowVal.row]);var h=e&&e.entity?e.entity:null;(d||h)&&(c.focus?a.api.cellNav.scrollToFocus(h,d):a.scrollTo(h,d))}},restoreSelection:function(a,b){a.api.selection&&(a.api.selection.clearSelectedRows(),b.forEach(function(b){if(b.identity){var c=g.findRowByIdentity(a,b);c&&a.api.selection.selectRow(c.entity)}else a.api.selection.selectRowByVisibleIndex(b.row)}))},restoreGrouping:function(a,b){a.api.grouping&&"undefined"!=typeof b&&null!==b&&!angular.equals(b,{})&&a.api.grouping.setGrouping(b)},restoreTreeView:function(a,b){a.api.treeView&&"undefined"!=typeof b&&null!==b&&!angular.equals(b,{})&&a.api.treeView.setTreeView(b)},findRowByIdentity:function(a,b){if(!a.options.saveRowIdentity)return null;var c=a.rows.filter(function(c){return a.options.saveRowIdentity(c.entity)===b.row});return c.length>0?c[0]:null}};return g}]),a.directive("uiGridSaveState",["uiGridSaveStateConstants","uiGridSaveStateService","gridUtil","$compile",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(a,c,d,e){b.initializeGrid(e.grid)}}}])}(),function(){"use strict";var a=angular.module("ui.grid.selection",["ui.grid"]);a.constant("uiGridSelectionConstants",{featureName:"selection",selectionRowHeaderColName:"selectionRowHeaderCol"}),angular.module("ui.grid").config(["$provide",function(a){a.decorator("GridRow",["$delegate",function(a){return a.prototype.setSelected=function(a){this.isSelected=a,a?this.grid.selection.selectedCount++:this.grid.selection.selectedCount--},a}])}]),a.service("uiGridSelectionService",["$q","$templateCache","uiGridSelectionConstants","gridUtil",function(a,b,c,d){var e={initializeGrid:function(a){a.selection={},a.selection.lastSelectedRow=null,a.selection.selectAll=!1,a.selection.selectedCount=0,e.defaultGridOptions(a.options);var b={events:{selection:{rowSelectionChanged:function(a,b,c){},rowSelectionChangedBatch:function(a,b,c){}}},methods:{selection:{toggleRowSelection:function(b,c){var d=a.getRow(b);null!==d&&e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},selectRow:function(b,c){var d=a.getRow(b);null===d||d.isSelected||e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},selectRowByVisibleIndex:function(b,c){var d=a.renderContainers.body.visibleRowCache[b];null===d||"undefined"==typeof d||d.isSelected||e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},unSelectRow:function(b,c){var d=a.getRow(b);null!==d&&d.isSelected&&e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},selectAllRows:function(b){if(a.options.multiSelect!==!1){var c=[];a.rows.forEach(function(d){d.isSelected||d.enableSelection===!1||(d.setSelected(!0),e.decideRaiseSelectionEvent(a,d,c,b))}),e.decideRaiseSelectionBatchEvent(a,c,b),a.selection.selectAll=!0}},selectAllVisibleRows:function(b){if(a.options.multiSelect!==!1){var c=[];a.rows.forEach(function(d){d.visible?d.isSelected||d.enableSelection===!1||(d.setSelected(!0),e.decideRaiseSelectionEvent(a,d,c,b)):d.isSelected&&(d.setSelected(!1),e.decideRaiseSelectionEvent(a,d,c,b))}),e.decideRaiseSelectionBatchEvent(a,c,b),a.selection.selectAll=!0}},clearSelectedRows:function(b){e.clearSelectedRows(a,b)},getSelectedRows:function(){return e.getSelectedRows(a).map(function(a){return a.entity})},getSelectedGridRows:function(){return e.getSelectedRows(a)},getSelectedCount:function(){return a.selection.selectedCount},setMultiSelect:function(b){a.options.multiSelect=b},setModifierKeysToMultiSelect:function(b){a.options.modifierKeysToMultiSelect=b},getSelectAllState:function(){return a.selection.selectAll}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.enableRowSelection=a.enableRowSelection!==!1,a.multiSelect=a.multiSelect!==!1,a.noUnselect=a.noUnselect===!0,a.modifierKeysToMultiSelect=a.modifierKeysToMultiSelect===!0,a.enableRowHeaderSelection=a.enableRowHeaderSelection!==!1,"undefined"==typeof a.enableFullRowSelection&&(a.enableFullRowSelection=!a.enableRowHeaderSelection),a.enableSelectAll=a.enableSelectAll!==!1,a.enableSelectionBatchEvent=a.enableSelectionBatchEvent!==!1,a.selectionRowHeaderWidth=angular.isDefined(a.selectionRowHeaderWidth)?a.selectionRowHeaderWidth:30,a.enableFooterTotalSelected=a.enableFooterTotalSelected!==!1,a.isRowSelectable=angular.isDefined(a.isRowSelectable)?a.isRowSelectable:angular.noop},toggleRowSelection:function(a,b,c,d,f){var g=b.isSelected;if(b.enableSelection!==!1||g){var h;d||g?!d&&g&&(h=e.getSelectedRows(a),h.length>1&&(g=!1,e.clearSelectedRows(a,c))):e.clearSelectedRows(a,c),g&&f||(b.setSelected(!g),b.isSelected===!0&&(a.selection.lastSelectedRow=b),h=e.getSelectedRows(a),a.selection.selectAll=a.rows.length===h.length,a.api.selection.raise.rowSelectionChanged(b,c))}},shiftSelect:function(a,b,c,d){if(d){var f=e.getSelectedRows(a),g=f.length>0?a.renderContainers.body.visibleRowCache.indexOf(a.selection.lastSelectedRow):0,h=a.renderContainers.body.visibleRowCache.indexOf(b);if(g>h){var i=g;g=h,h=i}for(var j=[],k=g;h>=k;k++){var l=a.renderContainers.body.visibleRowCache[k];l&&(l.isSelected||l.enableSelection===!1||(l.setSelected(!0),a.selection.lastSelectedRow=l,e.decideRaiseSelectionEvent(a,l,j,c)))}e.decideRaiseSelectionBatchEvent(a,j,c)}},getSelectedRows:function(a){return a.rows.filter(function(a){return a.isSelected})},clearSelectedRows:function(a,b){var c=[];e.getSelectedRows(a).forEach(function(d){d.isSelected&&(d.setSelected(!1),e.decideRaiseSelectionEvent(a,d,c,b))}),e.decideRaiseSelectionBatchEvent(a,c,b),a.selection.selectAll=!1,a.selection.selectedCount=0},decideRaiseSelectionEvent:function(a,b,c,d){a.options.enableSelectionBatchEvent?c.push(b):a.api.selection.raise.rowSelectionChanged(b,d)},decideRaiseSelectionBatchEvent:function(a,b,c){b.length>0&&a.api.selection.raise.rowSelectionChangedBatch(b,c)}};return e}]),a.directive("uiGridSelection",["uiGridSelectionConstants","uiGridSelectionService","$templateCache","uiGridConstants",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(c,e,f,g){if(b.initializeGrid(g.grid),g.grid.options.enableRowHeaderSelection){var h={name:a.selectionRowHeaderColName,displayName:"",width:g.grid.options.selectionRowHeaderWidth,minWidth:10,cellTemplate:"ui-grid/selectionRowHeader",headerCellTemplate:"ui-grid/selectionHeaderCell",enableColumnResizing:!1,enableColumnMenu:!1,exporterSuppressExport:!0,allowCellFocus:!0};g.grid.addRowHeaderColumn(h)}var i=!1,j=function(a){return a.forEach(function(a){a.enableSelection=g.grid.options.isRowSelectable(a)}),a},k=function(){g.grid.options.isRowSelectable!==angular.noop&&i!==!0&&(g.grid.registerRowsProcessor(j,500),i=!0)};k();var l=g.grid.registerDataChangeCallback(k,[d.dataChange.OPTIONS]);c.$on("$destroy",l)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridSelectionRowHeaderButtons",["$templateCache","uiGridSelectionService","gridUtil",function(a,b,c){return{replace:!0,restrict:"E",template:a.get("ui-grid/selectionRowHeaderButtons"),scope:!0,require:"^uiGrid",link:function(a,d,e,f){function g(a,c){c.stopPropagation(),c.shiftKey?b.shiftSelect(i,a,c,i.options.multiSelect):c.ctrlKey||c.metaKey?b.toggleRowSelection(i,a,c,i.options.multiSelect,i.options.noUnselect):b.toggleRowSelection(i,a,c,i.options.multiSelect&&!i.options.modifierKeysToMultiSelect,i.options.noUnselect)}function h(a){(a.ctrlKey||a.shiftKey)&&(a.target.onselectstart=function(){return!1},window.setTimeout(function(){a.target.onselectstart=null},0))}var i=f.grid;a.selectButtonClick=g,"ie"===c.detectBrowser()&&d.on("mousedown",h)}}}]),a.directive("uiGridSelectionSelectAllButtons",["$templateCache","uiGridSelectionService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/selectionSelectAllButtons"),scope:!1,link:function(a,c,d,e){var f=a.col.grid;a.headerButtonClick=function(a,c){f.selection.selectAll?(b.clearSelectedRows(f,c),f.options.noUnselect&&f.api.selection.selectRowByVisibleIndex(0,c),f.selection.selectAll=!1):f.options.multiSelect&&(f.api.selection.selectAllVisibleRows(c),f.selection.selectAll=!0)}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","uiGridSelectionConstants","gridUtil","$parse","uiGridSelectionService",function(a,b,c,d,e,f){return{priority:-200,scope:!1,compile:function(a,b){var c=angular.element(a.children().children()[0]),d=c.attr("ng-class"),e="";return e=d?d.slice(0,-1)+",'ui-grid-row-selected': row.isSelected}":"{'ui-grid-row-selected': row.isSelected}",c.attr("ng-class",e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}]),a.directive("uiGridCell",["$compile","uiGridConstants","uiGridSelectionConstants","gridUtil","$parse","uiGridSelectionService","$timeout",function(a,b,c,d,e,f,g){return{priority:-200,restrict:"A",require:"?^uiGrid",scope:!1,link:function(a,c,d,e){function h(){a.grid.options.enableRowSelection&&a.grid.options.enableFullRowSelection&&(c.addClass("ui-grid-disable-selection"),c.on("touchstart",m),c.on("touchend",n),c.on("click",l),a.registered=!0)}function i(){a.registered&&(c.removeClass("ui-grid-disable-selection"),c.off("touchstart",m),c.off("touchend",n),c.off("click",l),a.registered=!1)}var j=0,k=300;e.grid.api.cellNav&&e.grid.api.cellNav.on.viewPortKeyDown(a,function(b,c){null!==c&&c.row===a.row&&c.col===a.col&&32===b.keyCode&&"selectionRowHeaderCol"===a.col.colDef.name&&(f.toggleRowSelection(a.grid,a.row,b,a.grid.options.multiSelect&&!a.grid.options.modifierKeysToMultiSelect,a.grid.options.noUnselect),a.$apply())});var l=function(b){c.off("touchend",n),b.shiftKey?f.shiftSelect(a.grid,a.row,b,a.grid.options.multiSelect):b.ctrlKey||b.metaKey?f.toggleRowSelection(a.grid,a.row,b,a.grid.options.multiSelect,a.grid.options.noUnselect):f.toggleRowSelection(a.grid,a.row,b,a.grid.options.multiSelect&&!a.grid.options.modifierKeysToMultiSelect,a.grid.options.noUnselect),a.$apply(),g(function(){c.on("touchend",n)},k)},m=function(a){j=(new Date).getTime(),c.off("click",l)},n=function(a){var b=(new Date).getTime(),d=b-j;k>d&&l(a),g(function(){c.on("click",l)},k)};h();var o=a.grid.registerDataChangeCallback(function(){a.grid.options.enableRowSelection&&a.grid.options.enableFullRowSelection&&!a.registered?h():a.grid.options.enableRowSelection&&a.grid.options.enableFullRowSelection||!a.registered||i()},[b.dataChange.OPTIONS]);c.on("$destroy",o)}}}]),a.directive("uiGridGridFooter",["$compile","uiGridConstants","gridUtil",function(a,b,c){return{restrict:"EA",replace:!0,priority:-1e3,require:"^uiGrid",scope:!0,compile:function(b,d){return{pre:function(b,d,e,f){f.grid.options.showGridFooter&&c.getTemplate("ui-grid/gridFooterSelectedItems").then(function(c){var e=angular.element(c),f=a(e)(b);angular.element(d[0].getElementsByClassName("ui-grid-grid-footer")[0]).append(f)})},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.treeBase",["ui.grid"]);a.constant("uiGridTreeBaseConstants",{featureName:"treeBase",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}}),a.service("uiGridTreeBaseService",["$q","uiGridTreeBaseConstants","gridUtil","GridRow","gridClassFactory","i18nService","uiGridConstants","rowSorter",function(a,b,c,d,e,f,g,h){var i={initializeGrid:function(a,b){a.treeBase={},a.treeBase.numberLevels=0,a.treeBase.expandAll=!1,a.treeBase.tree=[],i.defaultGridOptions(a.options),a.registerRowsProcessor(i.treeRows,410),a.registerColumnBuilder(i.treeBaseColumnBuilder),i.createRowHeader(a);var c={events:{treeBase:{rowExpanded:{},rowCollapsed:{}}},methods:{treeBase:{expandAllRows:function(){i.expandAllRows(a)},collapseAllRows:function(){i.collapseAllRows(a)},toggleRowTreeState:function(b){i.toggleRowTreeState(a,b)},expandRow:function(b){i.expandRow(a,b)},expandRowChildren:function(b){i.expandRowChildren(a,b)},collapseRow:function(b){i.collapseRow(a,b)},collapseRowChildren:function(b){i.collapseRowChildren(a,b)},getTreeExpandedState:function(){return{expandedState:i.getTreeState(a)}},setTreeState:function(b){i.setTreeState(a,b)},getRowChildren:function(a){return a.treeNode.children.map(function(a){return a.row})}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.treeRowHeaderBaseWidth=a.treeRowHeaderBaseWidth||30,a.treeIndent=a.treeIndent||10,a.showTreeRowHeader=a.showTreeRowHeader!==!1,a.showTreeExpandNoChildren=a.showTreeExpandNoChildren!==!1,a.treeRowHeaderAlwaysVisible=a.treeRowHeaderAlwaysVisible!==!1,a.treeCustomAggregations=a.treeCustomAggregations||{}},treeBaseColumnBuilder:function(a,b,c){"undefined"!=typeof a.customTreeAggregationFn&&(b.treeAggregationFn=a.customTreeAggregationFn),"undefined"!=typeof a.treeAggregationType&&(b.treeAggregation={type:a.treeAggregationType},"undefined"!=typeof c.treeCustomAggregations[a.treeAggregationType]?(b.treeAggregationFn=c.treeCustomAggregations[a.treeAggregationType].aggregationFn,b.treeAggregationFinalizerFn=c.treeCustomAggregations[a.treeAggregationType].finalizerFn,b.treeAggregation.label=c.treeCustomAggregations[a.treeAggregationType].label):"undefined"!=typeof i.nativeAggregations()[a.treeAggregationType]&&(b.treeAggregationFn=i.nativeAggregations()[a.treeAggregationType].aggregationFn,b.treeAggregation.label=i.nativeAggregations()[a.treeAggregationType].label)),"undefined"!=typeof a.treeAggregationLabel&&("undefined"==typeof b.treeAggregation&&(b.treeAggregation={}),b.treeAggregation.label=a.treeAggregationLabel),b.treeAggregationUpdateEntity=a.treeAggregationUpdateEntity!==!1,"undefined"==typeof b.customTreeAggregationFinalizerFn&&(b.customTreeAggregationFinalizerFn=a.customTreeAggregationFinalizerFn)},createRowHeader:function(a){var c={name:b.rowHeaderColName,displayName:"",width:a.options.treeRowHeaderBaseWidth,minWidth:10,cellTemplate:"ui-grid/treeBaseRowHeader",headerCellTemplate:"ui-grid/treeBaseHeaderCell",enableColumnResizing:!1,enableColumnMenu:!1,exporterSuppressExport:!0,allowCellFocus:!0};c.visible=a.options.treeRowHeaderAlwaysVisible,a.addRowHeaderColumn(c)},expandAllRows:function(a){a.treeBase.tree.forEach(function(c){i.setAllNodes(a,c,b.EXPANDED)}),a.treeBase.expandAll=!0,a.queueGridRefresh()},collapseAllRows:function(a){a.treeBase.tree.forEach(function(c){i.setAllNodes(a,c,b.COLLAPSED)}),a.treeBase.expandAll=!1,a.queueGridRefresh()},setAllNodes:function(a,c,d){"undefined"!=typeof c.state&&c.state!==d&&(c.state=d,d===b.EXPANDED?a.api.treeBase.raise.rowExpanded(c.row):a.api.treeBase.raise.rowCollapsed(c.row)),c.children&&c.children.forEach(function(b){i.setAllNodes(a,b,d)})},toggleRowTreeState:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||(c.treeNode.state===b.EXPANDED?i.collapseRow(a,c):i.expandRow(a,c),a.queueGridRefresh())},expandRow:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||c.treeNode.state!==b.EXPANDED&&(c.treeNode.state=b.EXPANDED,a.api.treeBase.raise.rowExpanded(c),a.treeBase.expandAll=i.allExpanded(a.treeBase.tree),a.queueGridRefresh())},expandRowChildren:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||(i.setAllNodes(a,c.treeNode,b.EXPANDED),a.treeBase.expandAll=i.allExpanded(a.treeBase.tree),a.queueGridRefresh())},collapseRow:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||c.treeNode.state!==b.COLLAPSED&&(c.treeNode.state=b.COLLAPSED,a.treeBase.expandAll=!1,a.api.treeBase.raise.rowCollapsed(c),a.queueGridRefresh())},collapseRowChildren:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||(i.setAllNodes(a,c.treeNode,b.COLLAPSED),a.treeBase.expandAll=!1,a.queueGridRefresh())},allExpanded:function(a){var b=!0;return a.forEach(function(a){i.allExpandedInternal(a)||(b=!1)}),b},allExpandedInternal:function(a){if(a.children&&a.children.length>0){if(a.state===b.COLLAPSED)return!1;var c=!0;return a.children.forEach(function(a){i.allExpandedInternal(a)||(c=!1)}),c}return!0},treeRows:function(a){if(0===a.length)return a;var c=this;b.EXPANDED;return c.treeBase.tree=i.createTree(c,a),i.updateRowHeaderWidth(c),i.sortTree(c),i.fixFilter(c),i.renderTree(c.treeBase.tree)},updateRowHeaderWidth:function(a){var c=a.getColumn(b.rowHeaderColName),d=a.options.treeRowHeaderBaseWidth+a.options.treeIndent*Math.max(a.treeBase.numberLevels-1,0);c&&d!==c.width&&(c.width=d,a.queueRefresh());var e=!0;a.options.showTreeRowHeader===!1&&(e=!1),a.options.treeRowHeaderAlwaysVisible===!1&&a.treeBase.numberLevels<=0&&(e=!1),c.visible!==e&&(c.visible=e,c.colDef.visible=e,a.queueGridRefresh())},renderTree:function(a){var c=[];return a.forEach(function(a){a.row.visible&&c.push(a.row),a.state===b.EXPANDED&&a.children&&a.children.length>0&&(c=c.concat(i.renderTree(a.children)))}),c},createTree:function(a,c){var d,e=-1,f=[];a.treeBase.tree=[],a.treeBase.numberLevels=0;var g=i.getAggregations(a),h=function(c){if("undefined"!=typeof c.entity.$$treeLevel&&c.treeLevel!==c.entity.$$treeLevel&&(c.treeLevel=c.entity.$$treeLevel),c.treeLevel<=e){for(;c.treeLevel<=e;){var h=f.pop();i.finaliseAggregations(h),e--}d=f.length>0?i.setCurrentState(f):b.EXPANDED}("undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0)&&c.visible&&i.aggregate(a,c,f),i.addOrUseNode(a,c,f,g),"undefined"!=typeof c.treeLevel&&null!==c.treeLevel&&c.treeLevel>=0&&(f.push(c),e++,d=i.setCurrentState(f)),a.treeBase.numberLevels0;){var j=f.pop();i.finaliseAggregations(j)}return a.treeBase.tree},addOrUseNode:function(a,c,d,e){var f=[];e.forEach(function(a){f.push(i.buildAggregationObject(a.col))});var g={state:b.COLLAPSED,row:c,parentRow:null,aggregations:f,children:[]};c.treeNode&&(g.state=c.treeNode.state),d.length>0&&(g.parentRow=d[d.length-1]),c.treeNode=g,0===d.length?a.treeBase.tree.push(g):d[d.length-1].treeNode.children.push(g)},setCurrentState:function(a){var c=b.EXPANDED;return a.forEach(function(a){a.treeNode.state===b.COLLAPSED&&(c=b.COLLAPSED)}),c},sortTree:function(a){a.columns.forEach(function(a){a.sort&&a.sort.ignoreSort&&delete a.sort.ignoreSort}),a.treeBase.tree=i.sortInternal(a,a.treeBase.tree)},sortInternal:function(a,c){var d=c.map(function(a){return a.row});d=h.sort(a,d,a.columns);var e=d.map(function(a){return a.treeNode});return e.forEach(function(c){c.state===b.EXPANDED&&c.children&&c.children.length>0&&(c.children=i.sortInternal(a,c.children))}),e},fixFilter:function(a){var b;a.treeBase.tree.forEach(function(a){a.children&&a.children.length>0&&(b=a.row.visible,i.fixFilterInternal(a.children,b))})},fixFilterInternal:function(a,b){return a.forEach(function(a){a.row.visible&&!b&&(i.setParentsVisible(a),b=!0),a.children&&a.children.length>0&&i.fixFilterInternal(a.children,b&&a.row.visible)&&(b=!0)}),b},setParentsVisible:function(a){for(;a.parentRow;)a.parentRow.visible=!0,a=a.parentRow.treeNode},buildAggregationObject:function(a){var b={col:a};return a.treeAggregation&&a.treeAggregation.type&&(b.type=a.treeAggregation.type),a.treeAggregation&&a.treeAggregation.label&&(b.label=a.treeAggregation.label),b},getAggregations:function(a){var b=[];return a.columns.forEach(function(c){"undefined"!=typeof c.treeAggregationFn&&(b.push(i.buildAggregationObject(c)),a.options.showColumnFooter&&"undefined"==typeof c.colDef.aggregationType&&c.treeAggregation&&(c.treeFooterAggregation=i.buildAggregationObject(c),c.aggregationType=i.treeFooterAggregationType))}),b},aggregate:function(a,b,c){0===c.length&&b.treeNode&&b.treeNode.aggregations&&b.treeNode.aggregations.forEach(function(c){if("undefined"!=typeof c.col.treeFooterAggregation){var d=a.getCellValue(b,c.col),e=Number(d);c.col.treeAggregationFn(c.col.treeFooterAggregation,d,e,b)}}),c.forEach(function(c,d){c.treeNode.aggregations&&c.treeNode.aggregations.forEach(function(c){var e=a.getCellValue(b,c.col),f=Number(e);c.col.treeAggregationFn(c,e,f,b),0===d&&"undefined"!=typeof c.col.treeFooterAggregation&&c.col.treeAggregationFn(c.col.treeFooterAggregation,e,f,b)})})},nativeAggregations:function(){var a={count:{label:f.get().aggregation.count, +menuTitle:f.get().grouping.aggregate_count,aggregationFn:function(a,b,c){"undefined"==typeof a.value?a.value=1:a.value++}},sum:{label:f.get().aggregation.sum,menuTitle:f.get().grouping.aggregate_sum,aggregationFn:function(a,b,c){isNaN(c)||("undefined"==typeof a.value?a.value=c:a.value+=c)}},min:{label:f.get().aggregation.min,menuTitle:f.get().grouping.aggregate_min,aggregationFn:function(a,b,c){"undefined"==typeof a.value?a.value=b:"undefined"!=typeof b&&null!==b&&(ba.value||null===a.value)&&(a.value=b)}},avg:{label:f.get().aggregation.avg,menuTitle:f.get().grouping.aggregate_avg,aggregationFn:function(a,b,c){"undefined"==typeof a.count?a.count=1:a.count++,isNaN(c)||("undefined"==typeof a.value||"undefined"==typeof a.sum?(a.value=c,a.sum=c):(a.sum+=c,a.value=a.sum/a.count))}}};return a},finaliseAggregation:function(a,b){b.col.treeAggregationUpdateEntity&&"undefined"!=typeof a&&"undefined"!=typeof a.entity["$$"+b.col.uid]&&angular.extend(b,a.entity["$$"+b.col.uid]),"function"==typeof b.col.treeAggregationFinalizerFn&&b.col.treeAggregationFinalizerFn(b),"function"==typeof b.col.customTreeAggregationFinalizerFn&&b.col.customTreeAggregationFinalizerFn(b),"undefined"==typeof b.rendered&&(b.rendered=b.label?b.label+b.value:b.value)},finaliseAggregations:function(a){"undefined"!=typeof a.treeNode.aggregations&&a.treeNode.aggregations.forEach(function(b){if(i.finaliseAggregation(a,b),b.col.treeAggregationUpdateEntity){var c={};angular.forEach(b,function(a,d){b.hasOwnProperty(d)&&"col"!==d&&(c[d]=a)}),a.entity["$$"+b.col.uid]=c}})},treeFooterAggregationType:function(a,b){return i.finaliseAggregation(void 0,b.treeFooterAggregation),"undefined"==typeof b.treeFooterAggregation.value||null===b.treeFooterAggregation.rendered?"":b.treeFooterAggregation.rendered}};return i}]),a.directive("uiGridTreeBaseRowHeaderButtons",["$templateCache","uiGridTreeBaseService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/treeBaseRowHeaderButtons"),scope:!0,require:"^uiGrid",link:function(a,c,d,e){var f=e.grid;a.treeButtonClick=function(a,c){b.toggleRowTreeState(f,a,c)}}}}]),a.directive("uiGridTreeBaseExpandAllButtons",["$templateCache","uiGridTreeBaseService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/treeBaseExpandAllButtons"),scope:!1,link:function(a,c,d,e){var f=a.col.grid;a.headerButtonClick=function(a,c){f.treeBase.expandAll?b.collapseAllRows(f,c):b.expandAllRows(f,c)}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","gridUtil","$parse",function(a,b,c,d){return{priority:-200,scope:!1,compile:function(a,b){var c=angular.element(a.children().children()[0]),d=c.attr("ng-class"),e="";return e=d?d.slice(0,-1)+",'ui-grid-tree-header-row': row.treeLevel > -1}":"{'ui-grid-tree-header-row': row.treeLevel > -1}",c.attr("ng-class",e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.treeView",["ui.grid","ui.grid.treeBase"]);a.constant("uiGridTreeViewConstants",{featureName:"treeView",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}}),a.service("uiGridTreeViewService",["$q","uiGridTreeViewConstants","uiGridTreeBaseConstants","uiGridTreeBaseService","gridUtil","GridRow","gridClassFactory","i18nService","uiGridConstants",function(a,b,c,d,e,f,g,h,i){var j={initializeGrid:function(a,b){d.initializeGrid(a,b),a.treeView={},a.registerRowsProcessor(j.adjustSorting,60);var c={events:{treeView:{}},methods:{treeView:{}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.enableTreeView=a.enableTreeView!==!1},adjustSorting:function(a){var b=this;return b.columns.forEach(function(a){a.sort&&(a.sort.ignoreSort=!0)}),a}};return j}]),a.directive("uiGridTreeView",["uiGridTreeViewConstants","uiGridTreeViewService","$templateCache",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){e.grid.options.enableTreeView!==!1&&b.initializeGrid(e.grid,a)},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.validate",["ui.grid"]);a.service("uiGridValidateService",["$sce","$q","$http","i18nService","uiGridConstants",function(a,b,c,d,e){var f={validatorFactories:{},setExternalFactoryFunction:function(a){f.externalFactoryFunction=a},clearExternalFactory:function(){delete f.externalFactoryFunction},getValidatorFromExternalFactory:function(a,b){return f.externalFactoryFunction(a,b).validatorFactory(b)},getMessageFromExternalFactory:function(a,b){return f.externalFactoryFunction(a,b).messageFunction(b)},setValidator:function(a,b,c){f.validatorFactories[a]={validatorFactory:b,messageFunction:c}},getValidator:function(a,b){if(f.externalFactoryFunction){var c=f.getValidatorFromExternalFactory(a,b);if(c)return c}if(!f.validatorFactories[a])throw"Invalid validator name: "+a;return f.validatorFactories[a].validatorFactory(b)},getMessage:function(a,b){if(f.externalFactoryFunction){var c=f.getMessageFromExternalFactory(a,b);if(c)return c}return f.validatorFactories[a].messageFunction(b)},isInvalid:function(a,b){return a["$$invalid"+b.name]},setInvalid:function(a,b){a["$$invalid"+b.name]=!0},setValid:function(a,b){delete a["$$invalid"+b.name]},setError:function(a,b,c){a["$$errors"+b.name]||(a["$$errors"+b.name]={}),a["$$errors"+b.name][c]=!0},clearError:function(a,b,c){a["$$errors"+b.name]&&c in a["$$errors"+b.name]&&delete a["$$errors"+b.name][c]},getErrorMessages:function(a,b){var c=[];return a["$$errors"+b.name]&&0!==Object.keys(a["$$errors"+b.name]).length?(Object.keys(a["$$errors"+b.name]).sort().forEach(function(a){c.push(f.getMessage(a,b.validators[a]))}),c):c},getFormattedErrors:function(b,c){var e="",g=f.getErrorMessages(b,c);return g.length?(g.forEach(function(a){e+=a+"
        "}),a.trustAsHtml("

        "+d.getSafeText("validate.error")+"

        "+e)):void 0},getTitleFormattedErrors:function(b,c){var e="\n",g="",h=f.getErrorMessages(b,c);return h.length?(h.forEach(function(a){g+=a+e}),a.trustAsHtml(d.getSafeText("validate.error")+e+g)):void 0},runValidators:function(a,c,d,e,g){if(d!==e){if("undefined"==typeof c.name||!c.name)throw new Error("colDef.name is required to perform validation");f.setValid(a,c);var h=function(a,b,c){return function(h){h||(f.setInvalid(a,b),f.setError(a,b,c),g&&g.api.validate.raise.validationFailed(a,b,d,e))}};for(var i in c.validators){f.clearError(a,c,i);var j=f.getValidator(i,c.validators[i]);b.when(j(e,d,a,c)).then(h(a,c,i))}}},createDefaultValidators:function(){f.setValidator("minLength",function(a){return function(b,c,d,e){return void 0===c||null===c||""===c?!0:c.length>=a}},function(a){return d.getSafeText("validate.minLength").replace("THRESHOLD",a)}),f.setValidator("maxLength",function(a){return function(b,c,d,e){return void 0===c||null===c||""===c?!0:c.length<=a}},function(a){return d.getSafeText("validate.maxLength").replace("THRESHOLD",a)}),f.setValidator("required",function(a){return function(b,c,d,e){return a?!(void 0===c||null===c||""===c):!0}},function(a){return d.getSafeText("validate.required")})},initializeGrid:function(a,b){b.validate={isInvalid:f.isInvalid,getFormattedErrors:f.getFormattedErrors,getTitleFormattedErrors:f.getTitleFormattedErrors,runValidators:f.runValidators};var c={events:{validate:{validationFailed:function(a,b,c,d){}}},methods:{validate:{isInvalid:function(a,c){return b.validate.isInvalid(a,c)},getErrorMessages:function(a,c){return b.validate.getErrorMessages(a,c)},getFormattedErrors:function(a,c){return b.validate.getFormattedErrors(a,c)},getTitleFormattedErrors:function(a,c){return b.validate.getTitleFormattedErrors(a,c)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods),b.edit&&b.api.edit.on.afterCellEdit(a,function(a,c,d,e){b.validate.runValidators(a,c,d,e,b)}),f.createDefaultValidators()}};return f}]),a.directive("uiGridValidate",["gridUtil","uiGridValidateService",function(a,b){return{priority:0,replace:!0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(a,e.grid)},post:function(a,b,c,d){}}}}}])}(),angular.module("ui.grid").run(["$templateCache",function(a){"use strict";a.put("ui-grid/ui-grid-filter",'
         
         
        '),a.put("ui-grid/ui-grid-footer",''),a.put("ui-grid/ui-grid-grid-footer",''),a.put("ui-grid/ui-grid-group-panel",'
        • {{group.displayName}} x
        '),a.put("ui-grid/ui-grid-header",'
        '),a.put("ui-grid/ui-grid-menu-button",'
         
        '),a.put("ui-grid/ui-grid-no-header",'
        '),a.put("ui-grid/ui-grid-row","
        "),a.put("ui-grid/ui-grid",'
        '),a.put("ui-grid/uiGridCell",'
        {{COL_FIELD CUSTOM_FILTERS}}
        '),a.put("ui-grid/uiGridColumnMenu",'
        '),a.put("ui-grid/uiGridFooterCell",'
        {{ col.getAggregationText() + ( col.getAggregationValue() CUSTOM_FILTERS ) }}
        '),a.put("ui-grid/uiGridHeaderCell",'
        {{ col.displayName CUSTOM_FILTERS }} {{col.sort.priority}}
        '),a.put("ui-grid/uiGridMenu",'
        '),a.put("ui-grid/uiGridMenuItem",''),a.put("ui-grid/uiGridRenderContainer","
        "),a.put("ui-grid/uiGridViewport",'
        '),a.put("ui-grid/cellEditor",'
        '),a.put("ui-grid/dropdownEditor",'
        '),a.put("ui-grid/fileChooserEditor",'
        '),a.put("ui-grid/expandableRow",'
        '),a.put("ui-grid/expandableRowHeader",'
        '),a.put("ui-grid/expandableScrollFiller","
        "),a.put("ui-grid/expandableTopRowHeader",'
        '),a.put("ui-grid/csvLink",'LINK_LABEL'),a.put("ui-grid/importerMenuItem",'
      • '),a.put("ui-grid/importerMenuItemContainer","
        "),a.put("ui-grid/pagination",''),a.put("ui-grid/columnResizer",'
        '),a.put("ui-grid/gridFooterSelectedItems",'({{"search.selectedItems" | t}} {{grid.selection.selectedCount}})'),a.put("ui-grid/selectionHeaderCell",'
        '),a.put("ui-grid/selectionRowHeader",'
        '),a.put("ui-grid/selectionRowHeaderButtons",'
         
        '),a.put("ui-grid/selectionSelectAllButtons",'
        '),a.put("ui-grid/treeBaseExpandAllButtons",'
        '),a.put("ui-grid/treeBaseHeaderCell",'
        '),a.put("ui-grid/treeBaseRowHeader",'
        '),a.put("ui-grid/treeBaseRowHeaderButtons","
        -1 }\" ng-click=\"treeButtonClick(row, $event)\"> -1 ) || ( row.treeNode.children && row.treeNode.children.length > 0 ) ) && row.treeNode.state === 'expanded', 'ui-grid-icon-plus-squared': ( ( grid.options.showTreeExpandNoChildren && row.treeLevel > -1 ) || ( row.treeNode.children && row.treeNode.children.length > 0 ) ) && row.treeNode.state === 'collapsed'}\" ng-style=\"{'padding-left': grid.options.treeIndent * row.treeLevel + 'px'}\">  
        "),a.put("ui-grid/cellTitleValidator",'
        {{COL_FIELD CUSTOM_FILTERS}}
        '),a.put("ui-grid/cellTooltipValidator",'
        {{COL_FIELD CUSTOM_FILTERS}}
        ')}]),function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){(function(b){a.exports=b.pdfMake=c(1)}).call(b,function(){return this}())},function(a,b,c){(function(b){"use strict";function d(a,b,c){this.docDefinition=a,this.fonts=b||h,this.vfs=c}var e=c(6),f=c(105),g=f.saveAs,h={Roboto:{normal:"Roboto-Regular.ttf",bold:"Roboto-Medium.ttf",italics:"Roboto-Italic.ttf",bolditalics:"Roboto-Italic.ttf"}};d.prototype._createDoc=function(a,c){var d=new e(this.fonts);d.fs.bindFS(this.vfs);var f,g=d.createPdfKitDocument(this.docDefinition,a),h=[];g.on("data",function(a){h.push(a)}),g.on("end",function(){f=b.concat(h),c(f,g._pdfMakePages)}),g.end()},d.prototype._getPages=function(a,b){if(!b)throw"getBuffer is an async method and needs a callback argument";this._createDoc(a,function(a,c){b(c)})},d.prototype.open=function(a){var b=window.open("","_blank");try{this.getDataUrl(function(a){b.location.href=a})}catch(c){throw b.close(),c}},d.prototype.print=function(){this.getDataUrl(function(a){var b=document.createElement("iframe");b.style.position="absolute",b.style.left="-99999px",b.src=a,b.onload=function(){function a(){document.body.removeChild(b),document.removeEventListener("click",a)}document.addEventListener("click",a,!1)},document.body.appendChild(b)},{autoPrint:!0})},d.prototype.download=function(a,b){"function"==typeof a&&(b=a,a=null),a=a||"file.pdf",this.getBuffer(function(c){var d;try{d=new Blob([c],{type:"application/pdf"})}catch(e){if("InvalidStateError"==e.name){var f=new Uint8Array(c);d=new Blob([f.buffer],{type:"application/pdf"})}}if(!d)throw"Could not generate blob";g(d,a),"function"==typeof b&&b()})},d.prototype.getBase64=function(a,b){if(!a)throw"getBase64 is an async method and needs a callback argument";this._createDoc(b,function(b){a(b.toString("base64"))})},d.prototype.getDataUrl=function(a,b){if(!a)throw"getDataUrl is an async method and needs a callback argument";this._createDoc(b,function(b){a("data:application/pdf;base64,"+b.toString("base64"))})},d.prototype.getBuffer=function(a,b){if(!a)throw"getBuffer is an async method and needs a callback argument";this._createDoc(b,function(b){a(b)})},a.exports={createPdf:function(a){return new d(a,window.pdfMake.fonts,window.pdfMake.vfs)}}}).call(b,c(2).Buffer)},function(a,b,c){(function(a,d){function e(){function a(){}try{var b=new Uint8Array(1);return b.foo=function(){return 42},b.constructor=a,42===b.foo()&&b.constructor===a&&"function"==typeof b.subarray&&0===b.subarray(1,1).byteLength}catch(c){return!1}}function f(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(b){return this instanceof a?(this.length=0,this.parent=void 0,"number"==typeof b?g(this,b):"string"==typeof b?h(this,b,arguments.length>1?arguments[1]:"utf8"):i(this,b)):arguments.length>1?new a(b,arguments[1]):new a(b)}function g(b,c){if(b=p(b,0>c?0:0|q(c)),!a.TYPED_ARRAY_SUPPORT)for(var d=0;c>d;d++)b[d]=0;return b}function h(a,b,c){"string"==typeof c&&""!==c||(c="utf8");var d=0|s(b,c);return a=p(a,d),a.write(b,c),a}function i(b,c){if(a.isBuffer(c))return j(b,c);if(Y(c))return k(b,c);if(null==c)throw new TypeError("must start with number, buffer, array or string");if("undefined"!=typeof ArrayBuffer){if(c.buffer instanceof ArrayBuffer)return l(b,c);if(c instanceof ArrayBuffer)return m(b,c)}return c.length?n(b,c):o(b,c)}function j(a,b){var c=0|q(b.length);return a=p(a,c),b.copy(a,0,0,c),a}function k(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function l(a,b){var c=0|q(b.length); +a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function m(b,c){return a.TYPED_ARRAY_SUPPORT?(c.byteLength,b=a._augment(new Uint8Array(c))):b=l(b,new Uint8Array(c)),b}function n(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function o(a,b){var c,d=0;"Buffer"===b.type&&Y(b.data)&&(c=b.data,d=0|q(c.length)),a=p(a,d);for(var e=0;d>e;e+=1)a[e]=255&c[e];return a}function p(b,c){a.TYPED_ARRAY_SUPPORT?(b=a._augment(new Uint8Array(c)),b.__proto__=a.prototype):(b.length=c,b._isBuffer=!0);var d=0!==c&&c<=a.poolSize>>>1;return d&&(b.parent=Z),b}function q(a){if(a>=f())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+f().toString(16)+" bytes");return 0|a}function r(b,c){if(!(this instanceof r))return new r(b,c);var d=new a(b,c);return delete d.parent,d}function s(a,b){"string"!=typeof a&&(a=""+a);var c=a.length;if(0===c)return 0;for(var d=!1;;)switch(b){case"ascii":case"binary":case"raw":case"raws":return c;case"utf8":case"utf-8":return R(a).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*c;case"hex":return c>>>1;case"base64":return U(a).length;default:if(d)return R(a).length;b=(""+b).toLowerCase(),d=!0}}function t(a,b,c){var d=!1;if(b=0|b,c=void 0===c||c===1/0?this.length:0|c,a||(a="utf8"),0>b&&(b=0),c>this.length&&(c=this.length),b>=c)return"";for(;;)switch(a){case"hex":return F(this,b,c);case"utf8":case"utf-8":return B(this,b,c);case"ascii":return D(this,b,c);case"binary":return E(this,b,c);case"base64":return A(this,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G(this,b,c);default:if(d)throw new TypeError("Unknown encoding: "+a);a=(a+"").toLowerCase(),d=!0}}function u(a,b,c,d){c=Number(c)||0;var e=a.length-c;d?(d=Number(d),d>e&&(d=e)):d=e;var f=b.length;if(f%2!==0)throw new Error("Invalid hex string");d>f/2&&(d=f/2);for(var g=0;d>g;g++){var h=parseInt(b.substr(2*g,2),16);if(isNaN(h))throw new Error("Invalid hex string");a[c+g]=h}return g}function v(a,b,c,d){return V(R(b,a.length-c),a,c,d)}function w(a,b,c,d){return V(S(b),a,c,d)}function x(a,b,c,d){return w(a,b,c,d)}function y(a,b,c,d){return V(U(b),a,c,d)}function z(a,b,c,d){return V(T(b,a.length-c),a,c,d)}function A(a,b,c){return 0===b&&c===a.length?W.fromByteArray(a):W.fromByteArray(a.slice(b,c))}function B(a,b,c){c=Math.min(a.length,c);for(var d=[],e=b;c>e;){var f=a[e],g=null,h=f>239?4:f>223?3:f>191?2:1;if(c>=e+h){var i,j,k,l;switch(h){case 1:128>f&&(g=f);break;case 2:i=a[e+1],128===(192&i)&&(l=(31&f)<<6|63&i,l>127&&(g=l));break;case 3:i=a[e+1],j=a[e+2],128===(192&i)&&128===(192&j)&&(l=(15&f)<<12|(63&i)<<6|63&j,l>2047&&(55296>l||l>57343)&&(g=l));break;case 4:i=a[e+1],j=a[e+2],k=a[e+3],128===(192&i)&&128===(192&j)&&128===(192&k)&&(l=(15&f)<<18|(63&i)<<12|(63&j)<<6|63&k,l>65535&&1114112>l&&(g=l))}}null===g?(g=65533,h=1):g>65535&&(g-=65536,d.push(g>>>10&1023|55296),g=56320|1023&g),d.push(g),e+=h}return C(d)}function C(a){var b=a.length;if($>=b)return String.fromCharCode.apply(String,a);for(var c="",d=0;b>d;)c+=String.fromCharCode.apply(String,a.slice(d,d+=$));return c}function D(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(127&a[e]);return d}function E(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(a[e]);return d}function F(a,b,c){var d=a.length;(!b||0>b)&&(b=0),(!c||0>c||c>d)&&(c=d);for(var e="",f=b;c>f;f++)e+=Q(a[f]);return e}function G(a,b,c){for(var d=a.slice(b,c),e="",f=0;fa)throw new RangeError("offset is not uint");if(a+b>c)throw new RangeError("Trying to access beyond buffer length")}function I(b,c,d,e,f,g){if(!a.isBuffer(b))throw new TypeError("buffer must be a Buffer instance");if(c>f||g>c)throw new RangeError("value is out of bounds");if(d+e>b.length)throw new RangeError("index out of range")}function J(a,b,c,d){0>b&&(b=65535+b+1);for(var e=0,f=Math.min(a.length-c,2);f>e;e++)a[c+e]=(b&255<<8*(d?e:1-e))>>>8*(d?e:1-e)}function K(a,b,c,d){0>b&&(b=4294967295+b+1);for(var e=0,f=Math.min(a.length-c,4);f>e;e++)a[c+e]=b>>>8*(d?e:3-e)&255}function L(a,b,c,d,e,f){if(b>e||f>b)throw new RangeError("value is out of bounds");if(c+d>a.length)throw new RangeError("index out of range");if(0>c)throw new RangeError("index out of range")}function M(a,b,c,d,e){return e||L(a,b,c,4,3.4028234663852886e38,-3.4028234663852886e38),X.write(a,b,c,d,23,4),c+4}function N(a,b,c,d,e){return e||L(a,b,c,8,1.7976931348623157e308,-1.7976931348623157e308),X.write(a,b,c,d,52,8),c+8}function O(a){if(a=P(a).replace(aa,""),a.length<2)return"";for(;a.length%4!==0;)a+="=";return a}function P(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function Q(a){return 16>a?"0"+a.toString(16):a.toString(16)}function R(a,b){b=b||1/0;for(var c,d=a.length,e=null,f=[],g=0;d>g;g++){if(c=a.charCodeAt(g),c>55295&&57344>c){if(!e){if(c>56319){(b-=3)>-1&&f.push(239,191,189);continue}if(g+1===d){(b-=3)>-1&&f.push(239,191,189);continue}e=c;continue}if(56320>c){(b-=3)>-1&&f.push(239,191,189),e=c;continue}c=e-55296<<10|c-56320|65536}else e&&(b-=3)>-1&&f.push(239,191,189);if(e=null,128>c){if((b-=1)<0)break;f.push(c)}else if(2048>c){if((b-=2)<0)break;f.push(c>>6|192,63&c|128)}else if(65536>c){if((b-=3)<0)break;f.push(c>>12|224,c>>6&63|128,63&c|128)}else{if(!(1114112>c))throw new Error("Invalid code point");if((b-=4)<0)break;f.push(c>>18|240,c>>12&63|128,c>>6&63|128,63&c|128)}}return f}function S(a){for(var b=[],c=0;c>8,e=c%256,f.push(e),f.push(d);return f}function U(a){return W.toByteArray(O(a))}function V(a,b,c,d){for(var e=0;d>e&&!(e+c>=b.length||e>=a.length);e++)b[e+c]=a[e];return e}var W=c(3),X=c(4),Y=c(5);b.Buffer=a,b.SlowBuffer=r,b.INSPECT_MAX_BYTES=50,a.poolSize=8192;var Z={};a.TYPED_ARRAY_SUPPORT=void 0!==d.TYPED_ARRAY_SUPPORT?d.TYPED_ARRAY_SUPPORT:e(),a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array),a.isBuffer=function(a){return!(null==a||!a._isBuffer)},a.compare=function(b,c){if(!a.isBuffer(b)||!a.isBuffer(c))throw new TypeError("Arguments must be Buffers");if(b===c)return 0;for(var d=b.length,e=c.length,f=0,g=Math.min(d,e);g>f&&b[f]===c[f];)++f;return f!==g&&(d=b[f],e=c[f]),e>d?-1:d>e?1:0},a.isEncoding=function(a){switch(String(a).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(b,c){if(!Y(b))throw new TypeError("list argument must be an Array of Buffers.");if(0===b.length)return new a(0);var d;if(void 0===c)for(c=0,d=0;d0&&(a=this.toString("hex",0,c).match(/.{2}/g).join(" "),this.length>c&&(a+=" ... ")),""},a.prototype.compare=function(b){if(!a.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?0:a.compare(this,b)},a.prototype.indexOf=function(b,c){function d(a,b,c){for(var d=-1,e=0;c+e2147483647?c=2147483647:-2147483648>c&&(c=-2147483648),c>>=0,0===this.length)return-1;if(c>=this.length)return-1;if(0>c&&(c=Math.max(this.length+c,0)),"string"==typeof b)return 0===b.length?-1:String.prototype.indexOf.call(this,b,c);if(a.isBuffer(b))return d(this,b,c);if("number"==typeof b)return a.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,b,c):d(this,[b],c);throw new TypeError("val must be string, number or Buffer")},a.prototype.get=function(a){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(a)},a.prototype.set=function(a,b){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(a,b)},a.prototype.write=function(a,b,c,d){if(void 0===b)d="utf8",c=this.length,b=0;else if(void 0===c&&"string"==typeof b)d=b,c=this.length,b=0;else if(isFinite(b))b=0|b,isFinite(c)?(c=0|c,void 0===d&&(d="utf8")):(d=c,c=void 0);else{var e=d;d=b,b=0|c,c=e}var f=this.length-b;if((void 0===c||c>f)&&(c=f),a.length>0&&(0>c||0>b)||b>this.length)throw new RangeError("attempt to write outside buffer bounds");d||(d="utf8");for(var g=!1;;)switch(d){case"hex":return u(this,a,b,c);case"utf8":case"utf-8":return v(this,a,b,c);case"ascii":return w(this,a,b,c);case"binary":return x(this,a,b,c);case"base64":return y(this,a,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return z(this,a,b,c);default:if(g)throw new TypeError("Unknown encoding: "+d);d=(""+d).toLowerCase(),g=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var $=4096;a.prototype.slice=function(b,c){var d=this.length;b=~~b,c=void 0===c?d:~~c,0>b?(b+=d,0>b&&(b=0)):b>d&&(b=d),0>c?(c+=d,0>c&&(c=0)):c>d&&(c=d),b>c&&(c=b);var e;if(a.TYPED_ARRAY_SUPPORT)e=a._augment(this.subarray(b,c));else{var f=c-b;e=new a(f,void 0);for(var g=0;f>g;g++)e[g]=this[g+b]}return e.length&&(e.parent=this.parent||this),e},a.prototype.readUIntLE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a],e=1,f=0;++f0&&(e*=256);)d+=this[a+--b]*e;return d},a.prototype.readUInt8=function(a,b){return b||H(a,1,this.length),this[a]},a.prototype.readUInt16LE=function(a,b){return b||H(a,2,this.length),this[a]|this[a+1]<<8},a.prototype.readUInt16BE=function(a,b){return b||H(a,2,this.length),this[a]<<8|this[a+1]},a.prototype.readUInt32LE=function(a,b){return b||H(a,4,this.length),(this[a]|this[a+1]<<8|this[a+2]<<16)+16777216*this[a+3]},a.prototype.readUInt32BE=function(a,b){return b||H(a,4,this.length),16777216*this[a]+(this[a+1]<<16|this[a+2]<<8|this[a+3])},a.prototype.readIntLE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a],e=1,f=0;++f=e&&(d-=Math.pow(2,8*b)),d},a.prototype.readIntBE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=b,e=1,f=this[a+--d];d>0&&(e*=256);)f+=this[a+--d]*e;return e*=128,f>=e&&(f-=Math.pow(2,8*b)),f},a.prototype.readInt8=function(a,b){return b||H(a,1,this.length),128&this[a]?-1*(255-this[a]+1):this[a]},a.prototype.readInt16LE=function(a,b){b||H(a,2,this.length);var c=this[a]|this[a+1]<<8;return 32768&c?4294901760|c:c},a.prototype.readInt16BE=function(a,b){b||H(a,2,this.length);var c=this[a+1]|this[a]<<8;return 32768&c?4294901760|c:c},a.prototype.readInt32LE=function(a,b){return b||H(a,4,this.length),this[a]|this[a+1]<<8|this[a+2]<<16|this[a+3]<<24},a.prototype.readInt32BE=function(a,b){return b||H(a,4,this.length),this[a]<<24|this[a+1]<<16|this[a+2]<<8|this[a+3]},a.prototype.readFloatLE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!0,23,4)},a.prototype.readFloatBE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!1,23,4)},a.prototype.readDoubleLE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!0,52,8)},a.prototype.readDoubleBE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!1,52,8)},a.prototype.writeUIntLE=function(a,b,c,d){a=+a,b=0|b,c=0|c,d||I(this,a,b,c,Math.pow(2,8*c),0);var e=1,f=0;for(this[b]=255&a;++f=0&&(f*=256);)this[b+e]=a/f&255;return b+c},a.prototype.writeUInt8=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,1,255,0),a.TYPED_ARRAY_SUPPORT||(b=Math.floor(b)),this[c]=255&b,c+1},a.prototype.writeUInt16LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[c]=255&b,this[c+1]=b>>>8):J(this,b,c,!0),c+2},a.prototype.writeUInt16BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>8,this[c+1]=255&b):J(this,b,c,!1),c+2},a.prototype.writeUInt32LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[c+3]=b>>>24,this[c+2]=b>>>16,this[c+1]=b>>>8,this[c]=255&b):K(this,b,c,!0),c+4},a.prototype.writeUInt32BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>24,this[c+1]=b>>>16,this[c+2]=b>>>8,this[c+3]=255&b):K(this,b,c,!1),c+4},a.prototype.writeIntLE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=0,g=1,h=0>a?1:0;for(this[b]=255&a;++f>0)-h&255;return b+c},a.prototype.writeIntBE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=c-1,g=1,h=0>a?1:0;for(this[b+f]=255&a;--f>=0&&(g*=256);)this[b+f]=(a/g>>0)-h&255;return b+c},a.prototype.writeInt8=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,1,127,-128),a.TYPED_ARRAY_SUPPORT||(b=Math.floor(b)),0>b&&(b=255+b+1),this[c]=255&b,c+1},a.prototype.writeInt16LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[c]=255&b,this[c+1]=b>>>8):J(this,b,c,!0),c+2},a.prototype.writeInt16BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>8,this[c+1]=255&b):J(this,b,c,!1),c+2},a.prototype.writeInt32LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[c]=255&b,this[c+1]=b>>>8,this[c+2]=b>>>16,this[c+3]=b>>>24):K(this,b,c,!0),c+4},a.prototype.writeInt32BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,2147483647,-2147483648),0>b&&(b=4294967295+b+1),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>24,this[c+1]=b>>>16,this[c+2]=b>>>8,this[c+3]=255&b):K(this,b,c,!1),c+4},a.prototype.writeFloatLE=function(a,b,c){return M(this,a,b,!0,c)},a.prototype.writeFloatBE=function(a,b,c){return M(this,a,b,!1,c)},a.prototype.writeDoubleLE=function(a,b,c){return N(this,a,b,!0,c)},a.prototype.writeDoubleBE=function(a,b,c){return N(this,a,b,!1,c)},a.prototype.copy=function(b,c,d,e){if(d||(d=0),e||0===e||(e=this.length),c>=b.length&&(c=b.length),c||(c=0),e>0&&d>e&&(e=d),e===d)return 0;if(0===b.length||0===this.length)return 0;if(0>c)throw new RangeError("targetStart out of bounds");if(0>d||d>=this.length)throw new RangeError("sourceStart out of bounds");if(0>e)throw new RangeError("sourceEnd out of bounds");e>this.length&&(e=this.length),b.length-cd&&e>c)for(f=g-1;f>=0;f--)b[f+c]=this[f+d];else if(1e3>g||!a.TYPED_ARRAY_SUPPORT)for(f=0;g>f;f++)b[f+c]=this[f+d];else b._set(this.subarray(d,d+g),c);return g},a.prototype.fill=function(a,b,c){if(a||(a=0),b||(b=0),c||(c=this.length),b>c)throw new RangeError("end < start");if(c!==b&&0!==this.length){if(0>b||b>=this.length)throw new RangeError("start out of bounds");if(0>c||c>this.length)throw new RangeError("end out of bounds");var d;if("number"==typeof a)for(d=b;c>d;d++)this[d]=a;else{var e=R(a.toString()),f=e.length;for(d=b;c>d;d++)this[d]=e[d%f]}return this}},a.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(a.TYPED_ARRAY_SUPPORT)return new a(this).buffer;for(var b=new Uint8Array(this.length),c=0,d=b.length;d>c;c+=1)b[c]=this[c];return b.buffer}throw new TypeError("Buffer.toArrayBuffer not supported in this browser")};var _=a.prototype;a._augment=function(b){return b.constructor=a,b._isBuffer=!0,b._set=b.set,b.get=_.get,b.set=_.set,b.write=_.write,b.toString=_.toString,b.toLocaleString=_.toString,b.toJSON=_.toJSON,b.equals=_.equals,b.compare=_.compare,b.indexOf=_.indexOf,b.copy=_.copy,b.slice=_.slice,b.readUIntLE=_.readUIntLE,b.readUIntBE=_.readUIntBE,b.readUInt8=_.readUInt8,b.readUInt16LE=_.readUInt16LE,b.readUInt16BE=_.readUInt16BE,b.readUInt32LE=_.readUInt32LE,b.readUInt32BE=_.readUInt32BE,b.readIntLE=_.readIntLE,b.readIntBE=_.readIntBE,b.readInt8=_.readInt8,b.readInt16LE=_.readInt16LE,b.readInt16BE=_.readInt16BE,b.readInt32LE=_.readInt32LE,b.readInt32BE=_.readInt32BE,b.readFloatLE=_.readFloatLE,b.readFloatBE=_.readFloatBE,b.readDoubleLE=_.readDoubleLE,b.readDoubleBE=_.readDoubleBE,b.writeUInt8=_.writeUInt8,b.writeUIntLE=_.writeUIntLE,b.writeUIntBE=_.writeUIntBE,b.writeUInt16LE=_.writeUInt16LE,b.writeUInt16BE=_.writeUInt16BE,b.writeUInt32LE=_.writeUInt32LE,b.writeUInt32BE=_.writeUInt32BE,b.writeIntLE=_.writeIntLE,b.writeIntBE=_.writeIntBE,b.writeInt8=_.writeInt8,b.writeInt16LE=_.writeInt16LE,b.writeInt16BE=_.writeInt16BE,b.writeInt32LE=_.writeInt32LE,b.writeInt32BE=_.writeInt32BE,b.writeFloatLE=_.writeFloatLE,b.writeFloatBE=_.writeFloatBE,b.writeDoubleLE=_.writeDoubleLE,b.writeDoubleBE=_.writeDoubleBE,b.fill=_.fill,b.inspect=_.inspect,b.toArrayBuffer=_.toArrayBuffer,b};var aa=/[^+\/0-9A-Za-z-_]/g}).call(b,c(2).Buffer,function(){return this}())},function(a,b,c){var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(a){"use strict";function b(a){var b=a.charCodeAt(0);return b===g||b===l?62:b===h||b===m?63:i>b?-1:i+10>b?b-i+26+26:k+26>b?b-k:j+26>b?b-j+26:void 0}function c(a){function c(a){j[l++]=a}var d,e,g,h,i,j;if(a.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var k=a.length;i="="===a.charAt(k-2)?2:"="===a.charAt(k-1)?1:0,j=new f(3*a.length/4-i),g=i>0?a.length-4:a.length;var l=0;for(d=0,e=0;g>d;d+=4,e+=3)h=b(a.charAt(d))<<18|b(a.charAt(d+1))<<12|b(a.charAt(d+2))<<6|b(a.charAt(d+3)),c((16711680&h)>>16),c((65280&h)>>8),c(255&h);return 2===i?(h=b(a.charAt(d))<<2|b(a.charAt(d+1))>>4,c(255&h)):1===i&&(h=b(a.charAt(d))<<10|b(a.charAt(d+1))<<4|b(a.charAt(d+2))>>2,c(h>>8&255),c(255&h)),j}function e(a){function b(a){return d.charAt(a)}function c(a){return b(a>>18&63)+b(a>>12&63)+b(a>>6&63)+b(63&a)}var e,f,g,h=a.length%3,i="";for(e=0,g=a.length-h;g>e;e+=3)f=(a[e]<<16)+(a[e+1]<<8)+a[e+2],i+=c(f);switch(h){case 1:f=a[a.length-1],i+=b(f>>2),i+=b(f<<4&63),i+="==";break;case 2:f=(a[a.length-2]<<8)+a[a.length-1],i+=b(f>>10),i+=b(f>>4&63),i+=b(f<<2&63),i+="="}return i}var f="undefined"!=typeof Uint8Array?Uint8Array:Array,g="+".charCodeAt(0),h="/".charCodeAt(0),i="0".charCodeAt(0),j="a".charCodeAt(0),k="A".charCodeAt(0),l="-".charCodeAt(0),m="_".charCodeAt(0);a.toByteArray=c,a.fromByteArray=e}(b)},function(a,b){b.read=function(a,b,c,d,e){var f,g,h=8*e-d-1,i=(1<>1,k=-7,l=c?e-1:0,m=c?-1:1,n=a[b+l];for(l+=m,f=n&(1<<-k)-1,n>>=-k,k+=h;k>0;f=256*f+a[b+l],l+=m,k-=8);for(g=f&(1<<-k)-1,f>>=-k,k+=d;k>0;g=256*g+a[b+l],l+=m,k-=8);if(0===f)f=1-j;else{if(f===i)return g?NaN:(n?-1:1)*(1/0);g+=Math.pow(2,d),f-=j}return(n?-1:1)*g*Math.pow(2,f-d)},b.write=function(a,b,c,d,e,f){var g,h,i,j=8*f-e-1,k=(1<>1,m=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,n=d?0:f-1,o=d?1:-1,p=0>b||0===b&&0>1/b?1:0;for(b=Math.abs(b),isNaN(b)||b===1/0?(h=isNaN(b)?1:0,g=k):(g=Math.floor(Math.log(b)/Math.LN2),b*(i=Math.pow(2,-g))<1&&(g--,i*=2),b+=g+l>=1?m/i:m*Math.pow(2,1-l),b*i>=2&&(g++,i/=2),g+l>=k?(h=0,g=k):g+l>=1?(h=(b*i-1)*Math.pow(2,e),g+=l):(h=b*Math.pow(2,l-1)*Math.pow(2,e),g=0));e>=8;a[c+n]=255&h,n+=o,h/=256,e-=8);for(g=g<0;a[c+n]=255&g,n+=o,g/=256,j-=8);a[c+n-o]|=128*p}},function(a,b){var c=Array.isArray,d=Object.prototype.toString;a.exports=c||function(a){return!!a&&"[object Array]"==d.call(a)}},function(a,b,c){"use strict";function d(a){this.fontDescriptors=a}function e(a){if(!a)return null;if("number"==typeof a||a instanceof Number)a={left:a,right:a,top:a,bottom:a};else if(a instanceof Array)if(2===a.length)a={left:a[0],top:a[1],right:a[0],bottom:a[1]};else{if(4!==a.length)throw"Invalid pageMargins definition";a={left:a[0],top:a[1],right:a[2],bottom:a[3]}}return a}function f(a){a.registerTableLayouts({noBorders:{hLineWidth:function(a){return 0},vLineWidth:function(a){return 0},paddingLeft:function(a){return a&&4||0},paddingRight:function(a,b){return ab.options.size[1]?"landscape":"portrait";if(a.pageSize.orientation!==c){var d=b.options.size[0],e=b.options.size[1];b.options.size=[e,d]}}function i(a,b,c){c._pdfMakePages=a;for(var d=0;d0&&(h(a[d],c),c.addPage(c.options));for(var e=a[d],f=0,g=e.items.length;g>f;f++){var i=e.items[f];switch(i.type){case"vector":l(i.item,c);break;case"line":j(i.item,i.item.x,i.item.y,c);break;case"image":m(i.item,i.item.x,i.item.y,c)}}e.watermark&&k(e,c),b.setFontRefsToPdfDoc()}}function j(a,b,c,d){b=b||0,c=c||0;var e=a.getHeight(),f=a.getAscenderHeight();s.drawBackground(a,b,c,d);for(var g=0,h=a.inlines.length;h>g;g++){var i=a.inlines[g];d.fill(i.color||"black"),d.save(),d.transform(1,0,0,-1,0,d.page.height);var j=i.font.encode(i.text);d.addContent("BT"),d.addContent(""+(b+i.x)+" "+(d.page.height-c-f)+" Td"),d.addContent("/"+j.fontId+" "+i.fontSize+" Tf"),d.addContent("<"+j.encodedText+"> Tj"),d.addContent("ET"),i.link&&d.link(b+i.x,d.page.height-c-e,i.width,e,i.link),d.restore()}s.drawDecorations(a,b,c,d)}function k(a,b){var c=a.watermark;b.fill("black"),b.opacity(.6),b.save(),b.transform(1,0,0,-1,0,b.page.height);var d=180*Math.atan2(b.page.height,b.page.width)/Math.PI;b.rotate(d,{origin:[b.page.width/2,b.page.height/2]});var e=c.font.encode(c.text);b.addContent("BT"),b.addContent(""+(b.page.width/2-c.size.size.width/2)+" "+(b.page.height/2-c.size.size.height/4)+" Td"),b.addContent("/"+e.fontId+" "+c.size.fontSize+" Tf"),b.addContent("<"+e.encodedText+"> Tj"),b.addContent("ET"),b.restore()}function l(a,b){switch(b.lineWidth(a.lineWidth||1),a.dash?b.dash(a.dash.length,{space:a.dash.space||a.dash.length}):b.undash(),b.fillOpacity(a.fillOpacity||1),b.strokeOpacity(a.strokeOpacity||1),b.lineJoin(a.lineJoin||"miter"),a.type){case"ellipse":b.ellipse(a.x,a.y,a.r1,a.r2);break;case"rect":a.r?b.roundedRect(a.x,a.y,a.w,a.h,a.r):b.rect(a.x,a.y,a.w,a.h);break;case"line":b.moveTo(a.x1,a.y1),b.lineTo(a.x2,a.y2);break;case"polyline":if(0===a.points.length)break;b.moveTo(a.points[0].x,a.points[0].y);for(var c=1,d=a.points.length;d>c;c++)b.lineTo(a.points[c].x,a.points[c].y);if(a.points.length>1){var e=a.points[0],f=a.points[a.points.length-1];(a.closePath||e.x===f.x&&e.y===f.y)&&b.closePath()}}a.color&&a.lineColor?b.fillAndStroke(a.color,a.lineColor):a.color?b.fill(a.color):b.stroke(a.lineColor||"black")}function m(a,b,c,d){d.image(a.image,a.x,a.y,{width:a._width,height:a._height})}var n=(c(7),c(9)),o=c(11),p=c(24),q=(c(46),c(102)),r=c(103),s=c(104),n=c(9);d.prototype.createPdfKitDocument=function(a,b){b=b||{};var c=g(a.pageSize||"a4");if("landscape"===a.pageOrientation&&(c={width:c.height,height:c.width}),c.orientation="landscape"===a.pageOrientation?a.pageOrientation:"portrait",this.pdfKitDoc=new p({size:[c.width,c.height],compress:!1}),this.pdfKitDoc.info.Producer="pdfmake",this.pdfKitDoc.info.Creator="pdfmake",a.info){a.info;this.pdfKitDoc.info.Title=a.info.title?a.info.title:null,this.pdfKitDoc.info.Author=a.info.author?a.info.author:null,this.pdfKitDoc.info.Subject=a.info.subject?a.info.subject:null,this.pdfKitDoc.info.Keywords=a.info.keywords?a.info.keywords:null}this.fontProvider=new n(this.fontDescriptors,this.pdfKitDoc),a.images=a.images||{};var d=new o(c,e(a.pageMargins||40),new r(this.pdfKitDoc,a.images));f(d),b.tableLayouts&&d.registerTableLayouts(b.tableLayouts);var h=d.layoutDocument(a.content,this.fontProvider,a.styles||{},a.defaultStyle||{fontSize:12,font:"Roboto"},a.background,a.header,a.footer,a.images,a.watermark,a.pageBreakBefore);if(i(h,this.fontProvider,this.pdfKitDoc),b.autoPrint){var j=this.pdfKitDoc.ref({Type:"Action",S:"Named",N:"Print"});this.pdfKitDoc._root.data.OpenAction=j,j.end()}return this.pdfKitDoc};a.exports=d,d.prototype.fs=c(44)},function(a,b,c){var d;(function(a,e){(function(){function f(a,b){if(a!==b){var c=null===a,d=a===B,e=a===a,f=null===b,g=b===B,h=b===b;if(a>b&&!f||!e||c&&!g&&h||d&&h)return 1;if(b>a&&!c||!h||f&&!d&&e||g&&e)return-1}return 0}function g(a,b,c){for(var d=a.length,e=c?d:-1;c?e--:++e-1;);return c}function l(a,b){for(var c=a.length;c--&&b.indexOf(a.charAt(c))>-1;);return c}function m(a,b){return f(a.criteria,b.criteria)||a.index-b.index}function n(a,b,c){for(var d=-1,e=a.criteria,g=b.criteria,h=e.length,i=c.length;++d=i)return j;var k=c[d];return j*("asc"===k||k===!0?1:-1)}}return a.index-b.index}function o(a){return Ua[a]}function p(a){return Va[a]}function q(a,b,c){return b?a=Ya[a]:c&&(a=Za[a]),"\\"+a}function r(a){return"\\"+Za[a]}function s(a,b,c){for(var d=a.length,e=b+(c?0:-1);c?e--:++e=a&&a>=9&&13>=a||32==a||160==a||5760==a||6158==a||a>=8192&&(8202>=a||8232==a||8233==a||8239==a||8287==a||12288==a||65279==a)}function v(a,b){for(var c=-1,d=a.length,e=-1,f=[];++cb,e=c?a.length:0,f=Tc(0,e,this.__views__),g=f.start,h=f.end,i=h-g,j=d?h:g-1,k=this.__iteratees__,l=k.length,m=0,n=wg(i,this.__takeCount__);if(!c||Q>e||e==i&&n==i)return cc(d&&c?a.reverse():a,this.__actions__);var o=[];a:for(;i--&&n>m;){j+=b;for(var p=-1,q=a[j];++p=Q?oc(b):null,j=b.length;i&&(f=Za,g=!1,b=i);a:for(;++ec&&(c=-c>e?0:e+c),d=d===B||d>e?e:+d||0,0>d&&(d+=e),e=c>d?0:d>>>0,c>>>=0;e>c;)a[c++]=b;return a}function Bb(a,b){var c=[];return Jg(a,function(a,d,e){b(a,d,e)&&c.push(a)}),c}function Cb(a,b,c,d){var e;return c(a,function(a,c,f){return b(a,c,f)?(e=d?c:a,!1):void 0}),e}function Db(a,b,c,d){d||(d=[]);for(var e=-1,f=a.length;++ed;)a=a[b[d++]];return d&&d==e?a:B}}function Jb(a,b,c,d,e,f){return a===b?!0:null==a||null==b||!He(a)&&!t(b)?a!==a&&b!==b:Kb(a,b,Jb,c,d,e,f)}function Kb(a,b,c,d,e,f,g){ +var h=Ch(a),i=Ch(b),j=W,k=W;h||(j=cg.call(a),j==V?j=ba:j!=ba&&(h=Qe(a))),i||(k=cg.call(b),k==V?k=ba:k!=ba&&(i=Qe(b)));var l=j==ba,m=k==ba,n=j==k;if(n&&!h&&!l)return Mc(a,b,j);if(!e){var o=l&&ag.call(a,"__wrapped__"),p=m&&ag.call(b,"__wrapped__");if(o||p)return c(o?a.value():a,p?b.value():b,d,e,f,g)}if(!n)return!1;f||(f=[]),g||(g=[]);for(var q=f.length;q--;)if(f[q]==a)return g[q]==b;f.push(a),g.push(b);var r=(h?Lc:Nc)(a,b,c,d,e,f,g);return f.pop(),g.pop(),r}function Lb(a,b,c){var d=b.length,e=d,f=!c;if(null==a)return!e;for(a=kd(a);d--;){var g=b[d];if(f&&g[2]?g[1]!==a[g[0]]:!(g[0]in a))return!1}for(;++db&&(b=-b>e?0:e+b),c=c===B||c>e?e:+c||0,0>c&&(c+=e),e=b>c?0:c-b>>>0,b>>>=0;for(var f=Of(e);++d=Q,i=g?oc():null,j=[];i?(d=Za,f=!1):(g=!1,i=b?[]:j);a:for(;++c=e){for(;e>d;){var f=d+e>>>1,g=a[f];(c?b>=g:b>g)&&null!==g?d=f+1:e=f}return e}return ec(a,b,Bf,c)}function ec(a,b,c,d){b=c(b);for(var e=0,f=a?a.length:0,g=b!==b,h=null===b,i=b===B;f>e;){var j=rg((e+f)/2),k=c(a[j]),l=k!==B,m=k===k;if(g)var n=m||d;else n=h?m&&l&&(d||null!=k):i?m&&(d||l):null==k?!1:d?b>=k:b>k;n?e=j+1:f=j}return wg(f,Dg)}function fc(a,b,c){if("function"!=typeof a)return Bf;if(b===B)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 3:return function(c,d,e){return a.call(b,c,d,e)};case 4:return function(c,d,e,f){return a.call(b,c,d,e,f)};case 5:return function(c,d,e,f,g){return a.call(b,c,d,e,f,g)}}return function(){return a.apply(b,arguments)}}function gc(a){var b=new fg(a.byteLength),c=new ng(b);return c.set(new ng(a)),b}function hc(a,b,c){for(var d=c.length,e=-1,f=vg(a.length-d,0),g=-1,h=b.length,i=Of(h+f);++g2?c[e-2]:B,g=e>2?c[2]:B,h=e>1?c[e-1]:B;for("function"==typeof f?(f=fc(f,h,5),e-=2):(f="function"==typeof h?h:B,e-=f?1:0),g&&$c(c[0],c[1],g)&&(f=3>e?B:f,e=1);++d-1?c[f]:B}return Cb(c,d,a)}}function vc(a){return function(b,c,d){return b&&b.length?(c=Oc(c,d,3),g(b,c,a)):-1}}function wc(a){return function(b,c,d){return c=Oc(c,d,3),Cb(b,c,a,!0)}}function xc(a){return function(){for(var b,c=arguments.length,e=a?c:-1,f=0,g=Of(c);a?e--:++e=Q)return b.plant(d).value();for(var e=0,f=c?g[e].apply(this,a):d;++es){var y=h?ab(h):B,z=vg(j-s,0),A=o?x:B,C=o?B:x,F=o?u:B,G=o?B:u;b|=o?I:J,b&=~(o?J:I),p||(b&=~(D|E));var H=[a,b,c,F,A,G,C,y,i,z],K=Fc.apply(B,H);return ad(a)&&Qg(K,H),K.placeholder=w,K}}var L=m?c:this,M=n?L[a]:a;return h&&(u=hd(u,h)),l&&i=b||!tg(b))return"";var e=b-d;return c=null==c?" ":c+"",qf(c,pg(e/c.length)).slice(0,e)}function Hc(a,b,c,d){function e(){for(var b=-1,h=arguments.length,i=-1,j=d.length,k=Of(j+h);++ii))return!1;for(;++h-1&&a%1==0&&b>a}function $c(a,b,c){if(!He(c))return!1;var d=typeof b;if("number"==d?Yc(c)&&Zc(b,c.length):"string"==d&&b in c){var e=c[b];return a===a?a===e:e!==e}return!1}function _c(a,b){var c=typeof a;if("string"==c&&Ba.test(a)||"number"==c)return!0;if(Ch(a))return!1;var d=!Aa.test(a);return d||null!=b&&a in kd(b)}function ad(a){var c=Pc(a);if(!(c in e.prototype))return!1;var d=b[c];if(a===d)return!0;var f=Og(d);return!!f&&a===f[0]}function bd(a){return"number"==typeof a&&a>-1&&a%1==0&&Fg>=a}function cd(a){return a===a&&!He(a)}function dd(a,b){var c=a[1],d=b[1],e=c|d,f=K>e,g=d==K&&c==G||d==K&&c==L&&a[7].length<=b[8]||d==(K|L)&&c==G;if(!f&&!g)return a;d&D&&(a[2]=b[2],e|=c&D?0:F);var h=b[3];if(h){var i=a[3];a[3]=i?hc(i,h,b[4]):ab(h),a[4]=i?v(a[3],U):ab(b[4])}return h=b[5],h&&(i=a[5],a[5]=i?ic(i,h,b[6]):ab(h),a[6]=i?v(a[5],U):ab(b[6])),h=b[7],h&&(a[7]=ab(h)),d&K&&(a[8]=null==a[8]?b[8]:wg(a[8],b[8])),null==a[9]&&(a[9]=b[9]),a[0]=b[0],a[1]=e,a}function ed(a,b){return a===B?b:Dh(a,b,ed)}function fd(a,b){a=kd(a);for(var c=-1,d=b.length,e={};++cd;)g[++f]=Wb(a,d,d+=b);return g}function od(a){for(var b=-1,c=a?a.length:0,d=-1,e=[];++bb?0:b)):[]}function qd(a,b,c){var d=a?a.length:0;return d?((c?$c(a,b,c):null==b)&&(b=1),b=d-(+b||0),Wb(a,0,0>b?0:b)):[]}function rd(a,b,c){return a&&a.length?bc(a,Oc(b,c,3),!0,!0):[]}function sd(a,b,c){return a&&a.length?bc(a,Oc(b,c,3),!0):[]}function td(a,b,c,d){var e=a?a.length:0;return e?(c&&"number"!=typeof c&&$c(a,b,c)&&(c=0,d=e),Ab(a,b,c,d)):[]}function ud(a){return a?a[0]:B}function vd(a,b,c){var d=a?a.length:0;return c&&$c(a,b,c)&&(b=!1),d?Db(a,b):[]}function wd(a){var b=a?a.length:0;return b?Db(a,!0):[]}function xd(a,b,c){var d=a?a.length:0;if(!d)return-1;if("number"==typeof c)c=0>c?vg(d+c,0):c;else if(c){var e=dc(a,b);return d>e&&(b===b?b===a[e]:a[e]!==a[e])?e:-1}return h(a,b,c||0)}function yd(a){return qd(a,1)}function zd(a){var b=a?a.length:0;return b?a[b-1]:B}function Ad(a,b,c){var d=a?a.length:0;if(!d)return-1;var e=d;if("number"==typeof c)e=(0>c?vg(d+c,0):wg(c||0,d-1))+1;else if(c){e=dc(a,b,!0)-1;var f=a[e];return(b===b?b===f:f!==f)?e:-1}if(b!==b)return s(a,e,!0);for(;e--;)if(a[e]===b)return e;return-1}function Bd(){var a=arguments,b=a[0];if(!b||!b.length)return b;for(var c=0,d=Qc(),e=a.length;++c-1;)mg.call(b,f,1);return b}function Cd(a,b,c){var d=[];if(!a||!a.length)return d;var e=-1,f=[],g=a.length;for(b=Oc(b,c,3);++eb?0:b)):[]}function Gd(a,b,c){var d=a?a.length:0;return d?((c?$c(a,b,c):null==b)&&(b=1),b=d-(+b||0),Wb(a,0>b?0:b)):[]}function Hd(a,b,c){return a&&a.length?bc(a,Oc(b,c,3),!1,!0):[]}function Id(a,b,c){return a&&a.length?bc(a,Oc(b,c,3)):[]}function Jd(a,b,c,d){var e=a?a.length:0;if(!e)return[];null!=b&&"boolean"!=typeof b&&(d=c,c=$c(a,b,d)?B:b,b=!1);var f=Oc();return null==c&&f===ub||(c=f(c,d,3)),b&&Qc()==h?w(a,c):_b(a,c)}function Kd(a){if(!a||!a.length)return[];var b=-1,c=0;a=hb(a,function(a){return Yc(a)?(c=vg(a.length,c),!0):void 0});for(var d=Of(c);++bc?vg(e+c,0):c||0,"string"==typeof a||!Ch(a)&&Pe(a)?e>=c&&a.indexOf(b,c)>-1:!!e&&Qc(a,b,c)>-1}function _d(a,b,c){var d=Ch(a)?ib:Mb;return b=Oc(b,c,3),d(a,b)}function ae(a,b){return _d(a,Hf(b))}function be(a,b,c){var d=Ch(a)?hb:Bb;return b=Oc(b,c,3),d(a,function(a,c,d){return!b(a,c,d)})}function ce(a,b,c){if(c?$c(a,b,c):null==b){a=jd(a);var d=a.length;return d>0?a[Ub(0,d-1)]:B}var e=-1,f=Ue(a),d=f.length,g=d-1;for(b=wg(0>b?0:+b||0,d);++e0&&(c=b.apply(this,arguments)),1>=a&&(b=B),c}}function me(a,b,c){function d(){n&&gg(n),j&&gg(j),p=0,j=n=o=B}function e(b,c){c&&gg(c),j=n=o=B,b&&(p=oh(),k=a.apply(m,i),n||j||(i=m=B))}function f(){var a=b-(oh()-l);0>=a||a>b?e(o,j):n=lg(f,a)}function g(){e(r,n)}function h(){if(i=arguments,l=oh(),m=this,o=r&&(n||!s),q===!1)var c=s&&!n;else{j||s||(p=l);var d=q-(l-p),e=0>=d||d>q;e?(j&&(j=gg(j)),p=l,k=a.apply(m,i)):j||(j=lg(g,d))}return e&&n?n=gg(n):n||b===q||(n=lg(f,b)),c&&(e=!0,k=a.apply(m,i)),!e||n||j||(i=m=B),k}var i,j,k,l,m,n,o,p=0,q=!1,r=!0;if("function"!=typeof a)throw new Xf(T);if(b=0>b?0:+b||0,c===!0){var s=!0;r=!1}else He(c)&&(s=!!c.leading,q="maxWait"in c&&vg(+c.maxWait||0,b),r="trailing"in c?!!c.trailing:r);return h.cancel=d,h}function ne(a,b){if("function"!=typeof a||b&&"function"!=typeof b)throw new Xf(T);var c=function(){var d=arguments,e=b?b.apply(this,d):d[0],f=c.cache;if(f.has(e))return f.get(e);var g=a.apply(this,d);return c.cache=f.set(e,g),g};return c.cache=new ne.Cache,c}function oe(a){if("function"!=typeof a)throw new Xf(T);return function(){return!a.apply(this,arguments)}}function pe(a){return le(2,a)}function qe(a,b){if("function"!=typeof a)throw new Xf(T);return b=vg(b===B?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,e=vg(c.length-b,0),f=Of(e);++db}function xe(a,b){return a>=b}function ye(a){return t(a)&&Yc(a)&&ag.call(a,"callee")&&!jg.call(a,"callee")}function ze(a){return a===!0||a===!1||t(a)&&cg.call(a)==X}function Ae(a){return t(a)&&cg.call(a)==Y}function Be(a){return!!a&&1===a.nodeType&&t(a)&&!Ne(a)}function Ce(a){return null==a?!0:Yc(a)&&(Ch(a)||Pe(a)||ye(a)||t(a)&&Ge(a.splice))?!a.length:!Nh(a).length}function De(a,b,c,d){c="function"==typeof c?fc(c,d,3):B;var e=c?c(a,b):B;return e===B?Jb(a,b,c):!!e}function Ee(a){return t(a)&&"string"==typeof a.message&&cg.call(a)==Z}function Fe(a){return"number"==typeof a&&tg(a)}function Ge(a){return He(a)&&cg.call(a)==$}function He(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}function Ie(a,b,c,d){return c="function"==typeof c?fc(c,d,3):B,Lb(a,Rc(b),c)}function Je(a){return Me(a)&&a!=+a}function Ke(a){return null==a?!1:Ge(a)?eg.test(_f.call(a)):t(a)&&Ka.test(a)}function Le(a){return null===a}function Me(a){return"number"==typeof a||t(a)&&cg.call(a)==aa}function Ne(a){var b;if(!t(a)||cg.call(a)!=ba||ye(a)||!ag.call(a,"constructor")&&(b=a.constructor,"function"==typeof b&&!(b instanceof b)))return!1;var c;return Eb(a,function(a,b){c=b}),c===B||ag.call(a,c)}function Oe(a){return He(a)&&cg.call(a)==ca}function Pe(a){return"string"==typeof a||t(a)&&cg.call(a)==ea}function Qe(a){return t(a)&&bd(a.length)&&!!Sa[cg.call(a)]}function Re(a){return a===B}function Se(a,b){return b>a}function Te(a,b){return b>=a}function Ue(a){var b=a?Pg(a):0;return bd(b)?b?ab(a):[]:ef(a)}function Ve(a){return tb(a,_e(a))}function We(a,b,c){var d=Ig(a);return c&&$c(a,b,c)&&(b=B),b?rb(d,b):d}function Xe(a){return Hb(a,_e(a))}function Ye(a,b,c){var d=null==a?B:Ib(a,ld(b),b+"");return d===B?c:d}function Ze(a,b){if(null==a)return!1;var c=ag.call(a,b);if(!c&&!_c(b)){if(b=ld(b),a=1==b.length?a:Ib(a,Wb(b,0,-1)),null==a)return!1;b=zd(b),c=ag.call(a,b)}return c||bd(a.length)&&Zc(b,a.length)&&(Ch(a)||ye(a))}function $e(a,b,c){c&&$c(a,b,c)&&(b=B);for(var d=-1,e=Nh(a),f=e.length,g={};++d0;++d=wg(b,c)&&ac?0:+c||0,d),c-=b.length,c>=0&&a.indexOf(b,c)==c}function mf(a){return a=j(a),a&&wa.test(a)?a.replace(ua,p):a}function nf(a){return a=j(a),a&&Ea.test(a)?a.replace(Da,q):a||"(?:)"}function of(a,b,c){a=j(a),b=+b;var d=a.length;if(d>=b||!tg(b))return a;var e=(b-d)/2,f=rg(e),g=pg(e);return c=Gc("",g,c),c.slice(0,f)+a+c}function pf(a,b,c){return(c?$c(a,b,c):null==b)?b=0:b&&(b=+b),a=tf(a),yg(a,b||(Ja.test(a)?16:10))}function qf(a,b){var c="";if(a=j(a),b=+b,1>b||!a||!tg(b))return c;do b%2&&(c+=a),b=rg(b/2),a+=a;while(b);return c}function rf(a,b,c){return a=j(a),c=null==c?0:wg(0>c?0:+c||0,a.length),a.lastIndexOf(b,c)==c}function sf(a,c,d){var e=b.templateSettings;d&&$c(a,c,d)&&(c=d=B),a=j(a),c=qb(rb({},d||c),e,pb);var f,g,h=qb(rb({},c.imports),e.imports,pb),i=Nh(h),k=ac(h,i),l=0,m=c.interpolate||Na,n="__p += '",o=Vf((c.escape||Na).source+"|"+m.source+"|"+(m===za?Ha:Na).source+"|"+(c.evaluate||Na).source+"|$","g"),p="//# sourceURL="+("sourceURL"in c?c.sourceURL:"lodash.templateSources["+ ++Ra+"]")+"\n";a.replace(o,function(b,c,d,e,h,i){return d||(d=e),n+=a.slice(l,i).replace(Oa,r),c&&(f=!0,n+="' +\n__e("+c+") +\n'"),h&&(g=!0,n+="';\n"+h+";\n__p += '"),d&&(n+="' +\n((__t = ("+d+")) == null ? '' : __t) +\n'"),l=i+b.length,b}),n+="';\n";var q=c.variable;q||(n="with (obj) {\n"+n+"\n}\n"),n=(g?n.replace(qa,""):n).replace(ra,"$1").replace(sa,"$1;"),n="function("+(q||"obj")+") {\n"+(q?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(f?", __e = _.escape":"")+(g?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+n+"return __p\n}";var s=Yh(function(){return Rf(i,p+"return "+n).apply(B,k)});if(s.source=n,Ee(s))throw s;return s}function tf(a,b,c){var d=a;return(a=j(a))?(c?$c(d,b,c):null==b)?a.slice(x(a),y(a)+1):(b+="",a.slice(k(a,b),l(a,b)+1)):a}function uf(a,b,c){var d=a;return a=j(a),a?(c?$c(d,b,c):null==b)?a.slice(x(a)):a.slice(k(a,b+"")):a}function vf(a,b,c){var d=a;return a=j(a),a?(c?$c(d,b,c):null==b)?a.slice(0,y(a)+1):a.slice(0,l(a,b+"")+1):a}function wf(a,b,c){c&&$c(a,b,c)&&(b=B);var d=M,e=N;if(null!=b)if(He(b)){var f="separator"in b?b.separator:f;d="length"in b?+b.length||0:d,e="omission"in b?j(b.omission):e}else d=+b||0;if(a=j(a),d>=a.length)return a;var g=d-e.length;if(1>g)return e;var h=a.slice(0,g);if(null==f)return h+e;if(Oe(f)){if(a.slice(g).search(f)){var i,k,l=a.slice(0,g);for(f.global||(f=Vf(f.source,(Ia.exec(f)||"")+"g")),f.lastIndex=0;i=f.exec(l);)k=i.index;h=h.slice(0,null==k?g:k)}}else if(a.indexOf(f,g)!=g){var m=h.lastIndexOf(f);m>-1&&(h=h.slice(0,m))}return h+e}function xf(a){return a=j(a),a&&va.test(a)?a.replace(ta,z):a}function yf(a,b,c){return c&&$c(a,b,c)&&(b=B),a=j(a),a.match(b||Pa)||[]}function zf(a,b,c){return c&&$c(a,b,c)&&(b=B),t(a)?Cf(a):ub(a,b)}function Af(a){return function(){return a}}function Bf(a){return a}function Cf(a){return Nb(vb(a,!0))}function Df(a,b){return Ob(a,vb(b,!0))}function Ef(a,b,c){if(null==c){var d=He(b),e=d?Nh(b):B,f=e&&e.length?Hb(b,e):B;(f?f.length:d)||(f=!1,c=b,b=a,a=this)}f||(f=Hb(b,Nh(b)));var g=!0,h=-1,i=Ge(a),j=f.length;c===!1?g=!1:He(c)&&"chain"in c&&(g=c.chain);for(;++ha||!tg(a))return[];var d=-1,e=Of(wg(a,Cg));for(b=fc(b,c,1);++dd?e[d]=b(d):b(d);return e}function Lf(a){var b=++bg;return j(a)+b}function Mf(a,b){return(+a||0)+(+b||0)}function Nf(a,b,c){return c&&$c(a,b,c)&&(b=B),b=Oc(b,c,3),1==b.length?nb(Ch(a)?a:jd(a),b):$b(a,b)}a=a?eb.defaults(db.Object(),a,eb.pick(db,Qa)):db;var Of=a.Array,Pf=a.Date,Qf=a.Error,Rf=a.Function,Sf=a.Math,Tf=a.Number,Uf=a.Object,Vf=a.RegExp,Wf=a.String,Xf=a.TypeError,Yf=Of.prototype,Zf=Uf.prototype,$f=Wf.prototype,_f=Rf.prototype.toString,ag=Zf.hasOwnProperty,bg=0,cg=Zf.toString,dg=db._,eg=Vf("^"+_f.call(ag).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),fg=a.ArrayBuffer,gg=a.clearTimeout,hg=a.parseFloat,ig=Sf.pow,jg=Zf.propertyIsEnumerable,kg=Sc(a,"Set"),lg=a.setTimeout,mg=Yf.splice,ng=a.Uint8Array,og=Sc(a,"WeakMap"),pg=Sf.ceil,qg=Sc(Uf,"create"),rg=Sf.floor,sg=Sc(Of,"isArray"),tg=a.isFinite,ug=Sc(Uf,"keys"),vg=Sf.max,wg=Sf.min,xg=Sc(Pf,"now"),yg=a.parseInt,zg=Sf.random,Ag=Tf.NEGATIVE_INFINITY,Bg=Tf.POSITIVE_INFINITY,Cg=4294967295,Dg=Cg-1,Eg=Cg>>>1,Fg=9007199254740991,Gg=og&&new og,Hg={};b.support={};b.templateSettings={escape:xa,evaluate:ya,interpolate:za,variable:"",imports:{_:b}};var Ig=function(){function a(){}return function(b){if(He(b)){a.prototype=b;var c=new a;a.prototype=B}return c||{}}}(),Jg=lc(Fb),Kg=lc(Gb,!0),Lg=mc(),Mg=mc(!0),Ng=Gg?function(a,b){return Gg.set(a,b),a}:Bf,Og=Gg?function(a){return Gg.get(a)}:Gf,Pg=Rb("length"),Qg=function(){var a=0,b=0;return function(c,d){var e=oh(),f=P-(e-b);if(b=e,f>0){if(++a>=O)return c}else a=0;return Ng(c,d)}}(),Rg=qe(function(a,b){return t(a)&&Yc(a)?xb(a,Db(b,!1,!0)):[]}),Sg=vc(),Tg=vc(!0),Ug=qe(function(a){for(var b=a.length,c=b,d=Of(l),e=Qc(),f=e==h,g=[];c--;){var i=a[c]=Yc(i=a[c])?i:[];d[c]=f&&i.length>=120?oc(c&&i):null}var j=a[0],k=-1,l=j?j.length:0,m=d[0];a:for(;++k2?a[b-2]:B,d=b>1?a[b-1]:B;return b>2&&"function"==typeof c?b-=2:(c=b>1&&"function"==typeof d?(--b,d):B,d=B),a.length=b,Ld(a,c,d)}),ah=qe(function(a){return a=Db(a),this.thru(function(b){return _a(Ch(b)?b:[kd(b)],a)})}),bh=qe(function(a,b){return sb(a,Db(b))}),ch=jc(function(a,b,c){ag.call(a,c)?++a[c]:a[c]=1}),dh=uc(Jg),eh=uc(Kg,!0),fh=yc(bb,Jg),gh=yc(cb,Kg),hh=jc(function(a,b,c){ag.call(a,c)?a[c].push(b):a[c]=[b]}),ih=jc(function(a,b,c){a[c]=b}),jh=qe(function(a,b,c){var d=-1,e="function"==typeof b,f=_c(b),g=Yc(a)?Of(a.length):[];return Jg(a,function(a){var h=e?b:f&&null!=a?a[b]:B;g[++d]=h?h.apply(a,c):Xc(a,b,c)}),g}),kh=jc(function(a,b,c){a[c?0:1].push(b)},function(){return[[],[]]}),lh=Ec(kb,Jg),mh=Ec(lb,Kg),nh=qe(function(a,b){if(null==a)return[];var c=b[2];return c&&$c(b[0],b[1],c)&&(b.length=1),Zb(a,Db(b),[])}),oh=xg||function(){return(new Pf).getTime()},ph=qe(function(a,b,c){var d=D;if(c.length){var e=v(c,ph.placeholder);d|=I}return Kc(a,d,b,c,e)}),qh=qe(function(a,b){b=b.length?Db(b):Xe(a);for(var c=-1,d=b.length;++c0||0>b)?new e(c):(0>a?c=c.takeRight(-a):a&&(c=c.drop(a)),b!==B&&(b=+b||0,c=0>b?c.dropRight(-b):c.take(b-a)),c)},e.prototype.takeRightWhile=function(a,b){return this.reverse().takeWhile(a,b).reverse()},e.prototype.toArray=function(){return this.take(Bg)},Fb(e.prototype,function(a,c){var f=/^(?:filter|map|reject)|While$/.test(c),g=/^(?:first|last)$/.test(c),h=b[g?"take"+("last"==c?"Right":""):c];h&&(b.prototype[c]=function(){var b=g?[1]:arguments,c=this.__chain__,i=this.__wrapped__,j=!!this.__actions__.length,k=i instanceof e,l=b[0],m=k||Ch(i);m&&f&&"function"==typeof l&&1!=l.length&&(k=m=!1);var n=function(a){return g&&c?h(a,1)[0]:h.apply(B,jb([a],b))},o={func:Qd,args:[n],thisArg:B},p=k&&!j;if(g&&!c)return p?(i=i.clone(),i.__actions__.push(o),a.call(i)):h.call(B,this.value())[0];if(!g&&m){i=p?i:new e(this);var q=a.apply(i,b);return q.__actions__.push(o),new d(q,c)}return this.thru(n)})}),bb(["join","pop","push","replace","shift","sort","splice","split","unshift"],function(a){var c=(/^(?:replace|split)$/.test(a)?$f:Yf)[a],d=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",e=/^(?:join|pop|replace|shift)$/.test(a);b.prototype[a]=function(){var a=arguments;return e&&!this.__chain__?c.apply(this.value(),a):this[d](function(b){return c.apply(b,a)})}}),Fb(e.prototype,function(a,c){var d=b[c];if(d){var e=d.name,f=Hg[e]||(Hg[e]=[]);f.push({name:c,func:d})}}),Hg[Fc(B,E).name]=[{name:"wrapper",func:B}],e.prototype.clone=u,e.prototype.reverse=_,e.prototype.value=da,b.prototype.chain=Rd,b.prototype.commit=Sd,b.prototype.concat=ah,b.prototype.plant=Td,b.prototype.reverse=Ud,b.prototype.toString=Vd,b.prototype.run=b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=Wd,b.prototype.collect=b.prototype.map,b.prototype.head=b.prototype.first,b.prototype.select=b.prototype.filter,b.prototype.tail=b.prototype.rest,b}var B,C="3.10.1",D=1,E=2,F=4,G=8,H=16,I=32,J=64,K=128,L=256,M=30,N="...",O=150,P=16,Q=200,R=1,S=2,T="Expected a function",U="__lodash_placeholder__",V="[object Arguments]",W="[object Array]",X="[object Boolean]",Y="[object Date]",Z="[object Error]",$="[object Function]",_="[object Map]",aa="[object Number]",ba="[object Object]",ca="[object RegExp]",da="[object Set]",ea="[object String]",fa="[object WeakMap]",ga="[object ArrayBuffer]",ha="[object Float32Array]",ia="[object Float64Array]",ja="[object Int8Array]",ka="[object Int16Array]",la="[object Int32Array]",ma="[object Uint8Array]",na="[object Uint8ClampedArray]",oa="[object Uint16Array]",pa="[object Uint32Array]",qa=/\b__p \+= '';/g,ra=/\b(__p \+=) '' \+/g,sa=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ta=/&(?:amp|lt|gt|quot|#39|#96);/g,ua=/[&<>"'`]/g,va=RegExp(ta.source),wa=RegExp(ua.source),xa=/<%-([\s\S]+?)%>/g,ya=/<%([\s\S]+?)%>/g,za=/<%=([\s\S]+?)%>/g,Aa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,Ba=/^\w*$/,Ca=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,Da=/^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,Ea=RegExp(Da.source),Fa=/[\u0300-\u036f\ufe20-\ufe23]/g,Ga=/\\(\\)?/g,Ha=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ia=/\w*$/,Ja=/^0[xX]/,Ka=/^\[object .+?Constructor\]$/,La=/^\d+$/,Ma=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,Na=/($^)/,Oa=/['\n\r\u2028\u2029\\]/g,Pa=function(){var a="[A-Z\\xc0-\\xd6\\xd8-\\xde]",b="[a-z\\xdf-\\xf6\\xf8-\\xff]+";return RegExp(a+"+(?="+a+b+")|"+a+"?"+b+"|"+a+"+|[0-9]+","g")}(),Qa=["Array","ArrayBuffer","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Math","Number","Object","RegExp","Set","String","_","clearTimeout","isFinite","parseFloat","parseInt","setTimeout","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap"],Ra=-1,Sa={};Sa[ha]=Sa[ia]=Sa[ja]=Sa[ka]=Sa[la]=Sa[ma]=Sa[na]=Sa[oa]=Sa[pa]=!0,Sa[V]=Sa[W]=Sa[ga]=Sa[X]=Sa[Y]=Sa[Z]=Sa[$]=Sa[_]=Sa[aa]=Sa[ba]=Sa[ca]=Sa[da]=Sa[ea]=Sa[fa]=!1;var Ta={};Ta[V]=Ta[W]=Ta[ga]=Ta[X]=Ta[Y]=Ta[ha]=Ta[ia]=Ta[ja]=Ta[ka]=Ta[la]=Ta[aa]=Ta[ba]=Ta[ca]=Ta[ea]=Ta[ma]=Ta[na]=Ta[oa]=Ta[pa]=!0,Ta[Z]=Ta[$]=Ta[_]=Ta[da]=Ta[fa]=!1;var Ua={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},Va={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Wa={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},Xa={"function":!0,object:!0},Ya={0:"x30",1:"x31",2:"x32",3:"x33",4:"x34",5:"x35",6:"x36",7:"x37",8:"x38",9:"x39",A:"x41",B:"x42",C:"x43",D:"x44",E:"x45",F:"x46",a:"x61",b:"x62",c:"x63",d:"x64",e:"x65",f:"x66",n:"x6e",r:"x72",t:"x74",u:"x75",v:"x76",x:"x78"},Za={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},$a=Xa[typeof b]&&b&&!b.nodeType&&b,_a=Xa[typeof a]&&a&&!a.nodeType&&a,ab=$a&&_a&&"object"==typeof e&&e&&e.Object&&e,bb=Xa[typeof self]&&self&&self.Object&&self,cb=Xa[typeof window]&&window&&window.Object&&window,db=(_a&&_a.exports===$a&&$a,ab||cb!==(this&&this.window)&&cb||bb||this),eb=A();db._=eb,d=function(){return eb}.call(b,c,b,a),!(d!==B&&(a.exports=d))}).call(this)}).call(b,c(8)(a),function(){return this}())},function(a,b){a.exports=function(a){return a.webpackPolyfill||(a.deprecate=function(){},a.paths=[],a.children=[],a.webpackPolyfill=1),a}},function(a,b,c){"use strict";function d(a,b){var c="normal";return a&&b?c="bolditalics":a?c="bold":b&&(c="italics"),c}function e(a,b){this.fonts={},this.pdfDoc=b,this.fontWrappers={};for(var c in a)if(a.hasOwnProperty(c)){var d=a[c];this.fonts[c]={normal:d.normal,bold:d.bold,italics:d.italics,bolditalics:d.bolditalics}}}var f=c(7),g=c(10);e.prototype.provideFont=function(a,b,c){var e=d(b,c);if(!this.fonts[a]||!this.fonts[a][e])throw new Error("Font '"+a+"' in style '"+e+"' is not defined in the font section of the document definition.");return this.fontWrappers[a]=this.fontWrappers[a]||{},this.fontWrappers[a][e]||(this.fontWrappers[a][e]=new g(this.pdfDoc,this.fonts[a][e],a+"("+e+")")),this.fontWrappers[a][e]},e.prototype.setFontRefsToPdfDoc=function(){var a=this;f.each(a.fontWrappers,function(b){f.each(b,function(b){f.each(b.pdfFonts,function(b){a.pdfDoc.page.fonts[b.id]||(a.pdfDoc.page.fonts[b.id]=b.ref())})})})},a.exports=e},function(a,b,c){"use strict";function d(a,b,c){this.MAX_CHAR_TYPES=92,this.pdfkitDoc=a,this.path=b,this.pdfFonts=[],this.charCatalogue=[],this.name=c,Object.defineProperty(this,"ascender",{get:function(){var a=this.getFont(0);return a.ascender}}),Object.defineProperty(this,"decender",{get:function(){var a=this.getFont(0);return a.decender}})}var e=c(7);d.prototype.getFont=function(a){if(!this.pdfFonts[a]){var b=this.name+a;this.postscriptName&&delete this.pdfkitDoc._fontFamilies[this.postscriptName],this.pdfFonts[a]=this.pdfkitDoc.font(this.path,b)._font,this.postscriptName||(this.postscriptName=this.pdfFonts[a].name)}return this.pdfFonts[a]},d.prototype.widthOfString=function(){var a=this.getFont(0);return a.widthOfString.apply(a,arguments)},d.prototype.lineHeight=function(){var a=this.getFont(0);return a.lineHeight.apply(a,arguments)},d.prototype.ref=function(){var a=this.getFont(0);return a.ref.apply(a,arguments)};var f=function(a){return a.charCodeAt(0)};d.prototype.encode=function(a){var b=this,c=e.chain(a.split("")).map(f).uniq().value();if(c.length>b.MAX_CHAR_TYPES)throw new Error("Inline has more than "+b.MAX_CHAR_TYPES+": "+a+" different character types and therefore cannot be properly embedded into pdf.");var d=function(a){return e.uniq(a.concat(c)).length<=b.MAX_CHAR_TYPES},g=e.findIndex(b.charCatalogue,d);0>g&&(g=b.charCatalogue.length,b.charCatalogue[g]=[]);var h=b.getFont(g);h.use(a),e.each(c,function(a){e.includes(b.charCatalogue[g],a)||b.charCatalogue[g].push(a)});var i=e.map(h.encode(a),function(a){return a.charCodeAt(0).toString(16)}).join("");return{encodedText:i,fontId:h.id}},a.exports=d},function(a,b,c){"use strict";function d(a,b){g.each(b,function(b){a.push(b)})}function e(a,b,c){this.pageSize=a,this.pageMargins=b,this.tracker=new h,this.imageMeasure=c,this.tableLayouts={}}function f(a){var b=a.x,c=a.y;a.positions=[],g.each(a.canvas,function(a){var b=a.x,c=a.y,d=a.x1,e=a.y1,f=a.x2,g=a.y2;a.resetXY=function(){a.x=b,a.y=c,a.x1=d,a.y1=e,a.x2=f,a.y2=g}}),a.resetXY=function(){a.x=b,a.y=c,g.each(a.canvas,function(a){a.resetXY()})}}var g=c(7),h=c(12),i=c(13),j=c(19),k=c(20),l=c(16),m=c(23),n=c(22),o=c(17).pack,p=c(17).offsetVector,q=c(17).fontStringify,r=c(17).isFunction,s=c(14),t=c(15);e.prototype.registerTableLayouts=function(a){this.tableLayouts=o(this.tableLayouts,a)},e.prototype.layoutDocument=function(a,b,c,d,e,f,h,j,k,l){function m(a,b){return r(l)?(a=g.reject(a,function(a){return g.isEmpty(a.positions)}),g.each(a,function(a){var c=g.pick(a,["id","text","ul","ol","table","image","qr","canvas","columns","headlineLevel","style","pageBreak","pageOrientation","width","height"]);c.startPosition=g.first(a.positions),c.pageNumbers=g.chain(a.positions).map("pageNumber").uniq().value(),c.pages=b.length,c.stack=g.isArray(a.stack),a.nodeInfo=c}),g.any(a,function(a,b,c){if("before"!==a.pageBreak&&!a.pageBreakCalculated){a.pageBreakCalculated=!0;var d=g.first(a.nodeInfo.pageNumbers),e=g.chain(c).drop(b+1).filter(function(a){return g.contains(a.nodeInfo.pageNumbers,d)}).value(),f=g.chain(c).drop(b+1).filter(function(a){return g.contains(a.nodeInfo.pageNumbers,d+1)}).value(),h=g.chain(c).take(b).filter(function(a){return g.contains(a.nodeInfo.pageNumbers,d)}).value();if(l(a.nodeInfo,g.map(e,"nodeInfo"),g.map(f,"nodeInfo"),g.map(h,"nodeInfo")))return a.pageBreak="before",!0}})):!1}function n(a){g.each(a.linearNodeList,function(a){a.resetXY()})}this.docMeasure=new i(b,c,d,this.imageMeasure,this.tableLayouts,j);for(var o=this.tryLayoutDocument(a,b,c,d,e,f,h,j,k);m(o.linearNodeList,o.pages);)n(o),o=this.tryLayoutDocument(a,b,c,d,e,f,h,j,k);return o.pages},e.prototype.tryLayoutDocument=function(a,b,c,d,e,f,g,h,i,l){this.linearNodeList=[],a=this.docMeasure.measureDocument(a),this.writer=new k(new j(this.pageSize,this.pageMargins),this.tracker);var m=this;return this.writer.context().tracker.startTracking("pageAdded",function(){m.addBackground(e)}),this.addBackground(e),this.processNode(a),this.addHeadersAndFooters(f,g),null!=i&&this.addWatermark(i,b),{pages:this.writer.context().pages,linearNodeList:this.linearNodeList}},e.prototype.addBackground=function(a){var b=r(a)?a:function(){return a},c=b(this.writer.context().page+1);if(c){var d=this.writer.context().getCurrentPage().pageSize;this.writer.beginUnbreakableBlock(d.width,d.height),this.processNode(this.docMeasure.measureDocument(c)),this.writer.commitUnbreakableBlock(0,0)}},e.prototype.addStaticRepeatable=function(a,b){this.addDynamicRepeatable(function(){return a},b)},e.prototype.addDynamicRepeatable=function(a,b){for(var c=this.writer.context().pages,d=0,e=c.length;e>d;d++){this.writer.context().page=d;var f=a(d+1,e);if(f){var g=b(this.writer.context().getCurrentPage().pageSize,this.pageMargins);this.writer.beginUnbreakableBlock(g.width,g.height),this.processNode(this.docMeasure.measureDocument(f)),this.writer.commitUnbreakableBlock(g.x,g.y)}}},e.prototype.addHeadersAndFooters=function(a,b){var c=function(a,b){return{x:0,y:0,width:a.width,height:b.top}},d=function(a,b){return{x:0,y:a.height-b.bottom,width:a.width,height:b.bottom}};r(a)?this.addDynamicRepeatable(a,c):a&&this.addStaticRepeatable(a,c),r(b)?this.addDynamicRepeatable(b,d):b&&this.addStaticRepeatable(b,d)},e.prototype.addWatermark=function(a,b){function c(a,b,c){for(var d,e=a.width,f=a.height,g=.8*Math.sqrt(e*e+f*f),h=new s(c),i=new t,j=0,k=1e3,l=(j+k)/2;Math.abs(j-k)>1;)i.push({fontSize:l}),d=h.sizeOfString(b,i),d.width>g?(k=l,l=(j+k)/2):d.widthg;g++)f[g].watermark=e},e.prototype.processNode=function(a){function b(b){var d=a._margin;"before"===a.pageBreak&&c.writer.moveToNextPage(a.pageOrientation),d&&(c.writer.context().moveDown(d[1]),c.writer.context().addMargin(d[0],d[2])),b(),d&&(c.writer.context().addMargin(-d[0],-d[2]),c.writer.context().moveDown(d[3])),"after"===a.pageBreak&&c.writer.moveToNextPage(a.pageOrientation)}var c=this;this.linearNodeList.push(a),f(a),b(function(){var b=a.absolutePosition;if(b&&(c.writer.context().beginDetachedBlock(),c.writer.context().moveTo(b.x||0,b.y||0)),a.stack)c.processVerticalContainer(a);else if(a.columns)c.processColumns(a);else if(a.ul)c.processList(!1,a);else if(a.ol)c.processList(!0,a);else if(a.table)c.processTable(a);else if(void 0!==a.text)c.processLeaf(a);else if(a.image)c.processImage(a);else if(a.canvas)c.processCanvas(a);else if(a.qr)c.processQr(a);else if(!a._span)throw"Unrecognized document structure: "+JSON.stringify(a,q);b&&c.writer.context().endDetachedBlock()})},e.prototype.processVerticalContainer=function(a){var b=this;a.stack.forEach(function(c){b.processNode(c),d(a.positions,c.positions)})},e.prototype.processColumns=function(a){function b(a){if(!a)return null;var b=[];b.push(0);for(var d=c.length-1;d>0;d--)b.push(a);return b}var c=a.columns,e=this.writer.context().availableWidth,f=b(a._gap);f&&(e-=(f.length-1)*a._gap),l.buildColumnWidths(c,e);var g=this.processRow(c,c,f);d(a.positions,g.positions)},e.prototype.processRow=function(a,b,c,e,f){function g(a){for(var b,c=0,d=k.length;d>c;c++){var e=k[c];if(e.prevPage===a.prevPage){b=e;break}}b||(b=a,k.push(b)),b.prevY=Math.max(b.prevY,a.prevY),b.y=Math.min(b.y,a.y)}function h(a){return c&&c.length>a?c[a]:0}function i(a,b){if(a.rowSpan&&a.rowSpan>1){var c=f+a.rowSpan-1;if(c>=e.length)throw"Row span for column "+b+" (with indexes starting from 0) exceeded row count";return e[c][b]}return null}var j=this,k=[],l=[];return this.tracker.auto("pageChanged",g,function(){b=b||a,j.writer.context().beginColumnGroup();for(var e=0,f=a.length;f>e;e++){var g=a[e],k=b[e]._calcWidth,m=h(e);if(g.colSpan&&g.colSpan>1)for(var n=1;nc;c++){b.beginRow(c,this.writer);var f=this.processRow(a.table.body[c],a.table.widths,a._offsets.offsets,a.table.body,c);d(a.positions,f.positions),b.endRow(c,this.writer,f.pageBreaks)}b.endTable(this.writer)},e.prototype.processLeaf=function(a){for(var b=this.buildNextLine(a),c=b?b.getHeight():0,d=a.maxHeight||-1;b&&(-1===d||d>c);){var e=this.writer.addLine(b);a.positions.push(e),b=this.buildNextLine(a),b&&(c+=b.getHeight())}},e.prototype.buildNextLine=function(a){if(!a._inlines||0===a._inlines.length)return null;for(var b=new n(this.writer.context().availableWidth);a._inlines&&a._inlines.length>0&&b.hasEnoughSpaceForInline(a._inlines[0]);)b.addInline(a._inlines.shift());return b.lastLineInParagraph=0===a._inlines.length,b},e.prototype.processImage=function(a){var b=this.writer.addImage(a);a.positions.push(b)},e.prototype.processCanvas=function(a){var b=a._minHeight;this.writer.context().availableHeight=0&&c.splice(d,1)}},c.prototype.emit=function(a){var b=Array.prototype.slice.call(arguments,1),c=this.events[a];c&&c.forEach(function(a){a.apply(this,b)})},c.prototype.auto=function(a,b,c){this.startTracking(a,b),c(),this.stopTracking(a,b)},a.exports=c},function(a,b,c){"use strict";function d(a,b,c,d,g,h){this.textTools=new e(a),this.styleStack=new f(b,c),this.imageMeasure=d,this.tableLayouts=g,this.images=h,this.autoImageIndex=1}var e=c(14),f=c(15),g=c(16),h=c(17).fontStringify,i=c(17).pack,j=c(18);d.prototype.measureDocument=function(a){return this.measureNode(a)},d.prototype.measureNode=function(a){function b(a){var b=a._margin;return b&&(a._minWidth+=b[0]+b[2],a._maxWidth+=b[0]+b[2]),a}function c(){function b(a,b){return a.marginLeft||a.marginTop||a.marginRight||a.marginBottom?[a.marginLeft||b[0]||0,a.marginTop||b[1]||0,a.marginRight||b[2]||0,a.marginBottom||b[3]||0]:b}function c(a){for(var b={},c=a.length-1;c>=0;c--){var e=a[c],f=d.styleStack.styleDictionary[e];for(var g in f)f.hasOwnProperty(g)&&(b[g]=f[g])}return b}function e(a){return"number"==typeof a||a instanceof Number?a=[a,a,a,a]:a instanceof Array&&2===a.length&&(a=[a[0],a[1],a[0],a[1]]),a}var f=[void 0,void 0,void 0,void 0];if(a.style){var g=a.style instanceof Array?a.style:[a.style],h=c(g);h&&(f=b(h,f)),h.margin&&(f=e(h.margin))}return f=b(a,f),a.margin&&(f=e(a.margin)),void 0===f[0]&&void 0===f[1]&&void 0===f[2]&&void 0===f[3]?null:f}a instanceof Array?a={stack:a}:("string"==typeof a||a instanceof String)&&(a={text:a}),0===Object.keys(a).length&&(a={text:""});var d=this;return this.styleStack.auto(a,function(){if(a._margin=c(a),a.columns)return b(d.measureColumns(a));if(a.stack)return b(d.measureVerticalContainer(a));if(a.ul)return b(d.measureList(!1,a));if(a.ol)return b(d.measureList(!0,a));if(a.table)return b(d.measureTable(a));if(void 0!==a.text)return b(d.measureLeaf(a));if(a.image)return b(d.measureImage(a));if(a.canvas)return b(d.measureCanvas(a));if(a.qr)return b(d.measureQr(a));throw"Unrecognized document structure: "+JSON.stringify(a,h)})},d.prototype.convertIfBase64Image=function(a){if(/^data:image\/(jpeg|jpg|png);base64,/.test(a.image)){var b="$$pdfmake$$"+this.autoImageIndex++;this.images[b]=a.image,a.image=b}},d.prototype.measureImage=function(a){this.images&&this.convertIfBase64Image(a);var b=this.imageMeasure.measureImage(a.image);if(a.fit){var c=b.width/b.height>a.fit[0]/a.fit[1]?a.fit[0]/b.width:a.fit[1]/b.height;a._width=a._minWidth=a._maxWidth=b.width*c,a._height=b.height*c}else a._width=a._minWidth=a._maxWidth=a.width||b.width,a._height=a.height||b.height*a._width/b.width;return a._alignment=this.styleStack.getProperty("alignment"),a},d.prototype.measureLeaf=function(a){var b=this.styleStack.clone();b.push(a);var c=this.textTools.buildInlines(a.text,b);return a._inlines=c.items,a._minWidth=c.minWidth,a._maxWidth=c.maxWidth,a},d.prototype.measureVerticalContainer=function(a){var b=a.stack;a._minWidth=0,a._maxWidth=0;for(var c=0,d=b.length;d>c;c++)b[c]=this.measureNode(b[c]),a._minWidth=Math.max(a._minWidth,b[c]._minWidth),a._maxWidth=Math.max(a._maxWidth,b[c]._maxWidth);return a},d.prototype.gapSizeForList=function(a,b){if(a){var c=b.length.toString().replace(/./g,"9");return this.textTools.sizeOfString(c+". ",this.styleStack)}return this.textTools.sizeOfString("9. ",this.styleStack)},d.prototype.buildMarker=function(a,b,c,d){var e;if(a)e={_inlines:this.textTools.buildInlines(b,c).items};else{var f=d.fontSize/6;e={canvas:[{x:f,y:d.height/d.lineHeight+d.decender-d.fontSize/3,r1:f,r2:f,type:"ellipse",color:"black"}]}}return e._minWidth=e._maxWidth=d.width,e._minHeight=e._maxHeight=d.height,e},d.prototype.measureList=function(a,b){var c=this.styleStack.clone(),d=a?b.ol:b.ul;b._gapSize=this.gapSizeForList(a,d),b._minWidth=0,b._maxWidth=0;for(var e=1,f=0,g=d.length;g>f;f++){var h=d[f]=this.measureNode(d[f]),i=e++ +". ";h.ol||h.ul||(h.listMarker=this.buildMarker(a,h.counter||i,c,b._gapSize)),b._minWidth=Math.max(b._minWidth,d[f]._minWidth+b._gapSize.width),b._maxWidth=Math.max(b._maxWidth,d[f]._maxWidth+b._gapSize.width)}return b},d.prototype.measureColumns=function(a){var b=a.columns;a._gap=this.styleStack.getProperty("columnGap")||0;for(var c=0,d=b.length;d>c;c++)b[c]=this.measureNode(b[c]);var e=g.measureMinMax(b);return a._minWidth=e.min+a._gap*(b.length-1),a._maxWidth=e.max+a._gap*(b.length-1),a},d.prototype.measureTable=function(a){function b(a,b){return function(){return null!==b&&"object"==typeof b&&(b.fillColor=a.styleStack.getProperty("fillColor")),a.measureNode(b)}}function c(b){var c=a.layout;("string"==typeof a.layout||a instanceof String)&&(c=b[c]);var d={hLineWidth:function(a,b){return 1},vLineWidth:function(a,b){return 1},hLineColor:function(a,b){return"black"},vLineColor:function(a,b){return"black"},paddingLeft:function(a,b){return 4},paddingRight:function(a,b){return 4},paddingTop:function(a,b){return 2},paddingBottom:function(a,b){return 2}};return i(d,c)}function d(b){for(var c=[],d=0,e=0,f=0,g=a.table.widths.length;g>f;f++){var h=e+b.vLineWidth(f,a)+b.paddingLeft(f,a);c.push(h),d+=h,e=b.paddingRight(f,a)}return d+=e+b.vLineWidth(a.table.widths.length,a),{total:d,offsets:c}}function e(){for(var b,c,d=0,e=p.length;e>d;d++){var g=p[d],h=f(g.col,g.span,a._offsets),i=g.minWidth-h.minWidth,j=g.maxWidth-h.maxWidth;if(i>0)for(b=i/g.span,c=0;c0)for(b=j/g.span,c=0;cf;f++)e.minWidth+=a.table.widths[b+f]._minWidth+(f?d.offsets[b+f]:0),e.maxWidth+=a.table.widths[b+f]._maxWidth+(f?d.offsets[b+f]:0);return e}function h(a,b,c){for(var d=1;c>d;d++)a[b+d]={_span:!0,_minWidth:0,_maxWidth:0,rowSpan:a[b].rowSpan}}function j(a,b,c,d){for(var e=1;d>e;e++)a.body[b+e][c]={_span:!0,_minWidth:0,_maxWidth:0,fillColor:a.body[b][c].fillColor}}function k(a){if(a.table.widths||(a.table.widths="auto"),"string"==typeof a.table.widths||a.table.widths instanceof String)for(a.table.widths=[a.table.widths];a.table.widths.lengthb;b++){var d=a.table.widths[b];("number"==typeof d||d instanceof Number||"string"==typeof d||d instanceof String)&&(a.table.widths[b]={width:d})}}k(a),a._layout=c(this.tableLayouts),a._offsets=d(a._layout);var l,m,n,o,p=[];for(l=0,n=a.table.body[0].length;n>l;l++){var q=a.table.widths[l];for(q._minWidth=0,q._maxWidth=0,m=0,o=a.table.body.length;o>m;m++){var r=a.table.body[m],s=r[l];if(!s._span){s=r[l]=this.styleStack.auto(s,b(this,s)),s.colSpan&&s.colSpan>1?(h(r,l,s.colSpan),p.push({col:l,span:s.colSpan,minWidth:s._minWidth,maxWidth:s._maxWidth})):(q._minWidth=Math.max(q._minWidth,s._minWidth),q._maxWidth=Math.max(q._maxWidth,s._maxWidth))}s.rowSpan&&s.rowSpan>1&&j(a.table,m,l,s.rowSpan)}}e();var t=g.measureMinMax(a.table.widths);return a._minWidth=t.min+a._offsets.total,a._maxWidth=t.max+a._offsets.total,a},d.prototype.measureCanvas=function(a){for(var b=0,c=0,d=0,e=a.canvas.length;e>d;d++){var f=a.canvas[d];switch(f.type){case"ellipse":b=Math.max(b,f.x+f.r1),c=Math.max(c,f.y+f.r2);break;case"rect":b=Math.max(b,f.x+f.w),c=Math.max(c,f.y+f.h);break;case"line":b=Math.max(b,f.x1,f.x2),c=Math.max(c,f.y1,f.y2);break;case"polyline":for(var g=0,h=f.points.length;h>g;g++)b=Math.max(b,f.points[g].x),c=Math.max(c,f.points[g].y)}}return a._minWidth=a._maxWidth=b,a._minHeight=a._maxHeight=c,a},d.prototype.measureQr=function(a){return a=j.measure(a),a._alignment=this.styleStack.getProperty("alignment"),a},a.exports=d},function(a,b){"use strict";function c(a){this.fontProvider=a}function d(a,b){var c=[];a=a.replace(" "," ");var d;d=b?[a,""]:a.match(j);for(var e=0,f=d.length;f-1>e;e++){var g=d[e],h=0===g.length;if(h){var i=0===c.length||c[c.length-1].lineEnd;i?c.push({text:"",lineEnd:!0}):c[c.length-1].lineEnd=!0}else c.push({text:g})}return c}function e(a,b){b=b||{},a=a||{};for(var c in a)"text"!=c&&a.hasOwnProperty(c)&&(b[c]=a[c]);return b}function f(a){var b=[];("string"==typeof a||a instanceof String)&&(a=[a]);for(var c=0,f=a.length;f>c;c++){var g,h=a[c],i=null;"string"==typeof h||h instanceof String?g=d(h):(g=d(h.text,h.noWrap),i=e(h));for(var j=0,k=g.length;k>j;j++){var l={text:g[j].text};g[j].lineEnd&&(l.lineEnd=!0),e(i,l),b.push(l)}}return b}function g(a){return a.replace(/[^A-Za-z0-9\[\] ]/g,function(a){return m[a]||a})}function h(a,b,c,d){var e;return void 0!==a[c]&&null!==a[c]?a[c]:b?(b.auto(a,function(){e=b.getProperty(c)}),null!==e&&void 0!==e?e:d):d}function i(a,b,c){var d=f(b);return d.forEach(function(b){var d=h(b,c,"font","Roboto"),e=h(b,c,"fontSize",12),f=h(b,c,"bold",!1),i=h(b,c,"italics",!1),j=h(b,c,"color","black"),m=h(b,c,"decoration",null),n=h(b,c,"decorationColor",null),o=h(b,c,"decorationStyle",null),p=h(b,c,"background",null),q=h(b,c,"lineHeight",1),r=a.provideFont(d,f,i);b.width=r.widthOfString(g(b.text),e),b.height=r.lineHeight(e)*q;var s=b.text.match(k),t=b.text.match(l);s?b.leadingCut=r.widthOfString(s[0],e):b.leadingCut=0, +t?b.trailingCut=r.widthOfString(t[0],e):b.trailingCut=0,b.alignment=h(b,c,"alignment","left"),b.font=r,b.fontSize=e,b.color=j,b.decoration=m,b.decorationColor=n,b.decorationStyle=o,b.background=p}),d}var j=/([^ ,\/!.?:;\-\n]*[ ,\/!.?:;\-]*)|\n/g,k=/^(\s)+/g,l=/(\s)+$/g;c.prototype.buildInlines=function(a,b){function c(a){return Math.max(0,a.width-a.leadingCut-a.trailingCut)}var d,e=i(this.fontProvider,a,b),f=0,g=0;return e.forEach(function(a){f=Math.max(f,a.width-a.leadingCut-a.trailingCut),d||(d={width:0,leadingCut:a.leadingCut,trailingCut:0}),d.width+=a.width,d.trailingCut=a.trailingCut,g=Math.max(g,c(d)),a.lineEnd&&(d=null)}),h({},b,"noWrap",!1)&&(f=g),{items:e,minWidth:f,maxWidth:g}},c.prototype.sizeOfString=function(a,b){a=a.replace(" "," ");var c=h({},b,"font","Roboto"),d=h({},b,"fontSize",12),e=h({},b,"bold",!1),f=h({},b,"italics",!1),i=h({},b,"lineHeight",1),j=this.fontProvider.provideFont(c,e,f);return{width:j.widthOfString(g(a),d),height:j.lineHeight(d)*i,fontSize:d,lineHeight:i,ascender:j.ascender/1e3*d,decender:j.decender/1e3*d}};var m={"Ą":"A","Ć":"C","Ę":"E","Ł":"L","Ń":"N","Ó":"O","Ś":"S","Ź":"Z","Ż":"Z","ą":"a","ć":"c","ę":"e","ł":"l","ń":"n","ó":"o","ś":"s","ź":"z","ż":"z"};a.exports=c},function(a,b){"use strict";function c(a,b){this.defaultStyle=b||{},this.styleDictionary=a,this.styleOverrides=[]}c.prototype.clone=function(){var a=new c(this.styleDictionary,this.defaultStyle);return this.styleOverrides.forEach(function(b){a.styleOverrides.push(b)}),a},c.prototype.push=function(a){this.styleOverrides.push(a)},c.prototype.pop=function(a){for(a=a||1;a-- >0;)this.styleOverrides.pop()},c.prototype.autopush=function(a){if("string"==typeof a||a instanceof String)return 0;var b=[];a.style&&(b=a.style instanceof Array?a.style:[a.style]);for(var c=0,d=b.length;d>c;c++)this.push(b[c]);var e={},f=!1;return["font","fontSize","bold","italics","alignment","color","columnGap","fillColor","decoration","decorationStyle","decorationColor","background","lineHeight","noWrap"].forEach(function(b){void 0!==a[b]&&null!==a[b]&&(e[b]=a[b],f=!0)}),f&&this.push(e),b.length+(f?1:0)},c.prototype.auto=function(a,b){var c=this.autopush(a),d=b();return c>0&&this.pop(c),d},c.prototype.getProperty=function(a){if(this.styleOverrides)for(var b=this.styleOverrides.length-1;b>=0;b--){var c=this.styleOverrides[b];if("string"==typeof c||c instanceof String){var d=this.styleDictionary[c];if(d&&null!==d[a]&&void 0!==d[a])return d[a]}else if(void 0!==c[a]&&null!==c[a])return c[a]}return this.defaultStyle&&this.defaultStyle[a]},a.exports=c},function(a,b){"use strict";function c(a,b){var c=[],f=0,g=0,h=[],i=0,j=0,k=[],l=b;a.forEach(function(a){d(a)?(c.push(a),f+=a._minWidth,g+=a._maxWidth):e(a)?(h.push(a),i=Math.max(i,a._minWidth),j=Math.max(j,a._maxWidth)):k.push(a)}),k.forEach(function(a){"string"==typeof a.width&&/\d+%/.test(a.width)&&(a.width=parseFloat(a.width)*l/100),a.width=b)c.forEach(function(a){a._calcWidth=a._minWidth}),h.forEach(function(a){a._calcWidth=i});else{if(b>n)c.forEach(function(a){a._calcWidth=a._maxWidth,b-=a._calcWidth});else{var o=b-m,p=n-m;c.forEach(function(a){var c=a._maxWidth-a._minWidth;a._calcWidth=a._minWidth+c*o/p,b-=a._calcWidth})}if(h.length>0){var q=b/h.length;h.forEach(function(a){a._calcWidth=q})}}}function d(a){return"auto"===a.width}function e(a){return null===a.width||void 0===a.width||"*"===a.width||"star"===a.width}function f(a){for(var b={min:0,max:0},c={min:0,max:0},f=0,g=0,h=a.length;h>g;g++){var i=a[g];e(i)?(c.min=Math.max(c.min,i._minWidth),c.max=Math.max(c.max,i._maxWidth),f++):d(i)?(b.min+=i._minWidth,b.max+=i._maxWidth):(b.min+=void 0!==i.width&&i.width||i._minWidth,b.max+=void 0!==i.width&&i.width||i._maxWidth)}return f&&(b.min+=f*c.min,b.max+=f*c.max),b}a.exports={buildColumnWidths:c,measureMinMax:f,isAutoColumn:d,isStarColumn:e}},function(a,b){"use strict";function c(){for(var a={},b=0,c=arguments.length;c>b;b++){var d=arguments[b];if(d)for(var e in d)d.hasOwnProperty(e)&&(a[e]=d[e])}return a}function d(a,b,c){switch(a.type){case"ellipse":case"rect":a.x+=b,a.y+=c;break;case"line":a.x1+=b,a.x2+=b,a.y1+=c,a.y2+=c;break;case"polyline":for(var d=0,e=a.points.length;e>d;d++)a.points[d].x+=b,a.points[d].y+=c}}function e(a,b){return"font"===a?"font":b}function f(a){var b={};return a&&"[object Function]"===b.toString.call(a)}a.exports={pack:c,fontStringify:e,offsetVector:d,isFunction:f}},function(a,b){"use strict";function c(a,b){var c={numeric:h,alphanumeric:i,octet:j},d={L:o,M:p,Q:q,H:r};b=b||{};var e=b.version||-1,f=d[(b.eccLevel||"L").toUpperCase()],g=b.mode?c[b.mode.toLowerCase()]:-1,k="mask"in b?b.mask:-1;if(0>g)g="string"==typeof a?a.match(l)?h:a.match(n)?i:j:j;else if(g!=h&&g!=i&&g!=j)throw"invalid or unsupported mode";if(a=K(g,a),null===a)throw"invalid data format";if(0>f||f>3)throw"invalid ECC level";if(0>e){for(e=1;40>=e&&!(a.length<=J(e,g,f));++e);if(e>40)throw"too large data for the Qr format"}else if(1>e||e>40)throw"invalid Qr version! should be between 1 and 40";if(-1!=k&&(0>k||k>8))throw"invalid mask";return U(a,e,g,f,k)}function d(a,b){var d=[],e=a.background||"#fff",f=a.foreground||"#000",g=c(a,b),h=g.length,i=Math.floor(b.fit?b.fit/h:5),j=h*i;d.push({type:"rect",x:0,y:0,w:j,h:j,lineWidth:0,color:e});for(var k=0;h>k;++k)for(var l=0;h>l;++l)g[k][l]&&d.push({type:"rect",x:i*k,y:i*l,w:i,h:i,lineWidth:0,color:f});return{canvas:d,size:j}}function e(a){var b=d(a.qr,a);return a._canvas=b.canvas,a._width=a._height=a._minWidth=a._maxWidth=a._minHeight=a._maxHeight=b.size,a}for(var f=[null,[[10,7,17,13],[1,1,1,1],[]],[[16,10,28,22],[1,1,1,1],[4,16]],[[26,15,22,18],[1,1,2,2],[4,20]],[[18,20,16,26],[2,1,4,2],[4,24]],[[24,26,22,18],[2,1,4,4],[4,28]],[[16,18,28,24],[4,2,4,4],[4,32]],[[18,20,26,18],[4,2,5,6],[4,20,36]],[[22,24,26,22],[4,2,6,6],[4,22,40]],[[22,30,24,20],[5,2,8,8],[4,24,44]],[[26,18,28,24],[5,4,8,8],[4,26,48]],[[30,20,24,28],[5,4,11,8],[4,28,52]],[[22,24,28,26],[8,4,11,10],[4,30,56]],[[22,26,22,24],[9,4,16,12],[4,32,60]],[[24,30,24,20],[9,4,16,16],[4,24,44,64]],[[24,22,24,30],[10,6,18,12],[4,24,46,68]],[[28,24,30,24],[10,6,16,17],[4,24,48,72]],[[28,28,28,28],[11,6,19,16],[4,28,52,76]],[[26,30,28,28],[13,6,21,18],[4,28,54,80]],[[26,28,26,26],[14,7,25,21],[4,28,56,84]],[[26,28,28,30],[16,8,25,20],[4,32,60,88]],[[26,28,30,28],[17,8,25,23],[4,26,48,70,92]],[[28,28,24,30],[17,9,34,23],[4,24,48,72,96]],[[28,30,30,30],[18,9,30,25],[4,28,52,76,100]],[[28,30,30,30],[20,10,32,27],[4,26,52,78,104]],[[28,26,30,30],[21,12,35,29],[4,30,56,82,108]],[[28,28,30,28],[23,12,37,34],[4,28,56,84,112]],[[28,30,30,30],[25,12,40,34],[4,32,60,88,116]],[[28,30,30,30],[26,13,42,35],[4,24,48,72,96,120]],[[28,30,30,30],[28,14,45,38],[4,28,52,76,100,124]],[[28,30,30,30],[29,15,48,40],[4,24,50,76,102,128]],[[28,30,30,30],[31,16,51,43],[4,28,54,80,106,132]],[[28,30,30,30],[33,17,54,45],[4,32,58,84,110,136]],[[28,30,30,30],[35,18,57,48],[4,28,56,84,112,140]],[[28,30,30,30],[37,19,60,51],[4,32,60,88,116,144]],[[28,30,30,30],[38,19,63,53],[4,28,52,76,100,124,148]],[[28,30,30,30],[40,20,66,56],[4,22,48,74,100,126,152]],[[28,30,30,30],[43,21,70,59],[4,26,52,78,104,130,156]],[[28,30,30,30],[45,22,74,62],[4,30,56,82,108,134,160]],[[28,30,30,30],[47,24,77,65],[4,24,52,80,108,136,164]],[[28,30,30,30],[49,25,81,68],[4,28,56,84,112,140,168]]],g=0,h=1,i=2,j=4,k=8,l=/^\d*$/,m=/^[A-Za-z0-9 $%*+\-.\/:]*$/,n=/^[A-Z0-9 $%*+\-.\/:]*$/,o=1,p=0,q=3,r=2,s=[],t=[-1],u=0,v=1;255>u;++u)s.push(v),t[v]=u,v=2*v^(v>=128?285:0);for(var w=[[]],u=0;30>u;++u){for(var x=w[u],y=[],z=0;u>=z;++z){var A=u>z?s[x[z]]:0,B=s[(u+(x[z-1]||0))%255];y.push(t[A^B])}w.push(y)}for(var C={},u=0;45>u;++u)C["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".charAt(u)]=u;var D=[function(a,b){return(a+b)%2===0},function(a,b){return a%2===0},function(a,b){return b%3===0},function(a,b){return(a+b)%3===0},function(a,b){return((a/2|0)+(b/3|0))%2===0},function(a,b){return a*b%2+a*b%3===0},function(a,b){return(a*b%2+a*b%3)%2===0},function(a,b){return((a+b)%2+a*b%3)%2===0}],E=function(a){return a>6},F=function(a){return 4*a+17},G=function(a){var b=f[a],c=16*a*a+128*a+64;return E(a)&&(c-=36),b[2].length&&(c-=25*b[2].length*b[2].length-10*b[2].length-55),c},H=function(a,b){var c=-8&G(a),d=f[a];return c-=8*d[0][b]*d[1][b]},I=function(a,b){switch(b){case h:return 10>a?10:27>a?12:14;case i:return 10>a?9:27>a?11:13;case j:return 10>a?8:16;case k:return 10>a?8:27>a?10:12}},J=function(a,b,c){var d=H(a,c)-4-I(a,b);switch(b){case h:return 3*(d/10|0)+(4>d%10?0:7>d%10?1:2);case i:return 2*(d/11|0)+(6>d%11?0:1);case j:return d/8|0;case k:return d/13|0}},K=function(a,b){switch(a){case h:return b.match(l)?b:null;case i:return b.match(m)?b.toUpperCase():null;case j:if("string"==typeof b){for(var c=[],d=0;de?c.push(e):2048>e?c.push(192|e>>6,128|63&e):65536>e?c.push(224|e>>12,128|e>>6&63,128|63&e):c.push(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)}return c}return b}},L=function(a,b,c,d){var e=[],f=0,k=8,l=c.length,m=function(a,b){if(b>=k){for(e.push(f|a>>(b-=k));b>=8;)e.push(a>>(b-=8)&255);f=0,k=8}b>0&&(f|=(a&(1<o;o+=3)m(parseInt(c.substring(o-2,o+1),10),10);m(parseInt(c.substring(o-2),10),[0,4,7][l%3]);break;case i:for(var o=1;l>o;o+=2)m(45*C[c.charAt(o-1)]+C[c.charAt(o)],11);l%2==1&&m(C[c.charAt(o-1)],6);break;case j:for(var o=0;l>o;++o)m(c[o],8)}for(m(g,4),8>k&&e.push(f);e.length+1f;++f)c.push(0);for(var f=0;d>f;){var g=t[c[f++]];if(g>=0)for(var h=0;e>h;++h)c[f+h]^=s[(g+b[h])%255]}return c.slice(d)},N=function(a,b,c){for(var d=[],e=a.length/b|0,f=0,g=b-a.length%b,h=0;g>h;++h)d.push(f),f+=e;for(var h=g;b>h;++h)d.push(f),f+=e+1;d.push(f);for(var i=[],h=0;b>h;++h)i.push(M(a.slice(d[h],d[h+1]),c));for(var j=[],k=a.length/b|0,h=0;k>h;++h)for(var l=0;b>l;++l)j.push(a[d[l]+h]);for(var l=g;b>l;++l)j.push(a[d[l+1]-1]);for(var h=0;hl;++l)j.push(i[l][h]);return j},O=function(a,b,c,d){for(var e=a<=0;--f)e>>d+f&1&&(e^=c<g;++g)d.push([]),e.push([]);var h=function(a,b,c,f,g){for(var h=0;c>h;++h)for(var i=0;f>i;++i)d[a+h][b+i]=g[h]>>i&1,e[a+h][b+i]=1};h(0,0,9,9,[127,65,93,93,93,65,383,0,64]),h(c-8,0,8,9,[256,127,65,93,93,93,65,127]),h(0,c-8,9,8,[254,130,186,186,186,130,254,0,0]);for(var g=9;c-8>g;++g)d[6][g]=d[g][6]=1&~g,e[6][g]=e[g][6]=1;for(var i=b[2],j=i.length,g=0;j>g;++g)for(var k=0===g||g===j-1?1:0,l=0===g?j-1:j,m=k;l>m;++m)h(i[g],i[m],5,5,[31,17,21,17,31]);if(E(a))for(var n=O(a,6,7973,12),o=0,g=0;6>g;++g)for(var m=0;3>m;++m)d[g][c-11+m]=d[c-11+m][g]=n>>o++&1,e[g][c-11+m]=e[c-11+m][g]=1;return{matrix:d,reserved:e}},Q=function(a,b,c){for(var d=a.length,e=0,f=-1,g=d-1;g>=0;g-=2){6==g&&--g;for(var h=0>f?d-1:0,i=0;d>i;++i){for(var j=g;j>g-2;--j)b[h][j]||(a[h][j]=c[e>>3]>>(7&~e)&1,++e);h+=f}f=-f}return a},R=function(a,b,c){for(var d=D[c],e=a.length,f=0;e>f;++f)for(var g=0;e>g;++g)b[f][g]||(a[f][g]^=d(f,g));return a},S=function(a,b,c,d){for(var e=a.length,f=21522^O(c<<3|d,5,1335,10),g=0;15>g;++g){var h=[0,1,2,3,4,5,7,8,e-7,e-6,e-5,e-4,e-3,e-2,e-1][g],i=[e-1,e-2,e-3,e-4,e-5,e-6,e-7,e-8,7,5,4,3,2,1,0][g];a[h][8]=a[8][i]=f>>g&1}return a},T=function(a){for(var b=3,c=3,d=40,e=10,f=function(a){for(var c=0,e=0;e=5&&(c+=b+(a[e]-5));for(var e=5;e=4*f||a[e+1]>=4*f)&&(c+=d)}return c},g=a.length,h=0,i=0,j=0;g>j;++j){var k,l=a[j];k=[0];for(var m=0;g>m;){var n;for(n=0;g>m&&l[m];++n)++m;for(k.push(n),n=0;g>m&&!l[m];++n)++m;k.push(n)}h+=f(k),k=[0];for(var m=0;g>m;){var n;for(n=0;g>m&&a[m][j];++n)++m;for(k.push(n),n=0;g>m&&!a[m][j];++n)++m;k.push(n)}h+=f(k);var o=a[j+1]||[];i+=l[0];for(var m=1;g>m;++m){var p=l[m];i+=p,l[m-1]==p&&o[m]===p&&o[m-1]===p&&(h+=c)}}return h+=e*(Math.abs(i/g/g-.5)/.05|0)},U=function(a,b,c,d,e){var g=f[b],h=L(b,c,a,H(b,d)>>3);h=N(h,g[1][d],w[g[0][d]]);var i=P(b),j=i.matrix,k=i.reserved;if(Q(j,k,h),0>e){R(j,k,0),S(j,k,d,0);var l=0,m=T(j);for(R(j,k,0),e=1;8>e;++e){R(j,k,e),S(j,k,d,e);var n=T(j);m>n&&(m=n,l=e),R(j,k,e)}e=l}return R(j,k,e),S(j,k,d,e),j};a.exports={measure:e}},function(a,b,c){"use strict";function d(a,b){this.pages=[],this.pageMargins=b,this.x=b.left,this.availableWidth=a.width-b.left-b.right,this.availableHeight=0,this.page=-1,this.snapshots=[],this.endingCell=null,this.tracker=new g,this.addPage(a)}function e(a,b){return void 0===a?b:"landscape"===a?"landscape":"portrait"}function f(a,b){var c;return c=a.page>b.page?a:b.page>a.page?b:a.y>b.y?a:b,{page:c.page,x:c.x,y:c.y,availableHeight:c.availableHeight,availableWidth:c.availableWidth}}var g=c(12);d.prototype.beginColumnGroup=function(){this.snapshots.push({x:this.x,y:this.y,availableHeight:this.availableHeight,availableWidth:this.availableWidth,page:this.page,bottomMost:{y:this.y,page:this.page},endingCell:this.endingCell,lastColumnWidth:this.lastColumnWidth}),this.lastColumnWidth=0},d.prototype.beginColumn=function(a,b,c){var d=this.snapshots[this.snapshots.length-1];this.calculateBottomMost(d),this.endingCell=c,this.page=d.page,this.x=this.x+this.lastColumnWidth+(b||0),this.y=d.y,this.availableWidth=a,this.availableHeight=d.availableHeight,this.lastColumnWidth=a},d.prototype.calculateBottomMost=function(a){this.endingCell?(this.saveContextInEndingCell(this.endingCell),this.endingCell=null):a.bottomMost=f(this,a.bottomMost)},d.prototype.markEnding=function(a){this.page=a._columnEndingContext.page,this.x=a._columnEndingContext.x,this.y=a._columnEndingContext.y,this.availableWidth=a._columnEndingContext.availableWidth,this.availableHeight=a._columnEndingContext.availableHeight,this.lastColumnWidth=a._columnEndingContext.lastColumnWidth},d.prototype.saveContextInEndingCell=function(a){a._columnEndingContext={page:this.page,x:this.x,y:this.y,availableHeight:this.availableHeight,availableWidth:this.availableWidth,lastColumnWidth:this.lastColumnWidth}},d.prototype.completeColumnGroup=function(){var a=this.snapshots.pop();this.calculateBottomMost(a),this.endingCell=null,this.x=a.x,this.y=a.bottomMost.y,this.page=a.bottomMost.page,this.availableWidth=a.availableWidth,this.availableHeight=a.bottomMost.availableHeight,this.lastColumnWidth=a.lastColumnWidth},d.prototype.addMargin=function(a,b){this.x+=a,this.availableWidth-=a+(b||0)},d.prototype.moveDown=function(a){return this.y+=a,this.availableHeight-=a,this.availableHeight>0},d.prototype.initializePage=function(){this.y=this.pageMargins.top,this.availableHeight=this.getCurrentPage().pageSize.height-this.pageMargins.top-this.pageMargins.bottom,this.pageSnapshot().availableWidth=this.getCurrentPage().pageSize.width-this.pageMargins.left-this.pageMargins.right},d.prototype.pageSnapshot=function(){return this.snapshots[0]?this.snapshots[0]:this},d.prototype.moveTo=function(a,b){void 0!==a&&null!==a&&(this.x=a,this.availableWidth=this.getCurrentPage().pageSize.width-this.x-this.pageMargins.right),void 0!==b&&null!==b&&(this.y=b,this.availableHeight=this.getCurrentPage().pageSize.height-this.y-this.pageMargins.bottom)},d.prototype.beginDetachedBlock=function(){this.snapshots.push({x:this.x,y:this.y,availableHeight:this.availableHeight,availableWidth:this.availableWidth,page:this.page,endingCell:this.endingCell,lastColumnWidth:this.lastColumnWidth})},d.prototype.endDetachedBlock=function(){var a=this.snapshots.pop();this.x=a.x,this.y=a.y,this.availableWidth=a.availableWidth,this.availableHeight=a.availableHeight,this.page=a.page,this.endingCell=a.endingCell,this.lastColumnWidth=a.lastColumnWidth};var h=function(a,b){return b=e(b,a.pageSize.orientation),b!==a.pageSize.orientation?{orientation:b,width:a.pageSize.height,height:a.pageSize.width}:{orientation:a.pageSize.orientation,width:a.pageSize.width,height:a.pageSize.height}};d.prototype.moveToNextPage=function(a){var b=this.page+1,c=this.page,d=this.y,e=b>=this.pages.length;return e?this.addPage(h(this.getCurrentPage(),a)):(this.page=b,this.initializePage()),{newPageCreated:e,prevPage:c,prevY:d,y:this.y}},d.prototype.addPage=function(a){var b={items:[],pageSize:a};return this.pages.push(b),this.page=this.pages.length-1,this.initializePage(),this.tracker.emit("pageAdded"),b},d.prototype.getCurrentPage=function(){return this.page<0||this.page>=this.pages.length?null:this.pages[this.page]},d.prototype.getCurrentPosition=function(){var a=this.getCurrentPage().pageSize,b=a.height-this.pageMargins.top-this.pageMargins.bottom,c=a.width-this.pageMargins.left-this.pageMargins.right;return{pageNumber:this.page+1,pageOrientation:a.orientation,pageInnerHeight:b,pageInnerWidth:c,left:this.x,top:this.y,verticalRatio:(this.y-this.pageMargins.top)/b,horizontalRatio:(this.x-this.pageMargins.left)/c}},a.exports=d},function(a,b,c){"use strict";function d(a,b){this.transactionLevel=0,this.repeatables=[],this.tracker=b,this.writer=new f(a,b)}function e(a,b){var c=b(a);return c||(a.moveToNextPage(),c=b(a)),c}var f=c(21);d.prototype.addLine=function(a,b,c){return e(this,function(d){return d.writer.addLine(a,b,c)})},d.prototype.addImage=function(a,b){return e(this,function(c){return c.writer.addImage(a,b)})},d.prototype.addQr=function(a,b){return e(this,function(c){return c.writer.addQr(a,b)})},d.prototype.addVector=function(a,b,c,d){return this.writer.addVector(a,b,c,d)},d.prototype.addFragment=function(a,b,c,d){this.writer.addFragment(a,b,c,d)||(this.moveToNextPage(),this.writer.addFragment(a,b,c,d))},d.prototype.moveToNextPage=function(a){var b=this.writer.context.moveToNextPage(a);b.newPageCreated?this.repeatables.forEach(function(a){this.writer.addFragment(a,!0)},this):this.repeatables.forEach(function(a){this.writer.context.moveDown(a.height)},this),this.writer.tracker.emit("pageChanged",{prevPage:b.prevPage,prevY:b.prevY,y:b.y})},d.prototype.beginUnbreakableBlock=function(a,b){0===this.transactionLevel++&&(this.originalX=this.writer.context.x,this.writer.pushContext(a,b))},d.prototype.commitUnbreakableBlock=function(a,b){if(0===--this.transactionLevel){var c=this.writer.context;this.writer.popContext();var d=c.pages.length;if(d>0){var e=c.pages[0];if(e.xOffset=a,e.yOffset=b,d>1)if(void 0!==a||void 0!==b)e.height=c.getCurrentPage().pageSize.height-c.pageMargins.top-c.pageMargins.bottom;else{e.height=this.writer.context.getCurrentPage().pageSize.height-this.writer.context.pageMargins.top-this.writer.context.pageMargins.bottom;for(var f=0,g=this.repeatables.length;g>f;f++)e.height-=this.repeatables[f].height}else e.height=c.y;void 0!==a||void 0!==b?this.writer.addFragment(e,!0,!0,!0):this.addFragment(e)}}},d.prototype.currentBlockToRepeatable=function(){var a=this.writer.context,b={items:[]};return a.pages[0].items.forEach(function(a){b.items.push(a)}),b.xOffset=this.originalX,b.height=a.y,b},d.prototype.pushToRepeatables=function(a){this.repeatables.push(a)},d.prototype.popFromRepeatables=function(){this.repeatables.pop()},d.prototype.context=function(){return this.writer.context},a.exports=d},function(a,b,c){"use strict";function d(a,b){this.context=a,this.contextStack=[],this.tracker=b}function e(a,b,c){null===c||void 0===c||0>c||c>a.items.length?a.items.push(b):a.items.splice(c,0,b)}function f(a){var b=new g(a.maxWidth);for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}var g=c(22),h=c(17).pack,i=c(17).offsetVector,j=c(19);d.prototype.addLine=function(a,b,c){var d=a.getHeight(),f=this.context,g=f.getCurrentPage(),h=this.getCurrentPositionOnPage();return f.availableHeight0&&a.inlines[0].alignment,e=0;switch(d){case"right":e=b-c;break;case"center":e=(b-c)/2}if(e&&(a.x=(a.x||0)+e),"justify"===d&&!a.newLineForced&&!a.lastLineInParagraph&&a.inlines.length>1)for(var f=(b-c)/(a.inlines.length-1),g=1,h=a.inlines.length;h>g;g++)e=g*f,a.inlines[g].x+=e},d.prototype.addImage=function(a,b){var c=this.context,d=c.getCurrentPage(),f=this.getCurrentPositionOnPage();return c.availableHeightf;f++){var h=a._canvas[f];h.x+=a.x,h.y+=a.y,this.addVector(h,!0,!0,b)}return c.moveDown(a._height),e},d.prototype.alignImage=function(a){var b=this.context.availableWidth,c=a._minWidth,d=0;switch(a._alignment){case"right":d=b-c;break;case"center":d=(b-c)/2}d&&(a.x=(a.x||0)+d)},d.prototype.addVector=function(a,b,c,d){var f=this.context,g=f.getCurrentPage(),h=this.getCurrentPositionOnPage();return g?(i(a,b?0:f.x,c?0:f.y),e(g,{type:"vector",item:a},d),h):void 0},d.prototype.addFragment=function(a,b,c,d){var e=this.context,g=e.getCurrentPage();return!b&&a.height>e.availableHeight?!1:(a.items.forEach(function(d){switch(d.type){case"line":var j=f(d.item);j.x=(j.x||0)+(b?a.xOffset||0:e.x),j.y=(j.y||0)+(c?a.yOffset||0:e.y),g.items.push({type:"line",item:j});break;case"vector":var k=h(d.item);i(k,b?a.xOffset||0:e.x,c?a.yOffset||0:e.y),g.items.push({type:"vector",item:k});break;case"image":var l=h(d.item);l.x=(l.x||0)+(b?a.xOffset||0:e.x),l.y=(l.y||0)+(c?a.yOffset||0:e.y),g.items.push({type:"image",item:l})}}),d||e.moveDown(a.height),!0)},d.prototype.pushContext=function(a,b){void 0===a&&(b=this.context.getCurrentPage().height-this.context.pageMargins.top-this.context.pageMargins.bottom,a=this.context.availableWidth),("number"==typeof a||a instanceof Number)&&(a=new j({width:a,height:b},{left:0,right:0,top:0,bottom:0})),this.contextStack.push(this.context),this.context=a},d.prototype.popContext=function(){this.context=this.contextStack.pop()},d.prototype.getCurrentPositionOnPage=function(){return(this.contextStack[0]||this.context).getCurrentPosition()},a.exports=d},function(a,b){"use strict";function c(a){this.maxWidth=a,this.leadingCut=0,this.trailingCut=0,this.inlineWidths=0,this.inlines=[]}c.prototype.getAscenderHeight=function(){var a=0;return this.inlines.forEach(function(b){a=Math.max(a,b.font.ascender/1e3*b.fontSize)}),a},c.prototype.hasEnoughSpaceForInline=function(a){return 0===this.inlines.length?!0:this.newLineForced?!1:this.inlineWidths+a.width-this.leadingCut-(a.trailingCut||0)<=this.maxWidth},c.prototype.addInline=function(a){0===this.inlines.length&&(this.leadingCut=a.leadingCut||0),this.trailingCut=a.trailingCut||0,a.x=this.inlineWidths-this.leadingCut,this.inlines.push(a),this.inlineWidths+=a.width,a.lineEnd&&(this.newLineForced=!0)},c.prototype.getWidth=function(){return this.inlineWidths-this.leadingCut-this.trailingCut},c.prototype.getHeight=function(){var a=0;return this.inlines.forEach(function(b){a=Math.max(a,b.height||0)}),a},a.exports=c},function(a,b,c){"use strict";function d(a){this.tableNode=a}var e=c(16);d.prototype.beginTable=function(a){function b(){var a=0;return d.table.widths.forEach(function(b){a+=b._calcWidth}),a}function c(){var a=[],b=0,c=0;a.push({left:0,rowSpan:0});for(var d=0,e=g.tableNode.table.body[0].length;e>d;d++){var f=g.layout.paddingLeft(d,g.tableNode)+g.layout.paddingRight(d,g.tableNode),h=g.layout.vLineWidth(d,g.tableNode);c=f+h+g.tableNode.table.widths[d]._calcWidth,a[a.length-1].width=c,b+=c,a.push({left:b,rowSpan:0,width:0})}return a}var d,f,g=this;d=this.tableNode,this.offsets=d._offsets,this.layout=d._layout,f=a.context().availableWidth-this.offsets.total,e.buildColumnWidths(d.table.widths,f),this.tableWidth=d._offsets.total+b(),this.rowSpanData=c(),this.cleanUpRepeatables=!1,this.headerRows=d.table.headerRows||0,this.rowsWithoutPageBreak=this.headerRows+(d.table.keepWithHeaderRows||0),this.dontBreakRows=d.table.dontBreakRows||!1,this.rowsWithoutPageBreak&&a.beginUnbreakableBlock(),this.drawHorizontalLine(0,a)},d.prototype.onRowBreak=function(a,b){var c=this;return function(){var a=c.rowPaddingTop+(c.headerRows?0:c.topLineWidth);b.context().moveDown(a)}},d.prototype.beginRow=function(a,b){this.topLineWidth=this.layout.hLineWidth(a,this.tableNode),this.rowPaddingTop=this.layout.paddingTop(a,this.tableNode),this.bottomLineWidth=this.layout.hLineWidth(a+1,this.tableNode),this.rowPaddingBottom=this.layout.paddingBottom(a,this.tableNode),this.rowCallback=this.onRowBreak(a,b),b.tracker.startTracking("pageChanged",this.rowCallback),this.dontBreakRows&&b.beginUnbreakableBlock(),this.rowTopY=b.context().y,this.reservedAtBottom=this.bottomLineWidth+this.rowPaddingBottom,b.context().availableHeight-=this.reservedAtBottom,b.context().moveDown(this.rowPaddingTop)},d.prototype.drawHorizontalLine=function(a,b,c){var d=this.layout.hLineWidth(a,this.tableNode);if(d){for(var e=d/2,f=null,g=0,h=this.rowSpanData.length;h>g;g++){var i=this.rowSpanData[g],j=!i.rowSpan;!f&&j&&(f={left:i.left,width:0}),j&&(f.width+=i.width||0);var k=(c||0)+e;j&&g!==h-1||f&&(b.addVector({type:"line",x1:f.left,x2:f.left+f.width,y1:k,y2:k,lineWidth:d,lineColor:"function"==typeof this.layout.hLineColor?this.layout.hLineColor(a,this.tableNode):this.layout.hLineColor},!1,c),f=null)}b.context().moveDown(d)}},d.prototype.drawVerticalLine=function(a,b,c,d,e){var f=this.layout.vLineWidth(d,this.tableNode);0!==f&&e.addVector({type:"line",x1:a+f/2,x2:a+f/2,y1:b,y2:c,lineWidth:f,lineColor:"function"==typeof this.layout.vLineColor?this.layout.vLineColor(d,this.tableNode):this.layout.vLineColor},!1,!0)},d.prototype.endTable=function(a){this.cleanUpRepeatables&&a.popFromRepeatables()},d.prototype.endRow=function(a,b,c){function d(){for(var b=[],c=0,d=0,e=g.tableNode.table.body[a].length;e>d;d++){if(!c){b.push({x:g.rowSpanData[d].left,index:d});var f=g.tableNode.table.body[a][d];c=f._colSpan||f.colSpan||0}c>0&&c--}return b.push({x:g.rowSpanData[g.rowSpanData.length-1].left,index:g.rowSpanData.length-1}),b}var e,f,g=this;b.tracker.stopTracking("pageChanged",this.rowCallback),b.context().moveDown(this.layout.paddingBottom(a,this.tableNode)),b.context().availableHeight+=this.reservedAtBottom;var h=b.context().page,i=b.context().y,j=d(),k=[],l=c&&c.length>0;if(k.push({y0:this.rowTopY,page:l?c[0].prevPage:h}),l)for(f=0,e=c.length;e>f;f++){var m=c[f];k[k.length-1].y1=m.prevY,k.push({y0:m.y,page:m.prevPage+1})}k[k.length-1].y1=i;for(var n=k[0].y1-k[0].y0===this.rowPaddingTop,o=n?1:0,p=k.length;p>o;o++){var q=o0&&!this.headerRows,s=r?0:this.topLineWidth,t=k[o].y0,u=k[o].y1;for(q&&(u+=this.rowPaddingBottom),b.context().page!=k[o].page&&(b.context().page=k[o].page,this.reservedAtBottom=0),f=0,e=j.length;e>f;f++)if(this.drawVerticalLine(j[f].x,t-s,u+this.bottomLineWidth,j[f].index,b),e-1>f){var v=j[f].index,w=this.tableNode.table.body[a][v].fillColor;if(w){var x=this.layout.vLineWidth(v,this.tableNode),y=j[f].x+x,z=t-s;b.addVector({type:"rect",x:y,y:z,w:j[f+1].x-y,h:u+this.bottomLineWidth-z,lineWidth:0,color:w},!1,!0,0)}}q&&this.layout.hLineWhenBroken!==!1&&this.drawHorizontalLine(a+1,b,u),r&&this.layout.hLineWhenBroken!==!1&&this.drawHorizontalLine(a,b,t)}b.context().page=h,b.context().y=i;var A=this.tableNode.table.body[a];for(f=0,e=A.length;e>f;f++){if(A[f].rowSpan&&(this.rowSpanData[f].rowSpan=A[f].rowSpan,A[f].colSpan&&A[f].colSpan>1))for(var B=1;B0&&this.rowSpanData[f].rowSpan--}this.drawHorizontalLine(a+1,b),this.headerRows&&a===this.headerRows-1&&(this.headerRepeatable=b.currentBlockToRepeatable()),this.dontBreakRows&&b.tracker.auto("pageChanged",function(){g.drawHorizontalLine(a,b)},function(){b.commitUnbreakableBlock(),g.drawHorizontalLine(a,b)}),!this.headerRepeatable||a!==this.rowsWithoutPageBreak-1&&a!==this.tableNode.table.body.length-1||(b.commitUnbreakableBlock(),b.pushToRepeatables(this.headerRepeatable),this.cleanUpRepeatables=!0,this.headerRepeatable=null)},a.exports=d},function(a,b,c){(function(b){(function(){var d,e,f,g,h,i,j={}.hasOwnProperty,k=function(a,b){function c(){this.constructor=a}for(var d in b)j.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};i=c(25),h=c(44),e=c(45),g=c(46),f=c(64),d=function(a){function d(a){var b,c,e,f;if(this.options=null!=a?a:{},d.__super__.constructor.apply(this,arguments),this.version=1.3,this.compress=null!=(e=this.options.compress)?e:!0,this._pageBuffer=[],this._pageBufferStart=0,this._offsets=[],this._waiting=0,this._ended=!1,this._offset=0,this._root=this.ref({Type:"Catalog",Pages:this.ref({Type:"Pages",Count:0,Kids:[]})}),this.page=null,this.initColor(),this.initVector(),this.initFonts(),this.initText(),this.initImages(),this.info={Producer:"PDFKit",Creator:"PDFKit",CreationDate:new Date},this.options.info){f=this.options.info;for(b in f)c=f[b],this.info[b]=c}this._write("%PDF-"+this.version),this._write("%ÿÿÿÿ"),this.addPage()}var i;return k(d,a),i=function(a){var b,c,e;e=[];for(c in a)b=a[c],e.push(d.prototype[c]=b);return e},i(c(65)),i(c(67)),i(c(69)),i(c(89)),i(c(96)),i(c(101)),d.prototype.addPage=function(a){var b;return null==a&&(a=this.options),this.options.bufferPages||this.flushPages(),this.page=new f(this,a),this._pageBuffer.push(this.page),b=this._root.data.Pages.data,b.Kids.push(this.page.dictionary),b.Count++,this.x=this.page.margins.left,this.y=this.page.margins.top,this._ctm=[1,0,0,1,0,0],this.transform(1,0,0,-1,0,this.page.height),this},d.prototype.bufferedPageRange=function(){return{start:this._pageBufferStart,count:this._pageBuffer.length}},d.prototype.switchToPage=function(a){var b;if(!(b=this._pageBuffer[a-this._pageBufferStart]))throw new Error("switchToPage("+a+") out of bounds, current buffer covers pages "+this._pageBufferStart+" to "+(this._pageBufferStart+this._pageBuffer.length-1));return this.page=b},d.prototype.flushPages=function(){var a,b,c,d;for(b=this._pageBuffer,this._pageBuffer=[],this._pageBufferStart+=b.length,c=0,d=b.length;d>c;c++)a=b[c],a.end()},d.prototype.ref=function(a){var b;return b=new g(this,this._offsets.length+1,a),this._offsets.push(null),this._waiting++,b},d.prototype._read=function(){},d.prototype._write=function(a){return b.isBuffer(a)||(a=new b(a+"\n","binary")),this.push(a),this._offset+=a.length},d.prototype.addContent=function(a){return this.page.write(a),this},d.prototype._refEnd=function(a){return this._offsets[a.id-1]=a.offset,0===--this._waiting&&this._ended?(this._finalize(),this._ended=!1):void 0},d.prototype.write=function(a,b){var c;return c=new Error("PDFDocument#write is deprecated, and will be removed in a future version of PDFKit. Please pipe the document into a Node stream."),console.warn(c.stack),this.pipe(h.createWriteStream(a)),this.end(),this.once("end",b)},d.prototype.output=function(a){throw new Error("PDFDocument#output is deprecated, and has been removed from PDFKit. Please pipe the document into a Node stream.")},d.prototype.end=function(){var a,b,c,d,e,f;this.flushPages(),this._info=this.ref(),e=this.info;for(b in e)d=e[b],"string"==typeof d&&(d=new String(d)),this._info.data[b]=d;this._info.end(),f=this._fontFamilies;for(c in f)a=f[c],a.embed();return this._root.end(),this._root.data.Pages.end(),0===this._waiting?this._finalize():this._ended=!0},d.prototype._finalize=function(a){var b,c,d,f,g;for(c=this._offset,this._write("xref"),this._write("0 "+(this._offsets.length+1)),this._write("0000000000 65535 f "),g=this._offsets,d=0,f=g.length;f>d;d++)b=g[d],b=("0000000000"+b).slice(-10),this._write(b+" 00000 n ");return this._write("trailer"),this._write(e.convert({Size:this._offsets.length+1,Root:this._root,Info:this._info})),this._write("startxref"),this._write(""+c),this._write("%%EOF"),this.push(null)},d.prototype.toString=function(){ +return"[object PDFDocument]"},d}(i.Readable),a.exports=d}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){function d(){e.call(this)}a.exports=d;var e=c(26).EventEmitter,f=c(27);f(d,e),d.Readable=c(28),d.Writable=c(40),d.Duplex=c(41),d.Transform=c(42),d.PassThrough=c(43),d.Stream=d,d.prototype.pipe=function(a,b){function c(b){a.writable&&!1===a.write(b)&&j.pause&&j.pause()}function d(){j.readable&&j.resume&&j.resume()}function f(){k||(k=!0,a.end())}function g(){k||(k=!0,"function"==typeof a.destroy&&a.destroy())}function h(a){if(i(),0===e.listenerCount(this,"error"))throw a}function i(){j.removeListener("data",c),a.removeListener("drain",d),j.removeListener("end",f),j.removeListener("close",g),j.removeListener("error",h),a.removeListener("error",h),j.removeListener("end",i),j.removeListener("close",i),a.removeListener("close",i)}var j=this;j.on("data",c),a.on("drain",d),a._isStdio||b&&b.end===!1||(j.on("end",f),j.on("close",g));var k=!1;return j.on("error",h),a.on("error",h),j.on("end",i),j.on("close",i),a.on("close",i),a.emit("pipe",j),a}},function(a,b){function c(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function d(a){return"function"==typeof a}function e(a){return"number"==typeof a}function f(a){return"object"==typeof a&&null!==a}function g(a){return void 0===a}a.exports=c,c.EventEmitter=c,c.prototype._events=void 0,c.prototype._maxListeners=void 0,c.defaultMaxListeners=10,c.prototype.setMaxListeners=function(a){if(!e(a)||0>a||isNaN(a))throw TypeError("n must be a positive number");return this._maxListeners=a,this},c.prototype.emit=function(a){var b,c,e,h,i,j;if(this._events||(this._events={}),"error"===a&&(!this._events.error||f(this._events.error)&&!this._events.error.length)){if(b=arguments[1],b instanceof Error)throw b;throw TypeError('Uncaught, unspecified "error" event.')}if(c=this._events[a],g(c))return!1;if(d(c))switch(arguments.length){case 1:c.call(this);break;case 2:c.call(this,arguments[1]);break;case 3:c.call(this,arguments[1],arguments[2]);break;default:h=Array.prototype.slice.call(arguments,1),c.apply(this,h)}else if(f(c))for(h=Array.prototype.slice.call(arguments,1),j=c.slice(),e=j.length,i=0;e>i;i++)j[i].apply(this,h);return!0},c.prototype.addListener=function(a,b){var e;if(!d(b))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",a,d(b.listener)?b.listener:b),this._events[a]?f(this._events[a])?this._events[a].push(b):this._events[a]=[this._events[a],b]:this._events[a]=b,f(this._events[a])&&!this._events[a].warned&&(e=g(this._maxListeners)?c.defaultMaxListeners:this._maxListeners,e&&e>0&&this._events[a].length>e&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace())),this},c.prototype.on=c.prototype.addListener,c.prototype.once=function(a,b){function c(){this.removeListener(a,c),e||(e=!0,b.apply(this,arguments))}if(!d(b))throw TypeError("listener must be a function");var e=!1;return c.listener=b,this.on(a,c),this},c.prototype.removeListener=function(a,b){var c,e,g,h;if(!d(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],g=c.length,e=-1,c===b||d(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(f(c)){for(h=g;h-- >0;)if(c[h]===b||c[h].listener&&c[h].listener===b){e=h;break}if(0>e)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(e,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},c.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],d(c))this.removeListener(a,c);else if(c)for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},c.prototype.listeners=function(a){var b;return b=this._events&&this._events[a]?d(this._events[a])?[this._events[a]]:this._events[a].slice():[]},c.prototype.listenerCount=function(a){if(this._events){var b=this._events[a];if(d(b))return 1;if(b)return b.length}return 0},c.listenerCount=function(a,b){return a.listenerCount(b)}},function(a,b){"function"==typeof Object.create?a.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:a.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},function(a,b,c){b=a.exports=c(29),b.Stream=c(25),b.Readable=b,b.Writable=c(36),b.Duplex=c(35),b.Transform=c(38),b.PassThrough=c(39)},function(a,b,c){(function(b){function d(a,b){var d=c(35);a=a||{};var e=a.highWaterMark,f=a.objectMode?16:16384;this.highWaterMark=e||0===e?e:f,this.highWaterMark=~~this.highWaterMark,this.buffer=[],this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.objectMode=!!a.objectMode,b instanceof d&&(this.objectMode=this.objectMode||!!a.readableObjectMode),this.defaultEncoding=a.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,a.encoding&&(C||(C=c(37).StringDecoder),this.decoder=new C(a.encoding),this.encoding=a.encoding)}function e(a){c(35);return this instanceof e?(this._readableState=new d(a,this),this.readable=!0,void A.call(this)):new e(a)}function f(a,b,c,d,e){var f=j(b,c);if(f)a.emit("error",f);else if(B.isNullOrUndefined(c))b.reading=!1,b.ended||k(a,b);else if(b.objectMode||c&&c.length>0)if(b.ended&&!e){var h=new Error("stream.push() after EOF");a.emit("error",h)}else if(b.endEmitted&&e){var h=new Error("stream.unshift() after end event");a.emit("error",h)}else!b.decoder||e||d||(c=b.decoder.write(c)),e||(b.reading=!1),b.flowing&&0===b.length&&!b.sync?(a.emit("data",c),a.read(0)):(b.length+=b.objectMode?1:c.length,e?b.buffer.unshift(c):b.buffer.push(c),b.needReadable&&l(a)),n(a,b);else e||(b.reading=!1);return g(b)}function g(a){return!a.ended&&(a.needReadable||a.length=E)a=E;else{a--;for(var b=1;32>b;b<<=1)a|=a>>b;a++}return a}function i(a,b){return 0===b.length&&b.ended?0:b.objectMode?0===a?0:1:isNaN(a)||B.isNull(a)?b.flowing&&b.buffer.length?b.buffer[0].length:b.length:0>=a?0:(a>b.highWaterMark&&(b.highWaterMark=h(a)),a>b.length?b.ended?b.length:(b.needReadable=!0,0):a)}function j(a,b){var c=null;return B.isBuffer(b)||B.isString(b)||B.isNullOrUndefined(b)||a.objectMode||(c=new TypeError("Invalid non-string/buffer chunk")),c}function k(a,b){if(b.decoder&&!b.ended){var c=b.decoder.end();c&&c.length&&(b.buffer.push(c),b.length+=b.objectMode?1:c.length)}b.ended=!0,l(a)}function l(a){var c=a._readableState;c.needReadable=!1,c.emittedReadable||(D("emitReadable",c.flowing),c.emittedReadable=!0,c.sync?b.nextTick(function(){m(a)}):m(a))}function m(a){D("emit readable"),a.emit("readable"),s(a)}function n(a,c){c.readingMore||(c.readingMore=!0,b.nextTick(function(){o(a,c)}))}function o(a,b){for(var c=b.length;!b.reading&&!b.flowing&&!b.ended&&b.length=e)c=f?d.join(""):y.concat(d,e),d.length=0;else if(aj&&a>i;j++){var h=d[0],l=Math.min(a-i,h.length);f?c+=h.slice(0,l):h.copy(c,i,0,l),l0)throw new Error("endReadable called on non-empty stream");c.endEmitted||(c.ended=!0,b.nextTick(function(){c.endEmitted||0!==c.length||(c.endEmitted=!0,a.readable=!1,a.emit("end"))}))}function v(a,b){for(var c=0,d=a.length;d>c;c++)b(a[c],c)}function w(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1}a.exports=e;var x=c(31),y=c(2).Buffer;e.ReadableState=d;var z=c(26).EventEmitter;z.listenerCount||(z.listenerCount=function(a,b){return a.listeners(b).length});var A=c(25),B=c(32);B.inherits=c(33);var C,D=c(34);D=D&&D.debuglog?D.debuglog("stream"):function(){},B.inherits(e,A),e.prototype.push=function(a,b){var c=this._readableState;return B.isString(a)&&!c.objectMode&&(b=b||c.defaultEncoding,b!==c.encoding&&(a=new y(a,b),b="")),f(this,c,a,b,!1)},e.prototype.unshift=function(a){var b=this._readableState;return f(this,b,a,"",!0)},e.prototype.setEncoding=function(a){return C||(C=c(37).StringDecoder),this._readableState.decoder=new C(a),this._readableState.encoding=a,this};var E=8388608;e.prototype.read=function(a){D("read",a);var b=this._readableState,c=a;if((!B.isNumber(a)||a>0)&&(b.emittedReadable=!1),0===a&&b.needReadable&&(b.length>=b.highWaterMark||b.ended))return D("read: emitReadable",b.length,b.ended),0===b.length&&b.ended?u(this):l(this),null;if(a=i(a,b),0===a&&b.ended)return 0===b.length&&u(this),null;var d=b.needReadable;D("need readable",d),(0===b.length||b.length-a0?t(a,b):null,B.isNull(e)&&(b.needReadable=!0,a=0),b.length-=a,0!==b.length||b.ended||(b.needReadable=!0),c!==a&&b.ended&&0===b.length&&u(this),B.isNull(e)||this.emit("data",e),e},e.prototype._read=function(a){this.emit("error",new Error("not implemented"))},e.prototype.pipe=function(a,c){function d(a){D("onunpipe"),a===l&&f()}function e(){D("onend"),a.end()}function f(){D("cleanup"),a.removeListener("close",i),a.removeListener("finish",j),a.removeListener("drain",q),a.removeListener("error",h),a.removeListener("unpipe",d),l.removeListener("end",e),l.removeListener("end",f),l.removeListener("data",g),!m.awaitDrain||a._writableState&&!a._writableState.needDrain||q()}function g(b){D("ondata");var c=a.write(b);!1===c&&(D("false write response, pause",l._readableState.awaitDrain),l._readableState.awaitDrain++,l.pause())}function h(b){D("onerror",b),k(),a.removeListener("error",h),0===z.listenerCount(a,"error")&&a.emit("error",b)}function i(){a.removeListener("finish",j),k()}function j(){D("onfinish"),a.removeListener("close",i),k()}function k(){D("unpipe"),l.unpipe(a)}var l=this,m=this._readableState;switch(m.pipesCount){case 0:m.pipes=a;break;case 1:m.pipes=[m.pipes,a];break;default:m.pipes.push(a)}m.pipesCount+=1,D("pipe count=%d opts=%j",m.pipesCount,c);var n=(!c||c.end!==!1)&&a!==b.stdout&&a!==b.stderr,o=n?e:f;m.endEmitted?b.nextTick(o):l.once("end",o),a.on("unpipe",d);var q=p(l);return a.on("drain",q),l.on("data",g),a._events&&a._events.error?x(a._events.error)?a._events.error.unshift(h):a._events.error=[h,a._events.error]:a.on("error",h),a.once("close",i),a.once("finish",j),a.emit("pipe",l),m.flowing||(D("pipe resume"),l.resume()),a},e.prototype.unpipe=function(a){var b=this._readableState;if(0===b.pipesCount)return this;if(1===b.pipesCount)return a&&a!==b.pipes?this:(a||(a=b.pipes),b.pipes=null,b.pipesCount=0,b.flowing=!1,a&&a.emit("unpipe",this),this);if(!a){var c=b.pipes,d=b.pipesCount;b.pipes=null,b.pipesCount=0,b.flowing=!1;for(var e=0;d>e;e++)c[e].emit("unpipe",this);return this}var e=w(b.pipes,a);return-1===e?this:(b.pipes.splice(e,1),b.pipesCount-=1,1===b.pipesCount&&(b.pipes=b.pipes[0]),a.emit("unpipe",this),this)},e.prototype.on=function(a,c){var d=A.prototype.on.call(this,a,c);if("data"===a&&!1!==this._readableState.flowing&&this.resume(),"readable"===a&&this.readable){var e=this._readableState;if(!e.readableListening)if(e.readableListening=!0,e.emittedReadable=!1,e.needReadable=!0,e.reading)e.length&&l(this,e);else{var f=this;b.nextTick(function(){D("readable nexttick read 0"),f.read(0)})}}return d},e.prototype.addListener=e.prototype.on,e.prototype.resume=function(){var a=this._readableState;return a.flowing||(D("resume"),a.flowing=!0,a.reading||(D("resume read 0"),this.read(0)),q(this,a)),this},e.prototype.pause=function(){return D("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(D("pause"),this._readableState.flowing=!1,this.emit("pause")),this},e.prototype.wrap=function(a){var b=this._readableState,c=!1,d=this;a.on("end",function(){if(D("wrapped end"),b.decoder&&!b.ended){var a=b.decoder.end();a&&a.length&&d.push(a)}d.push(null)}),a.on("data",function(e){if(D("wrapped data"),b.decoder&&(e=b.decoder.write(e)),e&&(b.objectMode||e.length)){var f=d.push(e);f||(c=!0,a.pause())}});for(var e in a)B.isFunction(a[e])&&B.isUndefined(this[e])&&(this[e]=function(b){return function(){return a[b].apply(a,arguments)}}(e));var f=["error","close","destroy","pause","resume"];return v(f,function(b){a.on(b,d.emit.bind(d,b))}),d._read=function(b){D("wrapped _read",b),c&&(c=!1,a.resume())},d},e._fromList=t}).call(b,c(30))},function(a,b){function c(){j=!1,g.length?i=g.concat(i):k=-1,i.length&&d()}function d(){if(!j){var a=setTimeout(c);j=!0;for(var b=i.length;b;){for(g=i,i=[];++k1)for(var c=1;cc;c++)b(a[c],c)}a.exports=d;var g=Object.keys||function(a){var b=[];for(var c in a)b.push(c);return b},h=c(32);h.inherits=c(33);var i=c(29),j=c(36);h.inherits(d,i),f(g(j.prototype),function(a){d.prototype[a]||(d.prototype[a]=j.prototype[a])})}).call(b,c(30))},function(a,b,c){(function(b){function d(a,b,c){this.chunk=a,this.encoding=b,this.callback=c}function e(a,b){var d=c(35);a=a||{};var e=a.highWaterMark,f=a.objectMode?16:16384;this.highWaterMark=e||0===e?e:f,this.objectMode=!!a.objectMode,b instanceof d&&(this.objectMode=this.objectMode||!!a.writableObjectMode),this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var g=a.decodeStrings===!1;this.decodeStrings=!g,this.defaultEncoding=a.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){n(b,a)},this.writecb=null,this.writelen=0,this.buffer=[],this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1}function f(a){var b=c(35);return this instanceof f||this instanceof b?(this._writableState=new e(a,this),this.writable=!0,void x.call(this)):new f(a)}function g(a,c,d){var e=new Error("write after end");a.emit("error",e),b.nextTick(function(){d(e)})}function h(a,c,d,e){var f=!0;if(!(w.isBuffer(d)||w.isString(d)||w.isNullOrUndefined(d)||c.objectMode)){var g=new TypeError("Invalid non-string/buffer chunk");a.emit("error",g),b.nextTick(function(){e(g)}),f=!1}return f}function i(a,b,c){return!a.objectMode&&a.decodeStrings!==!1&&w.isString(b)&&(b=new v(b,c)),b}function j(a,b,c,e,f){c=i(b,c,e),w.isBuffer(c)&&(e="buffer");var g=b.objectMode?1:c.length;b.length+=g;var h=b.length1){for(var c=[],d=0;d=this.charLength-this.charReceived?this.charLength-this.charReceived:a.length;if(a.copy(this.charBuffer,this.charReceived,0,c),this.charReceived+=c,this.charReceived=55296&&56319>=d)){if(this.charReceived=this.charLength=0,0===a.length)return b;break}this.charLength+=this.surrogateSize,b=""}this.detectIncompleteChar(a);var e=a.length;this.charLength&&(a.copy(this.charBuffer,0,a.length-this.charReceived,e),e-=this.charReceived),b+=a.toString(this.encoding,0,e);var e=b.length-1,d=b.charCodeAt(e);if(d>=55296&&56319>=d){var f=this.surrogateSize;return this.charLength+=f,this.charReceived+=f,this.charBuffer.copy(this.charBuffer,f,0,f),a.copy(this.charBuffer,0,0,f),b.substring(0,e)}return b},j.prototype.detectIncompleteChar=function(a){for(var b=a.length>=3?3:a.length;b>0;b--){var c=a[a.length-b];if(1==b&&c>>5==6){this.charLength=2;break}if(2>=b&&c>>4==14){this.charLength=3;break}if(3>=b&&c>>3==30){this.charLength=4;break}}this.charReceived=b},j.prototype.end=function(a){var b="";if(a&&a.length&&(b=this.write(a)),this.charReceived){var c=this.charReceived,d=this.charBuffer,e=this.encoding;b+=d.slice(0,c).toString(e)}return b}},function(a,b,c){function d(a,b){this.afterTransform=function(a,c){return e(b,a,c)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null}function e(a,b,c){var d=a._transformState;d.transforming=!1;var e=d.writecb;if(!e)return a.emit("error",new Error("no writecb in Transform class"));d.writechunk=null,d.writecb=null,i.isNullOrUndefined(c)||a.push(c),e&&e(b);var f=a._readableState;f.reading=!1,(f.needReadable||f.lengthe;c=e+=2)b=a[c],a[c]=a[c+1],a[c+1]=b;return a},a.convert=function(h){var i,j,k,l,m,n,o,p,q,r;if("string"==typeof h)return"/"+h;if(h instanceof String){for(o=h.replace(d,function(a){return c[a]}),k=!1,j=q=0,r=o.length;r>q;j=q+=1)if(o.charCodeAt(j)>127){k=!0;break}return k&&(o=g(new b("\ufeff"+o,"utf16le")).toString("binary")),"("+o+")"}if(b.isBuffer(h))return"<"+h.toString("hex")+">";if(h instanceof e)return h.toString();if(h instanceof Date)return"(D:"+f(h.getUTCFullYear(),4)+f(h.getUTCMonth(),2)+f(h.getUTCDate(),2)+f(h.getUTCHours(),2)+f(h.getUTCMinutes(),2)+f(h.getUTCSeconds(),2)+"Z)";if(Array.isArray(h))return l=function(){var b,c,d;for(d=[],b=0,c=h.length;c>b;b++)i=h[b],d.push(a.convert(i));return d}().join(" "),"["+l+"]";if("[object Object]"==={}.toString.call(h)){n=["<<"];for(m in h)p=h[m],n.push("/"+m+" "+a.convert(p));return n.push(">>"),n.join("\n")}return""+h},a}(),a.exports=d,e=c(46)}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(b){(function(){var d,e,f,g=function(a,b){return function(){return a.apply(b,arguments)}};f=c(47),e=function(){function a(a,b,c){this.document=a,this.id=b,this.data=null!=c?c:{},this.finalize=g(this.finalize,this),this.gen=0,this.deflate=null,this.compress=this.document.compress&&!this.data.Filter,this.uncompressedLength=0,this.chunks=[]}return a.prototype.initDeflate=function(){return this.data.Filter="FlateDecode",this.deflate=f.createDeflate(),this.deflate.on("data",function(a){return function(b){return a.chunks.push(b),a.data.Length+=b.length}}(this)),this.deflate.on("end",this.finalize)},a.prototype.write=function(a){var c;return b.isBuffer(a)||(a=new b(a+"\n","binary")),this.uncompressedLength+=a.length,null==(c=this.data).Length&&(c.Length=0),this.compress?(this.deflate||this.initDeflate(),this.deflate.write(a)):(this.chunks.push(a),this.data.Length+=a.length)},a.prototype.end=function(a){return("string"==typeof a||b.isBuffer(a))&&this.write(a),this.deflate?this.deflate.end():this.finalize()},a.prototype.finalize=function(){var a,b,c,e;if(this.offset=this.document._offset,this.document._write(""+this.id+" "+this.gen+" obj"),this.document._write(d.convert(this.data)),this.chunks.length){for(this.document._write("stream"),e=this.chunks,b=0,c=e.length;c>b;b++)a=e[b],this.document._write(a);this.chunks.length=0,this.document._write("\nendstream")}return this.document._write("endobj"),this.document._refEnd(this)},a.prototype.toString=function(){return""+this.id+" "+this.gen+" R"},a}(),a.exports=e,d=c(45)}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(a,d){function e(b,c,d){function e(){for(var a;null!==(a=b.read());)h.push(a),i+=a.length;b.once("readable",e)}function f(a){b.removeListener("end",g),b.removeListener("readable",e),d(a)}function g(){var c=a.concat(h,i);h=[],d(null,c),b.close()}var h=[],i=0;b.on("error",f),b.on("end",g),b.end(c),e()}function f(b,c){if("string"==typeof c&&(c=new a(c)),!a.isBuffer(c))throw new TypeError("Not a string or buffer");var d=p.Z_FINISH;return b._processChunk(c,d)}function g(a){return this instanceof g?void n.call(this,a,p.DEFLATE):new g(a)}function h(a){return this instanceof h?void n.call(this,a,p.INFLATE):new h(a)}function i(a){return this instanceof i?void n.call(this,a,p.GZIP):new i(a)}function j(a){return this instanceof j?void n.call(this,a,p.GUNZIP):new j(a)}function k(a){return this instanceof k?void n.call(this,a,p.DEFLATERAW):new k(a)}function l(a){return this instanceof l?void n.call(this,a,p.INFLATERAW):new l(a)}function m(a){return this instanceof m?void n.call(this,a,p.UNZIP):new m(a)}function n(c,d){if(this._opts=c=c||{},this._chunkSize=c.chunkSize||b.Z_DEFAULT_CHUNK,o.call(this,c),c.flush&&c.flush!==p.Z_NO_FLUSH&&c.flush!==p.Z_PARTIAL_FLUSH&&c.flush!==p.Z_SYNC_FLUSH&&c.flush!==p.Z_FULL_FLUSH&&c.flush!==p.Z_FINISH&&c.flush!==p.Z_BLOCK)throw new Error("Invalid flush flag: "+c.flush);if(this._flushFlag=c.flush||p.Z_NO_FLUSH,c.chunkSize&&(c.chunkSizeb.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+c.chunkSize);if(c.windowBits&&(c.windowBitsb.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+c.windowBits);if(c.level&&(c.levelb.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+c.level);if(c.memLevel&&(c.memLevelb.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+c.memLevel);if(c.strategy&&c.strategy!=b.Z_FILTERED&&c.strategy!=b.Z_HUFFMAN_ONLY&&c.strategy!=b.Z_RLE&&c.strategy!=b.Z_FIXED&&c.strategy!=b.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+c.strategy);if(c.dictionary&&!a.isBuffer(c.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new p.Zlib(d);var e=this;this._hadError=!1,this._binding.onerror=function(a,c){e._binding=null,e._hadError=!0;var d=new Error(a);d.errno=c,d.code=b.codes[c],e.emit("error",d)};var f=b.Z_DEFAULT_COMPRESSION;"number"==typeof c.level&&(f=c.level);var g=b.Z_DEFAULT_STRATEGY;"number"==typeof c.strategy&&(g=c.strategy),this._binding.init(c.windowBits||b.Z_DEFAULT_WINDOWBITS,f,c.memLevel||b.Z_DEFAULT_MEMLEVEL,g,c.dictionary),this._buffer=new a(this._chunkSize),this._offset=0,this._closed=!1,this._level=f,this._strategy=g,this.once("end",this.close)}var o=c(42),p=c(48),q=c(60),r=c(63).ok;p.Z_MIN_WINDOWBITS=8,p.Z_MAX_WINDOWBITS=15,p.Z_DEFAULT_WINDOWBITS=15,p.Z_MIN_CHUNK=64,p.Z_MAX_CHUNK=1/0,p.Z_DEFAULT_CHUNK=16384,p.Z_MIN_MEMLEVEL=1,p.Z_MAX_MEMLEVEL=9,p.Z_DEFAULT_MEMLEVEL=8,p.Z_MIN_LEVEL=-1,p.Z_MAX_LEVEL=9,p.Z_DEFAULT_LEVEL=p.Z_DEFAULT_COMPRESSION,Object.keys(p).forEach(function(a){ +a.match(/^Z/)&&(b[a]=p[a])}),b.codes={Z_OK:p.Z_OK,Z_STREAM_END:p.Z_STREAM_END,Z_NEED_DICT:p.Z_NEED_DICT,Z_ERRNO:p.Z_ERRNO,Z_STREAM_ERROR:p.Z_STREAM_ERROR,Z_DATA_ERROR:p.Z_DATA_ERROR,Z_MEM_ERROR:p.Z_MEM_ERROR,Z_BUF_ERROR:p.Z_BUF_ERROR,Z_VERSION_ERROR:p.Z_VERSION_ERROR},Object.keys(b.codes).forEach(function(a){b.codes[b.codes[a]]=a}),b.Deflate=g,b.Inflate=h,b.Gzip=i,b.Gunzip=j,b.DeflateRaw=k,b.InflateRaw=l,b.Unzip=m,b.createDeflate=function(a){return new g(a)},b.createInflate=function(a){return new h(a)},b.createDeflateRaw=function(a){return new k(a)},b.createInflateRaw=function(a){return new l(a)},b.createGzip=function(a){return new i(a)},b.createGunzip=function(a){return new j(a)},b.createUnzip=function(a){return new m(a)},b.deflate=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new g(b),a,c)},b.deflateSync=function(a,b){return f(new g(b),a)},b.gzip=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new i(b),a,c)},b.gzipSync=function(a,b){return f(new i(b),a)},b.deflateRaw=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new k(b),a,c)},b.deflateRawSync=function(a,b){return f(new k(b),a)},b.unzip=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new m(b),a,c)},b.unzipSync=function(a,b){return f(new m(b),a)},b.inflate=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new h(b),a,c)},b.inflateSync=function(a,b){return f(new h(b),a)},b.gunzip=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new j(b),a,c)},b.gunzipSync=function(a,b){return f(new j(b),a)},b.inflateRaw=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new l(b),a,c)},b.inflateRawSync=function(a,b){return f(new l(b),a)},q.inherits(n,o),n.prototype.params=function(a,c,e){if(ab.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+a);if(c!=b.Z_FILTERED&&c!=b.Z_HUFFMAN_ONLY&&c!=b.Z_RLE&&c!=b.Z_FIXED&&c!=b.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+c);if(this._level!==a||this._strategy!==c){var f=this;this.flush(p.Z_SYNC_FLUSH,function(){f._binding.params(a,c),f._hadError||(f._level=a,f._strategy=c,e&&e())})}else d.nextTick(e)},n.prototype.reset=function(){return this._binding.reset()},n.prototype._flush=function(b){this._transform(new a(0),"",b)},n.prototype.flush=function(b,c){var e=this._writableState;if(("function"==typeof b||void 0===b&&!c)&&(c=b,b=p.Z_FULL_FLUSH),e.ended)c&&d.nextTick(c);else if(e.ending)c&&this.once("end",c);else if(e.needDrain){var f=this;this.once("drain",function(){f.flush(c)})}else this._flushFlag=b,this.write(new a(0),"",c)},n.prototype.close=function(a){if(a&&d.nextTick(a),!this._closed){this._closed=!0,this._binding.close();var b=this;d.nextTick(function(){b.emit("close")})}},n.prototype._transform=function(b,c,d){var e,f=this._writableState,g=f.ending||f.ended,h=g&&(!b||f.length===b.length);if(null===!b&&!a.isBuffer(b))return d(new Error("invalid input"));h?e=p.Z_FINISH:(e=this._flushFlag,b.length>=f.length&&(this._flushFlag=this._opts.flush||p.Z_NO_FLUSH));this._processChunk(b,e,d)},n.prototype._processChunk=function(b,c,d){function e(k,n){if(!i._hadError){var o=g-n;if(r(o>=0,"have should not go down"),o>0){var p=i._buffer.slice(i._offset,i._offset+o);i._offset+=o,j?i.push(p):(l.push(p),m+=p.length)}if((0===n||i._offset>=i._chunkSize)&&(g=i._chunkSize,i._offset=0,i._buffer=new a(i._chunkSize)),0===n){if(h+=f-k,f=k,!j)return!0;var q=i._binding.write(c,b,h,f,i._buffer,i._offset,i._chunkSize);return q.callback=e,void(q.buffer=b)}return j?void d():!1}}var f=b&&b.length,g=this._chunkSize-this._offset,h=0,i=this,j="function"==typeof d;if(!j){var k,l=[],m=0;this.on("error",function(a){k=a});do var n=this._binding.writeSync(c,b,h,f,this._buffer,this._offset,g);while(!this._hadError&&e(n[0],n[1]));if(this._hadError)throw k;var o=a.concat(l,m);return this.close(),o}var p=this._binding.write(c,b,h,f,this._buffer,this._offset,g);p.buffer=b,p.callback=e},q.inherits(g,n),q.inherits(h,n),q.inherits(i,n),q.inherits(j,n),q.inherits(k,n),q.inherits(l,n),q.inherits(m,n)}).call(b,c(2).Buffer,c(30))},function(a,b,c){(function(a,d){function e(a){if(ab.UNZIP)throw new TypeError("Bad argument");this.mode=a,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function f(a,b){for(var c=0;c4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(C.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){D._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,C.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=E(a.adler,b,e,c):2===a.state.wrap&&(a.adler=F(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-ja?a.strstart-(a.w_size-ja):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ia,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&m>f);if(d=ia-(m-f),f=m-ia,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-ja)){C.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=ha)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===H)return sa;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return sa;if(a.strstart-a.block_start>=a.w_size-ja&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?sa:sa}function o(a,b){for(var c,d;;){if(a.lookahead=ha&&(a.ins_h=(a.ins_h<=ha)if(d=D._tr_tally(a,a.strstart-a.match_start,a.match_length-ha),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=ha){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<=ha&&(a.ins_h=(a.ins_h<4096)&&(a.match_length=ha-1)),a.prev_length>=ha&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-ha,d=D._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-ha),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<=ha&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ia;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&f>e);a.match_length=ia-(f-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=ha?(c=D._tr_tally(a,1,a.match_length-ha),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sa:ta}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===H)return sa;break}if(a.match_length=0,c=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sa:ta}function s(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=B[a.level].max_lazy,a.good_match=B[a.level].good_length,a.nice_match=B[a.level].nice_length,a.max_chain_length=B[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=ha-1,a.match_available=0,a.ins_h=0}function t(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Y,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new C.Buf16(2*fa),this.dyn_dtree=new C.Buf16(2*(2*da+1)),this.bl_tree=new C.Buf16(2*(2*ea+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new C.Buf16(ga+1),this.heap=new C.Buf16(2*ca+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new C.Buf16(2*ca+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function u(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=X,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?la:qa,a.adler=2===b.wrap?0:1,b.last_flush=H,D._tr_init(b),M):d(a,O)}function v(a){var b=u(a);return b===M&&s(a.state),b}function w(a,b){return a&&a.state?2!==a.state.wrap?O:(a.state.gzhead=b,M):O}function x(a,b,c,e,f,g){if(!a)return O;var h=1;if(b===R&&(b=6),0>e?(h=0,e=-e):e>15&&(h=2,e-=16),1>f||f>Z||c!==Y||8>e||e>15||0>b||b>9||0>g||g>V)return d(a,O);8===e&&(e=9);var i=new t;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<>1,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,v(a)}function y(a,b){return x(a,b,Y,$,_,W)}function z(a,b){var c,h,k,l;if(!a||!a.state||b>L||0>b)return a?d(a,O):O;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===ra&&b!==K)return d(a,0===a.avail_out?Q:O);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===la)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=T||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=F(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=ma):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=T||h.level<2?4:0),i(h,wa),h.status=qa);else{var m=Y+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=T||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=ka),m+=31-m%31,h.status=qa,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===ma)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=na)}else h.status=na;if(h.status===na)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindexk&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=oa)}else h.status=oa;if(h.status===oa)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindexk&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=pa)}else h.status=pa;if(h.status===pa&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=qa)):h.status=qa),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,M}else if(0===a.avail_in&&e(b)<=e(c)&&b!==K)return d(a,Q);if(h.status===ra&&0!==a.avail_in)return d(a,Q);if(0!==a.avail_in||0!==h.lookahead||b!==H&&h.status!==ra){var o=h.strategy===T?r(h,b):h.strategy===U?q(h,b):B[h.level].func(h,b);if(o!==ua&&o!==va||(h.status=ra),o===sa||o===ua)return 0===a.avail_out&&(h.last_flush=-1),M;if(o===ta&&(b===I?D._tr_align(h):b!==L&&(D._tr_stored_block(h,0,0,!1),b===J&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,M}return b!==K?M:h.wrap<=0?N:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?M:N)}function A(a){var b;return a&&a.state?(b=a.state.status,b!==la&&b!==ma&&b!==na&&b!==oa&&b!==pa&&b!==qa&&b!==ra?d(a,O):(a.state=null,b===qa?d(a,P):M)):O}var B,C=c(52),D=c(53),E=c(54),F=c(55),G=c(49),H=0,I=1,J=3,K=4,L=5,M=0,N=1,O=-2,P=-3,Q=-5,R=-1,S=1,T=2,U=3,V=4,W=0,X=2,Y=8,Z=9,$=15,_=8,aa=29,ba=256,ca=ba+1+aa,da=30,ea=19,fa=2*ca+1,ga=15,ha=3,ia=258,ja=ia+ha+1,ka=32,la=42,ma=69,na=73,oa=91,pa=103,qa=113,ra=666,sa=1,ta=2,ua=3,va=4,wa=3,xa=function(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e};B=[new xa(0,0,0,0,n),new xa(4,4,8,4,o),new xa(4,5,16,8,o),new xa(4,6,32,32,o),new xa(4,4,16,16,p),new xa(8,16,32,32,p),new xa(8,16,128,128,p),new xa(8,32,128,256,p),new xa(32,128,258,1024,p),new xa(32,258,258,4096,p)],b.deflateInit=y,b.deflateInit2=x,b.deflateReset=v,b.deflateResetKeep=u,b.deflateSetHeader=w,b.deflate=z,b.deflateEnd=A,b.deflateInfo="pako deflate (from Nodeca project)"},function(a,b){"use strict";var c="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;b.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},b.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var d={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(d=0,b=0,c=a.length;c>b;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;c>b;b++)f=a[b],g.set(f,e),e+=f.length;return g}},e={arraySet:function(a,b,c,d,e){for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};b.setTyped=function(a){a?(b.Buf8=Uint8Array,b.Buf16=Uint16Array,b.Buf32=Int32Array,b.assign(b,d)):(b.Buf8=Array,b.Buf16=Array,b.Buf32=Array,b.assign(b,e))},b.setTyped(c)},function(a,b,c){"use strict";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a){return 256>a?ga[a]:ga[256+(a>>>7)]}function f(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function g(a,b,c){a.bi_valid>V-c?(a.bi_buf|=b<>V-a.bi_valid,a.bi_valid+=c-V):(a.bi_buf|=b<>>=1,c<<=1;while(--b>0);return c>>>1}function j(a){16===a.bi_valid?(f(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function k(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;U>=f;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,c=a.heap_max+1;T>c;c++)d=a.heap[c],f=i[2*i[2*d+1]+1]+1,f>o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function l(a,b,c){var d,e,f=new Array(U+1),g=0;for(d=1;U>=d;d++)f[d]=g=g+c[d-1]<<1;for(e=0;b>=e;e++){var h=a[2*e+1];0!==h&&(a[2*e]=i(f[h]++,h))}}function m(){var a,b,c,d,e,f=new Array(U+1);for(c=0,d=0;O-1>d;d++)for(ia[d]=c,a=0;a<1<<_[d];a++)ha[c++]=d;for(ha[c-1]=d,e=0,d=0;16>d;d++)for(ja[d]=e,a=0;a<1<>=7;R>d;d++)for(ja[d]=e<<7,a=0;a<1<=b;b++)f[b]=0;for(a=0;143>=a;)ea[2*a+1]=8,a++,f[8]++;for(;255>=a;)ea[2*a+1]=9,a++,f[9]++;for(;279>=a;)ea[2*a+1]=7,a++,f[7]++;for(;287>=a;)ea[2*a+1]=8,a++,f[8]++;for(l(ea,Q+1,f),a=0;R>a;a++)fa[2*a+1]=5,fa[2*a]=i(a,5);ka=new na(ea,_,P+1,Q,U),la=new na(fa,aa,0,R,U),ma=new na(new Array(0),ba,0,S,W)}function n(a){var b;for(b=0;Q>b;b++)a.dyn_ltree[2*b]=0;for(b=0;R>b;b++)a.dyn_dtree[2*b]=0;for(b=0;S>b;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*X]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function o(a){a.bi_valid>8?f(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function p(a,b,c,d){o(a),d&&(f(a,c),f(a,~c)),E.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function q(a,b,c,d){var e=2*b,f=2*c;return a[e]c;c++)0!==f[2*c]?(a.heap[++a.heap_len]=j=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)e=a.heap[++a.heap_len]=2>j?++j:0,f[2*e]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=j,c=a.heap_len>>1;c>=1;c--)r(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],r(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,r(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],k(a,b),l(f,j,a.bl_count)}function u(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;c>=d;d++)e=g,g=b[2*(d+1)+1],++hh?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[2*Y]++):10>=h?a.bl_tree[2*Z]++:a.bl_tree[2*$]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function v(a,b,c){var d,e,f=-1,i=b[1],j=0,k=7,l=4;for(0===i&&(k=138,l=3),d=0;c>=d;d++)if(e=i,i=b[2*(d+1)+1],!(++jj){do h(a,e,a.bl_tree);while(0!==--j)}else 0!==e?(e!==f&&(h(a,e,a.bl_tree),j--),h(a,Y,a.bl_tree),g(a,j-3,2)):10>=j?(h(a,Z,a.bl_tree),g(a,j-3,3)):(h(a,$,a.bl_tree),g(a,j-11,7));j=0,f=e,0===i?(k=138,l=3):e===i?(k=6,l=3):(k=7,l=4)}}function w(a){var b;for(u(a,a.dyn_ltree,a.l_desc.max_code),u(a,a.dyn_dtree,a.d_desc.max_code),t(a,a.bl_desc),b=S-1;b>=3&&0===a.bl_tree[2*ca[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function x(a,b,c,d){var e;for(g(a,b-257,5),g(a,c-1,5),g(a,d-4,4),e=0;d>e;e++)g(a,a.bl_tree[2*ca[e]+1],3);v(a,a.dyn_ltree,b-1),v(a,a.dyn_dtree,c-1)}function y(a){var b,c=4093624447;for(b=0;31>=b;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return G;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return H;for(b=32;P>b;b++)if(0!==a.dyn_ltree[2*b])return H;return G}function z(a){pa||(m(),pa=!0),a.l_desc=new oa(a.dyn_ltree,ka),a.d_desc=new oa(a.dyn_dtree,la),a.bl_desc=new oa(a.bl_tree,ma),a.bi_buf=0,a.bi_valid=0,n(a)}function A(a,b,c,d){g(a,(J<<1)+(d?1:0),3),p(a,b,c,!0)}function B(a){g(a,K<<1,3),h(a,X,ea),j(a)}function C(a,b,c,d){var e,f,h=0;a.level>0?(a.strm.data_type===I&&(a.strm.data_type=y(a)),t(a,a.l_desc),t(a,a.d_desc),h=w(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,e>=f&&(e=f)):e=f=c+5,e>=c+4&&-1!==b?A(a,b,c,d):a.strategy===F||f===e?(g(a,(K<<1)+(d?1:0),3),s(a,ea,fa)):(g(a,(L<<1)+(d?1:0),3),x(a,a.l_desc.max_code+1,a.d_desc.max_code+1,h+1),s(a,a.dyn_ltree,a.dyn_dtree)),n(a),d&&o(a)}function D(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(ha[c]+P+1)]++,a.dyn_dtree[2*e(b)]++),a.last_lit===a.lit_bufsize-1}var E=c(52),F=4,G=0,H=1,I=2,J=0,K=1,L=2,M=3,N=258,O=29,P=256,Q=P+1+O,R=30,S=19,T=2*Q+1,U=15,V=16,W=7,X=256,Y=16,Z=17,$=18,_=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],aa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ba=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ca=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],da=512,ea=new Array(2*(Q+2));d(ea);var fa=new Array(2*R);d(fa);var ga=new Array(da);d(ga);var ha=new Array(N-M+1);d(ha);var ia=new Array(O);d(ia);var ja=new Array(R);d(ja);var ka,la,ma,na=function(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length},oa=function(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b},pa=!1;b._tr_init=z,b._tr_stored_block=A,b._tr_flush_block=C,b._tr_tally=D,b._tr_align=B},function(a,b){"use strict";function c(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0}a.exports=c},function(a,b){"use strict";function c(){for(var a,b=[],c=0;256>c;c++){a=c;for(var d=0;8>d;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function d(a,b,c,d){var f=e,g=d+c;a=-1^a;for(var h=d;g>h;h++)a=a>>>8^f[255&(a^b[h])];return-1^a}var e=c();a.exports=d},function(a,b,c){"use strict";function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=K,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new r.Buf32(oa),b.distcode=b.distdyn=new r.Buf32(pa),b.sane=1,b.back=-1,C):F}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):F}function h(a,b){var c,d;return a&&a.state?(d=a.state,0>b?(c=0,b=-b):(c=(b>>4)+1,48>b&&(b&=15)),b&&(8>b||b>15)?F:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):F}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==C&&(a.state=null),c):F}function j(a){return i(a,ra)}function k(a){if(sa){var b;for(p=new r.Buf32(512),q=new r.Buf32(32),b=0;144>b;)a.lens[b++]=8;for(;256>b;)a.lens[b++]=9;for(;280>b;)a.lens[b++]=7;for(;288>b;)a.lens[b++]=8;for(v(x,a.lens,0,288,p,0,a.work,{bits:9}),b=0;32>b;)a.lens[b++]=5;v(y,a.lens,0,32,q,0,a.work,{bits:5}),sa=!1}a.lencode=p,a.lenbits=9,a.distcode=q,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<=f.wsize?(r.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),r.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(r.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whaven;){if(0===i)break a; +i--,m+=e[g++]<>>8&255,c.check=t(c.check,Ba,2,0),m=0,n=0,c.mode=L;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg="incorrect header check",c.mode=la;break}if((15&m)!==J){a.msg="unknown compression method",c.mode=la;break}if(m>>>=4,n-=4,wa=(15&m)+8,0===c.wbits)c.wbits=wa;else if(wa>c.wbits){a.msg="invalid window size",c.mode=la;break}c.dmax=1<n;){if(0===i)break a;i--,m+=e[g++]<>8&1),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=t(c.check,Ba,2,0)),m=0,n=0,c.mode=M;case M:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<>>8&255,Ba[2]=m>>>16&255,Ba[3]=m>>>24&255,c.check=t(c.check,Ba,4,0)),m=0,n=0,c.mode=N;case N:for(;16>n;){if(0===i)break a;i--,m+=e[g++]<>8),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=t(c.check,Ba,2,0)),m=0,n=0,c.mode=O;case O:if(1024&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<>>8&255,c.check=t(c.check,Ba,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=P;case P:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wa=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),r.arraySet(c.head.extra,e,g,q,wa)),512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=Q;case Q:if(2048&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.name+=String.fromCharCode(wa));while(wa&&i>q);if(512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.name=null);c.length=0,c.mode=R;case R:if(4096&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.comment+=String.fromCharCode(wa));while(wa&&i>q);if(512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.comment=null);c.mode=S;case S:if(512&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=V;break;case T:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<>>=7&n,n-=7&n,c.mode=ia;break}for(;3>n;){if(0===i)break a;i--,m+=e[g++]<>>=1,n-=1,3&m){case 0:c.mode=X;break;case 1:if(k(c),c.mode=ba,b===B){m>>>=2,n-=2;break a}break;case 2:c.mode=$;break;case 3:a.msg="invalid block type",c.mode=la}m>>>=2,n-=2;break;case X:for(m>>>=7&n,n-=7&n;32>n;){if(0===i)break a;i--,m+=e[g++]<>>16^65535)){a.msg="invalid stored block lengths",c.mode=la;break}if(c.length=65535&m,m=0,n=0,c.mode=Y,b===B)break a;case Y:c.mode=Z;case Z:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;r.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=V;break;case $:for(;14>n;){if(0===i)break a;i--,m+=e[g++]<>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=la;break}c.have=0,c.mode=_;case _:for(;c.haven;){if(0===i)break a;i--,m+=e[g++]<>>=3,n-=3}for(;c.have<19;)c.lens[Ca[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ya={bits:c.lenbits},xa=v(w,c.lens,0,19,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid code lengths set",c.mode=la;break}c.have=0,c.mode=aa;case aa:for(;c.have>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<sa)m>>>=qa,n-=qa,c.lens[c.have++]=sa;else{if(16===sa){for(za=qa+2;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=qa,n-=qa,0===c.have){a.msg="invalid bit length repeat",c.mode=la;break}wa=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sa){for(za=qa+3;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=qa,n-=qa,wa=0,q=3+(7&m),m>>>=3,n-=3}else{for(za=qa+7;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=qa,n-=qa,wa=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=la;break}for(;q--;)c.lens[c.have++]=wa}}if(c.mode===la)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=la;break}if(c.lenbits=9,ya={bits:c.lenbits},xa=v(x,c.lens,0,c.nlen,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid literal/lengths set",c.mode=la;break}if(c.distbits=6,c.distcode=c.distdyn,ya={bits:c.distbits},xa=v(y,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ya),c.distbits=ya.bits,xa){a.msg="invalid distances set",c.mode=la;break}if(c.mode=ba,b===B)break a;case ba:c.mode=ca;case ca:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,u(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===V&&(c.back=-1);break}for(c.back=0;Aa=c.lencode[m&(1<>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=ta+qa);){if(0===i)break a;i--,m+=e[g++]<>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,c.length=sa,0===ra){c.mode=ha;break}if(32&ra){c.back=-1,c.mode=V;break}if(64&ra){a.msg="invalid literal/length code",c.mode=la;break}c.extra=15&ra,c.mode=da;case da:if(c.extra){for(za=c.extra;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=ea;case ea:for(;Aa=c.distcode[m&(1<>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=ta+qa);){if(0===i)break a;i--,m+=e[g++]<>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,64&ra){a.msg="invalid distance code",c.mode=la;break}c.offset=sa,c.extra=15&ra,c.mode=fa;case fa:if(c.extra){for(za=c.extra;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=la;break}c.mode=ga;case ga:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=la;break}q>c.wnext?(q-=c.wnext,oa=c.wsize-q):oa=c.wnext-q,q>c.length&&(q=c.length),pa=c.window}else pa=f,oa=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pa[oa++];while(--q);0===c.length&&(c.mode=ca);break;case ha:if(0===j)break a;f[h++]=c.length,j--,c.mode=ca;break;case ia:if(c.wrap){for(;32>n;){if(0===i)break a;i--,m|=e[g++]<n;){if(0===i)break a;i--,m+=e[g++]<q&&(p+=B[f++]<>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<q&&(p+=B[f++]<>>=w,q-=w),15>q&&(p+=B[f++]<>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<q&&(p+=B[f++]<q&&(p+=B[f++]<k){a.msg="invalid distance too far back",e.mode=c;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&e.sane){a.msg="invalid distance too far back",e.mode=c;break a}if(z=0,A=o,0===n){if(z+=l-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}else if(w>n){if(z+=l+n-w,w-=n,x>w){x-=w;do C[h++]=o[z++];while(--w);if(z=0,x>n){w=n,x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}}else if(z+=n-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}for(;x>2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(g>f&&j>h);x=q>>3,f-=x,q-=x<<3,p&=(1<f?5+(g-f):5-(f-g),a.avail_out=j>h?257+(j-h):257-(h-j),e.hold=p,e.bits=q}},function(a,b,c){"use strict";var d=c(52),e=15,f=852,g=592,h=0,i=1,j=2,k=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],l=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],m=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],n=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];a.exports=function(a,b,c,o,p,q,r,s){var t,u,v,w,x,y,z,A,B,C=s.bits,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=null,O=0,P=new d.Buf16(e+1),Q=new d.Buf16(e+1),R=null,S=0;for(D=0;e>=D;D++)P[D]=0;for(E=0;o>E;E++)P[b[c+E]]++;for(H=C,G=e;G>=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;G>F&&0===P[F];F++);for(F>H&&(H=F),K=1,D=1;e>=D;D++)if(K<<=1,K-=P[D],0>K)return-1;if(K>0&&(a===h||1!==G))return-1;for(Q[1]=0,D=1;e>D;D++)Q[D+1]=Q[D]+P[D];for(E=0;o>E;E++)0!==b[c+E]&&(r[Q[b[c+E]]++]=E);if(a===h?(N=R=r,y=19):a===i?(N=k,O-=257,R=l,S-=257,y=256):(N=m,R=n,y=-1),M=0,E=0,D=F,x=q,I=H,J=0,v=-1,L=1<f||a===j&&L>g)return 1;for(var T=0;;){T++,z=D-J,r[E]y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[c+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<I+J&&(K-=P[I+J],!(0>=K));)I++,K<<=1;if(L+=1<f||a===j&&L>g)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},function(a,b){a.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(a,b,c){(function(a,d){function e(a,c){var d={seen:[],stylize:g};return arguments.length>=3&&(d.depth=arguments[2]),arguments.length>=4&&(d.colors=arguments[3]),p(c)?d.showHidden=c:c&&b._extend(d,c),v(d.showHidden)&&(d.showHidden=!1),v(d.depth)&&(d.depth=2),v(d.colors)&&(d.colors=!1),v(d.customInspect)&&(d.customInspect=!0),d.colors&&(d.stylize=f),i(d,a,d.depth)}function f(a,b){var c=e.styles[b];return c?"["+e.colors[c][0]+"m"+a+"["+e.colors[c][1]+"m":a}function g(a,b){return a}function h(a){var b={};return a.forEach(function(a,c){b[a]=!0}),b}function i(a,c,d){if(a.customInspect&&c&&A(c.inspect)&&c.inspect!==b.inspect&&(!c.constructor||c.constructor.prototype!==c)){var e=c.inspect(d,a);return t(e)||(e=i(a,e,d)),e}var f=j(a,c);if(f)return f;var g=Object.keys(c),p=h(g);if(a.showHidden&&(g=Object.getOwnPropertyNames(c)),z(c)&&(g.indexOf("message")>=0||g.indexOf("description")>=0))return k(c);if(0===g.length){if(A(c)){var q=c.name?": "+c.name:"";return a.stylize("[Function"+q+"]","special")}if(w(c))return a.stylize(RegExp.prototype.toString.call(c),"regexp");if(y(c))return a.stylize(Date.prototype.toString.call(c),"date");if(z(c))return k(c)}var r="",s=!1,u=["{","}"];if(o(c)&&(s=!0,u=["[","]"]),A(c)){var v=c.name?": "+c.name:"";r=" [Function"+v+"]"}if(w(c)&&(r=" "+RegExp.prototype.toString.call(c)),y(c)&&(r=" "+Date.prototype.toUTCString.call(c)),z(c)&&(r=" "+k(c)),0===g.length&&(!s||0==c.length))return u[0]+r+u[1];if(0>d)return w(c)?a.stylize(RegExp.prototype.toString.call(c),"regexp"):a.stylize("[Object]","special");a.seen.push(c);var x;return x=s?l(a,c,d,p,g):g.map(function(b){return m(a,c,d,p,b,s)}),a.seen.pop(),n(x,r,u)}function j(a,b){if(v(b))return a.stylize("undefined","undefined");if(t(b)){var c="'"+JSON.stringify(b).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(c,"string")}return s(b)?a.stylize(""+b,"number"):p(b)?a.stylize(""+b,"boolean"):q(b)?a.stylize("null","null"):void 0}function k(a){return"["+Error.prototype.toString.call(a)+"]"}function l(a,b,c,d,e){for(var f=[],g=0,h=b.length;h>g;++g)F(b,String(g))?f.push(m(a,b,c,d,String(g),!0)):f.push("");return e.forEach(function(e){e.match(/^\d+$/)||f.push(m(a,b,c,d,e,!0))}),f}function m(a,b,c,d,e,f){var g,h,j;if(j=Object.getOwnPropertyDescriptor(b,e)||{value:b[e]},j.get?h=j.set?a.stylize("[Getter/Setter]","special"):a.stylize("[Getter]","special"):j.set&&(h=a.stylize("[Setter]","special")),F(d,e)||(g="["+e+"]"),h||(a.seen.indexOf(j.value)<0?(h=q(c)?i(a,j.value,null):i(a,j.value,c-1),h.indexOf("\n")>-1&&(h=f?h.split("\n").map(function(a){return" "+a}).join("\n").substr(2):"\n"+h.split("\n").map(function(a){return" "+a}).join("\n"))):h=a.stylize("[Circular]","special")),v(g)){if(f&&e.match(/^\d+$/))return h;g=JSON.stringify(""+e),g.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(g=g.substr(1,g.length-2),g=a.stylize(g,"name")):(g=g.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),g=a.stylize(g,"string"))}return g+": "+h}function n(a,b,c){var d=0,e=a.reduce(function(a,b){return d++,b.indexOf("\n")>=0&&d++,a+b.replace(/\u001b\[\d\d?m/g,"").length+1},0);return e>60?c[0]+(""===b?"":b+"\n ")+" "+a.join(",\n ")+" "+c[1]:c[0]+b+" "+a.join(", ")+" "+c[1]}function o(a){return Array.isArray(a)}function p(a){return"boolean"==typeof a}function q(a){return null===a}function r(a){return null==a}function s(a){return"number"==typeof a}function t(a){return"string"==typeof a}function u(a){return"symbol"==typeof a}function v(a){return void 0===a}function w(a){return x(a)&&"[object RegExp]"===C(a)}function x(a){return"object"==typeof a&&null!==a}function y(a){return x(a)&&"[object Date]"===C(a)}function z(a){return x(a)&&("[object Error]"===C(a)||a instanceof Error)}function A(a){return"function"==typeof a}function B(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function C(a){return Object.prototype.toString.call(a)}function D(a){return 10>a?"0"+a.toString(10):a.toString(10)}function E(){var a=new Date,b=[D(a.getHours()),D(a.getMinutes()),D(a.getSeconds())].join(":");return[a.getDate(),J[a.getMonth()],b].join(" ")}function F(a,b){return Object.prototype.hasOwnProperty.call(a,b)}var G=/%[sdj%]/g;b.format=function(a){if(!t(a)){for(var b=[],c=0;c=f)return a;switch(a){case"%s":return String(d[c++]);case"%d":return Number(d[c++]);case"%j":try{return JSON.stringify(d[c++])}catch(b){return"[Circular]"}default:return a}}),h=d[c];f>c;h=d[++c])g+=q(h)||!x(h)?" "+h:" "+e(h);return g},b.deprecate=function(c,e){function f(){if(!g){if(d.throwDeprecation)throw new Error(e);d.traceDeprecation?console.trace(e):console.error(e),g=!0}return c.apply(this,arguments)}if(v(a.process))return function(){return b.deprecate(c,e).apply(this,arguments)};if(d.noDeprecation===!0)return c;var g=!1;return f};var H,I={};b.debuglog=function(a){if(v(H)&&(H=d.env.NODE_DEBUG||""),a=a.toUpperCase(),!I[a])if(new RegExp("\\b"+a+"\\b","i").test(H)){var c=d.pid;I[a]=function(){var d=b.format.apply(b,arguments);console.error("%s %d: %s",a,c,d)}}else I[a]=function(){};return I[a]},b.inspect=e,e.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},e.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},b.isArray=o,b.isBoolean=p,b.isNull=q,b.isNullOrUndefined=r,b.isNumber=s,b.isString=t,b.isSymbol=u,b.isUndefined=v,b.isRegExp=w,b.isObject=x,b.isDate=y,b.isError=z,b.isFunction=A,b.isPrimitive=B,b.isBuffer=c(61);var J=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];b.log=function(){console.log("%s - %s",E(),b.format.apply(b,arguments))},b.inherits=c(62),b._extend=function(a,b){if(!b||!x(b))return a;for(var c=Object.keys(b),d=c.length;d--;)a[c[d]]=b[c[d]];return a}}).call(b,function(){return this}(),c(30))},function(a,b){a.exports=function(a){return a&&"object"==typeof a&&"function"==typeof a.copy&&"function"==typeof a.fill&&"function"==typeof a.readUInt8}},function(a,b){"function"==typeof Object.create?a.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:a.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},function(a,b,c){function d(a,b){return n.isUndefined(b)?""+b:n.isNumber(b)&&!isFinite(b)?b.toString():n.isFunction(b)||n.isRegExp(b)?b.toString():b}function e(a,b){return n.isString(a)?a.length=0;f--)if(g[f]!=h[f])return!1;for(f=g.length-1;f>=0;f--)if(e=g[f],!i(a[e],b[e]))return!1;return!0}function l(a,b){return a&&b?"[object RegExp]"==Object.prototype.toString.call(b)?b.test(a):a instanceof b?!0:b.call({},a)===!0:!1}function m(a,b,c,d){var e;n.isString(c)&&(d=c,c=null);try{b()}catch(f){e=f}if(d=(c&&c.name?" ("+c.name+").":".")+(d?" "+d:"."),a&&!e&&g(e,c,"Missing expected exception"+d),!a&&l(e,c)&&g(e,c,"Got unwanted exception"+d),a&&e&&c&&!l(e,c)||!a&&e)throw e}var n=c(60),o=Array.prototype.slice,p=Object.prototype.hasOwnProperty,q=a.exports=h;q.AssertionError=function(a){this.name="AssertionError",this.actual=a.actual,this.expected=a.expected,this.operator=a.operator,a.message?(this.message=a.message,this.generatedMessage=!1):(this.message=f(this),this.generatedMessage=!0);var b=a.stackStartFunction||g;if(Error.captureStackTrace)Error.captureStackTrace(this,b);else{var c=new Error;if(c.stack){var d=c.stack,e=b.name,h=d.indexOf("\n"+e);if(h>=0){var i=d.indexOf("\n",h+1);d=d.substring(i+1)}this.stack=d}}},n.inherits(q.AssertionError,Error),q.fail=g,q.ok=h,q.equal=function(a,b,c){a!=b&&g(a,b,c,"==",q.equal)},q.notEqual=function(a,b,c){a==b&&g(a,b,c,"!=",q.notEqual)},q.deepEqual=function(a,b,c){i(a,b)||g(a,b,c,"deepEqual",q.deepEqual)},q.notDeepEqual=function(a,b,c){i(a,b)&&g(a,b,c,"notDeepEqual",q.notDeepEqual)},q.strictEqual=function(a,b,c){a!==b&&g(a,b,c,"===",q.strictEqual)},q.notStrictEqual=function(a,b,c){a===b&&g(a,b,c,"!==",q.notStrictEqual)},q["throws"]=function(a,b,c){m.apply(this,[!0].concat(o.call(arguments)))},q.doesNotThrow=function(a,b){m.apply(this,[!1].concat(o.call(arguments)))},q.ifError=function(a){if(a)throw a};var r=Object.keys||function(a){var b=[];for(var c in a)p.call(a,c)&&b.push(c);return b}},function(a,b){(function(){var b;b=function(){function a(a,d){var e;this.document=a,null==d&&(d={}),this.size=d.size||"letter",this.layout=d.layout||"portrait","number"==typeof d.margin?this.margins={top:d.margin,left:d.margin,bottom:d.margin,right:d.margin}:this.margins=d.margins||b,e=Array.isArray(this.size)?this.size:c[this.size.toUpperCase()],this.width=e["portrait"===this.layout?0:1],this.height=e["portrait"===this.layout?1:0],this.content=this.document.ref(),this.resources=this.document.ref({ProcSet:["PDF","Text","ImageB","ImageC","ImageI"]}),Object.defineProperties(this,{fonts:{get:function(a){return function(){var b;return null!=(b=a.resources.data).Font?b.Font:b.Font={}}}(this)},xobjects:{get:function(a){return function(){var b;return null!=(b=a.resources.data).XObject?b.XObject:b.XObject={}}}(this)},ext_gstates:{get:function(a){return function(){var b;return null!=(b=a.resources.data).ExtGState?b.ExtGState:b.ExtGState={}}}(this)},patterns:{get:function(a){return function(){var b;return null!=(b=a.resources.data).Pattern?b.Pattern:b.Pattern={}}}(this)},annotations:{get:function(a){return function(){var b;return null!=(b=a.dictionary.data).Annots?b.Annots:b.Annots=[]}}(this)}}),this.dictionary=this.document.ref({Type:"Page",Parent:this.document._root.data.Pages,MediaBox:[0,0,this.width,this.height],Contents:this.content,Resources:this.resources})}var b,c;return a.prototype.maxY=function(){return this.height-this.margins.bottom},a.prototype.write=function(a){return this.content.write(a)},a.prototype.end=function(){return this.dictionary.end(),this.resources.end(),this.content.end()},b={top:72,left:72,bottom:72,right:72},c={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],EXECUTIVE:[521.86,756],FOLIO:[612,936],LEGAL:[612,1008],LETTER:[612,792],TABLOID:[792,1224]},a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f,g;g=c(66),b=g.PDFGradient,d=g.PDFLinearGradient,e=g.PDFRadialGradient,a.exports={initColor:function(){return this._opacityRegistry={},this._opacityCount=0,this._gradCount=0},_normalizeColor:function(a){var c,d;return a instanceof b?a:("string"==typeof a&&("#"===a.charAt(0)?(4===a.length&&(a=a.replace(/#([0-9A-F])([0-9A-F])([0-9A-F])/i,"#$1$1$2$2$3$3")),c=parseInt(a.slice(1),16),a=[c>>16,c>>8&255,255&c]):f[a]&&(a=f[a])),Array.isArray(a)?(3===a.length?a=function(){var b,c,e;for(e=[],b=0,c=a.length;c>b;b++)d=a[b],e.push(d/255);return e}():4===a.length&&(a=function(){var b,c,e;for(e=[],b=0,c=a.length;c>b;b++)d=a[b],e.push(d/100);return e}()),a):null)},_setColor:function(a,c){var d,e,f,g;return(a=this._normalizeColor(a))?(this._sMasked&&(d=this.ref({Type:"ExtGState",SMask:"None"}),d.end(),e="Gs"+ ++this._opacityCount,this.page.ext_gstates[e]=d,this.addContent("/"+e+" gs"),this._sMasked=!1),f=c?"SCN":"scn",a instanceof b?(this._setColorSpace("Pattern",c),a.apply(f)):(g=4===a.length?"DeviceCMYK":"DeviceRGB",this._setColorSpace(g,c),a=a.join(" "),this.addContent(""+a+" "+f)),!0):!1},_setColorSpace:function(a,b){var c;return c=b?"CS":"cs",this.addContent("/"+a+" "+c)},fillColor:function(a,b){var c;return null==b&&(b=1),c=this._setColor(a,!1),c&&this.fillOpacity(b),this._fillColor=[a,b],this},strokeColor:function(a,b){var c;return null==b&&(b=1),c=this._setColor(a,!0),c&&this.strokeOpacity(b),this},opacity:function(a){return this._doOpacity(a,a),this},fillOpacity:function(a){return this._doOpacity(a,null),this},strokeOpacity:function(a){return this._doOpacity(null,a),this},_doOpacity:function(a,b){var c,d,e,f,g;if(null!=a||null!=b)return null!=a&&(a=Math.max(0,Math.min(1,a))),null!=b&&(b=Math.max(0,Math.min(1,b))),e=""+a+"_"+b,this._opacityRegistry[e]?(g=this._opacityRegistry[e],c=g[0],f=g[1]):(c={Type:"ExtGState"},null!=a&&(c.ca=a),null!=b&&(c.CA=b),c=this.ref(c),c.end(),d=++this._opacityCount,f="Gs"+d,this._opacityRegistry[e]=[c,f]),this.page.ext_gstates[f]=c,this.addContent("/"+f+" gs")},linearGradient:function(a,b,c,e){return new d(this,a,b,c,e)},radialGradient:function(a,b,c,d,f,g){return new e(this,a,b,c,d,f,g)}},f={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}).call(this)},function(a,b){(function(){var b,c,d,e={}.hasOwnProperty,f=function(a,b){function c(){this.constructor=a}for(var d in b)e.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};b=function(){function a(a){this.doc=a,this.stops=[],this.embedded=!1,this.transform=[1,0,0,1,0,0],this._colorSpace="DeviceRGB"}return a.prototype.stop=function(a,b,c){return null==c&&(c=1),c=Math.max(0,Math.min(1,c)),this.stops.push([a,this.doc._normalizeColor(b),c]),this},a.prototype.embed=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J;if(!this.embedded&&0!==this.stops.length){for(this.embedded=!0,k=this.stops[this.stops.length-1],k[0]<1&&this.stops.push([1,k[1],k[2]]),a=[],d=[],C=[],j=E=0,H=this.stops.length-1;H>=0?H>E:E>H;j=H>=0?++E:--E)d.push(0,1),j+2!==this.stops.length&&a.push(this.stops[j+1][0]),e=this.doc.ref({FunctionType:2,Domain:[0,1],C0:this.stops[j+0][1],C1:this.stops[j+1][1],N:1}),C.push(e),e.end();if(1===C.length?e=C[0]:(e=this.doc.ref({FunctionType:3,Domain:[0,1],Functions:C,Bounds:a,Encode:d}),e.end()),this.id="Sh"+ ++this.doc._gradCount,l=this.doc._ctm.slice(),m=l[0],n=l[1],q=l[2],t=l[3],u=l[4],v=l[5],I=this.transform,o=I[0],p=I[1],r=I[2],s=I[3],b=I[4],c=I[5],l[0]=m*o+q*p,l[1]=n*o+t*p,l[2]=m*r+q*s,l[3]=n*r+t*s,l[4]=m*b+q*c+u,l[5]=n*b+t*c+v, +A=this.shader(e),A.end(),x=this.doc.ref({Type:"Pattern",PatternType:2,Shading:A,Matrix:function(){var a,b,c;for(c=[],a=0,b=l.length;b>a;a++)D=l[a],c.push(+D.toFixed(5));return c}()}),this.doc.page.patterns[this.id]=x,x.end(),this.stops.some(function(a){return a[2]<1})){for(g=this.opacityGradient(),g._colorSpace="DeviceGray",J=this.stops,F=0,G=J.length;G>F;F++)B=J[F],g.stop(B[0],[B[2]]);g=g.embed(),h=this.doc.ref({Type:"Group",S:"Transparency",CS:"DeviceGray"}),h.end(),y=this.doc.ref({ProcSet:["PDF","Text","ImageB","ImageC","ImageI"],Shading:{Sh1:g.data.Shading}}),y.end(),f=this.doc.ref({Type:"XObject",Subtype:"Form",FormType:1,BBox:[0,0,this.doc.page.width,this.doc.page.height],Group:h,Resources:y}),f.end("/Sh1 sh"),z=this.doc.ref({Type:"Mask",S:"Luminosity",G:f}),z.end(),i=this.doc.ref({Type:"ExtGState",SMask:z}),this.opacity_id=++this.doc._opacityCount,w="Gs"+this.opacity_id,this.doc.page.ext_gstates[w]=i,i.end()}return x}},a.prototype.apply=function(a){return this.embedded||this.embed(),this.doc.addContent("/"+this.id+" "+a),this.opacity_id?(this.doc.addContent("/Gs"+this.opacity_id+" gs"),this.doc._sMasked=!0):void 0},a}(),c=function(a){function b(a,c,d,e,f){this.doc=a,this.x1=c,this.y1=d,this.x2=e,this.y2=f,b.__super__.constructor.apply(this,arguments)}return f(b,a),b.prototype.shader=function(a){return this.doc.ref({ShadingType:2,ColorSpace:this._colorSpace,Coords:[this.x1,this.y1,this.x2,this.y2],Function:a,Extend:[!0,!0]})},b.prototype.opacityGradient=function(){return new b(this.doc,this.x1,this.y1,this.x2,this.y2)},b}(b),d=function(a){function b(a,c,d,e,f,g,h){this.doc=a,this.x1=c,this.y1=d,this.r1=e,this.x2=f,this.y2=g,this.r2=h,b.__super__.constructor.apply(this,arguments)}return f(b,a),b.prototype.shader=function(a){return this.doc.ref({ShadingType:3,ColorSpace:this._colorSpace,Coords:[this.x1,this.y1,this.r1,this.x2,this.y2,this.r2],Function:a,Extend:[!0,!0]})},b.prototype.opacityGradient=function(){return new b(this.doc,this.x1,this.y1,this.r1,this.x2,this.y2,this.r2)},b}(b),a.exports={PDFGradient:b,PDFLinearGradient:c,PDFRadialGradient:d}}).call(this)},function(a,b,c){(function(){var b,d,e=[].slice;d=c(68),b=4*((Math.sqrt(2)-1)/3),a.exports={initVector:function(){return this._ctm=[1,0,0,1,0,0],this._ctmStack=[]},save:function(){return this._ctmStack.push(this._ctm.slice()),this.addContent("q")},restore:function(){return this._ctm=this._ctmStack.pop()||[1,0,0,1,0,0],this.addContent("Q")},closePath:function(){return this.addContent("h")},lineWidth:function(a){return this.addContent(""+a+" w")},_CAP_STYLES:{BUTT:0,ROUND:1,SQUARE:2},lineCap:function(a){return"string"==typeof a&&(a=this._CAP_STYLES[a.toUpperCase()]),this.addContent(""+a+" J")},_JOIN_STYLES:{MITER:0,ROUND:1,BEVEL:2},lineJoin:function(a){return"string"==typeof a&&(a=this._JOIN_STYLES[a.toUpperCase()]),this.addContent(""+a+" j")},miterLimit:function(a){return this.addContent(""+a+" M")},dash:function(a,b){var c,d,e;return null==b&&(b={}),null==a?this:(d=null!=(e=b.space)?e:a,c=b.phase||0,this.addContent("["+a+" "+d+"] "+c+" d"))},undash:function(){return this.addContent("[] 0 d")},moveTo:function(a,b){return this.addContent(""+a+" "+b+" m")},lineTo:function(a,b){return this.addContent(""+a+" "+b+" l")},bezierCurveTo:function(a,b,c,d,e,f){return this.addContent(""+a+" "+b+" "+c+" "+d+" "+e+" "+f+" c")},quadraticCurveTo:function(a,b,c,d){return this.addContent(""+a+" "+b+" "+c+" "+d+" v")},rect:function(a,b,c,d){return this.addContent(""+a+" "+b+" "+c+" "+d+" re")},roundedRect:function(a,b,c,d,e){return null==e&&(e=0),this.moveTo(a+e,b),this.lineTo(a+c-e,b),this.quadraticCurveTo(a+c,b,a+c,b+e),this.lineTo(a+c,b+d-e),this.quadraticCurveTo(a+c,b+d,a+c-e,b+d),this.lineTo(a+e,b+d),this.quadraticCurveTo(a,b+d,a,b+d-e),this.lineTo(a,b+e),this.quadraticCurveTo(a,b,a+e,b)},ellipse:function(a,c,d,e){var f,g,h,i,j,k;return null==e&&(e=d),a-=d,c-=e,f=d*b,g=e*b,h=a+2*d,j=c+2*e,i=a+d,k=c+e,this.moveTo(a,k),this.bezierCurveTo(a,k-g,i-f,c,i,c),this.bezierCurveTo(i+f,c,h,k-g,h,k),this.bezierCurveTo(h,k+g,i+f,j,i,j),this.bezierCurveTo(i-f,j,a,k+g,a,k),this.closePath()},circle:function(a,b,c){return this.ellipse(a,b,c)},polygon:function(){var a,b,c,d;for(b=1<=arguments.length?e.call(arguments,0):[],this.moveTo.apply(this,b.shift()),c=0,d=b.length;d>c;c++)a=b[c],this.lineTo.apply(this,a);return this.closePath()},path:function(a){return d.apply(this,a),this},_windingRule:function(a){return/even-?odd/.test(a)?"*":""},fill:function(a,b){return/(even-?odd)|(non-?zero)/.test(a)&&(b=a,a=null),a&&this.fillColor(a),this.addContent("f"+this._windingRule(b))},stroke:function(a){return a&&this.strokeColor(a),this.addContent("S")},fillAndStroke:function(a,b,c){var d;return null==b&&(b=a),d=/(even-?odd)|(non-?zero)/,d.test(a)&&(c=a,a=null),d.test(b)&&(c=b,b=a),a&&(this.fillColor(a),this.strokeColor(b)),this.addContent("B"+this._windingRule(c))},clip:function(a){return this.addContent("W"+this._windingRule(a)+" n")},transform:function(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o;return g=this._ctm,h=g[0],i=g[1],j=g[2],k=g[3],l=g[4],m=g[5],g[0]=h*a+j*b,g[1]=i*a+k*b,g[2]=h*c+j*d,g[3]=i*c+k*d,g[4]=h*e+j*f+l,g[5]=i*e+k*f+m,o=function(){var g,h,i,j;for(i=[a,b,c,d,e,f],j=[],g=0,h=i.length;h>g;g++)n=i[g],j.push(+n.toFixed(5));return j}().join(" "),this.addContent(""+o+" cm")},translate:function(a,b){return this.transform(1,0,0,1,a,b)},rotate:function(a,b){var c,d,e,f,g,h,i,j;return null==b&&(b={}),d=a*Math.PI/180,c=Math.cos(d),e=Math.sin(d),f=h=0,null!=b.origin&&(j=b.origin,f=j[0],h=j[1],g=f*c-h*e,i=f*e+h*c,f-=g,h-=i),this.transform(c,e,-e,c,f,h)},scale:function(a,b,c){var d,e,f;return null==b&&(b=a),null==c&&(c={}),2===arguments.length&&(b=a,c=b),d=e=0,null!=c.origin&&(f=c.origin,d=f[0],e=f[1],d-=a*d,e-=b*e),this.transform(a,0,0,b,d,e)}}}).call(this)},function(a,b){(function(){var b;b=function(){function a(){}var b,c,d,e,f,g,h,i,j,k,l,m,n;return a.apply=function(a,c){var d;return d=g(c),b(d,a)},f={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0},g=function(a){var b,c,d,e,g,h,i,j,k;for(i=[],b=[],e="",g=!1,h=0,j=0,k=a.length;k>j;j++)if(c=a[j],null!=f[c])h=f[c],d&&(e.length>0&&(b[b.length]=+e),i[i.length]={cmd:d,args:b},b=[],e="",g=!1),d=c;else if(" "===c||","===c||"-"===c&&e.length>0&&"e"!==e[e.length-1]||"."===c&&g){if(0===e.length)continue;b.length===h?(i[i.length]={cmd:d,args:b},b=[+e],"M"===d&&(d="L"),"m"===d&&(d="l")):b[b.length]=+e,g="."===c,e="-"===c||"."===c?c:""}else e+=c,"."===c&&(g=!0);return e.length>0&&(b.length===h?(i[i.length]={cmd:d,args:b},b=[+e],"M"===d&&(d="L"),"m"===d&&(d="l")):b[b.length]=+e),i[i.length]={cmd:d,args:b},i},d=e=h=i=m=n=0,b=function(a,b){var c,f,g,k,l;for(d=e=h=i=m=n=0,f=g=0,k=a.length;k>g;f=++g)c=a[f],"function"==typeof j[l=c.cmd]&&j[l](b,c.args);return d=e=h=i=0},j={M:function(a,b){return d=b[0],e=b[1],h=i=null,m=d,n=e,a.moveTo(d,e)},m:function(a,b){return d+=b[0],e+=b[1],h=i=null,m=d,n=e,a.moveTo(d,e)},C:function(a,b){return d=b[4],e=b[5],h=b[2],i=b[3],a.bezierCurveTo.apply(a,b)},c:function(a,b){return a.bezierCurveTo(b[0]+d,b[1]+e,b[2]+d,b[3]+e,b[4]+d,b[5]+e),h=d+b[2],i=e+b[3],d+=b[4],e+=b[5]},S:function(a,b){return null===h&&(h=d,i=e),a.bezierCurveTo(d-(h-d),e-(i-e),b[0],b[1],b[2],b[3]),h=b[0],i=b[1],d=b[2],e=b[3]},s:function(a,b){return null===h&&(h=d,i=e),a.bezierCurveTo(d-(h-d),e-(i-e),d+b[0],e+b[1],d+b[2],e+b[3]),h=d+b[0],i=e+b[1],d+=b[2],e+=b[3]},Q:function(a,b){return h=b[0],i=b[1],d=b[2],e=b[3],a.quadraticCurveTo(b[0],b[1],d,e)},q:function(a,b){return a.quadraticCurveTo(b[0]+d,b[1]+e,b[2]+d,b[3]+e),h=d+b[0],i=e+b[1],d+=b[2],e+=b[3]},T:function(a,b){return null===h?(h=d,i=e):(h=d-(h-d),i=e-(i-e)),a.quadraticCurveTo(h,i,b[0],b[1]),h=d-(h-d),i=e-(i-e),d=b[0],e=b[1]},t:function(a,b){return null===h?(h=d,i=e):(h=d-(h-d),i=e-(i-e)),a.quadraticCurveTo(h,i,d+b[0],e+b[1]),d+=b[0],e+=b[1]},A:function(a,b){return l(a,d,e,b),d=b[5],e=b[6]},a:function(a,b){return b[5]+=d,b[6]+=e,l(a,d,e,b),d=b[5],e=b[6]},L:function(a,b){return d=b[0],e=b[1],h=i=null,a.lineTo(d,e)},l:function(a,b){return d+=b[0],e+=b[1],h=i=null,a.lineTo(d,e)},H:function(a,b){return d=b[0],h=i=null,a.lineTo(d,e)},h:function(a,b){return d+=b[0],h=i=null,a.lineTo(d,e)},V:function(a,b){return e=b[0],h=i=null,a.lineTo(d,e)},v:function(a,b){return e+=b[0],h=i=null,a.lineTo(d,e)},Z:function(a){return a.closePath(),d=m,e=n},z:function(a){return a.closePath(),d=m,e=n}},l=function(a,b,d,e){var f,g,h,i,j,l,m,n,o,p,q,r,s;for(l=e[0],m=e[1],j=e[2],i=e[3],p=e[4],g=e[5],h=e[6],o=c(g,h,l,m,i,p,j,b,d),s=[],q=0,r=o.length;r>q;q++)n=o[q],f=k.apply(null,n),s.push(a.bezierCurveTo.apply(a,f));return s},c=function(a,b,c,d,e,f,g,j,k){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K;for(y=g*(Math.PI/180),x=Math.sin(y),p=Math.cos(y),c=Math.abs(c),d=Math.abs(d),h=p*(j-a)*.5+x*(k-b)*.5,i=p*(k-b)*.5-x*(j-a)*.5,s=h*h/(c*c)+i*i/(d*d),s>1&&(s=Math.sqrt(s),c*=s,d*=s),l=p/c,m=x/c,n=-x/d,o=p/d,E=l*j+m*k,H=n*j+o*k,F=l*a+m*b,I=n*a+o*b,q=(F-E)*(F-E)+(I-H)*(I-H),w=1/q-.25,0>w&&(w=0),v=Math.sqrt(w),f===e&&(v=-v),G=.5*(E+F)-v*(I-H),J=.5*(H+I)+v*(F-E),z=Math.atan2(H-J,E-G),A=Math.atan2(I-J,F-G),D=A-z,0>D&&1===f?D+=2*Math.PI:D>0&&0===f&&(D-=2*Math.PI),u=Math.ceil(Math.abs(D/(.5*Math.PI+.001))),t=[],r=K=0;u>=0?u>K:K>u;r=u>=0?++K:--K)B=z+r*D/u,C=z+(r+1)*D/u,t[r]=[G,J,B,C,c,d,x,p];return t},k=function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s,t;return i=h*e,j=-g*f,k=g*e,l=h*f,n=.5*(d-c),m=8/3*Math.sin(.5*n)*Math.sin(.5*n)/Math.sin(n),o=a+Math.cos(c)-m*Math.sin(c),r=b+Math.sin(c)+m*Math.cos(c),q=a+Math.cos(d),t=b+Math.sin(d),p=q+m*Math.sin(d),s=t-m*Math.cos(d),[i*o+j*r,k*o+l*r,i*p+j*s,k*p+l*s,i*q+j*t,k*q+l*t]},a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b;b=c(70),a.exports={initFonts:function(){this._fontFamilies={},this._fontCount=0,this._fontSize=12,this._font=null,this._registeredFonts={}},font:function(a,c,d){var e,f,g,h;return"number"==typeof c&&(d=c,c=null),"string"==typeof a&&this._registeredFonts[a]?(e=a,h=this._registeredFonts[a],a=h.src,c=h.family):(e=c||a,"string"!=typeof e&&(e=null)),null!=d&&this.fontSize(d),(f=this._fontFamilies[e])?(this._font=f,this):(g="F"+ ++this._fontCount,this._font=new b(this,a,c,g),(f=this._fontFamilies[this._font.name])?(this._font=f,this):(e&&(this._fontFamilies[e]=this._font),this._fontFamilies[this._font.name]=this._font,this))},fontSize:function(a){return this._fontSize=a,this},currentLineHeight:function(a){return null==a&&(a=!1),this._font.lineHeight(this._fontSize,a)},registerFont:function(a,b,c){return this._registeredFonts[a]={src:b,family:c},this}}}).call(this)},function(a,b,c){(function(b,d){(function(){var e,f,g,h,i;h=c(71),e=c(87),g=c(88),i=c(44),f=function(){function a(a,d,f,i){if(this.document=a,this.id=i,"string"==typeof d){if(d in c)return this.isAFM=!0,this.font=new e(c[d]()),void this.registerAFM(d);if(/\.(ttf|ttc)$/i.test(d))this.font=h.open(d,f);else{if(!/\.dfont$/i.test(d))throw new Error("Not a supported font format or standard PDF font.");this.font=h.fromDFont(d,f)}}else if(b.isBuffer(d))this.font=h.fromBuffer(d,f);else if(d instanceof Uint8Array)this.font=h.fromBuffer(new b(d),f);else{if(!(d instanceof ArrayBuffer))throw new Error("Not a supported font format or standard PDF font.");this.font=h.fromBuffer(new b(new Uint8Array(d)),f)}this.subset=new g(this.font),this.registerTTF()}var c,f;return c={Courier:function(){return i.readFileSync(d+"/font/data/Courier.afm","utf8")},"Courier-Bold":function(){return i.readFileSync(d+"/font/data/Courier-Bold.afm","utf8")},"Courier-Oblique":function(){return i.readFileSync(d+"/font/data/Courier-Oblique.afm","utf8")},"Courier-BoldOblique":function(){return i.readFileSync(d+"/font/data/Courier-BoldOblique.afm","utf8")},Helvetica:function(){return i.readFileSync(d+"/font/data/Helvetica.afm","utf8")},"Helvetica-Bold":function(){return i.readFileSync(d+"/font/data/Helvetica-Bold.afm","utf8")},"Helvetica-Oblique":function(){return i.readFileSync(d+"/font/data/Helvetica-Oblique.afm","utf8")},"Helvetica-BoldOblique":function(){return i.readFileSync(d+"/font/data/Helvetica-BoldOblique.afm","utf8")},"Times-Roman":function(){return i.readFileSync(d+"/font/data/Times-Roman.afm","utf8")},"Times-Bold":function(){return i.readFileSync(d+"/font/data/Times-Bold.afm","utf8")},"Times-Italic":function(){return i.readFileSync(d+"/font/data/Times-Italic.afm","utf8")},"Times-BoldItalic":function(){return i.readFileSync(d+"/font/data/Times-BoldItalic.afm","utf8")},Symbol:function(){return i.readFileSync(d+"/font/data/Symbol.afm","utf8")},ZapfDingbats:function(){return i.readFileSync(d+"/font/data/ZapfDingbats.afm","utf8")}},a.prototype.use=function(a){var b;return null!=(b=this.subset)?b.use(a):void 0},a.prototype.embed=function(){return this.embedded||null==this.dictionary?void 0:(this.isAFM?this.embedAFM():this.embedTTF(),this.embedded=!0)},a.prototype.encode=function(a){var b;return this.isAFM?this.font.encodeText(a):(null!=(b=this.subset)?b.encodeText(a):void 0)||a},a.prototype.ref=function(){return null!=this.dictionary?this.dictionary:this.dictionary=this.document.ref()},a.prototype.registerTTF=function(){var a,b,c,d,e;if(this.name=this.font.name.postscriptName,this.scaleFactor=1e3/this.font.head.unitsPerEm,this.bbox=function(){var b,c,d,e;for(d=this.font.bbox,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(Math.round(a*this.scaleFactor));return e}.call(this),this.stemV=0,this.font.post.exists?(d=this.font.post.italic_angle,b=d>>16,c=255&d,b&!0&&(b=-((65535^b)+1)),this.italicAngle=+(""+b+"."+c)):this.italicAngle=0,this.ascender=Math.round(this.font.ascender*this.scaleFactor),this.decender=Math.round(this.font.decender*this.scaleFactor),this.lineGap=Math.round(this.font.lineGap*this.scaleFactor),this.capHeight=this.font.os2.exists&&this.font.os2.capHeight||this.ascender,this.xHeight=this.font.os2.exists&&this.font.os2.xHeight||0,this.familyClass=(this.font.os2.exists&&this.font.os2.familyClass||0)>>8,this.isSerif=1===(e=this.familyClass)||2===e||3===e||4===e||5===e||7===e,this.isScript=10===this.familyClass,this.flags=0,this.font.post.isFixedPitch&&(this.flags|=1),this.isSerif&&(this.flags|=2),this.isScript&&(this.flags|=8),0!==this.italicAngle&&(this.flags|=64),this.flags|=32,!this.font.cmap.unicode)throw new Error("No unicode cmap for font")},a.prototype.embedTTF=function(){var a,b,c,d,e,g,h,i;return d=this.subset.encode(),h=this.document.ref(),h.write(d),h.data.Length1=h.uncompressedLength,h.end(),e=this.document.ref({Type:"FontDescriptor",FontName:this.subset.postscriptName,FontFile2:h,FontBBox:this.bbox,Flags:this.flags,StemV:this.stemV,ItalicAngle:this.italicAngle,Ascent:this.ascender,Descent:this.decender,CapHeight:this.capHeight,XHeight:this.xHeight}),e.end(),g=+Object.keys(this.subset.cmap)[0],a=function(){var a,b;a=this.subset.cmap,b=[];for(c in a)i=a[c],b.push(Math.round(this.font.widthOfGlyph(i)));return b}.call(this),b=this.document.ref(),b.end(f(this.subset.subset)),this.dictionary.data={Type:"Font",BaseFont:this.subset.postscriptName,Subtype:"TrueType",FontDescriptor:e,FirstChar:g,LastChar:g+a.length-1,Widths:a,Encoding:"MacRomanEncoding",ToUnicode:b},this.dictionary.end()},f=function(a){var b,c,d,e,f,g,h;for(f="/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo <<\n /Registry (Adobe)\n /Ordering (UCS)\n /Supplement 0\n>> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<00>\nendcodespacerange",c=Object.keys(a).sort(function(a,b){return a-b}),d=[],g=0,h=c.length;h>g;g++)b=c[g],d.length>=100&&(f+="\n"+d.length+" beginbfchar\n"+d.join("\n")+"\nendbfchar",d=[]),e=("0000"+a[b].toString(16)).slice(-4),b=(+b).toString(16),d.push("<"+b+"><"+e+">");return d.length&&(f+="\n"+d.length+" beginbfchar\n"+d.join("\n")+"\nendbfchar\n"),f+="endcmap\nCMapName currentdict /CMap defineresource pop\nend\nend"},a.prototype.registerAFM=function(a){var b;return this.name=a,b=this.font,this.ascender=b.ascender,this.decender=b.decender,this.bbox=b.bbox,this.lineGap=b.lineGap,b},a.prototype.embedAFM=function(){return this.dictionary.data={Type:"Font",BaseFont:this.name,Subtype:"Type1",Encoding:"WinAnsiEncoding"},this.dictionary.end()},a.prototype.widthOfString=function(a,b){var c,d,e,f,g,h;for(a=""+a,f=0,d=g=0,h=a.length;h>=0?h>g:g>h;d=h>=0?++g:--g)c=a.charCodeAt(d),f+=this.font.widthOfGlyph(this.font.characterToGlyph(c))||0;return e=b/1e3,f*e},a.prototype.lineHeight=function(a,b){var c;return null==b&&(b=!1),c=b?this.lineGap:0,(this.ascender+c-this.decender)/1e3*a},a}(),a.exports=f}).call(this)}).call(b,c(2).Buffer,"/")},function(a,b,c){(function(){var b,d,e,f,g,h,i,j,k,l,m,n,o,p,q;q=c(44),e=c(72),d=c(73),f=c(74),m=c(75),h=c(78),b=c(79),j=c(80),i=c(81),l=c(82),o=c(83),n=c(84),k=c(85),g=c(86),p=function(){function a(a,b){var c,d,f,g,h,i,j,k,l;if(this.rawData=a,c=this.contents=new e(this.rawData),"ttcf"===c.readString(4)){if(!b)throw new Error("Must specify a font name for TTC files.");for(i=c.readInt(),f=c.readInt(),h=[],d=j=0;f>=0?f>j:j>f;d=f>=0?++j:--j)h[d]=c.readInt();for(d=k=0,l=h.length;l>k;d=++k)if(g=h[d],c.pos=g,this.parse(),this.name.postscriptName===b)return;throw new Error("Font "+b+" not found in TTC file.")}c.pos=0,this.parse()}return a.open=function(b,c){var d;return d=q.readFileSync(b),new a(d,c)},a.fromDFont=function(b,c){var e;return e=d.open(b),new a(e.getNamedFont(c))},a.fromBuffer=function(b,c){var e,f,g;try{if(g=new a(b,c),!(g.head.exists&&g.name.exists&&g.cmap.exists||(e=new d(b),g=new a(e.getNamedFont(c)),g.head.exists&&g.name.exists&&g.cmap.exists)))throw new Error("Invalid TTF file in DFont");return g}catch(h){throw f=h,new Error("Unknown font format in buffer: "+f.message)}},a.prototype.parse=function(){return this.directory=new f(this.contents),this.head=new h(this),this.name=new m(this),this.cmap=new b(this),this.hhea=new i(this),this.maxp=new l(this),this.hmtx=new j(this),this.post=new o(this),this.os2=new n(this),this.loca=new k(this),this.glyf=new g(this),this.ascender=this.os2.exists&&this.os2.ascender||this.hhea.ascender,this.decender=this.os2.exists&&this.os2.decender||this.hhea.decender,this.lineGap=this.os2.exists&&this.os2.lineGap||this.hhea.lineGap,this.bbox=[this.head.xMin,this.head.yMin,this.head.xMax,this.head.yMax]},a.prototype.characterToGlyph=function(a){var b;return(null!=(b=this.cmap.unicode)?b.codeMap[a]:void 0)||0},a.prototype.widthOfGlyph=function(a){var b;return b=1e3/this.head.unitsPerEm,this.hmtx.forGlyph(a).advance*b},a}(),a.exports=p}).call(this)},function(a,b){(function(){var b;b=function(){function a(a){this.data=null!=a?a:[],this.pos=0,this.length=this.data.length}return a.prototype.readByte=function(){return this.data[this.pos++]},a.prototype.writeByte=function(a){return this.data[this.pos++]=a},a.prototype.byteAt=function(a){return this.data[a]},a.prototype.readBool=function(){return!!this.readByte()},a.prototype.writeBool=function(a){return this.writeByte(a?1:0)},a.prototype.readUInt32=function(){var a,b,c,d;return a=16777216*this.readByte(),b=this.readByte()<<16,c=this.readByte()<<8,d=this.readByte(),a+b+c+d},a.prototype.writeUInt32=function(a){return this.writeByte(a>>>24&255),this.writeByte(a>>16&255),this.writeByte(a>>8&255),this.writeByte(255&a)},a.prototype.readInt32=function(){var a;return a=this.readUInt32(),a>=2147483648?a-4294967296:a},a.prototype.writeInt32=function(a){return 0>a&&(a+=4294967296),this.writeUInt32(a)},a.prototype.readUInt16=function(){var a,b;return a=this.readByte()<<8,b=this.readByte(),a|b},a.prototype.writeUInt16=function(a){return this.writeByte(a>>8&255),this.writeByte(255&a)},a.prototype.readInt16=function(){var a;return a=this.readUInt16(),a>=32768?a-65536:a},a.prototype.writeInt16=function(a){return 0>a&&(a+=65536),this.writeUInt16(a)},a.prototype.readString=function(a){var b,c,d;for(c=[],b=d=0;a>=0?a>d:d>a;b=a>=0?++d:--d)c[b]=String.fromCharCode(this.readByte());return c.join("")},a.prototype.writeString=function(a){var b,c,d,e;for(e=[],b=c=0,d=a.length;d>=0?d>c:c>d;b=d>=0?++c:--c)e.push(this.writeByte(a.charCodeAt(b)));return e},a.prototype.stringAt=function(a,b){return this.pos=a,this.readString(b)},a.prototype.readShort=function(){return this.readInt16()},a.prototype.writeShort=function(a){return this.writeInt16(a)},a.prototype.readLongLong=function(){var a,b,c,d,e,f,g,h;return a=this.readByte(),b=this.readByte(),c=this.readByte(),d=this.readByte(),e=this.readByte(),f=this.readByte(),g=this.readByte(),h=this.readByte(),128&a?-1*(72057594037927940*(255^a)+281474976710656*(255^b)+1099511627776*(255^c)+4294967296*(255^d)+16777216*(255^e)+65536*(255^f)+256*(255^g)+(255^h)+1):72057594037927940*a+281474976710656*b+1099511627776*c+4294967296*d+16777216*e+65536*f+256*g+h},a.prototype.writeLongLong=function(a){var b,c;return b=Math.floor(a/4294967296),c=4294967295&a,this.writeByte(b>>24&255),this.writeByte(b>>16&255),this.writeByte(b>>8&255),this.writeByte(255&b),this.writeByte(c>>24&255),this.writeByte(c>>16&255),this.writeByte(c>>8&255),this.writeByte(255&c)},a.prototype.readInt=function(){return this.readInt32()},a.prototype.writeInt=function(a){return this.writeInt32(a)},a.prototype.slice=function(a,b){return this.data.slice(a,b)},a.prototype.read=function(a){var b,c,d;for(b=[],c=d=0;a>=0?a>d:d>a;c=a>=0?++d:--d)b.push(this.readByte());return b},a.prototype.write=function(a){var b,c,d,e;for(e=[],c=0,d=a.length;d>c;c++)b=a[c],e.push(this.writeByte(b));return e},a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f,g;g=c(44),d=c(72),e=c(74),f=c(75),b=function(){function a(a){this.contents=new d(a),this.parse(this.contents)}return a.open=function(b){var c;return c=g.readFileSync(b),new a(c)},a.prototype.parse=function(a){var b,c,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G;for(j=a.readInt(),u=a.readInt(),i=a.readInt(),t=a.readInt(),this.map={},a.pos=u+24,E=a.readShort()+u,y=a.readShort()+u,a.pos=E,v=a.readShort(),o=F=0;v>=F;o=F+=1){for(D=a.readString(4),w=a.readShort(),C=a.readShort(),this.map[D]={list:[],named:{}},B=a.pos,a.pos=E+C,q=G=0;w>=G;q=G+=1)p=a.readShort(),z=a.readShort(),b=a.readByte(),c=a.readByte()<<16,g=a.readByte()<<8,h=a.readByte(),k=j+(0|c|g|h),n=a.readUInt32(),l={id:p,attributes:b,offset:k,handle:n},A=a.pos,-1!==z&&u+t>y+z?(a.pos=y+z,r=a.readByte(),l.name=a.readString(r)):"sfnt"===D&&(a.pos=l.offset,s=a.readUInt32(),m={},m.contents=new d(a.slice(a.pos,a.pos+s)),m.directory=new e(m.contents),x=new f(m),l.name=x.fontName[0].raw),a.pos=A,this.map[D].list.push(l),l.name&&(this.map[D].named[l.name]=l);a.pos=B}},a.prototype.getNamedFont=function(a){var b,c,d,e,f,g;if(b=this.contents,e=b.pos,c=null!=(g=this.map.sfnt)?g.named[a]:void 0,!c)throw new Error("Font "+a+" not found in DFont file.");return b.pos=c.offset,d=b.readUInt32(),f=b.slice(b.pos,b.pos+d),b.pos=e,f},a}(),a.exports=b}).call(this)},function(a,b,c){(function(b){(function(){var d,e,f=[].slice;d=c(72),e=function(){function a(a){var b,c,d,e;for(this.scalarType=a.readInt(),this.tableCount=a.readShort(),this.searchRange=a.readShort(),this.entrySelector=a.readShort(),this.rangeShift=a.readShort(),this.tables={},c=d=0,e=this.tableCount;e>=0?e>d:d>e;c=e>=0?++d:--d)b={tag:a.readString(4),checksum:a.readInt(),offset:a.readInt(),length:a.readInt()},this.tables[b.tag]=b}var c;return a.prototype.encode=function(a){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;p=Object.keys(a).length,j=Math.log(2),m=16*Math.floor(Math.log(p)/j),h=Math.floor(m/j),l=16*p-m,f=new d,f.writeInt(this.scalarType),f.writeShort(p),f.writeShort(m),f.writeShort(h),f.writeShort(l),g=16*p,k=f.pos+g,i=null,q=[];for(r in a)for(o=a[r],f.writeString(r),f.writeInt(c(o)),f.writeInt(k),f.writeInt(o.length),q=q.concat(o),"head"===r&&(i=k),k+=o.length;k%4;)q.push(0),k++;return f.write(q),n=c(f.data),e=2981146554-n,f.pos=i+8,f.writeUInt32(e),new b(f.data)},c=function(a){var b,c,e,g,h;for(a=f.call(a);a.length%4;)a.push(0);for(e=new d(a),c=0,b=g=0,h=a.length;h>g;b=g+=4)c+=e.readUInt32();return 4294967295&c},a}(),a.exports=e}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(){var b,d,e,f,g,h={}.hasOwnProperty,i=function(a,b){function c(){this.constructor=a}for(var d in b)h.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};f=c(76),b=c(72),g=c(77),e=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}var e;return i(c,a),c.prototype.tag="name",c.prototype.parse=function(a){var b,c,e,f,g,h,i,j,k,l,m,n,o;for(a.pos=this.offset,f=a.readShort(),b=a.readShort(),i=a.readShort(),c=[],g=l=0;b>=0?b>l:l>b;g=b>=0?++l:--l)c.push({platformID:a.readShort(),encodingID:a.readShort(),languageID:a.readShort(),nameID:a.readShort(),length:a.readShort(),offset:this.offset+i+a.readShort()});for(j={},g=m=0,n=c.length;n>m;g=++m)e=c[g],a.pos=e.offset,k=a.readString(e.length),h=new d(k,e),null==j[o=e.nameID]&&(j[o]=[]),j[e.nameID].push(h);return this.strings=j,this.copyright=j[0],this.fontFamily=j[1],this.fontSubfamily=j[2],this.uniqueSubfamily=j[3],this.fontName=j[4],this.version=j[5],this.postscriptName=j[6][0].raw.replace(/[\x00-\x19\x80-\xff]/g,""),this.trademark=j[7],this.manufacturer=j[8],this.designer=j[9],this.description=j[10],this.vendorUrl=j[11],this.designerUrl=j[12],this.license=j[13],this.licenseUrl=j[14],this.preferredFamily=j[15],this.preferredSubfamily=j[17],this.compatibleFull=j[18],this.sampleText=j[19]},e="AAAAAA",c.prototype.encode=function(){var a,c,f,h,i,j,k,l,m,n,o,p,q,r;m={},r=this.strings;for(a in r)o=r[a],m[a]=o;i=new d(""+e+"+"+this.postscriptName,{platformID:1,encodingID:0,languageID:0}),m[6]=[i],e=g.successorOf(e),j=0;for(a in m)c=m[a],null!=c&&(j+=c.length);n=new b,k=new b,n.writeShort(0),n.writeShort(j),n.writeShort(6+12*j);for(f in m)if(c=m[f],null!=c)for(p=0,q=c.length;q>p;p++)l=c[p],n.writeShort(l.platformID),n.writeShort(l.encodingID),n.writeShort(l.languageID),n.writeShort(f),n.writeShort(l.length),n.writeShort(k.pos),k.writeString(l.raw);return h={postscriptName:i.raw,table:n.data.concat(k.data)}},c}(f),a.exports=e,d=function(){function a(a,b){this.raw=a,this.length=this.raw.length,this.platformID=b.platformID,this.encodingID=b.encodingID,this.languageID=b.languageID}return a}()}).call(this)},function(a,b){(function(){var b;b=function(){function a(a){var b;this.file=a,b=this.file.directory.tables[this.tag],this.exists=!!b,b&&(this.offset=b.offset,this.length=b.length,this.parse(this.file.contents))}return a.prototype.parse=function(){},a.prototype.encode=function(){},a.prototype.raw=function(){return this.exists?(this.file.contents.pos=this.offset,this.file.contents.read(this.length)):null},a}(),a.exports=b}).call(this)},function(a,b){(function(){b.successorOf=function(a){var b,c,d,e,f,g,h,i,j,k;for(c="abcdefghijklmnopqrstuvwxyz",i=c.length,k=a,e=a.length;e>=0;){if(h=a.charAt(--e),isNaN(h)){if(f=c.indexOf(h.toLowerCase()),-1===f)j=h,d=!0;else if(j=c.charAt((f+1)%i),g=h===h.toUpperCase(),g&&(j=j.toUpperCase()),d=f+1>=i,d&&0===e){b=g?"A":"a",k=b+j+k.slice(1);break}}else if(j=+h+1,d=j>9,d&&(j=0),d&&0===e){k="1"+j+k.slice(1);break}if(k=k.slice(0,e)+j+k.slice(e+1),!d)break}return k},b.invert=function(a){var b,c,d;c={};for(b in a)d=a[b],c[d]=b;return c}}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="head",c.prototype.parse=function(a){return a.pos=this.offset,this.version=a.readInt(),this.revision=a.readInt(),this.checkSumAdjustment=a.readInt(),this.magicNumber=a.readInt(),this.flags=a.readShort(),this.unitsPerEm=a.readShort(),this.created=a.readLongLong(),this.modified=a.readLongLong(),this.xMin=a.readShort(),this.yMin=a.readShort(),this.xMax=a.readShort(),this.yMax=a.readShort(),this.macStyle=a.readShort(),this.lowestRecPPEM=a.readShort(),this.fontDirectionHint=a.readShort(),this.indexToLocFormat=a.readShort(),this.glyphDataFormat=a.readShort()},c.prototype.encode=function(a){var c;return c=new b,c.writeInt(this.version),c.writeInt(this.revision),c.writeInt(this.checkSumAdjustment),c.writeInt(this.magicNumber),c.writeShort(this.flags),c.writeShort(this.unitsPerEm),c.writeLongLong(this.created),c.writeLongLong(this.modified),c.writeShort(this.xMin),c.writeShort(this.yMin),c.writeShort(this.xMax),c.writeShort(this.yMax),c.writeShort(this.macStyle),c.writeShort(this.lowestRecPPEM),c.writeShort(this.fontDirectionHint),c.writeShort(a.type),c.writeShort(this.glyphDataFormat),c.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f,g={}.hasOwnProperty,h=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};f=c(76),e=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return h(c,a),c.prototype.tag="cmap",c.prototype.parse=function(a){var c,d,e,f;for(a.pos=this.offset,this.version=a.readUInt16(),e=a.readUInt16(),this.tables=[],this.unicode=null,d=f=0;e>=0?e>f:f>e;d=e>=0?++f:--f)c=new b(a,this.offset),this.tables.push(c),c.isUnicode&&null==this.unicode&&(this.unicode=c);return!0},c.encode=function(a,c){var d,f;return null==c&&(c="macroman"),d=b.encode(a,c),f=new e,f.writeUInt16(0),f.writeUInt16(1),d.table=f.data.concat(d.subtable),d},c}(f),b=function(){function a(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;switch(this.platformID=a.readUInt16(),this.encodingID=a.readShort(),this.offset=b+a.readInt(),l=a.pos,a.pos=this.offset,this.format=a.readUInt16(),this.length=a.readUInt16(),this.language=a.readUInt16(),this.isUnicode=3===this.platformID&&1===this.encodingID&&4===this.format||0===this.platformID&&4===this.format,this.codeMap={},this.format){case 0:for(h=r=0;256>r;h=++r)this.codeMap[h]=a.readByte();break;case 4:for(n=a.readUInt16(),m=n/2,a.pos+=6,e=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),a.pos+=2,p=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),i=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),j=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),d=(this.length-a.pos+this.offset)/2,g=function(){var b,c;for(c=[],h=b=0;d>=0?d>b:b>d;h=d>=0?++b:--b)c.push(a.readUInt16());return c}(),h=s=0,u=e.length;u>s;h=++s)for(q=e[h],o=p[h],c=t=o;q>=o?q>=t:t>=q;c=q>=o?++t:--t)0===j[h]?f=c+i[h]:(k=j[h]/2+(c-o)-(m-h),f=g[k]||0,0!==f&&(f+=i[h])),this.codeMap[c]=65535&f}a.pos=l}return a.encode=function(a,b){var c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X;switch(F=new e,g=Object.keys(a).sort(function(a,b){return a-b}),b){case"macroman":for(p=0,q=function(){var a,b;for(b=[],o=a=0;256>a;o=++a)b.push(0);return b}(),s={0:0},f={},G=0,K=g.length;K>G;G++)d=g[G],null==s[U=a[d]]&&(s[U]=++p),f[d]={old:a[d],"new":s[a[d]]},q[d]=s[a[d]];return F.writeUInt16(1),F.writeUInt16(0),F.writeUInt32(12),F.writeUInt16(0),F.writeUInt16(262),F.writeUInt16(0),F.write(q),y={charMap:f,subtable:F.data,maxGlyphID:p+1};case"unicode":for(D=[],l=[],t=0,s={},c={},r=j=null,H=0,L=g.length;L>H;H++)d=g[H],v=a[d],null==s[v]&&(s[v]=++t),c[d]={old:v,"new":s[v]},h=s[v]-d,null!=r&&h===j||(r&&l.push(r),D.push(d),j=h),r=d;for(r&&l.push(r),l.push(65535),D.push(65535),A=D.length,B=2*A,z=2*Math.pow(Math.log(A)/Math.LN2,2),m=Math.log(z/2)/Math.LN2,x=2*A-z,i=[],w=[],n=[],o=I=0,M=D.length;M>I;o=++I){if(C=D[o],k=l[o],65535===C){i.push(0),w.push(0);break}if(E=c[C]["new"],C-E>=32768)for(i.push(0),w.push(2*(n.length+A-o)),d=J=C;k>=C?k>=J:J>=k;d=k>=C?++J:--J)n.push(c[d]["new"]);else i.push(E-C),w.push(0)}for(F.writeUInt16(3),F.writeUInt16(1),F.writeUInt32(12),F.writeUInt16(4),F.writeUInt16(16+8*A+2*n.length),F.writeUInt16(0),F.writeUInt16(B),F.writeUInt16(z),F.writeUInt16(m),F.writeUInt16(x),S=0,N=l.length;N>S;S++)d=l[S],F.writeUInt16(d);for(F.writeUInt16(0),T=0,O=D.length;O>T;T++)d=D[T], +F.writeUInt16(d);for(V=0,P=i.length;P>V;V++)h=i[V],F.writeUInt16(h);for(W=0,Q=w.length;Q>W;W++)u=w[W],F.writeUInt16(u);for(X=0,R=n.length;R>X;X++)p=n[X],F.writeUInt16(p);return y={charMap:c,subtable:F.data,maxGlyphID:t+1}}},a}(),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="hmtx",c.prototype.parse=function(a){var b,c,d,e,f,g,h,i;for(a.pos=this.offset,this.metrics=[],b=f=0,h=this.file.hhea.numberOfMetrics;h>=0?h>f:f>h;b=h>=0?++f:--f)this.metrics.push({advance:a.readUInt16(),lsb:a.readInt16()});for(d=this.file.maxp.numGlyphs-this.file.hhea.numberOfMetrics,this.leftSideBearings=function(){var c,e;for(e=[],b=c=0;d>=0?d>c:c>d;b=d>=0?++c:--c)e.push(a.readInt16());return e}(),this.widths=function(){var a,b,c,d;for(c=this.metrics,d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(e.advance);return d}.call(this),c=this.widths[this.widths.length-1],i=[],b=g=0;d>=0?d>g:g>d;b=d>=0?++g:--g)i.push(this.widths.push(c));return i},c.prototype.forGlyph=function(a){var b;return a in this.metrics?this.metrics[a]:b={advance:this.metrics[this.metrics.length-1].advance,lsb:this.leftSideBearings[a-this.metrics.length]}},c.prototype.encode=function(a){var c,d,e,f,g;for(e=new b,f=0,g=a.length;g>f;f++)c=a[f],d=this.forGlyph(c),e.writeUInt16(d.advance),e.writeUInt16(d.lsb);return e.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="hhea",c.prototype.parse=function(a){return a.pos=this.offset,this.version=a.readInt(),this.ascender=a.readShort(),this.decender=a.readShort(),this.lineGap=a.readShort(),this.advanceWidthMax=a.readShort(),this.minLeftSideBearing=a.readShort(),this.minRightSideBearing=a.readShort(),this.xMaxExtent=a.readShort(),this.caretSlopeRise=a.readShort(),this.caretSlopeRun=a.readShort(),this.caretOffset=a.readShort(),a.pos+=8,this.metricDataFormat=a.readShort(),this.numberOfMetrics=a.readUInt16()},c.prototype.encode=function(a){var c,d,e,f;for(d=new b,d.writeInt(this.version),d.writeShort(this.ascender),d.writeShort(this.decender),d.writeShort(this.lineGap),d.writeShort(this.advanceWidthMax),d.writeShort(this.minLeftSideBearing),d.writeShort(this.minRightSideBearing),d.writeShort(this.xMaxExtent),d.writeShort(this.caretSlopeRise),d.writeShort(this.caretSlopeRun),d.writeShort(this.caretOffset),c=e=0,f=8;f>=0?f>e:e>f;c=f>=0?++e:--e)d.writeByte(0);return d.writeShort(this.metricDataFormat),d.writeUInt16(a.length),d.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="maxp",c.prototype.parse=function(a){return a.pos=this.offset,this.version=a.readInt(),this.numGlyphs=a.readUInt16(),this.maxPoints=a.readUInt16(),this.maxContours=a.readUInt16(),this.maxCompositePoints=a.readUInt16(),this.maxComponentContours=a.readUInt16(),this.maxZones=a.readUInt16(),this.maxTwilightPoints=a.readUInt16(),this.maxStorage=a.readUInt16(),this.maxFunctionDefs=a.readUInt16(),this.maxInstructionDefs=a.readUInt16(),this.maxStackElements=a.readUInt16(),this.maxSizeOfInstructions=a.readUInt16(),this.maxComponentElements=a.readUInt16(),this.maxComponentDepth=a.readUInt16()},c.prototype.encode=function(a){var c;return c=new b,c.writeInt(this.version),c.writeUInt16(a.length),c.writeUInt16(this.maxPoints),c.writeUInt16(this.maxContours),c.writeUInt16(this.maxCompositePoints),c.writeUInt16(this.maxComponentContours),c.writeUInt16(this.maxZones),c.writeUInt16(this.maxTwilightPoints),c.writeUInt16(this.maxStorage),c.writeUInt16(this.maxFunctionDefs),c.writeUInt16(this.maxInstructionDefs),c.writeUInt16(this.maxStackElements),c.writeUInt16(this.maxSizeOfInstructions),c.writeUInt16(this.maxComponentElements),c.writeUInt16(this.maxComponentDepth),c.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}var d;return g(c,a),c.prototype.tag="post",c.prototype.parse=function(a){var b,c,d,e,f;switch(a.pos=this.offset,this.format=a.readInt(),this.italicAngle=a.readInt(),this.underlinePosition=a.readShort(),this.underlineThickness=a.readShort(),this.isFixedPitch=a.readInt(),this.minMemType42=a.readInt(),this.maxMemType42=a.readInt(),this.minMemType1=a.readInt(),this.maxMemType1=a.readInt(),this.format){case 65536:break;case 131072:for(d=a.readUInt16(),this.glyphNameIndex=[],b=e=0;d>=0?d>e:e>d;b=d>=0?++e:--e)this.glyphNameIndex.push(a.readUInt16());for(this.names=[],f=[];a.pos=0?d>c:c>d;b=d>=0?++c:--c)e.push(a.readUInt32());return e}.call(this)}},c.prototype.glyphFor=function(a){var b;switch(this.format){case 65536:return d[a]||".notdef";case 131072:return b=this.glyphNameIndex[a],257>=b?d[b]:this.names[b-258]||".notdef";case 151552:return d[a+this.offsets[a]]||".notdef";case 196608:return".notdef";case 262144:return this.map[a]||65535}},c.prototype.encode=function(a){var c,e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(!this.exists)return null;if(i=this.raw(),196608===this.format)return i;for(l=new b(i.slice(0,32)),l.writeUInt32(131072),l.pos=32,f=[],k=[],m=0,p=a.length;p>m;m++)c=a[m],h=this.glyphFor(c),g=d.indexOf(h),-1!==g?f.push(g):(f.push(257+k.length),k.push(h));for(l.writeUInt16(Object.keys(a).length),n=0,q=f.length;q>n;n++)e=f[n],l.writeUInt16(e);for(o=0,r=k.length;r>o;o++)j=k[o],l.writeByte(j.length),l.writeString(j);return l.data},d=".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\nzero one two three four five six seven eight nine colon semicolon less equal greater\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\nbracketleft backslash bracketright asciicircum underscore grave\na b c d e f g h i j k l m n o p q r s t u v w x y z\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\nsterling section bullet paragraph germandbls registered copyright trademark acute\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\nCacute cacute Ccaron ccaron dcroat".split(/\s+/g),c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e={}.hasOwnProperty,f=function(a,b){function c(){this.constructor=a}for(var d in b)e.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};d=c(76),b=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}return f(b,a),b.prototype.tag="OS/2",b.prototype.parse=function(a){var b;return a.pos=this.offset,this.version=a.readUInt16(),this.averageCharWidth=a.readShort(),this.weightClass=a.readUInt16(),this.widthClass=a.readUInt16(),this.type=a.readShort(),this.ySubscriptXSize=a.readShort(),this.ySubscriptYSize=a.readShort(),this.ySubscriptXOffset=a.readShort(),this.ySubscriptYOffset=a.readShort(),this.ySuperscriptXSize=a.readShort(),this.ySuperscriptYSize=a.readShort(),this.ySuperscriptXOffset=a.readShort(),this.ySuperscriptYOffset=a.readShort(),this.yStrikeoutSize=a.readShort(),this.yStrikeoutPosition=a.readShort(),this.familyClass=a.readShort(),this.panose=function(){var c,d;for(d=[],b=c=0;10>c;b=++c)d.push(a.readByte());return d}(),this.charRange=function(){var c,d;for(d=[],b=c=0;4>c;b=++c)d.push(a.readInt());return d}(),this.vendorID=a.readString(4),this.selection=a.readShort(),this.firstCharIndex=a.readShort(),this.lastCharIndex=a.readShort(),this.version>0&&(this.ascent=a.readShort(),this.descent=a.readShort(),this.lineGap=a.readShort(),this.winAscent=a.readShort(),this.winDescent=a.readShort(),this.codePageRange=function(){var c,d;for(d=[],b=c=0;2>c;b=++c)d.push(a.readInt());return d}(),this.version>1)?(this.xHeight=a.readShort(),this.capHeight=a.readShort(),this.defaultChar=a.readShort(),this.breakChar=a.readShort(),this.maxContext=a.readShort()):void 0},b.prototype.encode=function(){return this.raw()},b}(d),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="loca",c.prototype.parse=function(a){var b,c;return a.pos=this.offset,b=this.file.head.indexToLocFormat,0===b?this.offsets=function(){var b,d,e;for(e=[],c=b=0,d=this.length;d>b;c=b+=2)e.push(2*a.readUInt16());return e}.call(this):this.offsets=function(){var b,d,e;for(e=[],c=b=0,d=this.length;d>b;c=b+=4)e.push(a.readUInt32());return e}.call(this)},c.prototype.indexOf=function(a){return this.offsets[a]},c.prototype.lengthOf=function(a){return this.offsets[a+1]-this.offsets[a]},c.prototype.encode=function(a){var c,d,e,f,g,h,i,j,k,l,m;for(f=new b,g=0,j=a.length;j>g;g++)if(d=a[g],d>65535){for(m=this.offsets,h=0,k=m.length;k>h;h++)c=m[h],f.writeUInt32(c);return e={format:1,table:f.data}}for(i=0,l=a.length;l>i;i++)c=a[i],f.writeUInt16(c/2);return e={format:0,table:f.data}},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f,g,h={}.hasOwnProperty,i=function(a,b){function c(){this.constructor=a}for(var d in b)h.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},j=[].slice;g=c(76),d=c(72),e=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return i(c,a),c.prototype.tag="glyf",c.prototype.parse=function(a){return this.cache={}},c.prototype.glyphFor=function(a){var c,e,g,h,i,j,k,l,m,n;return a in this.cache?this.cache[a]:(h=this.file.loca,c=this.file.contents,e=h.indexOf(a),g=h.lengthOf(a),0===g?this.cache[a]=null:(c.pos=this.offset+e,j=new d(c.read(g)),i=j.readShort(),l=j.readShort(),n=j.readShort(),k=j.readShort(),m=j.readShort(),-1===i?this.cache[a]=new b(j,l,n,k,m):this.cache[a]=new f(j,i,l,n,k,m),this.cache[a]))},c.prototype.encode=function(a,b,c){var d,e,f,g,h,i;for(g=[],f=[],h=0,i=b.length;i>h;h++)e=b[h],d=a[e],f.push(g.length),d&&(g=g.concat(d.encode(c)));return f.push(g.length),{table:g,offsets:f}},c}(g),f=function(){function a(a,b,c,d,e,f){this.raw=a,this.numberOfContours=b,this.xMin=c,this.yMin=d,this.xMax=e,this.yMax=f,this.compound=!1}return a.prototype.encode=function(){return this.raw.data},a}(),b=function(){function a(a,d,h,i,j){var k,l;for(this.raw=a,this.xMin=d,this.yMin=h,this.xMax=i,this.yMax=j,this.compound=!0,this.glyphIDs=[],this.glyphOffsets=[],k=this.raw;;){if(l=k.readShort(),this.glyphOffsets.push(k.pos),this.glyphIDs.push(k.readShort()),!(l&c))break;l&b?k.pos+=4:k.pos+=2,l&g?k.pos+=8:l&e?k.pos+=4:l&f&&(k.pos+=2)}}var b,c,e,f,g,h;return b=1,f=8,c=32,e=64,g=128,h=256,a.prototype.encode=function(a){var b,c,e,f,g,h;for(e=new d(j.call(this.raw.data)),h=this.glyphIDs,b=f=0,g=h.length;g>f;b=++f)c=h[b],e.pos=this.glyphOffsets[b],e.writeShort(a[c]);return e.data},a}(),a.exports=e}).call(this)},function(a,b,c){(function(){var b,d;d=c(44),b=function(){function a(a){var b,d;this.contents=a,this.attributes={},this.glyphWidths={},this.boundingBoxes={},this.parse(),this.charWidths=function(){var a,b;for(b=[],d=a=0;255>=a;d=++a)b.push(this.glyphWidths[c[d]]);return b}.call(this),this.bbox=function(){var a,c,d,e;for(d=this.attributes.FontBBox.split(/\s+/),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(+b);return e}.call(this),this.ascender=+(this.attributes.Ascender||0),this.decender=+(this.attributes.Descender||0),this.lineGap=this.bbox[3]-this.bbox[1]-(this.ascender-this.decender)}var b,c;return a.open=function(b){return new a(d.readFileSync(b,"utf8"))},a.prototype.parse=function(){var a,b,c,d,e,f,g,h,i,j;for(f="",j=this.contents.split("\n"),h=0,i=j.length;i>h;h++)if(c=j[h],d=c.match(/^Start(\w+)/))f=d[1];else if(d=c.match(/^End(\w+)/))f="";else switch(f){case"FontMetrics":d=c.match(/(^\w+)\s+(.*)/),b=d[1],g=d[2],(a=this.attributes[b])?(Array.isArray(a)||(a=this.attributes[b]=[a]),a.push(g)):this.attributes[b]=g;break;case"CharMetrics":if(!/^CH?\s/.test(c))continue;e=c.match(/\bN\s+(\.?\w+)\s*;/)[1],this.glyphWidths[e]=+c.match(/\bWX\s+(\d+)\s*;/)[1]}},b={402:131,8211:150,8212:151,8216:145,8217:146,8218:130,8220:147,8221:148,8222:132,8224:134,8225:135,8226:149,8230:133,8364:128,8240:137,8249:139,8250:155,710:136,8482:153,338:140,339:156,732:152,352:138,353:154,376:159,381:142,382:158},a.prototype.encodeText=function(a){var c,d,e,f,g;for(e="",d=f=0,g=a.length;g>=0?g>f:f>g;d=g>=0?++f:--f)c=a.charCodeAt(d),c=b[c]||c,e+=String.fromCharCode(c);return e},a.prototype.characterToGlyph=function(a){return c[b[a]||a]},a.prototype.widthOfGlyph=function(a){return this.glyphWidths[a]},c=".notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n\nspace exclam quotedbl numbersign\ndollar percent ampersand quotesingle\nparenleft parenright asterisk plus\ncomma hyphen period slash\nzero one two three\nfour five six seven\neight nine colon semicolon\nless equal greater question\n\nat A B C\nD E F G\nH I J K\nL M N O\nP Q R S\nT U V W\nX Y Z bracketleft\nbackslash bracketright asciicircum underscore\n\ngrave a b c\nd e f g\nh i j k\nl m n o\np q r s\nt u v w\nx y z braceleft\nbar braceright asciitilde .notdef\n\nEuro .notdef quotesinglbase florin\nquotedblbase ellipsis dagger daggerdbl\ncircumflex perthousand Scaron guilsinglleft\nOE .notdef Zcaron .notdef\n.notdef quoteleft quoteright quotedblleft\nquotedblright bullet endash emdash\ntilde trademark scaron guilsinglright\noe .notdef zcaron ydieresis\n\nspace exclamdown cent sterling\ncurrency yen brokenbar section\ndieresis copyright ordfeminine guillemotleft\nlogicalnot hyphen registered macron\ndegree plusminus twosuperior threesuperior\nacute mu paragraph periodcentered\ncedilla onesuperior ordmasculine guillemotright\nonequarter onehalf threequarters questiondown\n\nAgrave Aacute Acircumflex Atilde\nAdieresis Aring AE Ccedilla\nEgrave Eacute Ecircumflex Edieresis\nIgrave Iacute Icircumflex Idieresis\nEth Ntilde Ograve Oacute\nOcircumflex Otilde Odieresis multiply\nOslash Ugrave Uacute Ucircumflex\nUdieresis Yacute Thorn germandbls\n\nagrave aacute acircumflex atilde\nadieresis aring ae ccedilla\negrave eacute ecircumflex edieresis\nigrave iacute icircumflex idieresis\neth ntilde ograve oacute\nocircumflex otilde odieresis divide\noslash ugrave uacute ucircumflex\nudieresis yacute thorn ydieresis".split(/\s+/),a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=c(79),e=c(77),d=function(){function a(a){this.font=a,this.subset={},this.unicodes={},this.next=33}return a.prototype.use=function(a){var b,c,d;{if("string"!=typeof a)return this.unicodes[a]?void 0:(this.subset[this.next]=a,this.unicodes[a]=this.next++);for(b=c=0,d=a.length;d>=0?d>c:c>d;b=d>=0?++c:--c)this.use(a.charCodeAt(b))}},a.prototype.encodeText=function(a){var b,c,d,e,f;for(d="",c=e=0,f=a.length;f>=0?f>e:e>f;c=f>=0?++e:--e)b=this.unicodes[a.charCodeAt(c)],d+=String.fromCharCode(b);return d},a.prototype.generateCmap=function(){var a,b,c,d,e;d=this.font.cmap.tables[0].codeMap,a={},e=this.subset;for(b in e)c=e[b],a[b]=d[c];return a},a.prototype.glyphIDs=function(){var a,b,c,d,e,g;d=this.font.cmap.tables[0].codeMap,a=[0],g=this.subset;for(b in g)c=g[b],e=d[c],null!=e&&f.call(a,e)<0&&a.push(e);return a.sort()},a.prototype.glyphsFor=function(a){var b,c,d,e,f,g,h;for(d={},f=0,g=a.length;g>f;f++)e=a[f],d[e]=this.font.glyf.glyphFor(e);b=[];for(e in d)c=d[e],(null!=c?c.compound:void 0)&&b.push.apply(b,c.glyphIDs);if(b.length>0){h=this.glyphsFor(b);for(e in h)c=h[e],d[e]=c}return d},a.prototype.encode=function(){var a,c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s;a=b.encode(this.generateCmap(),"unicode"),f=this.glyphsFor(this.glyphIDs()),n={0:0},r=a.charMap;for(c in r)h=r[c],n[h.old]=h["new"];m=a.maxGlyphID;for(o in f)o in n||(n[o]=m++);k=e.invert(n),l=Object.keys(k).sort(function(a,b){return a-b}),p=function(){var a,b,c;for(c=[],a=0,b=l.length;b>a;a++)g=l[a],c.push(k[g]);return c}(),d=this.font.glyf.encode(f,p,n),i=this.font.loca.encode(d.offsets),j=this.font.name.encode(),this.postscriptName=j.postscriptName,this.cmap={},s=a.charMap;for(c in s)h=s[c],this.cmap[c]=h.old;return q={cmap:a.table,glyf:d.table,loca:i.table,hmtx:this.font.hmtx.encode(p),hhea:this.font.hhea.encode(p),maxp:this.font.maxp.encode(p),post:this.font.post.encode(p),name:j.table,head:this.font.head.encode(i)},this.font.os2.exists&&(q["OS/2"]=this.font.os2.raw()),this.font.directory.encode(q)},a}(),a.exports=d}).call(this)},function(a,b,c){(function(){var b;b=c(90),a.exports={initText:function(){return this.x=0,this.y=0,this._lineGap=0},lineGap:function(a){return this._lineGap=a,this},moveDown:function(a){return null==a&&(a=1),this.y+=this.currentLineHeight(!0)*a+this._lineGap,this},moveUp:function(a){return null==a&&(a=1),this.y-=this.currentLineHeight(!0)*a+this._lineGap,this},_text:function(a,c,d,e,f){var g,h,i,j,k;if(e=this._initOptions(c,d,e),a=""+a,e.wordSpacing&&(a=a.replace(/\s{2,}/g," ")),e.width)h=this._wrapper,h||(h=new b(this,e),h.on("line",f)),this._wrapper=e.continued?h:null,this._textOptions=e.continued?e:null,h.wrap(a,e);else for(k=a.split("\n"),i=0,j=k.length;j>i;i++)g=k[i],f(g,e);return this},text:function(a,b,c,d){return this._text(a,b,c,d,this._line.bind(this))},widthOfString:function(a,b){return null==b&&(b={}),this._font.widthOfString(a,this._fontSize)+(b.characterSpacing||0)*(a.length-1)},heightOfString:function(a,b){var c,d,e,f;return null==b&&(b={}),e=this.x,f=this.y,b=this._initOptions(b),b.height=1/0,d=b.lineGap||this._lineGap||0,this._text(a,this.x,this.y,b,function(a){return function(b,c){return a.y+=a.currentLineHeight(!0)+d}}(this)),c=this.y-f,this.x=e,this.y=f,c},list:function(a,c,d,e,f){var g,h,i,j,k,l,m,n;return e=this._initOptions(c,d,e),n=Math.round(this._font.ascender/1e3*this._fontSize/3),i=e.textIndent||5*n,j=e.bulletIndent||8*n,l=1,k=[],m=[],g=function(a){var b,c,d,e,f;for(f=[],b=d=0,e=a.length;e>d;b=++d)c=a[b],Array.isArray(c)?(l++,g(c),f.push(l--)):(k.push(c),f.push(m.push(l)));return f},g(a),f=new b(this,e),f.on("line",this._line.bind(this)),l=1,h=0,f.on("firstLine",function(a){return function(){var b,c;return(c=m[h++])!==l&&(b=j*(c-l),a.x+=b,f.lineWidth-=b,l=c),a.circle(a.x-i+n,a.y+n+n/2,n),a.fill()}}(this)),f.on("sectionStart",function(a){return function(){var b;return b=i+j*(l-1),a.x+=b,f.lineWidth-=b}}(this)),f.on("sectionEnd",function(a){return function(){var b;return b=i+j*(l-1),a.x-=b,f.lineWidth+=b}}(this)),f.wrap(k.join("\n"),e),this},_initOptions:function(a,b,c){var d,e,f,g;if(null==a&&(a={}),null==c&&(c={}),"object"==typeof a&&(c=a,a=null),c=function(){var a,b,d;b={};for(a in c)d=c[a],b[a]=d;return b}(),this._textOptions){g=this._textOptions;for(d in g)f=g[d],"continued"!==d&&null==c[d]&&(c[d]=f)}return null!=a&&(this.x=a),null!=b&&(this.y=b),c.lineBreak!==!1&&(e=this.page.margins,null==c.width&&(c.width=this.page.width-this.x-e.right)),c.columns||(c.columns=0),null==c.columnGap&&(c.columnGap=18),c},_line:function(a,b,c){var d;return null==b&&(b={}),this._fragment(a,this.x,this.y,b),d=b.lineGap||this._lineGap||0,c?this.y+=this.currentLineHeight(!0)+d:this.x+=this.widthOfString(a)},_fragment:function(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(a=""+a,0!==a.length){if(e=d.align||"left",r=d.wordSpacing||0,f=d.characterSpacing||0,d.width)switch(e){case"right":p=this.widthOfString(a.replace(/\s+$/,""),d),b+=d.lineWidth-p;break;case"center":b+=d.lineWidth/2-d.textWidth/2;break;case"justify":s=a.trim().split(/\s+/),p=this.widthOfString(a.replace(/\s+/g,""),d),o=this.widthOfString(" ")+f,r=Math.max(0,(d.lineWidth-p)/Math.max(1,s.length-1)-o)}if(n=d.textWidth+r*(d.wordCount-1)+f*(a.length-1),d.link&&this.link(b,c,n,this.currentLineHeight(),d.link),(d.underline||d.strike)&&(this.save(),d.stroke||this.strokeColor.apply(this,this._fillColor),k=this._fontSize<10?.5:Math.floor(this._fontSize/10),this.lineWidth(k),h=d.underline?1:2,l=c+this.currentLineHeight()/h,d.underline&&(l-=k),this.moveTo(b,l),this.lineTo(b+n,l),this.stroke(),this.restore()),this.save(),this.transform(1,0,0,-1,0,this.page.height),c=this.page.height-c-this._font.ascender/1e3*this._fontSize,null==(t=this.page.fonts)[w=this._font.id]&&(t[w]=this._font.ref()),this._font.use(a),this.addContent("BT"),this.addContent(""+b+" "+c+" Td"),this.addContent("/"+this._font.id+" "+this._fontSize+" Tf"),m=d.fill&&d.stroke?2:d.stroke?1:0,m&&this.addContent(""+m+" Tr"),f&&this.addContent(""+f+" Tc"),r){for(s=a.trim().split(/\s+/),r+=this.widthOfString(" ")+f,r*=1e3/this._fontSize,g=[],u=0,v=s.length;v>u;u++)q=s[u],i=this._font.encode(q),i=function(){var a,b,c;for(c=[],j=a=0,b=i.length;b>a;j=a+=1)c.push(i.charCodeAt(j).toString(16));return c}().join(""),g.push("<"+i+"> "+-r);this.addContent("["+g.join(" ")+"] TJ")}else i=this._font.encode(a),i=function(){var a,b,c;for(c=[],j=a=0,b=i.length;b>a;j=a+=1)c.push(i.charCodeAt(j).toString(16));return c}().join(""),this.addContent("<"+i+"> Tj");return this.addContent("ET"),this.restore()}}}}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};b=c(26).EventEmitter,d=c(91),e=function(a){function b(a,b){var c;this.document=a,this.indent=b.indent||0,this.characterSpacing=b.characterSpacing||0,this.wordSpacing=0===b.wordSpacing,this.columns=b.columns||1,this.columnGap=null!=(c=b.columnGap)?c:18,this.lineWidth=(b.width-this.columnGap*(this.columns-1))/this.columns,this.spaceLeft=this.lineWidth,this.startX=this.document.x,this.startY=this.document.y,this.column=1,this.ellipsis=b.ellipsis,this.continuedX=0,null!=b.height?(this.height=b.height,this.maxY=this.startY+b.height):this.maxY=this.document.page.maxY(),this.on("firstLine",function(a){return function(b){var c;return c=a.continuedX||a.indent,a.document.x+=c,a.lineWidth-=c,a.once("line",function(){return a.document.x-=c,a.lineWidth+=c,b.continued&&!a.continuedX&&(a.continuedX=a.indent),b.continued?void 0:a.continuedX=0})}}(this)),this.on("lastLine",function(a){return function(b){var c;return c=b.align,"justify"===c&&(b.align="left"),a.lastLine=!0,a.once("line",function(){return a.document.y+=b.paragraphGap||0,b.align=c,a.lastLine=!1})}}(this))}return g(b,a),b.prototype.wordWidth=function(a){return this.document.widthOfString(a,this)+this.characterSpacing+this.wordSpacing},b.prototype.eachWord=function(a,b){var c,e,f,g,h,i,j,k,l,m;for(e=new d(a),h=null,m={};c=e.nextBreak();){if(l=a.slice((null!=h?h.position:void 0)||0,c.position),k=null!=m[l]?m[l]:m[l]=this.wordWidth(l),k>this.lineWidth+this.continuedX)for(i=h,f={};l.length;){for(g=l.length;k>this.spaceLeft;)k=this.wordWidth(l.slice(0,--g));if(f.required=gthis.maxY||f>this.maxY)&&this.nextSection(),c="",g=0,h=0,e=0,i=this.document.y,d=function(a){return function(){return b.textWidth=g+a.wordSpacing*(h-1),b.wordCount=h,b.lineWidth=a.lineWidth,i=a.document.y,a.emit("line",c,b,a),e++}}(this),this.emit("sectionStart",b,this),this.eachWord(a,function(a){return function(e,f,i,j){var k,l;if((null==j||j.required)&&(a.emit("firstLine",b,a),a.spaceLeft=a.lineWidth),f<=a.spaceLeft&&(c+=e,g+=f,h++),i.required||f>a.spaceLeft){if(i.required&&a.emit("lastLine",b,a),k=a.document.currentLineHeight(!0),null!=a.height&&a.ellipsis&&a.document.y+2*k>a.maxY&&a.column>=a.columns){for(a.ellipsis===!0&&(a.ellipsis="…"),c=c.replace(/\s+$/,""),g=a.wordWidth(c+a.ellipsis);g>a.lineWidth;)c=c.slice(0,-1).replace(/\s+$/,""),g=a.wordWidth(c+a.ellipsis);c+=a.ellipsis}return d(),a.document.y+k>a.maxY&&(l=a.nextSection(),!l)?(h=0,c="",!1):i.required?(f>a.spaceLeft&&(c=e,g=f,h=1,d()),a.spaceLeft=a.lineWidth,c="",g=0,h=0):(a.spaceLeft=a.lineWidth-f,c=e,g=f,h=1)}return a.spaceLeft-=f}}(this)),h>0&&(this.emit("lastLine",b,this),d()),this.emit("sectionEnd",b,this),b.continued===!0?(e>1&&(this.continuedX=0),this.continuedX+=b.textWidth,this.document.y=i):this.document.x=this.startX},b.prototype.nextSection=function(a){var b;if(this.emit("sectionEnd",a,this),++this.column>this.columns){if(null!=this.height)return!1;this.document.addPage(),this.column=1,this.startY=this.document.page.margins.top,this.maxY=this.document.page.maxY(),this.document.x=this.startX,this.document._fillColor&&(b=this.document).fillColor.apply(b,this.document._fillColor),this.emit("pageBreak",a,this)}else this.document.x+=this.lineWidth+this.columnGap,this.document.y=this.startY,this.emit("columnBreak",a,this);return this.emit("sectionStart",a,this),!0},b}(b),a.exports=e}).call(this)},function(a,b,c){(function(){var b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D;w=c(92),A=new w(c(93)),C=c(94),f=C.BK,k=C.CR,o=C.LF,q=C.NL,g=C.CB,e=C.BA,v=C.SP,x=C.WJ,v=C.SP,f=C.BK,o=C.LF,q=C.NL,b=C.AI,d=C.AL,t=C.SA,u=C.SG,y=C.XX,i=C.CJ,m=C.ID,r=C.NS,z=C.characterClasses,D=c(95),l=D.DI_BRK,n=D.IN_BRK,h=D.CI_BRK,j=D.CP_BRK,s=D.PR_BRK,B=D.pairTable,p=function(){function a(a){this.string=a,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null}var c,m,p;return a.prototype.nextCodePoint=function(){var a,b;return a=this.string.charCodeAt(this.pos++),b=this.string.charCodeAt(this.pos),a>=55296&&56319>=a&&b>=56320&&57343>=b?(this.pos++,1024*(a-55296)+(b-56320)+65536):a},m=function(a){switch(a){case b:return d;case t:case u:case y:return d;case i:return r;default:return a}},p=function(a){switch(a){case o:case q:return f;case g:return e;case v:return x;default:return a}},a.prototype.nextCharClass=function(a){return null==a&&(a=!1),m(A.get(this.nextCodePoint()))},c=function(){function a(a,b){this.position=a,this.required=null!=b?b:!1}return a}(),a.prototype.nextBreak=function(){var a,b,d;for(null==this.curClass&&(this.curClass=p(this.nextCharClass()));this.pos=this.string.length?this.lastPos>n,g=1<>p,k=1024>>p,h=l+k,r=h,q=32,f=r+q,c=1<a||a>1114111?this.errorValue:55296>a||a>56319&&65535>=a?(b=(this.data[a>>p]<=a?(b=(this.data[l+(a-55296>>p)]<>n)],b=this.data[b+(a>>p&i)],b=(b<h?(n=i,j=i/m):(j=g,n=g*m),"center"===f.align?c=c+i/2-n/2:"right"===f.align&&(c=c+i-n),"center"===f.valign?e=e+g/2-j/2:"bottom"===f.valign&&(e=e+g-j)),this.y===e&&(this.y+=j),this.save(),this.transform(n,0,0,-j,c,e+j),this.addContent("/"+l.label+" Do"),this.restore(),this}}}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(b){(function(){var d,e,f,g,h;h=c(44),d=c(72),e=c(98),g=c(99),f=function(){function a(){}return a.open=function(a,c){var d,f;if(b.isBuffer(a))d=a;else if(f=/^data:.+;base64,(.*)$/.exec(a))d=new b(f[1],"base64");else if(d=h.readFileSync(a),!d)return;if(255===d[0]&&216===d[1])return new e(d,c);if(137===d[0]&&"PNG"===d.toString("ascii",1,4))return new g(d,c);throw new Error("Unknown image format.")},a}(),a.exports=f}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(){var b,d,e=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};d=c(44),b=function(){function a(a,c){var d,f,g;if(this.data=a,this.label=c,65496!==this.data.readUInt16BE(0))throw"SOI not found in JPEG";for(g=2;g=0));)g+=this.data.readUInt16BE(g);if(e.call(b,f)<0)throw"Invalid JPEG.";g+=2,this.bits=this.data[g++],this.height=this.data.readUInt16BE(g),g+=2,this.width=this.data.readUInt16BE(g),g+=2,d=this.data[g++],this.colorSpace=function(){switch(d){case 1:return"DeviceGray";case 3:return"DeviceRGB";case 4:return"DeviceCMYK"}}(),this.obj=null}var b;return b=[65472,65473,65474,65475,65477,65478,65479,65480,65481,65482,65483,65484,65485,65486,65487],a.prototype.embed=function(a){return this.obj?void 0:(this.obj=a.ref({Type:"XObject",Subtype:"Image",BitsPerComponent:this.bits,Width:this.width,Height:this.height,ColorSpace:this.colorSpace,Filter:"DCTDecode"}),"DeviceCMYK"===this.colorSpace&&(this.obj.data.Decode=[1,0,1,0,1,0,1,0]),this.obj.end(this.data),this.data=null)},a}(),a.exports=b}).call(this)},function(a,b,c){(function(b){(function(){var d,e,f;f=c(47),d=c(100),e=function(){function a(a,b){this.label=b,this.image=new d(a),this.width=this.image.width,this.height=this.image.height,this.imgData=this.image.imgData,this.obj=null}return a.prototype.embed=function(a){var c,d,e,f,g,h,i,j;if(this.document=a,!this.obj){if(this.obj=a.ref({Type:"XObject",Subtype:"Image",BitsPerComponent:this.image.bits,Width:this.width,Height:this.height,Filter:"FlateDecode"}),this.image.hasAlphaChannel||(e=a.ref({Predictor:15,Colors:this.image.colors,BitsPerComponent:this.image.bits,Columns:this.width}),this.obj.data.DecodeParms=e,e.end()),0===this.image.palette.length?this.obj.data.ColorSpace=this.image.colorSpace:(d=a.ref(),d.end(new b(this.image.palette)),this.obj.data.ColorSpace=["Indexed","DeviceRGB",this.image.palette.length/3-1,d]),this.image.transparency.grayscale)return g=this.image.transparency.greyscale,this.obj.data.Mask=[g,g];if(this.image.transparency.rgb){for(f=this.image.transparency.rgb,c=[],i=0,j=f.length;j>i;i++)h=f[i],c.push(h,h);return this.obj.data.Mask=c}return this.image.transparency.indexed?this.loadIndexedAlphaChannel():this.image.hasAlphaChannel?this.splitAlphaChannel():this.finalize()}},a.prototype.finalize=function(){var a;return this.alphaChannel&&(a=this.document.ref({Type:"XObject",Subtype:"Image",Height:this.height,Width:this.width,BitsPerComponent:8,Filter:"FlateDecode",ColorSpace:"DeviceGray",Decode:[0,1]}),a.end(this.alphaChannel),this.obj.data.SMask=a),this.obj.end(this.imgData),this.image=null,this.imgData=null},a.prototype.splitAlphaChannel=function(){return this.image.decodePixels(function(a){return function(c){var d,e,g,h,i,j,k,l,m;for(g=a.image.colors*a.image.bits/8,m=a.width*a.height,j=new b(m*g),e=new b(m),i=l=d=0,k=c.length;k>i;)j[l++]=c[i++],j[l++]=c[i++],j[l++]=c[i++],e[d++]=c[i++];return h=0,f.deflate(j,function(b,c){if(a.imgData=c,b)throw b;return 2===++h?a.finalize():void 0}),f.deflate(e,function(b,c){if(a.alphaChannel=c,b)throw b;return 2===++h?a.finalize():void 0})}}(this))},a.prototype.loadIndexedAlphaChannel=function(a){var c;return c=this.image.transparency.indexed,this.image.decodePixels(function(a){return function(d){var e,g,h,i,j;for(e=new b(a.width*a.height),g=0,h=i=0,j=d.length;j>i;h=i+=1)e[g++]=c[d[h]];return f.deflate(e,function(b,c){if(a.alphaChannel=c,b)throw b;return a.finalize()})}}(this))},a}(),a.exports=e}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(b){(function(){var d,e,f;e=c(44),f=c(47),a.exports=d=function(){function a(a){var c,d,e,f,g,h,i,j,k,l,m;for(this.data=a,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.text={};;){switch(c=this.readUInt32(),h=function(){var a,b;for(b=[],e=a=0;4>a;e=++a)b.push(String.fromCharCode(this.data[this.pos++]));return b}.call(this).join("")){case"IHDR":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case"PLTE":this.palette=this.read(c);break;case"IDAT":for(e=k=0;c>k;e=k+=1)this.imgData.push(this.data[this.pos++]);break;case"tRNS":switch(this.transparency={},this.colorType){case 3:if(this.transparency.indexed=this.read(c),i=255-this.transparency.indexed.length,i>0)for(e=l=0;i>=0?i>l:l>i;e=i>=0?++l:--l)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(c)[0];break;case 2:this.transparency.rgb=this.read(c)}break;case"tEXt":j=this.read(c),f=j.indexOf(0),g=String.fromCharCode.apply(String,j.slice(0,f)),this.text[g]=String.fromCharCode.apply(String,j.slice(f+1));break;case"IEND":return this.colors=function(){switch(this.colorType){case 0:case 3:case 4:return 1;case 2:case 6:return 3}}.call(this),this.hasAlphaChannel=4===(m=this.colorType)||6===m,d=this.colors+(this.hasAlphaChannel?1:0),this.pixelBitlength=this.bits*d,this.colorSpace=function(){switch(this.colors){case 1:return"DeviceGray";case 3:return"DeviceRGB"}}.call(this),void(this.imgData=new b(this.imgData));default:this.pos+=c}if(this.pos+=4,this.pos>this.data.length)throw new Error("Incomplete or corrupt PNG file")}}return a.decode=function(b,c){return e.readFile(b,function(b,d){var e;return e=new a(d),e.decode(function(a){return c(a)})})},a.load=function(b){var c;return c=e.readFileSync(b),new a(c)},a.prototype.read=function(a){var b,c,d;for(d=[],b=c=0;a>=0?a>c:c>a;b=a>=0?++c:--c)d.push(this.data[this.pos++]);return d},a.prototype.readUInt32=function(){var a,b,c,d;return a=this.data[this.pos++]<<24,b=this.data[this.pos++]<<16,c=this.data[this.pos++]<<8,d=this.data[this.pos++],a|b|c|d},a.prototype.readUInt16=function(){var a,b;return a=this.data[this.pos++]<<8,b=this.data[this.pos++],a|b},a.prototype.decodePixels=function(a){var c=this;return f.inflate(this.imgData,function(d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B;if(d)throw d;for(q=c.pixelBitlength/8,u=q*c.width,r=new b(u*c.height),k=e.length,t=0,s=0,g=0;k>s;){switch(e[s++]){case 0:for(i=x=0;u>x;i=x+=1)r[g++]=e[s++];break;case 1:for(i=y=0;u>y;i=y+=1)f=e[s++],j=q>i?0:r[g-q],r[g++]=(f+j)%256;break;case 2:for(i=z=0;u>z;i=z+=1)f=e[s++],h=(i-i%q)/q,v=t&&r[(t-1)*u+h*q+i%q],r[g++]=(v+f)%256;break;case 3:for(i=A=0;u>A;i=A+=1)f=e[s++],h=(i-i%q)/q,j=q>i?0:r[g-q],v=t&&r[(t-1)*u+h*q+i%q],r[g++]=(f+Math.floor((j+v)/2))%256;break;case 4:for(i=B=0;u>B;i=B+=1)f=e[s++],h=(i-i%q)/q,j=q>i?0:r[g-q],0===t?v=w=0:(v=r[(t-1)*u+h*q+i%q],w=h&&r[(t-1)*u+(h-1)*q+i%q]),l=j+v-w,m=Math.abs(l-j),o=Math.abs(l-v),p=Math.abs(l-w),n=o>=m&&p>=m?j:p>=o?v:w,r[g++]=(f+n)%256;break;default:throw new Error("Invalid filter algorithm: "+e[s-1])}t++}return a(r)})},a.prototype.decodePalette=function(){var a,c,d,e,f,g,h,i,j,k;for(e=this.palette,h=this.transparency.indexed||[],g=new b(h.length+e.length),f=0,d=e.length,a=0,c=i=0,j=e.length;j>i;c=i+=3)g[f++]=e[c],g[f++]=e[c+1],g[f++]=e[c+2],g[f++]=null!=(k=h[a++])?k:255;return g},a.prototype.copyToImageData=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;if(d=this.colors,k=null,c=this.hasAlphaChannel,this.palette.length&&(k=null!=(m=this._decodedPalette)?m:this._decodedPalette=this.decodePalette(),d=4,c=!0),e=(null!=a?a.data:void 0)||a,j=e.length,g=k||b,f=h=0,1===d)for(;j>f;)i=k?4*b[f/4]:h,l=g[i++],e[f++]=l,e[f++]=l,e[f++]=l,e[f++]=c?g[i++]:255,h=i;else for(;j>f;)i=k?4*b[f/4]:h,e[f++]=g[i++],e[f++]=g[i++],e[f++]=g[i++],e[f++]=c?g[i++]:255,h=i},a.prototype.decode=function(a){var c,d=this;return c=new b(this.width*this.height*4),this.decodePixels(function(b){return d.copyToImageData(c,b),a(c)})},a}()}).call(this)}).call(b,c(2).Buffer)},function(a,b){(function(){a.exports={annotate:function(a,b,c,d,e){var f,g,h;e.Type="Annot",e.Rect=this._convertRect(a,b,c,d),e.Border=[0,0,0],"Link"!==e.Subtype&&null==e.C&&(e.C=this._normalizeColor(e.color||[0,0,0])),delete e.color,"string"==typeof e.Dest&&(e.Dest=new String(e.Dest));for(f in e)h=e[f],e[f[0].toUpperCase()+f.slice(1)]=h;return g=this.ref(e),this.page.annotations.push(g),g.end(),this},note:function(a,b,c,d,e,f){return null==f&&(f={}),f.Subtype="Text",f.Contents=new String(e),f.Name="Comment",null==f.color&&(f.color=[243,223,92]),this.annotate(a,b,c,d,f)},link:function(a,b,c,d,e,f){return null==f&&(f={}),f.Subtype="Link",f.A=this.ref({S:"URI",URI:new String(e)}),f.A.end(),this.annotate(a,b,c,d,f)},_markup:function(a,b,c,d,e){var f,g,h,i,j;return null==e&&(e={}),j=this._convertRect(a,b,c,d),f=j[0],h=j[1],g=j[2],i=j[3],e.QuadPoints=[f,i,g,i,f,h,g,h],e.Contents=new String,this.annotate(a,b,c,d,e)},highlight:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Highlight",null==e.color&&(e.color=[241,238,148]),this._markup(a,b,c,d,e)},underline:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Underline",this._markup(a,b,c,d,e)},strike:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="StrikeOut",this._markup(a,b,c,d,e)},lineAnnotation:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Line",e.Contents=new String,e.L=[a,this.page.height-b,c,this.page.height-d],this.annotate(a,b,c,d,e)},rectAnnotation:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Square",e.Contents=new String,this.annotate(a,b,c,d,e)},ellipseAnnotation:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Circle",e.Contents=new String,this.annotate(a,b,c,d,e)},textAnnotation:function(a,b,c,d,e,f){return null==f&&(f={}),f.Subtype="FreeText",f.Contents=new String(e),f.DA=new String,this.annotate(a,b,c,d,f)},_convertRect:function(a,b,c,d){var e,f,g,h,i,j,k,l,m;return l=b,b+=d,k=a+c,m=this._ctm,e=m[0],f=m[1],g=m[2],h=m[3],i=m[4],j=m[5],a=e*a+g*b+i,b=f*a+h*b+j,k=e*k+g*l+i,l=f*k+h*l+j,[a,b,k,l]}}}).call(this)},function(a,b){a.exports={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],EXECUTIVE:[521.86,756],FOLIO:[612,936],LEGAL:[612,1008],LETTER:[612,792],TABLOID:[792,1224]}},function(a,b,c){(function(b){"use strict";function d(a,b){this.pdfDoc=a,this.imageDictionary=b||{}}var e=(c(24),c(97));d.prototype.measureImage=function(a){function c(a){var c=g.imageDictionary[a];if(!c)return a;var d=c.indexOf("base64,");if(0>d)throw"invalid image format, images dictionary should contain dataURL entries";return new b(c.substring(d+7),"base64")}var d,f,g=this;return this.pdfDoc._imageRegistry[a]?d=this.pdfDoc._imageRegistry[a]:(f="I"+ ++this.pdfDoc._imageCount,d=e.open(c(a),f),d.embed(this.pdfDoc),this.pdfDoc._imageRegistry[a]=d),{width:d.width,height:d.height}},a.exports=d}).call(b,c(2).Buffer)},function(a,b){"use strict";function c(a){for(var b=[],c=null,d=0,e=a.inlines.length;e>d;d++){var f=a.inlines[d],g=f.decoration;if(g){var h=f.decorationColor||f.color||"black",i=f.decorationStyle||"solid";g=Array.isArray(g)?g:[g];for(var j=0,k=g.length;k>j;j++){var l=g[j];c&&l===c.decoration&&i===c.decorationStyle&&h===c.decorationColor&&"lineThrough"!==l?c.inlines.push(f):(c={line:a,decoration:l,decorationColor:h,decorationStyle:i,inlines:[f]},b.push(c))}}else c=null}return b}function d(a,b,c,d){function e(){for(var b=0,c=0,d=a.inlines.length;d>c;c++){var e=a.inlines[c];b=e.fontSize>b?c:b}return a.inlines[b]}function f(){for(var b=0,c=0,d=a.inlines.length;d>c;c++)b+=a.inlines[c].width;return b}var g=a.inlines[0],h=e(),i=f(),j=a.line.getAscenderHeight(),k=h.font.ascender/1e3*h.fontSize,l=h.height,m=l-k,n=.5+.12*Math.floor(Math.max(h.fontSize-8,0)/2);switch(a.decoration){case"underline":c+=j+.45*m;break;case"overline":c+=j-.85*k;break;case"lineThrough":c+=j-.25*k;break;default:throw"Unkown decoration : "+a.decoration}if(d.save(),"double"===a.decorationStyle){var o=Math.max(.5,2*n);d.fillColor(a.decorationColor).rect(b+g.x,c-n/2,i,n/2).fill().rect(b+g.x,c+o-n/2,i,n/2).fill()}else if("dashed"===a.decorationStyle){var p=Math.ceil(i/6.8),q=b+g.x;d.rect(q,c,i,n).clip(),d.fillColor(a.decorationColor);for(var r=0;p>r;r++)d.rect(q,c-n/2,3.96,n).fill(),q+=6.8}else if("dotted"===a.decorationStyle){var s=Math.ceil(i/(3*n)),t=b+g.x;d.rect(t,c,i,n).clip(),d.fillColor(a.decorationColor);for(var u=0;s>u;u++)d.rect(t,c-n/2,n,n).fill(),t+=3*n}else if("wavy"===a.decorationStyle){var v=.7,w=1,x=Math.ceil(i/(2*v))+1,y=b+g.x-1;d.rect(b+g.x,c-w,i,c+w).clip(),d.lineWidth(.24),d.moveTo(y,c);for(var z=0;x>z;z++)d.bezierCurveTo(y+v,c-w,y+2*v,c-w,y+3*v,c).bezierCurveTo(y+4*v,c+w,y+5*v,c+w,y+6*v,c),y+=6*v;d.stroke(a.decorationColor)}else d.fillColor(a.decorationColor).rect(b+g.x,c-n/2,i,n).fill();d.restore()}function e(a,b,e,f){for(var g=c(a),h=0,i=g.length;i>h;h++)d(g[h],b,e,f)}function f(a,b,c,d){for(var e=a.getHeight(),f=0,g=a.inlines.length;g>f;f++){var h=a.inlines[f];h.background&&d.fillColor(h.background).rect(b+h.x,c,h.width,e).fill()}}a.exports={drawBackground:f,drawDecorations:e}},function(a,b,c){var d,e,f=f||function(a){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var b=a.document,c=function(){return a.URL||a.webkitURL||a},d=b.createElementNS("http://www.w3.org/1999/xhtml","a"),e="download"in d,f=function(a){var b=new MouseEvent("click");a.dispatchEvent(b)},g=a.webkitRequestFileSystem,h=a.requestFileSystem||g||a.mozRequestFileSystem,i=function(b){(a.setImmediate||a.setTimeout)(function(){throw b},0)},j="application/octet-stream",k=0,l=500,m=function(b){var d=function(){"string"==typeof b?c().revokeObjectURL(b):b.remove()};a.chrome?d():setTimeout(d,l)},n=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"==typeof e)try{e.call(a,c||a)}catch(f){i(f)}}},o=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},p=function(b,i,l){l||(b=o(b));var p,q,r,s=this,t=b.type,u=!1,v=function(){n(s,"writestart progress write writeend".split(" "))},w=function(){if(!u&&p||(p=c().createObjectURL(b)),q)q.location.href=p;else{var d=a.open(p,"_blank");void 0==d&&"undefined"!=typeof safari&&(a.location.href=p)}s.readyState=s.DONE,v(),m(p)},x=function(a){return function(){return s.readyState!==s.DONE?a.apply(this,arguments):void 0}},y={create:!0,exclusive:!1};return s.readyState=s.INIT,i||(i="download"),e?(p=c().createObjectURL(b),d.href=p,d.download=i,void setTimeout(function(){f(d),v(),m(p),s.readyState=s.DONE})):(a.chrome&&t&&t!==j&&(r=b.slice||b.webkitSlice,b=r.call(b,0,b.size,j),u=!0),g&&"download"!==i&&(i+=".download"),(t===j||g)&&(q=a),h?(k+=b.size,void h(a.TEMPORARY,k,x(function(a){a.root.getDirectory("saved",y,x(function(a){var c=function(){a.getFile(i,y,x(function(a){a.createWriter(x(function(c){c.onwriteend=function(b){q.location.href=a.toURL(),s.readyState=s.DONE,n(s,"writeend",b),m(a)},c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&w()},"writestart progress write abort".split(" ").forEach(function(a){c["on"+a]=s["on"+a]}),c.write(b),s.abort=function(){c.abort(),s.readyState=s.DONE},s.readyState=s.WRITING}),w)}),w)};a.getFile(i,{create:!1},x(function(a){a.remove(),c()}),x(function(a){a.code===a.NOT_FOUND_ERR?c():w()}))}),w)}),w)):void w())},q=p.prototype,r=function(a,b,c){return new p(a,b,c)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(a,b,c){return c||(a=o(a)),navigator.msSaveOrOpenBlob(a,b||"download")}:(q.abort=function(){var a=this;a.readyState=a.DONE,n(a,"abort")},q.readyState=q.INIT=0,q.WRITING=1,q.DONE=2,q.error=q.onwritestart=q.onprogress=q.onwrite=q.onabort=q.onerror=q.onwriteend=null,r)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof a&&a.exports?a.exports.saveAs=f:null!==c(106)&&null!=c(107)&&(d=[],e=function(){return f}.apply(b,d),!(void 0!==e&&(a.exports=e)))},function(a,b){a.exports=function(){throw new Error("define cannot be used indirect")}},function(a,b){(function(b){a.exports=b}).call(b,{})}]),window.pdfMake=window.pdfMake||{},window.pdfMake.vfs={"LICENSE.txt":"DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNA0KICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLw0KDQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04NCg0KICAgMS4gRGVmaW5pdGlvbnMuDQoNCiAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sDQogICAgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4NCg0KICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkNCiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4NCg0KICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbA0KICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbg0KICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwNCiAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQ0KICAgICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3INCiAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQ0KICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4NCg0KICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQ0KICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4NCg0KICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsDQogICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uDQogICAgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLg0KDQogICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbA0KICAgICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dA0KICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLA0KICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLg0KDQogICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcg0KICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQ0KICAgICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrDQogICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLg0KDQogICAgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0DQogICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlDQogICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zDQogICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3Nlcw0KICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluDQogICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsDQogICAgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLg0KDQogICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZw0KICAgICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucw0KICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5DQogICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyDQogICAgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YNCiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIg0KICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudA0KICAgICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8NCiAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsDQogICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQ0KICAgICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0DQogICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQ0KICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iDQoNCiAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5DQogICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQNCiAgICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLg0KDQogICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YNCiAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwNCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlDQogICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwNCiAgICAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQ0KICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4NCg0KICAgMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mDQogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsDQogICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQ0KICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsDQogICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywNCiAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlDQogICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcg0KICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQ0KICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UNCiAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhDQogICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrDQogICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdA0KICAgICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcw0KICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlDQogICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuDQoNCiAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlDQogICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQNCiAgICAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91DQogICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoNCg0KICAgICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3INCiAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZA0KDQogICAgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzDQogICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kDQoNCiAgICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3Jrcw0KICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQNCiAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLA0KICAgICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YNCiAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kDQoNCiAgICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cw0KICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QNCiAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQNCiAgICAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QNCiAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUNCiAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZA0KICAgICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3INCiAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwNCiAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kDQogICAgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzDQogICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZA0KICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uDQogICAgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUNCiAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQNCiAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQNCiAgICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuDQoNCiAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZA0KICAgICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucw0KICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcg0KICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsDQogICAgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgNCiAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuDQoNCiAgIDUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwNCiAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaw0KICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YNCiAgICAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLg0KICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQ0KICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQNCiAgICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4NCg0KICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQ0KICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLA0KICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlDQogICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4NCg0KICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yDQogICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoDQogICAgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywNCiAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcg0KICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMNCiAgICAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEENCiAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQ0KICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55DQogICAgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuDQoNCiAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LA0KICAgICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsDQogICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQ0KICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUNCiAgICAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwNCiAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQ0KICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQ0KICAgICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLA0KICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwNCiAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3INCiAgICAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4NCg0KICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZw0KICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwNCiAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksDQogICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcw0KICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkNCiAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmDQogICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksDQogICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkNCiAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24NCiAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5Lg0KDQogICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMNCg0KICAgQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLg0KDQogICAgICBUbyBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxvd2luZw0KICAgICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIg0KICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUNCiAgICAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBzaG91bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlDQogICAgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0aGF0IGENCiAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUNCiAgICAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2llcg0KICAgICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLg0KDQogICBDb3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0NCg0KICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQogICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQogICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCg0KICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KDQogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQogICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQogICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCg==", +"Roboto-Italic.ttf":"AAEAAAAOAIAAAwBgR0RFRgsuCy8AATmYAAAASEdQT1OC3T4oAAE54AAAkPhHU1VCeolvLwABytgAAANsT1MvMrivKS4AAAFoAAAAYFZETVhu6nZPAAASPAAABeBjbWFwg/CFnwAAGBwAAA7yZ2x5ZqugYnAAACcQAADhjGhlYWQVl+THAAAA7AAAADZoaGVhK3TmIgAAASQAAAAkaG10eH7tDo8AAAHIAAAQdGxvY2H/CzayAAEInAAACDxtYXhwBDwA9gAAAUgAAAAgbmFtZW3ArcAAARDYAAAEb3Bvc3QJy9dbAAEVSAAAJE0AAQAAAAEAAERFNtJfDzz1AAkIAAAAAADE8BEuAAAAAM2Cslz6t9PdKU8IYgACAAkAAgAAAAAAAAABAAAHbP4MAAAJA/q32vUpTwABAAAAAAAAAAAAAAAAAAAEHQABAAAEHQCWABYAXgAFAAEAAAAAAAAAAAAAAAAAAwABAAMEQQGQAAUAAAWaBTMAAAEfBZoFMwAAA9EAZgIAAAAAAAAAAAAAAAAA4AAC/1AAIFsAAAAgAAAAAHB5cnMAAQAA//0GAP4AAGYHmgIAIAABn08BAAAEOgWwAAAAIAACAeMAAAAAAAAB4wAAAeMAAAJ1AMUErABDBDoARwV7ANMErAAbAVcAxgKBAFcCiP+MA0AAoQRCAHIBgf+YAhUAPgIGAEYDH/+mBDoAUAQ6AXAEOgAtBDoANQQ6ACcEOgBoBDoAZwQ6ANgEOgA1BDoAfwHpAEYB8f/GA9EAZQQ6AI4D7gBWA5IAwga0ABME/v/VBMsAWATBAGIE8ABYBGIAWARfAFgFJgBoBVgAWAIkAGIEJQAPBH4APgQgAFgGkgBYBVkAWAUcAF4EzQBYBTsAXgT4AFcEjQBDBHoA7AUSAGcE3QDNBpUA7AS9//wEpgDuBDIAIAIKABIDHAD3Agr/lwMnAHwDa/+WAl0A8wQgADoERAA1A/wARwREAEQD+QBHApsAigRDADcERAA1AegARAH2/x0D2QA2AegARAaLADUERAA1BEQARgRE/+IERABEAqQANQPuADsCaQBvBEQAWgPIAJcFrACyA8j/6QPI/7wDyAAIApEAUQHhADYCkf+pBRgAggHh/+sEHQBXBGAALQVVACYEjgBxAdkAAQSc/8gDvwEnBd4AUgNeAMIDjABwBCsApgXfAFIDewEDAtABBQQGAE4DMQCnAzgAqgJoAPsERP/rA7EAhwH/AMMB4//OAg8BBANtAM8DiwA1BdUBDgY7ARsGgQC6A7f/8wcF/54EBABIBR0AJgRvAEgEeQAwBlIABARnACYESgBqBEUATARY/+sFRABVAegAPgQxAD4D8wBJAhEARwUwAEYERAA1BygATwbHAEQB6ABEApb/ZgUjAFkETgBGBToAZwSuAFoB7/8bA/kAPAOWAUgDYgFeAzgBCwINAUECkQEiAhP/twOXAQgCzwEHAnoAHQAK/fIACv5BAAr9WAAK/kYACv1LAAr83AHzAWQD1AFBAgAAwwQuAFcFS//MBR0ATwTs/94ETQAiBVoAWARN//EFXwBXBS8AigUAAB0EPwBABHL/9QPIALMERABBBAsAKQPsAIsERAA1BEYAVgJ5AH4EKv/RA7AAOgR6AHAERP/iBAsASQREAEMD7gC3BBwAWgVNAD8FRABDBisAXQSiAFoD/wCzBeEAZAWfANsFEgBmCAj/3ggTAFcGGgDyBVoAVwS7AEgFqv+WBtP/ygR0ACAFWQBYBU//3gS3AKMF0QBbBX8AVwUnANEHDgBXB0cAVwWrAMkGggBXBLkASAURAIcGrABiBM4ADAQnAEQETgBAAygAPgSQ/5oFvP/DA9IAHgRaAEAEFQBABFv/1QWSAEAEWQBABFoAQAOfAJAFbwBABHkAQAQYAH8GEgBABjoANQSlAIYF2ABABBYAQAQLADMGHgBABCH/1QRFADUEDABRBlj/1QZzAEAERQA1BFoAQAaRAGgFtwBFBBQAPga2AGMFmQA8BIb/2AQF/7wGmAB0BaoAXQZrADoFigA6CHsAYgddAD4D5f/HA5//xgUdAF0ERQBGBL4A6APIALMFHQBPBEUARgaLAGwFtwBIBpIAaAW4AEUE5ABkBAgASgSyAFUACv09AAr9ZAAK/m8ACv6QAAr6twAK+tYEFAA+BMsAVwRD/+IEHwBIA1wANQSXAFcDyQA1BL0ASAQ+AD4GJADzBTQApQdEAFcFVQA1B6kAVwaGADUFjQBlBIkATga/AOgFCwCIBR0A0QQmAJcFHQDQBc8ArgR0ACUEvQBIBBsAPgVYAFcERAA1BSsARgRgADYEYP/tBHIACgMY//sEtQA2BjQANgZzAEAF7wDoBNkAiAQIAM8DywC8B0H/8QYM/+wHfQBOBjUANQSoAGAD3gBGBVIA1wTPAKwFEQBqA9UAAAehAAAD1QAAB6EAAAKSAAAB7wAAAU4AAAQ4AAACEwAAAY8AAADMAAAACgAABS8A6QYSAQADb/9oAY0A1gGNALEBjP+kAY7/YQK7ANYCwgC9Aqn/pAQkAJUESQAQApAArwOPAEcFDABHByYArgJGAIACRgAhA24ACQN0AIsDLgCjBGAALQYmAEkD/gBgBYkA4wOXAGcIOABOBLQBIwTGAHwGUAD+BtwArAcIAKoGbQEeBFkAJgU/ADkEZ/+7BEoAzwSIAGgHqABJAfL/OwQ7AFAD7wCOA/YASAP9AEcDyQBnAjYAjwJ1AJQB7f/mBC0AaAAKAAAHq/+1B6wAhwPfAB8DXAAnBDoAUQLg/+AB6P8dAhH/egF+/8IDbQE3A2wBNwNsATcDyAEPA9ABCwPIAF8DxwEXA20BDQHrAS8Eb//UBDIAPgRJAE0EYAA+BAQAPgPfAD4EhgBKBKsAPgHoAD4DzwALBBwAPgOEAD4FlwA+BMoAPgR/AE0ElQBNBGMAPgQrACMD7gC9BLMAWARwAL4FoQDUBEH/4wQcALUD/v/5BDMASgJNAKwDqQAPA9YAIAQjACUEJQAeA+8ATgOEAL0D7gAjA+cAbQIPAH8DKAAiAzgAJQLTAO0DRwArA0gAQALjAI8DTwAuAzgAZANtAD4DZwC5ApEBKwMbAPUEOgAuBDoAJwQ6AGEESwBkA/n/kQQBAOsEMP/OBDoANQR7AEAERABBBPAAWAQgADcE3gBXBNMAWAPZADYE7ABYA9gANgQ6AH0EMgA+AzgBCwHjAAACFQA+BTMAXgUzAF4EYgBTBHoA7AJpAAcE/v/VBP7/1QT+/9UE/v/VBP7/1QT+/9UE/v/VBMsAYgRiAFgEYgBYBGIAWARiAFgCJABiAiQAYgIkAGICJABiBVkAWAU7AF4FOwBeBTsAXgU7AF4FOwBeBRIAZwUSAGcFEgBnBRIAZwSmAO4EIAA6BCAAOgQgADoEIAA6BCAAOgQgADoEIAA6A/wARwP5AEcD+QBHA/kARwP5AEcB6AA+AegAPgHoAD4B6AA+BEQANQREAEYERABGBEQARgREAEYERABGBEQAWgREAFoERABaBEQAWgPI/7wDyP+8BP7/1QQgADoE/v/VBCAAOgT+/9UEIAA6BMsAYgP8AEcEywBiA/wARwTLAGID/ABHBMsAYgP8AEcFFQBYBNoARARiAFgD+QBHBGIAWAP5AEcEYgBYA/kARwRiAFgD+QBHBGIAWAP5AEcFJgBoBEMANwUmAGgEQwA3BSYAaARDADcFJgBoBEMANwVYAFgERAA1AiQAYgHoAD4CJABiAegAPgIkAGIB6AA+AiT/mgHo/3sCJABiBkkAYgPeAEQEJQAPAe//GwTTAD4D2QA2BCAAWAHoAEQEIABYAej/qAQgAFgCfgBEBCAAWALEAEQFWQBYBEQANQVZAFgERAA1BVkAWAREADUERAA1BTsAXgREAEYFOwBeBEQARgU7AF4ERABGBPgAVwKkADUE+ABXAqT/pgT4AFcCpAA1BJgAQwPuADsEmABDA+4AOwSYAEMD7gA7BJgAQwPuADsEmABDA+4AOwR6AOwCaQBFBHoA7AJpAG8EegDsApEAbwUSAGcERABaBRIAZwREAFoFEgBnBEQAWgUSAGcERABaBRIAZwREAFoFEgBnBEQAWgaVAOwFrACyBKYA7gPI/7wEpgDuBH0AIAPIAAgEfQAgA8gACAR9ACADyAAIBwX/ngZSAAQFHQAmBEUATARgAAsEYAALA+4AvQRv/9QEb//UBG//1ARv/9QEb//UBG//1ARv/9QESQBNBAQAPgQEAD4EBAA+BAQAPgHoAD4B6AA+AegAPgHoAD4EygA+BH8ATQR/AE0EfwBNBH8ATQR/AE0EswBYBLMAWASzAFgEswBYBBwAtQRv/9QEb//UBG//1ARJAE0ESQBNBEkATQRJAE0EYAA+BAQAPgQEAD4EBAA+BAQAPgQEAD4EhgBKBIYASgSGAEoEhgBKBKsAPgHoAD4B6AA+AegAPgHo/3MB6AA+A88ACwQcAD4DhAA+A4QAPgOEAD4DhAA+BMoAPgTKAD4EygA+BH8ATQR/AE0EfwBNBGMAPgRjAD4EYwA+BCsAIwQrACMEKwAjBCsAIwPuAJcD7gC9BLMAWASzAFgEswBYBLMAWASzAFgEswBYBaEA1AQcALUEHAC1A/7/+QP+//kD/v/5CFYAIwT+/9UExgCbBbwAvAKIAMYFTwByBQoASQUUADECeQBsBP7/1QTLAFgEYgBYBH0AIAVYAFgCJABiBNMAPgaSAFgFWQBYBTsAXgTNAFgEegDsBKYA7gS9//wCJABiBKYA7gQ/AEAECwApBEQANQJ5AH4EHABaBDEAPgREAEYERP/rA8gAlwPI/+kCeQB+BBwAWgREAEYEHABaBisAXQRiAFgELgBXBJgAQwIkAGICJABiBCUADwTTAD4E0wA+BLcAowT+/9UEywBYBC4AVwRiAFgFWQBYBpIAWAVYAFgFOwBeBVoAWATNAFgEywBiBHoA7AS9//wEIAA6A/kARwRaAEAERABGBET/4gP8AEcDyP+8A8j/6QP5AEcDKAA+A+4AOwHoAEQB6AA+Afb/HQQVAEADyP+8BpUA7AWsALIGlQDsBawAsgaVAOwFrACyBKYA7gPI/7wBVwDGAnUAxQP6AE8EgwCKAe//GwGNALEGkgBYBosANQT+/9UEIAA6BTsAAQbIAIoHHgCKBGIAWAVZAFgD+QBHBFoAQAUvAIoFRABDBL4A6APIALMIDABGCQMAXgR0ACAD0gAeBMsAYgP8AEcEpgDuA8gAswIkAGIG0//KBbz/wwIkAGIE/v/VBCAAOgT+/9UEIAA6BwX/ngZSAAQEYgBYA/kARwUrAEYD+QA8A/kAPAbT/8oFvP/DBHQAIAPSAB4FWQBYBFoAQAVZAFgEWgBABTsAXgREAEYFHQBdBEUARgUdAF0ERQBGBREAhwQLADMEtwCjA8j/vAS3AKMDyP+8BLcAowPI/7wFJwDRBBgAfwaCAFcF2ABABL3//API/+kERABEBU//3gRb/9UE/v/VBCAAOgT+/9UEIAA6BP7/1QQgADoE/v/VBCAAOgT+/9UEIAA6BP7/1QQgADoE/v/VBCAAOgT+/9UEIAA6BP7/1QQgADoE/v/VBCAAOgT+/9UEIAA6BP7/1QQgADoEYgBYA/kARwRiAFgD+QBHBGIAWAP5AEcEYgBYA/kARwRiAFgD+QBHBGIAWAP5AEcEYgBYA/kARwRiAFgD+QBHAiQAYgHoAD4CJAAXAej/+gU7AF4ERABGBTsAXgREAEYFOwBeBEQARgU7AF4ERABGBTsAXgREAEYFOwBeBEQARgU7AF4ERABGBSMAWQROAEYFIwBZBE4ARgUjAFkETgBGBSMAWQROAEYFIwBZBE4ARgUSAGcERABaBRIAZwREAFoFOgBnBK4AWgU6AGcErgBaBToAZwSuAFoFOgBnBK4AWgU6AGcErgBaBKYA7gPI/7wEpgDuA8j/vASmAO4DyP+8BGIARARiABME0wA+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////1QAABH8HiAImACMAAAAHAJ4BkgGo////1QAABMYHnwImACMAAAAHAdQBiQEs//8AYv5EBPgFxQAmACUAAAAHAHcBt//3//8AWAAABPIHIgImACcAAAAHAEIBNwFd//8AWAAABPIHHwImACcAAAAHAHMB4wFZ//8AWAAABPIHRgImACcAAAAHAJoA0gFd//8AWAAABPIHDAImACcAAAAHAGgA0wFc//8AYgAAAkQHIgImACsAAAAHAEL//AFd//8AYgAAA1MHHwImACsAAAAHAHMApwFZ//8AYgAAAx4HRgImACsAAAAHAJr/lwFd//8AYgAAA10HDAImACsAAAAHAGj/mAFc//8AWAAABXoHUQImADAAAAAHAKABTgFg//8AXv/rBTYHNwAmADEAAAAHAEIBjAFy//8AXv/rBTYHNAAmADEAAAAHAHMCOAFu//8AXv/rBTYHWwAmADEAAAAHAJoBJwFy//8AXv/rBTYHZgAmADEAAAAHAKABRgF1//8AXv/rBTYHIQAmADEAAAAHAGgBKAFx//8AZ//rBVcHIgImADcAAAAHAEIBdwFd//8AZ//rBVcHHwImADcAAAAHAHMCIwFZ//8AZ//rBVcHRgImADcAAAAHAJoBEgFd//8AZ//rBVcHDAImADcAAAAHAGgBEwFc//8A7gAABVMHHQImADsAAAAHAHMB6QFX//8AOv/sA/cF4AImAEMAAAAHAEIAswAb//8AOv/sBAsF3QImAEMAAAAHAHMBXwAX//8AOv/sA/cGBAImAEMAAAAGAJpOGwAA//8AOv/sBBwGDwImAEMAAAAGAKBtHgAA//8AOv/sBBQFygImAEMAAAAGAGhPGgAA//8AOv/sA/cGRgImAEMAAAAHAJ4A2gBm//8AOv/sBA4GXgImAEMAAAAHAdQA0f/r//8AR/5EA/sETgImAEUAAAAHAHcBOf/3//8AR//sA+sF4QImAEcAAAAHAEIAkQAc//8AR//sA+sF3gImAEcAAAAHAHMBPQAY//8AR//sA+sGBQImAEcAAAAGAJosHAAA//8AR//sA/IFywImAEcAAAAGAGgtGwAA//8APgAAAd0FywImAIoAAAAGAEKVBgAA//8APgAAAuwFyAImAIoAAAAGAHNAAgAA//8APgAAArcF7wImAIoAAAAHAJr/MAAG//8APgAAAvYFtQImAIoAAAAHAGj/MQAF//8ANQAABDIGDwImAFAAAAAHAKAAgwAe//8ARv/sBBwF4AImAFEAAAAHAEIApwAb//8ARv/sBBwF3QImAFEAAAAHAHMBUwAX//8ARv/sBBwGBAImAFEAAAAGAJpCGwAA//8ARv/sBBwGDwImAFEAAAAGAKBhHgAA//8ARv/sBBwFygImAFEAAAAGAGhDGgAA//8AWv/sBDsFywImAFcAAAAHAEIAxgAG//8AWv/sBDsFyAImAFcAAAAHAHMBcgAC//8AWv/sBDsF7wImAFcAAAAGAJphBgAA//8AWv/sBDsFtQImAFcAAAAGAGhiBQAA////vP5LBCoFyAImAFsAAAAHAHMBNQAC////vP5LBCoFtQImAFsAAAAGAGglBQAA////1QAABN4G+gImACMAAAAHAG4BJgFK//8AOv/sBCYFuAImAEMAAAAGAG5uCAAA////1QAABLAHTAImACMAAAAHAJwBYQGc//8AOv/sA/gGCgImAEMAAAAHAJwAqQBaAAL/1f5QBH8FsAAaAB4AAAEzEyMOAQcGFjMyNjcHDgEjIiY3PgE3AyEDIwEhAycDBJvgJVdiCQYbKBkwFwcgTDJPWA8LY180/c7SuAHbAc1cAwWw+lA+ZDwlJRELeBMZY1pJfTYBe/58AhkCoAEAAAACADr+UAP3BE4ANAA/AAAhNDY3Jw4BIyImNzYkOwE3NiYjIgYHIzYkMzIWBwMOARcjDgEHBhYzMjY3Bw4BIyImNz4BNyUyNj8BIyIGBwYWAqAEBQNCrl2WiR4iAQHQvhYVV2dYjg61GwEAtqS1ImgNCQQTV2IJBhsoGTAXByBMMk9YDwtbWP7wV60vKMNrpBARQTM+HwFIXayWqKJuaWlkRoW7u6/99j1mNz5kPCUlEQt4ExljWkZ5NItgRMl7U1BPAAD//wBi/+sE+Ac0ACYAJQAAAAcAcwIhAW7//wBH/+wD+wXdAiYARQAAAAcAcwEqABf//wBi/+sE+AdbACYAJQAAAAcAmgEQAXL//wBH/+wD+wYEAiYARQAAAAYAmhkbAAD//wBi/+sE+AciACYAJQAAAAcAnQHRAXL//wBH/+wD+wXLAiYARQAAAAcAnQDaABv//wBi/+sE+AdcACYAJQAAAAcAmwEmAXP//wBH/+wD+wYFAiYARQAAAAYAmy8cAAD//wBYAAAFHQdHACYAJgAAAAcAmwDgAV7//wBE/+sFwwYYACYARgAAAAcBkQSgBSz//wBYAAAE8gb6AiYAJwAAAAcAbgDyAUr//wBH/+wEBAW5AiYARwAAAAYAbkwJAAD//wBYAAAE8gdMAiYAJwAAAAcAnAEtAZz//wBH/+wD6wYLAiYARwAAAAcAnACHAFv//wBYAAAE8gcNAiYAJwAAAAcAnQGTAV3//wBH/+wD6wXMAiYARwAAAAcAnQDtABwAAQBY/lAE8gWwACAAAAEhAyEHIw4BBwYWMzI2NwcOASMiJjc+ATcnIQEhByEDIQQC/ZJpAsweNFdiCQYbKBkwFwcgTDJPWA8LWlQB/V0BIwN3Hv0+YAJuAqb975U+ZDwlJRELeBMZY1pGeDIDBbCW/iIAAAACAEf+ZAPrBE4AKQAxAAAlDgEHDgEHBhYzMjY3Bw4BIyImNz4BNycmAj8BNgAzMhIPASEGFjMyNjcDIgYHITc2JgNbIVM0U14IBhsoGTAXByBMMk9YDwg/OQHIyicHJwEptMerIxP9bBhrh1qXPMdaoCkB2gQTWXEeMxI7YjslJRELeBMZY1o5YywDAwEp7y31ASX++915rcU5MgLMqoYafZkA//8AWAAABPIHRwImACcAAAAHAJsA6AFe//8AR//sA+sGBgImAEcAAAAGAJtCHQAA//8AaP/rBQ8HWwImACkAAAAHAJoBBgFy//8AN/5LBD0GBAImAEkAAAAGAJpWGwAA//8AaP/rBQ8HYQImACkAAAAHAJwBYQGx//8AN/5LBD0GCgImAEkAAAAHAJwAsQBa//8AaP/rBQ8HIgImACkAAAAHAJ0BxwFy//8AN/5LBD0FywImAEkAAAAHAJ0BFwAb//8AaP3lBQ8FxQImACkAAAAHAZEBRv62//8AN/5LBD0GbQImAEkAAAAHAaUBKABW//8AWAAABXkHRgImACoAAAAHAJoBKQFd//8ANQAABBkHRQImAEoAAAAHAJoAYwFc//8AYgAAA2UHUQImACsAAAAHAKD/tgFg//8APgAAAv4F+gImAIoAAAAHAKD/TwAJ//8AYgAAA28G+gImACsAAAAHAG7/twFK//8APgAAAwgFpAImAIoAAAAHAG7/UP/0//8AYgAAA0EHTAImACsAAAAHAJz/8gGc//8APgAAAtoF9QImAIoAAAAGAJyLRQAA////mv5YAjoFsAImACsAAAAGAJ/jCAAA////e/5QAjEGGAImAEsAAAAGAJ/EAAAA//8AYgAAAogHDQImACsAAAAHAJ0AVwFd//8AYv/rBnYFsAAmACsAAAAHACwCJAAA//8ARP5LBCEGGAAmAEsAAAAHAEwB6AAA//8AD//rBSwHOQImACwAAAAHAJoBpQFQ////G/5LAsQF3AImAJgAAAAHAJr/Pf/z//8APv31BTUFsAAmAC0AAAAHAZEBIP7G//8ANv33BCgGGAImAE0AAAAHAZEAxP7I//8AWAAAA60G4AImAC4AAAAHAHMAjwEa//8ARAAAA0MHXAImAE4AAAAHAHMAlwGW//8AWP33A60FsAImAC4AAAAHAZEBGv7I////qP33AjEGGAImAE4AAAAHAZH/wv7I//8AWAAAA9UFsQImAC4AAAAHAZECsgTF//8ARAAAA3IGGAAmAE4AAAAHAZECTwUs//8AWAAAA60FsAImAC4AAAAHAJ0BNP3F//8ARAAAAukGGAAmAE4AAAAHAJ0AuP23//8AWAAABXoHHwImADAAAAAHAHMCQAFZ//8ANQAABCEF3QImAFAAAAAHAHMBdQAX//8AWP33BXoFsAImADAAAAAHAZEBd/7I//8ANf33BBgETgImAFAAAAAHAZEA7P7I//8AWAAABXoHRwImADAAAAAHAJsBRQFe//8ANQAABCMGBQImAFAAAAAGAJt6HAAA//8ANQAABBgGGAImAFAAAAAHAZEAiwUs//8AXv/rBTYHDwAmADEAAAAHAG4BRwFf//8ARv/sBBwFuAImAFEAAAAGAG5iCAAA//8AXv/rBTYHYQAmADEAAAAHAJwBggGx//8ARv/sBBwGCgImAFEAAAAHAJwAnQBa//8AXv/rBZkHYAAmADEAAAAHAKEBqgFy//8ARv/sBLQGCQImAFEAAAAHAKEAxQAb//8AVwAABQIHHwImADQAAAAHAHMB3AFZ//8ANQAAA4cF3QImAFQAAAAHAHMA2wAX//8AV/33BQIFrwImADQAAAAHAZEBE/7I////pv33Aw0ETgImAFQAAAAHAZH/wP7I//8AVwAABQIHRwImADQAAAAHAJsA4QFe//8ANQAAA4oGBQImAFQAAAAGAJvhHAAA//8AQ//rBMAHNAAmADUAAAAHAHMB1gFu//8AO//sA9MF3QImAFUAAAAHAHMBJwAX//8AQ//rBMAHWwAmADUAAAAHAJoAxQFy//8AO//sA8kGBAImAFUAAAAGAJoWGwAA//8AQ/5EBMAFxQAmADUAAAAHAHcBbP/3//8AO/5FA8kETgImAFUAAAAHAHcBN//4//8AQ/3jBMAFxQAmADUAAAAHAZEBBP60//8AO/3kA8kETgImAFUAAAAHAZEAz/61//8AQ//rBMAHXAAmADUAAAAHAJsA2wFz//8AO//sA9UGBQImAFUAAAAGAJssHAAA//8A7P31BQsFsAImADYAAAAHAZEBDP7G//8ARf3tAqQFQQImAFYAAAAHAZEAX/6+//8A7P5VBQsFsAImADYAAAAHAHcBdAAI//8Ab/5NAqQFQQImAFYAAAAHAHcAxwAA//8A7AAABQsHRgImADYAAAAHAJsA2gFd//8Ab//sA7QGMQAmAFYAAAAHAZECkQVF//8AZ//rBVcHUQImADcAAAAHAKABMQFg//8AWv/sBDsF+gImAFcAAAAHAKAAgAAJ//8AZ//rBVcG+gImADcAAAAHAG4BMgFK//8AWv/sBDsFpAImAFcAAAAHAG4Agf/0//8AZ//rBVcHTAImADcAAAAHAJwBbQGc//8AWv/sBDsF9QImAFcAAAAHAJwAvABF//8AZ//rBVcHiAImADcAAAAHAJ4BngGo//8AWv/sBDsGMQImAFcAAAAHAJ4A7QBR//8AZ//rBYQHSwImADcAAAAHAKEBlQFd//8AWv/sBNMF9AImAFcAAAAHAKEA5AAGAAEAZ/5uBVcFsAAoAAABAw4BBw4BBwYWMzI2NwcOASMiJjc+ATcnIgYjIiY3EzMDBhYzMjY3EwVXxSW4jE5cCQYbKBkwFwcgTDJPWA8IOTQBBBYG1u0wxbbFJYqWkeIixQWw/CW22jI3YzklJRELeBMZY1o2XioDAfzuA9v8JbafragD2wAAAAABAFr+UAQ7BDoAJwAAIQ4BBwYWMzI2NwcOASMiJjc+AT8BJw4BIyImNxMzAwYWMzI2NxMzAwNiV2IJBhsoGTAXByBMMk9YDwpeWRIDP6JlnZMwf7Z/JkNpX5Mzm7XYPmQ8JSURC3gTGWNaRno1jwFSVOHwAn39gb53W1MDBvvG//8A7AAABuwHRgImADkAAAAHAJoBnAFd//8AsgAABfoF7wImAFkAAAAHAJoBFQAG//8A7gAABVMHRAImADsAAAAHAJoA2AFb////vP5LBCoF7wImAFsAAAAGAJokBgAA//8A7gAABVMHCgImADsAAAAHAGgA2QFa//8AIAAABH0HHwAmADwAAAAHAHMB0QFZ//8ACAAAA+oFyAImAFwAAAAHAHMBPgAC//8AIAAABFsHDQAmADwAAAAHAJ0BgQFd//8ACAAAA98FtgImAFwAAAAHAJ0A7gAG//8AIAAABH8HRwAmADwAAAAHAJsA1gFe//8ACAAAA+wF8AImAFwAAAAGAJtDBwAA////ngAAB3UHHwImAH8AAAAHAHMDAQFZ//8ABP/rBmAF3gImAIQAAAAHAHMCegAY//8AJv+jBWsHXQImAIEAAAAHAHMCMQGX//8ATP95BDgF3AImAIcAAAAHAHMBUAAW//8ACwAABEkEjQImAakAAAAHAdP/Uv97//8ACwAABEkEjQImAakAAAAHAdP/Uv97//8AvQAABCUEjQImAbgAAAAGAdMo9wAA////1AAAA+gF3wImAaYAAAAHAEIA2QAa////1AAABDEF3AImAaYAAAAHAHMBhQAW////1AAAA/sGAwImAaYAAAAGAJp0GgAA////1AAABEIGDgImAaYAAAAHAKAAkwAd////1AAABDoFyQImAaYAAAAGAGh1GQAA////1AAAA+gGRQImAaYAAAAHAJ4BAABl////1AAABDQGXQImAaYAAAAHAdQA9//q//8ATf5HBEIEnQImAagAAAAHAHcBU//6//8APgAABB0F3wImAaoAAAAHAEIAqgAa//8APgAABB0F3AImAaoAAAAHAHMBVgAW//8APgAABB0GAwImAaoAAAAGAJpFGgAA//8APgAABB0FyQImAaoAAAAGAGhGGQAA//8APgAAAd8F3wImAa4AAAAGAEKXGgAA//8APgAAAu4F3AImAa4AAAAGAHNCFgAA//8APgAAArkGAwImAa4AAAAHAJr/MgAa//8APgAAAvgFyQImAa4AAAAHAGj/MwAZ//8APgAABL4GDgImAbMAAAAHAKAAsQAd//8ATf/vBG8F7wImAbQAAAAHAEIA3QAq//8ATf/vBG8F7AImAbQAAAAHAHMBiQAm//8ATf/vBG8GEwImAbQAAAAGAJp4KgAA//8ATf/vBG8GHgImAbQAAAAHAKAAlwAt//8ATf/vBG8F2QIm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u9uwJyX+9czZ/uMwtSO4mmqrAUx3hEJIy8axsuzWi6F0V393R0/Hw7ir1uurgXIA//8AYgAAAjoFsAIGACsAAP//AGIAAANdBwwCJgArAAAABwBo/5gBXP//AA//6wRSBbACBgAsAAD//wA+AAAFNQWwAAYALQAA//8APgAABTUGxwAmAC0AAAAHAHMBxQEB//8Ao//rBUUHTAImANkAAAAHAJwBPgGc////1QAABH8FsAIGACMAAP//AFgAAATQBbACBgAkAAD//wBXAAAEuQWwAgYArAAA//8AWAAABPIFsAIGACcAAP//AFgAAAV6B0wCJgDXAAAABwCcAY4BnP//AFgAAAazBbACBgAvAAD//wBYAAAFeQWwAgYAKgAA//8AXv/rBTYFxQAGADEAAP//AFgAAAV7BbACBgCxAAD//wBYAAAFGAWwAgYAMgAA//8AYv/rBPgFxQAGACUAAP//AOwAAAULBbACBgA2AAD////8AAAFHQWwAgYAOgAA//8AOv/sA/cETgIGAEMAAP//AEf/7APrBE4CBgBHAAD//wBAAAAERwX1AiYA6wAAAAcAnADIAEX//wBG/+wEHAROAgYAUQAA////4v5gBCYETgIGAFIAAAABAEf/7AP7BE4AGwAAJTI2NzMGBCMiAj8BNgAzMhYHIzYmIyIGDwEGFgHxWqAPrBn+8qbXuyUHJwER4a7BGqwQameNpBoHHFWBeFyazwEy6ir1ASfeqmyG4qQqsdYAAP///7z+SwQqBDoCBgBbAAD////pAAAD8QQ6AgYAWgAA//8AR//sA/IFywImAEcAAAAGAGgtGwAA//8APgAAA5UFyAImAOcAAAAHAHMA5wAC//8AO//sA8kETgIGAFUAAP//AEQAAAIxBhgCBgBLAAD//wA+AAAC9gW1AiYAigAAAAcAaP8xAAX///8d/ksCOQYYAgYATAAA//8AQAAABGEFxwImAOwAAAAHAHMBTQAB////vP5LBCoF9QImAFsAAAAGAJx/RQAA//8A7AAABuwHIgImADkAAAAHAEICAQFd//8AsgAABfoFywImAFkAAAAHAEIBegAG//8A7AAABuwHHwImADkAAAAHAHMCrQFZ//8AsgAABfoFyAImAFkAAAAHAHMCJgAC//8A7AAABuwHDAImADkAAAAHAGgBnQFc//8AsgAABfoFtQIm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AEMAAAAHAKgEBQAA////1QAABH8HxgImACMAAAAHAKYE5QFT//8AOv/sA/cGhAImAEMAAAAHAKYELQAR////1QAABg4HqAImACMAAAAHAaMA8AEW//8AOv/sBVYGZwImAEMAAAAGAaM41QAA////1QAABLcHpQImACMAAAAHAaIA+gEl//8AOv/sA/8GZAImAEMAAAAGAaJC5AAA////1QAABZ4H2wImACMAAAAHAaEA9QEN//8AOv/sBOYGmgImAEMAAAAGAaE9zAAA////1QAABLYH5QImACMAAAAHAaAA9gET//8AOv/sA/4GpAImAEMAAAAGAaA+0gAA////1f6xBI0HRgImACMAAAAnAJoBBgFdAAcAqASsAAD//wA6/rED9wYEAiYAQwAAACYAmk4bAAcAqAQFAAAAAP///9UAAASqB90CJgAjAAAABwGfASkBVP//ADr/7AP3BpsCJgBDAAAABgGfcRIAAP///9UAAATOB+ACJgAjAAAABwGkAS8BZ///ADr/7AQWBp4CJgBDAAAABgGkdyUAAP///9UAAASVCEsCJgAjAAAABwGeASkBSf//ADr/7AP3BwkCJgBDAAAABgGecQcAAP///9UAAATMCB8CJgAjAAAABwGdASsBUf//ADr/7AQUBt0CJgBDAAAABgGdcw8AAP///9X+sQSwB0wCJgAjAAAAJwCcAWEBnAAHAKgErAAA//8AOv6xA/gGCgImAEMAAAAnAJwAqQBaAAcAqAQFAAD//wBY/rsE8gWwAiYAJwAAAAcAqAR3AAr//wBH/rED6wROAiYARwAAAAcAqARRAAD//wBYAAAE8gfGAiYAJwAAAAcApgSxAVP//wBH/+wD6waFAiYARwAAAAcApgQLABL//wBYAAAE8gdRAiYAJwAAAAcAoADxAWD//wBH/+wD+gYQAiYARwAAAAYAoEsfAAD//wBYAAAF2geoAiYAJwAAAAcBowC8ARb//wBH/+wFNAZoAiYARwAAAAYBoxbWAAD//wBYAAAE8gelAiYAJwAAAAcBogDGASX//wBH/+wD6wZlAiYARwAAAAYBoiDlAAD//wBYAAAFagfbAiYAJwAAAAcBoQDBAQ3//wBH/+wExAabAiYARwAAAAYBoRvNAAD//wBYAAAE8gflAiYAJwAAAAcBoADCARP//wBH/+wD6walAiYARwAAAAYBoBzTAAD//wBY/rsE8gdGAiYAJwAAACcAmgDSAV0ABwCoBHcACv//AEf+sQPrBgUCJgBHAAAAJgCaLBwABwCoBFEAAAAA//8AYgAAAwoHxgImACsAAAAHAKYDdQFT//8APgAAAqMGcAImAIoAAAAHAKYDDv/9//8AF/65AjoFsAImACsAAAAHAKgDOwAI////+v67AjEGGAImAEsAAAAHAKgDHgAK//8AXv6pBTYFxQAmADEAAAAHAKgEw//4//8ARv6oBBwETgImAFEAAAAHAKgEV//3//8AXv/rBTYH2wAmADEAAAAHAKYFBgFo//8ARv/sBBwGhAImAFEAAAAHAKYEIQAR//8AXv/rBi8HvQAmADEAAAAHAaMBEQEr//8ARv/sBUoGZwImAFEAAAAGAaMs1QAA//8AXv/rBTYHugAmADEAAAAHAaIBGwE6//8ARv/sBBwGZAImAFEAAAAGAaI25AAA//8AXv/rBb8H8AAmADEAAAAHAaEBFgEi//8ARv/sBNoGmgImAFEAAAAGAaExzAAA//8AXv/rBTYH+gAmADEAAAAHAaABFwEo//8ARv/sBBwGpAImAFEAAAAGAaAy0gAA//8AXv6pBTYHWwAmADEAAAAnAJoBJwFyAAcAqATD//j//wBG/qgEHAYEAiYAUQAAACYAmkIbAAcAqARX//cAAP//AFn/6wYlBw8CJgCUAAAABwBzAiQBSf//AEb/7AUJBd0CJgCVAAAABwBzAXgAF///AFn/6wYlBxICJgCUAAAABwBCAXgBTf//AEb/7AUJBeACJgCVAAAABwBCAMwAG///AFn/6wYlB7YCJgCUAAAABwCmBPIBQ///AEb/7AUJBoQCJgCVAAAABwCmBEYAEf//AFn/6wYlB0ECJgCUAAAABwCgATIBUP//AEb/7AUJBg8CJgCVAAAABwCgAIYAHv//AFn+sQYlBjYCJgCUAAAABwCoBLEAAP//AEb+qAUJBLACJgCVAAAABwCoBEj/9///AGf+qgVXBbACJgA3AAAABwCoBLL/+f//AFr+sQQ7BDoCJgBXAAAABwCoBAsAAP//AGf/6wVXB8YCJgA3AAAABwCmBPEBU///AFr/7AQ7BnACJgBXAAAABwCmBED//f//AGf/6walBx8CJgCWAAAABwBzAiIBWf//AFr/7AVXBcgCJgCXAAAABwBzAXIAAv//AGf/6walByICJgCWAAAABwBCAXYBXf//AFr/7AVXBcsCJgCXAAAABwBCAMYABv//AGf/6walB8YCJgCWAAAABwCmBPABU///AFr/7AVXBnACJgCXAAAABwCmBED//f//AGf/6walB1ECJgCWAAAABwCgATABYP//AFr/7AVXBfoCJgCXAAAABwCgAIAACf//AGf+qQalBg0CJgCWAAAABwCoBLH/+P//AFr+sQVXBJECJgCXAAAABwCoBAsAAP//AO7+uwVTBbACJgA7AAAABwCoBH0ACv///7z+FAQqBDoCJgBbAAAABwCoBKj/Y///AO4AAAVTB8QCJgA7AAAABwCmBLcBUf///7z+SwQqBnACJgBbAAAABwCmBAP//f//AO4AAAVTB08CJgA7AAAABwCgAPcBXv///7z+SwQqBfoCJgBbAAAABgCgQwkAAAACAET/6wUmBhgAGgAoAAABIwMjNycOASMiAj8BGgEzMhYXEyM3MzczBzMBBhYzMjY3Ey4BIyIGBwUItPedCQM8kFiwri8EOO7BWIcrN+oe6SS1JLX8AyRhiUx1M2Uba1R8nyYE0vsuaAI/QAE06hUBHAEUSEUBEZWxsfyis9FTTwH6RE/ZvQD//wAT/u4FJgYYACYARgAAACcB0wH8AkYABgBBfYMAAP//AD7+mQU1BbAAJgAtAAAABwGcA/QAAP//AED+mQRhBDoCJgDsAAAABwGcAxMAAP//AFj+mQV5BbACJgAqAAAABwGcBBwAAP//AED+mQRGBDoCJgDvAAAABwGcAzQAAP//AOz+mQULBbACJgA2AAAABwGcAggAAP//AJD+mQP3BDoCJgDxAAAABwGcAZgAAP////z+mQUdBbACJgA6AAAABwGcA5YAAP///+n+mQPxBDoCJgBaAAAABwGcAq4AAP//ANH+mQVIBbACJgDcAAAABwGcA+sAAP//AH/+mQQGBDsCJgD0AAAABwGcAvMAAP//ANH+mQVIBbACJgDcAAAABwGcAt8AAP//AH/+mQQGBDsCJgD0AAAABwGcAeYAAP//AFf+mQS5BbACJgCsAAAABwGcANMAAP//AD7+mQOVBDoCJgDnAAAABwGcAJsAAP///8r+mQddBbACJgDVAAAABwGcBeEAAP///8P+mQYBBDoCJgDpAAAABwGcBKoAAP//AK7+VAXu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ACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQCjAIQAhQC9AJYA6ACGAI4AiwCdAKkApACKAQMAgwCTAPIA8wCNAJcAiAEEAN4A8QCeAKoA9QD0APYAogCQAPAAkQDtAIkAoADqALgAoQDuAQUA1wEGAOIA4wEHAQgAsACxAQkApgEKAQsBDAENAQ4BDwDYAOEA2wDcAN0A4ADZAN8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgCfASMBJAElASYBJwEoASkBKgErASwBLQCbAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0AsgCzAc4AtgC3AMQBzwC0ALUAxQCCAMIAhwHQAKsAxgC+AL8AvAHRAdIB0wHUAdUB1gHXAdgAjAHZAdoB2wHcAd0AmACaAJkA7wClAJIAnACnAI8AlACVALkB3gHfAeAAwAHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AgACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwCsAjgCOQDpAjoCOwI8AK0AyQDHAK4AYgBjAj0AZADLAGUAyADKAM8AzADNAM4AZgDTANAA0QCvAGcA1gDUANUAaADrAGoAaQBrAG0AbABuAj4AbwBxAHAAcgBzAHUAdAB2AHcAeAB6AHkAewB9AHwAfwB+AIAAgQDsALoCPwJAAkECQgJDAkQA/QD+AkUCRgJHAkgA/wEAAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgD4APkCVwJYAlkCWgJbAlwCXQJeAl8CYAJhAmICYwJkAmUCZgJnAmgCaQJqAmsCbAJtAm4CbwJwAnECcgJzAnQCdQJ2AncCeAJ5AnoCewJ8An0CfgJ/AoACgQKCAoMChAKFAoYChwKIAokCigD7APwCiwKMAOQA5QKNAo4CjwKQApECkgKTApQClQKWApcCmAKZApoCmwKcAp0CngKfAqACoQKiALsCowKkAqUCpgDmAOcCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CvwLAAsECwgLDAsQCxQLGAscCyALJAsoCywLMAs0CzgLPAtAC0QLSAtMC1ALVAtYC1wLYAtkC2gLbAtwC3QLeAt8C4ALhAuIC4wLkAuUC5gLnAugC6QLqAusC7ALtAu4C7wLwAvEC8gLzAvQC9QL2AvcC+AL5AvoC+wL8Av0C/gL/AwADAQMCAwMDBAMFAwYDBwMIAwkDCgMLAwwDDQMOAw8DEAMRAxIDEwMUAxUDFgMXAxgDGQMaAxsDHAMdAx4DHwMgAyEDIgMjAyQDJQMmAycDKAMpAyoDKwMsAy0DLgMvAzADMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTANNA04DTwNQA1EDUgNTA1QDVQNWA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiA2MDZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UDdgN3A3gDeQN6A3sDfAN9A34DfwOAA4EDggODA4QDhQOGA4cDiAOJA4oDiwOMA40DjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOeA58DoAOhA6IDowOkA6UDpgOnA6gDqQOqA6sDrAOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA8MDxAPFA8YDxwPIA8kDygPLA8wDzQPOA88D0APRA9ID0wPUA9UD1gPXA9gD2QPaA9sD3APdA94D3wPgA+ED4gPjA+QD5QPmA+cD6APpA+oD6wPsA+0D7gPvA/AD8QPyA/MD9AP1A/YD9wP4A/kD+gP7A/wD/QP+A/8EAAQBBAIEAwQEBAUEBgQHBAgECQQKBAsEDAQNBA4EDwQQBBEEEgQTBBQEFQQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQD3BCIEIwQkAAQETlVMTAZtYWNyb24OcGVyaW9kY2VudGVyZWQESGJhcgxrZ3JlZW5sYW5kaWMDRW5nA2VuZwVsb25ncwVPaG9ybgVvaG9ybgVVaG9ybgV1aG9ybgd1bmkwMjM3BXNjaHdhB3VuaTAyRjMJZ3JhdmVjb21iCWFjdXRlY29tYgl0aWxkZWNvbWIEaG9vawd1bmkwMzBGCGRvdGJlbG93BXRvbm9zDWRpZXJlc2lzdG9ub3MJYW5vdGVsZWlhBUdhbW1hBURlbHRhBVRoZXRhBkxhbWJkYQJYaQJQaQVTaWdtYQNQaGkDUHNpBWFscGhhBGJldGEFZ2FtbWEFZGVsdGEHZXBzaWxvbgR6ZXRhA2V0YQV0aGV0YQRpb3RhBmxhbWJkYQJ4aQNyaG8Gc2lnbWExBXNpZ21hA3RhdQd1cHNpbG9uA3BoaQNwc2kFb21lZ2EHdW5pMDNEMQd1bmkwM0QyB3VuaTAzRDYHdW5pMDQwMgd1bmkwNDA0B3VuaTA0MDkHdW5pMDQwQQd1bmkwNDBCB3VuaTA0MEYHdW5pMDQxMQd1bmkwNDE0B3VuaTA0MTYHdW5pMDQxNwd1bmkwNDE4B3VuaTA0MUIHdW5pMDQyMwd1bmkwNDI0B3VuaTA0MjYHdW5pMDQyNwd1bmkwNDI4B3VuaTA0MjkHdW5pMDQyQQd1bmkwNDJCB3VuaTA0MkMHdW5pMDQyRAd1bmkwNDJFB3VuaTA0MkYHdW5pMDQzMQd1bmkwNDMyB3VuaTA0MzMHdW5pMDQzNAd1bmkwNDM2B3VuaTA0MzcHdW5pMDQzOAd1bmkwNDNBB3VuaTA0M0IHdW5pMDQzQwd1bmkwNDNEB3VuaTA0M0YHdW5pMDQ0Mgd1bmkwNDQ0B3VuaTA0NDYHdW5pMDQ0Nwd1bmkwNDQ4B3VuaTA0NDkHdW5pMDQ0QQd1bmkwNDRCB3VuaTA0NEMHdW5pMDQ0RAd1bmkwNDRFB3VuaTA0NEYHdW5pMDQ1Mgd1bmkwNDU0B3VuaTA0NTkHdW5pMDQ1QQd1bmkwNDVCB3VuaTA0NUYHdW5pMDQ2MAd1bmkwNDYxB3VuaTA0NjMHdW5pMDQ2NAd1bmkwNDY1B3VuaTA0NjYHdW5pMDQ2Nwd1bmkwNDY4B3VuaTA0NjkHdW5pMDQ2QQd1bmkwNDZCB3VuaTA0NkMHdW5pMDQ2RAd1bmkwNDZFB3VuaTA0NkYHdW5pMDQ3Mgd1bmkwNDczB3VuaTA0NzQHdW5pMDQ3NQd1bmkwNDdBB3VuaTA0N0IHdW5pMDQ3Qwd1bmkwNDdEB3VuaTA0N0UHdW5pMDQ3Rgd1bmkwNDgwB3VuaTA0ODEHdW5pMDQ4Mgd1bmkwNDgzB3VuaTA0ODQHdW5pMDQ4NQd1bmkwNDg2B3VuaTA0ODgHdW5pMDQ4OQd1bmkwNDhEB3VuaTA0OEUHdW5pMDQ4Rgd1bmkwNDkwB3VuaTA0OTEHdW5pMDQ5NAd1bmkwNDk1B3VuaTA0OUMHdW5pMDQ5RAd1bmkwNEEwB3VuaTA0QTEHdW5pMDRBNAd1bmkwNEE1B3VuaTA0QTYHdW5pMDRBNwd1bmkwNEE4B3VuaTA0QTkHdW5pMDRCNAd1bmkwNEI1B3VuaTA0QjgHdW5pMDRCOQd1bmkwNEJBB3VuaTA0QkMHdW5pMDRCRAd1bmkwNEMzB3VuaTA0QzQHdW5pMDRDNwd1bmkwNEM4B3VuaTA0RDgHdW5pMDRFMAd1bmkwNEUxB3VuaTA0RkEHdW5pMDRGQgd1bmkwNTAwB3VuaTA1MDIHdW5pMDUwMwd1bmkwNTA0B3VuaTA1MDUHdW5pMDUwNgd1bmkwNTA3B3VuaTA1MDgHdW5pMDUwOQd1bmkwNTBBB3VuaTA1MEIHdW5pMDUwQwd1bmkwNTBEB3VuaTA1MEUHdW5pMDUwRgd1bmkwNTEwB3VuaTIwMDAHdW5pMjAwMQd1bmkyMDAyB3VuaTIwMDMHdW5pMjAwNAd1bmkyMDA1B3VuaTIwMDYHdW5pMjAwNwd1bmkyMDA4B3VuaTIwMDkHdW5pMjAwQQd1bmkyMDBCDXVuZGVyc2NvcmVkYmwNcXVvdGVyZXZlcnNlZAd1bmkyMDI1B3VuaTIwNzQJbnN1cGVyaW9yBGxpcmEGcGVzZXRhBEV1cm8HdW5pMjEwNQd1bmkyMTEzB3VuaTIxMTYJZXN0aW1hdGVkCW9uZWVpZ2h0aAx0aHJlZWVpZ2h0aHMLZml2ZWVpZ2h0aHMMc2V2ZW5laWdodGhzCmNvbG9uLmxudW0JcXVvdGVkYmx4C2NvbW1hYWNjZW50B3VuaUZFRkYHdW5pRkZGQwd1bmlGRkZECWZpdmUuc21jcAhmb3VyLnN1cAl6ZXJvLmxudW0ObGFyZ2VyaWdodGhvb2sMY3lyaWxsaWNob29rEGN5cmlsbGljaG9va2xlZnQLY3lyaWxsaWN0aWMOYnJldmV0aWxkZWNvbWINYnJldmVob29rY29tYg5icmV2ZWFjdXRlY29tYhNjaXJjdW1mbGV4dGlsZGVjb21iEmNpcmN1bWZsZXhob29rY29tYhNjaXJjdW1mbGV4Z3JhdmVjb21iE2NpcmN1bWZsZXhhY3V0ZWNvbWIOYnJldmVncmF2ZWNvbWIRY29tbWFhY2NlbnRyb3RhdGUGQS5zbWNwBkIuc21jcAZDLnNtY3AGRC5zbWNwBkUuc21jcAZGLnNtY3AGRy5zbWNwBkguc21jcAZJLnNtY3AGSi5zbWNwBksuc21jcAZMLnNtY3AGTS5zbWNwBk4uc21jcAZPLnNtY3AGUS5zbWNwBlIuc21jcAZTLnNtY3AGVC5zbWNwBlUuc21jcAZWLnNtY3AGVy5zbWNwBlguc21jcAZZLnNtY3AGWi5zbWNwCXplcm8uc21jcAhvbmUuc21jcAh0d28uc21jcAp0aHJlZS5zbWNwCWZvdXIuc21jcAh0d28ubG51bQhzaXguc21jcApzZXZlbi5zbWNwCmVpZ2h0LnNtY3AJbmluZS5zbWNwB29uZS5zdXAHdHdvLnN1cAl0aHJlZS5zdXAIb25lLmxudW0IZml2ZS5zdXAHc2l4LnN1cAlzZXZlbi5zdXAJZWlnaHQuc3VwCG5pbmUuc3VwCHplcm8uc3VwCGNyb3NzYmFyCXJpbmdhY3V0ZQlkYXNpYW94aWEKdGhyZWUubG51bQlmb3VyLmxudW0JZml2ZS5sbnVtCHNpeC5sbnVtBWcuYWx0CnNldmVuLmxudW0HY2hpLmFsdAplaWdodC5sbnVtCWFscGhhLmFsdAlkZWx0YS5hbHQERC5jbgRhLmNuBVIuYWx0BUsuYWx0BWsuYWx0BksuYWx0MgZrLmFsdDIJbmluZS5sbnVtBlAuc21jcA1jeXJpbGxpY2JyZXZlB3VuaTAwQUQGRGNyb2F0BGhiYXIEVGJhcgR0YmFyCkFyaW5nYWN1dGUKYXJpbmdhY3V0ZQdBbWFjcm9uB2FtYWNyb24GQWJyZXZlBmFicmV2ZQdBb2dvbmVrB2FvZ29uZWsLQ2NpcmN1bWZsZXgLY2NpcmN1bWZsZXgHdW5pMDEwQQd1bmkwMTBCBkRjYXJvbgZkY2Fyb24HRW1hY3JvbgdlbWFjcm9uBkVicmV2ZQZlYnJldmUKRWRvdGFjY2VudAplZG90YWNjZW50B0VvZ29uZWsHZW9nb25lawZFY2Fyb24GZWNhcm9uC0djaXJjdW1mbGV4C2djaXJjdW1mbGV4B3VuaTAxMjAHdW5pMDEyMQxHY29tbWFhY2NlbnQMZ2NvbW1hYWNjZW50C0hjaXJjdW1mbGV4C2hjaXJjdW1mbGV4Bkl0aWxkZQZpdGlsZGUHSW1hY3JvbgdpbWFjcm9uBklicmV2ZQZpYnJldmUHSW9nb25lawdpb2dvbmVrCklkb3RhY2NlbnQCSUoCaWoLSmNpcmN1bWZsZXgLamNpcmN1bWZsZXgMS2NvbW1hYWNjZW50DGtjb21tYWFjY2VudAZMYWN1dGUGbGFjdXRlDExjb21tYWFjY2VudAxsY29tbWFhY2NlbnQGTGNhcm9uBmxjYXJvbgRMZG90BGxkb3QGTmFjdXRlBm5hY3V0ZQxOY29tbWFhY2NlbnQMbmNvbW1hYWNjZW50Bk5jYXJvbgZuY2Fyb24LbmFwb3N0cm9waGUHT21hY3JvbgdvbWFjcm9uBk9icmV2ZQZvYnJldmUNT2h1bmdhcnVtbGF1dA1vaHVuZ2FydW1sYXV0BlJhY3V0ZQZyYWN1dGUMUmNvbW1hYWNjZW50DHJjb21tYWFjY2VudAZSY2Fyb24GcmNhcm9uBlNhY3V0ZQZzYWN1dGULU2NpcmN1bWZsZXgLc2NpcmN1bWZsZXgHdW5pMDIxOAd1bmkwMjE5B3VuaTAyMUEHdW5pMDIxQgd1bmkwMTYyB3VuaTAxNjMGVGNhcm9uBnRjYXJvbgZVdGlsZGUGdXRpbGRlB1VtYWNyb24HdW1hY3JvbgZVYnJldmUGdWJyZXZlBVVyaW5nBXVyaW5nDVVodW5nYXJ1bWxhdXQNdWh1bmdhcnVtbGF1dAdVb2dvbmVrB3VvZ29uZWsLV2NpcmN1bWZsZXgLd2NpcmN1bWZsZXgLWWNpcmN1bWZsZXgLeWNpcmN1bWZsZXgGWmFjdXRlBnphY3V0ZQpaZG90YWNjZW50Cnpkb3RhY2NlbnQHQUVhY3V0ZQdhZWFjdXRlC09zbGFzaGFjdXRlC29zbGFzaGFjdXRlC0Rjcm9hdC5zbWNwCEV0aC5zbWNwCVRiYXIuc21jcAtBZ3JhdmUuc21jcAtBYWN1dGUuc21jcBBBY2lyY3VtZmxleC5zbWNwC0F0aWxkZS5zbWNwDkFkaWVyZXNpcy5zbWNwCkFyaW5nLnNtY3APQXJpbmdhY3V0ZS5zbWNwDUNjZWRpbGxhLnNtY3ALRWdyYXZlLnNtY3ALRWFjdXRlLnNtY3AQRWNpcmN1bWZsZXguc21jcA5FZGllcmVzaXMuc21jcAtJZ3JhdmUuc21jcAtJYWN1dGUuc21jcBBJY2lyY3VtZmxleC5zbWNwDklkaWVyZXNpcy5zbWNwC050aWxkZS5zbWNwC09ncmF2ZS5zbWNwC09hY3V0ZS5zbWNwEE9jaXJjdW1mbGV4LnNtY3ALT3RpbGRlLnNtY3AOT2RpZXJlc2lzLnNtY3ALVWdyYXZlLnNtY3ALVWFjdXRlLnNtY3AQVWNpcmN1bWZsZXguc21jcA5VZGllcmVzaXMuc21jcAtZYWN1dGUuc21jcAxBbWFjcm9uLnNtY3ALQWJyZXZlLnNtY3AMQW9nb25lay5zbWNwC0NhY3V0ZS5zbWNwEENjaXJjdW1mbGV4LnNtY3AMdW5pMDEwQS5zbWNwC0NjYXJvbi5zbWNwC0RjYXJvbi5zbWNwDEVtYWNyb24uc21jcAtFYnJldmUuc21jcA9FZG90YWNjZW50LnNtY3AMRW9nb25lay5zbWNwC0VjYXJvbi5zbWNwEEdjaXJjdW1mbGV4LnNtY3ALR2JyZXZlLnNtY3AMdW5pMDEyMC5zbWNwEUdjb21tYWFjY2VudC5zbWNwEEhjaXJjdW1mbGV4LnNtY3ALSXRpbGRlLnNtY3AMSW1hY3Jvbi5zbWNwC0licmV2ZS5zbWNwDElvZ29uZWsuc21jcA9JZG90YWNjZW50LnNtY3AQSmNpcmN1bWZsZXguc21jcBFLY29tbWFhY2NlbnQuc21jcAtMYWN1dGUuc21jcBFMY29tbWFhY2NlbnQuc21jcAtMY2Fyb24uc21jcAlMZG90LnNtY3ALTmFjdXRlLnNtY3ARTmNvbW1hYWNjZW50LnNtY3ALTmNhcm9uLnNtY3AMT21hY3Jvbi5zbWNwC09icmV2ZS5zbWNwEk9odW5nYXJ1bWxhdXQuc21jcAtSYWN1dGUuc21jcBFSY29tbWFhY2NlbnQuc21jcAtSY2Fyb24uc21jcAtTYWN1dGUuc21jcBBTY2lyY3VtZmxleC5zbWNwDVNjZWRpbGxhLnNtY3ALU2Nhcm9uLnNtY3ARVGNvbW1hYWNjZW50LnNtY3ALVGNhcm9uLnNtY3ALVXRpbGRlLnNtY3AMVW1hY3Jvbi5zbWNwC1VicmV2ZS5zbWNwClVyaW5nLnNtY3ASVWh1bmdhcnVtbGF1dC5zbWNwDFVvZ29uZWsuc21jcBBXY2lyY3VtZmxleC5zbWNwEFljaXJjdW1mbGV4LnNtY3AOWWRpZXJlc2lzLnNtY3ALWmFjdXRlLnNtY3APWmRvdGFjY2VudC5zbWNwC1pjYXJvbi5zbWNwD2dlcm1hbmRibHMuc21jcApBbHBoYXRvbm9zDEVwc2lsb250b25vcwhFdGF0b25vcwlJb3RhdG9ub3MMT21pY3JvbnRvbm9zDFVwc2lsb250b25vcwpPbWVnYXRvbm9zEWlvdGFkaWVyZXNpc3Rvbm9zBUFscGhhBEJldGEHRXBzaWxvbgRaZXRhA0V0YQRJb3RhBUthcHBhAk11Ak51B09taWNyb24DUmhvA1RhdQdVcHNpbG9uA0NoaQxJb3RhZGllcmVzaXMPVXBzaWxvbmRpZXJlc2lzCmFscGhhdG9ub3MMZXBzaWxvbnRvbm9zCGV0YXRvbm9zCWlvdGF0b25vcxR1cHNpbG9uZGllcmVzaXN0b25vcwVrYXBwYQdvbWljcm9uB3VuaTAzQkMCbnUDY2hpDGlvdGFkaWVyZXNpcw91cHNpbG9uZGllcmVzaXMMb21pY3JvbnRvbm9zDHVwc2lsb250b25vcwpvbWVnYXRvbm9zB3VuaTA0MDEHdW5pMDQwMwd1bmkwNDA1B3VuaTA0MDYHdW5pMDQwNwd1bmkwNDA4B3VuaTA0MUEHdW5pMDQwQwd1bmkwNDBFB3VuaTA0MTAHdW5pMDQxMgd1bmkwNDEzB3VuaTA0MTUHdW5pMDQxOQd1bmkwNDFDB3VuaTA0MUQHdW5pMDQxRQd1bmkwNDFGB3VuaTA0MjAHdW5pMDQyMQd1bmkwNDIyB3VuaTA0MjUHdW5pMDQzMAd1bmkwNDM1B3VuaTA0MzkHdW5pMDQzRQd1bmkwNDQwB3VuaTA0NDEHdW5pMDQ0Mwd1bmkwNDQ1B3VuaTA0NTEHdW5pMDQ1Mwd1bmkwNDU1B3VuaTA0NTYHdW5pMDQ1Nwd1bmkwNDU4B3VuaTA0NUMHdW5pMDQ1RQZXZ3JhdmUGd2dyYXZlBldhY3V0ZQZ3YWN1dGUJV2RpZXJlc2lzCXdkaWVyZXNpcwZZZ3JhdmUGeWdyYXZlBm1pbnV0ZQZzZWNvbmQJZXhjbGFtZGJsB3VuaUZCMDIHdW5pMDFGMAd1bmkwMkJDB3VuaTFFM0UHdW5pMUUzRgd1bmkxRTAwB3VuaTFFMDEHdW5pMUY0RAd1bmlGQjAzB3VuaUZCMDQHdW5pMDQwMAd1bmkwNDBEB3VuaTA0NTAHdW5pMDQ1RAd1bmkwNDcwB3VuaTA0NzEHdW5pMDQ3Ngd1bmkwNDc3B3VuaTA0NzkHdW5pMDQ3OAd1bmkwNDk4B3VuaTA0OTkHdW5pMDRBQQd1bmkwNEFCB3VuaTA0QUUHdW5pMDRBRgd1bmkwNEMwB3VuaTA0QzEHdW5pMDRDMgd1bmkwNENGB3VuaTA0RDAHdW5pMDREMQd1bmkwNEQyB3VuaTA0RDMHdW5pMDRENAd1bmkwNEQ1B3VuaTA0RDYHdW5pMDRENwd1bmkwNERBB3VuaTA0RDkHdW5pMDREQgd1bmkwNERDB3VuaTA0REQHdW5pMDRERQd1bmkwNERGB3VuaTA0RTIHdW5pMDRFMwd1bmkwNEU0B3VuaTA0RTUHdW5pMDRFNgd1bmkwNEU3B3VuaTA0RTgHdW5pMDRFOQd1bmkwNEVBB3VuaTA0RUIHdW5pMDRFQwd1bmkwNEVEB3VuaTA0RUUHdW5pMDRFRgd1bmkwNEYwB3VuaTA0RjEHdW5pMDRGMgd1bmkwNEYzB3VuaTA0RjQHdW5pMDRGNQd1bmkwNEY4B3VuaTA0RjkHdW5pMDRGQwd1bmkwNEZEB3VuaTA1MDEHdW5pMDUxMgd1bmkwNTEzB3VuaTFFQTAHdW5pMUVBMQd1bmkxRUEyB3VuaTFFQTMHdW5pMUVBNAd1bmkxRUE1B3VuaTFFQTYHdW5pMUVBNwd1bmkxRUE4B3VuaTFFQTkHdW5pMUVBQQd1bmkxRUFCB3VuaTFFQUMHdW5pMUVBRAd1bmkxRUFFB3VuaTFFQUYHdW5pMUVCMAd1bmkxRUIxB3VuaTFFQjIHdW5pMUVCMwd1bmkxRUI0B3VuaTFFQjUHdW5pMUVCNgd1bmkxRUI3B3VuaTFFQjgHdW5pMUVCOQd1bmkxRUJBB3VuaTFFQkIHdW5pMUVCQwd1bmkxRUJEB3VuaTFFQkUHdW5pMUVCRgd1bmkxRUMwB3VuaTFFQzEHdW5pMUVDMgd1bmkxRUMzB3VuaTFFQzQHdW5pMUVDNQd1bmkxRUM2B3VuaTFFQzcHdW5pMUVDOAd1bmkxRUM5B3VuaTFFQ0EHdW5pMUVDQgd1bmkxRUNDB3VuaTFFQ0QHdW5pMUVDRQd1bmkxRUNGB3VuaTFFRDAHdW5pMUVEMQd1bmkxRUQyB3VuaTFFRDMHdW5pMUVENAd1bmkxRUQ1B3VuaTFFRDYHdW5pMUVENwd1bmkxRUQ4B3VuaTFFRDkHdW5pMUVEQQd1bmkxRURCB3VuaTFFREMHdW5pMUVERAd1bmkxRURFB3VuaTFFREYHdW5pMUVFMAd1bmkxRUUxB3VuaTFFRTIHdW5pMUVFMwd1bmkxRUU0B3VuaTFFRTUHdW5pMUVFNgd1bmkxRUU3B3VuaTFFRTgHdW5pMUVFOQd1bmkxRUVBB3VuaTFFRUIHdW5pMUVFQwd1bmkxRUVEB3VuaTFFRUUHdW5pMUVFRgd1bmkxRUYwB3VuaTFFRjEHdW5pMUVGNAd1bmkxRUY1B3VuaTFFRjYHdW5pMUVGNwd1bmkxRUY4B3VuaTFFRjkGZGNyb2F0B3VuaTIwQUIHdW5pMDQ5QQd1bmkwNDlCB3VuaTA0QTIHdW5pMDRBMwd1bmkwNEFDB3VuaTA0QUQHdW5pMDRCMgd1bmkwNEIzB3VuaTA0QjYHdW5pMDRCNwd1bmkwNENCB3VuaTA0Q0MHdW5pMDRGNgd1bmkwNEY3B3VuaTA0OTYHdW5pMDQ5Nwd1bmkwNEJFB3VuaTA0QkYHdW5pMDRC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/+AA6AATATj/4QE5/+ABPP/hAUH/6QFJ/98BS//eAVP/3wFV//IAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AAFABn/8gDh//EBSf/yAUv/8gFT//IACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QADADUABMA4f/mAOL/9ADoABIA8f/nAS//5wE4/+UBOf/oAUn/5gFL/+YBU//mAVT/5wAJAOH/wwDx/88BL//OATj/5wE7/98BSf/RAUv/7AFT/6ABVP/RAAkA4f/DAPH/zwEv/84BOP/nATv/3wFJ/9EBS//sAVP/oAFU/9EAAgDU/+IBU//kAAIA1P/hAOj/5AAGAOj/7gDx/+4BBP/0ARv/8QEv/+8BVP/vAAQA8f/0AQT/9QEv//UBVP/1AAIA6P/JARf/7gAGAOgAFADx/+0A9//iAS//7QE5/+0BVP/tAAEBF//xAAUBF//rAan/6wGt/+kBtf/rAbb/6wATAEgADQDC/6sAw//AAMf/1QDo/6oBF//iARsADAFKAAsBTAALAaf/vwGp/+4Brf/sAbX/7QG2/+wBuP/1AbkADgG7AA0BvgANAd//sAAGAMX/6gDo/+4A8f+wAS//7AFU/+wB3P/oAAYA6AAUAPH/8AD8AAwBL//wATn/5gFU//AABQDoADoA8f/jAS//4gE5/+MBVP/jAAgA8f+6AQT/zwEb/9sBL/9QATn/nQFK//ABTP/yAVT/TAAIAPH/ugEE/88BG//bAS//UAE5/50BSv/wAUz/8gFU/0wABgDF/+oA6P/uAPH/sAEv/+wBVP/sAdz/6AABAOj/7wAIAPH/ugEE/88BG//bAS//UAE5/50BSv/w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/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAQAC//mAD//9ABf/+8BPP/tAAUASP/uAFn/6gG7//ABvP/tAb7/8AAFAEj/7gBZ/+oBu//wAbz/7QG+//AABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAUASP/uAFn/6gG7//ABvP/tAb7/8AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QABAaf/6wABAaf/6wABAaf/6wABAaf/6wAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAEA8f/1AAEA8f/1AAEA8f/1AAEA8f/1AAEA8f/AAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK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AUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wABAPH/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAYAxf/qAOj/7gDx/7ABL//sAVT/7AHc/+gABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAAQEX//EAAQDx//UAAgDo/8kBF//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAkACwAPAD8ADABU/+sAXwAOAaf/ywGp/+kBrf/nAbX/5wG2/+cACQALAA8APwAMAFT/6wBfAA4Bp//LAan/6QGt/+cBtf/nAbb/5wAJAAsADwA/AAwAVP/rAF8ADgGn/8sBqf/pAa3/5wG1/+cBtv/nACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAAQBZAAsAAQBZAAsAAQBZAAsACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEA8f/AABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAkACwAUAD8AEQBU/+IAXwATAaf/tAGp/9kBrf/ZAbX/2QG2/9kABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UABAAL/+YAP//0AF//7wE8/+0AJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AABARf/8QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAEA8f/1AAEA8f/1ABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAan/6QGt/+cBtf/nAbb/6QHf//AAAQEX//EACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oABgDF/+oA6P/uAPH/sAEv/+wBVP/sAdz/6AASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAEgDU/64A4QASAOb/4ADo/60A6v/WAPj/3wD8/9IBAv/gARf/zgEn/90BKf/iAS3/4AEz/+ABOf/pATz/2gFG/70BUP/fAVMAEQAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wAAEBF//xABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gABAaf/6wABAaf/6wAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QATAFn/wQCz/8UAxf+0AOX/1wDx/7kBBP+yARf/0gEb/8gBL/+gATn/xQFB/+QBSv/MAUz/zAFU/8sBVf/vAan/6AGt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/+oDJP74Ayj/VgMzABQDNf/eAzb/6wM4/+sDOv/rAzv/6AM9/+sDRP/oA0z/6ANV/1YDVv/eA1z/6wNh/+gDYv/rA2f/6wNp/+gDbv9WA2//3gNw/1YDcf/eA3X/6wN3/+sDeP/rA4L/6wOE/+sDhv/rA4r/6AOM/+gDjv/oA5X/6wOY/1YDmf/eA5r/VgOb/94DnP9WA53/3gOe/1YDn//eA6D/VgOh/94Dov9WA6P/3gOk/1YDpf/eA6b/VgOn/94DqP9WA6n/3gOq/1YDq//eA6z/VgOt/94Drv9WA6//3gOx/+sDs//rA7X/6wO3/+sDuf/rA7v/6wO9/+sDv//rA8X/6wPH/+sDyf/rA8v/6wPN/+sDz//rA9H/6wPT/+sD1f/rA9f/6wPZ/+sD2//rA93/6gPf/+oD4f/qA+P/6gPl/+oD5//qA+n/6gPr/+gD7f/oA+//6AP2ABQAHwA2/9UAOP/kADn/7AA7/90Azf/VANH/1QEU/+QBLv/VATb/1QIL/90CgP/VAoL/1QKE/9UCkv/sApT/3QKW/90C/f/dAwz/3QMP/90DM//VA0X/7ANH/+wDSf/sA0v/3QNg/+QDaP/dA+r/3QPs/90D7v/dA/b/1QQT/90AGgA2/7AAOP/tADv/0ADN/7AA0f+wART/7QEu/7ABNv+wAgv/0AKA/7ACgv+wAoT/sAKU/9AClv/QAv3/0AMM/9ADD//QAzP/sANL/9ADYP/tA2j/0APq/9AD7P/QA+7/0AP2/7AEE//QABAALP/uADf/7gIH/+4CCP/uAgn/7gIK/+4CV//uAob/7gKI/+4Civ/uAoz/7gKO/+4CkP/uAyT/7gPc/+4D3v/uAEcABAAQAAkAEABF/+gARv/oAEf/6ABJ/+gAU//oAJH/6ACV/+gAtv/oAMP/6ADE/+gA8v/oAP7/6AEZ/+gBHf/oATX/6AFH/+gBSP/oAVL/6AFlABABZgAQAWgAEAFpABABagAQAhP/6AIU/+gCFf/oAhb/6AIX/+gCL//oAjH/6AIz/+gCNf/oAjf/6AI5/+gCO//oAj3/6AI//+gCQf/oAkP/6AJF/+gCR//oAkn/6AMQ/+gDNv/oAzr/6AM9/+gDTQAQA04AEANSABADXP/oA2L/6ANn/+gDdf/oA3f/6AN4/+gDhP/oA5X/6AOx/+gDs//oA7X/6AO3/+gDuf/oA7v/6AO9/+gDv//oA9P/6APV/+gD1//oA9v/6AA9AEX/7ABG/+wAR//sAEn/7ABT/+wAkf/sAJX/7AC2/+wAw//sAMT/7ADy/+wA/v/sARn/7AEd/+wBNf/sAUf/7AFI/+wBUv/sAhP/7AIU/+wCFf/sAhb/7AIX/+wCL//sAjH/7AIz/+wCNf/sAjf/7AI5/+wCO//sAj3/7AI//+wCQf/sAkP/7AJF/+wCR//sAkn/7AMQ/+wDNv/sAzr/7AM9/+wDXP/sA2L/7ANn/+wDdf/sA3f/7AN4/+wDhP/sA5X/7AOx/+wDs//sA7X/7AO3/+wDuf/sA7v/7AO9/+wDv//sA9P/7APV/+wD1//sA9v/7AAXAFH/7AET/+wCHf/sAh7/7AIf/+wCIP/sAiH/7AJr/+wCbf/sAm//7AMW/+wDHP/sAzj/7AOC/+wDhv/sA8X/7APH/+wDyf/sA8v/7APN/+wDz//sA9H/7APZ/+wABgAO/4QAEP+EAWf/hAFr/4QBb/+EAXD/hAAQACz/7AA3/+wCB//sAgj/7AIJ/+wCCv/sAlf/7AKG/+wCiP/sAor/7AKM/+wCjv/sApD/7AMk/+wD3P/sA97/7AABKSwABAAAACIATgDEAaoCkANqBAQGnghkCTYKLAvyDCQMVgzUDroPMBACEhQSyhQwFOoVcBXOFpAXBhcYF0IYlBrSGvQcChyIHLIc3AAdAAT/8gAJ//IAWP/zAFv/8wC4//MBFf/zAWX/8gFm//IBaP/yAWn/8gFq//ICJv/zAif/8wKV//MDGP/zAzv/8wNE//MDTP/zA03/8gNO//IDUv/yA2H/8wNp//MDiv/zA4z/8wOO//MD6//zA+3/8wPv//MAOQAl//MAKf/zADH/8wAz//MAgf/zAJD/8wCU//MArv/zAM7/8wED//MBEv/zARb/8wEY//MBGv/zARz/8wE0//MBUf/zAfj/8wIC//MCA//zAgT/8wIF//MCBv/zAi7/8wIw//MCMv/zAjT/8wJC//MCRP/zAkb/8wJI//MCav/zAmz/8wJu//MCn//zAvz/8wMJ//MDL//zAzL/8wNX//MDY//zA2b/8wOB//MDg//zA4X/8wPE//MDxv/zA8j/8wPK//MDzP/zA87/8wPQ//MD0v/zA9T/8wPW//MD2P/zA9r/8wA5ACX/5gAp/+YAMf/mADP/5gCB/+YAkP/mAJT/5gCu/+YAzv/mAQP/5gES/+YBFv/mARj/5gEa/+YBHP/mATT/5gFR/+YB+P/mAgL/5gID/+YCBP/mAgX/5gIG/+YCLv/mAjD/5gIy/+YCNP/mAkL/5gJE/+YCRv/mAkj/5gJq/+YCbP/mAm7/5gKf/+YC/P/mAwn/5gMv/+YDMv/mA1f/5gNj/+YDZv/mA4H/5gOD/+YDhf/mA8T/5gPG/+YDyP/mA8r/5gPM/+YDzv/mA9D/5gPS/+YD1P/mA9b/5gPY/+YD2v/mADYAI//kADr/0gA7/9MArf/kAK//5ADV/9IBCP/kAfH/5AHy/+QB8//kAfT/5AH1/+QB9v/kAff/5AIL/9MCKP/kAir/5AIs/+QClP/TApb/0wL4/+QC/f/TAwD/5AMM/9MDDf/SAw//0wMo/+QDNP/SA0v/0wNV/+QDaP/TA2v/0gNu/+QDcP/kA3n/0gOT/9IDmP/kA5r/5AOc/+QDnv/kA6D/5AOi/+QDpP/kA6b/5AOo/+QDqv/kA6z/5AOu/+QD6v/TA+z/0wPu/9MD+P/SBAD/0gQT/9MAJgAO/x4AEP8eACP/zQCt/80Ar//NAQj/zQFn/x4Ba/8eAW//HgFw/x4B8f/NAfL/zQHz/80B9P/NAfX/zQH2/80B9//NAij/zQIq/80CLP/NAvj/zQMA/80DKP/NA1X/zQNu/80DcP/NA5j/zQOa/80DnP/NA57/zQOg/80Dov/NA6T/zQOm/80DqP/NA6r/zQOs/80Drv/NAKYARf/cAEb/3ABH/9wASf/cAE//8wBQ//MAUf/WAFL/8wBT/9wAV//dAFj/4QBb/+EAkf/cAJX/3ACX/90Atv/cALj/4QC8//MAw//cAMT/3ADG/90A5//zAOv/8wDs//MA7v/zAO//8wDw//MA8v/cAPP/8wD1//MA9v/zAPn/8wD7//MA/v/cAQD/8wET/9YBFf/hARn/3AEd/9wBMf/zATX/3AFA//MBRf/zAUf/3AFI/9wBUv/cAhP/3AIU/9wCFf/cAhb/3AIX/9wCHP/zAh3/1gIe/9YCH//WAiD/1gIh/9YCIv/dAiP/3QIk/90CJf/dAib/4QIn/+ECL//cAjH/3AIz/9wCNf/cAjf/3AI5/9wCO//cAj3/3AI//9wCQf/cAkP/3AJF/9wCR//cAkn/3AJk//MCZv/zAmj/8wJp//MCa//WAm3/1gJv/9YCh//dAon/3QKL/90Cjf/dAo//3QKR/90Clf/hAxD/3AMS//MDFP/dAxb/1gMY/+EDG//dAxz/1gMd/90DNv/cAzf/8wM4/9YDOf/zAzr/3AM7/+EDPf/cAz7/8wND//MDRP/hA0z/4QNU//MDXP/cA13/8wNh/+EDYv/cA2f/3ANp/+EDdf/cA3f/3AN4/9wDfv/zA4D/8wOC/9YDhP/cA4b/1gOK/+EDjP/hA47/4QOS//MDlf/cA7H/3AOz/9wDtf/cA7f/3AO5/9wDu//cA73/3AO//9wDxf/WA8f/1gPJ/9YDy//WA83/1gPP/9YD0f/WA9P/3APV/9wD1//cA9n/1gPb/9wD3f/dA9//3QPh/90D4//dA+X/3QPn/90D6f/dA+v/4QPt/+ED7//hA/P/8wP1//MD///zBAz/8wQO//MEEP/zAHEABP/aAAn/2gBF//AARv/wAEf/8ABJ//AAU//wAFf/7wBY/9wAW//cAJH/8ACV//AAl//vALb/8AC4/9wAw//wAMT/8ADG/+8A8v/wAP7/8AEV/9wBGf/wAR3/8AE1//ABR//wAUj/8AFS//ABZf/aAWb/2gFo/9oBaf/aAWr/2gIT//ACFP/wAhX/8AIW//ACF//wAiL/7wIj/+8CJP/vAiX/7wIm/9wCJ//cAi//8AIx//ACM//wAjX/8AI3//ACOf/wAjv/8AI9//ACP//wAkH/8AJD//ACRf/wAkf/8AJJ//ACh//vAon/7wKL/+8Cjf/vAo//7wKR/+8Clf/cAxD/8AMU/+8DGP/cAxv/7wMd/+8DNv/wAzr/8AM7/9wDPf/wA0T/3ANM/9wDTf/aA07/2gNS/9oDXP/wA2H/3ANi//ADZ//wA2n/3AN1//ADd//wA3j/8AOE//ADiv/cA4z/3AOO/9wDlf/wA7H/8AOz//ADtf/wA7f/8AO5//ADu//wA73/8AO///AD0//wA9X/8APX//AD2//wA93/7wPf/+8D4f/vA+P/7wPl/+8D5//vA+n/7wPr/9wD7f/cA+//3AA0AAT/oAAJ/6AAV//xAFj/xQBb/8UAl//xALj/xQDG//EBFf/FAWX/oAFm/6ABaP+gAWn/oAFq/6ACIv/xAiP/8QIk//ECJf/xAib/xQIn/8UCh//xAon/8QKL//ECjf/xAo//8QKR//EClf/FAxT/8QMY/8UDG//xAx3/8QM7/8UDRP/FA0z/xQNN/6ADTv+gA1L/oANh/8UDaf/FA4r/xQOM/8UDjv/FA93/8QPf//ED4f/xA+P/8QPl//ED5//xA+n/8QPr/8UD7f/FA+//xQA9AEX/5wBG/+cAR//nAEn/5wBT/+cAkf/nAJX/5wC2/+cAw//nAMT/5wDy/+cA/v/nARn/5wEd/+cBNf/nAUf/5wFI/+cBUv/nAhP/5wIU/+cCFf/nAhb/5wIX/+cCL//nAjH/5wIz/+cCNf/nAjf/5wI5/+cCO//nAj3/5wI//+cCQf/nAkP/5wJF/+cCR//nAkn/5wMQ/+cDNv/nAzr/5wM9/+cDXP/nA2L/5wNn/+cDdf/nA3f/5wN4/+cDhP/nA5X/5wOx/+cDs//nA7X/5wO3/+cDuf/nA7v/5wO9/+cDv//nA9P/5wPV/+cD1//nA9v/5wBxAAQADAAJAAwARf/oAEb/6ABH/+gASf/oAFH/6gBT/+gAWAALAFsACwCR/+gAlf/oALb/6AC4AAsAw//oAMT/6ADy/+gA/v/oARP/6gEVAAsBGf/oAR3/6AE1/+gBR//oAUj/6AFS/+gBZQAMAWYADAFoAAwBaQAMAWoADAIT/+gCFP/oAhX/6AIW/+gCF//oAh3/6gIe/+oCH//qAiD/6gIh/+oCJgALAicACwIv/+gCMf/oAjP/6AI1/+gCN//oAjn/6AI7/+gCPf/oAj//6AJB/+gCQ//oAkX/6AJH/+gCSf/oAmv/6gJt/+oCb//qApUACwMQ/+gDFv/qAxgACwMc/+oDNv/oAzj/6gM6/+gDOwALAz3/6ANEAAsDTAALA00ADANOAAwDUgAMA1z/6ANhAAsDYv/oA2f/6ANpAAsDdf/oA3f/6AN4/+gDgv/qA4T/6AOG/+oDigALA4wACwOOAAsDlf/oA7H/6AOz/+gDtf/oA7f/6AO5/+gDu//oA73/6AO//+gDxf/qA8f/6gPJ/+oDy//qA83/6gPP/+oD0f/qA9P/6APV/+gD1//oA9n/6gPb/+gD6wALA+0ACwPvAAsADABa/+0AXP/tAOn/7QKY/+0Cmv/tApz/7QM8/+0DbP/tA3r/7QOU/+0D+f/tBAH/7QAMAFr/8gBc//IA6f/yApj/8gKa//ICnP/yAzz/8gNs//IDev/yA5T/8gP5//IEAf/yAB8AWP/0AFr/8gBb//QAXP/zALj/9ADp//IBFf/0Aib/9AIn//QClf/0Apj/8wKa//MCnP/zAxj/9AM7//QDPP/yA0T/9ANM//QDYf/0A2n/9ANs//IDev/yA4r/9AOM//QDjv/0A5T/8gPr//QD7f/0A+//9AP5//IEAf/yAHkABP/KAAn/ygA2/9IAOP/UADr/9AA7/9MAT//RAFD/0QBS/9EAWP/mAFr/7wBb/+YAuP/mALz/0QDN/9IA0f/SANX/9ADZ/+0A3P/hAOf/0QDp/+8A6//RAOz/0QDu/9EA7//RAPD/0QDz/9EA9f/RAPb/0QD5/9EA+//RAQD/0QEU/9QBFf/mAS7/0gEx/9EBNv/SAUD/0QFF/9EBZf/KAWb/ygFo/8oBaf/KAWr/ygIL/9MCHP/RAib/5gIn/+YCZP/RAmb/0QJo/9ECaf/RAoD/0gKC/9IChP/SApT/0wKV/+YClv/TAv3/0wMM/9MDDf/0Aw//0wMS/9EDGP/mAyf/7QMz/9IDNP/0Azf/0QM5/9EDO//mAzz/7wM+/9EDQ//RA0T/5gNL/9MDTP/mA03/ygNO/8oDUv/KA1T/0QNd/9EDYP/UA2H/5gNo/9MDaf/mA2v/9ANs/+8Def/0A3r/7wN+/9EDgP/RA4n/7QOK/+YDi//tA4z/5gON/+0Djv/mA4//4QOS/9EDk//0A5T/7wPq/9MD6//mA+z/0wPt/+YD7v/TA+//5gPz/9ED9f/RA/b/0gP4//QD+f/vA/r/4QP8/+ED///RBAD/9AQB/+8EDP/RBA7/0QQQ/9EEE//TAB0ANv++AFj/7wBb/+8AuP/vAM3/vgDR/74BFf/vAS7/vgE2/74CJv/vAif/7wKA/74Cgv++AoT/vgKV/+8DGP/vAzP/vgM7/+8DRP/vA0z/7wNh/+8Daf/vA4r/7wOM/+8Djv/vA+v/7wPt/+8D7//vA/b/vgA0ADb/5gA4/+cAOv/yADv/5wBa//EAzf/mANH/5gDV//IA2f/uANz/6ADp//EBFP/nAS7/5gE2/+YCC//nAoD/5gKC/+YChP/mApT/5wKW/+cC/f/nAwz/5wMN//IDD//nAyf/7gMz/+YDNP/yAzz/8QNL/+cDYP/nA2j/5wNr//IDbP/xA3n/8gN6//EDif/uA4v/7gON/+4Dj//oA5P/8gOU//ED6v/nA+z/5wPu/+cD9v/mA/j/8gP5//ED+v/oA/z/6AQA//IEAf/xBBP/5wCEACMAEAAl/+gAKf/oADH/6AAz/+gANv/gADj/4AA7/98Agf/oAJD/6ACU/+gArQAQAK7/6ACvABAAzf/gAM7/6ADPABAA0f/gANgAEADc/+EA7QAQAPT/4AD/ABABA//oAQgAEAES/+gBFP/gARb/6AEY/+gBGv/oARz/6AEu/+ABNP/oATb/4AFNABABUf/oAfEAEAHyABAB8wAQAfQAEAH1ABAB9gAQAfcAEAH4/+gCAv/oAgP/6AIE/+gCBf/oAgb/6AIL/98CKAAQAioAEAIsABACLv/oAjD/6AIy/+gCNP/oAkL/6AJE/+gCRv/oAkj/6AJq/+gCbP/oAm7/6AKA/+ACgv/gAoT/4AKU/98Clv/fAp//6AL4ABAC/P/oAv3/3wMAABADCf/oAwz/3wMP/98DKAAQAy//6AMy/+gDM//gA0v/3wNVABADV//oA2D/4ANj/+gDZv/oA2j/3wNuABADcAAQA4H/6AOD/+gDhf/oA4//4QOQ/+ADlgAQA5cAEAOYABADmgAQA5wAEAOeABADoAAQA6IAEAOkABADpgAQA6gAEAOqABADrAAQA64AEAPE/+gDxv/oA8j/6APK/+gDzP/oA87/6APQ/+gD0v/oA9T/6APW/+gD2P/oA9r/6APq/98D7P/fA+7/3wP2/+AD+v/hA/v/4AP8/+ED/f/gBBEAEAQSABAEE//fAC0ANv/xADj/9AA6//QAO//wAM3/8QDP//UA0f/xANX/9ADY//UA2f/zART/9AEu//EBNv/xAU3/9QIL//ACgP/xAoL/8QKE//EClP/wApb/8AL9//ADDP/wAw3/9AMP//ADJ//zAzP/8QM0//QDS//wA2D/9ANo//ADa//0A3n/9AOJ//MDi//zA43/8wOT//QDlv/1A+r/8APs//AD7v/wA/b/8QP4//QEAP/0BBH/9QQT//AAWQAjAA8ANv/mADj/5gA6AA4AO//mAK0ADwCvAA8Azf/mAM8ADgDR/+YA1QAOANgADgDZAAsA3P/lAO0ADwD0/+gA/wAPAQgADwEU/+YBLv/mATb/5gFNAA4B8QAPAfIADwHzAA8B9AAPAfUADwH2AA8B9wAPAgv/5gIoAA8CKgAPAiwADwKA/+YCgv/mAoT/5gKU/+YClv/mAvgADwL9/+YDAAAPAwz/5gMNAA4DD//mAycACwMoAA8DM//mAzQADgNL/+YDVQAPA2D/5gNo/+YDawAOA24ADwNwAA8DeQAOA4kACwOLAAsDjQALA4//5QOQ/+gDkwAOA5YADgOXAA8DmAAPA5oADwOcAA8DngAPA6AADwOiAA8DpAAPA6YADwOoAA8DqgAPA6wADwOuAA8D6v/mA+z/5gPu/+YD9v/mA/gADgP6/+UD+//oA/z/5QP9/+gEAAAOBBEADgQSAA8EE//mAC4ANv/jADr/5QA7/+QAzf/jAM//5QDR/+MA1f/lANj/5QDZ/+kA7f/qAP//6gEu/+MBNv/jAU3/5QIL/+QCgP/jAoL/4wKE/+MClP/kApb/5AL9/+QDDP/kAw3/5QMP/+QDJ//pAzP/4wM0/+UDS//kA2j/5ANr/+UDef/lA4n/6QOL/+kDjf/pA5P/5QOW/+UDl//qA+r/5APs/+QD7v/kA/b/4wP4/+UEAP/lBBH/5QQS/+oEE//kACEANv/iADr/5ADN/+IAz//kANH/4gDV/+QA2P/kANn/6QDt/+sA///rAS7/4gE2/+IBTf/kAoD/4gKC/+IChP/iAw3/5AMn/+kDM//iAzT/5ANr/+QDef/kA4n/6QOL/+kDjf/pA5P/5AOW/+QDl//rA/b/4gP4/+QEAP/kBBH/5AQS/+sAFwA2/+sAO//zAM3/6wDR/+sBLv/rATb/6wIL//MCgP/rAoL/6wKE/+sClP/zApb/8wL9//MDDP/zAw//8wMz/+sDS//zA2j/8wPq//MD7P/zA+7/8wP2/+sEE//zADAAT//vAFD/7wBS/+8AWv/wALz/7wDn/+8A6f/wAOv/7wDs/+8A7v/vAO//7wDw/+8A8//vAPX/7wD2/+8A+f/vAPv/7wEA/+8BMf/vAUD/7wFF/+8CHP/vAmT/7wJm/+8CaP/vAmn/7wMS/+8DN//vAzn/7wM8//ADPv/vA0P/7wNU/+8DXf/vA2z/8AN6//ADfv/vA4D/7wOS/+8DlP/wA/P/7wP1/+8D+f/wA///7wQB//AEDP/vBA7/7wQQ/+8AHQAE//IACf/yAFj/9QBb//UAuP/1ARX/9QFl//IBZv/yAWj/8gFp//IBav/yAib/9QIn//UClf/1Axj/9QM7//UDRP/1A0z/9QNN//IDTv/yA1L/8gNh//UDaf/1A4r/9QOM//UDjv/1A+v/9QPt//UD7//1AAQA9P/tA5D/7QP7/+0D/f/tAAoABP/1AAn/9QFl//UBZv/1AWj/9QFp//UBav/1A03/9QNO//UDUv/1AFQARf/wAEb/8ABH//AASf/wAFH/6wBT//AAkf/wAJX/8AC2//AAw//wAMT/8ADy//AA/v/wARP/6wEZ//ABHf/wATX/8AFH//ABSP/wAVL/8AIT//ACFP/wAhX/8AIW//ACF//wAh3/6wIe/+sCH//rAiD/6wIh/+sCL//wAjH/8AIz//ACNf/wAjf/8AI5//ACO//wAj3/8AI///ACQf/wAkP/8AJF//ACR//wAkn/8AJr/+sCbf/rAm//6wMQ//ADFv/rAxz/6wM2//ADOP/rAzr/8AM9//ADXP/wA2L/8ANn//ADdf/wA3f/8AN4//ADgv/rA4T/8AOG/+sDlf/wA7H/8AOz//ADtf/wA7f/8AO5//ADu//wA73/8AO///ADxf/rA8f/6wPJ/+sDy//rA83/6wPP/+sD0f/rA9P/8APV//AD1//wA9n/6wPb//AAjwAEAA0ACQANAEP/8ABF/7AARv+wAEf/sABJ/7AAUf/WAFP/sABYAAsAWwALAJH/sACV/7AAtv+wALgACwDE/7AA7f+vAPL/sAD+/7AA//+vARP/1gEVAAsBGf+wAR3/sAE1/7ABR/+wAUj/sAFS/7ABZQANAWYADQFoAA0BaQANAWoADQIM//ACDf/wAg7/8AIP//ACEP/wAhH/8AIS//ACE/+wAhT/sAIV/7ACFv+wAhf/sAId/9YCHv/WAh//1gIg/9YCIf/WAiYACwInAAsCKf/wAiv/8AIt//ACL/+wAjH/sAIz/7ACNf+wAjf/sAI5/7ACO/+wAj3/sAI//7ACQf+wAkP/sAJF/7ACR/+wAkn/sAJr/9YCbf/WAm//1gKVAAsDEP+wAxb/1gMYAAsDHP/WAzX/8AM2/7ADOP/WAzr/sAM7AAsDPf+wA0QACwNMAAsDTQANA04ADQNSAA0DVv/wA1z/sANhAAsDYv+wA2f/sANpAAsDb//wA3H/8AN1/7ADd/+wA3j/sAOC/9YDhP+wA4b/1gOKAAsDjAALA44ACwOV/7ADl/+vA5n/8AOb//ADnf/wA5//8AOh//ADo//wA6X/8AOn//ADqf/wA6v/8AOt//ADr//wA7H/sAOz/7ADtf+wA7f/sAO5/7ADu/+wA73/sAO//7ADxf/WA8f/1gPJ/9YDy//WA83/1gPP/9YD0f/WA9P/sAPV/7AD1/+wA9n/1gPb/7AD6wALA+0ACwPvAAsEEv+vAAgA7QAQAPT/8AD/ABADkP/wA5cAEAP7//AD/f/wBBIAEABFAEUADABGAAwARwAMAEkADABTAAwAkQAMAJUADAC2AAwAwwAMAMQADADtABgA8gAMAPT/9wD+AAwA/wAYARkADAEdAAwBNQAMAUcADAFIAAwBUgAMAhMADAIUAAwCFQAMAhYADAIXAAwCLwAMAjEADAIzAAwCNQAMAjcADAI5AAwCOwAMAj0ADAI/AAwCQQAMAkMADAJFAAwCRwAMAkkADAMQAAwDNgAMAzoADAM9AAwDXAAMA2IADANnAAwDdQAMA3cADAN4AAwDhAAMA5D/9wOVAAwDlwAYA7EADAOzAAwDtQAMA7cADAO5AAwDuwAMA70ADAO/AAwD0wAMA9UADAPXAAwD2wAMA/v/9wP9//cEEgAYAB8AWP/0AFr/8ABb//QAuP/0AOn/8ADt//MA///zARX/9AIm//QCJ//0ApX/9AMY//QDO//0Azz/8ANE//QDTP/0A2H/9ANp//QDbP/wA3r/8AOK//QDjP/0A47/9AOU//ADl//zA+v/9APt//QD7//0A/n/8AQB//AEEv/zAAoABP/WAAn/1gFl/9YBZv/WAWj/1gFp/9YBav/WA03/1gNO/9YDUv/WAAoABP/1AAn/9QFl//UBZv/1AWj/9QFp//UBav/1A03/9QNO//UDUv/1AF4ABAALAAkACwBF/+sARv/rAEf/6wBJ/+sAUf/pAFP/6wCR/+sAlf/rALb/6wDD/+sAxP/rAPL/6wD+/+sBE//pARn/6wEd/+sBNf/rAUf/6wFI/+sBUv/rAWUACwFmAAsBaAALAWkACwFqAAsCE//rAhT/6wIV/+sCFv/rAhf/6wId/+kCHv/pAh//6QIg/+kCIf/pAi//6wIx/+sCM//rAjX/6wI3/+sCOf/rAjv/6wI9/+sCP//rAkH/6wJD/+sCRf/rAkf/6wJJ/+sCa//pAm3/6QJv/+kDEP/rAxb/6QMc/+kDNv/rAzj/6QM6/+sDPf/r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ATEDUgNXATUDWgNaATsDXANcATwDYANhAT0DZgNmAT8DaANxAUADdAN1AUoDdwN6AUwDgQOCAVADhgOGAVIDiAOOAVMDkwOUAVoDmAPAAVwDwgPCAYUDxAPRAYYD2QPZAZQD3APcAZUD3gPeAZYD6gPvAZcD8gPyAZ0D9AP0AZ4D9gP2AZ8D+AP5AaAD/gQBAaIEBAQEAaYEBgQHAacECQQJAakEDQQNAaoEDwQPAasEEwQTAawAAQAKAAoAKAAzADQAPQBIAE0AVgBZAF0AAQAiAJkAsACyALMAtAC7AL4AvwDAAMUAxwDIAMkAzQDRANMA1ADWAN4A4gDjAOQA5QDmAOgA6gDsAPEA8wD2APsA/gEdAdwAAgB2AAQABAAAAAkACQABAA4ADgACABAAEAADACMAJwAEACoAMgAJADYAPAASAEMARQAZAEcARwAcAEoASgAdAE8AUgAeAFQAVAAiAFgAWAAjAFoAXAAkAIgAiAAnAKwArwAoALgAuAAsALwAvAAtAMIAwgAuAM8A0AAvANIA0gAxANUA1QAyANcA2QAzANsA2wA2AN0A3QA3AN8A3wA4AOEA4QA5AOcA5wA6AOkA6QA7APIA8gA8APcA9wA9APkA+gA+AP8BAABAAQUBBQBCAQgBCABDARMBFQBEAScBKQBHASwBLABKAS4BLgBLAUUBRQBMAWUBawBNAW8BcABUAewB7QBWAe8B7wBYAfECFwBZAhwCIQCAAiYCNgCGAjgCQQCXAkoCTAChAk4CTgCkAlACUAClAlICUgCmAlQCVACnAlcCVwCoAlkCWQCpAlsCWwCqAl0CXQCrAl8CXwCsAmECYQCtAmMCbwCuAnECcQC7AnMCcwC8AnUCdQC9AoACgAC+AoICggC/AoQChADAAoYChgDBAogCiADCAooCigDDAowCjADEAo4CjgDFApACkADGApICkgDHApQCnADIAvgC/QDRAwADDwDXAxIDEgDnAxYDFgDoAxgDGADpAxwDHADqAx8DIADrAyIDKwDtAy0DLwD3AzEDNgD6AzgDPgEAA0QDRQEHA0cDRwEJA0kDSQEKA0sDTgELA1IDVwEPA1oDWgEVA1wDXAEWA2ADYQEXA2YDcQEZA3QDdQElA3cDegEnA4EDggErA4YDhgEtA4gDjgEuA5MDlAE1A5gDwAE3A8IDwgFgA8QD0QFhA9kD2QFvA9wD3AFwA94D3gFxA+oD7wFyA/ID8gF4A/QD9AF5A/YD9gF6A/gD+QF7A/4EAQF9BAQEBAGBBAYEBwGCBAkECQGEBA0EDQGFBA8EDwGGBBMEEwGHAAIBOAAEAAQAHQAJAAkAHQAOAA4AHgAQABAAHgAkACQAAQAlACUABAAmACYAAwAnACcABQAqACsAAgAsACwADAAtAC0ACQAuAC4ACgAvADAAAgAxADEAAwAyADIACwA2ADYABgA3ADcADAA4ADgADQA5ADkAEAA6ADoADgA7ADsADwA8ADwAEQBDAEMAEwBEAEQAFQBFAEUAFABHAEcAFgBKAEoAFwBPAFAAFwBRAFEAGABSAFIAFQBUAFQAGgBYAFgAGQBaAFoAGwBbAFsAGQBcAFwAHACIAIgAFQCsAKwABwCuAK4AAwC4ALgAGQC8ALwAFwDCAMIAFQDPANAAHwDSANIAAgDVANUADgDXANgAAgDZANkAEgDbANsAAgDdAN0AAgDfAN8AHwDhAOEAHwDnAOcACADpAOkAGwDyAPIAFQD3APcAIAD5APkAIAD6APoAFQD/AQAAIAEFAQUAIAETARMAGAEUARQADQEVARUAGQEnAScAFQEoASgABwEpASkACAEsASwACQEuAS4ACQFFAUUACAFlAWYAHQFnAWcAHgFoAWoAHQFrAWsAHgFvAXAAHgHsAe0AAwHvAe8ABgH4AfgABAH5AfwABQH9AgEAAgICAgYAAwIHAgoADAILAgsADwIMAhIAEwITAhMAFAIUAhcAFgIcAhwAFwIdAiEAGAImAicAGQIpAikAEwIrAisAEwItAi0AEwIuAi4ABAIvAi8AFAIwAjAABAIxAjEAFAIyAjIABAIzAjMAFAI0AjQABAI1AjUAFAI2AjYAAwI4AjgABQI5AjkAFgI6AjoABQI7AjsAFgI8AjwABQI9Aj0AFgI+Aj4ABQI/Aj8AFgJAAkAABQJBAkEAFgJKAkoAAgJLAksAFwJMAkwAAgJOAk4AAgJQAlAAAgJSAlIAAgJUAlQAAgJXAlcADAJZAlkACQJbAlsACgJdAl0ACgJfAl8ACgJhAmEACgJjAmMAAgJkAmQAFwJlAmUAAgJmAmYAFwJnAmcAAgJoAmkAFwJqAmoAAwJrAmsAGAJsAmwAAwJtAm0AGAJuAm4AAwJvAm8AGAJxAnEAGgJzAnMAGgJ1AnUAGgKAAoAABgKCAoIABgKEAoQABgKGAoYADAKIAogADAKKAooADAKMAowADAKOAo4ADAKQApAADAKSApIAEAKUApQADwKVApUAGQKWApYADwKXApcAEQKYApgAHAKZApkAEQKaApoAHAKbApsAEQKcApwAHAL5AvkABQL6AvsAAgL8AvwAAwL9Av0ADwMBAwEAAQMCAwIABQMDAwMAEQMEAwUAAgMGAwYACQMHAwgAAgMJAwkAAwMKAwoACwMLAwsABgMMAwwADwMNAw0ADgMOAw4AAgMPAw8ADwMSAxIAFwMWAxYAGAMYAxgAGQMcAxwAGAMfAx8ABQMgAyAABwMiAyMAAgMkAyQADAMlAyYACQMnAycAEgMpAykAAQMqAyoABwMrAysABQMtAy4AAgMvAy8AAwMxAzEACwMyAzIABAMzAzMABgM0AzQADgM1AzUAEwM2AzYAFgM4AzgAGAM5AzkAFQM6AzoAFAM7AzsAGQM8AzwAGwM9Az0AFgM+Az4ACANEA0QAGQNFA0UAEANHA0cAEANJA0kAEANLA0sADwNMA0wAGQNNA04AHQNSA1IAHQNTA1MAAgNUA1QAFwNWA1YAEwNXA1cAAwNaA1oABQNcA1wAFgNgA2AADQNhA2EAGQNmA2YABANnA2cAFANoA2gADwNpA2kAGQNqA2oAAgNrA2sADgNsA2wAGwNtA20AAgNvA28AEwNxA3EAEwN0A3QABQN1A3UAFgN3A3gAFgN5A3kADgN6A3oAGwOBA4EAAwOCA4IAGAOGA4YAGAOIA4gAFQOJA4kAEgOKA4oAGQOLA4sAEgOMA4wAGQONA40AEgOOA44AGQOTA5MADgOUA5QAGwOZA5kAEwObA5sAEwOdA50AEwOfA58AEwOhA6EAEwOjA6MAEwOlA6UAEwOnA6cAEwOpA6kAEwOrA6sAEwOtA60AEwOvA68AEwOwA7AABQOxA7EAFgOyA7IABQOzA7MAFgO0A7QABQO1A7UAFgO2A7YABQO3A7cAFgO4A7gABQO5A7kAFgO6A7oABQO7A7sAFgO8A7wABQO9A70AFgO+A74ABQO/A78AFgPAA8AAAgPCA8IAAgPEA8QAAwPFA8UAGAPGA8YAAwPHA8cAGAPIA8gAAwPJA8kAGAPKA8oAAwPLA8sAGAPMA8wAAwPNA80AGAPOA84AAwPPA88AGAPQA9AAAwPRA9EAGAPZA9kAGAPcA9wADAPeA94ADAPqA+oADwPrA+sAGQPsA+wADwPtA+0AGQPuA+4ADwPvA+8AGQPyA/IACQP0A/QAAgP2A/YABgP4A/gADgP5A/kAGwP+A/4ABwP/A/8ACAQABAAADgQBBAEAGwQEBAQAFwQGBAYAHwQHBAcABwQJBAkACQQNBA0AAgQPBA8AAgQTBBMADwABAAQEFgAHAAAAAAAAAAAABwAAAAAAAAAAABMAFwATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAFAAAAAAAAAAUAAAAAABwAAAAAAAAAAAAFAAAABQAAABkACgAGAA0ACQASAA4AFAAAAAAAAAAAAAAAAAAaAAAAFQAVABUAAAAVAAAAAAAAAAAAAAAYABgACAAYABUAAAAbAAAACwACAAAAFgACAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAVAAAAAAAFABUAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEABQARAAAAAAAAAAAAAAAAABUAAAACAAAAAAAAABgAAAAAAAAAAAAAAAAAFQAVAAAACwAAAAAAAAAAAAAAAAAKAAUAAQAAAAoAAAAAAAAAEgAAAAAAAQAQAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABYAAAAYABgABAAYABgAGAAAABUAGAADABgAGAAAAAAAGAAAABgAAAAAABUABAAYAAAAAAAFAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAFAAgADQACAAUAAAAFABUABQAAAAUAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAABgAAAAAAAUAFQAKAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAYAAAAFQAVAAAAAAAAAAAAAQAAAAAAAAAFABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAXAAAABwAHABMABwAHAAcAEwAAAAAAAAATABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAABEAEQARABEAEQARABEABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABgAGAAYABgAOABoAGgAaABoAGgAaABoAFQAVABUAFQAVAAAAAAAAAAAAGAAIAAgACAAIAAgACwALAAsACwACAAIAEQAaABEAGgARABoABQAVAAUAFQAFABUABQAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAUAFQAFABUABQAVAAUAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAYABgABQAIAAUACAAFAAgAAAAAAAAAAAAAAAAAGQAbABkAGwAZABsAGQAbABkAGwAKAAAACgAAAAoAAAAGAAsABgALAAYACwAGAAsABgALAAYACwAJAAAADgACAA4AFAAMABQADAAUAAwAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAUADgAAAAAAEQAAAAAAFAAAAAAAAAAAAAAABQAAAAAADgASAAAADgAVAAAAGAAAAAsAAAAIAAAAAgAAAAAACwAIAAsAAAAAAAAAAAAAAAAAHAAAAAAAEAARAAAAAAAAAAAAAAAAAAUAAAAAAAUACgASABoAFQAYAAgAGAAVAAIAFgAVABgAGwAAAAAAAAAYAAIACQAAAAkAAAAJAAAADgACAAcABwAAAAAAAAAHAAAAGAARABoABQAAAAAAAAAAABUAGAAAAAAADQACABUABQAAAAAABQAVAA4AAgAAABIAFgAAABEAGgARABoAAAAAAAAAFQAAABUAFQASABYAAAAAAAAAGAAAABgABQAIAAUAFQAFAAgAAAAAABAAAgAQAAIAEAACAA8AAwAAABgAEgAWABUAAQAEABEAGgARABoAEQAaABEAGgARABoAEQAaABEAGgARABoAEQAaABEAGgARABoAEQAaAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAAAAAAAAAFAAgABQAIAAUACAAFAAgABQAIAAUACAAFAAgABQAVAAUAFQAFABUABQAIAAUAFQAGAAsABgALAAAACwAAAAsAAAALAAAACwAAAAsADgACAA4AAgAOAAIAAAAAAAAAGAAAABgACgAAABIAFgAPAAMADwADAAAAGAASABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAGAAAABgAAQAEAA4AAAAAAAAAAAAAABcAAQAAAAoALACOAAFERkxUAAgABAAAAAD//wAIAAAAAQACAAMABAAFAAYABwAIbGlnYQAybG51bQA4c21jcAA+c3MwMQBEc3MwMgBKc3MwMwBQc3MwNABWc3MwNQBcAAAAAQABAAAAAQACAAAAAQAAAAAAAQADAAAAAQAEAAAAAQAFAAAAAQAGAAAAAQAHAAgAEgAaACIAKgAyADoAQgBKAAEAAAABAEAABAAAAAEB9gABAAAAAQIAAAEAAAABAhIAAQAAAAECEAABAAAAAQIOAAEAAAABAgwAAQAAAAECDgACAhAA3AGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAHoAbUBtgG3AbgBuQG6AbsBvAG9Ab4BpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQB6AG1AbYBtwG4AbkBugG7AbwBvQG+AvcCogKhAqICowKjAqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+AqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+AvMCvwK/AsACwALBAsECwgLCAsMCwwLFAsUCxgLGAscCxwLIAsgCyQLJAsoCygLLAssCzALMAs0CzQLPAs8C0ALQAtEC0QLSAtIC0wLTAtQC1ALVAtYC1gLXAtcC2ALYAtkC2QLaAtoC2wLbAtwC3ALdAt0C3gLeAt8C3wLgAuAC4QLhAuIC4gLjAuMC5ALkAuUC5QLmAuYC5wLnAugC6P////8C6gLqAusC6wLsAuwC7QLtAu4C7gLvAu8C8ALwAvEC8QLyAvIC8wL0AvQC9QL1AvYC9gKhAAEApAABAAgAAQAEAZIAAgBLAAIAmAAKAZgBzAHEAdYB1wHYAdkB2wHdAecAAQCIAZEAAQCIASgAAQCIAa4AAgCIAAIB4wHkAAIAfgACAeUB5gACAA0AIwA8AAAAQwBcABoAgwCDADQAhQCFADUB7AHtADYB7wIxADgCNAJFAHsCSAJUAI0CVwJoAJoCagJ7AKwCfgJ/AL4CggKcAMAD8APwANsAAQABAEgAAgABABIAGwAAAAEAAQBJAAEAAQC2AAEAAQA0AAEAAgAtAE0=", +"Roboto-Medium.ttf":"AAEAAAAOAIAAAwBgR0RFRgsuCy8AASxgAAAASEdQT1OQeyOPAAEsqAAAl/pHU1VCeolvLwABxKQAAANsT1MvMrkTKcoAAAFoAAAAYFZETVhu6nZPAAASOAAABeBjbWFwf76BZgAAGBgAAA7iZ2x5Zm8zqQ4AACb8AADUQGhlYWT1Pw7VAAAA7AAAADZoaGVhCx4JIwAAASQAAAAkaG10eLpNNCcAAAHIAAAQcGxvY2EEms7QAAD7PAAACDptYXhwBDsA9gAAAUgAAAAgbmFtZb10XwMAAQN4AAAEn3Bvc3Tfb5xiAAEIGAAAJEYAAQAAAAEAAF5SMstfDzz1AAkIAAAAAADE8BEuAAAAAM2CsnL6JP3VCYsIYgAAAAkAAgAAAAAAAAABAAAHbP4MAAAJnfok/V0JiwABAAAAAAAAAAAAAAAAAAAEHAABAAAEHACXABYAXQAFAAEAAAAAAAAAAAAAAAAAAwABAAME3gH0AAUAAAWaBTMAAAEfBZoFMwAAA9EAZgIAAAAAAAAAAAAAAAAA4AAC/1AAIFsAAAAgAAAAAHB5cnMAAAAA//0GAP4AAGYHmgIAIAABn08BAAAEOgWwAAAAIAACAf4AAAAAAAAB/gAAAf4AAAKYAFIE4gA8BIwAZAXgAGQFHQA+AVoAUgK3AIACvAARA38AGwR1AEQBwgAnAqAARwI8AJkDKgACBIwAaASMAMoEjABRBIwATwSMADgEjACBBIwAdASMAEUEjABhBIwAUgIlAJkCIABRBBEAPwSOAJEEKgCAA+QAKQchAEoFQgAaBSAAnwUgAHQFYgCfBKMAnwShAJ8FbQB0BbAAnwJNAK0EfAA6BSgAnwRkAJ8HAgCfBbAAnwWPAHQFKwCfBZAAdAVFAJ8E8wBTBOoANQV0AIYFKwAaBwIARAUUAC8FAwATBMAAWAIxAIQDVwAVAjEADANrADUDnAADApQASgRaAF4EiACABDMAUQSIAFMEPABZAs8AMQSIAFQEiAB9AhMAkAIZ/7AEMACBAhMAkAb1AIAEiAB+BIgAUwSIAIAEiABTAtoAgAQpAFECnQAZBIgAewQOACAF+gAlBA4AIQQOABAEDgBVAq8AOAICAK4CrwAbBVEAdQIeAI8EfQBoBLUAUQWdAF0E4AAaAfwAiAT4AFoEHgCkBkQAVwORAHQD4gBUBG0AfwZEAFcD2wCHAwoAfwRLAF8DYQBtA2MAYQKxAHgEuwCSBBAAPgJCAKACEABtAjUAZAOnAHcD4gBcBgwAmwZmAJMG0wBmBAEAYAeF//YERABNBXoAaQTKAJQE5wCIBsEANAS6ADwEkQBDBIkAUwSXAIcFogAYAhoAjwSYAI4EJAAbAj8AGwWSAJMEiAB+B7QAZQc6AFsCDACLAtD/3QWJAGYEnwBSBaUAhgTyAHsCJv+1BDwAWQPmAJsDsAB5A3wAdQJPAJoCsgCCAk0AKQPYAIADLwB6ApwAqwAA/NsAAP02AAD8eQAA/T4AAPwMAAD9IgJdANcEPACdAkIAoAR1AJ8FvQAaBXsAZgU5ACMEkQBwBbEAnwSRAEcF6wBLBacASAVbAGwEhABWBMYAlgQOACAEiABUBGAAYAQaAGEEiAB+BKIAcwKmAKkEagAWBBMAZAT3AE8EiACABDcAUgSQAFIELgBABGAAgAXQAEQFyQBPBpQAZgUuAHUEdf/uBnEAMwX/ACQFPgByCIoALgiRAJ8GXwA1BasAmQUIAJQGBwAmB5oAGATTAEoFqgCaBakALgUKAD8GYABPBfYAmQWIAI8HmgCeB/oAngYaABgG+QCfBQcAlAU8AIgHVACqBPsALQR9AFsEjwCPA1oAhQT2ACcGdgAXBBYATQSYAIYEbgCPBJoAHwYDAI8ElwCGBJgAhgP1ACMF0wBUBNMAhgRmAF8GjgCGBuwAfgUYAB8GbwCPBGgAjwQ8AFEGhACQBHAAJwSJ/+EEPQBYBtEAHwbkAIYEif/1BJgAhgdDAI0GTwBwBGf/4AcpAKIGAQCGBQcAIARgAAoHQgC2BjYAnQbtAIQF5gCCCTIArQf5AI8EIQApA/AAMwV7AGoEiQBSBRkAEQQOACAFewBqBIkAUwc+AI0GRAB0B0MAjQZQAHAFHQBqBEoAXAT/AG0AAPxmAAD8cwAA/XsAAP2lAAD6JP7p+k0EZ//gBRQAnwSHAIAEagCUA6IAfgS3AJ8EIAB+BSoAlASrAI4GlgA0BaQAPgfRAJ8FqwB+CEcAnwb1AH4GJQBpBP8AYQcyAC4FcQAmBXUAggRzAHQFhwCKBiYAIATE/84FHwCUBHgAjgWwAJ8EiAB+BYgAUwSmAF0EpgBdBMcAOwNTADQFBwBUBusAZgbdAF4GUwA7BSgALwR7AEkEPwB1B74AQwadAD8H/gCYBp4AdwUDAGIELABVBaoAIgUdAEQFVwCHBBQAAAgpAAAEFAAACCkAAAK5AAACCgAAAVwAAAR/AAACMAAAAaIAAADRAAAAAAAABYcArQaBALIDnQAEAcAAYAG8ADMBzgAyAagARwMUAGIDGwBAAwgAMgRdAEAEmQBcAssAiAP6AJwFpgCcB6gASwJyAGwCaQBUA5wALQOpAD8DXABpBLUATwa4AJkETQBLBeUAcQPiAEUIyACYBQkAZAUUAJYGyQBpB2EAageRAGoG7wBqBLsAQwWWAKYE2QBABIMAngSyADsIRQBkAiH/sgSOAGUETACYBEYAqgRLAKAEGgAkAlsAswKYAGMB8QBFBKgAGAAAAAAIMABZCDUAXAQyAE0DiwBNBJMAbAMn/58CEP+wAk0AGAGzAFwDoQB1A6EAdQOhAHUECwB5BAsAdQQL/0wECwB6A6EAWwIFAJAEyAAcBIwAjgSUAGgErwCOBEcAjgQqAI4E2wBoBRIAjgIVAI4EFwAuBHcAjgO9AI4GBgCOBSEAjgTKAGYE3QBoBKgAjgRwAE8EMgA8BQAAfgSxABwGDgA0BIwALARVABMETQBKBIYAbQKFAD4D/wBSBCIATQRlADkEfABRBD0AbQOvADwEQwBSBCoAPwIzAFcDVQBrA2YAYAL9ADgDdgBoA3YAcAMAAFIDgwBoA2YAYAOfAHADuQCXArIAlgNCAGwEjABPBIwAOASMAIEEmAB0BDsACgQ0ADIEYgA+BIwAYQS7AFYEiABTBUkAnwRaAGAFMgCfBSgAnwQwAIEFOgCfBC0AgQSNAFIEjACOA3wAdQH+AAACoABHBYAAJAWAACQEpv/9BOoANQKd/+cFQgAaBUIAGgVCABoFQgAaBUIAGgVCABoFQgAaBSAAdASjAJ8EowCfBKMAnwSjAJ8CTf/MAk0ArQJN/9gCTf+9BbAAnwWPAHQFjwB0BY8AdAWPAHQFjwB0BXQAhgV0AIYFdACGBXQAhgUDABMEWgBeBFoAXgRaAF4EWgBeBFoAXgRaAF4EWgBeBDMAUQQ8AFkEPABZBDwAWQQ8AFkCGv+vAhoAjwIa/7sCGv+gBIgAfgSIAFMEiABTBIgAUwSIAFMEiABTBIgAewSIAHsEiAB7BIgAewQOABAEDgAQBUIAGgRaAF4FQgAaBFoAXgVCABoEWgBeBSAAdAQzAFEFIAB0BDMAUQUgAHQEMwBRBSAAdAQzAFEFYgCfBR4AUwSjAJ8EPABZBKMAnwQ8AFkEowCfBDwAWQSjAJ8EPABZBKMAnwQ8AFkFbQB0BIgAVAVtAHQEiABUBW0AdASIAFQFbQB0BIgAVAWwAJ8EiAB9Ak3/vwIa/6ICTf+/Ahr/ogJN/+UCGv/IAk0AHAIT//4CTQCjBskArQQsAJAEfAA6Aib/tQUoAJ8EMACBBGQAnwITAJAEZACfAhMAWARkAJ8CqQCQBGQAnwLvAJAFsACfBIgAfgWwAJ8EiAB+BbAAnwSIAH4EiP/VBY8AdASIAFMFjwB0BIgAUwWPAHQEiABTBUUAnwLaAIAFRQCfAtoAVgVFAJ8C2gBDBPMAUwQpAFEE8wBTBCkAUQTzAFMEKQBRBPMAUwQpAFEE8wBTBCkAUQTqADUCnQAZBOoANQKdABkE6gA1AsUAGQV0AIYEiAB7BXQAhgSIAHsFdACGBIgAewV0AIYEiAB7BXQAhgSIAHsFdACGBIgAewcCAEQF+gAlBQMAEwQOABAFAwATBMAAWAQOAFUEwABYBA4AVQTAAFgEDgBVB4X/9gbBADQFegBpBIkAUwSv/+oEr//qBDIAPATIABwEyAAcBMgAHATIABwEyAAcBMgAHATIABwElABoBEcAjgRHAI4ERwCOBEcAjgIV/6wCFQCOAhX/uAIV/50FIQCOBMoAZgTKAGYEygBmBMoAZgTKAGYFAAB+BQAAfgUAAH4FAAB+BFUAEwTIABwEyAAcBMgAHASUAGgElABoBJQAaASUAGgErwCOBEcAjgRHAI4ERwCOBEcAjgRHAI4E2wBoBNsAaATbAGgE2wBoBRIAjgIV/58CFf+fAhX/xQIV//kCFQCEBBcALgR3AI4DvQCOA70AjgO9AI4DvQCOBSEAjgUhAI4FIQCOBMoAZgTKAGYEygBmBKgAjgSoAI4EqACOBHAATwRwAE8EcABPBHAATwQyADwEMgA8BQAAfgUAAH4FAAB+BQAAfgUAAH4FAAB+Bg4ANARVABMEVQATBE0ASgRNAEoETQBKCOAATwVCABoFB/+vBhT/3AKx/+MFowAqBWf/ZwVvABMCpv+wBUIAGgUgAJ8EowCfBMAAWAWwAJ8CTQCtBSgAnwcCAJ8FsACfBY8AdAUrAJ8E6gA1BQMAEwUUAC8CTf+9BQMAEwSEAFYEYABgBIgAfgKmAKkEYACABJgAjgSIAFMEuwCSBA4AIAQOACECpv/EBGAAgASIAFMEYACABpQAZgSjAJ8EdQCfBPMAUwJNAK0CTf+9BHwAOgUoAJ8FKACfBQoAPwVCABoFIACfBHUAnwSjAJ8FqgCaBwIAnwWwAJ8FjwB0BbEAnwUrAJ8FIAB0BOoANQUUAC8EWgBeBDwAWQSYAIYEiABTBIgAgAQzAFEEDgAQBA4AIQQ8AFkDWgCFBCkAUQITAJACGv+gAhn/sARuAI8EDgAQBwIARAX6ACUHAgBEBfoAJQcCAEQF+gAlBQMAEwQOABABWgBSApgAUgRKAJoE4gAxAib/tQG8ADMHAgCfBvUAgAVCABoEWgBeBY//PQd3ADEHsQAxBKMAnwWqAJoEPABZBJgAhgWnAEgFyQBPBRkAEQQO/+MIlgBTCZ0AdATTAEoEFgBNBSAAdAQzAFEFAwATBA4AIAJNAK0HmgAYBnYAFwJNAK0FQgAaBFoAXgVCABoEWgBeB4X/9gbBADQEowCfBDwAWQWIAFMEPABZBDwAWQeaABgGdgAXBNMASgQWAE0FqgCaBJgAhgWqAJoEmACGBY8AdASIAFMFewBqBIkAUgV7AGoEiQBSBTwAiAQ8AFEFCgA/BA4AEAUKAD8EDgAQBQoAPwQOABAFiACPBGYAXwb5AJ8GbwCPBRQALwQOACEEiABTBakALgSaAB8FQgAaBFoAXgVCABoEWgBeBUIAGgRaAF4FQgAEBFr/iQVCABoEWgBeBUIAGgRaAF4FQgAaBFoAXgVCABoEWgBeBUIAGgRaAF4FQgAaBFoAXgVCABoEWgBeBUIAGgRaAF4EowCfBDwAWQSjAJ8EPABZBKMAnwQ8AFkEowCfBDwAWQSj/8wEPP+LBKMAnwQ8AFkEowCfBDwAWQSjAJ8EPABZAk0ArQIaAI8CTQCfAhMAggWPAHQEiABTBY8AdASIAFMFjwB0BIgAUwWPACsEiP+mBY8AdASIAFMFjwB0BIgAUwWPAHQEiABTBYkAZgSfAFIFiQBmBJ8AUgWJAGYEnwBSBYkAZgSfAFIFiQBmBJ8AUgV0AIYEiAB7BXQAhgSIAHsFpQCGBPIAewWlAIYE8gB7BaUAhgTyAHsFpQCGBPIAewWlAIYE8gB7BQMAEwQOABAFAwATBA4AEAUDABMEDgAQBKYAUwSmAFMFKACf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w83m/k4AAAAAAf/9AAAEKgYYABwAAAEjERc+ATMyFhURIxE0JiMiBgcRIxEjNTM1MxUzAoz+AzWXYLC982RoSW4m856e8/4Ex/7sAUtR1Of9bQKVgnA6NfzoBMeqp6cAAAEANQAABLUFsAAPAAABIxEjESM1MxEhNSEVIREzA73P883N/joEgP45zwMS/O4DEqoBMcPD/s8AAf/n/+wCdgVBAB8AAAERMxUjFTMVIxEUFjMyNjcXDgEjIiY1ESM1MzUjNTMRAaHDw9XVMSsZLBQaIV4xg4/Hx5WVBUH++bSlqv75RTYHBrIQFJmrAQeqpbQBB///ABoAAAUoByICJgAjAAAABwBCAPwBXP//ABoAAAUoByECJgAjAAAABwBzAbMBW///ABoAAAUoB0cCJgAjAAAABwCaALcBWf//ABoAAAUoB2MCJgAjAAAABwCgALkBbP//ABoAAAUoBw0CJgAjAAAABwBoAJMBXf//ABoAAAUoB48CJgAjAAAABwCeAUwBs///ABoAAAUoB70CJgAjAAAABwHUAVIBKP//AHT+PATYBcUCJgAlAAAABwB3Acb/+///AJ8AAAR1ByICJgAnAAAABwBCAMQBXP//AJ8AAAR1ByECJgAnAAAABwBzAXsBW///AJ8AAAR1B0cCJgAnAAAABwCaAH8BWf//AJ8AAAR1Bw0CJgAnAAAABwBoAFsBXf///8wAAAGgByICJgArAAAABwBC/4IBXP//AK0AAAKEByECJgArAAAABwBzADgBW////9gAAAJ5B0cCJgArAAAABwCa/z0BWf///70AAAKSBw0CJgArAAAABwBo/xkBXf//AJ8AAAUQB2MCJgAwAAAABwCgAO4BbP//AHT/6wUbBzcCJgAxAAAABwBCASMBcf//AHT/6wUbBzYCJgAxAAAABwBzAdoBcP//AHT/6wUbB1wCJgAxAAAABwCaAN4Bbv//AHT/6wUbB3gCJgAxAAAABwCgAOABgf//AHT/6wUbByICJgAxAAAABwBoALoBcv//AIb/6wTxByICJgA3AAAABwBCARcBXP//AIb/6wTxByECJgA3AAAABwBzAc4BW///AIb/6wTxB0cCJgA3AAAABwCaANIBWf//AIb/6wTxBw0CJgA3AAAABwBoAK4BXf//ABMAAATvByECJgA7AAAABwBzAZYBW///AF7/7AQB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AAcAnADtAcH//wBU/kwECAYaAiYASQAAAAYAnHlqAAD//wB0/+sE4gc2AiYAKQAAAAcAnQGHAYD//wBU/kwECAXfAiYASQAAAAcAnQETACn//wB0/eIE4gXFAiYAKQAAAAcBkQG2/qv//wBU/kwECAaKAiYASQAAAAcBpQEtAH7//wCfAAAFEAdHAiYAKgAAAAcAmgDoAVn//wB9AAAEDAdiAiYASgAAAAcAmgAbAXT///+/AAACkAdjAiYAKwAAAAcAoP8/AWz///+iAAACcwYMAiYAigAAAAcAoP8iABX///+/AAAClgb2AiYAKwAAAAcAbv84AUb///+iAAACeQWgAiYAigAAAAcAbv8b//D////lAAACawdcAiYAKwAAAAcAnP9wAaz////IAAACTgYFAiYAigAAAAcAnP9TAFX//wAc/lwBoAWwAiYAKwAAAAYAn/MKAAD////+/lIBgwYYAiYASwAAAAYAn9UAAAD//wCjAAABpgchAiYAKwAAAAcAnQAJAWv//wCt/+sGMwWwACYAKwAAAAcALAJNAAD//wCQ/ksDoQYYACYASwAAAAcATAITAAD//wA6/+sEsgc/AiYALAAAAAcAmgF2AVH///+1/ksCZAXjAiYAmAAAAAcAmv8o//X//wCf/fAFLwWwAiYALQAAAAcBkQGK/rn//wCB/fIENQYYAiYATQAAAAcBkQEv/rv//wCfAAAELwb4AiYALgAAAAcAcwAqATL//wCQAAACZwdfAiYATgAAAAcAcwAbAZn//wCf/fIELwWwAiYALgAAAAcBkQF1/rv//wBY/fIBgwYYAiYATgAAAAcBkQAT/rv//wCfAAAELwWyAiYALgAAAAcBkQIEBKz//wCQAAAC6AYYACYATgAAAAcBkQGOBRL//wCfAAAELwWwAiYALgAAAAcAnQG7/dT//wCQAAAC9wYYACYATgAAAAcAnQFa/a///wCfAAAFEAchAiYAMAAAAAcAcwHoAVv//wB+AAAECwXfAiYAUAAAAAcAcwFTABn//wCf/fIFEAWwAiYAMAAAAAcBkQHg/rv//wB+/fIECwROAiYAUAAAAAcBkQFL/rv//wCfAAAFEAdOAiYAMAAAAAcAmwEDAV3//wB+AAAECwYMAiYAUAAAAAYAm24bAAD////VAAAECwYYAiYAUAAAAAcBkf+QBRL//wB0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aAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcABhAGMAaABlAC4AbwByAGcALwBsAGkAYwBlAG4AcwBlAHMALwBMAEkAQwBFAE4AUwBFAC0AMgAuADAAUgBvAGIAbwB0AG8ATQBlAGQAaQB1AG0AAAIAAAAAAAD/agBkAAAAAAAAAAAAAAAAAAAAAAAAAAAEHAAAAQIAAgADAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAKMAhACFAL0AlgDoAIYAjgCLAJ0AqQCkAIoBAwCDAJMA8gDzAI0AlwCIAQQA3gDxAJ4AqgD1APQA9gCiAJAA8ACRAO0AiQCgAOoAuAChAO4BBQDXAQYA4gDjAQcBCACwALEBCQCmAQoBCwEMAQ0BDgEPANgA4QDbANwA3QDgANkA3wEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiAJ8BIwEkASUBJgEnASgBKQEqASsBLAEtAJsBLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQCyALMBzgC2ALcAxAHPALQAtQDFAIIAwgCHAdAAqwDGAL4AvwC8AdEB0gHTAdQB1QHWAdcB2ACMAdkB2gHbAdwB3QCYAJoAmQDvAKUAkgCcAKcAjwCUAJUAuQHeAd8B4ADAAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+Af8CAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgITAhQCFQIWAhcCGAIZAhoCGwIcAh0CHgIfAiACIQIiAiMCJAIlAiYCJwIoAikCKgIrAiwCLQIuAi8CMAIxAjICMwI0AjUCNgI3AKwCOAI5AOkCOgI7AjwArQDJAMcArgBiAGMCPQBkAMsAZQDIAMoAzwDMAM0AzgBmANMA0ADRAK8AZwDWANQA1QBoAOsAagBpAGsAbQBsAG4CPgBvAHEAcAByAHMAdQB0AHYAdwB4AHoAeQB7AH0AfAB/AH4AgACBAOwAugI/AkACQQJCAkMCRAD9AP4CRQJGAkcCSAD/AQACSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAPgA+QJXAlgCWQJaAlsCXAJdAl4CXwJgAmECYgJjAmQCZQJmAmcCaAJpAmoCawJsAm0CbgJvAnACcQJyAnMCdAJ1AnYCdwJ4AnkCegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUChgKHAogCiQKKAPsA/AKLAowA5ADlAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqIAuwKjAqQCpQKmAOYA5wKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygLLAswCzQLOAs8C0ALRAtIC0wLUAtUC1gLXAtgC2QLaAtsC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gLvAvAC8QLyAvMC9AL1AvYC9wL4AvkC+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyADIQMiAyMDJAMlAyYDJwMoAykDKgMrAywDLQMuAy8DMAMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A3oDewN8A30DfgN/A4ADgQOCA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DkAORA5IDkwOUA5UDlgOXA5gDmQOaA5sDnAOdA54DnwOgA6EDogOjA6QDpQOmA6cDqAOpA6oDqwOsA60DrgOvA7ADsQOyA7MDtAO1A7YDtwO4A7kDugO7A7wDvQO+A78DwAPBA8IDwwPEA8UDxgPHA8gDyQPKA8sDzAPNA84DzwPQA9ED0gPTA9QD1QPWA9cD2APZA9oD2wPcA90D3gPfA+AD4QPiA+MD5APlA+YD5wPoA+kD6gPrA+wD7QPuA+8D8APxA/ID8wP0A/UD9gP3A/gD+QP6A/sD/AP9A/4D/wQABAEEAgQDBAQEBQQGBAcECAQJBAoECwQMBA0EDgQPBBAEEQQSBBMEFAQVBBYEFwQYBBkEGgQbBBwEHQQeBB8EIAQhAPcEIgQjAAQHdW5pMDAwOQZtYWNyb24OcGVyaW9kY2VudGVyZWQESGJhcgxrZ3JlZW5sYW5kaWMDRW5nA2VuZwVsb25ncwVPaG9ybgVvaG9ybgVVaG9ybgV1aG9ybgd1bmkwMjM3BXNjaHdhB3VuaTAyRjMJZ3JhdmVjb21iCWFjdXRlY29tYgl0aWxkZWNvbWIEaG9vawd1bmkwMzBGCGRvdGJlbG93BXRvbm9zDWRpZXJlc2lzdG9ub3MJYW5vdGVsZWlhBUdhbW1hBURlbHRhBVRoZXRhBkxhbWJkYQJYaQJQaQVTaWdtYQNQaGkDUHNpBWFscGhhBGJldGEFZ2FtbWEFZGVsdGEHZXBzaWxvbgR6ZXRhA2V0YQV0aGV0YQRpb3RhBmxhbWJkYQJ4aQNyaG8Gc2lnbWExBXNpZ21hA3RhdQd1cHNpbG9uA3BoaQNwc2kFb21lZ2EHdW5pMDNEMQd1bmkwM0QyB3VuaTAzRDYHdW5pMDQwMgd1bmkwNDA0B3VuaTA0MDkHdW5pMDQwQQd1bmkwNDBCB3VuaTA0MEYHdW5pMDQxMQd1bmkwNDE0B3VuaTA0MTYHdW5pMDQxNwd1bmkwNDE4B3VuaTA0MUIHdW5pMDQyMwd1bmkwNDI0B3VuaTA0MjYHdW5pMDQyNwd1bmkwNDI4B3VuaTA0MjkHdW5pMDQyQQd1bmkwNDJCB3VuaTA0MkMHdW5pMDQyRAd1bmkwNDJFB3VuaTA0MkYHdW5pMDQzMQd1bmkwNDMyB3VuaTA0MzMHdW5pMDQzNAd1bmkwNDM2B3VuaTA0MzcHdW5pMDQzOAd1bmkwNDNBB3VuaTA0M0IHdW5pMDQzQwd1bmkwNDNEB3VuaTA0M0YHdW5pMDQ0Mgd1bmkwNDQ0B3VuaTA0NDYHdW5pMDQ0Nwd1bmkwNDQ4B3VuaTA0NDkHdW5pMDQ0QQd1bmkwNDRCB3VuaTA0NEMHdW5pMDQ0RAd1bmkwNDRFB3VuaTA0NEYHdW5pMDQ1Mgd1bmkwNDU0B3VuaTA0NTkHdW5pMDQ1QQd1bmkwNDVCB3VuaTA0NUYHdW5pMDQ2MAd1bmkwNDYxB3VuaTA0NjMHdW5pMDQ2NAd1bmkwNDY1B3VuaTA0NjYHdW5pMDQ2Nwd1bmkwNDY4B3VuaTA0NjkHdW5pMDQ2QQd1bmkwNDZCB3VuaTA0NkMHdW5pMDQ2RAd1bmkwNDZFB3VuaTA0NkYHdW5pMDQ3Mgd1bmkwNDczB3VuaTA0NzQHdW5pMDQ3NQd1bmkwNDdBB3VuaTA0N0IHdW5pMDQ3Qwd1bmkwNDdEB3VuaTA0N0UHdW5pMDQ3Rgd1bmkwNDgwB3VuaTA0ODEHdW5pMDQ4Mgd1bmkwNDgzB3VuaTA0ODQHdW5pMDQ4NQd1bmkwNDg2B3VuaTA0ODgHdW5pMDQ4OQd1bmkwNDhEB3VuaTA0OEUHdW5pMDQ4Rgd1bmkwNDkwB3VuaTA0OTEHdW5pMDQ5NAd1bmkwNDk1B3VuaTA0OUMHdW5pMDQ5RAd1bmkwNEEwB3VuaTA0QTEHdW5pMDRBNAd1bmkwNEE1B3VuaTA0QTYHdW5pMDRBNwd1bmkwNEE4B3VuaTA0QTkHdW5pMDRCNAd1bmkwNEI1B3VuaTA0QjgHdW5pMDRCOQd1bmkwNEJBB3VuaTA0QkMHdW5pMDRCRAd1bmkwNEMzB3VuaTA0QzQHdW5pMDRDNwd1bmkwNEM4B3VuaTA0RDgHdW5pMDRFMAd1bmkwNEUxB3VuaTA0RkEHdW5pMDRGQgd1bmkwNTAwB3VuaTA1MDIHdW5pMDUwMwd1bmkwNTA0B3VuaTA1MDUHdW5pMDUwNgd1bmkwNTA3B3VuaTA1MDgHdW5pMDUwOQd1bmkwNTBBB3VuaTA1MEIHdW5pMDUwQwd1bmkwNTBEB3VuaTA1MEUHdW5pMDUwRgd1bmkwNTEwB3VuaTIwMDAHdW5pMjAwMQd1bmkyMDAyB3VuaTIwMDMHdW5pMjAwNAd1bmkyMDA1B3VuaTIwMDYHdW5pMjAwNwd1bmkyMDA4B3VuaTIwMDkHdW5pMjAwQQd1bmkyMDBCDXVuZGVyc2NvcmVkYmwNcXVvdGVyZXZlcnNlZAd1bmkyMDI1B3VuaTIwNzQJbnN1cGVyaW9yBGxpcmEGcGVzZXRhBEV1cm8HdW5pMjEwNQd1bmkyMTEzB3VuaTIxMTYJZXN0aW1hdGVkCW9uZWVpZ2h0aAx0aHJlZWVpZ2h0aHMLZml2ZWVpZ2h0aHMMc2V2ZW5laWdodGhzCmNvbG9uLmxudW0JcXVvdGVkYmx4C2NvbW1hYWNjZW50B3VuaUZFRkYHdW5pRkZGQwd1bmlGRkZECWZpdmUuc21jcAhmb3VyLnN1cAl6ZXJvLmxudW0ObGFyZ2VyaWdodGhvb2sMY3lyaWxsaWNob29rEGN5cmlsbGljaG9va2xlZnQLY3lyaWxsaWN0aWMOYnJldmV0aWxkZWNvbWINYnJldmVob29rY29tYg5icmV2ZWFjdXRlY29tYhNjaXJjdW1mbGV4dGlsZGVjb21iEmNpcmN1bWZsZXhob29rY29tYhNjaXJjdW1mbGV4Z3JhdmVjb21iE2NpcmN1bWZsZXhhY3V0ZWNvbWIOYnJldmVncmF2ZWNvbWIRY29tbWFhY2NlbnRyb3RhdGUGQS5zbWNwBkIuc21jcAZDLnNtY3AGRC5zbWNwBkUuc21jcAZGLnNtY3AGRy5zbWNwBkguc21jcAZJLnNtY3AGSi5zbWNwBksuc21jcAZMLnNtY3AGTS5zbWNwBk4uc21jcAZPLnNtY3AGUS5zbWNwBlIuc21jcAZTLnNtY3AGVC5zbWNwBlUuc21jcAZWLnNtY3AGVy5zbWNwBlguc21jcAZZLnNtY3AGWi5zbWNwCXplcm8uc21jcAhvbmUuc21jcAh0d28uc21jcAp0aHJlZS5zbWNwCWZvdXIuc21jcAh0d28ubG51bQhzaXguc21jcApzZXZlbi5zbWNwCmVpZ2h0LnNtY3AJbmluZS5zbWNwB29uZS5zdXAHdHdvLnN1cAl0aHJlZS5zdXAIb25lLmxudW0IZml2ZS5zdXAHc2l4LnN1cAlzZXZlbi5zdXAJZWlnaHQuc3VwCG5pbmUuc3VwCHplcm8uc3VwCGNyb3NzYmFyCXJpbmdhY3V0ZQlkYXNpYW94aWEKdGhyZWUubG51bQlmb3VyLmxudW0JZml2ZS5sbnVtCHNpeC5sbnVtBWcuYWx0CnNldmVuLmxudW0HY2hpLmFsdAplaWdodC5sbnVtCWFscGhhLmFsdAlkZWx0YS5hbHQERC5jbgRhLmNuBVIuYWx0BUsuYWx0BWsuYWx0BksuYWx0MgZrLmFsdDIJbmluZS5sbnVtBlAuc21jcA1jeXJpbGxpY2JyZXZlB3VuaTAwQUQGRGNyb2F0BGhiYXIEVGJhcgR0YmFyCkFyaW5nYWN1dGUKYXJpbmdhY3V0ZQdBbWFjcm9uB2FtYWNyb24GQWJyZXZlBmFicmV2ZQdBb2dvbmVrB2FvZ29uZWsLQ2NpcmN1bWZsZXgLY2NpcmN1bWZsZXgHdW5pMDEwQQd1bmkwMTBCBkRjYXJvbgZkY2Fyb24HRW1hY3JvbgdlbWFjcm9uBkVicmV2ZQZlYnJldmUKRWRvdGFjY2VudAplZG90YWNjZW50B0VvZ29uZWsHZW9nb25lawZFY2Fyb24GZWNhcm9uC0djaXJjdW1mbGV4C2djaXJjdW1mbGV4B3VuaTAxMjAHdW5pMDEyMQxHY29tbWFhY2NlbnQMZ2NvbW1hYWNjZW50C0hjaXJjdW1mbGV4C2hjaXJjdW1mbGV4Bkl0aWxkZQZpdGlsZGUHSW1hY3JvbgdpbWFjcm9uBklicmV2ZQZpYnJldmUHSW9nb25lawdpb2dvbmVrCklkb3RhY2NlbnQCSUoCaWoLSmNpcmN1bWZsZXgLamNpcmN1bWZsZXgMS2NvbW1hYWNjZW50DGtjb21tYWFjY2VudAZMYWN1dGUGbGFjdXRlDExjb21tYWFjY2VudAxsY29tbWFhY2NlbnQGTGNhcm9uBmxjYXJvbgRMZG90BGxkb3QGTmFjdXRlBm5hY3V0ZQxOY29tbWFhY2NlbnQMbmNvbW1hYWNjZW50Bk5jYXJvbgZuY2Fyb24LbmFwb3N0cm9waGUHT21hY3JvbgdvbWFjcm9uBk9icmV2ZQZvYnJldmUNT2h1bmdhcnVtbGF1dA1vaHVuZ2FydW1sYXV0BlJhY3V0ZQZyYWN1dGUMUmNvbW1hYWNjZW50DHJjb21tYWFjY2VudAZSY2Fyb24GcmNhcm9uBlNhY3V0ZQZzYWN1dGULU2NpcmN1bWZsZXgLc2NpcmN1bWZsZXgHdW5pMDIxOAd1bmkwMjE5B3VuaTAyMUEHdW5pMDIxQgd1bmkwMTYyB3VuaTAxNjMGVGNhcm9uBnRjYXJvbgZVdGlsZGUGdXRpbGRlB1VtYWNyb24HdW1hY3JvbgZVYnJldmUGdWJyZXZlBVVyaW5nBXVyaW5nDVVodW5nYXJ1bWxhdXQNdWh1bmdhcnVtbGF1dAdVb2dvbmVrB3VvZ29uZWsLV2NpcmN1bWZsZXgLd2NpcmN1bWZsZXgLWWNpcmN1bWZsZXgLeWNpcmN1bWZsZXgGWmFjdXRlBnphY3V0ZQpaZG90YWNjZW50Cnpkb3RhY2NlbnQHQUVhY3V0ZQdhZWFjdXRlC09zbGFzaGFjdXRlC29zbGFzaGFjdXRlC0Rjcm9hdC5zbWNwCEV0aC5zbWNwCVRiYXIuc21jcAtBZ3JhdmUuc21jcAtBYWN1dGUuc21jcBBBY2lyY3VtZmxleC5zbWNwC0F0aWxkZS5zbWNwDkFkaWVyZXNpcy5zbWNwCkFyaW5nLnNtY3APQXJpbmdhY3V0ZS5zbWNwDUNjZWRpbGxhLnNtY3ALRWdyYXZlLnNtY3ALRWFjdXRlLnNtY3AQRWNpcmN1bWZsZXguc21jcA5FZGllcmVzaXMuc21jcAtJZ3JhdmUuc21jcAtJYWN1dGUuc21jcBBJY2lyY3VtZmxleC5zbWNwDklkaWVyZXNpcy5zbWNwC050aWxkZS5zbWNwC09ncmF2ZS5zbWNwC09hY3V0ZS5zbWNwEE9jaXJjdW1mbGV4LnNtY3ALT3RpbGRlLnNtY3AOT2RpZXJlc2lzLnNtY3ALVWdyYXZlLnNtY3ALVWFjdXRlLnNtY3AQVWNpcmN1bWZsZXguc21jcA5VZGllcmVzaXMuc21jcAtZYWN1dGUuc21jcAxBbWFjcm9uLnNtY3ALQWJyZXZlLnNtY3AMQW9nb25lay5zbWNwC0NhY3V0ZS5zbWNwEENjaXJjdW1mbGV4LnNtY3AMdW5pMDEwQS5zbWNwC0NjYXJvbi5zbWNwC0RjYXJvbi5zbWNwDEVtYWNyb24uc21jcAtFYnJldmUuc21jcA9FZG90YWNjZW50LnNtY3AMRW9nb25lay5zbWNwC0VjYXJvbi5zbWNwEEdjaXJjdW1mbGV4LnNtY3ALR2JyZXZlLnNtY3AMdW5pMDEyMC5zbWNwEUdjb21tYWFjY2VudC5zbWNwEEhjaXJjdW1mbGV4LnNtY3ALSXRpbGRlLnNtY3AMSW1hY3Jvbi5zbWNwC0licmV2ZS5zbWNwDElvZ29uZWsuc21jcA9JZG90YWNjZW50LnNtY3AQSmNpcmN1bWZsZXguc21jcBFLY29tbWFhY2NlbnQuc21jcAtMYWN1dGUuc21jcBFMY29tbWFhY2NlbnQuc21jcAtMY2Fyb24uc21jcAlMZG90LnNtY3ALTmFjdXRlLnNtY3ARTmNvbW1hYWNjZW50LnNtY3ALTmNhcm9uLnNtY3AMT21hY3Jvbi5zbWNwC09icmV2ZS5zbWNwEk9odW5nYXJ1bWxhdXQuc21jcAtSYWN1dGUuc21jcBFSY29tbWFhY2NlbnQuc21jcAtSY2Fyb24uc21jcAtTYWN1dGUuc21jcBBTY2lyY3VtZmxleC5zbWNwDVNjZWRpbGxhLnNtY3ALU2Nhcm9uLnNtY3ARVGNvbW1hYWNjZW50LnNtY3ALVGNhcm9uLnNtY3ALVXRpbGRlLnNtY3AMVW1hY3Jvbi5zbWNwC1VicmV2ZS5zbWNwClVyaW5nLnNtY3ASVWh1bmdhcnVtbGF1dC5zbWNwDFVvZ29uZWsuc21jcBBXY2lyY3VtZmxleC5zbWNwEFljaXJjdW1mbGV4LnNtY3AOWWRpZXJlc2lzLnNtY3ALWmFjdXRlLnNtY3APWmRvdGFjY2VudC5zbWNwC1pjYXJvbi5zbWNwD2dlcm1hbmRibHMuc21jcApBbHBoYXRvbm9zDEVwc2lsb250b25vcwhFdGF0b25vcwlJb3RhdG9ub3MMT21pY3JvbnRvbm9zDFVwc2lsb250b25vcwpPbWVnYXRvbm9zEWlvdGFkaWVyZXNpc3Rvbm9zBUFscGhhBEJldGEHRXBzaWxvbgRaZXRhA0V0YQRJb3RhBUthcHBhAk11Ak51B09taWNyb24DUmhvA1RhdQdVcHNpbG9uA0NoaQxJb3RhZGllcmVzaXMPVXBzaWxvbmRpZXJlc2lzCmFscGhhdG9ub3MMZXBzaWxvbnRvbm9zCGV0YXRvbm9zCWlvdGF0b25vcxR1cHNpbG9uZGllcmVzaXN0b25vcwVrYXBwYQdvbWljcm9uB3VuaTAzQkMCbnUDY2hpDGlvdGFkaWVyZXNpcw91cHNpbG9uZGllcmVzaXMMb21pY3JvbnRvbm9zDHVwc2lsb250b25vcwpvbWVnYXRvbm9zB3VuaTA0MDEHdW5pMDQwMwd1bmkwNDA1B3VuaTA0MDYHdW5pMDQwNwd1bmkwNDA4B3VuaTA0MUEHdW5pMDQwQwd1bmkwNDBFB3VuaTA0MTAHdW5pMDQxMgd1bmkwNDEzB3VuaTA0MTUHdW5pMDQxOQd1bmkwNDFDB3VuaTA0MUQHdW5pMDQxRQd1bmkwNDFGB3VuaTA0MjAHdW5pMDQyMQd1bmkwNDIyB3VuaTA0MjUHdW5pMDQzMAd1bmkwNDM1B3VuaTA0MzkHdW5pMDQzRQd1bmkwNDQwB3VuaTA0NDEHdW5pMDQ0Mwd1bmkwNDQ1B3VuaTA0NTEHdW5pMDQ1Mwd1bmkwNDU1B3VuaTA0NTYHdW5pMDQ1Nwd1bmkwNDU4B3VuaTA0NUMHdW5pMDQ1RQZXZ3JhdmUGd2dyYXZlBldhY3V0ZQZ3YWN1dGUJV2RpZXJlc2lzCXdkaWVyZXNpcwZZZ3JhdmUGeWdyYXZlBm1pbnV0ZQZzZWNvbmQJZXhjbGFtZGJsB3VuaUZCMDIHdW5pMDFGMAd1bmkwMkJDB3VuaTFFM0UHdW5pMUUzRgd1bmkxRTAwB3VuaTFFMDEHdW5pMUY0RAd1bmlGQjAzB3VuaUZCMDQHdW5pMDQwMAd1bmkwNDBEB3VuaTA0NTAHdW5pMDQ1RAd1bmkwNDcwB3VuaTA0NzEHdW5pMDQ3Ngd1bmkwNDc3B3VuaTA0NzkHdW5pMDQ3OAd1bmkwNDk4B3VuaTA0OTkHdW5pMDRBQQd1bmkwNEFCB3VuaTA0QUUHdW5pMDRBRgd1bmkwNEMwB3VuaTA0QzEHdW5pMDRDMgd1bmkwNENGB3VuaTA0RDAHdW5pMDREMQd1bmkwNEQyB3VuaTA0RDMHdW5pMDRENAd1bmkwNEQ1B3VuaTA0RDYHdW5pMDRENwd1bmkwNERBB3VuaTA0RDkHdW5pMDREQgd1bmkwNERDB3VuaTA0REQHdW5pMDRERQd1bmkwNERGB3VuaTA0RTIHdW5pMDRFMwd1bmkwNEU0B3VuaTA0RTUHdW5pMDRFNgd1bmkwNEU3B3VuaTA0RTgHdW5pMDRFOQd1bmkwNEVBB3VuaTA0RUIHdW5pMDRFQwd1bmkwNEVEB3VuaTA0RUUHdW5pMDRFRgd1bmkwNEYwB3VuaTA0RjEHdW5pMDRGMgd1bmkwNEYzB3VuaTA0RjQHdW5pMDRGNQd1bmkwNEY4B3VuaTA0RjkHdW5pMDRGQwd1bmkwNEZEB3VuaTA1MDEHdW5pMDUxMgd1bmkwNTEzB3VuaTFFQTAHdW5pMUVBMQd1bmkxRUEyB3VuaTFFQTMHdW5pMUVBNAd1bmkxRUE1B3VuaTFFQTYHdW5pMUVBNwd1bmkxRUE4B3VuaTFFQTkHdW5pMUVBQQd1bmkxRUFCB3VuaTFFQUMHdW5pMUVBRAd1bmkxRUFFB3VuaTFFQUYHdW5pMUVCMAd1bmkxRUIxB3VuaTFFQjIHdW5pMUVCMwd1bmkxRUI0B3VuaTFFQjUHdW5pMUVCNgd1bmkxRUI3B3VuaTFFQjgHdW5pMUVCOQd1bmkxRUJBB3VuaTFFQkIHdW5pMUVCQwd1bmkxRUJEB3VuaTFFQkUHdW5pMUVCRgd1bmkxRUMwB3VuaTFFQzEHdW5pMUVDMgd1bmkxRUMzB3VuaTFFQzQHdW5pMUVDNQd1bmkxRUM2B3VuaTFFQzcHdW5pMUVDOAd1bmkxRUM5B3VuaTFFQ0EHdW5pMUVDQgd1bmkxRUNDB3VuaTFFQ0QHdW5pMUVDRQd1bmkxRUNGB3VuaTFFRDAHdW5pMUVEMQd1bmkxRUQyB3VuaTFFRDMHdW5pMUVENAd1bmkxRUQ1B3VuaTFFRDYHdW5pMUVENwd1bmkxRUQ4B3VuaTFFRDkHdW5pMUVEQQd1bmkxRURCB3VuaTFFREMHdW5pMUVERAd1bmkxRURFB3VuaTFFREYHdW5pMUVFMAd1bmkxRUUxB3VuaTFFRTIHdW5pMUVFMwd1bmkxRUU0B3VuaTFFRTUHdW5pMUVFNgd1bmkxRUU3B3VuaTFFRTgHdW5pMUVFOQd1bmkxRUVBB3VuaTFFRUIHdW5pMUVFQwd1bmkxRUVEB3VuaTFFRUUHdW5pMUVFRgd1bmkx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AAwA4f/UAPH/yQD5/9EBBP/lARv/4wEv/8QBOP/hAUn/1AFK//UBS//nAVP/ZAFU/8kACgDh/8EA8f/NAPn/0gEv/8wBOP/lATv/3wFJ/84BS//qAVP/ngFU/84ACgDh/8IA8f/GAPn/zwEv/8ABOP/hATv/3wFJ/80BS//oAVP/nwFU/8YACQDh/8kA8f/fAPn/4QEE/+0BG//rAS//3wE7/+kBSv/1AVT/4AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQDh/+YA8f/QAPn/1gEv/84BOP/oAUn/5wFL/+0BU//mAVT/0AALANQAFADh/+AA6AATATj/4QE5/+ABPP/hAUH/6QFJ/98BS//eAVP/3wFV//IAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqP/pAaz/5wG0/+cBtf/pAd//8AAFABn/8gDh//EBSf/yAUv/8gFT//IACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QADQDUABMA4f/mAOL/9ADoABIA8f/nAPn/5wEv/+cBOP/lATn/6AFJ/+YBS//mAVP/5gFU/+cACgDh/8QA8f/NAPn/1QEv/8wBOP/mATv/3wFJ/9EBS//sAVP/oQFU/88ACgDh/8MA8f/PAPn/1AEv/84BOP/nATv/3wFJ/9EBS//sAVP/oAFU/9EAAgDU/+IBU//kAAIA1P/hAOj/5AAHAOj/7gDx/+4A+f/vAQT/9AEb//EBL//vAVT/7wAFAPH/9AD5//QBBP/1AS//9QFU//UAAgDo/2gBF//uAAcA6AAUAPH/7QD3/9AA+f/uAS//7QE5/+0BVP/tAAEBF//xAAUBF//rAaj/6wGs/+kBtP/rAbX/6wAT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//AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UAAQGm/+sAAQGm/+sAAQGm/+sAAQGm/+sAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAab/qwGo/80BrP/LAbT/ywG1/8sBuP/zAbv/8wG8/+8B3P/AAd//7gAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAAQDx//UAAQDx//UAAQDx//UAAQDx//UAAQDx/9YACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAxf/qAOj/uADx/+IBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAFAEj/7gBZ/+oBuv/wAbv/7QG9//AAAQDx//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQDx/9YACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAab/6wAUAFn/wQCz/8UAxf+0AOX/1wDx/7kA+f/pAQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGo/+gBrP/mAbT/5wG1/+cACwBZ/8wBpgATAaj/8wGs//EBtP/yAbX/8gG4/70Buf/uAbr/uAG7/9cBvf+3AAsAWf/MAaYAEwGo//MBrP/xAbT/8gG1//IBuP+9Abn/7gG6/7gBu//XAb3/twALAFn/zAGmABMBqP/zAaz/8QG0//IBtf/yAbj/vQG5/+4Buv+4Abv/1wG9/7cACwBZ/8wBpgATAaj/8wGs//EBtP/yAbX/8gG4/70Buf/uAbr/uAG7/9cBvf+3AAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAPH/1gAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQDx/9YACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEA8f/WAAEA8f/WAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAxf/qAOj/uADx/+IBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAMASAAUAFYAGABZABEAAwBIABQAVgAYAFkAEQADAEgAFABWABgAWQARADsAVP+/AFn/0QBr/2wAev9uAH//QwCE/6wAh/+hALP/uAC6/34Avv97AMH/mwDC/3kAxf+yAMf/fgDI/30Ayf98ANT/rwDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+f+yAPr/gAD8/3kA/QAoAQL/fQEE/38BF/9mARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBpv+vAaj/uQGs/7kBtP+5AbX/uQG3/7wBuP/xAbv/8QG8/+0B3P+zAd//8QA7AFT/vwBZ/9EAa/9sAHr/bgB//0MAhP+sAIf/oQCz/7gAuv9+AL7/ewDB/5sAwv95AMX/sgDH/34AyP99AMn/fADU/68A4QAPAOX/5ADm/6AA6P90AOr/gADx/7IA+P99APn/sgD6/4AA/P95AP0AKAEC/30BBP9/ARf/ZgEb/9oBJ/+BASn/mAEt/30BL/+zATP/oAE5/3wBO/+aATz/bAFB/+YBRv9rAUr/kgFM/60BUP97AVMADwFU/5EBVf/yAab/rwGo/7kBrP+5AbT/uQG1/7kBt/+8Abj/8QG7//EBvP/tAdz/swHf//EAOwBU/78AWf/RAGv/bAB6/24Af/9DAIT/rACH/6EAs/+4ALr/fgC+/3sAwf+bAML/eQDF/7IAx/9+AMj/fQDJ/3wA1P+vAOEADwDl/+QA5v+gAOj/dADq/4AA8f+yAPj/fQD5/7IA+v+AAPz/eQD9ACgBAv99AQT/fwEX/2YBG//aASf/gQEp/5gBLf99AS//swEz/6ABOf98ATv/mgE8/2wBQf/mAUb/awFK/5IBTP+tAVD/ewFTAA8BVP+RAVX/8gGm/68BqP+5Aaz/uQG0/7kBtf+5Abf/vAG4//EBu//xAbz/7QHc/7MB3//xAAEBpv/rAAEBpv/rAAEBpv/rAAEBpv/rAAEBpv/rAAEBpv/rAAkACwAPAD8ADABU/+sAXwAOAab/ywGo/+kBrP/nAbT/5wG1/+cAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAab/qwGo/80BrP/LAbT/ywG1/8sBuP/zAbv/8wG8/+8B3P/AAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBpv+rAaj/zQGs/8sBtP/LAbX/ywG4//MBu//zAbz/7wHc/8AB3//uAAgAWf/lALP/ywDI/+QBpgANAaj/7QGs/+sBtP/sAbX/7AAIAFn/5QCz/8sAyP/kAaYADQGo/+0BrP/rAbT/7AG1/+wACABZ/+UAs//LAMj/5AGmAA0BqP/tAaz/6wG0/+wBtf/sAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAFAEj/7gBZ/+oBuv/wAbv/7QG9//AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1ACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGm/6sBqP/NAaz/ywG0/8sBtf/LAbj/8wG7//MBvP/vAdz/wAHf/+4AHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAIBDAALAVP/5gAFAEj/7gBZ/+oBuv/wAbv/7QG9//AACABZ/+UAs//LAMj/5AGmAA0BqP/tAaz/6wG0/+wBtf/sAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAFABZ/8EAs//FAMX/tADl/9cA8f+5APn/6QEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8BqP/oAaz/5gG0/+cBtf/nAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAFYADgB//tcAv/+YAML/xwDU/xIA6P9SAUb/zwGm/4AB3//XADsAVP+/AFn/0QBr/2wAev9uAH//QwCE/6wAh/+hALP/uAC6/34Avv97AMH/mwDC/3kAxf+yAMf/fgDI/30Ayf98ANT/rwDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+f+yAPr/gAD8/3kA/QAoAQL/fQEE/38BF/9mARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBpv+vAaj/uQGs/7kBtP+5AbX/uQG3/7wBuP/xAbv/8QG8/+0B3P+zAd//8QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBpv+rAaj/zQGs/8sBtP/LAbX/ywG4//MBu//zAbz/7wHc/8AB3//uABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAaj/6QGs/+cBtP/nAbX/6QHf//AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGm/6sBqP/NAaz/ywG0/8sBtf/LAbj/8wG7//MBvP/vAdz/wAHf/+4AAQDx/9YACQDF/+oA6P+4APH/4gEE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/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBpv+rAaj/zQGs/8sBtP/LAbX/ywG4//MBu//zAbz/7wHc/8AB3//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAEAWQALAAEAWQALAAEAWQALAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAPH/1gAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAkACwAUAD8AEQBU/+IAXwATAab/tAGo/9kBrP/ZAbT/2QG1/9kABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UABAAL/+YAP//0AF//7wE8/+0AJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAab/qwGo/80BrP/LAbT/ywG1/8sBuP/zAbv/8wG8/+8B3P/AAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqP/pAaz/5wG0/+cBtf/pAd//8AABARf/8QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QABAPH/9QABAPH/9QAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGo/+kBrP/nAbT/5wG1/+kB3//wAAEBF//xAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAcAxf/qAOj/7gDx/9YA+f/tAS//7AFU/+wB3P/oABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAEgDU/64A4QASAOb/4ADo/60A6v/WAPj/3wD8/9IBAv/gARf/zgEn/90BKf/iAS3/4AEz/+ABOf/pATz/2gFG/70BUP/fAVMAEQAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAaj/6QGs/+cBtP/nAbX/6QHf//AAAQEX//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAFAEj/7gBZ/+oBuv/wAbv/7QG9//AAAQDx//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAFAEj/7gBZ/+oBuv/wAbv/7QG9//AAAQDx//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAxf/qAOj/uADx/+IBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAxf/qAOj/uADx/+IBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE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AFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBpv+rAaj/zQGs/8sBtP/LAbX/ywG4//MBu//zAbz/7wHc/8AB3//uAAE1wAAEAAAABgAWAGwDngQcBIYEyAAVADgAFAA5ACYAOwAWARQAFAILABYCkgAmApQAFgKWABYC/QAWAwwAFgMPABYDRQAmA0cAJgNJACYDSwAWA2AAFANoABYD6gAWA+wAFgPuABYEEwAWAMwADv7uABD+7gAj/0AALP8wADYAFABD/94ARf/rAEb/6wBH/+sASf/rAFH/6wBT/+sAV//qAFj/6ABb/+gAkf/rAJX/6wCX/+oArf9AAK//QAC2/+sAuP/oAMP/6wDE/+sAxv/qAM0AFADRABQA8v/rAP7/6wEI/0ABE//rARX/6AEZ/+sBHf/rAS4AFAE1/+sBNgAUAUf/6wFI/+sBUv/rAWf+7gFr/u4Bb/7uAXD+7gHx/0AB8v9AAfP/QAH0/0AB9f9AAfb/QAH3/0ACDP/eAg3/3gIO/94CD//eAhD/3gIR/94CEv/eAhP/6wIU/+sCFf/rAhb/6wIX/+sCHf/rAh7/6wIf/+sCIP/rAiH/6wIi/+oCI//qAiT/6gIl/+oCJv/oAif/6AIo/0ACKf/eAir/QAIr/94CLP9AAi3/3gIv/+sCMf/rAjP/6wI1/+sCN//rAjn/6wI7/+sCPf/rAj//6wJB/+sCQ//rAkX/6wJH/+sCSf/rAlf/MAJr/+sCbf/rAm//6wKAABQCggAUAoQAFAKH/+oCif/qAov/6gKN/+oCj//qApH/6gKV/+gC+P9AAwD/QAMQ/+sDFP/qAxb/6wMY/+gDG//qAxz/6wMd/+oDJP8wAyj/QAMzABQDNf/eAzb/6wM4/+sDOv/rAzv/6AM9/+sDRP/oA0z/6ANV/0ADVv/eA1z/6wNh/+gDYv/rA2f/6wNp/+gDbv9AA2//3gNw/0ADcf/eA3X/6wN3/+sDeP/rA4L/6wOE/+sDhv/rA4r/6AOM/+gDjv/oA5X/6wOY/0ADmf/eA5r/QAOb/94DnP9AA53/3gOe/0ADn//eA6D/QAOh/94Dov9AA6P/3gOk/0ADpf/eA6b/QAOn/94DqP9AA6n/3gOq/0ADq//eA6z/QAOt/94Drv9AA6//3gOx/+sDs//rA7X/6wO3/+sDuf/rA7v/6wO9/+sDv//rA8X/6wPH/+sDyf/rA8v/6wPN/+sDz//rA9H/6wPT/+sD1f/rA9f/6wPZ/+sD2//rA93/6gPf/+oD4f/qA+P/6gPl/+oD5//qA+n/6gPr/+gD7f/oA+//6AP2ABQAHwA2/98AOP/kADn/7AA7/90Azf/fANH/3wEU/+QBLv/fATb/3wIL/90CgP/fAoL/3wKE/98Ckv/sApT/3QKW/90C/f/dAwz/3QMP/90DM//fA0X/7ANH/+wDSf/sA0v/3QNg/+QDaP/dA+r/3QPs/90D7v/dA/b/3wQT/90AGgA2/84AOP/tADv/0ADN/84A0f/OART/7QEu/84BNv/OAgv/0AKA/84Cgv/OAoT/zgKU/9AClv/QAv3/0AMM/9ADD//QAzP/zgNL/9ADYP/tA2j/0APq/9AD7P/QA+7/0AP2/84EE//QABAALP/uADf/7gIH/+4CCP/uAgn/7gIK/+4CV//uAob/7gKI/+4Civ/uAoz/7gKO/+4CkP/uAyT/7gPc/+4D3v/uAD0ARf/oAEb/6ABH/+gASf/oAFP/6ACR/+gAlf/oALb/6ADD/+gAxP/oAPL/6AD+/+gBGf/oAR3/6AE1/+gBR//oAUj/6AFS/+gCE//oAhT/6AIV/+gCFv/oAhf/6AIv/+gCMf/oAjP/6AI1/+gCN//oAjn/6AI7/+gCPf/oAj//6AJB/+gCQ//oAkX/6AJH/+gCSf/oAxD/6AM2/+gDOv/oAz3/6ANc/+gDYv/oA2f/6AN1/+gDd//oA3j/6AOE/+gDlf/oA7H/6AOz/+gDtf/oA7f/6AO5/+gDu//oA73/6AO//+gD0//oA9X/6APX/+gD2//oAAEwEgAEAAAALABiAIwBggHgAfoCPAKyA5gEfgVYBfIIjApSC2ANJg1YDYoOCA9OENgSbhOAFO4XABe2GRwZ0hqMGxIbcBwuHKQdUh18Hs4hDCEuIkQioiMgI0ojfCOOI7gACgAEABAACQAQAWUAEAFmABABaAAQAWkAEAFqABADTQAQA04AEANSABAAPQBF/+wARv/sAEf/7ABJ/+wAU//sAJH/7ACV/+wAtv/sAMP/7ADE/+wA8v/sAP7/7AEZ/+wBHf/sATX/7AFH/+wBSP/sAVL/7AIT/+wCFP/sAhX/7AIW/+wCF//sAi//7AIx/+wCM//sAjX/7AI3/+wCOf/sAjv/7AI9/+wCP//sAkH/7AJD/+wCRf/sAkf/7AJJ/+wDEP/sAzb/7AM6/+wDPf/sA1z/7ANi/+wDZ//sA3X/7AN3/+wDeP/sA4T/7AOV/+wDsf/sA7P/7AO1/+wDt//sA7n/7AO7/+wDvf/sA7//7APT/+wD1f/sA9f/7APb/+wAFwBR/+IBE//iAh3/4gIe/+ICH//iAiD/4gIh/+ICa//iAm3/4gJv/+IDFv/iAxz/4gM4/+IDgv/iA4b/4gPF/+IDx//iA8n/4gPL/+IDzf/iA8//4gPR/+ID2f/iAAYADv+EABD/hAFn/4QBa/+EAW//hAFw/4QAEAAs/+wAN//sAgf/7AII/+wCCf/sAgr/7AJX/+wChv/sAoj/7AKK/+wCjP/sAo7/7AKQ/+wDJP/sA9z/7APe/+wAHQAE//IACf/yAFj/8wBb//MAuP/zARX/8wFl//IBZv/yAWj/8gFp//IBav/yAib/8wIn//MClf/zAxj/8wM7//MDRP/zA0z/8wNN//IDTv/yA1L/8gNh//MDaf/zA4r/8wOM//MDjv/zA+v/8wPt//MD7//zADkAJf/zACn/8wAx//MAM//zAIH/8wCQ//MAlP/zAK7/8wDO//MBA//zARL/8wEW//MBGP/zARr/8wEc//MBNP/zAVH/8wH4//MCAv/zAgP/8wIE//MCBf/zAgb/8wIu//MCMP/zAjL/8wI0//MCQv/zAkT/8wJG//MCSP/zAmr/8wJs//MCbv/zAp//8wL8//MDCf/zAy//8wMy//MDV//zA2P/8wNm//MDgf/zA4P/8wOF//MDxP/zA8b/8wPI//MDyv/zA8z/8wPO//MD0P/zA9L/8wPU//MD1v/zA9j/8wPa//MAOQAl/+YAKf/mADH/5gAz/+YAgf/mAJD/5gCU/+YArv/mAM7/5gED/+YBEv/mARb/5gEY/+YBGv/mARz/5gE0/+YBUf/mAfj/5gIC/+YCA//mAgT/5gIF/+YCBv/mAi7/5gIw/+YCMv/mAjT/5gJC/+YCRP/mAkb/5gJI/+YCav/mAmz/5gJu/+YCn//mAvz/5gMJ/+YDL//mAzL/5gNX/+YDY//mA2b/5gOB/+YDg//mA4X/5gPE/+YDxv/mA8j/5gPK/+YDzP/mA87/5gPQ/+YD0v/mA9T/5gPW/+YD2P/mA9r/5gA2ACP/5AA6/9IAO//TAK3/5ACv/+QA1f/SAQj/5AHx/+QB8v/kAfP/5AH0/+QB9f/kAfb/5AH3/+QCC//TAij/5AIq/+QCLP/kApT/0wKW/9MC+P/kAv3/0wMA/+QDDP/TAw3/0gMP/9MDKP/kAzT/0gNL/9MDVf/kA2j/0wNr/9IDbv/kA3D/5AN5/9IDk//SA5j/5AOa/+QDnP/kA57/5AOg/+QDov/kA6T/5AOm/+QDqP/kA6r/5AOs/+QDrv/kA+r/0wPs/9MD7v/TA/j/0gQA/9IEE//TACYADv9GABD/RgAj/80Arf/NAK//zQEI/80BZ/9GAWv/RgFv/0YBcP9GAfH/zQHy/80B8//NAfT/zQH1/80B9v/NAff/zQIo/80CKv/NAiz/zQL4/80DAP/NAyj/zQNV/80Dbv/NA3D/zQOY/80Dmv/NA5z/zQOe/80DoP/NA6L/zQOk/80Dpv/NA6j/zQOq/80DrP/NA67/zQCmAEX/3ABG/9wAR//cAEn/3ABP/8EAUP/BAFH/1gBS/8EAU//cAFf/3QBY/+EAW//hAJH/3ACV/9wAl//dALb/3AC4/+EAvP/BAMP/3ADE/9wAxv/dAOf/wQDr/8EA7P/BAO7/wQDv/8EA8P/BAPL/3ADz/8EA9f/BAPb/wQD5/8EA+//BAP7/3AEA/8EBE//WARX/4QEZ/9wBHf/cATH/wQE1/9wBQP/BAUX/wQFH/9wBSP/cAVL/3AIT/9wCFP/cAhX/3AIW/9wCF//cAhz/wQId/9YCHv/WAh//1gIg/9YCIf/WAiL/3QIj/90CJP/dAiX/3QIm/+ECJ//hAi//3AIx/9wCM//cAjX/3AI3/9wCOf/cAjv/3AI9/9wCP//cAkH/3AJD/9wCRf/cAkf/3AJJ/9wCZP/BAmb/wQJo/8ECaf/BAmv/1gJt/9YCb//WAof/3QKJ/90Ci//dAo3/3QKP/90Ckf/dApX/4QMQ/9wDEv/BAxT/3QMW/9YDGP/hAxv/3QMc/9YDHf/dAzb/3AM3/8EDOP/WAzn/wQM6/9wDO//hAz3/3AM+/8EDQ//BA0T/4QNM/+EDVP/BA1z/3ANd/8EDYf/hA2L/3ANn/9wDaf/hA3X/3AN3/9wDeP/cA37/wQOA/8EDgv/WA4T/3AOG/9YDiv/hA4z/4QOO/+EDkv/BA5X/3AOx/9wDs//cA7X/3AO3/9wDuf/cA7v/3AO9/9wDv//cA8X/1gPH/9YDyf/WA8v/1gPN/9YDz//WA9H/1gPT/9wD1f/cA9f/3APZ/9YD2//cA93/3QPf/90D4f/dA+P/3QPl/90D5//dA+n/3QPr/+ED7f/hA+//4QPz/8ED9f/BA///wQQM/8EEDv/BBBD/wQBxAAT/2gAJ/9oARf/wAEb/8ABH//AASf/wAFP/8ABX/+8AWP/cAFv/3ACR//AAlf/wAJf/7wC2//AAuP/cAMP/8ADE//AAxv/vAPL/8AD+//ABFf/cARn/8AEd//ABNf/wAUf/8AFI//ABUv/wAWX/2gFm/9oBaP/aAWn/2gFq/9oCE//wAhT/8AIV//ACFv/wAhf/8AIi/+8CI//vAiT/7wIl/+8CJv/cAif/3AIv//ACMf/wAjP/8AI1//ACN//wAjn/8AI7//ACPf/wAj//8AJB//ACQ//wAkX/8AJH//ACSf/wAof/7wKJ/+8Ci//vAo3/7wKP/+8Ckf/vApX/3AMQ//ADFP/vAxj/3AMb/+8DHf/vAzb/8AM6//ADO//cAz3/8ANE/9wDTP/cA03/2gNO/9oDUv/aA1z/8ANh/9wDYv/wA2f/8ANp/9wDdf/wA3f/8AN4//ADhP/wA4r/3AOM/9wDjv/cA5X/8AOx//ADs//wA7X/8AO3//ADuf/wA7v/8AO9//ADv//wA9P/8APV//AD1//wA9v/8APd/+8D3//vA+H/7wPj/+8D5f/vA+f/7wPp/+8D6//cA+3/3APv/9wAQwAOAAwAEAAMAEX/5wBG/+cAR//nAEn/5wBT/+cAkf/nAJX/5wC2/+cAw//nAMT/5wDy/+cA/v/nARn/5wEd/+cBNf/nAUf/5wFI/+cBUv/nAWcADAFrAAwBbwAMAXAADAIT/+cCFP/nAhX/5wIW/+cCF//nAi//5wIx/+cCM//nAjX/5wI3/+cCOf/nAjv/5wI9/+cCP//nAkH/5wJD/+cCRf/nAkf/5wJJ/+cDEP/nAzb/5wM6/+cDPf/nA1z/5wNi/+cDZ//nA3X/5wN3/+cDeP/nA4T/5wOV/+cDsf/nA7P/5wO1/+cDt//nA7n/5wO7/+cDvf/nA7//5wPT/+cD1f/nA9f/5wPb/+cAcQAEAAwACQAMAEX/6ABG/+gAR//oAEn/6ABR/+oAU//oAFgACwBbAAsAkf/oAJX/6AC2/+gAuAALAMP/6ADE/+gA8v/oAP7/6AET/+oBFQALARn/6AEd/+gBNf/oAUf/6AFI/+gBUv/oAWUADAFmAAwBaAAMAWkADAFqAAwCE//oAhT/6AIV/+gCFv/oAhf/6AId/+oCHv/qAh//6gIg/+oCIf/qAiYACwInAAsCL//oAjH/6AIz/+gCNf/oAjf/6AI5/+gCO//oAj3/6AI//+gCQf/oAkP/6AJF/+gCR//oAkn/6AJr/+oCbf/qAm//6gKVAAsDEP/oAxb/6gMYAAsDHP/qAzb/6AM4/+oDOv/oAzsACwM9/+gDRAALA0wACwNNAAwDTgAMA1IADANc/+gDYQALA2L/6ANn/+gDaQALA3X/6AN3/+gDeP/oA4L/6gOE/+gDhv/qA4oACwOMAAsDjgALA5X/6AOx/+gDs//oA7X/6AO3/+gDuf/oA7v/6AO9/+gDv//oA8X/6gPH/+oDyf/qA8v/6gPN/+oDz//qA9H/6gPT/+gD1f/oA9f/6APZ/+oD2//oA+sACwPtAAsD7wALAAwAWv/tAFz/7QDp/+0CmP/tApr/7QKc/+0DPP/tA2z/7QN6/+0DlP/tA/n/7QQB/+0ADABa//IAXP/yAOn/8gKY//ICmv/yApz/8gM8//IDbP/yA3r/8gOU//ID+f/yBAH/8gAfAFj/9ABa//IAW//0AFz/8wC4//QA6f/yARX/9AIm//QCJ//0ApX/9AKY//MCmv/zApz/8wMY//QDO//0Azz/8gNE//QDTP/0A2H/9ANp//QDbP/yA3r/8gOK//QDjP/0A47/9AOU//ID6//0A+3/9APv//QD+f/yBAH/8gBRAAT/ygAJ/8oANv/SADj/1AA6//QAO//TAFj/5gBa/+8AW//mALj/5gDN/9IA0f/SANX/9ADZ/+0A3P/hAOn/7wEU/9QBFf/mAS7/0gE2/9IBZf/KAWb/ygFo/8oBaf/KAWr/ygIL/9MCJv/mAif/5gKA/9ICgv/SAoT/0gKU/9MClf/mApb/0wL9/9MDDP/TAw3/9AMP/9MDGP/mAyf/7QMz/9IDNP/0Azv/5gM8/+8DRP/mA0v/0wNM/+YDTf/KA07/ygNS/8oDYP/UA2H/5gNo/9MDaf/mA2v/9ANs/+8Def/0A3r/7wOJ/+0Div/mA4v/7QOM/+YDjf/tA47/5gOP/+EDk//0A5T/7wPq/9MD6//mA+z/0wPt/+YD7v/TA+//5gP2/9ID+P/0A/n/7wP6/+ED/P/hBAD/9AQB/+8EE//TAGIABP/AAAn/wAA2/50AOP/HADr/8AA7/6sAT//SAFD/0gBS/9IAvP/SAM3/nQDP//UA0f+dANX/8ADY//UA2f/qANz/5QDn/9IA6//SAOz/0gDu/9IA7//SAPD/0gDz/9IA9f/SAPb/0gD7/9IBAP/SART/xwEu/50BMf/SATb/nQFA/9IBRf/SAU3/9QFl/8ABZv/AAWj/wAFp/8ABav/AAgv/qwIc/9ICZP/SAmb/0gJo/9ICaf/SAoD/nQKC/50ChP+dApT/qwKW/6sC/f+rAwz/qwMN//ADD/+rAxL/0gMn/+oDM/+dAzT/8AM3/9IDOf/SAz7/0gND/9IDS/+rA03/wANO/8ADUv/AA1T/0gNd/9IDYP/HA2j/qwNr//ADef/wA37/0gOA/9IDif/qA4v/6gON/+oDj//lA5L/0gOT//ADlv/1A+r/qwPs/6sD7v+rA/P/0gP1/9ID9v+dA/j/8AP6/+UD/P/lA///0gQA//AEDP/SBA7/0gQQ/9IEEf/1BBP/qwBlAAT/sQAJ/7EANv+eADj/xQA6//IAO/+oAE//zwBQ/88AUv/PAFr/7wC8/88Azf+eANH/ngDV//IA2f/sANz/4QDn/88A6f/vAOv/zwDs/88A7v/PAO//zwDw/88A8//PAPX/zwD2/88A+//PAQD/zwEU/8UBLv+eATH/zwE2/54BQP/PAUX/zwFl/7EBZv+xAWj/sQFp/7EBav+xAgv/qAIc/88CZP/PAmb/zwJo/88Caf/PAoD/ngKC/54ChP+eApT/qAKW/6gC/f+oAwz/qAMN//IDD/+oAxL/zwMn/+wDM/+eAzT/8gM3/88DOf/PAzz/7wM+/88DQ//PA0v/qANN/7EDTv+xA1L/sQNU/88DXf/PA2D/xQNo/6gDa//yA2z/7wN5//IDev/vA37/zwOA/88Dif/sA4v/7AON/+wDj//hA5L/zwOT//IDlP/vA+r/qAPs/6gD7v+oA/P/zwP1/88D9v+eA/j/8gP5/+8D+v/hA/z/4QP//88EAP/yBAH/7wQM/88EDv/PBBD/zwQT/6gARAA2/74AT//hAFD/4QBS/+EAWP/vAFv/7wC4/+8AvP/hAM3/vgDR/74A5//hAOv/4QDs/+EA7v/hAO//4QDw/+EA8//hAPX/4QD2/+EA+//hAQD/4QEV/+8BLv++ATH/4QE2/74BQP/hAUX/4QIc/+ECJv/vAif/7wJk/+ECZv/hAmj/4QJp/+ECgP++AoL/vgKE/74Clf/vAxL/4QMY/+8DM/++Azf/4QM5/+EDO//vAz7/4QND/+EDRP/vA0z/7wNU/+EDXf/hA2H/7wNp/+8Dfv/hA4D/4QOK/+8DjP/vA47/7wOS/+ED6//vA+3/7wPv/+8D8//hA/X/4QP2/74D///hBAz/4QQO/+EEEP/hAFsANv/mADj/5wA6//IAO//nAE//1gBQ/9YAUv/WAFr/8QC8/9YAzf/mANH/5gDV//IA2f/uANz/6ADn/9YA6f/xAOv/1gDs/9YA7v/WAO//1gDw/9YA8//WAPX/1gD2/9YA+//WAQD/1gEU/+cBLv/mATH/1gE2/+YBQP/WAUX/1gIL/+cCHP/WAmT/1gJm/9YCaP/WAmn/1gKA/+YCgv/mAoT/5gKU/+cClv/nAv3/5wMM/+cDDf/yAw//5wMS/9YDJ//uAzP/5gM0//IDN//WAzn/1gM8//EDPv/WA0P/1gNL/+cDVP/WA13/1gNg/+cDaP/nA2v/8gNs//EDef/yA3r/8QN+/9YDgP/WA4n/7gOL/+4Djf/uA4//6AOS/9YDk//yA5T/8QPq/+cD7P/nA+7/5wPz/9YD9f/WA/b/5gP4//ID+f/xA/r/6AP8/+gD///WBAD/8gQB//EEDP/WBA7/1gQQ/9YEE//nAIQAIwAQACX/6AAp/+gAMf/oADP/6AA2/+AAOP/gADv/3wCB/+gAkP/oAJT/6ACtABAArv/oAK8AEADN/+AAzv/oAM8AEADR/+AA2AAQANz/4QDtABAA9P/gAP8AEAED/+gBCAAQARL/6AEU/+ABFv/oARj/6AEa/+gBHP/oAS7/4AE0/+gBNv/gAU0AEAFR/+gB8QAQAfIAEAHzABAB9AAQAfUAEAH2ABAB9wAQAfj/6AIC/+gCA//oAgT/6AIF/+gCBv/oAgv/3wIoABACKgAQAiwAEAIu/+gCMP/oAjL/6AI0/+gCQv/oAkT/6AJG/+gCSP/oAmr/6AJs/+gCbv/oAoD/4AKC/+AChP/gApT/3wKW/98Cn//oAvgAEAL8/+gC/f/fAwAAEAMJ/+gDDP/fAw//3wMoABADL//oAzL/6AMz/+ADS//fA1UAEANX/+gDYP/gA2P/6ANm/+gDaP/fA24AEANwABADgf/oA4P/6AOF/+gDj//hA5D/4AOWABADlwAQA5gAEAOaABADnAAQA54AEAOgABADogAQA6QAEAOmABADqAAQA6oAEAOsABADrgAQA8T/6APG/+gDyP/oA8r/6APM/+gDzv/oA9D/6APS/+gD1P/oA9b/6APY/+gD2v/oA+r/3wPs/98D7v/fA/b/4AP6/+ED+//gA/z/4QP9/+AEEQAQBBIAEAQT/98ALQA2//EAOP/0ADr/9AA7//AAzf/xAM//9QDR//EA1f/0ANj/9QDZ//MBFP/0AS7/8QE2//EBTf/1Agv/8AKA//ECgv/xAoT/8QKU//AClv/wAv3/8AMM//ADDf/0Aw//8AMn//MDM//xAzT/9ANL//ADYP/0A2j/8ANr//QDef/0A4n/8wOL//MDjf/zA5P/9AOW//UD6v/wA+z/8APu//AD9v/xA/j/9AQA//QEEf/1BBP/8ABZACMADwA2/+YAOP/mADoADgA7/+YArQAPAK8ADwDN/+YAzwAOANH/5gDVAA4A2AAOANkACwDc/+UA7QAPAPT/6AD/AA8BCAAPART/5gEu/+YBNv/mAU0ADgHxAA8B8gAPAfMADwH0AA8B9QAPAfYADwH3AA8CC//mAigADwIqAA8CLAAPAoD/5gKC/+YChP/mApT/5gKW/+YC+AAPAv3/5gMAAA8DDP/mAw0ADgMP/+YDJwALAygADwMz/+YDNAAOA0v/5gNVAA8DYP/mA2j/5gNrAA4DbgAPA3AADwN5AA4DiQALA4sACwONAAsDj//lA5D/6AOTAA4DlgAOA5cADwOYAA8DmgAPA5wADwOeAA8DoAAPA6IADwOkAA8DpgAPA6gADwOqAA8DrAAPA64ADwPq/+YD7P/mA+7/5gP2/+YD+AAOA/r/5QP7/+gD/P/lA/3/6AQAAA4EEQAOBBIADwQT/+YALQAE/78ACf+/ADb/nwA4/8kAO/+tAM3/nwDR/58A2f/sANz/5gEU/8kBLv+fATb/nwFl/78BZv+/AWj/vwFp/78Bav+/Agv/rQKA/58Cgv+fAoT/nwKU/60Clv+tAv3/rQMM/60DD/+tAyf/7AMz/58DS/+tA03/vwNO/78DUv+/A2D/yQNo/60Dif/sA4v/7AON/+wDj//mA+r/rQPs/60D7v+tA/b/nwP6/+YD/P/mBBP/rQAuADb/4wA6/+UAO//kAM3/4wDP/+UA0f/jANX/5QDY/+UA2f/pAO3/6gD//+oBLv/jATb/4wFN/+UCC//kAoD/4wKC/+MChP/jApT/5AKW/+QC/f/kAwz/5AMN/+UDD//kAyf/6QMz/+MDNP/lA0v/5ANo/+QDa//lA3n/5QOJ/+kDi//pA43/6QOT/+UDlv/lA5f/6gPq/+QD7P/kA+7/5AP2/+MD+P/lBAD/5QQR/+UEEv/qBBP/5AAhADb/4gA6/+QAzf/iAM//5ADR/+IA1f/kANj/5ADZ/+kA7f/rAP//6wEu/+IBNv/iAU3/5AKA/+ICgv/iAoT/4gMN/+QDJ//pAzP/4gM0/+QDa//kA3n/5AOJ/+kDi//pA43/6QOT/+QDlv/kA5f/6wP2/+ID+P/kBAD/5AQR/+QEEv/rABcANv/rADv/8wDN/+sA0f/rAS7/6wE2/+sCC//zAoD/6wKC/+sChP/rApT/8wKW//MC/f/zAwz/8wMP//MDM//rA0v/8wNo//MD6v/zA+z/8wPu//MD9v/rBBP/8wAvAE//7wBQ/+8AUv/vAFr/8AC8/+8A5//vAOn/8ADr/+8A7P/vAO7/7wDv/+8A8P/vAPP/7wD1/+8A9v/vAPv/7wEA/+8BMf/vAUD/7wFF/+8CHP/vAmT/7wJm/+8CaP/vAmn/7wMS/+8DN//vAzn/7wM8//ADPv/vA0P/7wNU/+8DXf/vA2z/8AN6//ADfv/vA4D/7wOS/+8DlP/wA/P/7wP1/+8D+f/wA///7wQB//AEDP/vBA7/7wQQ/+8AHQAE//IACf/yAFj/9QBb//UAuP/1ARX/9QFl//IBZv/yAWj/8gFp//IBav/yAib/9QIn//UClf/1Axj/9QM7//UDRP/1A0z/9QNN//IDTv/yA1L/8gNh//UDaf/1A4r/9QOM//UDjv/1A+v/9QPt//UD7//1ACsAT//uAFD/7gBS/+4AvP/uAOf/7gDr/+4A7P/uAO7/7gDv/+4A8P/uAPP/7gD0/+0A9f/uAPb/7gD7/+4BAP/uATH/7gFA/+4BRf/uAhz/7gJk/+4CZv/uAmj/7gJp/+4DEv/uAzf/7gM5/+4DPv/uA0P/7gNU/+4DXf/uA37/7gOA/+4DkP/tA5L/7gPz/+4D9f/uA/v/7QP9/+0D///uBAz/7gQO/+4EEP/uAAoABP/1AAn/9QFl//UBZv/1AWj/9QFp//UBav/1A03/9QNO//UDUv/1AFQARf/wAEb/8ABH//AASf/wAFH/xwBT//AAkf/wAJX/8AC2//AAw//wAMT/8ADy//AA/v/wARP/xwEZ//ABHf/wATX/8AFH//ABSP/wAVL/8AIT//ACFP/wAhX/8AIW//ACF//wAh3/xwIe/8cCH//HAiD/xwIh/8cCL//wAjH/8AIz//ACNf/wAjf/8AI5//ACO//wAj3/8AI///ACQf/wAkP/8AJF//ACR//wAkn/8AJr/8cCbf/HAm//xwMQ//ADFv/HAxz/xwM2//ADOP/HAzr/8AM9//ADXP/wA2L/8ANn//ADdf/wA3f/8AN4//ADgv/HA4T/8AOG/8cDlf/wA7H/8AOz//ADtf/wA7f/8AO5//ADu//wA73/8AO///ADxf/HA8f/xwPJ/8cDy//HA83/xwPP/8cD0f/HA9P/8APV//AD1//wA9n/xwPb//AAjwAEAA0ACQANAEP/8ABF/8AARv/AAEf/wABJ/8AAUf/iAFP/wABYAAsAWwALAJH/wACV/8AAtv/AALgACwDE/8AA7f/XAPL/wAD+/8AA///XARP/4gEVAAsBGf/AAR3/wAE1/8ABR//AAUj/wAFS/8ABZQANAWYADQFoAA0BaQANAWoADQIM//ACDf/wAg7/8AIP//ACEP/wAhH/8AIS//ACE//AAhT/wAIV/8ACFv/AAhf/wAId/+ICHv/iAh//4gIg/+ICIf/iAiYACwInAAsCKf/wAiv/8AIt//ACL//AAjH/wAIz/8ACNf/AAjf/wAI5/8ACO//AAj3/wAI//8ACQf/AAkP/wAJF/8ACR//AAkn/wAJr/+ICbf/iAm//4gKVAAsDEP/AAxb/4gMYAAsDHP/iAzX/8AM2/8ADOP/iAzr/wAM7AAsDPf/AA0QACwNMAAsDTQANA04ADQNSAA0DVv/wA1z/wANhAAsDYv/AA2f/wANpAAsDb//wA3H/8AN1/8ADd//AA3j/wAOC/+IDhP/AA4b/4gOKAAsDjAALA44ACwOV/8ADl//XA5n/8AOb//ADnf/wA5//8AOh//ADo//wA6X/8AOn//ADqf/wA6v/8AOt//ADr//wA7H/wAOz/8ADtf/AA7f/wAO5/8ADu//AA73/wAO//8ADxf/iA8f/4gPJ/+IDy//iA83/4gPP/+ID0f/iA9P/wAPV/8AD1//AA9n/4gPb/8AD6wALA+0ACwPvAAsEEv/XAAgA7QAQAPT/8AD/ABADkP/wA5cAEAP7//AD/f/wBBIAEABFAEX/7gBG/+4AR//uAEn/7gBT/+4Akf/uAJX/7gC2/+4Aw//uAMT/7gDtAA4A8v/uAPT/4wD+/+4A/wAOARn/7gEd/+4BNf/uAUf/7gFI/+4BUv/uAhP/7gIU/+4CFf/uAhb/7gIX/+4CL//uAjH/7gIz/+4CNf/uAjf/7gI5/+4CO//uAj3/7gI//+4CQf/uAkP/7gJF/+4CR//uAkn/7gMQ/+4DNv/uAzr/7gM9/+4DXP/uA2L/7gNn/+4Ddf/uA3f/7gN4/+4DhP/uA5D/4wOV/+4DlwAOA7H/7gOz/+4Dtf/uA7f/7gO5/+4Du//uA73/7gO//+4D0//uA9X/7gPX/+4D2//uA/v/4wP9/+MEEgAOABcAWP/AAFv/wAC4/8AA9P/uARX/wAIm/8ACJ//AApX/wAMY/8ADO//AA0T/wANM/8ADYf/AA2n/wAOK/8ADjP/AA47/wAOQ/+4D6//AA+3/wAPv/8AD+//uA/3/7gAfAFj/9ABa//AAW//0ALj/9ADp//AA7f/zAP//8wEV//QCJv/0Aif/9AKV//QDGP/0Azv/9AM8//ADRP/0A0z/9ANh//QDaf/0A2z/8AN6//ADiv/0A4z/9AOO//QDlP/wA5f/8wPr//QD7f/0A+//9AP5//AEAf/wBBL/8wAKAAT/1gAJ/9YBZf/WAWb/1gFo/9YBaf/WAWr/1gNN/9YDTv/WA1L/1gAMAFr/4ADp/+AA9P/CAzz/4ANs/+ADev/gA5D/wgOU/+AD+f/gA/v/wgP9/8IEAf/gAAQA9P/SA5D/0gP7/9ID/f/SAAoABP/XAAn/1wFl/9cBZv/XAWj/1wFp/9cBav/XA03/1wNO/9cDUv/XAF4ABAALAAkACwBF/+sARv/rAEf/6wBJ/+sAUf/pAFP/6wCR/+sAlf/rALb/6wDD/+sAxP/rAPL/6wD+/+sBE//p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ANcCYwJvANgCcQJxAOUCcwJzAOYCdQJ1AOcCgAKAAOgCggKCAOkChAKEAOoChgKGAOsCiAKIAOwCigKKAO0CjAKMAO4CjgKOAO8CkAKQAPACkgKSAPEClAKXAPICmQKZAPYCmwKbAPcC+AL9APgDAAMPAP4DEgMSAQ4DFgMWAQ8DGAMYARADHAMcAREDHwMgARIDIgMrARQDLQMvAR4DMQM2ASEDOAM5AScDOwM+ASkDRANFAS0DRwNHAS8DSQNJATADSwNOATEDUgNXATUDWgNaATsDXANcATwDYANhAT0DZgNmAT8DaANxAUADdAN1AUoDdwN6AUwDgQOCAVADhgOGAVIDiAOOAVMDkwOUAVoDmAPAAVwDwgPCAYUDxAPRAYYD2QPZAZQD3APcAZUD3gPeAZYD6gPvAZcD8gPyAZ0D9AP0AZ4D9gP2AZ8D+AP5AaAD/gQBAaIEBAQEAaYEBgQHAacECQQJAakEDQQNAaoEDwQPAasEEwQTAawAAQAGAAoAKAAzADQAPQBIAAEALABIAE0AVgBZAF0AmQCwALIAswC0ALsAvgDAAMUAxwDIAMkAzQDPANAA0QDTANQA1gDeAN8A4gDjAOQA5QDmAOgA6gDsAPEA8wD2APcA+wD+AP8BAAEdAdwAAgB2AAQABAAAAAkACQABAA4ADgACABAAEAADACMAJwAEACoAMgAJADYAPAASAEMARQAZAEcARwAcAEoASgAdAE8AUgAeAFQAVAAiAFgAWAAjAFoAXAAkAIgAiAAnAKwArwAoALgAuAAsALwAvAAtAMIAwgAuAM8A0AAvANIA0gAxANUA1QAyANcA2QAzANsA2wA2AN0A3QA3AN8A3wA4AOEA4QA5AOcA5wA6AOkA6QA7APIA8gA8APcA9wA9APkA+gA+AP8BAABAAQUBBQBCAQgBCABDARMBFQBEAScBKQBHASwBLABKAS4BLgBLAUUBRQBMAWUBawBNAW8BcABUAewB7QBWAe8B7wBYAfECFwBZAhwCIQCAAiYCNgCGAjgCQQCXAkoCTAChAk4CTgCkAlACUAClAlICUgCmAlQCVACnAlcCVwCoAlkCWQCpAlsCWwCqAl0CXQCrAl8CXwCsAmECYQCtAmMCbwCuAnECcQC7AnMCcwC8AnUCdQC9AoACgAC+AoICggC/AoQChADAAoYChgDBAogCiADCAooCigDDAowCjADEAo4CjgDFApACkADGApICkgDHApQCnADIAvgC/QDRAwADDwDXAxIDEgDnAxYDFgDoAxgDGADpAxwDHADqAx8DIADrAyIDKwDtAy0DLwD3AzEDNgD6AzgDPgEAA0QDRQEHA0cDRwEJA0kDSQEKA0sDTgELA1IDVwEPA1oDWgEVA1wDXAEWA2ADYQEXA2YDcQEZA3QDdQElA3cDegEnA4EDggErA4YDhgEtA4gDjgEuA5MDlAE1A5gDwAE3A8IDwgFgA8QD0QFhA9kD2QFvA9wD3AFwA94D3gFxA+oD7wFyA/ID8gF4A/QD9AF5A/YD9gF6A/gD+QF7A/4EAQF9BAQEBAGBBAYEBwGCBAkECQGEBA0EDQGFBA8EDwGGBBMEEwGHAAIBOAAEAAQAHQAJAAkAHQAOAA4AHgAQABAAHgAkACQAAQAlACUABAAmACYAAwAnACcABQAqACsAAgAsACwADAAtAC0ACQAuAC4ACgAvADAAAgAxADEAAwAyADIACwA2ADYABgA3ADcADAA4ADgADQA5ADkAEAA6ADoADgA7ADsADwA8ADwAEQBDAEMAEwBEAEQAFQBFAEUAFABHAEcAFgBKAEoAFwBPAFAAFwBRAFEAGABSAFIAFQBUAFQAGgBYAFgAGQBaAFoAGwBbAFsAGQBcAFwAHACIAIgAFQCsAKwABwCuAK4AAwC4ALgAGQC8ALwAFwDCAMIAFQDPANAAHwDSANIAAgDVANUADgDXANgAAgDZANkAEgDbANsAAgDdAN0AAgDfAN8AHwDhAOEAHwDnAOcACADpAOkAGwDyAPIAFQD3APcAIAD5APkAIAD6APoAFQD/AQAAIAEFAQUAIAETARMAGAEUARQADQEVARUAGQEnAScAFQEoASgABwEpASkACAEsASwACQEuAS4ACQFFAUUACAFlAWYAHQFnAWcAHgFoAWoAHQFrAWsAHgFvAXAAHgHsAe0AAwHvAe8ABgH4AfgABAH5AfwABQH9AgEAAgICAgYAAwIHAgoADAILAgsADwIMAhIAEwITAhMAFAIUAhcAFgIcAhwAFwIdAiEAGAImAicAGQIpAikAEwIrAisAEwItAi0AEwIuAi4ABAIvAi8AFAIwAjAABAIxAjEAFAIyAjIABAIzAjMAFAI0AjQABAI1AjUAFAI2AjYAAwI4AjgABQI5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AAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAGAAQABwAFAAYAAAAGABYABgAAAAYAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAkAAAAAAAYAFgAMAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAJAAAAFgAWAAAAAAAAAAAAAgAAAAAAAAAGABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAZAAAACwALABUACwALAAsAFQAAAAAAAAAVABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAABIAEgASABIAEgASABIABgAAAAAAAAAAAAAAAAAAAAAAAAAGAAYABgAGAAYACAAIAAgACAAKABsAGwAbABsAGwAbABsAFgAWABYAFgAWAAAAAAAAAAAACQAEAAQABAAEAAQADQANAA0ADQAFAAUAEgAbABIAGwASABsABgAWAAYAFgAGABYABgAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAYAFgAGABYABgAWAAYAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAkAAAAJAAkABgAEAAYABAAGAAQAAAAAAAAAAAAAAAAAGgAYABoAGAAaABgAGgAYABoAGAAMAAAADAAAAAwAAAAIAA0ACAANAAgADQAIAA0ACAANAAgADQAPAAAACgAFAAoAFAABABQAAQAUAAEAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAYACgAAAAAAEgAAAAAAFAAAAAAAAAAAAAAABgAAAAAACgATAAAACgAWAAAACQAAAA0AAAAEAAAABQAAAAAADQAEAA0AAAAAAAAAAAAAAAAAHAAAAAAAEQASAAAAAAAAAAAAAAAAAAYAAAAAAAYADAATABsAFgAJAAQACQAWAAUAFwAWAAkAGAAAAAAAAAAJAAUADwAAAA8AAAAPAAAACgAFAAsACwAAAAAAAAALAAAACQASABsABgAAAAAAAAAAABYACQAAAAAABwAFABYABgAAAAAABgAWAAoABQAAABMAFwAAABIAGwASABsAAAAAAAAAFgAAABYAFgATABcAAAAAAAAACQAAAAkABgAEAAYAFgAGAAQAAAAAABEABQARAAUAEQAFAA4AAwAAAAkAEwAXABYAAgAQABIAGwASABsAEgAbABIAGwASABsAEgAbABIAGwASABsAEgAbABIAGwASABsAEgAbAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAAAAAAAAAGAAQABgAEAAYABAAGAAQABgAEAAYABAAGAAQABgAWAAYAFgAGABYABgAEAAYAFgAIAA0ACAANAAAADQAAAA0AAAANAAAADQAAAA0ACgAFAAoABQAKAAUAAAAAAAAACQAAAAkADAAAABMAFwAOAAMADgADAAAACQATABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAACQAAAAkAAgAQAAoAAAAAAAAAAAAAABkAAAABAAAACgAsAI4AAURGTFQACAAEAAAAAP//AAgAAAABAAIAAwAEAAUABgAHAAhsaWdhADJsbnVtADhzbWNwAD5zczAxAERzczAyAEpzczAzAFBzczA0AFZzczA1AFwAAAABAAEAAAABAAIAAAABAAAAAAABAAMAAAABAAQAAAABAAUAAAABAAYAAAABAAcACAASABoAIgAqADIAOgBCAEoAAQAAAAEAQAAEAAAAAQH2AAEAAAABAgAAAQAAAAECEgABAAAAAQIQAAEAAAABAg4AAQAAAAECDAABAAAAAQIOAAICEADcAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AegBtQG2AbcBuAG5AboBuwG8Ab0BvgGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAHoAbUBtgG3AbgBuQG6AbsBvAG9Ab4C9wKiAqECogKjAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4C8wK/Ar8CwALAAsECwQLCAsICwwLDAsUCxQLGAsYCxwLHAsgCyALJAskCygLKAssCywLMAswCzQLNAs8CzwLQAtAC0QLRAtIC0gLTAtMC1ALUAtUC1gLWAtcC1wLYAtgC2QLZAtoC2gLbAtsC3ALcAt0C3QLeAt4C3wLfAuAC4ALhAuEC4gLiAuMC4wLkAuQC5QLlAuYC5gLnAucC6ALo/////wLqAuoC6wLrAuwC7ALtAu0C7gLuAu8C7wLwAvAC8QLxAvIC8gLzAvQC9AL1AvUC9gL2AqEAAQCkAAEACAABAAQBkgACAEsAAgCYAAoBmAHMAcQB1gHXAdgB2QHbAd0B5wABAIgBkQABAIgBKAABAIgBrgACAIgAAgHjAeQAAgB+AAIB5QHmAAIADQAjADwAAABDAFwAGgCDAIMANACFAIUANQHsAe0ANgHvAjEAOAI0AkUAewJIAlQAjQJXAmgAmgJqAnsArAJ+An8AvgKCApwAwAPwA/AA2wABAAEASAACAAEAEgAbAAAAAQABAEkAAQABALYAAQABADQAAQACAC0ATQ==", +"Roboto-Regular.ttf":"AAEAAAAOAIAAAwBgR0RFRgsuCy8AASx0AAAASEdQT1OC3T4oAAEsvAAAkPhHU1VCeolvLwABvbQAAANsT1MvMrivKcMAAAFoAAAAYFZETVhu6nZPAAASOAAABeBjbWFwf76BZgAAGBgAAA7iZ2x5ZusE9WMAACb8AADUeGhlYWT1kQ7EAAAA7AAAADZoaGVhC3AJkwAAASQAAAAkaG10eJaDaacAAAHIAAAQcGxvY2EvrvnGAAD7dAAACDptYXhwBDsA9gAAAUgAAAAgbmFtZbs83bQAAQOwAAAEeXBvc3Tfb5xiAAEILAAAJEYAAQAAAAEAAHdFsyVfDzz1AAkIAAAAAADE8BEuAAAAAM2CsmH6jf3VCXQIYgAAAAkAAgAAAAAAAAABAAAHbP4MAAAJkvqN/dgJdAABAAAAAAAAAAAAAAAAAAAEHAABAAAEHACXABYAXQAFAAEAAAAAAAAAAAAAAAAAAwABAAMElwGQAAUAAAWaBTMAAAEfBZoFMwAAA9EAZgIAAAAAAAAAAAAAAAAA4AAC/1AAIFsAAAAgAAAAAHB5cnMAQAAA//0GAP4AAGYHmgIAIAABn08BAAAEOgWwAAAAIAACAfsAAAAAAAAB+wAAAfsAAAKPAGkE+wBGBH4AbgXcAGkE+QBEAWUAZwKhAIUCqgAIA3IAHASJAE4BkgAdAjUAJQIbAKIDTAASBH4AcgR+ANcEfgBdBH4AXgR+ADkEfgCaBH4AhwR+AE0EfgBmBH4AVAH4AKACAABKBBEASASAAJgELgCGA8cAOgcvAGEFSgAnBRcAtgUeAIMFaQC2BKoAtgSnALYFfgCFBbMAtgI/AMMEagA/BSQAtgRgALYHAwC2BbQAtgWQAIIFGQC2BZAAggVMALUE4wBaBMYAOwVoAJYFKQAnBw0ASAUJAEEE8gAeBMkAYQIfAJIDSAAoAh8ACQNYAEADnAAEAnkATwRiAHIEiACRBDsAYQSIAGQENwBiAr4AQgSIAGYEiACRAfwAoQIL/7YEEwCSAfwAoQcCAJAEiACRBIgAYASIAJEEiABkAsoAkQQrAGYCjAAdBIgAjQQCAC4GDgAwBAIALgQCABsEAgBeArUAQAHzAK8CtQATBXEAggHzAJAEYQBuBKYARgW0AGkE2AAgAesAkwToAFoD9ACpBkkAWwOTAHoDwQBmBG4AfwZKAFoDqgB4Av0AggRHAGEDXwBxA2gAaQKCAIEEiACaA+kAQgIWAKIB+wB0AiYAXgOjAHoDwABvBjYAtAaWALQG6wB7A+0AcQd6//IERABZBXIAcwS6AKYEwgCLBsEAPQSwAEwEkQBHBIkAYAScAJoFmwAeAfoAmwRzAJoEMwAmAioAIwWLAKQEiACRB6EAaQdEAGEB/ACgArn/5AV/AHEEkwBgBZAAlgTzAI0CA/+0BDcAYgPEAKkDjQCMA2oAgQIhAKACtQCLAioAMgPGAIIC/ABoAp0AtgAA/NoAAP13AAD8kwAA/V4AAPwnAAD9QwINAMMECwChAhcAogRzALUFpAAgBXIAcwU+ADQEkQB6BbUAtgSRAEUFuwBOBYkAXQVSAHIEhQBkBL0AoAQCAC4EiABgBFAAYwQlAG0EiACRBI8AegKXAMMEbgAlA+wAZQTFAE8EiACRBE0AZQSIAGAELABRBF0AjwWjAFcFmgBfBpcAegTwAHQEQv/nBkgASgX/ACsFZQCHCJkAMgikALUGggBABbQAtQULAKYGBAA0B0MAGwS/AFEFtAC2BakAMAUHAFEGLQBTBdkAtAV6AJcHhwC0B8AAtAYSABEG6wC1BQUApgVkALEHJwDDBRgAYwRsAGEEkgCdA1sAmgTUAC4GIAAVBBAAWASeAJwEUgCcBKAAKAXvAJ0EnQCcBJ4AnAPYACgFzQBkBL0AnARZAGcGeACcBp8AkQT3AB4GNgCdBFgAnQRNAGQGiACdBGQALwSJ/+cETgBsBskAJwbkAJwEif/9BJ4AnAcIAJ8GKwCBBFb/3AcsAMQF+QCZBNIAKgRGAA8HDADWBgwAvAbRAJYF4QCWCQUAwwfRAJsEJABQA9sATAVyAHMEjABgBQoAFwQDAC4FcgBzBIkAYAcBAJ8GJAB+BwkAnwYsAIEFMgB4BEcAZAT9AHQAAPxnAAD8cQAA/WYAAP2kAAD6jQAA+qQEVv/cBRsAtQSKAJEEZACmA5AAkQTbALUEBgCRBQkApgR+AJoGjABFBYQAPgfPALUFtACRCDEAtAb0AJEF7gBzBNMAbQctADQFXAAfBXAAlwRrAIMFcACOBi8ARwS+/+MFCQCmBFoAmgWyALUEiACRBYcAXwSoAGkEqABpBLcAOgNJADsE9gBZBpQAWQbkAGQGVgA2BSsAMQRKAFMECAB5B8EARQZ1AD8H+wCtBqEAkAT2AHkEHQBlBa0AJAUgAEYFZACbBBQAAAgpAAAEFAAACCkAAAK5AAACCgAAAVwAAAR/AAACMAAAAaIAAADRAAAAAAAABYgAswZ9ALsDpgANAZkAYAGZADABlwAkAZoAUALUAGAC2wA8AsEAJARpAEYEjwBXArIAigPEAKYFWgCmB6oARAJmAGwCZgBZA6MAOwOrAEgDYAB6BKYARgaRAKcEPgBPBegAewPOAGgIywCrBQEAZgUXAJgGuwBvB1AAawd/AGwG2wBrBKIATAWOAKkErwBFBJIAqATFAD8IOgBrAgz/tASCAGUELQCYBDYAngQ8AJkECAArAkwAxwKPAG4CAwBcBG4AHwAAAAAIMwBbCDUAXAQcAFwDjQBXBIAAcwML/6IB/P+2AiUAGwGRAGcDpACDA54AgQOfAIED9ABtBA4AaQPz/14D7wBuA6QAWwH9AJ8EtQApBHUAmwSPAHIEpgCbBEMAmwQdAJsEzwByBPYAmwH6AJsECwBBBF0AmwO5AJsF9ACbBRkAmwTLAHIE4QByBKkAmwRvAF0ELABHBQIAjAS4ACoGBQBBBIQAOAReACAEPgBOBHcAewJpAEID4QBaBBIAWQRkAEcEaQBdBC0AegO5AEcELQBcBCcASwInAF4DVQBxA2gAaQL8AEoDeQByA3oAewMMAF4DggByA2sAaQOkAHwDlgCPArUAngNHAG8EfgBeBH4AOQR+AJoEjwCHBDoAHgRCADsEbwBaBH4AZgTDAGQEiABgBUQAtgRiAHIFLwC1BSQAtgQTAJIFPQC2BA8AkgR+AFQEdQCbA2oAgQH7AAACNQAlBYcALgWHAC4EpgAGBMYAOwKM/+MFSgAnBUoAJwVKACcFSgAnBUoAJwVKACcFSgAnBR4AgwSqALYEqgC2BKoAtgSqALYCP//cAj8AwwI///ICP//MBbQAtgWQAIIFkACCBZAAggWQAIIFkACCBWgAlgVoAJYFaACWBWgAlgTyAB4EYgByBGIAcgRiAHIEYgByBGIAcgRiAHIEYgByBDsAYQQ3AGIENwBiBDcAYgQ3AGIB+v+1AfoAmwH6/8sB+v+lBIgAkQSIAGAEiABgBIgAYASIAGAEiABgBIgAjQSIAI0EiACNBIgAjQQCABsEAgAbBUoAJwRiAHIFSgAnBGIAcgVKACcEYgByBR4AgwQ7AGEFHgCDBDsAYQUeAIMEOwBhBR4AgwQ7AGEFaQC2BR4AZASqALYENwBiBKoAtgQ3AGIEqgC2BDcAYgSqALYENwBiBKoAtgQ3AGIFfgCFBIgAZgV+AIUEiABmBX4AhQSIAGYFfgCFBIgAZgWzALYEiACRAj//xQH6/54CP/+/Afr/mAI///UB+v/OAj8AIQH8AAACPwC3BqkAwwQHAKEEagA/AgP/tAUkALYEEwCSBGAAtgH8AKEEYAC2AfwAWwRgALYCkgChBGAAtgLYAKEFtAC2BIgAkQW0ALYEiACRBbQAtgSIAJEEiP/SBZAAggSIAGAFkACCBIgAYAWQAIIEiABgBUwAtQLKAJEFTAC1AsoAWAVMALUCygBpBOMAWgQrAGYE4wBaBCsAZgTjAFoEKwBmBOMAWgQrAGYE4wBaBCsAZgTGADsCjAAdBMYAOwKMAB0ExgA7ArQAHQVoAJYEiACNBWgAlgSIAI0FaACWBIgAjQVoAJYEiACNBWgAlgSIAI0FaACWBIgAjQcNAEgGDgAwBPIAHgQCABsE8gAeBMkAYQQCAF4EyQBhBAIAXgTJAGEEAgBeB3r/8gbBAD0FcgBzBIkAYASm//MEpv/zBCwARwS1ACkEtQApBLUAKQS1ACkEtQApBLUAKQS1ACkEjwByBEMAmwRDAJsEQwCbBEMAmwH6/7MB+gCbAfr/yQH6/6MFGQCbBMsAcgTLAHIEywByBMsAcgTLAHIFAgCMBQIAjAUCAIwFAgCMBF4AIAS1ACkEtQApBLUAKQSPAHIEjwByBI8AcgSPAHIEpgCbBEMAmwRDAJsEQwCbBEMAmwRDAJsEzwByBM8AcgTPAHIEzwByBPYAmwH6/5wB+v+WAfr/zAH6//cB+gCPBAsAQQRdAJsDuQCbA7kAmwO5AJsDuQCbBRkAmwUZAJsFGQCbBMsAcgTLAHIEywByBKkAmwSpAJsEqQCbBG8AXQRvAF0EbwBdBG8AXQQsAEcELABHBQIAjAUCAIwFAgCMBQIAjAUCAIwFAgCMBgUAQQReACAEXgAgBD4ATgQ+AE4EPgBOCN4AXQVKACcFDv/mBhcAEwKjABkFpABSBVb/jQVmAD8Cl//IBUoAJwUXALYEqgC2BMkAYQWzALYCPwDDBSQAtgcDALYFtAC2BZAAggUZALYExgA7BPIAHgUJAEECP//MBPIAHgSFAGQEUABjBIgAkQKXAMMEXQCPBHMAmgSIAGAEiACaBAIALgQCAC4Cl//TBF0AjwSIAGAEXQCPBpcAegSqALYEcwC1BOMAWgI/AMMCP//MBGoAPwUkALYFJAC2BQcAUQVKACcFFwC2BHMAtQSqALYFtAC2BwMAtgWzALYFkACCBbUAtgUZALYFHgCDBMYAOwUJAEEEYgByBDcAYgSeAJwEiABgBIgAkQQ7AGEEAgAbBAIALgQ3AGIDWwCaBCsAZgH8AKEB+v+lAgv/tgRSAJwEAgAbBw0ASAYOADAHDQBIBg4AMAcNAEgGDgAwBPIAHgQCABsBZQBnAo8AaQQeAKkEugBCAgP/tAGZADAHAwC2BwIAkAVKACcEYgByBZD/PgcsAEIHeABCBKoAtgW0ALYENwBiBJ4AnAWJAF0FmgBfBQoAFwQD//kIigBgCZIAggS/AFEEEABYBR4AgwQ7AGEE8gAeBAIALgI/AMMHQwAbBiAAFQI/AMMFSgAnBGIAcgVKACcEYgByB3r/8gbBAD0EqgC2BDcAYgWHAF8ENwBiBDcAYgdDABsGIAAVBL8AUQQQAFgFtAC2BJ4AnAW0ALYEngCcBZAAggSIAGAFcgBzBIwAYAVyAHMEjABgBWQAsQRNAGQFBwBRBAIAGwUHAFEEAgAbBQcAUQQCABsFegCXBFkAZwbrALUGNgCdBQkAQQQCAC4EiABkBakAMASgACgFSgAnBGIAcgVKACcEYgByBUoAJwRiAHIFSgAnBGL/rgVKACcEYgByBUoAJwRiAHIFSgAnBGIAcgVKACcEYgByBUoAJwRiAHIFSgAnBGIAcgVKACcEYgByBUoAJwRiAHIEqgC2BDcAYgSqALYENwBiBKoAtgQ3AGIEqgC2BDcAYgSq//gEN/+zBKoAtgQ3AGIEqgC2BDcAYgSqALYENwBiAj8AwwH6AJsCPwC3AfwAlgWQAIIEiABgBZAAggSIAGAFkACCBIgAYAWQAEwEiP/LBZAAggSIAGAFkACCBIgAYAWQAIIEiABgBX8AcQSTAGAFfwBxBJMAYAV/AHEEkwBgBX8AcQSTAGAFfwBxBJMAYAVoAJYEiACNBWgAlgSIAI0FkACWBPMAjQWQAJYE8wCNBZAAlgTzAI0FkACWBPMAjQWQAJYE8wCNBPIAHgQCABsE8gAeBAIAGwTyAB4EAgAbBKYAZASmAGQFJAC2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ABEQACEzNTMDIgYVFBY7AREzETMyNjU0JiMDeBsBAgFO/rL+/hu5Hf79/rQBTAEDHbnWxtHRxh25HcTS0sQFHv69/vv++f67xsYBQwEHAQUBRc7+nenMzucDavyW6c7L6AAAAAABALT+oQWSBbAACwAAEzMRIREzETMDIxEhtLkC17mVEqX72QWw+uUFG/rp/ggBXwABAJcAAATEBbAAEwAAAREjEQ4BIyImNREzERQWMzI2NxEExLlhsHv187qMomm8ZwWw+lACYR0azvIBxv46q38cHAK4AAEAtAAABtIFsAALAAABESERMxEhETMRIREBbgH6uQH4ufniBbD65QUb+uUFG/pQBbAAAAABALT+oQdrBbAADwAAAREhETMRIREzETMDIxEhEQFuAfq5Afi5mRKm+gEFsPrlBRv65QUb+uX+DAFfBbAAAAAAAgARAAAFuAWwAAwAFQAAEyERITIWFRQGIyERIQERITI2NTQmIxECVQFo7vz97f3f/mQCVQFonJSUnAWw/ajhx8joBRv9qP3Sn355mAAAAAADALUAAAY1BbAACgATABcAAAEhMhYVFAYjIREzGQEhMjY1NCYjASMRMwFuAWju/P3t/d+5AWiclJScA1+5uQNY4cfI6AWw/RP90p9+eZj9PQWwAAACAKYAAASxBbAACgATAAABITIWFRQGIyERMxkBITI2NTQmIwFfAWju/P3t/d+5AWiclJScA1jhx8joBbD9E/3Sn355mAAAAAABALH/7AT2BcYAHwAAEzQAMzIAGQEQACMiADUzFBYzMhI9ASE1ITU0AiMiBhWxAST2+wEw/tD7+/7hubWsq8f9uwJFx6ustQPf1QES/qb+7f7//uz+qAEB46CvAQjNOJU2zgEJsKEAAAIAw//rBt4FxQAVACMAAAEQACEgABE1IxEjETMRMzUQACEgABEnNAIjIgIVERQSMzISNQbe/rv+9v7+/sbXubnXAToBAgEKAUW52ry0z8+0vdkCV/70/qABYAEMKP2BBbD9ZEQBCwFi/p7+9QLJAQb++sn+/cv++gEFzAACAGMAAARnBbAADQAWAAAhIwEuATU0JDMhESMRIQEhIgYVFBYzIQEoxQFVkJABC/UBz7r+qwFV/uujpKSdARsCbzbDktTi+lACPALeloiHowAAAAACAGH/6wQoBhEAGwApAAABMhId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ACkAAAAHAJoA0QFy//8AZv5MA/cGBAImAEkAAAAGAJpdGwAA//8Ahf/rBNsHYQImACkAAAAHAJwA/AGx//8AZv5MA/cGCgImAEkAAAAHAJwAiABa//8Ahf/rBNsHIgImACkAAAAHAJ0BoAFy//8AZv5MA/cFywImAEkAAAAHAJ0BLAAb//8Ahf3lBNsFxQImACkAAAAHAZEBq/62//8AZv5MA/cGbQImAEkAAAAHAaUBMwBW//8AtgAABP0HRgImACoAAAAHAJoA+gFd//8AkQAAA/oHRQImAEoAAAAHAJoAIwFc////xQAAAncHUQImACsAAAAHAKD/QwFg////ngAAAlAF+gImAIoAAAAHAKD/HAAJ////vwAAAokG+gImACsAAAAHAG7/RwFK////mAAAAmIFpAImAIoAAAAHAG7/IP/0////9QAAAkwHTAImACsAAAAHAJz/dAGc////zgAAAiUF9QImAIoAAAAHAJz/TQBF//8AIf5YAYEFsAImACsAAAAGAJ/vCAAA//8AAP5QAWAGGAImAEsAAAAGAJ/OAAAA//8AtwAAAYYHDQImACsAAAAHAJ0AFwFd//8Aw//rBf8FsAAmACsAAAAHACwCPwAA//8Aof5LA2MGGAAmAEsAAAAHAEwB/AAA//8AP//rBIsHOQImACwAAAAHAJoBhQFQ////tP5LAjkF3AImAJgAAAAHAJr/M//z//8Atv31BRwFsAImAC0AAAAHAZEBev7G//8Akv33BBQGGAImAE0AAAAHAZEBGP7I//8AtgAABCUG4AImAC4AAAAHAHMANwEa//8AoQAAAkMHXAImAE4AAAAHAHMAJQGW//8Atv33BCUFsAImAC4AAAAHAZEBdP7I//8AW/33AVoGGAImAE4AAAAHAZH///7I//8AtgAABCUFsQImAC4AAAAHAZEB2QTF//8AoQAAAq0GGAAmAE4AAAAHAZEBVgUs//8AtgAABCUFsAImAC4AAAAHAJ0Bxf3F//8AoQAAAq0GGAAmAE4AAAAHAJ0BPv23//8AtgAABP4HHwImADAAAAAHAHMB/wFZ//8AkQAAA/gF3QImAFAAAAAHAHMBaQAX//8Atv33BP4FsAImADAAAAAHAZEB2P7I//8Akf33A/gETgImAFAAAAAHAZEBQv7I//8AtgAABP4HRwImADAAAAAHAJsBFwFe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//8AWP5SA6wETAImAOoAAAAHAZwBQ/+5//8Ag/5RBMkFxQImACUAAAAHAZwB7v+4//8AYf5RA/IETgImAEUAAAAHAZwBWP+4//8AHgAABNMFsAIGADsAAP//AC7+YAPfBDoCBgC4AAD//wDDAAABfAWwAgYAKwAA//8AGwAABygHTAImANUAAAAHAJwB+AGc//8AFQAABgQF9QImAOkAAAAHAJwBjQBF//8AwwAAAXwFsAIGACsAAP//ACcAAAUiB0wCJgAjAAAABwCcAPsBnP//AHL/7APsBgoCJgBDAAAABgCcfVoAAP//ACcAAAUiBwwCJgAjAAAABwBoAKoBXP//AHL/7APsBcoCJgBDAAAABgBoLBoAAP////IAAAdXBbACBgB/AAD//wA9/+sGfAROAgYAhAAA//8AtgAABHUHTAImACcAAAAHAJwAxwGc//8AYv/sA+kGCwImAEcAAAAHAJwAggBb//8AX//rBRAG3gImAUEAAAAHAGgAfQEu//8AYv/sA+kETwIGAJkAAP//AGL/7APpBcsCJgCZAAAABgBoMRsAAP//ABsAAAcoBwwCJgDVAAAABwBoAacBXP//ABUAAAYEBbUCJgDpAAAABwBoATwABf//AFH/6wRnByECJgDWAAAABwBoAGEBcf//AFj/7QOsBckCJgDqAAAABgBoCBkAAP//ALYAAAT+BvoCJgDXAAAABwBuAQQBSv//AJwAAAQBBaQCJgDrAAAABgBudfQAAP//ALYAAAT+BwwCJgDXAAAABwBoAOABXP//AJwAAAQBBbUCJgDrAAAABgBoUQUAAP//AIL/6wUNByECJgAxAAAABwBoAMoBcf//AGD/7AQnBcoCJgBRAAAABgBoSRoAAP//AHP/6wT+BcUCBgESAAD//wBg/+wEJwROAgYBEwAA//8Ac//rBP4HBwImARIAAAAHAGgA0gFX//8AYP/sBCcF5gImARMAAAAGAGgyNgAA//8Asf/sBPYHIgImAOIAAAAHAGgAtwFy//8AZP/rA+AFygImAPoAAAAGAGgmGgAA//8AUf/rBMgG+gImANkAAAAHAG4ArQFK//8AG/5LA+QFpAImAFsAAAAGAG4p9AAA//8AUf/rBMgHDAImANkAAAAHAGgAiQFc//8AG/5LA+QFtQImAFsAAAAGAGgFBQAA//8AUf/rBMgHSwIm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IABMAGkAYwBlAG4AcwBlACwAIABWAGUAcgBzAGkAbwBuACAAMgAuADAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcABhAGMAaABlAC4AbwByAGcALwBsAGkAYwBlAG4AcwBlAHMALwBMAEkAQwBFAE4AUwBFAC0AMgAuADAAAAAAAgAAAAAAAP9qAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAQcAAABAgACAAMABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAowCEAIUAvQCWAOgAhgCOAIsAnQCpAKQAigEDAIMAkwDyAPMAjQCXAIgBBADeAPEAngCqAPUA9AD2AKIAkADwAJEA7QCJAKAA6gC4AKEA7gEFANcBBgDiAOMBBwEIALAAsQEJAKYBCgELAQwBDQEOAQ8A2ADhANsA3ADdAOAA2QDfARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIAnwEjASQBJQEmAScBKAEpASoBKwEsAS0AmwEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNALIAswHOALYAtwDEAc8AtAC1AMUAggDCAIcB0ACrAMYAvgC/ALwB0QHSAdMB1AHVAdYB1wHYAIwB2QHaAdsB3AHdAJgAmgCZAO8ApQCSAJwApwCPAJQAlQC5Ad4B3wHgAMAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcArAI4AjkA6QI6AjsCPACtAMkAxwCuAGIAYwI9AGQAywBlAMgAygDPAMwAzQDOAGYA0wDQANEArwBnANYA1ADVAGgA6wBqAGkAawBtAGwAbgI+AG8AcQBwAHIAcwB1AHQAdgB3AHgAegB5AHsAfQB8AH8AfgCAAIEA7AC6Aj8CQAJBAkICQwJEAP0A/gJFAkYCRwJIAP8BAAJJAkoCSwJMAk0CTgJPAlACUQJSAlMCVAJVAlYA+AD5AlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooA+wD8AosCjADkAOUCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQKaApsCnAKdAp4CnwKgAqECogC7AqMCpAKlAqYA5gDnAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+Ar8CwALBAsICwwLEAsUCxgLHAsgCyQLKAssCzALNAs4CzwLQAtEC0gLTAtQC1QLWAtcC2ALZAtoC2wLcAt0C3gLfAuAC4QLiAuMC5ALlAuYC5wLoAukC6gLrAuwC7QLuAu8C8ALxAvIC8wL0AvUC9gL3AvgC+QL6AvsC/AL9Av4C/wMAAwEDAgMDAwQDBQMGAwcDCAMJAwoDCwMMAw0DDgMPAxADEQMSAxMDFAMVAxYDFwMYAxkDGgMbAxwDHQMeAx8DIAMhAyIDIwMkAyUDJgMnAygDKQMqAysDLAMtAy4DLwMwAzEDMgMzAzQDNQM2AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgNjA2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1A3YDdwN4A3kDegN7A3wDfQN+A38DgAOBA4IDgwOEA4UDhgOHA4gDiQOKA4sDjAONA44DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DngOfA6ADoQOiA6MDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgPPA9AD0QPSA9MD1APVA9YD1wPYA9kD2gPbA9wD3QPeA98D4APhA+ID4wPkA+UD5gPnA+gD6QPqA+sD7APtA+4D7wPwA/ED8gPzA/QD9QP2A/cD+AP5A/oD+wP8A/0D/gP/BAAEAQQCBAMEBAQFBAYEBwQIBAkECgQLBAwEDQQOBA8EEAQRBBIEEwQUBBUEFgQXBBgEGQQaBBsEHAQdBB4EHwQgBCEA9wQiBCMABAd1bmkwMDA5Bm1hY3Jvbg5wZXJpb2RjZW50ZXJlZARIYmFyDGtncmVlbmxhbmRpYwNFbmcDZW5nBWxvbmdzBU9ob3JuBW9ob3JuBVVob3JuBXVob3JuB3VuaTAyMzcFc2Nod2EHdW5pMDJGMwlncmF2ZWNvbWIJYWN1dGVjb21iCXRpbGRlY29tYgRob29rB3VuaTAzMEYIZG90YmVsb3cFdG9ub3MNZGllcmVzaXN0b25vcwlhbm90ZWxlaWEFR2FtbWEFRGVsdGEFVGhldGEGTGFtYmRhAlhpAlBpBVNpZ21hA1BoaQNQc2kFYWxwaGEEYmV0YQVnYW1tYQVkZWx0YQdlcHNpbG9uBHpldGEDZXRhBXRoZXRhBGlvdGEGbGFtYmRhAnhpA3JobwZzaWdtYTEFc2lnbWEDdGF1B3Vwc2lsb24DcGhpA3BzaQVvbWVnYQd1bmkwM0QxB3VuaTAzRDIHdW5pMDNENgd1bmkwNDAyB3VuaTA0MDQHdW5pMDQwOQd1bmkwNDBBB3VuaTA0MEIHdW5pMDQwRgd1bmkwNDExB3VuaTA0MTQHdW5pMDQxNgd1bmkwNDE3B3VuaTA0MTgHdW5pMDQxQgd1bmkwNDIzB3VuaTA0MjQHdW5pMDQyNgd1bmkwNDI3B3VuaTA0MjgHdW5pMDQyOQd1bmkwNDJBB3VuaTA0MkIHdW5pMDQyQwd1bmkwNDJEB3VuaTA0MkUHdW5pMDQyRgd1bmkwNDMxB3VuaTA0MzIHdW5pMDQzMwd1bmkwNDM0B3VuaTA0MzYHdW5pMDQzNwd1bmkwNDM4B3VuaTA0M0EHdW5pMDQzQgd1bmkwNDNDB3VuaTA0M0QHdW5pMDQzRgd1bmkwNDQyB3VuaTA0NDQHdW5pMDQ0Ngd1bmkwNDQ3B3VuaTA0NDgHdW5pMDQ0OQd1bmkwNDRBB3VuaTA0NEIHdW5pMDQ0Qwd1bmkwNDREB3VuaTA0NEUHdW5pMDQ0Rgd1bmkwNDUyB3VuaTA0NTQHdW5pMDQ1OQd1bmkwNDVBB3VuaTA0NUIHdW5pMDQ1Rgd1bmkwNDYwB3VuaTA0NjEHdW5pMDQ2Mwd1bmkwNDY0B3VuaTA0NjUHdW5pMDQ2Ngd1bmkwNDY3B3VuaTA0NjgHdW5pMDQ2OQd1bmkwNDZBB3VuaTA0NkIHdW5pMDQ2Qwd1bmkwNDZEB3VuaTA0NkUHdW5pMDQ2Rgd1bmkwNDcyB3VuaTA0NzMHdW5pMDQ3NAd1bmkwNDc1B3VuaTA0N0EHdW5pMDQ3Qgd1bmkwNDdDB3VuaTA0N0QHdW5pMDQ3RQd1bmkwNDdGB3VuaTA0ODAHdW5pMDQ4MQd1bmkwNDgyB3VuaTA0ODMHdW5pMDQ4NAd1bmkwNDg1B3VuaTA0ODYHdW5pMDQ4OAd1bmkwNDg5B3VuaTA0OEQHdW5pMDQ4RQd1bmkwNDhGB3VuaTA0OTAHdW5pMDQ5MQd1bmkwNDk0B3VuaTA0OTUHdW5pMDQ5Qwd1bmkwNDlEB3VuaTA0QTAHdW5pMDRBMQd1bmkwNEE0B3VuaTA0QTUHdW5pMDRBNgd1bmkwNEE3B3VuaTA0QTgHdW5pMDRBOQd1bmkwNEI0B3VuaTA0QjUHdW5pMDRCOAd1bmkwNEI5B3VuaTA0QkEHdW5pMDRCQwd1bmkwNEJEB3VuaTA0QzMHdW5pMDRDNAd1bmkwNEM3B3VuaTA0QzgHdW5pMDREOAd1bmkwNEUwB3VuaTA0RTEHdW5pMDRGQQd1bmkwNEZCB3VuaTA1MDAHdW5pMDUwMgd1bmkwNTAzB3VuaTA1MDQHdW5pMDUwNQd1bmkwNTA2B3VuaTA1MDcHdW5pMDUwOAd1bmkwNTA5B3VuaTA1MEEHdW5pMDUwQgd1bmkwNTBDB3VuaTA1MEQHdW5pMDUwRQd1bmkwNTBGB3VuaTA1MTAHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMEINdW5kZXJzY29yZWRibA1xdW90ZXJldmVyc2VkB3VuaTIwMjUHdW5pMjA3NAluc3VwZXJpb3IEbGlyYQZwZXNldGEERXVybwd1bmkyMTA1B3VuaTIxMTMHdW5pMjExNgllc3RpbWF0ZWQJb25lZWlnaHRoDHRocmVlZWlnaHRocwtmaXZlZWlnaHRocwxzZXZlbmVpZ2h0aHMKY29sb24ubG51bQlxdW90ZWRibHgLY29tbWFhY2NlbnQHdW5pRkVGRgd1bmlGRkZDB3VuaUZGRkQJZml2ZS5zbWNwCGZvdXIuc3VwCXplcm8ubG51bQ5sYXJnZXJpZ2h0aG9vawxjeXJpbGxpY2hvb2sQY3lyaWxsaWNob29rbGVmdAtjeXJpbGxpY3RpYw5icmV2ZXRpbGRlY29tYg1icmV2ZWhvb2tjb21iDmJyZXZlYWN1dGVjb21iE2NpcmN1bWZsZXh0aWxkZWNvbWISY2lyY3VtZmxleGhvb2tjb21iE2NpcmN1bWZsZXhncmF2ZWNvbWITY2lyY3VtZmxleGFjdXRlY29tYg5icmV2ZWdyYXZlY29tYhFjb21tYWFjY2VudHJvdGF0ZQZBLnNtY3AGQi5zbWNwBkMuc21jcAZELnNtY3AGRS5zbWNwBkYuc21jcAZHLnNtY3AGSC5zbWNwBkkuc21jcAZKLnNtY3AGSy5zbWNwBkwuc21jcAZNLnNtY3AGTi5zbWNwBk8uc21jcAZRLnNtY3AGUi5zbWNwBlMuc21jcAZULnNtY3AGVS5zbWNwBlYuc21jcAZXLnNtY3AGWC5zbWNwBlkuc21jcAZaLnNtY3AJemVyby5zbWNwCG9uZS5zbWNwCHR3by5zbWNwCnRocmVlLnNtY3AJZm91ci5zbWNwCHR3by5sbnVtCHNpeC5zbWNwCnNldmVuLnNtY3AKZWlnaHQuc21jcAluaW5lLnNtY3AHb25lLnN1cAd0d28uc3VwCXRocmVlLnN1cAhvbmUubG51bQhmaXZlLnN1cAdzaXguc3VwCXNldmVuLnN1cAllaWdodC5zdXAIbmluZS5zdXAIemVyby5zdXAIY3Jvc3NiYXIJcmluZ2FjdXRlCWRhc2lhb3hpYQp0aHJlZS5sbnVtCWZvdXIubG51bQlmaXZlLmxudW0Ic2l4LmxudW0FZy5hbHQKc2V2ZW4ubG51bQdjaGkuYWx0CmVpZ2h0LmxudW0JYWxwaGEuYWx0CWRlbHRhLmFsdARELmNuBGEuY24FUi5hbHQFSy5hbHQFay5hbHQGSy5hbHQyBmsuYWx0MgluaW5lLmxudW0GUC5zbWNwDWN5cmlsbGljYnJldmUHdW5pMDBBRAZEY3JvYXQEaGJhcgRUYmFyBHRiYXIKQXJpbmdhY3V0ZQphcmluZ2FjdXRlB0FtYWNyb24HYW1hY3JvbgZBYnJldmUGYWJyZXZlB0FvZ29uZWsHYW9nb25lawtDY2lyY3VtZmxleAtjY2lyY3VtZmxleAd1bmkwMTBBB3VuaTAxMEIGRGNhcm9uBmRjYXJvbgdFbWFjcm9uB2VtYWNyb24GRWJyZXZlBmVicmV2ZQpFZG90YWNjZW50CmVkb3RhY2NlbnQHRW9nb25lawdlb2dvbmVrBkVjYXJvbgZlY2Fyb24LR2NpcmN1bWZsZXgLZ2NpcmN1bWZsZXgHdW5pMDEyMAd1bmkwMTIxDEdjb21tYWFjY2VudAxnY29tbWFhY2NlbnQLSGNpcmN1bWZsZXgLaGNpcmN1bWZsZXgGSXRpbGRlBml0aWxkZQdJbWFjcm9uB2ltYWNyb24GSWJyZXZlBmlicmV2ZQdJb2dvbmVrB2lvZ29uZWsKSWRvdGFjY2VudAJJSgJpagtKY2lyY3VtZmxleAtqY2lyY3VtZmxleAxLY29tbWFhY2NlbnQMa2NvbW1hYWNjZW50BkxhY3V0ZQZsYWN1dGUMTGNvbW1hYWNjZW50DGxjb21tYWFjY2VudAZMY2Fyb24GbGNhcm9uBExkb3QEbGRvdAZOYWN1dGUGbmFjdXRlDE5jb21tYWFjY2VudAxuY29tbWFhY2NlbnQGTmNhcm9uBm5jYXJvbgtuYXBvc3Ryb3BoZQdPbWFjcm9uB29tYWNyb24GT2JyZXZlBm9icmV2ZQ1PaHVuZ2FydW1sYXV0DW9odW5nYXJ1bWxhdXQGUmFjdXRlBnJhY3V0ZQxSY29tbWFhY2NlbnQMcmNvbW1hYWNjZW50BlJjYXJvbgZyY2Fyb24GU2FjdXRlBnNhY3V0ZQtTY2lyY3VtZmxleAtzY2lyY3VtZmxleAd1bmkwMjE4B3VuaTAyMTkHdW5pMDIxQQd1bmkwMjFCB3VuaTAxNjIHdW5pMDE2MwZUY2Fyb24GdGNhcm9uBlV0aWxkZQZ1dGlsZGUHVW1hY3Jvbgd1bWFjcm9uBlVicmV2ZQZ1YnJldmUFVXJpbmcFdXJpbmcNVWh1bmdhcnVtbGF1dA11aHVuZ2FydW1sYXV0B1VvZ29uZWsHdW9nb25lawtXY2lyY3VtZmxleAt3Y2lyY3VtZmxleAtZY2lyY3VtZmxleAt5Y2lyY3VtZmxleAZaYWN1dGUGemFjdXRlClpkb3RhY2NlbnQKemRvdGFjY2VudAdBRWFjdXRlB2FlYWN1dGULT3NsYXNoYWN1dGULb3NsYXNoYWN1dGULRGNyb2F0LnNtY3AIRXRoLnNtY3AJVGJhci5zbWNwC0FncmF2ZS5zbWNwC0FhY3V0ZS5zbWNwEEFjaXJjdW1mbGV4LnNtY3ALQXRpbGRlLnNtY3AOQWRpZXJlc2lzLnNtY3AKQXJpbmcuc21jcA9BcmluZ2FjdXRlLnNtY3ANQ2NlZGlsbGEuc21jcAtFZ3JhdmUuc21jcAtFYWN1dGUuc21jcBBFY2lyY3VtZmxleC5zbWNwDkVkaWVyZXNpcy5zbWNwC0lncmF2ZS5zbWNwC0lhY3V0ZS5zbWNwEEljaXJjdW1mbGV4LnNtY3AOSWRpZXJlc2lzLnNtY3ALTnRpbGRlLnNtY3ALT2dyYXZlLnNtY3ALT2FjdXRlLnNtY3AQT2NpcmN1bWZsZXguc21jcAtPdGlsZGUuc21jcA5PZGllcmVzaXMuc21jcAtVZ3JhdmUuc21jcAtVYWN1dGUuc21jcBBVY2lyY3VtZmxleC5zbWNwDlVkaWVyZXNpcy5zbWNwC1lhY3V0ZS5zbWNwDEFtYWNyb24uc21jcAtBYnJldmUuc21jcAxBb2dvbmVrLnNtY3ALQ2FjdXRlLnNtY3AQQ2NpcmN1bWZsZXguc21jcAx1bmkwMTBBLnNtY3ALQ2Nhcm9uLnNtY3ALRGNhcm9uLnNtY3AMRW1hY3Jvbi5zbWNwC0VicmV2ZS5zbWNwD0Vkb3RhY2NlbnQuc21jcAxFb2dvbmVrLnNtY3ALRWNhcm9uLnNtY3AQR2NpcmN1bWZsZXguc21jcAtHYnJldmUuc21jcAx1bmkwMTIwLnNtY3ARR2NvbW1hYWNjZW50LnNtY3AQSGNpcmN1bWZsZXguc21jcAtJdGlsZGUuc21jcAxJbWFjcm9uLnNtY3ALSWJyZXZlLnNtY3AMSW9nb25lay5zbWNwD0lkb3RhY2NlbnQuc21jcBBKY2lyY3VtZmxleC5zbWNwEUtjb21tYWFjY2VudC5zbWNwC0xhY3V0ZS5zbWNwEUxjb21tYWFjY2VudC5zbWNwC0xjYXJvbi5zbWNwCUxkb3Quc21jcAtOYWN1dGUuc21jcBFOY29tbWFhY2NlbnQuc21jcAtOY2Fyb24uc21jcAxPbWFjcm9uLnNtY3ALT2JyZXZlLnNtY3AST2h1bmdhcnVtbGF1dC5zbWNwC1JhY3V0ZS5zbWNwEVJjb21tYWFjY2VudC5zbWNwC1JjYXJvbi5zbWNwC1NhY3V0ZS5zbWNwEFNjaXJjdW1mbGV4LnNtY3ANU2NlZGlsbGEuc21jcAtTY2Fyb24uc21jcBFUY29tbWFhY2NlbnQuc21jcAtUY2Fyb24uc21jcAtVdGlsZGUuc21jcAxVbWFjcm9uLnNtY3ALVWJyZXZlLnNtY3AKVXJpbmcuc21jcBJVaHVuZ2FydW1sYXV0LnNtY3AMVW9nb25lay5zbWNwEFdjaXJjdW1mbGV4LnNtY3AQWWNpcmN1bWZsZXguc21jcA5ZZGllcmVzaXMuc21jcAtaYWN1dGUuc21jcA9aZG90YWNjZW50LnNtY3ALWmNhcm9uLnNtY3APZ2VybWFuZGJscy5zbWNwCkFscGhhdG9ub3MMRXBzaWxvbnRvbm9zCEV0YXRvbm9zCUlvdGF0b25vcwxPbWljcm9udG9ub3MMVXBzaWxvbnRvbm9zCk9tZWdhdG9ub3MRaW90YWRpZXJlc2lzdG9ub3MFQWxwaGEEQmV0YQdFcHNpbG9uBFpldGEDRXRhBElvdGEFS2FwcGECTXUCTnUHT21pY3JvbgNSaG8DVGF1B1Vwc2lsb24DQ2hpDElvdGFkaWVyZXNpcw9VcHNpbG9uZGllcmVzaXMKYWxwaGF0b25vcwxlcHNpbG9udG9ub3MIZXRhdG9ub3MJaW90YXRvbm9zFHVwc2lsb25kaWVyZXNpc3Rvbm9zBWthcHBhB29taWNyb24HdW5pMDNCQwJudQNjaGkMaW90YWRpZXJlc2lzD3Vwc2lsb25kaWVyZXNpcwxvbWljcm9udG9ub3MMdXBzaWxvbnRvbm9zCm9tZWdhdG9ub3MHdW5pMDQwMQd1bmkwNDAzB3VuaTA0MDUHdW5pMDQwNgd1bmkwNDA3B3VuaTA0MDgHdW5pMDQxQQd1bmkwNDBDB3VuaTA0MEUHdW5pMDQxMAd1bmkwNDEyB3VuaTA0MTMHdW5pMDQxNQd1bmkwNDE5B3VuaTA0MUMHdW5pMDQxRAd1bmkwNDFFB3VuaTA0MUYHdW5pMDQyMAd1bmkwNDIxB3VuaTA0MjIHdW5pMDQyNQd1bmkwNDMwB3VuaTA0MzUHdW5pMDQzOQd1bmkwNDNFB3VuaTA0NDAHdW5pMDQ0MQd1bmkwNDQzB3VuaTA0NDUHdW5pMDQ1MQd1bmkwNDUzB3VuaTA0NTUHdW5pMDQ1Ngd1bmkwNDU3B3VuaTA0NTgHdW5pMDQ1Qwd1bmkwNDVFBldncmF2ZQZ3Z3JhdmUGV2FjdXRlBndhY3V0ZQlXZGllcmVzaXMJd2RpZXJlc2lzBllncmF2ZQZ5Z3JhdmUGbWludXRlBnNlY29uZAlleGNsYW1kYmwHdW5pRkIwMgd1bmkwMUYwB3VuaTAyQkMHdW5pMUUzRQd1bmkxRTNGB3VuaTFFMDAHdW5pMUUwMQd1bmkxRjREB3VuaUZCMDMHdW5pRkIwNAd1bmkwNDAwB3VuaTA0MEQHdW5pMDQ1MAd1bmkwNDVEB3VuaTA0NzAHdW5pMDQ3MQd1bmkwNDc2B3VuaTA0NzcHdW5pMDQ3OQd1bmkwNDc4B3VuaTA0OTgHdW5pMDQ5OQd1bmkwNEFBB3VuaTA0QUIHdW5pMDRBRQd1bmkwNEFGB3VuaTA0QzAHdW5pMDRDMQd1bmkwNEMyB3VuaTA0Q0YHdW5pMDREMAd1bmkwNEQxB3VuaTA0RDIHdW5pMDREMwd1bmkwNEQ0B3VuaTA0RDUHdW5pMDRENgd1bmkwNEQ3B3VuaTA0REEHdW5pMDREOQd1bmkwNERCB3VuaTA0REMHdW5pMDRERAd1bmkwNERFB3VuaTA0REYHdW5pMDRFMgd1bmkwNEUzB3VuaTA0RTQHdW5pMDRFNQd1bmkwNEU2B3VuaTA0RTcHdW5pMDRFOAd1bmkwNEU5B3VuaTA0RUEHdW5pMDRFQgd1bmkwNEVDB3VuaTA0RUQHdW5pMDRFRQd1bmkwNEVGB3VuaTA0RjAHdW5pMDRGMQd1bmkwNEYyB3VuaTA0RjMHdW5pMDRGNAd1bmkwNEY1B3VuaTA0RjgHdW5pMDRGOQd1bmkwNEZDB3VuaTA0RkQHdW5pMDUwMQd1bmkwNTEyB3VuaTA1MTMHdW5pMUVBMAd1bmkxRUExB3VuaTFFQTIHdW5pMUVBMwd1bmkxRUE0B3VuaTFFQTUHdW5pMUVBNgd1bmkxRUE3B3VuaTFFQTgHdW5pMUVBOQd1bmkxRUFBB3VuaTFFQUIHdW5pMUVBQwd1bmkxRUFEB3VuaTFFQUUHdW5pMUVBRgd1bmkxRUIwB3VuaTFFQjEHdW5pMUVCMgd1bmkxRUIzB3VuaTFFQjQHdW5pMUVCNQd1bmkxRUI2B3VuaTFFQjcHdW5pMUVCOAd1bmkxRUI5B3VuaTFFQkEHdW5pMUVCQgd1bmkxRUJDB3VuaTFFQkQHdW5pMUVCRQd1bmkxRUJGB3VuaTFFQzAHdW5pMUVDMQd1bmkxRUMyB3VuaTFFQzMHdW5pMUVDNAd1bmkxRUM1B3VuaTFFQzYHdW5pMUVDNwd1bmkxRUM4B3VuaTFFQzkHdW5pMUVDQQd1bmkxRUNCB3VuaTFFQ0MHdW5pMUVDRAd1bmkxRUNFB3VuaTFFQ0YHdW5pMUVEMAd1bmkxRUQxB3VuaTFFRDIHdW5pMUVEMwd1bmkxRUQ0B3VuaTFFRDUHdW5pMUVENgd1bmkxRUQ3B3VuaTFFRDgHdW5pMUVEOQd1bmkxRURBB3VuaTFFREIHdW5pMUVEQwd1bmkxRUREB3VuaTFFREUHdW5pMUVERgd1bmkxRUUwB3VuaTFFRTEHdW5pMUVFMgd1bmkxRUUzB3VuaTFFRTQHdW5pMUVFNQd1bmkxRUU2B3VuaTFFRTcHdW5pMUVFOAd1bmkxRUU5B3VuaTFFRUEHdW5pMUVFQgd1bmkxRUVDB3VuaTFFRUQH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Adz/4QALAOH/1ADx/8kBBP/lARv/4wEv/8QBOP/hAUn/1AFK//UBS//nAVP/0gFU/8kACQDh/8MA8f/PAS//zgE4/+cBO//fAUn/0QFL/+wBU/+gAVT/0QAJAOH/wwDx/88BL//OATj/5wE7/98BSf/RAUv/7AFT/6ABVP/RAAgA4f/JAPH/3wEE/+0BG//rAS//3wE7/+kBSv/1AVT/4AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADh/+YA8f/QAS//zgE4/+gBSf/nAUv/7QFT/+YBVP/QAAsA1AAUAOH/4ADoABMBOP/hATn/4AE8/+EBQf/pAUn/3wFL/94BU//fAVX/8gAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wAAUAGf/yAOH/8QFJ//IBS//yAVP/8gAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAMANQAEwDh/+YA4v/0AOgAEgDx/+cBL//nATj/5QE5/+gBSf/mAUv/5gFT/+YBVP/nAAkA4f/DAPH/zwEv/84BOP/nATv/3wFJ/9EBS//sAVP/oAFU/9EACQDh/8MA8f/PAS//zgE4/+cBO//fAUn/0QFL/+wBU/+gAVT/0QACANT/4gFT/+QAAgDU/+EA6P/kAAYA6P/uAPH/7gEE//QBG//xAS//7wFU/+8ABADx//QBBP/1AS//9QFU//UAAgDo/8kBF//uAAYA6AAUAPH/7QD3/+IBL//tATn/7QFU/+0AAQEX//EABQEX/+sBqf/rAa3/6QG1/+sBtv/rABMASAANAML/qwDD/8AAx//VAOj/qgEX/+IBGwAMAUoACwFMAAsBp/+/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/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABAAL/+YAP//0AF//7wE8/+0ABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAUASP/uAFn/6gG7//ABvP/tAb7/8AAFAEj/7gBZ/+oBu//wAbz/7QG+//AABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAEBp//rAAEBp//rAAEBp//rAAEBp//rACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAAQDx//UAAQDx//UAAQDx//UAAQDx//UAAQDx/8AACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQDx/8AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAaf/6wATAFn/wQCz/8UAxf+0AOX/1wDx/7kBBP+yARf/0gEb/8gBL/+gATn/xQFB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/+wAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAIBDAALAVP/5gAFAEj/7gBZ/+oBu//wAbz/7QG+//AACABZ/+UAs//LAMj/5AGnAA0Bqf/tAa3/6wG1/+wBtv/sAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAEwBZ/8EAs//FAMX/tADl/9cA8f+5AQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGp/+gBrf/mAbX/5wG2/+cACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAVgAOAH//nwC//94Awv/lANT/qADo/8oBRv/jAaf/xgHf//UAOQBU/7UAWf/HAGv+uAB6/ygAf/9NAIT/jgCH/6EAs/+uALr/fgC+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Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UACQALABQAPwARAFT/4gBfABMBp/+0Aan/2QGt/9kBtf/ZAbb/2QAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAEAAv/5gA///QAX//vATz/7QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wAAEBF//xAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UAAQDx//UAAQDx//UAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AABARf/8QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAGAMX/6gDo/+4A8f+wAS//7AFU/+wB3P/oABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAEgDU/64A4QASAOb/4ADo/60A6v/WAPj/3wD8/9IBAv/gARf/zgEn/90BKf/iAS3/4AEz/+ABOf/pATz/2gFG/70BUP/fAVMAEQAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAan/6QGt/+cBtf/nAbb/6QHf//AAAQEX//EAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAEBp//rAAEBp//rACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAkAAj/4gAL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/94CE//rAhT/6wIV/+sCFv/rAhf/6wId/+sCHv/rAh//6wIg/+sCIf/rAiL/6gIj/+oCJP/qAiX/6gIm/+gCJ//oAij/VgIp/94CKv9WAiv/3gIs/1YCLf/eAi//6wIx/+sCM//rAjX/6wI3/+sCOf/rAjv/6wI9/+sCP//rAkH/6wJD/+sCRf/rAkf/6wJJ/+sCV/74Amv/6wJt/+sCb//rAoAAFAKCABQChAAUAof/6gKJ/+oCi//qAo3/6gKP/+oCkf/qApX/6AL4/1YDAP9WAxD/6wMU/+oDFv/rAxj/6AMb/+oDHP/rAx3/6gMk/vgDKP9WAzMAFAM1/94DNv/rAzj/6wM6/+sDO//oAz3/6wNE/+gDTP/oA1X/VgNW/94DXP/rA2H/6ANi/+sDZ//rA2n/6ANu/1YDb//eA3D/VgNx/94Ddf/rA3f/6wN4/+sDgv/rA4T/6wOG/+sDiv/oA4z/6AOO/+gDlf/rA5j/VgOZ/94Dmv9WA5v/3gOc/1YDnf/eA57/VgOf/94DoP9WA6H/3gOi/1YDo//eA6T/VgOl/94Dpv9WA6f/3gOo/1YDqf/eA6r/VgOr/94DrP9WA63/3gOu/1YDr//eA7H/6wOz/+sDtf/rA7f/6wO5/+sDu//rA73/6wO//+sDxf/rA8f/6wPJ/+sDy//rA83/6wPP/+sD0f/rA9P/6wPV/+sD1//rA9n/6wPb/+sD3f/qA9//6gPh/+oD4//qA+X/6gPn/+oD6f/qA+v/6APt/+gD7//oA/YAFAAfADb/1QA4/+QAOf/sADv/3QDN/9UA0f/VART/5AEu/9UBNv/VAgv/3QKA/9UCgv/VAoT/1QKS/+wClP/dApb/3QL9/90DDP/dAw//3QMz/9UDRf/sA0f/7ANJ/+wDS//dA2D/5ANo/90D6v/dA+z/3QPu/90D9v/VBBP/3QAaADb/sAA4/+0AO//QAM3/sADR/7ABFP/tAS7/sAE2/7ACC//QAoD/sAKC/7AChP+wApT/0AKW/9AC/f/QAwz/0AMP/9ADM/+wA0v/0ANg/+0DaP/QA+r/0APs/9AD7v/QA/b/sAQT/9AAEAAs/+4AN//uAgf/7gII/+4CCf/uAgr/7gJX/+4Chv/uAoj/7gKK/+4CjP/uAo7/7gKQ/+4DJP/uA9z/7gPe/+4ARwAEABAACQAQAEX/6ABG/+gAR//oAEn/6ABT/+gAkf/oAJX/6AC2/+gAw//oAMT/6ADy/+gA/v/oARn/6AEd/+gBNf/oAUf/6AFI/+gBUv/oAWUAEAFmABABaAAQAWkAEAFqABACE//oAhT/6AIV/+gCFv/oAhf/6AIv/+gCMf/oAjP/6AI1/+gCN//oAjn/6AI7/+gCPf/oAj//6AJB/+gCQ//oAkX/6AJH/+gCSf/oAxD/6AM2/+gDOv/oAz3/6ANNABADTgAQA1IAEANc/+gDYv/oA2f/6AN1/+gDd//oA3j/6AOE/+gDlf/oA7H/6AOz/+gDtf/oA7f/6AO5/+gDu//oA73/6AO//+gD0//oA9X/6APX/+gD2//oAD0ARf/sAEb/7ABH/+wASf/sAFP/7ACR/+wAlf/sALb/7ADD/+wAxP/sAPL/7AD+/+wBGf/sAR3/7AE1/+wBR//sAUj/7AFS/+wCE//sAhT/7AIV/+wCFv/sAhf/7AIv/+wCMf/sAjP/7AI1/+wCN//sAjn/7AI7/+wCPf/sAj//7AJB/+wCQ//sAkX/7AJH/+wCSf/sAxD/7AM2/+wDOv/sAz3/7ANc/+wDYv/sA2f/7AN1/+wDd//sA3j/7AOE/+wDlf/sA7H/7AOz/+wDtf/sA7f/7AO5/+wDu//sA73/7AO//+wD0//sA9X/7APX/+wD2//sABcAUf/sARP/7AId/+wCHv/sAh//7AIg/+wCIf/sAmv/7AJt/+wCb//sAxb/7AMc/+wDOP/sA4L/7AOG/+wDxf/sA8f/7APJ/+wDy//sA83/7APP/+wD0f/sA9n/7AAGAA7/hAAQ/4QBZ/+EAWv/hAFv/4QBcP+EABAALP/sADf/7AIH/+wCCP/sAgn/7AIK/+wCV//sAob/7AKI/+wCiv/sAoz/7AKO/+wCkP/sAyT/7APc/+wD3v/sAAEpLAAEAAAAIgBOAMQBqgKQA2oEBAaeCGQJNgosC/IMJAxWDNQOug8wEAISFBLKFDAU6hVwFc4WkBcGFxgXQhiUGtIa9BwKHIgcshzcAB0ABP/yAAn/8gBY//MAW//zALj/8wEV//MBZf/yAWb/8gFo//IBaf/yAWr/8gIm//MCJ//zApX/8wMY//MDO//zA0T/8wNM//MDTf/yA07/8gNS//IDYf/zA2n/8wOK//MDjP/zA47/8wPr//MD7f/zA+//8wA5ACX/8wAp//MAMf/zADP/8wCB//MAkP/zAJT/8wCu//MAzv/zAQP/8wES//MBFv/zARj/8wEa//MBHP/zATT/8wFR//MB+P/zAgL/8wID//MCBP/zAgX/8wIG//MCLv/zAjD/8wIy//MCNP/zAkL/8wJE//MCRv/zAkj/8wJq//MCbP/zAm7/8wKf//MC/P/zAwn/8wMv//MDMv/zA1f/8wNj//MDZv/zA4H/8wOD//MDhf/zA8T/8wPG//MDyP/zA8r/8wPM//MDzv/zA9D/8wPS//MD1P/zA9b/8wPY//MD2v/zADkAJf/mACn/5gAx/+YAM//mAIH/5gCQ/+YAlP/mAK7/5gDO/+YBA//mARL/5gEW/+YBGP/mARr/5gEc/+YBNP/mAVH/5gH4/+YCAv/mAgP/5gIE/+YCBf/mAgb/5gIu/+YCMP/mAjL/5gI0/+YCQv/mAkT/5gJG/+YCSP/mAmr/5gJs/+YCbv/mAp//5gL8/+YDCf/mAy//5gMy/+YDV//mA2P/5gNm/+YDgf/mA4P/5gOF/+YDxP/mA8b/5gPI/+YDyv/mA8z/5gPO/+YD0P/mA9L/5gPU/+YD1v/mA9j/5gPa/+YANgAj/+QAOv/SADv/0wCt/+QAr//kANX/0gEI/+QB8f/kAfL/5AHz/+QB9P/kAfX/5AH2/+QB9//kAgv/0wIo/+QCKv/kAiz/5AKU/9MClv/TAvj/5AL9/9MDAP/kAwz/0wMN/9IDD//TAyj/5AM0/9IDS//TA1X/5ANo/9MDa//SA27/5ANw/+QDef/SA5P/0gOY/+QDmv/kA5z/5AOe/+QDoP/kA6L/5AOk/+QDpv/kA6j/5AOq/+QDrP/kA67/5APq/9MD7P/TA+7/0wP4/9IEAP/SBBP/0wAmAA7/HgAQ/x4AI//NAK3/zQCv/80BCP/NAWf/HgFr/x4Bb/8eAXD/HgHx/80B8v/NAfP/zQH0/80B9f/NAfb/zQH3/80CKP/NAir/zQIs/80C+P/NAwD/zQMo/80DVf/NA27/zQNw/80DmP/NA5r/zQOc/80Dnv/NA6D/zQOi/80DpP/NA6b/zQOo/80Dqv/NA6z/zQOu/80ApgBF/9wARv/cAEf/3ABJ/9wAT//zAFD/8wBR/9YAUv/zAFP/3ABX/90AWP/hAFv/4QCR/9wAlf/cAJf/3QC2/9wAuP/hALz/8wDD/9wAxP/cAMb/3QDn//MA6//zAOz/8wDu//MA7//zAPD/8wDy/9wA8//zAPX/8wD2//MA+f/zAPv/8wD+/9wBAP/zARP/1gEV/+EBGf/cAR3/3AEx//MBNf/cAUD/8wFF//MBR//cAUj/3AFS/9wCE//cAhT/3AIV/9wCFv/cAhf/3AIc//MCHf/WAh7/1gIf/9YCIP/WAiH/1gIi/90CI//dAiT/3QIl/90CJv/hAif/4QIv/9wCMf/cAjP/3AI1/9wCN//cAjn/3AI7/9wCPf/cAj//3AJB/9wCQ//cAkX/3AJH/9wCSf/cAmT/8wJm//MCaP/zAmn/8wJr/9YCbf/WAm//1gKH/90Cif/dAov/3QKN/90Cj//dApH/3QKV/+EDEP/cAxL/8wMU/90DFv/WAxj/4QMb/90DHP/WAx3/3QM2/9wDN//zAzj/1gM5//MDOv/cAzv/4QM9/9wDPv/zA0P/8wNE/+EDTP/hA1T/8wNc/9wDXf/zA2H/4QNi/9wDZ//cA2n/4QN1/9wDd//cA3j/3AN+//MDgP/zA4L/1gOE/9wDhv/WA4r/4QOM/+EDjv/hA5L/8wOV/9wDsf/cA7P/3AO1/9wDt//cA7n/3AO7/9wDvf/cA7//3APF/9YDx//WA8n/1gPL/9YDzf/WA8//1gPR/9YD0//cA9X/3APX/9wD2f/WA9v/3APd/90D3//dA+H/3QPj/90D5f/dA+f/3QPp/90D6//hA+3/4QPv/+ED8//zA/X/8wP///MEDP/zBA7/8wQQ//MAcQAE/9oACf/aAEX/8ABG//AAR//wAEn/8ABT//AAV//vAFj/3ABb/9wAkf/wAJX/8ACX/+8Atv/wALj/3ADD//AAxP/wAMb/7wDy//AA/v/wARX/3AEZ//ABHf/wATX/8AFH//ABSP/wAVL/8AFl/9oBZv/aAWj/2gFp/9oBav/aAhP/8AIU//ACFf/wAhb/8AIX//ACIv/vAiP/7wIk/+8CJf/vAib/3AIn/9wCL//wAjH/8AIz//ACNf/wAjf/8AI5//ACO//wAj3/8AI///ACQf/wAkP/8AJF//ACR//wAkn/8AKH/+8Cif/vAov/7wKN/+8Cj//vApH/7wKV/9wDEP/wAxT/7wMY/9wDG//vAx3/7wM2//ADOv/wAzv/3AM9//ADRP/cA0z/3ANN/9oDTv/aA1L/2gNc//ADYf/cA2L/8ANn//ADaf/cA3X/8AN3//ADeP/wA4T/8AOK/9wDjP/cA47/3AOV//ADsf/wA7P/8AO1//ADt//wA7n/8AO7//ADvf/wA7//8APT//AD1f/wA9f/8APb//AD3f/vA9//7wPh/+8D4//vA+X/7wPn/+8D6f/vA+v/3APt/9wD7//cADQABP+gAAn/oABX//EAWP/FAFv/xQCX//EAuP/FAMb/8QEV/8UBZf+gAWb/oAFo/6ABaf+gAWr/oAIi//ECI//xAiT/8QIl//ECJv/FAif/xQKH//ECif/xAov/8QKN//ECj//xApH/8QKV/8UDFP/xAxj/xQMb//EDHf/xAzv/xQNE/8UDTP/FA03/oANO/6ADUv+gA2H/xQNp/8UDiv/FA4z/xQOO/8UD3f/xA9//8QPh//ED4//xA+X/8QPn//ED6f/xA+v/xQPt/8UD7//FAD0ARf/nAEb/5wBH/+cASf/nAFP/5wCR/+cAlf/nALb/5wDD/+cAxP/nAPL/5wD+/+cBGf/nAR3/5wE1/+cBR//nAUj/5wFS/+cCE//nAhT/5wIV/+cCFv/nAhf/5wIv/+cCMf/nAjP/5wI1/+cCN//nAjn/5wI7/+cCPf/nAj//5wJB/+cCQ//nAkX/5wJH/+cCSf/nAxD/5wM2/+cDOv/nAz3/5wNc/+cDYv/nA2f/5wN1/+cDd//nA3j/5wOE/+cDlf/nA7H/5wOz/+cDtf/nA7f/5wO5/+cDu//nA73/5wO//+cD0//nA9X/5wPX/+cD2//nAHEABAAMAAkADABF/+gARv/oAEf/6ABJ/+gAUf/qAFP/6ABYAAsAWwALAJH/6ACV/+gAtv/oALgACwDD/+gAxP/oAPL/6AD+/+gBE//qARUACwEZ/+gBHf/oATX/6AFH/+gBSP/oAVL/6AFlAAwBZgAMAWgADAFpAAwBagAMAhP/6AIU/+gCFf/oAhb/6AIX/+gCHf/qAh7/6gIf/+oCIP/qAiH/6gImAAsCJwALAi//6AIx/+gCM//oAjX/6AI3/+gCOf/oAjv/6AI9/+gCP//oAkH/6AJD/+gCRf/oAkf/6AJJ/+gCa//qAm3/6gJv/+oClQALAxD/6AMW/+oDGAALAxz/6gM2/+gDOP/qAzr/6AM7AAsDPf/oA0QACwNMAAsDTQAMA04ADANSAAwDXP/oA2EACwNi/+gDZ//oA2kACwN1/+gDd//oA3j/6AOC/+oDhP/oA4b/6gOKAAsDjAALA44ACwOV/+gDsf/oA7P/6AO1/+gDt//oA7n/6AO7/+gDvf/oA7//6APF/+oDx//qA8n/6gPL/+oDzf/qA8//6gPR/+oD0//oA9X/6APX/+gD2f/qA9v/6APrAAsD7QALA+8ACwAMAFr/7QBc/+0A6f/tApj/7QKa/+0CnP/tAzz/7QNs/+0Dev/tA5T/7QP5/+0EAf/tAAwAWv/yAFz/8gDp//ICmP/yApr/8gKc//IDPP/yA2z/8gN6//IDlP/yA/n/8gQB//IAHwBY//QAWv/yAFv/9ABc//MAuP/0AOn/8gEV//QCJv/0Aif/9AKV//QCmP/zApr/8wKc//MDGP/0Azv/9AM8//IDRP/0A0z/9ANh//QDaf/0A2z/8gN6//IDiv/0A4z/9AOO//QDlP/yA+v/9APt//QD7//0A/n/8gQB//IAeQAE/8oACf/KADb/0gA4/9QAOv/0ADv/0wBP/9EAUP/RAFL/0QBY/+YAWv/vAFv/5gC4/+YAvP/RAM3/0gDR/9IA1f/0ANn/7QDc/+EA5//RAOn/7wDr/9EA7P/RAO7/0QDv/9EA8P/RAPP/0QD1/9EA9v/RAPn/0QD7/9EBAP/RART/1AEV/+YBLv/SATH/0QE2/9IBQP/RAUX/0QFl/8oBZv/KAWj/ygFp/8oBav/KAgv/0wIc/9ECJv/mAif/5gJk/9ECZv/RAmj/0QJp/9ECgP/SAoL/0gKE/9IClP/TApX/5gKW/9MC/f/TAwz/0wMN//QDD//TAxL/0QMY/+YDJ//tAzP/0gM0//QDN//RAzn/0QM7/+YDPP/vAz7/0QND/9EDRP/mA0v/0wNM/+YDTf/KA07/ygNS/8oDVP/RA13/0QNg/9QDYf/mA2j/0wNp/+YDa//0A2z/7wN5//QDev/vA37/0QOA/9EDif/tA4r/5gOL/+0DjP/mA43/7QOO/+YDj//hA5L/0QOT//QDlP/vA+r/0wPr/+YD7P/TA+3/5gPu/9MD7//mA/P/0QP1/9ED9v/SA/j/9AP5/+8D+v/hA/z/4QP//9EEAP/0BAH/7wQM/9EEDv/RBBD/0QQT/9MAHQA2/74AWP/vAFv/7wC4/+8Azf++ANH/vgEV/+8BLv++ATb/vgIm/+8CJ//vAoD/vgKC/74ChP++ApX/7wMY/+8DM/++Azv/7wNE/+8DTP/vA2H/7wNp/+8Div/vA4z/7wOO/+8D6//vA+3/7wPv/+8D9v++ADQANv/mADj/5wA6//IAO//nAFr/8QDN/+YA0f/mANX/8gDZ/+4A3P/oAOn/8QEU/+cBLv/mATb/5gIL/+cCgP/mAoL/5gKE/+YClP/nApb/5wL9/+cDDP/nAw3/8gMP/+cDJ//uAzP/5gM0//IDPP/xA0v/5wNg/+cDaP/nA2v/8gNs//EDef/yA3r/8QOJ/+4Di//uA43/7gOP/+gDk//yA5T/8QPq/+cD7P/nA+7/5wP2/+YD+P/yA/n/8QP6/+gD/P/oBAD/8gQB//EEE//nAIQAIwAQACX/6AAp/+gAMf/oADP/6AA2/+AAOP/gADv/3wCB/+gAkP/oAJT/6ACtABAArv/oAK8AEADN/+AAzv/oAM8AEADR/+AA2AAQANz/4QDtABAA9P/gAP8AEAED/+gBCAAQARL/6AEU/+ABFv/oARj/6AEa/+gBHP/oAS7/4AE0/+gBNv/gAU0AEAFR/+gB8QAQAfIAEAHzABAB9AAQAfUAEAH2ABAB9wAQAfj/6AIC/+gCA//oAgT/6AIF/+gCBv/oAgv/3wIoABACKgAQAiwAEAIu/+gCMP/oAjL/6AI0/+gCQv/oAkT/6AJG/+gCSP/oAmr/6AJs/+gCbv/oAoD/4AKC/+AChP/gApT/3wKW/98Cn//oAvgAEAL8/+gC/f/fAwAAEAMJ/+gDDP/fAw//3wMoABADL//oAzL/6AMz/+ADS//fA1UAEANX/+gDYP/gA2P/6ANm/+gDaP/fA24AEANwABADgf/oA4P/6AOF/+gDj//hA5D/4AOWABADlwAQA5gAEAOaABADnAAQA54AEAOgABADogAQA6QAEAOmABADqAAQA6oAEAOsABADrgAQA8T/6APG/+gDyP/oA8r/6APM/+gDzv/oA9D/6APS/+gD1P/oA9b/6APY/+gD2v/oA+r/3wPs/98D7v/fA/b/4AP6/+ED+//gA/z/4QP9/+AEEQAQBBIAEAQT/98ALQA2//EAOP/0ADr/9AA7//AAzf/xAM//9QDR//EA1f/0ANj/9QDZ//MBFP/0AS7/8QE2//EBTf/1Agv/8AKA//ECgv/xAoT/8QKU//AClv/wAv3/8AMM//ADDf/0Aw//8AMn//MDM//xAzT/9ANL//ADYP/0A2j/8ANr//QDef/0A4n/8wOL//MDjf/zA5P/9AOW//UD6v/wA+z/8APu//AD9v/xA/j/9AQA//QEEf/1BBP/8ABZACMADwA2/+YAOP/mADoADgA7/+YArQAPAK8ADwDN/+YAzwAOANH/5gDVAA4A2AAOANkACwDc/+UA7QAPAPT/6AD/AA8BCAAPART/5gEu/+YBNv/mAU0ADgHxAA8B8gAPAfMADwH0AA8B9QAPAfYADwH3AA8CC//mAigADwIqAA8CLAAPAoD/5gKC/+YChP/mApT/5gKW/+YC+AAPAv3/5gMAAA8DDP/mAw0ADgMP/+YDJwALAygADwMz/+YDNAAOA0v/5gNVAA8DYP/mA2j/5gNrAA4DbgAPA3AADwN5AA4DiQALA4sACwONAAsDj//lA5D/6AOTAA4DlgAOA5cADwOYAA8DmgAPA5wADwOeAA8DoAAPA6IADwOkAA8DpgAPA6gADwOqAA8DrAAPA64ADwPq/+YD7P/mA+7/5gP2/+YD+AAOA/r/5QP7/+gD/P/lA/3/6AQAAA4EEQAOBBIADwQT/+YALgA2/+MAOv/lADv/5ADN/+MAz//lANH/4wDV/+UA2P/lANn/6QDt/+oA///qAS7/4wE2/+MBTf/lAgv/5AKA/+MCgv/jAoT/4wKU/+QClv/kAv3/5AMM/+QDDf/lAw//5AMn/+kDM//jAzT/5QNL/+QDaP/kA2v/5QN5/+UDif/pA4v/6QON/+kDk//lA5b/5QOX/+oD6v/kA+z/5APu/+QD9v/jA/j/5QQA/+UEEf/lBBL/6gQT/+QAIQA2/+IAOv/kAM3/4gDP/+QA0f/iANX/5ADY/+QA2f/pAO3/6wD//+sBLv/iATb/4gFN/+QCgP/iAoL/4gKE/+IDDf/kAyf/6QMz/+IDNP/kA2v/5AN5/+QDif/pA4v/6QON/+kDk//kA5b/5AOX/+sD9v/iA/j/5AQA/+QEEf/kBBL/6wAXADb/6wA7//MAzf/rANH/6wEu/+sBNv/rAgv/8wKA/+sCgv/rAoT/6wKU//MClv/zAv3/8wMM//MDD//zAzP/6wNL//MDaP/zA+r/8wPs//MD7v/zA/b/6wQT//MAMABP/+8AUP/vAFL/7wBa//AAvP/vAOf/7wDp//AA6//vAOz/7wDu/+8A7//vAPD/7wDz/+8A9f/vAPb/7wD5/+8A+//vAQD/7wEx/+8BQP/vAUX/7wIc/+8CZP/vAmb/7wJo/+8Caf/vAxL/7wM3/+8DOf/vAzz/8AM+/+8DQ//vA1T/7wNd/+8DbP/wA3r/8AN+/+8DgP/vA5L/7wOU//AD8//vA/X/7wP5//AD///vBAH/8AQM/+8EDv/vBBD/7wAdAAT/8gAJ//IAWP/1AFv/9QC4//UBFf/1AWX/8gFm//IBaP/yAWn/8gFq//ICJv/1Aif/9QKV//UDGP/1Azv/9QNE//UDTP/1A03/8gNO//IDUv/yA2H/9QNp//UDiv/1A4z/9QOO//UD6//1A+3/9QPv//UABAD0/+0DkP/tA/v/7QP9/+0ACgAE//UACf/1AWX/9QFm//UBaP/1AWn/9QFq//UDTf/1A07/9QNS//UAVABF//AARv/wAEf/8ABJ//AAUf/rAFP/8ACR//AAlf/wALb/8ADD//AAxP/wAPL/8AD+//ABE//rARn/8AEd//ABNf/wAUf/8AFI//ABUv/wAhP/8AIU//ACFf/wAhb/8AIX//ACHf/rAh7/6wIf/+sCIP/rAiH/6wIv//ACMf/wAjP/8AI1//ACN//wAjn/8AI7//ACPf/wAj//8AJB//ACQ//wAkX/8AJH//ACSf/wAmv/6wJt/+sCb//rAxD/8AMW/+sDHP/rAzb/8AM4/+sDOv/wAz3/8ANc//ADYv/wA2f/8AN1//ADd//wA3j/8AOC/+sDhP/wA4b/6wOV//ADsf/wA7P/8AO1//ADt//wA7n/8AO7//ADvf/wA7//8APF/+sDx//rA8n/6wPL/+sDzf/rA8//6wPR/+sD0//wA9X/8APX//AD2f/rA9v/8ACPAAQADQAJAA0AQ//wAEX/sABG/7AAR/+wAEn/sABR/9YAU/+wAFgACwBbAAsAkf+wAJX/sAC2/7AAuAALAMT/sADt/68A8v+wAP7/sAD//68BE//WARUACwEZ/7ABHf+wATX/sAFH/7ABSP+wAVL/sAFlAA0BZgANAWgADQFpAA0BagANAgz/8AIN//ACDv/wAg//8AIQ//ACEf/wAhL/8AIT/7ACFP+wAhX/sAIW/7ACF/+wAh3/1gIe/9YCH//WAiD/1gIh/9YCJgAL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AlQA0QJXAlcA0gJZAlkA0wJbAlsA1AJdAl0A1QJfAl8A1gJhAmEA1wJjAm8A2AJxAnEA5QJzAnMA5gJ1AnUA5wKAAoAA6AKCAoIA6QKEAoQA6gKGAoYA6wKIAogA7AKKAooA7QKMAowA7gKOAo4A7wKQApAA8AKSApIA8QKUApcA8gKZApkA9gKbApsA9wL4Av0A+AMAAw8A/gMSAxIBDgMWAxYBDwMYAxgBEAMcAxwBEQMfAyABEgMiAysBFAMtAy8BHgMxAzYBIQM4AzkBJwM7Az4BKQNEA0UBLQNHA0cBLwNJA0kBMANLA04BMQNSA1cBNQNaA1oBOwNcA1wBPANgA2EBPQNmA2YBPwNoA3EBQAN0A3UBSgN3A3oBTAOBA4IBUAOGA4YBUgOIA44BUwOTA5QBWgOYA8ABXAPCA8IBhQPEA9EBhgPZA9kBlAPcA9wBlQPeA94BlgPqA+8BlwPyA/IBnQP0A/QBngP2A/YBnwP4A/kBoAP+BAEBogQEBAQBpgQGBAcBpwQJBAkBqQQNBA0BqgQPBA8BqwQTBBMBrAABAAoACgAoADMANAA9AEgATQBWAFkAXQABACIAmQCwALIAswC0ALsAvgC/AMAAxQDHAMgAyQDNANEA0wDUANYA3gDiAOMA5ADlAOYA6ADqAOwA8QDzAPYA+wD+AR0B3AACAHYABAAEAAAACQAJAAEADgAOAAIAEAAQAAMAIwAnAAQAKgAyAAkANgA8ABIAQwBFABkARwBHABwASgBKAB0ATwBSAB4AVABUACIAWABYACMAWgBcACQAiACIACcArACvACgAuAC4ACwAvAC8AC0AwgDCAC4AzwDQAC8A0gDSADEA1QDVADIA1wDZADMA2wDbADYA3QDdADcA3wDfADgA4QDhADkA5wDnADoA6QDpADsA8gDyADwA9wD3AD0A+QD6AD4A/wEAAEABBQEFAEIBCAEIAEMBEwEVAEQBJwEpAEcBLAEsAEoBLgEuAEsBRQFFAEwBZQFrAE0BbwFwAFQB7AHtAFYB7wHvAFgB8QIXAFkCHAIhAIACJgI2AIYCOAJBAJcCSgJMAKECTgJOAKQCUAJQAKUCUgJSAKYCVAJUAKcCVwJXAKgCWQJZAKkCWwJbAKoCXQJdAKsCXwJfAKwCYQJhAK0CYwJvAK4CcQJxALsCcwJzALwCdQJ1AL0CgAKAAL4CggKCAL8ChAKEAMAChgKGAMECiAKIAMICigKKAMMCjAKMAMQCjgKOAMUCkAKQAMYCkgKSAMcClAKcAMgC+AL9ANEDAAMPANcDEgMSAOcDFgMWAOgDGAMYAOkDHAMcAOoDHwMgAOsDIgMrAO0DLQMvAPcDMQM2APoDOAM+AQADRANFAQcDRwNHAQkDSQNJAQoDSwNOAQsDUgNXAQ8DWgNaARUDXANcARYDYANhARcDZgNxARkDdAN1ASUDdwN6AScDgQOCASsDhgOGAS0DiAOOAS4DkwOUATUDmAPAATcDwgPCAWADxAPRAWED2QPZAW8D3APcAXAD3gPeAXED6gPvAXID8gPyAXgD9AP0AXkD9gP2AXoD+AP5AXsD/gQBAX0EBAQEAYEEBgQHAYIECQQJAYQEDQQNAYUEDwQPAYYEEwQTAYcAAgE4AAQABAAdAAkACQAdAA4ADgAeABAAEAAeACQAJAABACUAJQAEACYAJgADACcAJwAFACoAKwACACwALAAMAC0ALQAJAC4ALgAKAC8AMAACADEAMQADADIAMgALADYANgAGADcANwAMADgAOAANADkAOQAQADoAOgAOADsAOwAPADwAPAARAEMAQwATAEQARAAVAEUARQAUAEcARwAWAEoASgAXAE8AUAAXAFEAUQAYAFIAUgAVAFQAVAAaAFgAWAAZAFoAWgAbAFsAWwAZAFwAXAAcAIgAiAAVAKwArAAHAK4ArgADALgAuAAZALwAvAAXAMIAwgAVAM8A0AAfANIA0gACANUA1QAOANcA2AACANkA2QASANsA2wACAN0A3QACAN8A3wAfAOEA4QAfAOcA5wAIAOkA6QAbAPIA8gAVAPcA9wAgAPkA+QAgAPoA+gAVAP8BAAAgAQUBBQAgARMBEwAYARQBFAANARUBFQAZAScBJwAVASgBKAAHASkBKQAIASwBLAAJAS4BLgAJAUUBRQAIAWUBZgAdAWcBZwAeAWgBagAdAWsBawAeAW8BcAAeAewB7QADAe8B7wAGAfgB+AAEAfkB/AAFAf0CAQACAgICBgADAgcCCgAMAgsCCwAPAgwCEgATAhMCEwAUAhQCFwAWAhwCHAAXAh0CIQAYAiYCJwAZAikCKQATAisCKwATAi0CLQATAi4CLgAEAi8CLwAUAjACMAAEAjECMQAUAjICMgAEAjMCMwAU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AAAAGAAAAAAAFQAEABgAAAAAAAUAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAUACAANAAIABQAAAAUAFQAFAAAABQAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAGAAAAAAABQAVAAoAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAABgAAAAVABUAAAAAAAAAAAABAAAAAAAAAAUAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXABcAAAAHAAcAEwAHAAcABwATAAAAAAAAABMAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAEQARABEAEQARABEAEQAFAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAGAAYABgAGAA4AGgAaABoAGgAaABoAGgAVABUAFQAVABUAAAAAAAAAAAAYAAgACAAIAAgACAALAAsACwALAAIAAgARABoAEQAaABEAGgAFABUABQAVAAUAFQAFABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUABQAVAAUAFQAFABUABQAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAGAAAABgAGAAFAAgABQAIAAUACAAAAAAAAAAAAAAAAAAZABsAGQAbABkAGwAZABsAGQAbAAoAAAAKAAAACgAAAAYACwAGAAsABgALAAYACwAGAAsABgALAAkAAAAOAAIADgAUAAwAFAAMABQADAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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", +"sampleImage.jpg":"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AAGyAAAAEAAAAAEAAAAAABJwcmludE91dHB1dE9wdGlvbnMAAAASAAAAAENwdG5ib29sAAAAAABDbGJyYm9vbAAAAAAAUmdzTWJvb2wAAAAAAENybkNib29sAAAAAABDbnRDYm9vbAAAAAAATGJsc2Jvb2wAAAAAAE5ndHZib29sAAAAAABFbWxEYm9vbAAAAAAASW50cmJvb2wAAAAAAEJja2dPYmpjAAAAAQAAAAAAAFJHQkMAAAADAAAAAFJkICBkb3ViQG/gAAAAAAAAAAAAR3JuIGRvdWJAb+AAAAAAAAAAAABCbCAgZG91YkBv4AAAAAAAAAAAAEJyZFRVbnRGI1JsdAAAAAAAAAAAAAAAAEJsZCBVbnRGI1JsdAAAAAAAAAAAAAAAAFJzbHRVbnRGI1B4bEBSAAAAAAAAAAAACnZlY3RvckRhdGFib29sAQAAAABQZ1BzZW51bQAAAABQZ1BzAAAAAFBnUEMAAAAATGVmdFVudEYjUmx0AAAAAAAAAAAAAAAAVG9wIFVudEYjUmx0AAAAAAAAAAAAAAAAU2NsIFVudEYjUHJjQFkAAAAAAAA4QklNA+0AAAAAABAASAAAAAEAAgBIAAAAAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0EAAAAAAAAAgABOEJJTQQCAAAAAAAEAAAAADhCSU0EMAAAAAAAAgEBOEJJTQQtAAAAAAAGAAEAAAACOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA0sAAAAGAAAA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aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgTWFjaW50b3NoIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxNC0wMy0xOVQwMzowMjoyNiswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxNC0wMy0xOVQwMzowMjoyNiswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTQtMDMtMTlUMDM6MDI6MjYrMDE6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDI4MDExNzQwNzIwNjgxMTg3MUY4MTMxRkI2RTY4OTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTg3MUY4MTMxRkI2RTY4OTgiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowMTgwMTE3NDA3MjA2ODExODcxRjgxMzFGQjZFNjg5OCIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjAxODAxMTc0MDcyMDY4MTE4NzFGODEzMUZCNkU2ODk4IiBzdEV2dDp3aGVuPSIyMDE0LTAzLTE5VDAzOjAyOjI2KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgTWFjaW50b3NoIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowMjgwMTE3NDA3MjA2ODExODcxRjgxMzFGQjZFNjg5OCIgc3RFdnQ6d2hlbj0iMjAxNC0wMy0xOVQwMzowMjoyNiswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/iDFhJQ0NfUFJPRklMRQABAQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAABAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAA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" +},function(){function a(a,b){b=b||"";for(var c=1024,d=window.atob(a),e=[],f=0,g=d.length;g>f;f+=c){for(var h=d.slice(f,f+c),i=new Array(h.length),j=0;j=b.toIndex&&(b.toIndex+=1),e.$apply(function(){d.apply(i(),[b.fromIndex,b.toIndex])}),g.api.draggableRows.raise.rowDropped(b,this),void c.preventDefault())}};h.addEventListener("dragover",j.onDragOverEventListener,!1),h.addEventListener("dragstart",j.onDragStartEventListener,!1),h.addEventListener("dragleave",j.onDragLeaveEventListener,!1),h.addEventListener("dragenter",j.onDragEnterEventListener,!1),h.addEventListener("dragend",j.onDragEndEventListener,!1),h.addEventListener("drop",j.onDropEventListener)}}]).directive("uiGridDraggableRow",["uiGridDraggableRowService",function(a){return{restrict:"ACE",scope:{grid:"="},compile:function(){return{pre:function(b,c){a.prepareDraggableRow(b,c)}}}}}]).directive("uiGridDraggableRows",["uiGridDraggableRowsService",function(a){return{restrict:"A",replace:!0,priority:0,require:"uiGrid",scope:!1,compile:function(){return{pre:function(b,c,d,e){a.initializeGrid(e.grid,b,c)}}}}}])}(),function(a,b){"object"==typeof module&&module.exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return m[e]||(k.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",k.cssRules.length),m[e]=1),e}function d(a,b){var c,d,e=a.style;if(b=b.charAt(0).toUpperCase()+b.slice(1),void 0!==e[b])return b;for(d=0;d',c)}k.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.scale*d.width,left:d.scale*d.radius,top:-d.scale*d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.scale*(d.length+d.width),k=2*d.scale*j,l=-(d.width+d.length)*d.scale*2+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;ka&&(d="-",a=-a),a=""+a;a.lengtha;a++)if(m[a]===d){m.splice(a,1),h(-1,c,"");break}}return!e&&p&&p.then&&p.then(i),d}var t=new i,u=l[0],v=!1;if(u&&u.match(a,f)){if(!u.matchData(g))throw new Error("Expected "+u+" with different data\nEXPECTED: "+r(u.data)+"\nGOT: "+g);if(!u.matchHeaders(j))throw new Error("Expected "+u+" with different headers\nEXPECTED: "+r(u.headers)+"\nGOT: "+r(j));if(l.shift(),u.response)return void m.push(s(u));v=!0}for(var w,x=-1;w=k[++x];)if(w.match(a,f,g,j||{})){if(w.response)(e?e.defer:n)(s(w));else{if(!w.passThrough)throw new Error("No response defined !");d(a,f,g,h,j,p,q)}return}throw v?new Error("No response defined !"):new Error("Unexpected request: "+a+" "+f+"\n"+(u?"Expected "+u:"No more request expected"))}function j(a){b.forEach(["GET","DELETE","JSONP"],function(b){g[a+b]=function(d,e){return g[a](b,d,c,e)}}),b.forEach(["PUT","POST","PATCH"],function(b){g[a+b]=function(c,d,e){return g[a](b,c,d,e)}})}var k=[],l=[],m=[],n=b.bind(m,m.push),o=b.copy;return g.when=function(a,b,c,d){var g=new h(a,b,c,d),i={respond:function(a,b,c,d){g.response=f(a,b,c,d)}};return e&&(i.passThrough=function(){g.passThrough=!0}),k.push(g),i},j("when"),g.expect=function(a,b,c,d){var e=new h(a,b,c,d);return l.push(e),{respond:function(a,b,c,d){e.response=f(a,b,c,d)}}},j("expect"),g.flush=function(c){if(a.$digest(),!m.length)throw new Error("No pending request to flush !");if(b.isDefined(c))for(;c--;){if(!m.length)throw new Error("No more pending request to flush !");m.shift()()}else for(;m.length;)m.shift()();g.verifyNoOutstandingExpectation()},g.verifyNoOutstandingExpectation=function(){if(a.$digest(),l.length)throw new Error("Unsatisfied requests: "+l.join(", "))},g.verifyNoOutstandingRequest=function(){if(m.length)throw new Error("Unflushed requests: "+m.length)},g.resetExpectations=function(){l.length=0,m.length=0},g}function h(a,c,d,e){this.data=d,this.headers=e,this.match=function(c,d,e,f){return a!=c?!1:this.matchUrl(d)?b.isDefined(e)&&!this.matchData(e)?!1:!b.isDefined(f)||this.matchHeaders(f):!1},this.matchUrl=function(a){return c?b.isFunction(c.test)?c.test(a):c==a:!0},this.matchHeaders=function(a){return b.isUndefined(e)?!0:b.isFunction(e)?e(a):b.equals(e,a)},this.matchData=function(a){return b.isUndefined(d)?!0:d&&b.isFunction(d.test)?d.test(a):d&&b.isFunction(d)?d(a):d&&!b.isString(d)?b.equals(d,b.fromJson(a)):d==a},this.toString=function(){return a+" "+c}}function i(){i.$$lastInstance=this,this.open=function(a,b,c){this.$$method=a,this.$$url=b,this.$$async=c,this.$$reqHeaders={},this.$$respHeaders={}},this.send=function(a){this.$$data=a},this.setRequestHeader=function(a,b){this.$$reqHeaders[a]=b},this.getResponseHeader=function(a){var d=this.$$respHeaders[a];return d?d:(a=b.lowercase(a),(d=this.$$respHeaders[a])?d:(d=c,b.forEach(this.$$respHeaders,function(c,e){d||b.lowercase(e)!=a||(d=c)}),d))},this.getAllResponseHeaders=function(){var a=[];return b.forEach(this.$$respHeaders,function(b,c){a.push(c+": "+b)}),a.join("\n")},this.abort=b.noop}b.mock={},b.mock.$BrowserProvider=function(){this.$get=function(){return new b.mock.$Browser}},b.mock.$Browser=function(){var a=this;this.isMock=!0,a.$$url="http://server/",a.$$lastUrl=a.$$url,a.pollFns=[],a.$$completeOutstandingRequest=b.noop,a.$$incOutstandingRequestCount=b.noop,a.onUrlChange=function(b){return a.pollFns.push(function(){a.$$lastUrl!=a.$$url&&(a.$$lastUrl=a.$$url,b(a.$$url))}),b},a.cookieHash={},a.lastCookieHash={},a.deferredFns=[],a.deferredNextId=0,a.defer=function(b,c){return c=c||0,a.deferredFns.push({time:a.defer.now+c,fn:b,id:a.deferredNextId}),a.deferredFns.sort(function(a,b){return a.time-b.time}),a.deferredNextId++},a.defer.now=0,a.defer.cancel=function(d){var e;return b.forEach(a.deferredFns,function(a,b){a.id===d&&(e=b)}),e!==c?(a.deferredFns.splice(e,1),!0):!1},a.defer.flush=function(c){if(b.isDefined(c))a.defer.now+=c;else{if(!a.deferredFns.length)throw new Error("No deferred tasks to be flushed");a.defer.now=a.deferredFns[a.deferredFns.length-1].time}for(;a.deferredFns.length&&a.deferredFns[0].time<=a.defer.now;)a.deferredFns.shift().fn()},a.$$baseHref="",a.baseHref=function(){return this.$$baseHref}},b.mock.$Browser.prototype={poll:function(){b.forEach(this.pollFns,function(a){a()})},addPollFn:function(a){return this.pollFns.push(a),a},url:function(a,b){return a?(this.$$url=a,this):this.$$url},cookies:function(a,c){return a?void(b.isUndefined(c)?delete this.cookieHash[a]:b.isString(c)&&c.length<=4096&&(this.cookieHash[a]=c)):(b.equals(this.cookieHash,this.lastCookieHash)||(this.lastCookieHash=b.copy(this.cookieHash),this.cookieHash=b.copy(this.cookieHash)),this.cookieHash)},notifyWhenNoOutstandingRequests:function(a){a()}},b.mock.$ExceptionHandlerProvider=function(){var a;this.mode=function(b){switch(b){case"rethrow":a=function(a){throw a};break;case"log":var c=[];a=function(a){1==arguments.length?c.push(a):c.push([].slice.call(arguments,0))},a.errors=c;break;default:throw new Error("Unknown mode '"+b+"', only 'log'/'rethrow' modes are allowed!")}},this.$get=function(){return a},this.mode("rethrow")},b.mock.$LogProvider=function(){function a(a,b,c){return a.concat(Array.prototype.slice.call(b,c))}var c=!0;this.debugEnabled=function(a){return b.isDefined(a)?(c=a,this):c},this.$get=function(){var d={log:function(){d.log.logs.push(a([],arguments,0))},warn:function(){d.warn.logs.push(a([],arguments,0))},info:function(){d.info.logs.push(a([],arguments,0))},error:function(){d.error.logs.push(a([],arguments,0))},debug:function(){c&&d.debug.logs.push(a([],arguments,0))}};return d.reset=function(){d.log.logs=[],d.info.logs=[],d.warn.logs=[],d.error.logs=[],d.debug.logs=[]},d.assertEmpty=function(){var a=[];if(b.forEach(["error","warn","info","log","debug"],function(c){b.forEach(d[c].logs,function(d){b.forEach(d,function(b){a.push("MOCK $log ("+c+"): "+String(b)+"\n"+(b.stack||""))})})}),a.length)throw a.unshift("Expected $log to be empty! Either a message was logged unexpectedly, or an expected log message was not checked and removed:"),a.push(""),new Error(a.join("\n---------\n"))},d.reset(),d}},b.mock.$IntervalProvider=function(){this.$get=["$rootScope","$q",function(a,d){var e=[],f=0,g=0,h=function(h,i,j,k){function l(){if(m.notify(o++),j>0&&o>=j){var d;m.resolve(o),b.forEach(e,function(a,b){a.id===n.$$intervalId&&(d=b)}),d!==c&&e.splice(d,1)}p||a.$apply()}var m=d.defer(),n=m.promise,o=0,p=b.isDefined(k)&&!k;return j=b.isDefined(j)?j:0,n.then(null,null,h),n.$$intervalId=f,e.push({nextTime:g+i,delay:i,fn:l,id:f,deferred:m}),e.sort(function(a,b){return a.nextTime-b.nextTime}),f++,n};return h.cancel=function(a){if(!a)return!1;var d;return b.forEach(e,function(b,c){b.id===a.$$intervalId&&(d=c)}),d!==c?(e[d].deferred.reject("canceled"),e.splice(d,1),!0):!1},h.flush=function(a){for(g+=a;e.length&&e[0].nextTime<=g;){var b=e[0];b.fn(),b.nextTime+=b.delay,e.sort(function(a,b){return a.nextTime-b.nextTime})}return a},h}]};var j=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?:\:?(\d\d)(?:\:?(\d\d)(?:\.(\d{3}))?)?)?(Z|([+-])(\d\d):?(\d\d)))?$/;if(b.mock.TzDate=function(a,c){var e=new Date(0);if(b.isString(c)){var g=c;if(e.origDate=d(c),c=e.origDate.getTime(),isNaN(c))throw{name:"Illegal Argument",message:"Arg '"+g+"' passed into TzDate constructor is not a valid date string"}}else e.origDate=new Date(c);var h=new Date(c).getTimezoneOffset();e.offsetDiff=60*h*1e3-1e3*a*60*60,e.date=new Date(c+e.offsetDiff),e.getTime=function(){return e.date.getTime()-e.offsetDiff},e.toLocaleDateString=function(){return e.date.toLocaleDateString()},e.getFullYear=function(){return e.date.getFullYear()},e.getMonth=function(){return e.date.getMonth()},e.getDate=function(){return e.date.getDate()},e.getHours=function(){return e.date.getHours()},e.getMinutes=function(){return e.date.getMinutes()},e.getSeconds=function(){return e.date.getSeconds()},e.getMilliseconds=function(){return e.date.getMilliseconds()},e.getTimezoneOffset=function(){return 60*a},e.getUTCFullYear=function(){return e.origDate.getUTCFullYear()},e.getUTCMonth=function(){return e.origDate.getUTCMonth()},e.getUTCDate=function(){return e.origDate.getUTCDate()},e.getUTCHours=function(){return e.origDate.getUTCHours()},e.getUTCMinutes=function(){return e.origDate.getUTCMinutes()},e.getUTCSeconds=function(){return e.origDate.getUTCSeconds()},e.getUTCMilliseconds=function(){return e.origDate.getUTCMilliseconds()},e.getDay=function(){return e.date.getDay()},e.toISOString&&(e.toISOString=function(){return f(e.origDate.getUTCFullYear(),4)+"-"+f(e.origDate.getUTCMonth()+1,2)+"-"+f(e.origDate.getUTCDate(),2)+"T"+f(e.origDate.getUTCHours(),2)+":"+f(e.origDate.getUTCMinutes(),2)+":"+f(e.origDate.getUTCSeconds(),2)+"."+f(e.origDate.getUTCMilliseconds(),3)+"Z"});var i=["getUTCDay","getYear","setDate","setFullYear","setHours","setMilliseconds","setMinutes","setMonth","setSeconds","setTime","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCMonth","setUTCSeconds","setYear","toDateString","toGMTString","toJSON","toLocaleFormat","toLocaleString","toLocaleTimeString","toSource","toString","toTimeString","toUTCString","valueOf"];return b.forEach(i,function(a){e[a]=function(){throw new Error("Method '"+a+"' is not implemented in the TzDate mock")}}),e},b.mock.TzDate.prototype=Date.prototype,b.mock.animate=b.module("ngAnimateMock",["ng"]).config(["$provide",function(a){var c=[];a.value("$$animateReflow",function(a){var b=c.length;return c.push(a),function(){c.splice(b,1)}}),a.decorator("$animate",["$delegate","$$asyncCallback",function(a,d){var e={queue:[],enabled:a.enabled,triggerCallbacks:function(){d.flush()},triggerReflow:function(){b.forEach(c,function(a){a()}),c=[]}};return b.forEach(["enter","leave","move","addClass","removeClass","setClass"],function(b){e[b]=function(){e.queue.push({event:b,element:arguments[0],args:arguments}),a[b].apply(a,arguments)}}),e}])}]),b.mock.dump=function(a){function c(a){var e;return b.isElement(a)?(a=b.element(a),e=b.element("
        "),b.forEach(a,function(a){e.append(b.element(a).clone())}),e=e.html()):b.isArray(a)?(e=[],b.forEach(a,function(a){e.push(c(a))}),e="[ "+e.join(", ")+" ]"):e=b.isObject(a)?b.isFunction(a.$eval)&&b.isFunction(a.$apply)?d(a):a instanceof Error?a.stack||""+a.name+": "+a.message:b.toJson(a,!0):String(a),e}function d(a,c){c=c||" ";var e=[c+"Scope("+a.$id+"): {"];for(var f in a)Object.prototype.hasOwnProperty.call(a,f)&&!f.match(/^(\$|this)/)&&e.push(" "+f+": "+b.toJson(a[f]));for(var g=a.$$childHead;g;)e.push(d(g,c+" ")),g=g.$$nextSibling;return e.push("}"),e.join("\n"+c)}return c(a)},b.mock.$HttpBackendProvider=function(){this.$get=["$rootScope",g]},b.mock.$TimeoutDecorator=function(a,c){function d(a){var c=[];return b.forEach(a,function(a){c.push("{id: "+a.id+", time: "+a.time+"}")}),c.join(", ")}return a.flush=function(a){c.defer.flush(a)},a.verifyNoPendingTasks=function(){if(c.deferredFns.length)throw new Error("Deferred tasks to flush ("+c.deferredFns.length+"): "+d(c.deferredFns))},a},b.mock.$RAFDecorator=function(a){var b=[],c=function(a){var c=b.length;return b.push(a),function(){b.splice(c,1)}};return c.supported=a.supported,c.flush=function(){if(0===b.length)throw new Error("No rAF callbacks present");for(var a=b.length,c=0;a>c;c++)b[c]();b=[]},c},b.mock.$AsyncCallbackDecorator=function(a){var c=[],d=function(a){c.push(a)};return d.flush=function(){b.forEach(c,function(a){a()}),c=[]},d},b.mock.$RootElementProvider=function(){this.$get=function(){return b.element("
        ")}},b.module("ngMock",["ng"]).provider({$browser:b.mock.$BrowserProvider,$exceptionHandler:b.mock.$ExceptionHandlerProvider,$log:b.mock.$LogProvider,$interval:b.mock.$IntervalProvider,$httpBackend:b.mock.$HttpBackendProvider,$rootElement:b.mock.$RootElementProvider}).config(["$provide",function(a){a.decorator("$timeout",b.mock.$TimeoutDecorator),a.decorator("$$rAF",b.mock.$RAFDecorator),a.decorator("$$asyncCallback",b.mock.$AsyncCallbackDecorator)}]),b.module("ngMockE2E",["ng"]).config(["$provide",function(a){a.decorator("$httpBackend",b.mock.e2e.$httpBackendDecorator)}]),b.mock.e2e={},b.mock.e2e.$httpBackendDecorator=["$rootScope","$delegate","$browser",g],b.mock.clearDataCache=function(){var a,c=b.element.cache;for(a in c)if(Object.prototype.hasOwnProperty.call(c,a)){var d=c[a].handle;d&&b.element(d.elem).off(),delete c[a]}},a.jasmine||a.mocha){var k=null,l=function(){return!!k};(a.beforeEach||a.setup)(function(){k=this}),(a.afterEach||a.teardown)(function(){var a=k.$injector;k.$injector=null,k.$modules=null,k=null,a&&(a.get("$rootElement").off(),a.get("$browser").pollFns.length=0),b.mock.clearDataCache(),b.forEach(b.element.fragments,function(a,c){delete b.element.fragments[c]}),i.$$lastInstance=null,b.forEach(b.callbacks,function(a,c){delete b.callbacks[c]}),b.callbacks.counter=0}),a.module=b.mock.module=function(){function a(){if(k.$injector)throw new Error("Injector already created, can not register a module!");var a=k.$modules||(k.$modules=[]);b.forEach(c,function(c){b.isObject(c)&&!b.isArray(c)?a.push(function(a){b.forEach(c,function(b,c){a.value(c,b)})}):a.push(c)})}var c=Array.prototype.slice.call(arguments,0);return l()?a():a};var m=function(a,b){this.message=a.message,this.name=a.name,a.line&&(this.line=a.line),a.sourceId&&(this.sourceId=a.sourceId),a.stack&&b&&(this.stack=a.stack+"\n"+b.stack),a.stackArray&&(this.stackArray=a.stackArray)};m.prototype.toString=Error.prototype.toString,a.inject=b.mock.inject=function(){function a(){var a=k.$modules||[];a.unshift("ngMock"),a.unshift("ng");var e=k.$injector;e||(e=k.$injector=b.injector(a));for(var f=0,g=c.length;g>f;f++)try{e.invoke(c[f]||b.noop,this)}catch(h){if(h.stack&&d)throw new m(h,d);throw h}finally{d=null}}var c=Array.prototype.slice.call(arguments,0),d=new Error("Declaration Location");return l()?a.call(k):a}}}(window,window.angular),function(){var a;a=function(a,b){var c,d;for(c in a)d=a[c],"$$hashKey"!==c&&(b[c]=d)},angular.module("builder.controller",["builder.provider"]).controller("fbFormObjectEditableController",["$scope","$injector",function(b,c){var d;return d=c.get("$builder"),b.setupScope=function(c){var e;return a(c,b),b.optionsText=c.options.join("\n"),b.$watch("[label, description, placeholder, required, options, validation]",function(){return c.label=b.label,c.description=b.description,c.placeholder=b.placeholder,c.required=b.required,c.options=b.options,c.validation=b.validation},!0),b.$watch("optionsText",function(a){var c;return b.options=function(){var b,d,e,f;for(e=a.split("\n"),f=[],b=0,d=e.length;d>b;b++)c=e[b],c.length>0&&f.push(c);return f}(),b.inputText=b.options[0]}),e=d.components[c.component],b.validationOptions=e.validationOptions},b.data={model:null,backup:function(){return this.model={label:b.label,description:b.description,placeholder:b.placeholder,required:b.required,optionsText:b.optionsText,validation:b.validation}},rollback:function(){return this.model?(b.label=this.model.label,b.description=this.model.description,b.placeholder=this.model.placeholder,b.required=this.model.required,b.optionsText=this.model.optionsText,b.validation=this.model.validation):void 0}}}]).controller("fbComponentsController",["$scope","$injector",function(a,b){var c;return c=b.get("$builder"),a.selectGroup=function(b,d){var e,f,g,h;null!=b&&b.preventDefault(),a.activeGroup=d,a.components=[],g=c.components,h=[];for(f in g)e=g[f],e.group===d&&h.push(a.components.push(e));return h},a.groups=c.groups,a.activeGroup=a.groups[0],a.allComponents=c.components,a.$watch("allComponents",function(){return a.selectGroup(null,a.activeGroup)})}]).controller("fbComponentController",["$scope",function(b){return b.copyObjectToScope=function(c){return a(c,b)}}]).controller("fbFormController",["$scope","$injector",function(a,b){var c,d;return c=b.get("$builder"),d=b.get("$timeout"),null==a.input&&(a.input=[]),a.$watch("form",function(){return a.input.length>a.form.length&&a.input.splice(a.form.length),d(function(){return a.$broadcast(c.broadcastChannel.updateInput)})},!0)}]).controller("fbFormObjectController",["$scope","$injector",function(b,c){var d;return d=c.get("$builder"),b.copyObjectToScope=function(c){return a(c,b)},b.updateInput=function(a){var c;return c={id:b.formObject.id,label:b.formObject.label,value:null!=a?a:""},b.$parent.input.splice(b.$index,1,c)}}])}.call(this),function(){angular.module("builder.directive",["builder.provider","builder.controller","builder.drag","validator"]).directive("fbBuilder",["$injector",function(a){var b,c;return b=a.get("$builder"),c=a.get("$drag"),{restrict:"A",scope:{fbBuilder:"="},template:"
        \n
        \n
        ",link:function(a,d,e){var f,g,h;return a.formName=e.fbBuilder,null==(g=b.forms)[h=a.formName]&&(g[h]=[]),a.formObjects=b.forms[a.formName],f=!0,$(d).addClass("fb-builder"),c.droppable($(d),{move:function(a){var b,c,e,g,h,i,j,k,l,m,n;if(f&&($("div.fb-form-object-editable").popover("hide"),f=!1),e=$(d).find(".fb-form-object-editable:not(.empty,.dragging)"),0===e.length)return void(0===$(d).find(".fb-form-object-editable.empty").length&&$(d).find(">div:first").append($("
        ")));for(j=[],j.push(-1e3),h=k=0,m=e.length;m>k;h=k+=1)c=$(e[h]),i=c.offset(),g=c.height(),j.push(i.top+g/2);for(j.push(j[j.length-1]+1e3),h=l=1,n=j.length;n>l;h=l+=1)if(a.pageY>j[h-1]&&a.pageY<=j[h]){$(d).find(".empty").remove(),b=$("
        "),h-1l&&k--,b.updateFormObjectIndex(a.formName,l,k))):(j=i.object.formObject,j.editable&&b.removeFormObject(e.fbBuilder,j.index)),$(d).find(".empty").remove()):void $(d).find(".empty").remove()}})}}}]).directive("fbFormObjectEditable",["$injector",function(a){var b,c,d,e;return b=a.get("$builder"),d=a.get("$drag"),c=a.get("$compile"),e=a.get("$validator"),{restrict:"A",controller:"fbFormObjectEditableController",scope:{formObject:"=fbFormObjectEditable"},link:function(a,f){var g;return a.inputArray=[],a.$component=b.components[a.formObject.component],a.setupScope(a.formObject),a.$watch("$component.template",function(b){var d;if(b)return d=c(b)(a),$(f).html(d)}),$(f).on("click",function(){return!1}),d.draggable($(f),{object:{formObject:a.formObject}}),a.formObject.editable?(g={},a.$watch("$component.popoverTemplate",function(b){return b?($(f).removeClass(g.id),g={id:"fb-"+Math.random().toString().substr(2),isClickedSave:!1,view:null,html:b},g.html=$(g.html).addClass(g.id),g.view=c(g.html)(a),$(f).addClass(g.id),$(f).popover({html:!0,title:a.$component.label,content:g.view,container:"body"})):void 0}),a.popover={save:function(b){b.preventDefault(),e.validate(a).success(function(){return g.isClickedSave=!0,$(f).popover("hide")})},remove:function(c){c.preventDefault(),b.removeFormObject(a.$parent.formName,a.$parent.$index),$(f).popover("hide")},shown:function(){return a.data.backup(),g.isClickedSave=!1},cancel:function(b){a.data.rollback(),b&&(b.preventDefault(),$(f).popover("hide"))}},$(f).on("show.bs.popover",function(){var a,b,c;return d.isMouseMoved()?!1:($("div.fb-form-object-editable:not(."+g.id+")").popover("hide"),a=$("form."+g.id).closest(".popover"),a.length>0?(b=$(f).offset().top+$(f).height()/2,c=b-a.height()/2,a.css({position:"absolute",top:c}),a.show(),setTimeout(function(){return a.addClass("in"),$(f).triggerHandler("shown.bs.popover")},0),!1):void 0)}),$(f).on("shown.bs.popover",function(){$(".popover ."+g.id+" input:first").select(),a.$apply(function(){return a.popover.shown()})}),$(f).on("hide.bs.popover",function(){var b;return b=$("form."+g.id).closest(".popover"),g.isClickedSave||(a.$$phase||a.$root.$$phase?a.popover.cancel():a.$apply(function(){return a.popover.cancel()})),b.removeClass("in"),setTimeout(function(){return b.hide()},300),!1})):void 0}}}]).directive("fbComponents",function(){return{restrict:"A",template:'\n
        \n
        \n
        ',controller:"fbComponentsController"}}).directive("fbComponent",["$injector",function(a){var b,c,d;return b=a.get("$builder"),d=a.get("$drag"),c=a.get("$compile"),{restrict:"A",scope:{component:"=fbComponent"},controller:"fbComponentController",link:function(a,b){return a.copyObjectToScope(a.component),d.draggable($(b),{ +mode:"mirror",defer:!1,object:{componentName:a.component.name}}),a.$watch("component.template",function(d){var e;if(d)return e=c(d)(a),$(b).html(e)})}}}]).directive("fbForm",["$injector",function(a){return{restrict:"A",require:"ngModel",scope:{formName:"@fbForm",input:"=ngModel","default":"=fbDefault"},template:'
        ',controller:"fbFormController",link:function(b,c,d){var e,f,g;return e=a.get("$builder"),null==(f=e.forms)[g=b.formName]&&(f[g]=[]),b.form=e.forms[b.formName]}}}]).directive("fbFormObject",["$injector",function(a){var b,c,d;return b=a.get("$builder"),c=a.get("$compile"),d=a.get("$parse"),{restrict:"A",controller:"fbFormObjectController",link:function(a,e,f){return a.formObject=d(f.fbFormObject)(a),a.$component=b.components[a.formObject.component],a.$on(b.broadcastChannel.updateInput,function(){return a.updateInput(a.inputText)}),a.$component.arrayToText&&(a.inputArray=[],a.$watch("inputArray",function(b,c){var d,e;if(b!==c){d=[];for(e in a.inputArray)a.inputArray[e]&&d.push(a.options[e]);return a.inputText=d.join(", ")}},!0)),a.$watch("inputText",function(){return a.updateInput(a.inputText)}),a.$watch(f.fbFormObject,function(){return a.copyObjectToScope(a.formObject)},!0),a.$watch("$component.template",function(b){var d,f,g;if(b)return f=$(b),d=f.find("[ng-model='inputText']"),d.attr({validator:"{{validation}}"}),g=c(f)(a),$(e).html(g)}),!a.$component.arrayToText&&a.formObject.options.length>0&&(a.inputText=a.formObject.options[0]),a.$watch("default["+a.formObject.id+"]",function(b){return b?a.$component.arrayToText?a.inputArray=b:a.inputText=b:void 0})}}}])}.call(this),function(){angular.module("builder.drag",[]).provider("$drag",function(){var a,b,c;a=null,b=null,this.data={draggables:{},droppables:{}},this.mouseMoved=!1,this.isMouseMoved=function(a){return function(){return a.mouseMoved}}(this),this.hooks={down:{},move:{},up:{}},this.eventMouseMove=function(){},this.eventMouseUp=function(){},$(function(a){return function(){return $(document).on("mousedown",function(b){var c,d,e;a.mouseMoved=!1,e=a.hooks.down;for(d in e)(c=e[d])(b)}),$(document).on("mousemove",function(b){var c,d,e;a.mouseMoved=!0,e=a.hooks.move;for(d in e)(c=e[d])(b)}),$(document).on("mouseup",function(b){var c,d,e;e=a.hooks.up;for(d in e)(c=e[d])(b)})}}(this)),this.currentId=0,this.getNewId=function(a){return function(){return""+a.currentId++}}(this),this.setupEasing=function(){return jQuery.extend(jQuery.easing,{easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c}})},this.setupProviders=function(c){return a=c,b=a.get("$rootScope")},this.isHover=function(a){return function(a,b){var c,d,e,f,g;return d=a.offset(),e=b.offset(),f={width:a.width(),height:a.height()},g={width:b.width(),height:b.height()},c={x:!1,y:!1},c.x=d.left>e.left&&d.lefte.left&&d.left+f.widthe.top&&d.tope.top&&d.top+f.height$(window).innerHeight()-50))return a.autoScroll.up=!1,a.autoScroll.down=!1;if(a.autoScroll.up=!1,a.autoScroll.down=!0,!a.autoScroll.scrolling)return a.autoScroll.scroll()}}}(this),stop:function(a){return function(){return a.autoScroll.up=!1,a.autoScroll.down=!1}}(this)},this.dragMirrorMode=function(a){return function(b,c,d){var e;return null==c&&(c=!0),e={id:a.getNewId(),mode:"mirror",maternal:b[0],element:null,object:d},b.on("mousedown",function(d){var f;return d.preventDefault(),f=b.clone(),e.element=f[0],f.addClass("fb-draggable form-horizontal prepare-dragging"),a.hooks.move.drag=function(c,d){var g,h,i,j;if(!f.hasClass("prepare-dragging")||(f.css({width:b.width(),height:b.height()}),f.removeClass("prepare-dragging"),f.addClass("dragging"),!d)){f.offset({left:c.pageX-f.width()/2,top:c.pageY-f.height()/2}),a.autoScroll.start(c),i=a.data.droppables,j=[];for(h in i)g=i[h],a.isHover(f,$(g.element))?j.push(g.move(c,e)):j.push(g.out(c,e));return j}},a.hooks.up.drag=function(b){var c,d,g,h;h=a.data.droppables;for(d in h)c=h[d],g=a.isHover(f,$(c.element)),c.up(b,g,e);return delete a.hooks.move.drag,delete a.hooks.up.drag,e.element=null,f.remove(),a.autoScroll.stop()},$("body").append(f),c?void 0:a.hooks.move.drag(d,c)}),e}}(this),this.dragDragMode=function(a){return function(b,c,d){var e;return null==c&&(c=!0),e={id:a.getNewId(),mode:"drag",maternal:null,element:b[0],object:d},b.addClass("fb-draggable"),b.on("mousedown",function(d){return d.preventDefault(),b.hasClass("dragging")?void 0:(b.addClass("prepare-dragging"),a.hooks.move.drag=function(c,d){var f,g,h;if(!b.hasClass("prepare-dragging")||(b.css({width:b.width(),height:b.height()}),b.removeClass("prepare-dragging"),b.addClass("dragging"),!d)){b.offset({left:c.pageX-b.width()/2,top:c.pageY-b.height()/2}),a.autoScroll.start(c),h=a.data.droppables;for(g in h)f=h[g],a.isHover(b,$(f.element))?f.move(c,e):f.out(c,e)}},a.hooks.up.drag=function(c){var d,f,g,h;h=a.data.droppables;for(f in h)d=h[f],g=a.isHover(b,$(d.element)),d.up(c,g,e);return delete a.hooks.move.drag,delete a.hooks.up.drag,b.css({width:"",height:"",left:"",top:""}),b.removeClass("dragging defer-dragging"),a.autoScroll.stop()},c?void 0:a.hooks.move.drag(d,c))}),e}}(this),this.dropMode=function(a){return function(c,d){var e;return e={id:a.getNewId(),element:c[0],move:function(a,c){return b.$apply(function(){return"function"==typeof d.move?d.move(a,c):void 0})},up:function(a,c,e){return b.$apply(function(){return"function"==typeof d.up?d.up(a,c,e):void 0})},out:function(a,c){return b.$apply(function(){return"function"==typeof d.out?d.out(a,c):void 0})}}}}(this),this.draggable=function(a){return function(b,c){var d,e,f,g,h,i,j;if(null==c&&(c={}),f=[],"mirror"===c.mode)for(g=0,i=b.length;i>g;g++)e=b[g],d=a.dragMirrorMode($(e),c.defer,c.object),f.push(d.id),a.data.draggables[d.id]=d;else for(h=0,j=b.length;j>h;h++)e=b[h],d=a.dragDragMode($(e),c.defer,c.object),f.push(d.id),a.data.draggables[d.id]=d;return f}}(this),this.droppable=function(a){return function(b,c){var d,e,f,g,h;for(null==c&&(c={}),f=[],g=0,h=b.length;h>g;g++)e=b[g],d=a.dropMode($(e),c),f.push(d),a.data.droppables[d.id]=d;return f}}(this),this.get=function(a){return this.setupEasing(),this.setupProviders(a),{isMouseMoved:this.isMouseMoved,data:this.data,draggable:this.draggable,droppable:this.droppable}},this.get.$inject=["$injector"],this.$get=this.get})}.call(this),function(){angular.module("builder",["builder.directive"])}.call(this),function(){var a=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};angular.module("builder.provider",[]).provider("$builder",function(){var b,c,d;c=null,b=null,d=null,this.version="0.0.2",this.components={},this.groups=[],this.broadcastChannel={updateInput:"$updateInput"},this.forms={"default":[]},this.formsId={"default":0},this.convertComponent=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;return c={name:a,group:null!=(d=b.group)?d:"Default",label:null!=(e=b.label)?e:"",description:null!=(f=b.description)?f:"",placeholder:null!=(g=b.placeholder)?g:"",editable:null!=(h=b.editable)?h:!0,required:null!=(i=b.required)?i:!1,validation:null!=(j=b.validation)?j:"/.*/",validationOptions:null!=(k=b.validationOptions)?k:[],options:null!=(l=b.options)?l:[],arrayToText:null!=(m=b.arrayToText)?m:!1,template:b.template,templateUrl:b.templateUrl,popoverTemplate:b.popoverTemplate,popoverTemplateUrl:b.popoverTemplateUrl},c.template||c.templateUrl||console.error("The template is empty."),c.popoverTemplate||c.popoverTemplateUrl||console.error("The popoverTemplate is empty."),c},this.convertFormObject=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(null==b&&(b={}),c=this.components[b.component],null==c)throw"The component "+b.component+" was not registered.";if(b.id){for(d=!1,i=this.forms[a],g=0,h=i.length;h>g;g++)if(e=i[g],b.id<=e.id){b.id=this.formsId[a]++,d=!0;break}d||(this.formsId[a]=b.id+1)}return f={id:null!=(j=b.id)?j:this.formsId[a]++,component:b.component,editable:null!=(k=b.editable)?k:c.editable,index:null!=(l=b.index)?l:0,label:null!=(m=b.label)?m:c.label,description:null!=(n=b.description)?n:c.description,placeholder:null!=(o=b.placeholder)?o:c.placeholder,options:null!=(p=b.options)?p:c.options,required:null!=(q=b.required)?q:c.required,validation:null!=(r=b.validation)?r:c.validation}},this.reindexFormObject=function(a){return function(b){var c,d,e,f;for(c=a.forms[b],d=e=0,f=c.length;f>e;d=e+=1)c[d].index=d}}(this),this.setupProviders=function(a){return function(a){return c=a,b=c.get("$http"),d=c.get("$templateCache")}}(this),this.loadTemplate=function(a){return null==a.template&&b.get(a.templateUrl,{cache:d}).success(function(b){return a.template=b}),null==a.popoverTemplate?b.get(a.popoverTemplateUrl,{cache:d}).success(function(b){return a.popoverTemplate=b}):void 0},this.registerComponent=function(b){return function(d,e){var f,g;null==e&&(e={}),null==b.components[d]?(f=b.convertComponent(d,e),b.components[d]=f,null!=c&&b.loadTemplate(f),g=f.group,a.call(b.groups,g)<0&&b.groups.push(f.group)):console.error("The component "+d+" was registered.")}}(this),this.addFormObject=function(a){return function(b,c){var d;return null==c&&(c={}),null==(d=a.forms)[b]&&(d[b]=[]),a.insertFormObject(b,a.forms[b].length,c)}}(this),this.insertFormObject=function(a){return function(b,c,d){var e,f;return null==d&&(d={}),null==(e=a.forms)[b]&&(e[b]=[]),null==(f=a.formsId)[b]&&(f[b]=0),c>a.forms[b].length?c=a.forms[b].length:0>c&&(c=0),a.forms[b].splice(c,0,a.convertFormObject(b,d)),a.reindexFormObject(b),a.forms[b][c]}}(this),this.removeFormObject=function(a){return function(b,c){var d;return d=a.forms[b],d.splice(c,1),a.reindexFormObject(b)}}(this),this.updateFormObjectIndex=function(a){return function(b,c,d){var e,f;if(c!==d)return f=a.forms[b],e=f.splice(c,1)[0],f.splice(d,0,e),a.reindexFormObject(b)}}(this),this.$get=["$injector",function(a){return function(b){var c,d,e;a.setupProviders(b),e=a.components;for(d in e)c=e[d],a.loadTemplate(c);return{version:a.version,components:a.components,groups:a.groups,forms:a.forms,broadcastChannel:a.broadcastChannel,registerComponent:a.registerComponent,addFormObject:a.addFormObject,insertFormObject:a.insertFormObject,removeFormObject:a.removeFormObject,updateFormObjectIndex:a.updateFormObjectIndex}}}(this)]})}.call(this),function(){angular.module("builder.components",["builder","validator.rules"]).config(["$builderProvider",function(a){return a.registerComponent("textInput",{group:"Default",label:"Text Input",description:"description",placeholder:"placeholder",required:!1,validationOptions:[{label:"none",rule:"/.*/"},{label:"number",rule:"[number]"},{label:"email",rule:"[email]"},{label:"url",rule:"[url]"}],template:'
        \n \n
        \n \n

        {{description}}

        \n
        \n
        ',popoverTemplate:"
        \n
        \n \n \n
        \n
        \n \n \n
        \n
        \n \n \n
        \n
        \n \n
        \n
        0\">\n \n \n
        \n\n
        \n
        \n \n \n \n
        \n
        "}),a.registerComponent("textArea",{group:"Default",label:"Text Area",description:"description",placeholder:"placeholder",required:!1,template:'
        \n \n
        \n ",Y.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var za="undefined";Y.focusinBubbles="onfocusin"in a;var Aa=/^key/,Ba=/^(?:mouse|pointer|contextmenu)|click/,Ca=/^(?:focusinfocus|focusoutblur)$/,Da=/^([^.]*)(?:\.(.+)|)$/;_.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=ra.get(a);if(q)for(c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=_.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return typeof _!==za&&_.event.triggered!==b.type?_.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(na)||[""],j=b.length;j--;)h=Da.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=_.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=_.event.special[n]||{},k=_.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&_.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),_.event.global[n]=!0)},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=ra.hasData(a)&&ra.get(a);if(q&&(i=q.events)){for(b=(b||"").match(na)||[""],j=b.length;j--;)if(h=Da.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){for(l=_.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||_.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)_.event.remove(a,n+b[j],c,d,!0);_.isEmptyObject(i)&&(delete q.handle,ra.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,j,k,l,m=[d||Z],n=X.call(b,"type")?b.type:b,o=X.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||Z,3!==d.nodeType&&8!==d.nodeType&&!Ca.test(n+_.event.triggered)&&(n.indexOf(".")>=0&&(o=n.split("."),n=o.shift(),o.sort()),j=n.indexOf(":")<0&&"on"+n,b=b[_.expando]?b:new _.Event(n,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=o.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:_.makeArray(c,[b]),l=_.event.special[n]||{},e||!l.trigger||l.trigger.apply(d,c)!==!1)){if(!e&&!l.noBubble&&!_.isWindow(d)){for(i=l.delegateType||n,Ca.test(i+n)||(g=g.parentNode);g;g=g.parentNode)m.push(g),h=g;h===(d.ownerDocument||Z)&&m.push(h.defaultView||h.parentWindow||a)}for(f=0;(g=m[f++])&&!b.isPropagationStopped();)b.type=f>1?i:l.bindType||n,k=(ra.get(g,"events")||{})[b.type]&&ra.get(g,"handle"),k&&k.apply(g,c),k=j&&g[j],k&&k.apply&&_.acceptData(g)&&(b.result=k.apply(g,c),b.result===!1&&b.preventDefault());return b.type=n,e||b.isDefaultPrevented()||l._default&&l._default.apply(m.pop(),c)!==!1||!_.acceptData(d)||j&&_.isFunction(d[n])&&!_.isWindow(d)&&(h=d[j],h&&(d[j]=null),_.event.triggered=n,d[n](),_.event.triggered=void 0,h&&(d[j]=h)),b.result}},dispatch:function(a){a=_.event.fix(a);var b,c,d,e,f,g=[],h=R.call(arguments),i=(ra.get(this,"events")||{})[a.type]||[],j=_.event.special[a.type]||{};if(h[0]=a,a.delegateTarget=this,!j.preDispatch||j.preDispatch.call(this,a)!==!1){for(g=_.event.handlers.call(this,a,i),b=0;(e=g[b++])&&!a.isPropagationStopped();)for(a.currentTarget=e.elem,c=0;(f=e.handlers[c++])&&!a.isImmediatePropagationStopped();)a.namespace_re&&!a.namespace_re.test(f.namespace)||(a.handleObj=f,a.data=f.data,d=((_.event.special[f.origType]||{}).handle||f.handler).apply(e.elem,h),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()));return j.postDispatch&&j.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?_(e,this).index(i)>=0:_.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,Fa=/<([\w:]+)/,Ga=/<|&#?\w+;/,Ha=/<(?:script|style|link)/i,Ia=/checked\s*(?:[^=]|=\s*.checked.)/i,Ja=/^$|\/(?:java|ecma)script/i,Ka=/^true\/(.*)/,La=/^\s*\s*$/g,Ma={option:[1,""],thead:[1,"","
        "],col:[2,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],_default:[0,"",""]};Ma.optgroup=Ma.option,Ma.tbody=Ma.tfoot=Ma.colgroup=Ma.caption=Ma.thead,Ma.th=Ma.td,_.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=_.contains(a.ownerDocument,a);if(!(Y.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||_.isXMLDoc(a)))for(g=r(h),f=r(a),d=0,e=f.length;e>d;d++)s(f[d],g[d]);if(b)if(c)for(f=f||r(a),g=g||r(h),d=0,e=f.length;e>d;d++)q(f[d],g[d]);else q(a,h);return g=r(h,"script"),g.length>0&&p(g,!i&&r(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,n=a.length;n>m;m++)if(e=a[m],e||0===e)if("object"===_.type(e))_.merge(l,e.nodeType?[e]:e);else if(Ga.test(e)){for(f=f||k.appendChild(b.createElement("div")),g=(Fa.exec(e)||["",""])[1].toLowerCase(),h=Ma[g]||Ma._default,f.innerHTML=h[1]+e.replace(Ea,"<$1>")+h[2],j=h[0];j--;)f=f.lastChild;_.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));for(k.textContent="",m=0;e=l[m++];)if((!d||-1===_.inArray(e,d))&&(i=_.contains(e.ownerDocument,e),f=r(k.appendChild(e),"script"),i&&p(f),c))for(j=0;e=f[j++];)Ja.test(e.type||"")&&c.push(e);return k},cleanData:function(a){for(var b,c,d,e,f=_.event.special,g=0;void 0!==(c=a[g]);g++){if(_.acceptData(c)&&(e=c[ra.expando],e&&(b=ra.cache[e]))){if(b.events)for(d in b.events)f[d]?_.event.remove(c,d):_.removeEvent(c,d,b.handle);ra.cache[e]&&delete ra.cache[e]}delete sa.cache[c[sa.expando]]}}}),_.fn.extend({text:function(a){return qa(this,function(a){return void 0===a?_.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?_.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||_.cleanData(r(c)),c.parentNode&&(b&&_.contains(c.ownerDocument,c)&&p(r(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(_.cleanData(r(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return _.clone(this,a,b)})},html:function(a){return qa(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Ha.test(a)&&!Ma[(Fa.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ea,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(_.cleanData(r(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,_.cleanData(r(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=S.apply([],a);var c,d,e,f,g,h,i=0,j=this.length,k=this,l=j-1,m=a[0],p=_.isFunction(m);if(p||j>1&&"string"==typeof m&&!Y.checkClone&&Ia.test(m))return this.each(function(c){var d=k.eq(c);p&&(a[0]=m.call(this,c,d.html())),d.domManip(a,b)});if(j&&(c=_.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(e=_.map(r(c,"script"),n),f=e.length;j>i;i++)g=c,i!==l&&(g=_.clone(g,!0,!0),f&&_.merge(e,r(g,"script"))),b.call(this[i],g,i);if(f)for(h=e[e.length-1].ownerDocument,_.map(e,o),i=0;f>i;i++)g=e[i],Ja.test(g.type||"")&&!ra.access(g,"globalEval")&&_.contains(h,g)&&(g.src?_._evalUrl&&_._evalUrl(g.src):_.globalEval(g.textContent.replace(La,"")))}return this}}),_.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){_.fn[a]=function(a){for(var c,d=[],e=_(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),_(e[g])[b](c),T.apply(d,c.get());return this.pushStack(d)}});var Na,Oa={},Pa=/^margin/,Qa=new RegExp("^("+va+")(?!px)[a-z%]+$","i"),Ra=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};!function(){function b(){g.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",g.innerHTML="",e.appendChild(f);var b=a.getComputedStyle(g,null);c="1%"!==b.top,d="4px"===b.width,e.removeChild(f)}var c,d,e=Z.documentElement,f=Z.createElement("div"),g=Z.createElement("div");g.style&&(g.style.backgroundClip="content-box",g.cloneNode(!0).style.backgroundClip="",Y.clearCloneStyle="content-box"===g.style.backgroundClip,f.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",f.appendChild(g),a.getComputedStyle&&_.extend(Y,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return null==d&&b(),d},reliableMarginRight:function(){var b,c=g.appendChild(Z.createElement("div"));return c.style.cssText=g.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",g.style.width="1px",e.appendChild(f),b=!parseFloat(a.getComputedStyle(c,null).marginRight),e.removeChild(f),g.removeChild(c),b}}))}(),_.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Sa=/^(none|table(?!-c[ea]).+)/,Ta=new RegExp("^("+va+")(.*)$","i"),Ua=new RegExp("^([+-])=("+va+")","i"),Va={position:"absolute",visibility:"hidden",display:"block"},Wa={letterSpacing:"0",fontWeight:"400"},Xa=["Webkit","O","Moz","ms"];_.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=v(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=_.camelCase(b),i=a.style;return b=_.cssProps[h]||(_.cssProps[h]=x(i,h)),g=_.cssHooks[b]||_.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ua.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(_.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||_.cssNumber[h]||(c+="px"),Y.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=_.camelCase(b);return b=_.cssProps[h]||(_.cssProps[h]=x(a.style,h)),g=_.cssHooks[b]||_.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=v(a,b,d)),"normal"===e&&b in Wa&&(e=Wa[b]),""===c||c?(f=parseFloat(e),c===!0||_.isNumeric(f)?f||0:e):e}}),_.each(["height","width"],function(a,b){_.cssHooks[b]={get:function(a,c,d){return c?Sa.test(_.css(a,"display"))&&0===a.offsetWidth?_.swap(a,Va,function(){return A(a,b,d)}):A(a,b,d):void 0},set:function(a,c,d){var e=d&&Ra(a);return y(a,c,d?z(a,b,d,"border-box"===_.css(a,"boxSizing",!1,e),e):0)}}}),_.cssHooks.marginRight=w(Y.reliableMarginRight,function(a,b){return b?_.swap(a,{display:"inline-block"},v,[a,"marginRight"]):void 0}),_.each({margin:"",padding:"",border:"Width"},function(a,b){_.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+wa[d]+b]=f[d]||f[d-2]||f[0];return e}},Pa.test(a)||(_.cssHooks[a+b].set=y)}),_.fn.extend({css:function(a,b){return qa(this,function(a,b,c){var d,e,f={},g=0;if(_.isArray(b)){for(d=Ra(a),e=b.length;e>g;g++)f[b[g]]=_.css(a,b[g],!1,d);return f}return void 0!==c?_.style(a,b,c):_.css(a,b)},a,b,arguments.length>1)},show:function(){return B(this,!0)},hide:function(){return B(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){xa(this)?_(this).show():_(this).hide()})}}),_.Tween=C,C.prototype={constructor:C,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(_.cssNumber[c]?"":"px")},cur:function(){var a=C.propHooks[this.prop];return a&&a.get?a.get(this):C.propHooks._default.get(this)},run:function(a){var b,c=C.propHooks[this.prop];return this.options.duration?this.pos=b=_.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):C.propHooks._default.set(this),this}},C.prototype.init.prototype=C.prototype,C.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=_.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){_.fx.step[a.prop]?_.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[_.cssProps[a.prop]]||_.cssHooks[a.prop])?_.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now; -}}},C.propHooks.scrollTop=C.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},_.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},_.fx=C.prototype.init,_.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=new RegExp("^(?:([+-])=|)("+va+")([a-z%]*)$","i"),ab=/queueHooks$/,bb=[G],cb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=_a.exec(b),f=e&&e[3]||(_.cssNumber[a]?"":"px"),g=(_.cssNumber[a]||"px"!==f&&+d)&&_a.exec(_.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,_.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};_.Animation=_.extend(I,{tweener:function(a,b){_.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],cb[c]=cb[c]||[],cb[c].unshift(b)},prefilter:function(a,b){b?bb.unshift(a):bb.push(a)}}),_.speed=function(a,b,c){var d=a&&"object"==typeof a?_.extend({},a):{complete:c||!c&&b||_.isFunction(a)&&a,duration:a,easing:c&&b||b&&!_.isFunction(b)&&b};return d.duration=_.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in _.fx.speeds?_.fx.speeds[d.duration]:_.fx.speeds._default,null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){_.isFunction(d.old)&&d.old.call(this),d.queue&&_.dequeue(this,d.queue)},d},_.fn.extend({fadeTo:function(a,b,c,d){return this.filter(xa).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=_.isEmptyObject(a),f=_.speed(b,c,d),g=function(){var b=I(this,_.extend({},a),f);(e||ra.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=_.timers,g=ra.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ab.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||_.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=ra.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=_.timers,g=d?d.length:0;for(c.finish=!0,_.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),_.each(["toggle","show","hide"],function(a,b){var c=_.fn[b];_.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(E(b,!0),a,d,e)}}),_.each({slideDown:E("show"),slideUp:E("hide"),slideToggle:E("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){_.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),_.timers=[],_.fx.tick=function(){var a,b=0,c=_.timers;for(Ya=_.now();b1)},removeAttr:function(a){return this.each(function(){_.removeAttr(this,a)})}}),_.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===za?_.prop(a,b,c):(1===f&&_.isXMLDoc(a)||(b=b.toLowerCase(),d=_.attrHooks[b]||(_.expr.match.bool.test(b)?eb:db)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=_.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void _.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(na);if(f&&1===a.nodeType)for(;c=f[e++];)d=_.propFix[c]||c,_.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!Y.radioValue&&"radio"===b&&_.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),eb={set:function(a,b,c){return b===!1?_.removeAttr(a,c):a.setAttribute(c,c),c}},_.each(_.expr.match.bool.source.match(/\w+/g),function(a,b){var c=fb[b]||_.find.attr;fb[b]=function(a,b,d){var e,f;return d||(f=fb[b],fb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,fb[b]=f),e}});var gb=/^(?:input|select|textarea|button)$/i;_.fn.extend({prop:function(a,b){return qa(this,_.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[_.propFix[a]||a]})}}),_.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!_.isXMLDoc(a),f&&(b=_.propFix[b]||b,e=_.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||gb.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),Y.optSelected||(_.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),_.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){_.propFix[this.toLowerCase()]=this});var hb=/[\t\r\n\f]/g;_.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(na)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(hb," "):" ")){for(f=0;e=b[f++];)d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=_.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(na)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(hb," "):"")){for(f=0;e=b[f++];)for(;d.indexOf(" "+e+" ")>=0;)d=d.replace(" "+e+" "," ");g=a?_.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):_.isFunction(a)?this.each(function(c){_(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if("string"===c)for(var b,d=0,e=_(this),f=a.match(na)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else c!==za&&"boolean"!==c||(this.className&&ra.set(this,"__className__",this.className),this.className=this.className||a===!1?"":ra.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(hb," ").indexOf(b)>=0)return!0;return!1}});var ib=/\r/g;_.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=_.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,_(this).val()):a,null==e?e="":"number"==typeof e?e+="":_.isArray(e)&&(e=_.map(e,function(a){return null==a?"":a+""})),b=_.valHooks[this.type]||_.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=_.valHooks[e.type]||_.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ib,""):null==c?"":c)}}}),_.extend({valHooks:{option:{get:function(a){var b=_.find.attr(a,"value");return null!=b?b:_.trim(_.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(Y.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!_.nodeName(c.parentNode,"optgroup"))){if(b=_(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=_.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=_.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),_.each(["radio","checkbox"],function(){_.valHooks[this]={set:function(a,b){return _.isArray(b)?a.checked=_.inArray(_(a).val(),b)>=0:void 0}},Y.checkOn||(_.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),_.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 contextmenu".split(" "),function(a,b){_.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),_.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var jb=_.now(),kb=/\?/;_.parseJSON=function(a){return JSON.parse(a+"")},_.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return b&&!b.getElementsByTagName("parsererror").length||_.error("Invalid XML: "+a),b};var lb=/#.*$/,mb=/([?&])_=[^&]*/,nb=/^(.*?):[ \t]*([^\r\n]*)$/gm,ob=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,pb=/^(?:GET|HEAD)$/,qb=/^\/\//,rb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,sb={},tb={},ub="*/".concat("*"),vb=a.location.href,wb=rb.exec(vb.toLowerCase())||[];_.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:vb,type:"GET",isLocal:ob.test(wb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":ub,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":_.parseJSON,"text xml":_.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?L(L(a,_.ajaxSettings),b):L(_.ajaxSettings,a)},ajaxPrefilter:J(sb),ajaxTransport:J(tb),ajax:function(a,b){function c(a,b,c,g){var i,k,r,s,u,w=b;2!==t&&(t=2,h&&clearTimeout(h),d=void 0,f=g||"",v.readyState=a>0?4:0,i=a>=200&&300>a||304===a,c&&(s=M(l,v,c)),s=N(l,s,v,i),i?(l.ifModified&&(u=v.getResponseHeader("Last-Modified"),u&&(_.lastModified[e]=u),u=v.getResponseHeader("etag"),u&&(_.etag[e]=u)),204===a||"HEAD"===l.type?w="nocontent":304===a?w="notmodified":(w=s.state,k=s.data,r=s.error,i=!r)):(r=w,!a&&w||(w="error",0>a&&(a=0))),v.status=a,v.statusText=(b||w)+"",i?o.resolveWith(m,[k,w,v]):o.rejectWith(m,[v,w,r]),v.statusCode(q),q=void 0,j&&n.trigger(i?"ajaxSuccess":"ajaxError",[v,l,i?k:r]),p.fireWith(m,[v,w]),j&&(n.trigger("ajaxComplete",[v,l]),--_.active||_.event.trigger("ajaxStop")))}"object"==typeof a&&(b=a,a=void 0),b=b||{};var d,e,f,g,h,i,j,k,l=_.ajaxSetup({},b),m=l.context||l,n=l.context&&(m.nodeType||m.jquery)?_(m):_.event,o=_.Deferred(),p=_.Callbacks("once memory"),q=l.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!g)for(g={};b=nb.exec(f);)g[b[1].toLowerCase()]=b[2];b=g[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return d&&d.abort(b),c(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,l.url=((a||l.url||vb)+"").replace(lb,"").replace(qb,wb[1]+"//"),l.type=b.method||b.type||l.method||l.type,l.dataTypes=_.trim(l.dataType||"*").toLowerCase().match(na)||[""],null==l.crossDomain&&(i=rb.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]===wb[1]&&i[2]===wb[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(wb[3]||("http:"===wb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=_.param(l.data,l.traditional)),K(sb,l,b,v),2===t)return v;j=_.event&&l.global,j&&0===_.active++&&_.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!pb.test(l.type),e=l.url,l.hasContent||(l.data&&(e=l.url+=(kb.test(e)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=mb.test(e)?e.replace(mb,"$1_="+jb++):e+(kb.test(e)?"&":"?")+"_="+jb++)),l.ifModified&&(_.lastModified[e]&&v.setRequestHeader("If-Modified-Since",_.lastModified[e]),_.etag[e]&&v.setRequestHeader("If-None-Match",_.etag[e])),(l.data&&l.hasContent&&l.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",l.contentType),v.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+ub+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)v.setRequestHeader(k,l.headers[k]);if(l.beforeSend&&(l.beforeSend.call(m,v,l)===!1||2===t))return v.abort();u="abort";for(k in{success:1,error:1,complete:1})v[k](l[k]);if(d=K(tb,l,b,v)){v.readyState=1,j&&n.trigger("ajaxSend",[v,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){v.abort("timeout")},l.timeout));try{t=1,d.send(r,c)}catch(w){if(!(2>t))throw w;c(-1,w)}}else c(-1,"No Transport");return v},getJSON:function(a,b,c){return _.get(a,b,c,"json")},getScript:function(a,b){return _.get(a,void 0,b,"script")}}),_.each(["get","post"],function(a,b){_[b]=function(a,c,d,e){return _.isFunction(c)&&(e=e||d,d=c,c=void 0),_.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),_._evalUrl=function(a){return _.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},_.fn.extend({wrapAll:function(a){var b;return _.isFunction(a)?this.each(function(b){_(this).wrapAll(a.call(this,b))}):(this[0]&&(b=_(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return _.isFunction(a)?this.each(function(b){_(this).wrapInner(a.call(this,b))}):this.each(function(){var b=_(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=_.isFunction(a);return this.each(function(c){_(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){_.nodeName(this,"body")||_(this).replaceWith(this.childNodes)}).end()}}),_.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},_.expr.filters.visible=function(a){return!_.expr.filters.hidden(a)};var xb=/%20/g,yb=/\[\]$/,zb=/\r?\n/g,Ab=/^(?:submit|button|image|reset|file)$/i,Bb=/^(?:input|select|textarea|keygen)/i;_.param=function(a,b){var c,d=[],e=function(a,b){b=_.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=_.ajaxSettings&&_.ajaxSettings.traditional),_.isArray(a)||a.jquery&&!_.isPlainObject(a))_.each(a,function(){e(this.name,this.value)});else for(c in a)O(c,a[c],b,e);return d.join("&").replace(xb,"+")},_.fn.extend({serialize:function(){return _.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=_.prop(this,"elements");return a?_.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!_(this).is(":disabled")&&Bb.test(this.nodeName)&&!Ab.test(a)&&(this.checked||!ya.test(a))}).map(function(a,b){var c=_(this).val();return null==c?null:_.isArray(c)?_.map(c,function(a){return{name:b.name,value:a.replace(zb,"\r\n")}}):{name:b.name,value:c.replace(zb,"\r\n")}}).get()}}),_.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cb=0,Db={},Eb={0:200,1223:204},Fb=_.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Db)Db[a]()}),Y.cors=!!Fb&&"withCredentials"in Fb,Y.ajax=Fb=!!Fb,_.ajaxTransport(function(a){var b;return Y.cors||Fb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Db[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Eb[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Db[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),_.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return _.globalEval(a),a}}}),_.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),_.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=_("",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars"]}},c,{className:"pi",begin:/<\?\w+/,end:/\?>/,relevance:10},{className:"tag",begin:"",contains:[{className:"title",begin:/[^ \/><\n\t]+/,relevance:0},d]}]}}),a.registerLanguage("asciidoc",function(a){return{aliases:["adoc"],contains:[a.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),a.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"header",begin:"^(={1,5}) .+?( \\1)?$",relevance:10},{className:"header",begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",relevance:10},{className:"attribute",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"attribute",begin:"^\\[.+?\\]$",relevance:0},{className:"blockquote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{className:"bullet",begin:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{className:"label",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{className:"strong",begin:"\\B\\*(?![\\*\\s])",end:"(\\n{2}|\\*)",contains:[{begin:"\\\\*\\w",relevance:0}]},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0},{className:"emphasis",begin:"_(?![_\\s])",end:"(\\n{2}|_)",relevance:0},{className:"smartquote",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},{className:"horizontal_rule",begin:"^'{3,}[ \\t]*$",relevance:10},{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link_url",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"link_label",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}),a.registerLanguage("aspectj",function(a){var b="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else extends implements break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws privileged aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization staticinitialization withincode target within execution getWithinTypeName handler thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents warning error soft precedence thisAspectInstance",c="get set args call";return{keywords:b,illegal:/<\/|#/,contains:[a.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"aspect",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},a.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:b+" "+c,excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[a.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:b,illegal:/["\[\]]/,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",keywords:b+" "+c},a.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:b,excludeEnd:!0,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:b,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"}]}}),a.registerLanguage("autohotkey",function(a){var b={className:"escape",begin:"`[\\s\\S]"},c=a.COMMENT(";","$",{relevance:0}),d=[{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{className:"built_in",beginKeywords:"ComSpec Clipboard ClipboardAll ErrorLevel"}];return{case_insensitive:!0,keywords:{keyword:"Break Continue Else Gosub If Loop Return While",literal:"A true false NOT AND OR"},contains:d.concat([b,a.inherit(a.QUOTE_STRING_MODE,{contains:[b]}),c,{className:"number",begin:a.NUMBER_RE,relevance:0},{className:"var_expand",begin:"%",end:"%",illegal:"\\n",contains:[b]},{className:"label",contains:[b],variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{begin:",\\s*,",relevance:10}])}}),a.registerLanguage("autoit",function(a){var b="ByRef Case Const ContinueCase ContinueLoop Default Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",c="True False And Null Not Or",d="Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Opt Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown TCPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend UDPShutdown UDPStartup VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive Array1DToHistogram ArrayAdd ArrayBinarySearch ArrayColDelete ArrayColInsert ArrayCombinations ArrayConcatenate ArrayDelete ArrayDisplay ArrayExtract ArrayFindAll ArrayInsert ArrayMax ArrayMaxIndex ArrayMin ArrayMinIndex ArrayPermute ArrayPop ArrayPush ArrayReverse ArraySearch ArrayShuffle ArraySort ArraySwap ArrayToClip ArrayToString ArrayTranspose ArrayTrim ArrayUnique Assert ChooseColor ChooseFont ClipBoard_ChangeChain ClipBoard_Close ClipBoard_CountFormats ClipBoard_Empty ClipBoard_EnumFormats ClipBoard_FormatStr ClipBoard_GetData ClipBoard_GetDataEx ClipBoard_GetFormatName ClipBoard_GetOpenWindow ClipBoard_GetOwner ClipBoard_GetPriorityFormat ClipBoard_GetSequenceNumber ClipBoard_GetViewer ClipBoard_IsFormatAvailable ClipBoard_Open ClipBoard_RegisterFormat ClipBoard_SetData ClipBoard_SetDataEx ClipBoard_SetViewer ClipPutFile ColorConvertHSLtoRGB ColorConvertRGBtoHSL ColorGetBlue ColorGetCOLORREF ColorGetGreen ColorGetRed ColorGetRGB ColorSetCOLORREF ColorSetRGB Crypt_DecryptData Crypt_DecryptFile Crypt_DeriveKey Crypt_DestroyKey Crypt_EncryptData Crypt_EncryptFile Crypt_GenRandom Crypt_HashData Crypt_HashFile Crypt_Shutdown Crypt_Startup DateAdd DateDayOfWeek DateDaysInMonth DateDiff DateIsLeapYear DateIsValid DateTimeFormat DateTimeSplit DateToDayOfWeek DateToDayOfWeekISO DateToDayValue DateToMonth Date_Time_CompareFileTime Date_Time_DOSDateTimeToArray Date_Time_DOSDateTimeToFileTime Date_Time_DOSDateTimeToStr Date_Time_DOSDateToArray Date_Time_DOSDateToStr Date_Time_DOSTimeToArray Date_Time_DOSTimeToStr Date_Time_EncodeFileTime Date_Time_EncodeSystemTime Date_Time_FileTimeToArray Date_Time_FileTimeToDOSDateTime Date_Time_FileTimeToLocalFileTime Date_Time_FileTimeToStr Date_Time_FileTimeToSystemTime Date_Time_GetFileTime Date_Time_GetLocalTime Date_Time_GetSystemTime Date_Time_GetSystemTimeAdjustment Date_Time_GetSystemTimeAsFileTime Date_Time_GetSystemTimes Date_Time_GetTickCount Date_Time_GetTimeZoneInformation Date_Time_LocalFileTimeToFileTime Date_Time_SetFileTime Date_Time_SetLocalTime Date_Time_SetSystemTime Date_Time_SetSystemTimeAdjustment Date_Time_SetTimeZoneInformation Date_Time_SystemTimeToArray Date_Time_SystemTimeToDateStr Date_Time_SystemTimeToDateTimeStr Date_Time_SystemTimeToFileTime Date_Time_SystemTimeToTimeStr Date_Time_SystemTimeToTzSpecificLocalTime Date_Time_TzSpecificLocalTimeToSystemTime DayValueToDate DebugBugReportEnv DebugCOMError DebugOut DebugReport DebugReportEx DebugReportVar DebugSetup Degree EventLog__Backup EventLog__Clear EventLog__Close EventLog__Count EventLog__DeregisterSource EventLog__Full EventLog__Notify EventLog__Oldest EventLog__Open EventLog__OpenBackup EventLog__Read EventLog__RegisterSource EventLog__Report Excel_BookAttach Excel_BookClose Excel_BookList Excel_BookNew Excel_BookOpen Excel_BookOpenText Excel_BookSave Excel_BookSaveAs Excel_Close Excel_ColumnToLetter Excel_ColumnToNumber Excel_ConvertFormula Excel_Export Excel_FilterGet Excel_FilterSet Excel_Open Excel_PictureAdd Excel_Print Excel_RangeCopyPaste Excel_RangeDelete Excel_RangeFind Excel_RangeInsert Excel_RangeLinkAddRemove Excel_RangeRead Excel_RangeReplace Excel_RangeSort Excel_RangeValidate Excel_RangeWrite Excel_SheetAdd Excel_SheetCopyMove Excel_SheetDelete Excel_SheetList FileCountLines FileCreate FileListToArray FileListToArrayRec FilePrint FileReadToArray FileWriteFromArray FileWriteLog FileWriteToLine FTP_Close FTP_Command FTP_Connect FTP_DecodeInternetStatus FTP_DirCreate FTP_DirDelete FTP_DirGetCurrent FTP_DirPutContents FTP_DirSetCurrent FTP_FileClose FTP_FileDelete FTP_FileGet FTP_FileGetSize FTP_FileOpen FTP_FilePut FTP_FileRead FTP_FileRename FTP_FileTimeLoHiToStr FTP_FindFileClose FTP_FindFileFirst FTP_FindFileNext FTP_GetLastResponseInfo FTP_ListToArray FTP_ListToArray2D FTP_ListToArrayEx FTP_Open FTP_ProgressDownload FTP_ProgressUpload FTP_SetStatusCallback GDIPlus_ArrowCapCreate GDIPlus_ArrowCapDispose GDIPlus_ArrowCapGetFillState GDIPlus_ArrowCapGetHeight GDIPlus_ArrowCapGetMiddleInset GDIPlus_ArrowCapGetWidth GDIPlus_ArrowCapSetFillState GDIPlus_ArrowCapSetHeight GDIPlus_ArrowCapSetMiddleInset GDIPlus_ArrowCapSetWidth GDIPlus_BitmapApplyEffect GDIPlus_BitmapApplyEffectEx GDIPlus_BitmapCloneArea GDIPlus_BitmapConvertFormat GDIPlus_BitmapCreateApplyEffect GDIPlus_BitmapCreateApplyEffectEx GDIPlus_BitmapCreateDIBFromBitmap GDIPlus_BitmapCreateFromFile GDIPlus_BitmapCreateFromGraphics GDIPlus_BitmapCreateFromHBITMAP GDIPlus_BitmapCreateFromHICON GDIPlus_BitmapCreateFromHICON32 GDIPlus_BitmapCreateFromMemory GDIPlus_BitmapCreateFromResource GDIPlus_BitmapCreateFromScan0 GDIPlus_BitmapCreateFromStream GDIPlus_BitmapCreateHBITMAPFromBitmap GDIPlus_BitmapDispose GDIPlus_BitmapGetHistogram GDIPlus_BitmapGetHistogramEx GDIPlus_BitmapGetHistogramSize GDIPlus_BitmapGetPixel GDIPlus_BitmapLockBits GDIPlus_BitmapSetPixel GDIPlus_BitmapUnlockBits GDIPlus_BrushClone GDIPlus_BrushCreateSolid GDIPlus_BrushDispose GDIPlus_BrushGetSolidColor GDIPlus_BrushGetType GDIPlus_BrushSetSolidColor GDIPlus_ColorMatrixCreate GDIPlus_ColorMatrixCreateGrayScale GDIPlus_ColorMatrixCreateNegative GDIPlus_ColorMatrixCreateSaturation GDIPlus_ColorMatrixCreateScale GDIPlus_ColorMatrixCreateTranslate GDIPlus_CustomLineCapClone GDIPlus_CustomLineCapCreate GDIPlus_CustomLineCapDispose GDIPlus_CustomLineCapGetStrokeCaps GDIPlus_CustomLineCapSetStrokeCaps GDIPlus_Decoders GDIPlus_DecodersGetCount GDIPlus_DecodersGetSize GDIPlus_DrawImageFX GDIPlus_DrawImageFXEx GDIPlus_DrawImagePoints GDIPlus_EffectCreate GDIPlus_EffectCreateBlur GDIPlus_EffectCreateBrightnessContrast GDIPlus_EffectCreateColorBalance GDIPlus_EffectCreateColorCurve GDIPlus_EffectCreateColorLUT GDIPlus_EffectCreateColorMatrix GDIPlus_EffectCreateHueSaturationLightness GDIPlus_EffectCreateLevels GDIPlus_EffectCreateRedEyeCorrection GDIPlus_EffectCreateSharpen GDIPlus_EffectCreateTint GDIPlus_EffectDispose GDIPlus_EffectGetParameters GDIPlus_EffectSetParameters GDIPlus_Encoders GDIPlus_EncodersGetCLSID GDIPlus_EncodersGetCount GDIPlus_EncodersGetParamList GDIPlus_EncodersGetParamListSize GDIPlus_EncodersGetSize GDIPlus_FontCreate GDIPlus_FontDispose GDIPlus_FontFamilyCreate GDIPlus_FontFamilyCreateFromCollection GDIPlus_FontFamilyDispose GDIPlus_FontFamilyGetCellAscent GDIPlus_FontFamilyGetCellDescent GDIPlus_FontFamilyGetEmHeight GDIPlus_FontFamilyGetLineSpacing GDIPlus_FontGetHeight GDIPlus_FontPrivateAddFont GDIPlus_FontPrivateAddMemoryFont GDIPlus_FontPrivateCollectionDispose GDIPlus_FontPrivateCreateCollection GDIPlus_GraphicsClear GDIPlus_GraphicsCreateFromHDC GDIPlus_GraphicsCreateFromHWND GDIPlus_GraphicsDispose GDIPlus_GraphicsDrawArc GDIPlus_GraphicsDrawBezier GDIPlus_GraphicsDrawClosedCurve GDIPlus_GraphicsDrawClosedCurve2 GDIPlus_GraphicsDrawCurve GDIPlus_GraphicsDrawCurve2 GDIPlus_GraphicsDrawEllipse GDIPlus_GraphicsDrawImage GDIPlus_GraphicsDrawImagePointsRect GDIPlus_GraphicsDrawImageRect GDIPlus_GraphicsDrawImageRectRect GDIPlus_GraphicsDrawLine GDIPlus_GraphicsDrawPath GDIPlus_GraphicsDrawPie GDIPlus_GraphicsDrawPolygon GDIPlus_GraphicsDrawRect GDIPlus_GraphicsDrawString GDIPlus_GraphicsDrawStringEx GDIPlus_GraphicsFillClosedCurve GDIPlus_GraphicsFillClosedCurve2 GDIPlus_GraphicsFillEllipse GDIPlus_GraphicsFillPath GDIPlus_GraphicsFillPie GDIPlus_GraphicsFillPolygon GDIPlus_GraphicsFillRect GDIPlus_GraphicsFillRegion GDIPlus_GraphicsGetCompositingMode GDIPlus_GraphicsGetCompositingQuality GDIPlus_GraphicsGetDC GDIPlus_GraphicsGetInterpolationMode GDIPlus_GraphicsGetSmoothingMode GDIPlus_GraphicsGetTransform GDIPlus_GraphicsMeasureCharacterRanges GDIPlus_GraphicsMeasureString GDIPlus_GraphicsReleaseDC GDIPlus_GraphicsResetClip GDIPlus_GraphicsResetTransform GDIPlus_GraphicsRestore GDIPlus_GraphicsRotateTransform GDIPlus_GraphicsSave GDIPlus_GraphicsScaleTransform GDIPlus_GraphicsSetClipPath GDIPlus_GraphicsSetClipRect GDIPlus_GraphicsSetClipRegion GDIPlus_GraphicsSetCompositingMode GDIPlus_GraphicsSetCompositingQuality GDIPlus_GraphicsSetInterpolationMode GDIPlus_GraphicsSetPixelOffsetMode GDIPlus_GraphicsSetSmoothingMode GDIPlus_GraphicsSetTextRenderingHint GDIPlus_GraphicsSetTransform GDIPlus_GraphicsTransformPoints GDIPlus_GraphicsTranslateTransform GDIPlus_HatchBrushCreate GDIPlus_HICONCreateFromBitmap GDIPlus_ImageAttributesCreate GDIPlus_ImageAttributesDispose GDIPlus_ImageAttributesSetColorKeys GDIPlus_ImageAttributesSetColorMatrix GDIPlus_ImageDispose GDIPlus_ImageGetDimension GDIPlus_ImageGetFlags GDIPlus_ImageGetGraphicsContext GDIPlus_ImageGetHeight GDIPlus_ImageGetHorizontalResolution GDIPlus_ImageGetPixelFormat GDIPlus_ImageGetRawFormat GDIPlus_ImageGetThumbnail GDIPlus_ImageGetType GDIPlus_ImageGetVerticalResolution GDIPlus_ImageGetWidth GDIPlus_ImageLoadFromFile GDIPlus_ImageLoadFromStream GDIPlus_ImageResize GDIPlus_ImageRotateFlip GDIPlus_ImageSaveToFile GDIPlus_ImageSaveToFileEx GDIPlus_ImageSaveToStream GDIPlus_ImageScale GDIPlus_LineBrushCreate GDIPlus_LineBrushCreateFromRect GDIPlus_LineBrushCreateFromRectWithAngle GDIPlus_LineBrushGetColors GDIPlus_LineBrushGetRect GDIPlus_LineBrushMultiplyTransform GDIPlus_LineBrushResetTransform GDIPlus_LineBrushSetBlend GDIPlus_LineBrushSetColors GDIPlus_LineBrushSetGammaCorrection GDIPlus_LineBrushSetLinearBlend GDIPlus_LineBrushSetPresetBlend GDIPlus_LineBrushSetSigmaBlend GDIPlus_LineBrushSetTransform GDIPlus_MatrixClone GDIPlus_MatrixCreate GDIPlus_MatrixDispose GDIPlus_MatrixGetElements GDIPlus_MatrixInvert GDIPlus_MatrixMultiply GDIPlus_MatrixRotate GDIPlus_MatrixScale GDIPlus_MatrixSetElements GDIPlus_MatrixShear GDIPlus_MatrixTransformPoints GDIPlus_MatrixTranslate GDIPlus_PaletteInitialize GDIPlus_ParamAdd GDIPlus_ParamInit GDIPlus_ParamSize GDIPlus_PathAddArc GDIPlus_PathAddBezier GDIPlus_PathAddClosedCurve GDIPlus_PathAddClosedCurve2 GDIPlus_PathAddCurve GDIPlus_PathAddCurve2 GDIPlus_PathAddCurve3 GDIPlus_PathAddEllipse GDIPlus_PathAddLine GDIPlus_PathAddLine2 GDIPlus_PathAddPath GDIPlus_PathAddPie GDIPlus_PathAddPolygon GDIPlus_PathAddRectangle GDIPlus_PathAddString GDIPlus_PathBrushCreate GDIPlus_PathBrushCreateFromPath GDIPlus_PathBrushGetCenterPoint GDIPlus_PathBrushGetFocusScales GDIPlus_PathBrushGetPointCount GDIPlus_PathBrushGetRect GDIPlus_PathBrushGetWrapMode GDIPlus_PathBrushMultiplyTransform GDIPlus_PathBrushResetTransform GDIPlus_PathBrushSetBlend GDIPlus_PathBrushSetCenterColor GDIPlus_PathBrushSetCenterPoint GDIPlus_PathBrushSetFocusScales GDIPlus_PathBrushSetGammaCorrection GDIPlus_PathBrushSetLinearBlend GDIPlus_PathBrushSetPresetBlend GDIPlus_PathBrushSetSigmaBlend GDIPlus_PathBrushSetSurroundColor GDIPlus_PathBrushSetSurroundColorsWithCount GDIPlus_PathBrushSetTransform GDIPlus_PathBrushSetWrapMode GDIPlus_PathClone GDIPlus_PathCloseFigure GDIPlus_PathCreate GDIPlus_PathCreate2 GDIPlus_PathDispose GDIPlus_PathFlatten GDIPlus_PathGetData GDIPlus_PathGetFillMode GDIPlus_PathGetLastPoint GDIPlus_PathGetPointCount GDIPlus_PathGetPoints GDIPlus_PathGetWorldBounds GDIPlus_PathIsOutlineVisiblePoint GDIPlus_PathIsVisiblePoint GDIPlus_PathIterCreate GDIPlus_PathIterDispose GDIPlus_PathIterGetSubpathCount GDIPlus_PathIterNextMarkerPath GDIPlus_PathIterNextSubpathPath GDIPlus_PathIterRewind GDIPlus_PathReset GDIPlus_PathReverse GDIPlus_PathSetFillMode GDIPlus_PathSetMarker GDIPlus_PathStartFigure GDIPlus_PathTransform GDIPlus_PathWarp GDIPlus_PathWiden GDIPlus_PathWindingModeOutline GDIPlus_PenCreate GDIPlus_PenCreate2 GDIPlus_PenDispose GDIPlus_PenGetAlignment GDIPlus_PenGetColor GDIPlus_PenGetCustomEndCap GDIPlus_PenGetDashCap GDIPlus_PenGetDashStyle GDIPlus_PenGetEndCap GDIPlus_PenGetMiterLimit GDIPlus_PenGetWidth GDIPlus_PenSetAlignment GDIPlus_PenSetColor GDIPlus_PenSetCustomEndCap GDIPlus_PenSetDashCap GDIPlus_PenSetDashStyle GDIPlus_PenSetEndCap GDIPlus_PenSetLineCap GDIPlus_PenSetLineJoin GDIPlus_PenSetMiterLimit GDIPlus_PenSetStartCap GDIPlus_PenSetWidth GDIPlus_RectFCreate GDIPlus_RegionClone GDIPlus_RegionCombinePath GDIPlus_RegionCombineRect GDIPlus_RegionCombineRegion GDIPlus_RegionCreate GDIPlus_RegionCreateFromPath GDIPlus_RegionCreateFromRect GDIPlus_RegionDispose GDIPlus_RegionGetBounds GDIPlus_RegionGetHRgn GDIPlus_RegionTransform GDIPlus_RegionTranslate GDIPlus_Shutdown GDIPlus_Startup GDIPlus_StringFormatCreate GDIPlus_StringFormatDispose GDIPlus_StringFormatGetMeasurableCharacterRangeCount GDIPlus_StringFormatSetAlign GDIPlus_StringFormatSetLineAlign GDIPlus_StringFormatSetMeasurableCharacterRanges GDIPlus_TextureCreate GDIPlus_TextureCreate2 GDIPlus_TextureCreateIA GetIP GUICtrlAVI_Close GUICtrlAVI_Create GUICtrlAVI_Destroy GUICtrlAVI_IsPlaying GUICtrlAVI_Open GUICtrlAVI_OpenEx GUICtrlAVI_Play GUICtrlAVI_Seek GUICtrlAVI_Show GUICtrlAVI_Stop GUICtrlButton_Click GUICtrlButton_Create GUICtrlButton_Destroy GUICtrlButton_Enable GUICtrlButton_GetCheck GUICtrlButton_GetFocus GUICtrlButton_GetIdealSize GUICtrlButton_GetImage GUICtrlButton_GetImageList GUICtrlButton_GetNote GUICtrlButton_GetNoteLength GUICtrlButton_GetSplitInfo GUICtrlButton_GetState GUICtrlButton_GetText GUICtrlButton_GetTextMargin GUICtrlButton_SetCheck GUICtrlButton_SetDontClick GUICtrlButton_SetFocus GUICtrlButton_SetImage GUICtrlButton_SetImageList GUICtrlButton_SetNote GUICtrlButton_SetShield GUICtrlButton_SetSize GUICtrlButton_SetSplitInfo GUICtrlButton_SetState GUICtrlButton_SetStyle GUICtrlButton_SetText GUICtrlButton_SetTextMargin GUICtrlButton_Show GUICtrlComboBoxEx_AddDir GUICtrlComboBoxEx_AddString GUICtrlComboBoxEx_BeginUpdate GUICtrlComboBoxEx_Create GUICtrlComboBoxEx_CreateSolidBitMap GUICtrlComboBoxEx_DeleteString GUICtrlComboBoxEx_Destroy GUICtrlComboBoxEx_EndUpdate GUICtrlComboBoxEx_FindStringExact GUICtrlComboBoxEx_GetComboBoxInfo GUICtrlComboBoxEx_GetComboControl GUICtrlComboBoxEx_GetCount GUICtrlComboBoxEx_GetCurSel GUICtrlComboBoxEx_GetDroppedControlRect GUICtrlComboBoxEx_GetDroppedControlRectEx GUICtrlComboBoxEx_GetDroppedState GUICtrlComboBoxEx_GetDroppedWidth GUICtrlComboBoxEx_GetEditControl GUICtrlComboBoxEx_GetEditSel GUICtrlComboBoxEx_GetEditText GUICtrlComboBoxEx_GetExtendedStyle GUICtrlComboBoxEx_GetExtendedUI GUICtrlComboBoxEx_GetImageList GUICtrlComboBoxEx_GetItem GUICtrlComboBoxEx_GetItemEx GUICtrlComboBoxEx_GetItemHeight GUICtrlComboBoxEx_GetItemImage GUICtrlComboBoxEx_GetItemIndent GUICtrlComboBoxEx_GetItemOverlayImage GUICtrlComboBoxEx_GetItemParam GUICtrlComboBoxEx_GetItemSelectedImage GUICtrlComboBoxEx_GetItemText GUICtrlComboBoxEx_GetItemTextLen GUICtrlComboBoxEx_GetList GUICtrlComboBoxEx_GetListArray GUICtrlComboBoxEx_GetLocale GUICtrlComboBoxEx_GetLocaleCountry GUICtrlComboBoxEx_GetLocaleLang GUICtrlComboBoxEx_GetLocalePrimLang GUICtrlComboBoxEx_GetLocaleSubLang GUICtrlComboBoxEx_GetMinVisible GUICtrlComboBoxEx_GetTopIndex GUICtrlComboBoxEx_GetUnicode GUICtrlComboBoxEx_InitStorage GUICtrlComboBoxEx_InsertString GUICtrlComboBoxEx_LimitText GUICtrlComboBoxEx_ReplaceEditSel GUICtrlComboBoxEx_ResetContent GUICtrlComboBoxEx_SetCurSel GUICtrlComboBoxEx_SetDroppedWidth GUICtrlComboBoxEx_SetEditSel GUICtrlComboBoxEx_SetEditText GUICtrlComboBoxEx_SetExtendedStyle GUICtrlComboBoxEx_SetExtendedUI GUICtrlComboBoxEx_SetImageList GUICtrlComboBoxEx_SetItem GUICtrlComboBoxEx_SetItemEx GUICtrlComboBoxEx_SetItemHeight GUICtrlComboBoxEx_SetItemImage GUICtrlComboBoxEx_SetItemIndent GUICtrlComboBoxEx_SetItemOverlayImage GUICtrlComboBoxEx_SetItemParam GUICtrlComboBoxEx_SetItemSelectedImage GUICtrlComboBoxEx_SetMinVisible GUICtrlComboBoxEx_SetTopIndex GUICtrlComboBoxEx_SetUnicode GUICtrlComboBoxEx_ShowDropDown GUICtrlComboBox_AddDir GUICtrlComboBox_AddString GUICtrlComboBox_AutoComplete GUICtrlComboBox_BeginUpdate GUICtrlComboBox_Create GUICtrlComboBox_DeleteString GUICtrlComboBox_Destroy GUICtrlComboBox_EndUpdate GUICtrlComboBox_FindString GUICtrlComboBox_FindStringExact GUICtrlComboBox_GetComboBoxInfo GUICtrlComboBox_GetCount GUICtrlComboBox_GetCueBanner GUICtrlComboBox_GetCurSel GUICtrlComboBox_GetDroppedControlRect GUICtrlComboBox_GetDroppedControlRectEx GUICtrlComboBox_GetDroppedState GUICtrlComboBox_GetDroppedWidth GUICtrlComboBox_GetEditSel GUICtrlComboBox_GetEditText GUICtrlComboBox_GetExtendedUI GUICtrlComboBox_GetHorizontalExtent GUICtrlComboBox_GetItemHeight GUICtrlComboBox_GetLBText GUICtrlComboBox_GetLBTextLen GUICtrlComboBox_GetList GUICtrlComboBox_GetListArray GUICtrlComboBox_GetLocale GUICtrlComboBox_GetLocaleCountry GUICtrlComboBox_GetLocaleLang GUICtrlComboBox_GetLocalePrimLang GUICtrlComboBox_GetLocaleSubLang GUICtrlComboBox_GetMinVisible GUICtrlComboBox_GetTopIndex GUICtrlComboBox_InitStorage GUICtrlComboBox_InsertString GUICtrlComboBox_LimitText GUICtrlComboBox_ReplaceEditSel GUICtrlComboBox_ResetContent GUICtrlComboBox_SelectString GUICtrlComboBox_SetCueBanner GUICtrlComboBox_SetCurSel GUICtrlComboBox_SetDroppedWidth GUICtrlComboBox_SetEditSel GUICtrlComboBox_SetEditText GUICtrlComboBox_SetExtendedUI GUICtrlComboBox_SetHorizontalExtent GUICtrlComboBox_SetItemHeight GUICtrlComboBox_SetMinVisible GUICtrlComboBox_SetTopIndex GUICtrlComboBox_ShowDropDown GUICtrlDTP_Create GUICtrlDTP_Destroy GUICtrlDTP_GetMCColor GUICtrlDTP_GetMCFont GUICtrlDTP_GetMonthCal GUICtrlDTP_GetRange GUICtrlDTP_GetRangeEx GUICtrlDTP_GetSystemTime GUICtrlDTP_GetSystemTimeEx GUICtrlDTP_SetFormat GUICtrlDTP_SetMCColor GUICtrlDTP_SetMCFont GUICtrlDTP_SetRange GUICtrlDTP_SetRangeEx GUICtrlDTP_SetSystemTime GUICtrlDTP_SetSystemTimeEx GUICtrlEdit_AppendText GUICtrlEdit_BeginUpdate GUICtrlEdit_CanUndo GUICtrlEdit_CharFromPos GUICtrlEdit_Create GUICtrlEdit_Destroy GUICtrlEdit_EmptyUndoBuffer GUICtrlEdit_EndUpdate GUICtrlEdit_Find GUICtrlEdit_FmtLines GUICtrlEdit_GetCueBanner GUICtrlEdit_GetFirstVisibleLine GUICtrlEdit_GetLimitText GUICtrlEdit_GetLine GUICtrlEdit_GetLineCount GUICtrlEdit_GetMargins GUICtrlEdit_GetModify GUICtrlEdit_GetPasswordChar GUICtrlEdit_GetRECT GUICtrlEdit_GetRECTEx GUICtrlEdit_GetSel GUICtrlEdit_GetText GUICtrlEdit_GetTextLen GUICtrlEdit_HideBalloonTip GUICtrlEdit_InsertText GUICtrlEdit_LineFromChar GUICtrlEdit_LineIndex GUICtrlEdit_LineLength GUICtrlEdit_LineScroll GUICtrlEdit_PosFromChar GUICtrlEdit_ReplaceSel GUICtrlEdit_Scroll GUICtrlEdit_SetCueBanner GUICtrlEdit_SetLimitText GUICtrlEdit_SetMargins GUICtrlEdit_SetModify GUICtrlEdit_SetPasswordChar GUICtrlEdit_SetReadOnly GUICtrlEdit_SetRECT GUICtrlEdit_SetRECTEx GUICtrlEdit_SetRECTNP GUICtrlEdit_SetRectNPEx GUICtrlEdit_SetSel GUICtrlEdit_SetTabStops GUICtrlEdit_SetText GUICtrlEdit_ShowBalloonTip GUICtrlEdit_Undo GUICtrlHeader_AddItem GUICtrlHeader_ClearFilter GUICtrlHeader_ClearFilterAll GUICtrlHeader_Create GUICtrlHeader_CreateDragImage GUICtrlHeader_DeleteItem GUICtrlHeader_Destroy GUICtrlHeader_EditFilter GUICtrlHeader_GetBitmapMargin GUICtrlHeader_GetImageList GUICtrlHeader_GetItem GUICtrlHeader_GetItemAlign GUICtrlHeader_GetItemBitmap GUICtrlHeader_GetItemCount GUICtrlHeader_GetItemDisplay GUICtrlHeader_GetItemFlags GUICtrlHeader_GetItemFormat GUICtrlHeader_GetItemImage GUICtrlHeader_GetItemOrder GUICtrlHeader_GetItemParam GUICtrlHeader_GetItemRect GUICtrlHeader_GetItemRectEx GUICtrlHeader_GetItemText GUICtrlHeader_GetItemWidth GUICtrlHeader_GetOrderArray GUICtrlHeader_GetUnicodeFormat GUICtrlHeader_HitTest GUICtrlHeader_InsertItem GUICtrlHeader_Layout GUICtrlHeader_OrderToIndex GUICtrlHeader_SetBitmapMargin GUICtrlHeader_SetFilterChangeTimeout GUICtrlHeader_SetHotDivider GUICtrlHeader_SetImageList GUICtrlHeader_SetItem GUICtrlHeader_SetItemAlign GUICtrlHeader_SetItemBitmap GUICtrlHeader_SetItemDisplay GUICtrlHeader_SetItemFlags GUICtrlHeader_SetItemFormat GUICtrlHeader_SetItemImage GUICtrlHeader_SetItemOrder GUICtrlHeader_SetItemParam GUICtrlHeader_SetItemText GUICtrlHeader_SetItemWidth GUICtrlHeader_SetOrderArray GUICtrlHeader_SetUnicodeFormat GUICtrlIpAddress_ClearAddress GUICtrlIpAddress_Create GUICtrlIpAddress_Destroy GUICtrlIpAddress_Get GUICtrlIpAddress_GetArray GUICtrlIpAddress_GetEx GUICtrlIpAddress_IsBlank GUICtrlIpAddress_Set GUICtrlIpAddress_SetArray GUICtrlIpAddress_SetEx GUICtrlIpAddress_SetFocus GUICtrlIpAddress_SetFont GUICtrlIpAddress_SetRange GUICtrlIpAddress_ShowHide GUICtrlListBox_AddFile GUICtrlListBox_AddString GUICtrlListBox_BeginUpdate GUICtrlListBox_ClickItem GUICtrlListBox_Create GUICtrlListBox_DeleteString GUICtrlListBox_Destroy GUICtrlListBox_Dir GUICtrlListBox_EndUpdate GUICtrlListBox_FindInText GUICtrlListBox_FindString GUICtrlListBox_GetAnchorIndex GUICtrlListBox_GetCaretIndex GUICtrlListBox_GetCount GUICtrlListBox_GetCurSel GUICtrlListBox_GetHorizontalExtent GUICtrlListBox_GetItemData GUICtrlListBox_GetItemHeight GUICtrlListBox_GetItemRect GUICtrlListBox_GetItemRectEx GUICtrlListBox_GetListBoxInfo GUICtrlListBox_GetLocale GUICtrlListBox_GetLocaleCountry GUICtrlListBox_GetLocaleLang GUICtrlListBox_GetLocalePrimLang GUICtrlListBox_GetLocaleSubLang GUICtrlListBox_GetSel GUICtrlListBox_GetSelCount GUICtrlListBox_GetSelItems GUICtrlListBox_GetSelItemsText GUICtrlListBox_GetText GUICtrlListBox_GetTextLen GUICtrlListBox_GetTopIndex GUICtrlListBox_InitStorage GUICtrlListBox_InsertString GUICtrlListBox_ItemFromPoint GUICtrlListBox_ReplaceString GUICtrlListBox_ResetContent GUICtrlListBox_SelectString GUICtrlListBox_SelItemRange GUICtrlListBox_SelItemRangeEx GUICtrlListBox_SetAnchorIndex GUICtrlListBox_SetCaretIndex GUICtrlListBox_SetColumnWidth GUICtrlListBox_SetCurSel GUICtrlListBox_SetHorizontalExtent GUICtrlListBox_SetItemData GUICtrlListBox_SetItemHeight GUICtrlListBox_SetLocale GUICtrlListBox_SetSel GUICtrlListBox_SetTabStops GUICtrlListBox_SetTopIndex GUICtrlListBox_Sort GUICtrlListBox_SwapString GUICtrlListBox_UpdateHScroll GUICtrlListView_AddArray GUICtrlListView_AddColumn GUICtrlListView_AddItem GUICtrlListView_AddSubItem GUICtrlListView_ApproximateViewHeight GUICtrlListView_ApproximateViewRect GUICtrlListView_ApproximateViewWidth GUICtrlListView_Arrange GUICtrlListView_BeginUpdate GUICtrlListView_CancelEditLabel GUICtrlListView_ClickItem GUICtrlListView_CopyItems GUICtrlListView_Create GUICtrlListView_CreateDragImage GUICtrlListView_CreateSolidBitMap GUICtrlListView_DeleteAllItems GUICtrlListView_DeleteColumn GUICtrlListView_DeleteItem GUICtrlListView_DeleteItemsSelected GUICtrlListView_Destroy GUICtrlListView_DrawDragImage GUICtrlListView_EditLabel GUICtrlListView_EnableGroupView GUICtrlListView_EndUpdate GUICtrlListView_EnsureVisible GUICtrlListView_FindInText GUICtrlListView_FindItem GUICtrlListView_FindNearest GUICtrlListView_FindParam GUICtrlListView_FindText GUICtrlListView_GetBkColor GUICtrlListView_GetBkImage GUICtrlListView_GetCallbackMask GUICtrlListView_GetColumn GUICtrlListView_GetColumnCount GUICtrlListView_GetColumnOrder GUICtrlListView_GetColumnOrderArray GUICtrlListView_GetColumnWidth GUICtrlListView_GetCounterPage GUICtrlListView_GetEditControl GUICtrlListView_GetExtendedListViewStyle GUICtrlListView_GetFocusedGroup GUICtrlListView_GetGroupCount GUICtrlListView_GetGroupInfo GUICtrlListView_GetGroupInfoByIndex GUICtrlListView_GetGroupRect GUICtrlListView_GetGroupViewEnabled GUICtrlListView_GetHeader GUICtrlListView_GetHotCursor GUICtrlListView_GetHotItem GUICtrlListView_GetHoverTime GUICtrlListView_GetImageList GUICtrlListView_GetISearchString GUICtrlListView_GetItem GUICtrlListView_GetItemChecked GUICtrlListView_GetItemCount GUICtrlListView_GetItemCut GUICtrlListView_GetItemDropHilited GUICtrlListView_GetItemEx GUICtrlListView_GetItemFocused GUICtrlListView_GetItemGroupID GUICtrlListView_GetItemImage GUICtrlListView_GetItemIndent GUICtrlListView_GetItemParam GUICtrlListView_GetItemPosition GUICtrlListView_GetItemPositionX GUICtrlListView_GetItemPositionY GUICtrlListView_GetItemRect GUICtrlListView_GetItemRectEx GUICtrlListView_GetItemSelected GUICtrlListView_GetItemSpacing GUICtrlListView_GetItemSpacingX GUICtrlListView_GetItemSpacingY GUICtrlListView_GetItemState GUICtrlListView_GetItemStateImage GUICtrlListView_GetItemText GUICtrlListView_GetItemTextArray GUICtrlListView_GetItemTextString GUICtrlListView_GetNextItem GUICtrlListView_GetNumberOfWorkAreas GUICtrlListView_GetOrigin GUICtrlListView_GetOriginX GUICtrlListView_GetOriginY GUICtrlListView_GetOutlineColor GUICtrlListView_GetSelectedColumn GUICtrlListView_GetSelectedCount GUICtrlListView_GetSelectedIndices GUICtrlListView_GetSelectionMark GUICtrlListView_GetStringWidth GUICtrlListView_GetSubItemRect GUICtrlListView_GetTextBkColor GUICtrlListView_GetTextColor GUICtrlListView_GetToolTips GUICtrlListView_GetTopIndex GUICtrlListView_GetUnicodeFormat GUICtrlListView_GetView GUICtrlListView_GetViewDetails GUICtrlListView_GetViewLarge GUICtrlListView_GetViewList GUICtrlListView_GetViewRect GUICtrlListView_GetViewSmall GUICtrlListView_GetViewTile GUICtrlListView_HideColumn GUICtrlListView_HitTest GUICtrlListView_InsertColumn GUICtrlListView_InsertGroup GUICtrlListView_InsertItem GUICtrlListView_JustifyColumn GUICtrlListView_MapIDToIndex GUICtrlListView_MapIndexToID GUICtrlListView_RedrawItems GUICtrlListView_RegisterSortCallBack GUICtrlListView_RemoveAllGroups GUICtrlListView_RemoveGroup GUICtrlListView_Scroll GUICtrlListView_SetBkColor GUICtrlListView_SetBkImage GUICtrlListView_SetCallBackMask GUICtrlListView_SetColumn GUICtrlListView_SetColumnOrder GUICtrlListView_SetColumnOrderArray GUICtrlListView_SetColumnWidth GUICtrlListView_SetExtendedListViewStyle GUICtrlListView_SetGroupInfo GUICtrlListView_SetHotItem GUICtrlListView_SetHoverTime GUICtrlListView_SetIconSpacing GUICtrlListView_SetImageList GUICtrlListView_SetItem GUICtrlListView_SetItemChecked GUICtrlListView_SetItemCount GUICtrlListView_SetItemCut GUICtrlListView_SetItemDropHilited GUICtrlListView_SetItemEx GUICtrlListView_SetItemFocused GUICtrlListView_SetItemGroupID GUICtrlListView_SetItemImage GUICtrlListView_SetItemIndent GUICtrlListView_SetItemParam GUICtrlListView_SetItemPosition GUICtrlListView_SetItemPosition32 GUICtrlListView_SetItemSelected GUICtrlListView_SetItemState GUICtrlListView_SetItemStateImage GUICtrlListView_SetItemText GUICtrlListView_SetOutlineColor GUICtrlListView_SetSelectedColumn GUICtrlListView_SetSelectionMark GUICtrlListView_SetTextBkColor GUICtrlListView_SetTextColor GUICtrlListView_SetToolTips GUICtrlListView_SetUnicodeFormat GUICtrlListView_SetView GUICtrlListView_SetWorkAreas GUICtrlListView_SimpleSort GUICtrlListView_SortItems GUICtrlListView_SubItemHitTest GUICtrlListView_UnRegisterSortCallBack GUICtrlMenu_AddMenuItem GUICtrlMenu_AppendMenu GUICtrlMenu_CalculatePopupWindowPosition GUICtrlMenu_CheckMenuItem GUICtrlMenu_CheckRadioItem GUICtrlMenu_CreateMenu GUICtrlMenu_CreatePopup GUICtrlMenu_DeleteMenu GUICtrlMenu_DestroyMenu GUICtrlMenu_DrawMenuBar GUICtrlMenu_EnableMenuItem GUICtrlMenu_FindItem GUICtrlMenu_FindParent GUICtrlMenu_GetItemBmp GUICtrlMenu_GetItemBmpChecked GUICtrlMenu_GetItemBmpUnchecked GUICtrlMenu_GetItemChecked GUICtrlMenu_GetItemCount GUICtrlMenu_GetItemData GUICtrlMenu_GetItemDefault GUICtrlMenu_GetItemDisabled GUICtrlMenu_GetItemEnabled GUICtrlMenu_GetItemGrayed GUICtrlMenu_GetItemHighlighted GUICtrlMenu_GetItemID GUICtrlMenu_GetItemInfo GUICtrlMenu_GetItemRect GUICtrlMenu_GetItemRectEx GUICtrlMenu_GetItemState GUICtrlMenu_GetItemStateEx GUICtrlMenu_GetItemSubMenu GUICtrlMenu_GetItemText GUICtrlMenu_GetItemType GUICtrlMenu_GetMenu GUICtrlMenu_GetMenuBackground GUICtrlMenu_GetMenuBarInfo GUICtrlMenu_GetMenuContextHelpID GUICtrlMenu_GetMenuData GUICtrlMenu_GetMenuDefaultItem GUICtrlMenu_GetMenuHeight GUICtrlMenu_GetMenuInfo GUICtrlMenu_GetMenuStyle GUICtrlMenu_GetSystemMenu GUICtrlMenu_InsertMenuItem GUICtrlMenu_InsertMenuItemEx GUICtrlMenu_IsMenu GUICtrlMenu_LoadMenu GUICtrlMenu_MapAccelerator GUICtrlMenu_MenuItemFromPoint GUICtrlMenu_RemoveMenu GUICtrlMenu_SetItemBitmaps GUICtrlMenu_SetItemBmp GUICtrlMenu_SetItemBmpChecked GUICtrlMenu_SetItemBmpUnchecked GUICtrlMenu_SetItemChecked GUICtrlMenu_SetItemData GUICtrlMenu_SetItemDefault GUICtrlMenu_SetItemDisabled GUICtrlMenu_SetItemEnabled GUICtrlMenu_SetItemGrayed GUICtrlMenu_SetItemHighlighted GUICtrlMenu_SetItemID GUICtrlMenu_SetItemInfo GUICtrlMenu_SetItemState GUICtrlMenu_SetItemSubMenu GUICtrlMenu_SetItemText GUICtrlMenu_SetItemType GUICtrlMenu_SetMenu GUICtrlMenu_SetMenuBackground GUICtrlMenu_SetMenuContextHelpID GUICtrlMenu_SetMenuData GUICtrlMenu_SetMenuDefaultItem GUICtrlMenu_SetMenuHeight GUICtrlMenu_SetMenuInfo GUICtrlMenu_SetMenuStyle GUICtrlMenu_TrackPopupMenu GUICtrlMonthCal_Create GUICtrlMonthCal_Destroy GUICtrlMonthCal_GetCalendarBorder GUICtrlMonthCal_GetCalendarCount GUICtrlMonthCal_GetColor GUICtrlMonthCal_GetColorArray GUICtrlMonthCal_GetCurSel GUICtrlMonthCal_GetCurSelStr GUICtrlMonthCal_GetFirstDOW GUICtrlMonthCal_GetFirstDOWStr GUICtrlMonthCal_GetMaxSelCount GUICtrlMonthCal_GetMaxTodayWidth GUICtrlMonthCal_GetMinReqHeight GUICtrlMonthCal_GetMinReqRect GUICtrlMonthCal_GetMinReqRectArray GUICtrlMonthCal_GetMinReqWidth GUICtrlMonthCal_GetMonthDelta GUICtrlMonthCal_GetMonthRange GUICtrlMonthCal_GetMonthRangeMax GUICtrlMonthCal_GetMonthRangeMaxStr GUICtrlMonthCal_GetMonthRangeMin GUICtrlMonthCal_GetMonthRangeMinStr GUICtrlMonthCal_GetMonthRangeSpan GUICtrlMonthCal_GetRange GUICtrlMonthCal_GetRangeMax GUICtrlMonthCal_GetRangeMaxStr GUICtrlMonthCal_GetRangeMin GUICtrlMonthCal_GetRangeMinStr GUICtrlMonthCal_GetSelRange GUICtrlMonthCal_GetSelRangeMax GUICtrlMonthCal_GetSelRangeMaxStr GUICtrlMonthCal_GetSelRangeMin GUICtrlMonthCal_GetSelRangeMinStr GUICtrlMonthCal_GetToday GUICtrlMonthCal_GetTodayStr GUICtrlMonthCal_GetUnicodeFormat GUICtrlMonthCal_HitTest GUICtrlMonthCal_SetCalendarBorder GUICtrlMonthCal_SetColor GUICtrlMonthCal_SetCurSel GUICtrlMonthCal_SetDayState GUICtrlMonthCal_SetFirstDOW GUICtrlMonthCal_SetMaxSelCount GUICtrlMonthCal_SetMonthDelta GUICtrlMonthCal_SetRange GUICtrlMonthCal_SetSelRange GUICtrlMonthCal_SetToday GUICtrlMonthCal_SetUnicodeFormat GUICtrlRebar_AddBand GUICtrlRebar_AddToolBarBand GUICtrlRebar_BeginDrag GUICtrlRebar_Create GUICtrlRebar_DeleteBand GUICtrlRebar_Destroy GUICtrlRebar_DragMove GUICtrlRebar_EndDrag GUICtrlRebar_GetBandBackColor GUICtrlRebar_GetBandBorders GUICtrlRebar_GetBandBordersEx GUICtrlRebar_GetBandChildHandle GUICtrlRebar_GetBandChildSize GUICtrlRebar_GetBandCount GUICtrlRebar_GetBandForeColor GUICtrlRebar_GetBandHeaderSize GUICtrlRebar_GetBandID GUICtrlRebar_GetBandIdealSize GUICtrlRebar_GetBandLength GUICtrlRebar_GetBandLParam GUICtrlRebar_GetBandMargins GUICtrlRebar_GetBandMarginsEx GUICtrlRebar_GetBandRect GUICtrlRebar_GetBandRectEx GUICtrlRebar_GetBandStyle GUICtrlRebar_GetBandStyleBreak GUICtrlRebar_GetBandStyleChildEdge GUICtrlRebar_GetBandStyleFixedBMP GUICtrlRebar_GetBandStyleFixedSize GUICtrlRebar_GetBandStyleGripperAlways GUICtrlRebar_GetBandStyleHidden GUICtrlRebar_GetBandStyleHideTitle GUICtrlRebar_GetBandStyleNoGripper GUICtrlRebar_GetBandStyleTopAlign GUICtrlRebar_GetBandStyleUseChevron GUICtrlRebar_GetBandStyleVariableHeight GUICtrlRebar_GetBandText GUICtrlRebar_GetBarHeight GUICtrlRebar_GetBarInfo GUICtrlRebar_GetBKColor GUICtrlRebar_GetColorScheme GUICtrlRebar_GetRowCount GUICtrlRebar_GetRowHeight GUICtrlRebar_GetTextColor GUICtrlRebar_GetToolTips GUICtrlRebar_GetUnicodeFormat GUICtrlRebar_HitTest GUICtrlRebar_IDToIndex GUICtrlRebar_MaximizeBand GUICtrlRebar_MinimizeBand GUICtrlRebar_MoveBand GUICtrlRebar_SetBandBackColor GUICtrlRebar_SetBandForeColor GUICtrlRebar_SetBandHeaderSize GUICtrlRebar_SetBandID GUICtrlRebar_SetBandIdealSize GUICtrlRebar_SetBandLength GUICtrlRebar_SetBandLParam GUICtrlRebar_SetBandStyle GUICtrlRebar_SetBandStyleBreak GUICtrlRebar_SetBandStyleChildEdge GUICtrlRebar_SetBandStyleFixedBMP GUICtrlRebar_SetBandStyleFixedSize GUICtrlRebar_SetBandStyleGripperAlways GUICtrlRebar_SetBandStyleHidden GUICtrlRebar_SetBandStyleHideTitle GUICtrlRebar_SetBandStyleNoGripper GUICtrlRebar_SetBandStyleTopAlign GUICtrlRebar_SetBandStyleUseChevron GUICtrlRebar_SetBandStyleVariableHeight GUICtrlRebar_SetBandText GUICtrlRebar_SetBarInfo GUICtrlRebar_SetBKColor GUICtrlRebar_SetColorScheme GUICtrlRebar_SetTextColor GUICtrlRebar_SetToolTips GUICtrlRebar_SetUnicodeFormat GUICtrlRebar_ShowBand GUICtrlRichEdit_AppendText GUICtrlRichEdit_AutoDetectURL GUICtrlRichEdit_CanPaste GUICtrlRichEdit_CanPasteSpecial GUICtrlRichEdit_CanRedo GUICtrlRichEdit_CanUndo GUICtrlRichEdit_ChangeFontSize GUICtrlRichEdit_Copy GUICtrlRichEdit_Create GUICtrlRichEdit_Cut GUICtrlRichEdit_Deselect GUICtrlRichEdit_Destroy GUICtrlRichEdit_EmptyUndoBuffer GUICtrlRichEdit_FindText GUICtrlRichEdit_FindTextInRange GUICtrlRichEdit_GetBkColor GUICtrlRichEdit_GetCharAttributes GUICtrlRichEdit_GetCharBkColor GUICtrlRichEdit_GetCharColor GUICtrlRichEdit_GetCharPosFromXY GUICtrlRichEdit_GetCharPosOfNextWord GUICtrlRichEdit_GetCharPosOfPreviousWord GUICtrlRichEdit_GetCharWordBreakInfo GUICtrlRichEdit_GetFirstCharPosOnLine GUICtrlRichEdit_GetFont GUICtrlRichEdit_GetLineCount GUICtrlRichEdit_GetLineLength GUICtrlRichEdit_GetLineNumberFromCharPos GUICtrlRichEdit_GetNextRedo GUICtrlRichEdit_GetNextUndo GUICtrlRichEdit_GetNumberOfFirstVisibleLine GUICtrlRichEdit_GetParaAlignment GUICtrlRichEdit_GetParaAttributes GUICtrlRichEdit_GetParaBorder GUICtrlRichEdit_GetParaIndents GUICtrlRichEdit_GetParaNumbering GUICtrlRichEdit_GetParaShading GUICtrlRichEdit_GetParaSpacing GUICtrlRichEdit_GetParaTabStops GUICtrlRichEdit_GetPasswordChar GUICtrlRichEdit_GetRECT GUICtrlRichEdit_GetScrollPos GUICtrlRichEdit_GetSel GUICtrlRichEdit_GetSelAA GUICtrlRichEdit_GetSelText GUICtrlRichEdit_GetSpaceUnit GUICtrlRichEdit_GetText GUICtrlRichEdit_GetTextInLine GUICtrlRichEdit_GetTextInRange GUICtrlRichEdit_GetTextLength GUICtrlRichEdit_GetVersion GUICtrlRichEdit_GetXYFromCharPos GUICtrlRichEdit_GetZoom GUICtrlRichEdit_GotoCharPos GUICtrlRichEdit_HideSelection GUICtrlRichEdit_InsertText GUICtrlRichEdit_IsModified GUICtrlRichEdit_IsTextSelected GUICtrlRichEdit_Paste GUICtrlRichEdit_PasteSpecial GUICtrlRichEdit_PauseRedraw GUICtrlRichEdit_Redo GUICtrlRichEdit_ReplaceText GUICtrlRichEdit_ResumeRedraw GUICtrlRichEdit_ScrollLineOrPage GUICtrlRichEdit_ScrollLines GUICtrlRichEdit_ScrollToCaret GUICtrlRichEdit_SetBkColor GUICtrlRichEdit_SetCharAttributes GUICtrlRichEdit_SetCharBkColor GUICtrlRichEdit_SetCharColor GUICtrlRichEdit_SetEventMask GUICtrlRichEdit_SetFont GUICtrlRichEdit_SetLimitOnText GUICtrlRichEdit_SetModified GUICtrlRichEdit_SetParaAlignment GUICtrlRichEdit_SetParaAttributes GUICtrlRichEdit_SetParaBorder GUICtrlRichEdit_SetParaIndents GUICtrlRichEdit_SetParaNumbering GUICtrlRichEdit_SetParaShading GUICtrlRichEdit_SetParaSpacing GUICtrlRichEdit_SetParaTabStops GUICtrlRichEdit_SetPasswordChar GUICtrlRichEdit_SetReadOnly GUICtrlRichEdit_SetRECT GUICtrlRichEdit_SetScrollPos GUICtrlRichEdit_SetSel GUICtrlRichEdit_SetSpaceUnit GUICtrlRichEdit_SetTabStops GUICtrlRichEdit_SetText GUICtrlRichEdit_SetUndoLimit GUICtrlRichEdit_SetZoom GUICtrlRichEdit_StreamFromFile GUICtrlRichEdit_StreamFromVar GUICtrlRichEdit_StreamToFile GUICtrlRichEdit_StreamToVar GUICtrlRichEdit_Undo GUICtrlSlider_ClearSel GUICtrlSlider_ClearTics GUICtrlSlider_Create GUICtrlSlider_Destroy GUICtrlSlider_GetBuddy GUICtrlSlider_GetChannelRect GUICtrlSlider_GetChannelRectEx GUICtrlSlider_GetLineSize GUICtrlSlider_GetLogicalTics GUICtrlSlider_GetNumTics GUICtrlSlider_GetPageSize GUICtrlSlider_GetPos GUICtrlSlider_GetRange GUICtrlSlider_GetRangeMax GUICtrlSlider_GetRangeMin GUICtrlSlider_GetSel GUICtrlSlider_GetSelEnd GUICtrlSlider_GetSelStart GUICtrlSlider_GetThumbLength GUICtrlSlider_GetThumbRect GUICtrlSlider_GetThumbRectEx GUICtrlSlider_GetTic GUICtrlSlider_GetTicPos GUICtrlSlider_GetToolTips GUICtrlSlider_GetUnicodeFormat GUICtrlSlider_SetBuddy GUICtrlSlider_SetLineSize GUICtrlSlider_SetPageSize GUICtrlSlider_SetPos GUICtrlSlider_SetRange GUICtrlSlider_SetRangeMax GUICtrlSlider_SetRangeMin GUICtrlSlider_SetSel GUICtrlSlider_SetSelEnd GUICtrlSlider_SetSelStart GUICtrlSlider_SetThumbLength GUICtrlSlider_SetTic GUICtrlSlider_SetTicFreq GUICtrlSlider_SetTipSide GUICtrlSlider_SetToolTips GUICtrlSlider_SetUnicodeFormat GUICtrlStatusBar_Create GUICtrlStatusBar_Destroy GUICtrlStatusBar_EmbedControl GUICtrlStatusBar_GetBorders GUICtrlStatusBar_GetBordersHorz GUICtrlStatusBar_GetBordersRect GUICtrlStatusBar_GetBordersVert GUICtrlStatusBar_GetCount GUICtrlStatusBar_GetHeight GUICtrlStatusBar_GetIcon GUICtrlStatusBar_GetParts GUICtrlStatusBar_GetRect GUICtrlStatusBar_GetRectEx GUICtrlStatusBar_GetText GUICtrlStatusBar_GetTextFlags GUICtrlStatusBar_GetTextLength GUICtrlStatusBar_GetTextLengthEx GUICtrlStatusBar_GetTipText GUICtrlStatusBar_GetUnicodeFormat GUICtrlStatusBar_GetWidth GUICtrlStatusBar_IsSimple GUICtrlStatusBar_Resize GUICtrlStatusBar_SetBkColor GUICtrlStatusBar_SetIcon GUICtrlStatusBar_SetMinHeight GUICtrlStatusBar_SetParts GUICtrlStatusBar_SetSimple GUICtrlStatusBar_SetText GUICtrlStatusBar_SetTipText GUICtrlStatusBar_SetUnicodeFormat GUICtrlStatusBar_ShowHide GUICtrlTab_ActivateTab GUICtrlTab_ClickTab GUICtrlTab_Create GUICtrlTab_DeleteAllItems GUICtrlTab_DeleteItem GUICtrlTab_DeselectAll GUICtrlTab_Destroy GUICtrlTab_FindTab GUICtrlTab_GetCurFocus GUICtrlTab_GetCurSel GUICtrlTab_GetDisplayRect GUICtrlTab_GetDisplayRectEx GUICtrlTab_GetExtendedStyle GUICtrlTab_GetImageList GUICtrlTab_GetItem GUICtrlTab_GetItemCount GUICtrlTab_GetItemImage GUICtrlTab_GetItemParam GUICtrlTab_GetItemRect GUICtrlTab_GetItemRectEx GUICtrlTab_GetItemState GUICtrlTab_GetItemText GUICtrlTab_GetRowCount GUICtrlTab_GetToolTips GUICtrlTab_GetUnicodeFormat GUICtrlTab_HighlightItem GUICtrlTab_HitTest GUICtrlTab_InsertItem GUICtrlTab_RemoveImage GUICtrlTab_SetCurFocus GUICtrlTab_SetCurSel GUICtrlTab_SetExtendedStyle GUICtrlTab_SetImageList GUICtrlTab_SetItem GUICtrlTab_SetItemImage GUICtrlTab_SetItemParam GUICtrlTab_SetItemSize GUICtrlTab_SetItemState GUICtrlTab_SetItemText GUICtrlTab_SetMinTabWidth GUICtrlTab_SetPadding GUICtrlTab_SetToolTips GUICtrlTab_SetUnicodeFormat GUICtrlToolbar_AddBitmap GUICtrlToolbar_AddButton GUICtrlToolbar_AddButtonSep GUICtrlToolbar_AddString GUICtrlToolbar_ButtonCount GUICtrlToolbar_CheckButton GUICtrlToolbar_ClickAccel GUICtrlToolbar_ClickButton GUICtrlToolbar_ClickIndex GUICtrlToolbar_CommandToIndex GUICtrlToolbar_Create GUICtrlToolbar_Customize GUICtrlToolbar_DeleteButton GUICtrlToolbar_Destroy GUICtrlToolbar_EnableButton GUICtrlToolbar_FindToolbar GUICtrlToolbar_GetAnchorHighlight GUICtrlToolbar_GetBitmapFlags GUICtrlToolbar_GetButtonBitmap GUICtrlToolbar_GetButtonInfo GUICtrlToolbar_GetButtonInfoEx GUICtrlToolbar_GetButtonParam GUICtrlToolbar_GetButtonRect GUICtrlToolbar_GetButtonRectEx GUICtrlToolbar_GetButtonSize GUICtrlToolbar_GetButtonState GUICtrlToolbar_GetButtonStyle GUICtrlToolbar_GetButtonText GUICtrlToolbar_GetColorScheme GUICtrlToolbar_GetDisabledImageList GUICtrlToolbar_GetExtendedStyle GUICtrlToolbar_GetHotImageList GUICtrlToolbar_GetHotItem GUICtrlToolbar_GetImageList GUICtrlToolbar_GetInsertMark GUICtrlToolbar_GetInsertMarkColor GUICtrlToolbar_GetMaxSize GUICtrlToolbar_GetMetrics GUICtrlToolbar_GetPadding GUICtrlToolbar_GetRows GUICtrlToolbar_GetString GUICtrlToolbar_GetStyle GUICtrlToolbar_GetStyleAltDrag GUICtrlToolbar_GetStyleCustomErase GUICtrlToolbar_GetStyleFlat GUICtrlToolbar_GetStyleList GUICtrlToolbar_GetStyleRegisterDrop GUICtrlToolbar_GetStyleToolTips GUICtrlToolbar_GetStyleTransparent GUICtrlToolbar_GetStyleWrapable GUICtrlToolbar_GetTextRows GUICtrlToolbar_GetToolTips GUICtrlToolbar_GetUnicodeFormat GUICtrlToolbar_HideButton GUICtrlToolbar_HighlightButton GUICtrlToolbar_HitTest GUICtrlToolbar_IndexToCommand GUICtrlToolbar_InsertButton GUICtrlToolbar_InsertMarkHitTest GUICtrlToolbar_IsButtonChecked GUICtrlToolbar_IsButtonEnabled GUICtrlToolbar_IsButtonHidden GUICtrlToolbar_IsButtonHighlighted GUICtrlToolbar_IsButtonIndeterminate GUICtrlToolbar_IsButtonPressed GUICtrlToolbar_LoadBitmap GUICtrlToolbar_LoadImages GUICtrlToolbar_MapAccelerator GUICtrlToolbar_MoveButton GUICtrlToolbar_PressButton GUICtrlToolbar_SetAnchorHighlight GUICtrlToolbar_SetBitmapSize GUICtrlToolbar_SetButtonBitMap GUICtrlToolbar_SetButtonInfo GUICtrlToolbar_SetButtonInfoEx GUICtrlToolbar_SetButtonParam GUICtrlToolbar_SetButtonSize GUICtrlToolbar_SetButtonState GUICtrlToolbar_SetButtonStyle GUICtrlToolbar_SetButtonText GUICtrlToolbar_SetButtonWidth GUICtrlToolbar_SetCmdID GUICtrlToolbar_SetColorScheme GUICtrlToolbar_SetDisabledImageList GUICtrlToolbar_SetDrawTextFlags GUICtrlToolbar_SetExtendedStyle GUICtrlToolbar_SetHotImageList GUICtrlToolbar_SetHotItem GUICtrlToolbar_SetImageList GUICtrlToolbar_SetIndent GUICtrlToolbar_SetIndeterminate GUICtrlToolbar_SetInsertMark GUICtrlToolbar_SetInsertMarkColor GUICtrlToolbar_SetMaxTextRows GUICtrlToolbar_SetMetrics GUICtrlToolbar_SetPadding GUICtrlToolbar_SetParent GUICtrlToolbar_SetRows GUICtrlToolbar_SetStyle GUICtrlToolbar_SetStyleAltDrag GUICtrlToolbar_SetStyleCustomErase GUICtrlToolbar_SetStyleFlat GUICtrlToolbar_SetStyleList GUICtrlToolbar_SetStyleRegisterDrop GUICtrlToolbar_SetStyleToolTips GUICtrlToolbar_SetStyleTransparent GUICtrlToolbar_SetStyleWrapable GUICtrlToolbar_SetToolTips GUICtrlToolbar_SetUnicodeFormat GUICtrlToolbar_SetWindowTheme GUICtrlTreeView_Add GUICtrlTreeView_AddChild GUICtrlTreeView_AddChildFirst GUICtrlTreeView_AddFirst GUICtrlTreeView_BeginUpdate GUICtrlTreeView_ClickItem GUICtrlTreeView_Create GUICtrlTreeView_CreateDragImage GUICtrlTreeView_CreateSolidBitMap GUICtrlTreeView_Delete GUICtrlTreeView_DeleteAll GUICtrlTreeView_DeleteChildren GUICtrlTreeView_Destroy GUICtrlTreeView_DisplayRect GUICtrlTreeView_DisplayRectEx GUICtrlTreeView_EditText GUICtrlTreeView_EndEdit GUICtrlTreeView_EndUpdate GUICtrlTreeView_EnsureVisible GUICtrlTreeView_Expand GUICtrlTreeView_ExpandedOnce GUICtrlTreeView_FindItem GUICtrlTreeView_FindItemEx GUICtrlTreeView_GetBkColor GUICtrlTreeView_GetBold GUICtrlTreeView_GetChecked GUICtrlTreeView_GetChildCount GUICtrlTreeView_GetChildren GUICtrlTreeView_GetCount GUICtrlTreeView_GetCut GUICtrlTreeView_GetDropTarget GUICtrlTreeView_GetEditControl GUICtrlTreeView_GetExpanded GUICtrlTreeView_GetFirstChild GUICtrlTreeView_GetFirstItem GUICtrlTreeView_GetFirstVisible GUICtrlTreeView_GetFocused GUICtrlTreeView_GetHeight GUICtrlTreeView_GetImageIndex GUICtrlTreeView_GetImageListIconHandle GUICtrlTreeView_GetIndent GUICtrlTreeView_GetInsertMarkColor GUICtrlTreeView_GetISearchString GUICtrlTreeView_GetItemByIndex GUICtrlTreeView_GetItemHandle GUICtrlTreeView_GetItemParam GUICtrlTreeView_GetLastChild GUICtrlTreeView_GetLineColor GUICtrlTreeView_GetNext GUICtrlTreeView_GetNextChild GUICtrlTreeView_GetNextSibling GUICtrlTreeView_GetNextVisible GUICtrlTreeView_GetNormalImageList GUICtrlTreeView_GetParentHandle GUICtrlTreeView_GetParentParam GUICtrlTreeView_GetPrev GUICtrlTreeView_GetPrevChild GUICtrlTreeView_GetPrevSibling GUICtrlTreeView_GetPrevVisible GUICtrlTreeView_GetScrollTime GUICtrlTreeView_GetSelected GUICtrlTreeView_GetSelectedImageIndex GUICtrlTreeView_GetSelection GUICtrlTreeView_GetSiblingCount GUICtrlTreeView_GetState GUICtrlTreeView_GetStateImageIndex GUICtrlTreeView_GetStateImageList GUICtrlTreeView_GetText GUICtrlTreeView_GetTextColor GUICtrlTreeView_GetToolTips GUICtrlTreeView_GetTree GUICtrlTreeView_GetUnicodeFormat GUICtrlTreeView_GetVisible GUICtrlTreeView_GetVisibleCount GUICtrlTreeView_HitTest GUICtrlTreeView_HitTestEx GUICtrlTreeView_HitTestItem GUICtrlTreeView_Index GUICtrlTreeView_InsertItem GUICtrlTreeView_IsFirstItem GUICtrlTreeView_IsParent GUICtrlTreeView_Level GUICtrlTreeView_SelectItem GUICtrlTreeView_SelectItemByIndex GUICtrlTreeView_SetBkColor GUICtrlTreeView_SetBold GUICtrlTreeView_SetChecked GUICtrlTreeView_SetCheckedByIndex GUICtrlTreeView_SetChildren GUICtrlTreeView_SetCut GUICtrlTreeView_SetDropTarget GUICtrlTreeView_SetFocused GUICtrlTreeView_SetHeight GUICtrlTreeView_SetIcon GUICtrlTreeView_SetImageIndex GUICtrlTreeView_SetIndent GUICtrlTreeView_SetInsertMark GUICtrlTreeView_SetInsertMarkColor GUICtrlTreeView_SetItemHeight GUICtrlTreeView_SetItemParam GUICtrlTreeView_SetLineColor GUICtrlTreeView_SetNormalImageList GUICtrlTreeView_SetScrollTime GUICtrlTreeView_SetSelected GUICtrlTreeView_SetSelectedImageIndex GUICtrlTreeView_SetState GUICtrlTreeView_SetStateImageIndex GUICtrlTreeView_SetStateImageList GUICtrlTreeView_SetText GUICtrlTreeView_SetTextColor GUICtrlTreeView_SetToolTips GUICtrlTreeView_SetUnicodeFormat GUICtrlTreeView_Sort GUIImageList_Add GUIImageList_AddBitmap GUIImageList_AddIcon GUIImageList_AddMasked GUIImageList_BeginDrag GUIImageList_Copy GUIImageList_Create GUIImageList_Destroy GUIImageList_DestroyIcon GUIImageList_DragEnter GUIImageList_DragLeave GUIImageList_DragMove GUIImageList_Draw GUIImageList_DrawEx GUIImageList_Duplicate GUIImageList_EndDrag GUIImageList_GetBkColor GUIImageList_GetIcon GUIImageList_GetIconHeight GUIImageList_GetIconSize GUIImageList_GetIconSizeEx GUIImageList_GetIconWidth GUIImageList_GetImageCount GUIImageList_GetImageInfoEx GUIImageList_Remove GUIImageList_ReplaceIcon GUIImageList_SetBkColor GUIImageList_SetIconSize GUIImageList_SetImageCount GUIImageList_Swap GUIScrollBars_EnableScrollBar GUIScrollBars_GetScrollBarInfoEx GUIScrollBars_GetScrollBarRect GUIScrollBars_GetScrollBarRGState GUIScrollBars_GetScrollBarXYLineButton GUIScrollBars_GetScrollBarXYThumbBottom GUIScrollBars_GetScrollBarXYThumbTop GUIScrollBars_GetScrollInfo GUIScrollBars_GetScrollInfoEx GUIScrollBars_GetScrollInfoMax GUIScrollBars_GetScrollInfoMin GUIScrollBars_GetScrollInfoPage GUIScrollBars_GetScrollInfoPos GUIScrollBars_GetScrollInfoTrackPos GUIScrollBars_GetScrollPos GUIScrollBars_GetScrollRange GUIScrollBars_Init GUIScrollBars_ScrollWindow GUIScrollBars_SetScrollInfo GUIScrollBars_SetScrollInfoMax GUIScrollBars_SetScrollInfoMin GUIScrollBars_SetScrollInfoPage GUIScrollBars_SetScrollInfoPos GUIScrollBars_SetScrollRange GUIScrollBars_ShowScrollBar GUIToolTip_Activate GUIToolTip_AddTool GUIToolTip_AdjustRect GUIToolTip_BitsToTTF GUIToolTip_Create GUIToolTip_Deactivate GUIToolTip_DelTool GUIToolTip_Destroy GUIToolTip_EnumTools GUIToolTip_GetBubbleHeight GUIToolTip_GetBubbleSize GUIToolTip_GetBubbleWidth GUIToolTip_GetCurrentTool GUIToolTip_GetDelayTime GUIToolTip_GetMargin GUIToolTip_GetMarginEx GUIToolTip_GetMaxTipWidth GUIToolTip_GetText GUIToolTip_GetTipBkColor GUIToolTip_GetTipTextColor GUIToolTip_GetTitleBitMap GUIToolTip_GetTitleText GUIToolTip_GetToolCount GUIToolTip_GetToolInfo GUIToolTip_HitTest GUIToolTip_NewToolRect GUIToolTip_Pop GUIToolTip_PopUp GUIToolTip_SetDelayTime GUIToolTip_SetMargin GUIToolTip_SetMaxTipWidth GUIToolTip_SetTipBkColor GUIToolTip_SetTipTextColor GUIToolTip_SetTitle GUIToolTip_SetToolInfo GUIToolTip_SetWindowTheme GUIToolTip_ToolExists GUIToolTip_ToolToArray GUIToolTip_TrackActivate GUIToolTip_TrackPosition GUIToolTip_Update GUIToolTip_UpdateTipText HexToString IEAction IEAttach IEBodyReadHTML IEBodyReadText IEBodyWriteHTML IECreate IECreateEmbedded IEDocGetObj IEDocInsertHTML IEDocInsertText IEDocReadHTML IEDocWriteHTML IEErrorNotify IEFormElementCheckBoxSelect IEFormElementGetCollection IEFormElementGetObjByName IEFormElementGetValue IEFormElementOptionSelect IEFormElementRadioSelect IEFormElementSetValue IEFormGetCollection IEFormGetObjByName IEFormImageClick IEFormReset IEFormSubmit IEFrameGetCollection IEFrameGetObjByName IEGetObjById IEGetObjByName IEHeadInsertEventScript IEImgClick IEImgGetCollection IEIsFrameSet IELinkClickByIndex IELinkClickByText IELinkGetCollection IELoadWait IELoadWaitTimeout IENavigate IEPropertyGet IEPropertySet IEQuit IETableGetCollection IETableWriteToArray IETagNameAllGetCollection IETagNameGetCollection IE_Example IE_Introduction IE_VersionInfo INetExplorerCapable INetGetSource INetMail INetSmtpMail IsPressed MathCheckDiv Max MemGlobalAlloc MemGlobalFree MemGlobalLock MemGlobalSize MemGlobalUnlock MemMoveMemory MemVirtualAlloc MemVirtualAllocEx MemVirtualFree MemVirtualFreeEx Min MouseTrap NamedPipes_CallNamedPipe NamedPipes_ConnectNamedPipe NamedPipes_CreateNamedPipe NamedPipes_CreatePipe NamedPipes_DisconnectNamedPipe NamedPipes_GetNamedPipeHandleState NamedPipes_GetNamedPipeInfo NamedPipes_PeekNamedPipe NamedPipes_SetNamedPipeHandleState NamedPipes_TransactNamedPipe NamedPipes_WaitNamedPipe Net_Share_ConnectionEnum Net_Share_FileClose Net_Share_FileEnum Net_Share_FileGetInfo Net_Share_PermStr Net_Share_ResourceStr Net_Share_SessionDel Net_Share_SessionEnum Net_Share_SessionGetInfo Net_Share_ShareAdd Net_Share_ShareCheck Net_Share_ShareDel Net_Share_ShareEnum Net_Share_ShareGetInfo Net_Share_ShareSetInfo Net_Share_StatisticsGetSvr Net_Share_StatisticsGetWrk Now NowCalc NowCalcDate NowDate NowTime PathFull PathGetRelative PathMake PathSplit ProcessGetName ProcessGetPriority Radian ReplaceStringInFile RunDos ScreenCapture_Capture ScreenCapture_CaptureWnd ScreenCapture_SaveImage ScreenCapture_SetBMPFormat ScreenCapture_SetJPGQuality ScreenCapture_SetTIFColorDepth ScreenCapture_SetTIFCompression Security__AdjustTokenPrivileges Security__CreateProcessWithToken Security__DuplicateTokenEx Security__GetAccountSid Security__GetLengthSid Security__GetTokenInformation Security__ImpersonateSelf Security__IsValidSid Security__LookupAccountName Security__LookupAccountSid Security__LookupPrivilegeValue Security__OpenProcessToken Security__OpenThreadToken Security__OpenThreadTokenEx Security__SetPrivilege Security__SetTokenInformation Security__SidToStringSid Security__SidTypeStr Security__StringSidToSid SendMessage SendMessageA SetDate SetTime Singleton SoundClose SoundLength SoundOpen SoundPause SoundPlay SoundPos SoundResume SoundSeek SoundStatus SoundStop SQLite_Changes SQLite_Close SQLite_Display2DResult SQLite_Encode SQLite_ErrCode SQLite_ErrMsg SQLite_Escape SQLite_Exec SQLite_FastEncode SQLite_FastEscape SQLite_FetchData SQLite_FetchNames SQLite_GetTable SQLite_GetTable2d SQLite_LastInsertRowID SQLite_LibVersion SQLite_Open SQLite_Query SQLite_QueryFinalize SQLite_QueryReset SQLite_QuerySingleRow SQLite_SafeMode SQLite_SetTimeout SQLite_Shutdown SQLite_SQLiteExe SQLite_Startup SQLite_TotalChanges StringBetween StringExplode StringInsert StringProper StringRepeat StringTitleCase StringToHex TCPIpToName TempFile TicksToTime Timer_Diff Timer_GetIdleTime Timer_GetTimerID Timer_Init Timer_KillAllTimers Timer_KillTimer Timer_SetTimer TimeToTicks VersionCompare viClose viExecCommand viFindGpib viGpibBusReset viGTL viInteractiveControl viOpen viSetAttribute viSetTimeout WeekNumberISO WinAPI_AbortPath WinAPI_ActivateKeyboardLayout WinAPI_AddClipboardFormatListener WinAPI_AddFontMemResourceEx WinAPI_AddFontResourceEx WinAPI_AddIconOverlay WinAPI_AddIconTransparency WinAPI_AddMRUString WinAPI_AdjustBitmap WinAPI_AdjustTokenPrivileges WinAPI_AdjustWindowRectEx WinAPI_AlphaBlend WinAPI_AngleArc WinAPI_AnimateWindow WinAPI_Arc WinAPI_ArcTo WinAPI_ArrayToStruct WinAPI_AssignProcessToJobObject WinAPI_AssocGetPerceivedType WinAPI_AssocQueryString WinAPI_AttachConsole WinAPI_AttachThreadInput WinAPI_BackupRead WinAPI_BackupReadAbort WinAPI_BackupSeek WinAPI_BackupWrite WinAPI_BackupWriteAbort WinAPI_Beep WinAPI_BeginBufferedPaint WinAPI_BeginDeferWindowPos WinAPI_BeginPaint WinAPI_BeginPath WinAPI_BeginUpdateResource WinAPI_BitBlt WinAPI_BringWindowToTop WinAPI_BroadcastSystemMessage WinAPI_BrowseForFolderDlg WinAPI_BufferedPaintClear WinAPI_BufferedPaintInit WinAPI_BufferedPaintSetAlpha WinAPI_BufferedPaintUnInit WinAPI_CallNextHookEx WinAPI_CallWindowProc WinAPI_CallWindowProcW WinAPI_CascadeWindows WinAPI_ChangeWindowMessageFilterEx WinAPI_CharToOem WinAPI_ChildWindowFromPointEx WinAPI_ClientToScreen WinAPI_ClipCursor WinAPI_CloseDesktop WinAPI_CloseEnhMetaFile WinAPI_CloseFigure WinAPI_CloseHandle WinAPI_CloseThemeData WinAPI_CloseWindow WinAPI_CloseWindowStation WinAPI_CLSIDFromProgID WinAPI_CoInitialize WinAPI_ColorAdjustLuma WinAPI_ColorHLSToRGB WinAPI_ColorRGBToHLS WinAPI_CombineRgn WinAPI_CombineTransform WinAPI_CommandLineToArgv WinAPI_CommDlgExtendedError WinAPI_CommDlgExtendedErrorEx WinAPI_CompareString WinAPI_CompressBitmapBits WinAPI_CompressBuffer WinAPI_ComputeCrc32 WinAPI_ConfirmCredentials WinAPI_CopyBitmap WinAPI_CopyCursor WinAPI_CopyEnhMetaFile WinAPI_CopyFileEx WinAPI_CopyIcon WinAPI_CopyImage WinAPI_CopyRect WinAPI_CopyStruct WinAPI_CoTaskMemAlloc WinAPI_CoTaskMemFree WinAPI_CoTaskMemRealloc WinAPI_CoUninitialize WinAPI_Create32BitHBITMAP WinAPI_Create32BitHICON WinAPI_CreateANDBitmap WinAPI_CreateBitmap WinAPI_CreateBitmapIndirect WinAPI_CreateBrushIndirect WinAPI_CreateBuffer WinAPI_CreateBufferFromStruct WinAPI_CreateCaret WinAPI_CreateColorAdjustment WinAPI_CreateCompatibleBitmap WinAPI_CreateCompatibleBitmapEx WinAPI_CreateCompatibleDC WinAPI_CreateDesktop WinAPI_CreateDIB WinAPI_CreateDIBColorTable WinAPI_CreateDIBitmap WinAPI_CreateDIBSection WinAPI_CreateDirectory WinAPI_CreateDirectoryEx WinAPI_CreateEllipticRgn WinAPI_CreateEmptyIcon WinAPI_CreateEnhMetaFile WinAPI_CreateEvent WinAPI_CreateFile WinAPI_CreateFileEx WinAPI_CreateFileMapping WinAPI_CreateFont WinAPI_CreateFontEx WinAPI_CreateFontIndirect WinAPI_CreateGUID WinAPI_CreateHardLink WinAPI_CreateIcon WinAPI_CreateIconFromResourceEx WinAPI_CreateIconIndirect WinAPI_CreateJobObject WinAPI_CreateMargins WinAPI_CreateMRUList WinAPI_CreateMutex WinAPI_CreateNullRgn WinAPI_CreateNumberFormatInfo WinAPI_CreateObjectID WinAPI_CreatePen WinAPI_CreatePoint WinAPI_CreatePolygonRgn WinAPI_CreateProcess WinAPI_CreateProcessWithToken WinAPI_CreateRect WinAPI_CreateRectEx WinAPI_CreateRectRgn WinAPI_CreateRectRgnIndirect WinAPI_CreateRoundRectRgn WinAPI_CreateSemaphore WinAPI_CreateSize WinAPI_CreateSolidBitmap WinAPI_CreateSolidBrush WinAPI_CreateStreamOnHGlobal WinAPI_CreateString WinAPI_CreateSymbolicLink WinAPI_CreateTransform WinAPI_CreateWindowEx WinAPI_CreateWindowStation WinAPI_DecompressBuffer WinAPI_DecryptFile WinAPI_DeferWindowPos WinAPI_DefineDosDevice WinAPI_DefRawInputProc WinAPI_DefSubclassProc WinAPI_DefWindowProc WinAPI_DefWindowProcW WinAPI_DeleteDC WinAPI_DeleteEnhMetaFile WinAPI_DeleteFile WinAPI_DeleteObject WinAPI_DeleteObjectID WinAPI_DeleteVolumeMountPoint WinAPI_DeregisterShellHookWindow WinAPI_DestroyCaret WinAPI_DestroyCursor WinAPI_DestroyIcon WinAPI_DestroyWindow WinAPI_DeviceIoControl WinAPI_DisplayStruct WinAPI_DllGetVersion WinAPI_DllInstall WinAPI_DllUninstall WinAPI_DPtoLP WinAPI_DragAcceptFiles WinAPI_DragFinish WinAPI_DragQueryFileEx WinAPI_DragQueryPoint WinAPI_DrawAnimatedRects WinAPI_DrawBitmap WinAPI_DrawEdge WinAPI_DrawFocusRect WinAPI_DrawFrameControl WinAPI_DrawIcon WinAPI_DrawIconEx WinAPI_DrawLine WinAPI_DrawShadowText WinAPI_DrawText WinAPI_DrawThemeBackground WinAPI_DrawThemeEdge WinAPI_DrawThemeIcon WinAPI_DrawThemeParentBackground WinAPI_DrawThemeText WinAPI_DrawThemeTextEx WinAPI_DuplicateEncryptionInfoFile WinAPI_DuplicateHandle WinAPI_DuplicateTokenEx WinAPI_DwmDefWindowProc WinAPI_DwmEnableBlurBehindWindow WinAPI_DwmEnableComposition WinAPI_DwmExtendFrameIntoClientArea WinAPI_DwmGetColorizationColor WinAPI_DwmGetColorizationParameters WinAPI_DwmGetWindowAttribute WinAPI_DwmInvalidateIconicBitmaps WinAPI_DwmIsCompositionEnabled WinAPI_DwmQueryThumbnailSourceSize WinAPI_DwmRegisterThumbnail WinAPI_DwmSetColorizationParameters WinAPI_DwmSetIconicLivePreviewBitmap WinAPI_DwmSetIconicThumbnail WinAPI_DwmSetWindowAttribute WinAPI_DwmUnregisterThumbnail WinAPI_DwmUpdateThumbnailProperties WinAPI_DWordToFloat WinAPI_DWordToInt WinAPI_EjectMedia WinAPI_Ellipse WinAPI_EmptyWorkingSet WinAPI_EnableWindow WinAPI_EncryptFile WinAPI_EncryptionDisable WinAPI_EndBufferedPaint WinAPI_EndDeferWindowPos WinAPI_EndPaint WinAPI_EndPath WinAPI_EndUpdateResource WinAPI_EnumChildProcess WinAPI_EnumChildWindows WinAPI_EnumDesktops WinAPI_EnumDesktopWindows WinAPI_EnumDeviceDrivers WinAPI_EnumDisplayDevices WinAPI_EnumDisplayMonitors WinAPI_EnumDisplaySettings WinAPI_EnumDllProc WinAPI_EnumFiles WinAPI_EnumFileStreams WinAPI_EnumFontFamilies WinAPI_EnumHardLinks WinAPI_EnumMRUList WinAPI_EnumPageFiles WinAPI_EnumProcessHandles WinAPI_EnumProcessModules WinAPI_EnumProcessThreads WinAPI_EnumProcessWindows WinAPI_EnumRawInputDevices WinAPI_EnumResourceLanguages WinAPI_EnumResourceNames WinAPI_EnumResourceTypes WinAPI_EnumSystemGeoID WinAPI_EnumSystemLocales WinAPI_EnumUILanguages WinAPI_EnumWindows WinAPI_EnumWindowsPopup WinAPI_EnumWindowStations WinAPI_EnumWindowsTop WinAPI_EqualMemory WinAPI_EqualRect WinAPI_EqualRgn WinAPI_ExcludeClipRect WinAPI_ExpandEnvironmentStrings WinAPI_ExtCreatePen WinAPI_ExtCreateRegion WinAPI_ExtFloodFill WinAPI_ExtractIcon WinAPI_ExtractIconEx WinAPI_ExtSelectClipRgn WinAPI_FatalAppExit WinAPI_FatalExit WinAPI_FileEncryptionStatus WinAPI_FileExists WinAPI_FileIconInit WinAPI_FileInUse WinAPI_FillMemory WinAPI_FillPath WinAPI_FillRect WinAPI_FillRgn WinAPI_FindClose WinAPI_FindCloseChangeNotification WinAPI_FindExecutable WinAPI_FindFirstChangeNotification WinAPI_FindFirstFile WinAPI_FindFirstFileName WinAPI_FindFirstStream WinAPI_FindNextChangeNotification WinAPI_FindNextFile WinAPI_FindNextFileName WinAPI_FindNextStream WinAPI_FindResource WinAPI_FindResourceEx WinAPI_FindTextDlg WinAPI_FindWindow WinAPI_FlashWindow WinAPI_FlashWindowEx WinAPI_FlattenPath WinAPI_FloatToDWord WinAPI_FloatToInt WinAPI_FlushFileBuffers WinAPI_FlushFRBuffer WinAPI_FlushViewOfFile WinAPI_FormatDriveDlg WinAPI_FormatMessage WinAPI_FrameRect WinAPI_FrameRgn WinAPI_FreeLibrary WinAPI_FreeMemory WinAPI_FreeMRUList WinAPI_FreeResource WinAPI_GdiComment WinAPI_GetActiveWindow WinAPI_GetAllUsersProfileDirectory WinAPI_GetAncestor WinAPI_GetApplicationRestartSettings WinAPI_GetArcDirection WinAPI_GetAsyncKeyState WinAPI_GetBinaryType WinAPI_GetBitmapBits WinAPI_GetBitmapDimension WinAPI_GetBitmapDimensionEx WinAPI_GetBkColor WinAPI_GetBkMode WinAPI_GetBoundsRect WinAPI_GetBrushOrg WinAPI_GetBufferedPaintBits WinAPI_GetBufferedPaintDC WinAPI_GetBufferedPaintTargetDC WinAPI_GetBufferedPaintTargetRect WinAPI_GetBValue WinAPI_GetCaretBlinkTime WinAPI_GetCaretPos WinAPI_GetCDType WinAPI_GetClassInfoEx WinAPI_GetClassLongEx WinAPI_GetClassName WinAPI_GetClientHeight WinAPI_GetClientRect WinAPI_GetClientWidth WinAPI_GetClipboardSequenceNumber WinAPI_GetClipBox WinAPI_GetClipCursor WinAPI_GetClipRgn WinAPI_GetColorAdjustment WinAPI_GetCompressedFileSize WinAPI_GetCompression WinAPI_GetConnectedDlg WinAPI_GetCurrentDirectory WinAPI_GetCurrentHwProfile WinAPI_GetCurrentObject WinAPI_GetCurrentPosition WinAPI_GetCurrentProcess WinAPI_GetCurrentProcessExplicitAppUserModelID WinAPI_GetCurrentProcessID WinAPI_GetCurrentThemeName WinAPI_GetCurrentThread WinAPI_GetCurrentThreadId WinAPI_GetCursor WinAPI_GetCursorInfo WinAPI_GetDateFormat WinAPI_GetDC WinAPI_GetDCEx WinAPI_GetDefaultPrinter WinAPI_GetDefaultUserProfileDirectory WinAPI_GetDesktopWindow WinAPI_GetDeviceCaps WinAPI_GetDeviceDriverBaseName WinAPI_GetDeviceDriverFileName WinAPI_GetDeviceGammaRamp WinAPI_GetDIBColorTable WinAPI_GetDIBits WinAPI_GetDiskFreeSpaceEx WinAPI_GetDlgCtrlID WinAPI_GetDlgItem WinAPI_GetDllDirectory WinAPI_GetDriveBusType WinAPI_GetDriveGeometryEx WinAPI_GetDriveNumber WinAPI_GetDriveType WinAPI_GetDurationFormat WinAPI_GetEffectiveClientRect WinAPI_GetEnhMetaFile WinAPI_GetEnhMetaFileBits WinAPI_GetEnhMetaFileDescription WinAPI_GetEnhMetaFileDimension WinAPI_GetEnhMetaFileHeader WinAPI_GetErrorMessage WinAPI_GetErrorMode WinAPI_GetExitCodeProcess WinAPI_GetExtended WinAPI_GetFileAttributes WinAPI_GetFileID WinAPI_GetFileInformationByHandle WinAPI_GetFileInformationByHandleEx WinAPI_GetFilePointerEx WinAPI_GetFileSizeEx WinAPI_GetFileSizeOnDisk WinAPI_GetFileTitle WinAPI_GetFileType WinAPI_GetFileVersionInfo WinAPI_GetFinalPathNameByHandle WinAPI_GetFinalPathNameByHandleEx WinAPI_GetFocus WinAPI_GetFontMemoryResourceInfo WinAPI_GetFontName WinAPI_GetFontResourceInfo WinAPI_GetForegroundWindow WinAPI_GetFRBuffer WinAPI_GetFullPathName WinAPI_GetGeoInfo WinAPI_GetGlyphOutline WinAPI_GetGraphicsMode WinAPI_GetGuiResources WinAPI_GetGUIThreadInfo WinAPI_GetGValue WinAPI_GetHandleInformation WinAPI_GetHGlobalFromStream WinAPI_GetIconDimension WinAPI_GetIconInfo WinAPI_GetIconInfoEx WinAPI_GetIdleTime WinAPI_GetKeyboardLayout WinAPI_GetKeyboardLayoutList WinAPI_GetKeyboardState WinAPI_GetKeyboardType WinAPI_GetKeyNameText WinAPI_GetKeyState WinAPI_GetLastActivePopup WinAPI_GetLastError WinAPI_GetLastErrorMessage WinAPI_GetLayeredWindowAttributes WinAPI_GetLocaleInfo WinAPI_GetLogicalDrives WinAPI_GetMapMode WinAPI_GetMemorySize WinAPI_GetMessageExtraInfo WinAPI_GetModuleFileNameEx WinAPI_GetModuleHandle WinAPI_GetModuleHandleEx WinAPI_GetModuleInformation WinAPI_GetMonitorInfo WinAPI_GetMousePos WinAPI_GetMousePosX WinAPI_GetMousePosY WinAPI_GetMUILanguage WinAPI_GetNumberFormat WinAPI_GetObject WinAPI_GetObjectID WinAPI_GetObjectInfoByHandle WinAPI_GetObjectNameByHandle WinAPI_GetObjectType WinAPI_GetOpenFileName WinAPI_GetOutlineTextMetrics WinAPI_GetOverlappedResult WinAPI_GetParent WinAPI_GetParentProcess WinAPI_GetPerformanceInfo WinAPI_GetPEType WinAPI_GetPhysicallyInstalledSystemMemory WinAPI_GetPixel WinAPI_GetPolyFillMode WinAPI_GetPosFromRect WinAPI_GetPriorityClass WinAPI_GetProcAddress WinAPI_GetProcessAffinityMask WinAPI_GetProcessCommandLine WinAPI_GetProcessFileName WinAPI_GetProcessHandleCount WinAPI_GetProcessID WinAPI_GetProcessIoCounters WinAPI_GetProcessMemoryInfo WinAPI_GetProcessName WinAPI_GetProcessShutdownParameters WinAPI_GetProcessTimes WinAPI_GetProcessUser WinAPI_GetProcessWindowStation WinAPI_GetProcessWorkingDirectory WinAPI_GetProfilesDirectory WinAPI_GetPwrCapabilities WinAPI_GetRawInputBuffer WinAPI_GetRawInputBufferLength WinAPI_GetRawInputData WinAPI_GetRawInputDeviceInfo WinAPI_GetRegionData WinAPI_GetRegisteredRawInputDevices WinAPI_GetRegKeyNameByHandle WinAPI_GetRgnBox WinAPI_GetROP2 WinAPI_GetRValue WinAPI_GetSaveFileName WinAPI_GetShellWindow WinAPI_GetStartupInfo WinAPI_GetStdHandle WinAPI_GetStockObject WinAPI_GetStretchBltMode WinAPI_GetString WinAPI_GetSysColor WinAPI_GetSysColorBrush WinAPI_GetSystemDefaultLangID WinAPI_GetSystemDefaultLCID WinAPI_GetSystemDefaultUILanguage WinAPI_GetSystemDEPPolicy WinAPI_GetSystemInfo WinAPI_GetSystemMetrics WinAPI_GetSystemPowerStatus WinAPI_GetSystemTimes WinAPI_GetSystemWow64Directory WinAPI_GetTabbedTextExtent WinAPI_GetTempFileName WinAPI_GetTextAlign WinAPI_GetTextCharacterExtra WinAPI_GetTextColor WinAPI_GetTextExtentPoint32 WinAPI_GetTextFace WinAPI_GetTextMetrics WinAPI_GetThemeAppProperties WinAPI_GetThemeBackgroundContentRect WinAPI_GetThemeBackgroundExtent WinAPI_GetThemeBackgroundRegion WinAPI_GetThemeBitmap WinAPI_GetThemeBool WinAPI_GetThemeColor WinAPI_GetThemeDocumentationProperty WinAPI_GetThemeEnumValue WinAPI_GetThemeFilename WinAPI_GetThemeFont WinAPI_GetThemeInt WinAPI_GetThemeMargins WinAPI_GetThemeMetric WinAPI_GetThemePartSize WinAPI_GetThemePosition WinAPI_GetThemePropertyOrigin WinAPI_GetThemeRect WinAPI_GetThemeString WinAPI_GetThemeSysBool WinAPI_GetThemeSysColor WinAPI_GetThemeSysColorBrush WinAPI_GetThemeSysFont WinAPI_GetThemeSysInt WinAPI_GetThemeSysSize WinAPI_GetThemeSysString WinAPI_GetThemeTextExtent WinAPI_GetThemeTextMetrics WinAPI_GetThemeTransitionDuration WinAPI_GetThreadDesktop WinAPI_GetThreadErrorMode WinAPI_GetThreadLocale WinAPI_GetThreadUILanguage WinAPI_GetTickCount WinAPI_GetTickCount64 WinAPI_GetTimeFormat WinAPI_GetTopWindow WinAPI_GetUDFColorMode WinAPI_GetUpdateRect WinAPI_GetUpdateRgn WinAPI_GetUserDefaultLangID WinAPI_GetUserDefaultLCID WinAPI_GetUserDefaultUILanguage WinAPI_GetUserGeoID WinAPI_GetUserObjectInformation WinAPI_GetVersion WinAPI_GetVersionEx WinAPI_GetVolumeInformation WinAPI_GetVolumeInformationByHandle WinAPI_GetVolumeNameForVolumeMountPoint WinAPI_GetWindow WinAPI_GetWindowDC WinAPI_GetWindowDisplayAffinity WinAPI_GetWindowExt WinAPI_GetWindowFileName WinAPI_GetWindowHeight WinAPI_GetWindowInfo WinAPI_GetWindowLong WinAPI_GetWindowOrg WinAPI_GetWindowPlacement WinAPI_GetWindowRect WinAPI_GetWindowRgn WinAPI_GetWindowRgnBox WinAPI_GetWindowSubclass WinAPI_GetWindowText WinAPI_GetWindowTheme WinAPI_GetWindowThreadProcessId WinAPI_GetWindowWidth WinAPI_GetWorkArea WinAPI_GetWorldTransform WinAPI_GetXYFromPoint WinAPI_GlobalMemoryStatus WinAPI_GradientFill WinAPI_GUIDFromString WinAPI_GUIDFromStringEx WinAPI_HashData WinAPI_HashString WinAPI_HiByte WinAPI_HideCaret WinAPI_HiDWord WinAPI_HiWord WinAPI_InflateRect WinAPI_InitMUILanguage WinAPI_InProcess WinAPI_IntersectClipRect WinAPI_IntersectRect WinAPI_IntToDWord WinAPI_IntToFloat WinAPI_InvalidateRect WinAPI_InvalidateRgn WinAPI_InvertANDBitmap WinAPI_InvertColor WinAPI_InvertRect WinAPI_InvertRgn WinAPI_IOCTL WinAPI_IsAlphaBitmap WinAPI_IsBadCodePtr WinAPI_IsBadReadPtr WinAPI_IsBadStringPtr WinAPI_IsBadWritePtr WinAPI_IsChild WinAPI_IsClassName WinAPI_IsDoorOpen WinAPI_IsElevated WinAPI_IsHungAppWindow WinAPI_IsIconic WinAPI_IsInternetConnected WinAPI_IsLoadKBLayout WinAPI_IsMemory WinAPI_IsNameInExpression WinAPI_IsNetworkAlive WinAPI_IsPathShared WinAPI_IsProcessInJob WinAPI_IsProcessorFeaturePresent WinAPI_IsRectEmpty WinAPI_IsThemeActive WinAPI_IsThemeBackgroundPartiallyTransparent WinAPI_IsThemePartDefined WinAPI_IsValidLocale WinAPI_IsWindow WinAPI_IsWindowEnabled WinAPI_IsWindowUnicode WinAPI_IsWindowVisible WinAPI_IsWow64Process WinAPI_IsWritable WinAPI_IsZoomed WinAPI_Keybd_Event WinAPI_KillTimer WinAPI_LineDDA WinAPI_LineTo WinAPI_LoadBitmap WinAPI_LoadCursor WinAPI_LoadCursorFromFile WinAPI_LoadIcon WinAPI_LoadIconMetric WinAPI_LoadIconWithScaleDown WinAPI_LoadImage WinAPI_LoadIndirectString WinAPI_LoadKeyboardLayout WinAPI_LoadLibrary WinAPI_LoadLibraryEx WinAPI_LoadMedia WinAPI_LoadResource WinAPI_LoadShell32Icon WinAPI_LoadString WinAPI_LoadStringEx WinAPI_LoByte WinAPI_LocalFree WinAPI_LockDevice WinAPI_LockFile WinAPI_LockResource WinAPI_LockWindowUpdate WinAPI_LockWorkStation WinAPI_LoDWord WinAPI_LongMid WinAPI_LookupIconIdFromDirectoryEx WinAPI_LoWord WinAPI_LPtoDP WinAPI_MAKELANGID WinAPI_MAKELCID WinAPI_MakeLong WinAPI_MakeQWord WinAPI_MakeWord WinAPI_MapViewOfFile WinAPI_MapVirtualKey WinAPI_MaskBlt WinAPI_MessageBeep WinAPI_MessageBoxCheck WinAPI_MessageBoxIndirect WinAPI_MirrorIcon WinAPI_ModifyWorldTransform WinAPI_MonitorFromPoint WinAPI_MonitorFromRect WinAPI_MonitorFromWindow WinAPI_Mouse_Event WinAPI_MoveFileEx WinAPI_MoveMemory WinAPI_MoveTo WinAPI_MoveToEx WinAPI_MoveWindow WinAPI_MsgBox WinAPI_MulDiv WinAPI_MultiByteToWideChar WinAPI_MultiByteToWideCharEx WinAPI_NtStatusToDosError WinAPI_OemToChar WinAPI_OffsetClipRgn WinAPI_OffsetPoints WinAPI_OffsetRect WinAPI_OffsetRgn WinAPI_OffsetWindowOrg WinAPI_OpenDesktop WinAPI_OpenFileById WinAPI_OpenFileDlg WinAPI_OpenFileMapping WinAPI_OpenIcon WinAPI_OpenInputDesktop WinAPI_OpenJobObject WinAPI_OpenMutex WinAPI_OpenProcess WinAPI_OpenProcessToken WinAPI_OpenSemaphore WinAPI_OpenThemeData WinAPI_OpenWindowStation WinAPI_PageSetupDlg WinAPI_PaintDesktop WinAPI_PaintRgn WinAPI_ParseURL WinAPI_ParseUserName WinAPI_PatBlt WinAPI_PathAddBackslash WinAPI_PathAddExtension WinAPI_PathAppend WinAPI_PathBuildRoot WinAPI_PathCanonicalize WinAPI_PathCommonPrefix WinAPI_PathCompactPath WinAPI_PathCompactPathEx WinAPI_PathCreateFromUrl WinAPI_PathFindExtension WinAPI_PathFindFileName WinAPI_PathFindNextComponent WinAPI_PathFindOnPath WinAPI_PathGetArgs WinAPI_PathGetCharType WinAPI_PathGetDriveNumber WinAPI_PathIsContentType WinAPI_PathIsDirectory WinAPI_PathIsDirectoryEmpty WinAPI_PathIsExe WinAPI_PathIsFileSpec WinAPI_PathIsLFNFileSpec WinAPI_PathIsRelative WinAPI_PathIsRoot WinAPI_PathIsSameRoot WinAPI_PathIsSystemFolder WinAPI_PathIsUNC WinAPI_PathIsUNCServer WinAPI_PathIsUNCServerShare WinAPI_PathMakeSystemFolder WinAPI_PathMatchSpec WinAPI_PathParseIconLocation WinAPI_PathRelativePathTo WinAPI_PathRemoveArgs WinAPI_PathRemoveBackslash WinAPI_PathRemoveExtension WinAPI_PathRemoveFileSpec WinAPI_PathRenameExtension WinAPI_PathSearchAndQualify WinAPI_PathSkipRoot WinAPI_PathStripPath WinAPI_PathStripToRoot WinAPI_PathToRegion WinAPI_PathUndecorate WinAPI_PathUnExpandEnvStrings WinAPI_PathUnmakeSystemFolder WinAPI_PathUnquoteSpaces WinAPI_PathYetAnotherMakeUniqueName WinAPI_PickIconDlg WinAPI_PlayEnhMetaFile WinAPI_PlaySound WinAPI_PlgBlt WinAPI_PointFromRect WinAPI_PolyBezier WinAPI_PolyBezierTo WinAPI_PolyDraw WinAPI_Polygon WinAPI_PostMessage WinAPI_PrimaryLangId WinAPI_PrintDlg WinAPI_PrintDlgEx WinAPI_PrintWindow WinAPI_ProgIDFromCLSID WinAPI_PtInRect WinAPI_PtInRectEx WinAPI_PtInRegion WinAPI_PtVisible WinAPI_QueryDosDevice WinAPI_QueryInformationJobObject WinAPI_QueryPerformanceCounter WinAPI_QueryPerformanceFrequency WinAPI_RadialGradientFill WinAPI_ReadDirectoryChanges WinAPI_ReadFile WinAPI_ReadProcessMemory WinAPI_Rectangle WinAPI_RectInRegion WinAPI_RectIsEmpty WinAPI_RectVisible WinAPI_RedrawWindow WinAPI_RegCloseKey WinAPI_RegConnectRegistry WinAPI_RegCopyTree WinAPI_RegCopyTreeEx WinAPI_RegCreateKey WinAPI_RegDeleteEmptyKey WinAPI_RegDeleteKey WinAPI_RegDeleteKeyValue WinAPI_RegDeleteTree WinAPI_RegDeleteTreeEx WinAPI_RegDeleteValue WinAPI_RegDisableReflectionKey WinAPI_RegDuplicateHKey WinAPI_RegEnableReflectionKey WinAPI_RegEnumKey WinAPI_RegEnumValue WinAPI_RegFlushKey WinAPI_RegisterApplicationRestart WinAPI_RegisterClass WinAPI_RegisterClassEx WinAPI_RegisterHotKey WinAPI_RegisterPowerSettingNotification WinAPI_RegisterRawInputDevices WinAPI_RegisterShellHookWindow WinAPI_RegisterWindowMessage WinAPI_RegLoadMUIString WinAPI_RegNotifyChangeKeyValue WinAPI_RegOpenKey WinAPI_RegQueryInfoKey WinAPI_RegQueryLastWriteTime WinAPI_RegQueryMultipleValues WinAPI_RegQueryReflectionKey WinAPI_RegQueryValue WinAPI_RegRestoreKey WinAPI_RegSaveKey WinAPI_RegSetValue WinAPI_ReleaseCapture WinAPI_ReleaseDC WinAPI_ReleaseMutex WinAPI_ReleaseSemaphore WinAPI_ReleaseStream WinAPI_RemoveClipboardFormatListener WinAPI_RemoveDirectory WinAPI_RemoveFontMemResourceEx WinAPI_RemoveFontResourceEx WinAPI_RemoveWindowSubclass WinAPI_ReOpenFile WinAPI_ReplaceFile WinAPI_ReplaceTextDlg WinAPI_ResetEvent WinAPI_RestartDlg WinAPI_RestoreDC WinAPI_RGB WinAPI_RotatePoints WinAPI_RoundRect WinAPI_SaveDC WinAPI_SaveFileDlg WinAPI_SaveHBITMAPToFile WinAPI_SaveHICONToFile WinAPI_ScaleWindowExt WinAPI_ScreenToClient WinAPI_SearchPath WinAPI_SelectClipPath WinAPI_SelectClipRgn WinAPI_SelectObject WinAPI_SendMessageTimeout WinAPI_SetActiveWindow WinAPI_SetArcDirection WinAPI_SetBitmapBits WinAPI_SetBitmapDimensionEx WinAPI_SetBkColor WinAPI_SetBkMode WinAPI_SetBoundsRect WinAPI_SetBrushOrg WinAPI_SetCapture WinAPI_SetCaretBlinkTime WinAPI_SetCaretPos WinAPI_SetClassLongEx WinAPI_SetColorAdjustment WinAPI_SetCompression WinAPI_SetCurrentDirectory WinAPI_SetCurrentProcessExplicitAppUserModelID WinAPI_SetCursor WinAPI_SetDCBrushColor WinAPI_SetDCPenColor WinAPI_SetDefaultPrinter WinAPI_SetDeviceGammaRamp WinAPI_SetDIBColorTable WinAPI_SetDIBits WinAPI_SetDIBitsToDevice WinAPI_SetDllDirectory WinAPI_SetEndOfFile WinAPI_SetEnhMetaFileBits WinAPI_SetErrorMode WinAPI_SetEvent WinAPI_SetFileAttributes WinAPI_SetFileInformationByHandleEx WinAPI_SetFilePointer WinAPI_SetFilePointerEx WinAPI_SetFileShortName WinAPI_SetFileValidData WinAPI_SetFocus WinAPI_SetFont WinAPI_SetForegroundWindow WinAPI_SetFRBuffer WinAPI_SetGraphicsMode WinAPI_SetHandleInformation WinAPI_SetInformationJobObject WinAPI_SetKeyboardLayout WinAPI_SetKeyboardState WinAPI_SetLastError WinAPI_SetLayeredWindowAttributes WinAPI_SetLocaleInfo WinAPI_SetMapMode WinAPI_SetMessageExtraInfo WinAPI_SetParent WinAPI_SetPixel WinAPI_SetPolyFillMode WinAPI_SetPriorityClass WinAPI_SetProcessAffinityMask WinAPI_SetProcessShutdownParameters WinAPI_SetProcessWindowStation WinAPI_SetRectRgn WinAPI_SetROP2 WinAPI_SetSearchPathMode WinAPI_SetStretchBltMode WinAPI_SetSysColors WinAPI_SetSystemCursor WinAPI_SetTextAlign WinAPI_SetTextCharacterExtra WinAPI_SetTextColor WinAPI_SetTextJustification WinAPI_SetThemeAppProperties WinAPI_SetThreadDesktop WinAPI_SetThreadErrorMode WinAPI_SetThreadExecutionState WinAPI_SetThreadLocale WinAPI_SetThreadUILanguage WinAPI_SetTimer WinAPI_SetUDFColorMode WinAPI_SetUserGeoID WinAPI_SetUserObjectInformation WinAPI_SetVolumeMountPoint WinAPI_SetWindowDisplayAffinity WinAPI_SetWindowExt WinAPI_SetWindowLong WinAPI_SetWindowOrg WinAPI_SetWindowPlacement WinAPI_SetWindowPos WinAPI_SetWindowRgn WinAPI_SetWindowsHookEx WinAPI_SetWindowSubclass WinAPI_SetWindowText WinAPI_SetWindowTheme WinAPI_SetWinEventHook WinAPI_SetWorldTransform WinAPI_SfcIsFileProtected WinAPI_SfcIsKeyProtected WinAPI_ShellAboutDlg WinAPI_ShellAddToRecentDocs WinAPI_ShellChangeNotify WinAPI_ShellChangeNotifyDeregister WinAPI_ShellChangeNotifyRegister WinAPI_ShellCreateDirectory WinAPI_ShellEmptyRecycleBin WinAPI_ShellExecute WinAPI_ShellExecuteEx WinAPI_ShellExtractAssociatedIcon WinAPI_ShellExtractIcon WinAPI_ShellFileOperation WinAPI_ShellFlushSFCache WinAPI_ShellGetFileInfo WinAPI_ShellGetIconOverlayIndex WinAPI_ShellGetImageList WinAPI_ShellGetKnownFolderIDList WinAPI_ShellGetKnownFolderPath WinAPI_ShellGetLocalizedName WinAPI_ShellGetPathFromIDList WinAPI_ShellGetSetFolderCustomSettings WinAPI_ShellGetSettings WinAPI_ShellGetSpecialFolderLocation WinAPI_ShellGetSpecialFolderPath WinAPI_ShellGetStockIconInfo WinAPI_ShellILCreateFromPath WinAPI_ShellNotifyIcon WinAPI_ShellNotifyIconGetRect WinAPI_ShellObjectProperties WinAPI_ShellOpenFolderAndSelectItems WinAPI_ShellOpenWithDlg WinAPI_ShellQueryRecycleBin WinAPI_ShellQueryUserNotificationState WinAPI_ShellRemoveLocalizedName WinAPI_ShellRestricted WinAPI_ShellSetKnownFolderPath WinAPI_ShellSetLocalizedName WinAPI_ShellSetSettings WinAPI_ShellStartNetConnectionDlg WinAPI_ShellUpdateImage WinAPI_ShellUserAuthenticationDlg WinAPI_ShellUserAuthenticationDlgEx WinAPI_ShortToWord WinAPI_ShowCaret WinAPI_ShowCursor WinAPI_ShowError WinAPI_ShowLastError WinAPI_ShowMsg WinAPI_ShowOwnedPopups WinAPI_ShowWindow WinAPI_ShutdownBlockReasonCreate WinAPI_ShutdownBlockReasonDestroy WinAPI_ShutdownBlockReasonQuery WinAPI_SizeOfResource WinAPI_StretchBlt WinAPI_StretchDIBits WinAPI_StrFormatByteSize WinAPI_StrFormatByteSizeEx WinAPI_StrFormatKBSize WinAPI_StrFromTimeInterval WinAPI_StringFromGUID WinAPI_StringLenA WinAPI_StringLenW WinAPI_StrLen WinAPI_StrokeAndFillPath WinAPI_StrokePath WinAPI_StructToArray WinAPI_SubLangId WinAPI_SubtractRect WinAPI_SwapDWord WinAPI_SwapQWord WinAPI_SwapWord WinAPI_SwitchColor WinAPI_SwitchDesktop WinAPI_SwitchToThisWindow WinAPI_SystemParametersInfo WinAPI_TabbedTextOut WinAPI_TerminateJobObject WinAPI_TerminateProcess WinAPI_TextOut WinAPI_TileWindows WinAPI_TrackMouseEvent WinAPI_TransparentBlt WinAPI_TwipsPerPixelX WinAPI_TwipsPerPixelY WinAPI_UnhookWindowsHookEx WinAPI_UnhookWinEvent WinAPI_UnionRect WinAPI_UnionStruct WinAPI_UniqueHardwareID WinAPI_UnloadKeyboardLayout WinAPI_UnlockFile WinAPI_UnmapViewOfFile WinAPI_UnregisterApplicationRestart WinAPI_UnregisterClass WinAPI_UnregisterHotKey WinAPI_UnregisterPowerSettingNotification WinAPI_UpdateLayeredWindow WinAPI_UpdateLayeredWindowEx WinAPI_UpdateLayeredWindowIndirect WinAPI_UpdateResource WinAPI_UpdateWindow WinAPI_UrlApplyScheme WinAPI_UrlCanonicalize WinAPI_UrlCombine WinAPI_UrlCompare WinAPI_UrlCreateFromPath WinAPI_UrlFixup WinAPI_UrlGetPart WinAPI_UrlHash WinAPI_UrlIs WinAPI_UserHandleGrantAccess WinAPI_ValidateRect WinAPI_ValidateRgn WinAPI_VerQueryRoot WinAPI_VerQueryValue WinAPI_VerQueryValueEx WinAPI_WaitForInputIdle WinAPI_WaitForMultipleObjects WinAPI_WaitForSingleObject WinAPI_WideCharToMultiByte WinAPI_WidenPath WinAPI_WindowFromDC WinAPI_WindowFromPoint WinAPI_WordToShort WinAPI_Wow64EnableWow64FsRedirection WinAPI_WriteConsole WinAPI_WriteFile WinAPI_WriteProcessMemory WinAPI_ZeroMemory WinNet_AddConnection WinNet_AddConnection2 WinNet_AddConnection3 WinNet_CancelConnection WinNet_CancelConnection2 WinNet_CloseEnum WinNet_ConnectionDialog WinNet_ConnectionDialog1 WinNet_DisconnectDialog WinNet_DisconnectDialog1 WinNet_EnumResource WinNet_GetConnection WinNet_GetConnectionPerformance WinNet_GetLastError WinNet_GetNetworkInformation WinNet_GetProviderName WinNet_GetResourceInformation WinNet_GetResourceParent WinNet_GetUniversalName WinNet_GetUser WinNet_OpenEnum WinNet_RestoreConnection WinNet_UseConnection Word_Create Word_DocAdd Word_DocAttach Word_DocClose Word_DocExport Word_DocFind Word_DocFindReplace Word_DocGet Word_DocLinkAdd Word_DocLinkGet Word_DocOpen Word_DocPictureAdd Word_DocPrint Word_DocRangeSet Word_DocSave Word_DocSaveAs Word_DocTableRead Word_DocTableWrite Word_Quit",e={ -variants:[a.COMMENT(";","$",{relevance:0}),a.COMMENT("#cs","#ce"),a.COMMENT("#comments-start","#comments-end")]},f={className:"variable",begin:"\\$[A-z0-9_]+"},g={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},h={variants:[a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]},i={className:"preprocessor",begin:"#",end:"$",keywords:"include include-once NoTrayIcon OnAutoItStartRegister RequireAdmin pragma Au3Stripper_Ignore_Funcs Au3Stripper_Ignore_Variables Au3Stripper_Off Au3Stripper_On Au3Stripper_Parameters AutoIt3Wrapper_Add_Constants AutoIt3Wrapper_Au3Check_Parameters AutoIt3Wrapper_Au3Check_Stop_OnWarning AutoIt3Wrapper_Aut2Exe AutoIt3Wrapper_AutoIt3 AutoIt3Wrapper_AutoIt3Dir AutoIt3Wrapper_Change2CUI AutoIt3Wrapper_Compile_Both AutoIt3Wrapper_Compression AutoIt3Wrapper_EndIf AutoIt3Wrapper_Icon AutoIt3Wrapper_If_Compile AutoIt3Wrapper_If_Run AutoIt3Wrapper_Jump_To_First_Error AutoIt3Wrapper_OutFile AutoIt3Wrapper_OutFile_Type AutoIt3Wrapper_OutFile_X64 AutoIt3Wrapper_PlugIn_Funcs AutoIt3Wrapper_Res_Comment Autoit3Wrapper_Res_Compatibility AutoIt3Wrapper_Res_Description AutoIt3Wrapper_Res_Field AutoIt3Wrapper_Res_File_Add AutoIt3Wrapper_Res_FileVersion AutoIt3Wrapper_Res_FileVersion_AutoIncrement AutoIt3Wrapper_Res_Icon_Add AutoIt3Wrapper_Res_Language AutoIt3Wrapper_Res_LegalCopyright AutoIt3Wrapper_Res_ProductVersion AutoIt3Wrapper_Res_requestedExecutionLevel AutoIt3Wrapper_Res_SaveSource AutoIt3Wrapper_Run_After AutoIt3Wrapper_Run_Au3Check AutoIt3Wrapper_Run_Au3Stripper AutoIt3Wrapper_Run_Before AutoIt3Wrapper_Run_Debug_Mode AutoIt3Wrapper_Run_SciTE_Minimized AutoIt3Wrapper_Run_SciTE_OutputPane_Minimized AutoIt3Wrapper_Run_Tidy AutoIt3Wrapper_ShowProgress AutoIt3Wrapper_Testing AutoIt3Wrapper_Tidy_Stop_OnError AutoIt3Wrapper_UPX_Parameters AutoIt3Wrapper_UseUPX AutoIt3Wrapper_UseX64 AutoIt3Wrapper_Version AutoIt3Wrapper_Versioning AutoIt3Wrapper_Versioning_Parameters Tidy_Off Tidy_On Tidy_Parameters EndRegion Region",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[g,{className:"string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},g,e]},j={className:"constant",begin:"@[A-z0-9_]+"},k={className:"function",beginKeywords:"Func",end:"$",excludeEnd:!0,illegal:"\\$|\\[|%",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[f,g,h]}]};return{case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:b,built_in:d,literal:c},contains:[e,f,g,h,i,j,k]}}),a.registerLanguage("avrasm",function(a){return{case_insensitive:!0,lexemes:"\\.?"+a.IDENT_RE,keywords:{keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",preprocessor:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set"},contains:[a.C_BLOCK_COMMENT_MODE,a.COMMENT(";","$",{relevance:0}),a.C_NUMBER_MODE,a.BINARY_NUMBER_MODE,{className:"number",begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},a.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"label",begin:"^[A-Za-z0-9_.$]+:"},{className:"preprocessor",begin:"#",end:"$"},{className:"localvars",begin:"@[0-9]+"}]}}),a.registerLanguage("axapta",function(a){return{keywords:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{className:"preprocessor",begin:"#",end:"$"},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:":",contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]}]}}),a.registerLanguage("bash",function(a){var b={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},c={className:"string",begin:/"/,end:/"/,contains:[a.BACKSLASH_ESCAPE,b,{className:"variable",begin:/\$\(/,end:/\)/,contains:[a.BACKSLASH_ESCAPE]}]},d={className:"string",begin:/'/,end:/'/};return{aliases:["sh","zsh"],lexemes:/-?[a-z\.]+/,keywords:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[{className:"shebang",begin:/^#![^\n]+sh\s*$/,relevance:10},{className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[a.inherit(a.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},a.HASH_COMMENT_MODE,a.NUMBER_MODE,c,d,b]}}),a.registerLanguage("brainfuck",function(a){var b={className:"literal",begin:"[\\+\\-]",relevance:0};return{aliases:["bf"],contains:[a.COMMENT("[^\\[\\]\\.,\\+\\-<> \r\n]","[\\[\\]\\.,\\+\\-<> \r\n]",{returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/\+\+|\-\-/,returnBegin:!0,contains:[b]},b]}}),a.registerLanguage("cal",function(a){var b="div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to until while with var",c="false true",d=[a.C_LINE_COMMENT_MODE,a.COMMENT(/\{/,/\}/,{relevance:0}),a.COMMENT(/\(\*/,/\*\)/,{relevance:10})],e={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},f={className:"string",begin:/(#\d+)+/},g={className:"date",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},h={className:"variable",begin:'"',end:'"'},i={className:"function",beginKeywords:"procedure",end:/[:;]/,keywords:"procedure|10",contains:[a.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:b,contains:[e,f]}].concat(d)},j={className:"class",begin:"OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)",returnBegin:!0,contains:[a.TITLE_MODE,i]};return{case_insensitive:!0,keywords:{keyword:b,literal:c},illegal:/\/\*/,contains:[e,f,g,h,a.NUMBER_MODE,j,i]}}),a.registerLanguage("capnproto",function(a){return{aliases:["capnp"],keywords:{keyword:"struct enum interface union group import using const annotation extends in of on as with from fixed",built_in:"Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 Text Data AnyPointer AnyStruct Capability List",literal:"true false"},contains:[a.QUOTE_STRING_MODE,a.NUMBER_MODE,a.HASH_COMMENT_MODE,{className:"shebang",begin:/@0x[\w\d]{16};/,illegal:/\n/},{className:"number",begin:/@\d+\b/},{className:"class",beginKeywords:"struct enum",end:/\{/,illegal:/\n/,contains:[a.inherit(a.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"class",beginKeywords:"interface",end:/\{/,illegal:/\n/,contains:[a.inherit(a.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]}]}}),a.registerLanguage("ceylon",function(a){var b="assembly module package import alias class interface object given value assign void function new of extends satisfies abstracts in out return break continue throw assert dynamic if else switch case for while try catch finally then let this outer super is exists nonempty",c="shared abstract formal default actual variable late native deprecatedfinal sealed annotation suppressWarnings small",d="doc by license see throws tagged",e=c+" "+d,f={className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:b,relevance:10},g=[{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[f]},{className:"string",begin:"'",end:"'"},{className:"number",begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?",relevance:0}];return f.contains=g,{keywords:{keyword:b,annotation:e},illegal:"\\$[^01]|#[^0-9a-fA-F]",contains:[a.C_LINE_COMMENT_MODE,a.COMMENT("/\\*","\\*/",{contains:["self"]}),{className:"annotation",begin:'@[a-z]\\w*(?:\\:"[^"]*")?'}].concat(g)}}),a.registerLanguage("clojure",function(a){var b={built_in:"def defonce cond apply if-not if-let if not not= = < > <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"},c="a-zA-Z_\\-!.?+*=<>&#'",d="["+c+"]["+c+"0-9/;:]*",e="[-+]?\\d+(\\.\\d+)?",f={begin:d,relevance:0},g={className:"number",begin:e,relevance:0},h=a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),i=a.COMMENT(";","$",{relevance:0}),j={className:"literal",begin:/\b(true|false|nil)\b/},k={className:"collection",begin:"[\\[\\{]",end:"[\\]\\}]"},l={className:"comment",begin:"\\^"+d},m=a.COMMENT("\\^\\{","\\}"),n={className:"attribute",begin:"[:]"+d},o={className:"list",begin:"\\(",end:"\\)"},p={endsWithParent:!0,relevance:0},q={keywords:b,lexemes:d,className:"keyword",begin:d,starts:p},r=[o,h,l,m,i,n,k,g,j,f];return o.contains=[a.COMMENT("comment",""),q,p],p.contains=r,k.contains=r,{aliases:["clj"],illegal:/\S/,contains:[o,h,l,m,i,n,k,g,j]}}),a.registerLanguage("clojure-repl",function(a){return{contains:[{className:"prompt",begin:/^([\w.-]+|\s*#_)=>/,starts:{end:/$/,subLanguage:"clojure"}}]}}),a.registerLanguage("cmake",function(a){return{aliases:["cmake.in"],case_insensitive:!0,keywords:{keyword:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or",operator:"equal less greater strless strgreater strequal matches"},contains:[{className:"envvar",begin:"\\${",end:"}"},a.HASH_COMMENT_MODE,a.QUOTE_STRING_MODE,a.NUMBER_MODE]}}),a.registerLanguage("coffeescript",function(a){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",built_in:"npm require console print module global window document"},c="[A-Za-z$_][0-9A-Za-z$_]*",d={className:"subst",begin:/#\{/,end:/}/,keywords:b},e=[a.BINARY_NUMBER_MODE,a.inherit(a.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[a.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[a.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[a.BACKSLASH_ESCAPE,d]},{begin:/"/,end:/"/,contains:[a.BACKSLASH_ESCAPE,d]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[d,a.HASH_COMMENT_MODE]},{begin:"//[gim]*",relevance:0},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{className:"property",begin:"@"+c},{begin:"`",end:"`",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];d.contains=e;var f=a.inherit(a.TITLE_MODE,{begin:c}),g="(\\(.*\\))?\\s*\\B[-=]>",h={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:b,contains:["self"].concat(e)}]};return{aliases:["coffee","cson","iced"],keywords:b,illegal:/\/\*/,contains:e.concat([a.COMMENT("###","###"),a.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+c+"\\s*=\\s*"+g,end:"[-=]>",returnBegin:!0,contains:[f,h]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:g,end:"[-=]>",returnBegin:!0,contains:[h]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[f]},f]},{className:"attribute",begin:c+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}),a.registerLanguage("cpp",function(a){var b={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[a.inherit(a.QUOTE_STRING_MODE,{begin:'((u8?|U)|L)?"'}),{begin:'(u8?|U)?R"',end:'"',contains:[a.BACKSLASH_ESCAPE]},{begin:"'\\\\?.",end:"'",illegal:"."}]},d={className:"number",variants:[{begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},{begin:a.C_NUMBER_RE}]},e={className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line pragma ifdef ifndef",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[c,{className:"string",begin:"<",end:">",illegal:"\\n"}]},c,d,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},f=a.IDENT_RE+"\\s*\\(",g={keyword:"int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong",built_in:"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf",literal:"true false nullptr NULL"};return{aliases:["c","cc","h","c++","h++","hpp"],keywords:g,illegal:"",keywords:g,contains:["self",b]},{begin:a.IDENT_RE+"::",keywords:g},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"("+a.IDENT_RE+"[\\*&\\s]+)+"+f,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:g,illegal:/[^\w\s\*&]/,contains:[{begin:f,returnBegin:!0,contains:[a.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,c,d]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,e]}]}}),a.registerLanguage("crmsh",function(a){var b="primitive rsc_template",c="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml",d="property rsc_defaults op_defaults",e="params meta operations op rule attributes utilization",f="read write deny defined not_defined in_range date spec in ref reference attribute type xpath version and or lt gt tag lte gte eq ne \\",g="number string",h="Master Started Slave Stopped start promote demote stop monitor true false";return{aliases:["crm","pcmk"],case_insensitive:!0,keywords:{keyword:e,operator:f,type:g,literal:h},contains:[a.HASH_COMMENT_MODE,{beginKeywords:"node",starts:{className:"identifier",end:"\\s*([\\w_-]+:)?",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*"}}},{beginKeywords:b,starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*",starts:{className:"pragma",end:"\\s*@?[\\w_][\\w_\\.:-]*"}}},{begin:"\\b("+c.split(" ").join("|")+")\\s+",keywords:c,starts:{className:"title",end:"[\\$\\w_][\\w_-]*"}},{beginKeywords:d,starts:{className:"title",end:"\\s*([\\w_-]+:)?"}},a.QUOTE_STRING_MODE,{className:"pragma",begin:"(ocf|systemd|service|lsb):[\\w_:-]+",relevance:0},{className:"number",begin:"\\b\\d+(\\.\\d+)?(ms|s|h|m)?",relevance:0},{className:"number",begin:"[-]?(infinity|inf)",relevance:0},{className:"variable",begin:/([A-Za-z\$_\#][\w_-]+)=/,relevance:0},{className:"tag",begin:"",relevance:0}]}}),a.registerLanguage("crystal",function(a){function b(a,b){var c=[{begin:a,end:b}];return c[0].contains=c,c}var c="(_[uif](8|16|32|64))?",d="[a-zA-Z_]\\w*[!?=]?",e="!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",f="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?",g={keyword:"abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? return require self sizeof struct super then type typeof union unless until when while with yield __DIR__ __FILE__ __LINE__",literal:"false nil true"},h={className:"subst",begin:"#{",end:"}",keywords:g},i={className:"expansion",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:g,relevance:10},j={className:"string",contains:[a.BACKSLASH_ESCAPE,h],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%w?\\(",end:"\\)",contains:b("\\(","\\)")},{begin:"%w?\\[",end:"\\]",contains:b("\\[","\\]")},{begin:"%w?{",end:"}",contains:b("{","}")},{begin:"%w?<",end:">",contains:b("<",">")},{begin:"%w?/",end:"/"},{begin:"%w?%",end:"%"},{begin:"%w?-",end:"-"},{begin:"%w?\\|",end:"\\|"}],relevance:0},k={begin:"("+e+")\\s*",contains:[{className:"regexp",contains:[a.BACKSLASH_ESCAPE,h],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\(",end:"\\)",contains:b("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:b("\\[","\\]")},{begin:"%r{",end:"}",contains:b("{","}")},{begin:"%r<",end:">",contains:b("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}]}],relevance:0},l={className:"regexp",contains:[a.BACKSLASH_ESCAPE,h],variants:[{begin:"%r\\(",end:"\\)",contains:b("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:b("\\[","\\]")},{begin:"%r{",end:"}",contains:b("{","}")},{begin:"%r<",end:">",contains:b("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}],relevance:0},m={className:"annotation",begin:"@\\[",end:"\\]",relevance:5},n=[i,j,k,l,m,a.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[a.HASH_COMMENT_MODE,a.inherit(a.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{className:"inheritance",begin:"<\\s*",contains:[{className:"parent",begin:"("+a.IDENT_RE+"::)?"+a.IDENT_RE}]}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[a.HASH_COMMENT_MODE,a.inherit(a.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"})],relevance:10},{className:"function",beginKeywords:"def",end:/\B\b/,contains:[a.inherit(a.TITLE_MODE,{begin:f,endsParent:!0})]},{className:"function",beginKeywords:"fun macro",end:/\B\b/,contains:[a.inherit(a.TITLE_MODE,{begin:f,endsParent:!0})],relevance:5},{className:"constant",begin:"(::)?(\\b[A-Z]\\w*(::)?)+",relevance:0},{className:"symbol",begin:a.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[j,{begin:f}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]*[01])"+c},{begin:"\\b0o([0-7_]*[0-7])"+c},{begin:"\\b0x([A-Fa-f0-9_]*[A-Fa-f0-9])"+c},{begin:"\\b(([0-9][0-9_]*[0-9]|[0-9])(\\.[0-9_]*[0-9])?([eE][+-]?[0-9_]*[0-9])?)"+c}],relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?|%)(\\w+))"}];return h.contains=n,m.contains=n,i.contains=n.slice(1),{aliases:["cr"],lexemes:d,keywords:g,contains:n}}),a.registerLanguage("cs",function(a){var b="abstract as base bool break byte case catch char checked const continue decimal dynamic default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long null when object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async protected public private internal ascending descending from get group into join let orderby partial select set value var where yield",c=a.IDENT_RE+"(<"+a.IDENT_RE+">)?";return{aliases:["csharp"],keywords:b,illegal:/::/,contains:[a.COMMENT("///","$",{returnBegin:!0,contains:[{className:"xmlDocTag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line region endregion pragma checksum"},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:]/,contains:[a.TITLE_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[{className:"title",begin:"[a-zA-Z](\\.?\\w)*",relevance:0},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new return throw await",relevance:0},{className:"function",begin:"("+c+"\\s+)+"+a.IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:b,contains:[{begin:a.IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[a.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:b,relevance:0,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]}]}}),a.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*",c={className:"function",begin:b+"\\(",returnBegin:!0,excludeEnd:!0,end:"\\("},d={className:"rule",begin:/[A-Z\_\.\-]+\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{className:"value",endsWithParent:!0,excludeEnd:!0,contains:[c,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,a.C_BLOCK_COMMENT_MODE,{className:"hexcolor",begin:"#[0-9A-Fa-f]+"},{className:"important",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[a.C_BLOCK_COMMENT_MODE,{className:"id",begin:/\#[A-Za-z0-9_-]+/},{className:"class",begin:/\.[A-Za-z0-9_-]+/},{className:"attr_selector",begin:/\[/,end:/\]/,illegal:"$"},{className:"pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/},{className:"at_rule",begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{className:"at_rule",begin:"@",end:"[{;]",contains:[{className:"keyword",begin:/\S+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[c,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.CSS_NUMBER_MODE]}]},{className:"tag",begin:b,relevance:0},{className:"rules",begin:"{",end:"}",illegal:/\S/,contains:[a.C_BLOCK_COMMENT_MODE,d]}]}}),a.registerLanguage("d",function(a){var b={keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},c="(0|[1-9][\\d_]*)",d="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)",e="0[bB][01_]+",f="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)",g="0[xX]"+f,h="([eE][+-]?"+d+")",i="("+d+"(\\.\\d*|"+h+")|\\d+\\."+d+d+"|\\."+c+h+"?)",j="(0[xX]("+f+"\\."+f+"|\\.?"+f+")[pP][+-]?"+d+")",k="("+c+"|"+e+"|"+g+")",l="("+j+"|"+i+")",m="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",n={className:"number",begin:"\\b"+k+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},o={className:"number",begin:"\\b("+l+"([fF]|L|i|[fF]i|Li)?|"+k+"(i|[fF]i|Li))",relevance:0},p={className:"string",begin:"'("+m+"|.)",end:"'",illegal:"."},q={begin:m,relevance:0},r={className:"string",begin:'"',contains:[q],end:'"[cwd]?'},s={className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},t={className:"string",begin:"`",end:"`[cwd]?"},u={className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},v={className:"string",begin:'q"\\{',end:'\\}"'},w={className:"shebang",begin:"^#!",end:"$",relevance:5},x={className:"preprocessor",begin:"#(line)",end:"$",relevance:5},y={className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"},z=a.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{lexemes:a.UNDERSCORE_IDENT_RE,keywords:b,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,z,u,r,s,t,v,o,n,p,w,x,y]}}),a.registerLanguage("markdown",function(a){return{aliases:["md","mkdown","mkd"],contains:[{className:"header",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"blockquote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"`.+?`"},{begin:"^( {4}| )",end:"$",relevance:0}]},{className:"horizontal_rule",begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"link_label",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link_url",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"link_reference",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:"^\\[.+\\]:",returnBegin:!0,contains:[{className:"link_reference",begin:"\\[",end:"\\]:",excludeBegin:!0,excludeEnd:!0,starts:{className:"link_url",end:"$"}}]}]}}),a.registerLanguage("dart",function(a){var b={className:"subst",begin:"\\$\\{",end:"}",keywords:"true false null this is new super"},c={className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""',end:'"""'},{begin:"r'",end:"'",illegal:"\\n"},{ -begin:'r"',end:'"',illegal:"\\n"},{begin:"'''",end:"'''",contains:[a.BACKSLASH_ESCAPE,b]},{begin:'"""',end:'"""',contains:[a.BACKSLASH_ESCAPE,b]},{begin:"'",end:"'",illegal:"\\n",contains:[a.BACKSLASH_ESCAPE,b]},{begin:'"',end:'"',illegal:"\\n",contains:[a.BACKSLASH_ESCAPE,b]}]};b.contains=[a.C_NUMBER_MODE,c];var d={keyword:"assert break case catch class const continue default do else enum extends false final finally for if in is new null rethrow return super switch this throw true try var void while with",literal:"abstract as dynamic export external factory get implements import library operator part set static typedef",built_in:"print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num document window querySelector querySelectorAll Element ElementList"};return{keywords:d,contains:[c,a.COMMENT("/\\*\\*","\\*/",{subLanguage:"markdown"}),a.COMMENT("///","$",{subLanguage:"markdown"}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},a.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"},{begin:"=>"}]}}),a.registerLanguage("delphi",function(a){var b="exports register file shl array record property for mod while set ally label uses raise not stored class safecall var interface or private static exit index inherited to else stdcall override shr asm far resourcestring finalization packed virtual out and protected library do xorwrite goto near function end div overload object unit begin string on inline repeat until destructor write message program with read initialization except default nil if case cdecl in downto threadvar of try pascal const external constructor type public then implementation finally published procedure",c=[a.C_LINE_COMMENT_MODE,a.COMMENT(/\{/,/\}/,{relevance:0}),a.COMMENT(/\(\*/,/\*\)/,{relevance:10})],d={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},e={className:"string",begin:/(#\d+)+/},f={begin:a.IDENT_RE+"\\s*=\\s*class\\s*\\(",returnBegin:!0,contains:[a.TITLE_MODE]},g={className:"function",beginKeywords:"function constructor destructor procedure",end:/[:;]/,keywords:"function constructor|10 destructor|10 procedure|10",contains:[a.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:b,contains:[d,e]}].concat(c)};return{case_insensitive:!0,keywords:b,illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[d,e,a.NUMBER_MODE,f,g].concat(c)}}),a.registerLanguage("diff",function(a){return{aliases:["patch"],contains:[{className:"chunk",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"header",variants:[{begin:/Index: /,end:/$/},{begin:/=====/,end:/=====$/},{begin:/^\-\-\-/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+\+\+/,end:/$/},{begin:/\*{5}/,end:/\*{5}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"change",begin:"^\\!",end:"$"}]}}),a.registerLanguage("django",function(a){var b={className:"filter",begin:/\|[A-Za-z]+:?/,keywords:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",contains:[{className:"argument",begin:/"/,end:/"/},{className:"argument",begin:/'/,end:/'/}]};return{aliases:["jinja"],case_insensitive:!0,subLanguage:"xml",contains:[a.COMMENT(/\{%\s*comment\s*%}/,/\{%\s*endcomment\s*%}/),a.COMMENT(/\{#/,/#}/),{className:"template_tag",begin:/\{%/,end:/%}/,keywords:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim",contains:[b]},{className:"variable",begin:/\{\{/,end:/}}/,contains:[b]}]}}),a.registerLanguage("dns",function(a){return{aliases:["bind","zone"],keywords:{keyword:"IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT"},contains:[a.COMMENT(";","$"),{className:"operator",beginKeywords:"$TTL $GENERATE $INCLUDE $ORIGIN"},{className:"number",begin:"((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))"},{className:"number",begin:"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])"}]}}),a.registerLanguage("dockerfile",function(a){return{aliases:["docker"],case_insensitive:!0,keywords:{built_ins:"from maintainer cmd expose add copy entrypoint volume user workdir onbuild run env label"},contains:[a.HASH_COMMENT_MODE,{keywords:{built_in:"run cmd entrypoint volume add copy workdir onbuild label"},begin:/^ *(onbuild +)?(run|cmd|entrypoint|volume|add|copy|workdir|label) +/,starts:{end:/[^\\]\n/,subLanguage:"bash"}},{keywords:{built_in:"from maintainer expose env user onbuild"},begin:/^ *(onbuild +)?(from|maintainer|expose|env|user|onbuild) +/,end:/[^\\]\n/,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.NUMBER_MODE,a.HASH_COMMENT_MODE]}]}}),a.registerLanguage("dos",function(a){var b=a.COMMENT(/@?rem\b/,/$/,{relevance:10}),c={className:"label",begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",relevance:0};return{aliases:["bat","cmd"],case_insensitive:!0,illegal:/\/\*/,keywords:{flow:"if else goto for in do call exit not exist errorlevel defined",operator:"equ neq lss leq gtr geq",keyword:"shift cd dir echo setlocal endlocal set pause copy",stream:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",winutils:"ping net ipconfig taskkill xcopy ren del",built_in:"append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color comp compact convert date dir diskcomp diskcopy doskey erase fs find findstr format ftype graftabl help keyb label md mkdir mode more move path pause print popd pushd promt rd recover rem rename replace restore rmdir shiftsort start subst time title tree type ver verify vol"},contains:[{className:"envvar",begin:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{className:"function",begin:c.begin,end:"goto:eof",contains:[a.inherit(a.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),b]},{className:"number",begin:"\\b\\d+",relevance:0},b]}}),a.registerLanguage("dust",function(a){var b="if eq ne lt lte gt gte select default math sep";return{aliases:["dst"],case_insensitive:!0,subLanguage:"xml",contains:[{className:"expression",begin:"{",end:"}",relevance:0,contains:[{className:"begin-block",begin:"#[a-zA-Z- .]+",keywords:b},{className:"string",begin:'"',end:'"'},{className:"end-block",begin:"\\/[a-zA-Z- .]+",keywords:b},{className:"variable",begin:"[a-zA-Z-.]+",keywords:b,relevance:0}]}]}}),a.registerLanguage("elixir",function(a){var b="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?",c="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",d="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",e={className:"subst",begin:"#\\{",end:"}",lexemes:b,keywords:d},f={className:"string",contains:[a.BACKSLASH_ESCAPE,e],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},g={className:"function",beginKeywords:"def defp defmacro",end:/\B\b/,contains:[a.inherit(a.TITLE_MODE,{begin:b,endsParent:!0})]},h=a.inherit(g,{className:"class",beginKeywords:"defmodule defrecord",end:/\bdo\b|$|;/}),i=[f,a.HASH_COMMENT_MODE,h,g,{className:"constant",begin:"(\\b[A-Z_]\\w*(.)?)+",relevance:0},{className:"symbol",begin:":",contains:[f,{begin:c}],relevance:0},{className:"symbol",begin:b+":",relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"->"},{begin:"("+a.RE_STARTERS_RE+")\\s*",contains:[a.HASH_COMMENT_MODE,{className:"regexp",illegal:"\\n",contains:[a.BACKSLASH_ESCAPE,e],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}],relevance:0}];return e.contains=i,{lexemes:b,keywords:d,contains:i}}),a.registerLanguage("elm",function(a){var b=[a.COMMENT("--","$"),a.COMMENT("{-","-}",{contains:["self"]})],c={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},d={className:"container",begin:"\\(",end:"\\)",illegal:'"',contains:[{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"}].concat(b)},e={className:"container",begin:"{",end:"}",contains:d.contains};return{keywords:"let in if then else case of where module import exposing type alias as infix infixl infixr port",contains:[{className:"module",begin:"\\bmodule\\b",end:"where",keywords:"module where",contains:[d].concat(b),illegal:"\\W\\.|;"},{className:"import",begin:"\\bimport\\b",end:"$",keywords:"import|0 as exposing",contains:[d].concat(b),illegal:"\\W\\.|;"},{className:"typedef",begin:"\\btype\\b",end:"$",keywords:"type alias",contains:[c,d,e].concat(b)},{className:"infix",beginKeywords:"infix infixl infixr",end:"$",contains:[a.C_NUMBER_MODE].concat(b)},{className:"foreign",begin:"\\bport\\b",end:"$",keywords:"port",contains:b},a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,c,a.inherit(a.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),{begin:"->|<-"}].concat(b)}}),a.registerLanguage("ruby",function(a){var b="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",c="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",d={className:"doctag",begin:"@[A-Za-z]+"},e={className:"value",begin:"#<",end:">"},f=[a.COMMENT("#","$",{contains:[d]}),a.COMMENT("^\\=begin","^\\=end",{contains:[d],relevance:10}),a.COMMENT("^__END__","\\n$")],g={className:"subst",begin:"#\\{",end:"}",keywords:c},h={className:"string",contains:[a.BACKSLASH_ESCAPE,g],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]},i={className:"params",begin:"\\(",end:"\\)",keywords:c},j=[h,e,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[a.inherit(a.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{className:"inheritance",begin:"<\\s*",contains:[{className:"parent",begin:"("+a.IDENT_RE+"::)?"+a.IDENT_RE}]}].concat(f)},{className:"function",beginKeywords:"def",end:"$|;",contains:[a.inherit(a.TITLE_MODE,{begin:b}),i].concat(f)},{className:"constant",begin:"(::)?(\\b[A-Z]\\w*(::)?)+",relevance:0},{className:"symbol",begin:a.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[h,{begin:b}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"("+a.RE_STARTERS_RE+")\\s*",contains:[e,{className:"regexp",contains:[a.BACKSLASH_ESCAPE,g],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(f),relevance:0}].concat(f);g.contains=j,i.contains=j;var k="[>?]>",l="[\\w#]+\\(\\w+\\):\\d+:\\d+>",m="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",n=[{begin:/^\s*=>/,className:"status",starts:{end:"$",contains:j}},{className:"prompt",begin:"^("+k+"|"+l+"|"+m+")",starts:{end:"$",contains:j}}];return{aliases:["rb","gemspec","podspec","thor","irb"],keywords:c,illegal:/\/\*/,contains:f.concat(n).concat(j)}}),a.registerLanguage("erb",function(a){return{subLanguage:"xml",contains:[a.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]}}),a.registerLanguage("erlang-repl",function(a){return{keywords:{special_functions:"spawn spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"prompt",begin:"^[0-9]+> ",relevance:10},a.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"constant",begin:"\\?(::)?([A-Z]\\w*(::)?)+"},{className:"arrow",begin:"->"},{className:"ok",begin:"ok"},{className:"exclamation_mark",begin:"!"},{className:"function_or_atom",begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{className:"variable",begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}),a.registerLanguage("erlang",function(a){var b="[a-z'][a-zA-Z0-9_']*",c="("+b+":"+b+"|"+b+")",d={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},e=a.COMMENT("%","$"),f={className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},g={begin:"fun\\s+"+b+"/\\d+"},h={begin:c+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{className:"function_name",begin:c,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},i={className:"tuple",begin:"{",end:"}",relevance:0},j={className:"variable",begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},k={className:"variable",begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},l={begin:"#"+a.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{className:"record_name",begin:"#"+a.UNDERSCORE_IDENT_RE,relevance:0},{begin:"{",end:"}",relevance:0}]},m={beginKeywords:"fun receive if try case",end:"end",keywords:d};m.contains=[e,g,a.inherit(a.APOS_STRING_MODE,{className:""}),m,h,a.QUOTE_STRING_MODE,f,i,j,k,l];var n=[e,g,m,h,a.QUOTE_STRING_MODE,f,i,j,k,l];h.contains[1].contains=n,i.contains=n,l.contains[1].contains=n;var o={className:"params",begin:"\\(",end:"\\)",contains:n};return{aliases:["erl"],keywords:d,illegal:"(",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[o,a.inherit(a.TITLE_MODE,{begin:b})],starts:{end:";|\\.",keywords:d,contains:n}},e,{className:"pp",begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,lexemes:"-"+a.IDENT_RE,keywords:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",contains:[o]},f,a.QUOTE_STRING_MODE,l,j,k,i,{begin:/\.$/}]}}),a.registerLanguage("fix",function(a){return{contains:[{begin:/[^\u2401\u0001]+/,end:/[\u2401\u0001]/,excludeEnd:!0,returnBegin:!0,returnEnd:!1,contains:[{begin:/([^\u2401\u0001=]+)/,end:/=([^\u2401\u0001=]+)/,returnEnd:!0,returnBegin:!1,className:"attribute"},{begin:/=/,end:/([\u2401\u0001])/,excludeEnd:!0,excludeBegin:!0,className:"string"}]}],case_insensitive:!0}}),a.registerLanguage("fortran",function(a){var b={className:"params",begin:"\\(",end:"\\)"},c={constant:".False. .True.",type:"integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image"};return{case_insensitive:!0,aliases:["f90","f95"],keywords:c,illegal:/\/\*/,contains:[a.inherit(a.APOS_STRING_MODE,{className:"string",relevance:0}),a.inherit(a.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[a.UNDERSCORE_TITLE_MODE,b]},a.COMMENT("!","$",{relevance:0}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}}),a.registerLanguage("fsharp",function(a){var b={begin:"<",end:">",contains:[a.inherit(a.TITLE_MODE,{begin:/'[a-zA-Z0-9_]+/})]};return{aliases:["fs"],keywords:"abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",illegal:/\/\*/,contains:[{className:"keyword",begin:/\b(yield|return|let|do)!/},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:'"""',end:'"""'},a.COMMENT("\\(\\*","\\*\\)"),{className:"class",beginKeywords:"type",end:"\\(|=|$",excludeEnd:!0,contains:[a.UNDERSCORE_TITLE_MODE,b]},{className:"annotation",begin:"\\[<",end:">\\]",relevance:10},{className:"attribute",begin:"\\B('[A-Za-z])\\b",contains:[a.BACKSLASH_ESCAPE]},a.C_LINE_COMMENT_MODE,a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),a.C_NUMBER_MODE]}}),a.registerLanguage("gams",function(a){var b="abort acronym acronyms alias all and assign binary card diag display else1 eps eq equation equations file files for1 free ge gt if inf integer le loop lt maximizing minimizing model models na ne negative no not option options or ord parameter parameters positive prod putpage puttl repeat sameas scalar scalars semicont semiint set1 sets smax smin solve sos1 sos2 sum system table then until using variable variables while1 xor yes";return{aliases:["gms"],case_insensitive:!0,keywords:b,contains:[{className:"section",beginKeywords:"sets parameters variables equations",end:";",contains:[{begin:"/",end:"/",contains:[a.NUMBER_MODE]}]},{className:"string",begin:"\\*{3}",end:"\\*{3}"},a.NUMBER_MODE,{className:"number",begin:"\\$[a-zA-Z0-9]+"}]}}),a.registerLanguage("gcode",function(a){var b="[A-Z_][A-Z0-9_.]*",c="\\%",d={literal:"",built_in:"",keyword:"IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR"},e={className:"preprocessor",begin:"([O])([0-9]+)"},f=[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.COMMENT(/\(/,/\)/),a.inherit(a.C_NUMBER_MODE,{begin:"([-+]?([0-9]*\\.?[0-9]+\\.?))|"+a.C_NUMBER_RE}),a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"keyword",begin:"([G])([0-9]+\\.?[0-9]?)"},{className:"title",begin:"([M])([0-9]+\\.?[0-9]?)"},{className:"title",begin:"(VC|VS|#)",end:"(\\d+)"},{className:"title",begin:"(VZOFX|VZOFY|VZOFZ)"},{className:"built_in",begin:"(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)",end:"([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])"},{className:"label",variants:[{begin:"N",end:"\\d+",illegal:"\\W"}]}];return{aliases:["nc"],case_insensitive:!0,lexemes:b,keywords:d,contains:[{className:"preprocessor",begin:c},e].concat(f)}}),a.registerLanguage("gherkin",function(a){return{aliases:["feature"],keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",contains:[{className:"keyword",begin:"\\*"},a.COMMENT("@[^@\r\n ]+","$"),{begin:"\\|",end:"\\|\\w*$",contains:[{className:"string",begin:"[^|]+"}]},{className:"variable",begin:"<",end:">"},a.HASH_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},a.QUOTE_STRING_MODE]}}),a.registerLanguage("glsl",function(a){return{keywords:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},illegal:'"',contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.C_NUMBER_MODE,{className:"preprocessor",begin:"#",end:"$"}]}}),a.registerLanguage("go",function(a){var b={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer", -constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{aliases:["golang"],keywords:b,illegal:"",end:",\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"symbol",begin:":\\w+"},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]},{begin:"\\(\\s*",end:"\\s*\\)",excludeEnd:!0,contains:[{begin:"\\w+\\s*=",end:"\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attribute",begin:"\\w+",relevance:0},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]}]},{className:"bullet",begin:"^\\s*[=~]\\s*",relevance:0},{begin:"#{",starts:{end:"}",subLanguage:"ruby"}}]}}),a.registerLanguage("handlebars",function(a){var b="each in with if else unless bindattr action collection debugger log outlet template unbound view yield";return{aliases:["hbs","html.hbs","html.handlebars"],case_insensitive:!0,subLanguage:"xml",contains:[{className:"expression",begin:"{{",end:"}}",contains:[{className:"begin-block",begin:"#[a-zA-Z- .]+",keywords:b},{className:"string",begin:'"',end:'"'},{className:"end-block",begin:"\\/[a-zA-Z- .]+",keywords:b},{className:"variable",begin:"[a-zA-Z-.]+",keywords:b}]}]}}),a.registerLanguage("haskell",function(a){var b=[a.COMMENT("--","$"),a.COMMENT("{-","-}",{contains:["self"]})],c={className:"pragma",begin:"{-#",end:"#-}"},d={className:"preprocessor",begin:"^#",end:"$"},e={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},f={className:"container",begin:"\\(",end:"\\)",illegal:'"',contains:[c,d,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},a.inherit(a.TITLE_MODE,{begin:"[_a-z][\\w']*"})].concat(b)},g={className:"container",begin:"{",end:"}",contains:f.contains};return{aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{className:"module",begin:"\\bmodule\\b",end:"where",keywords:"module where",contains:[f].concat(b),illegal:"\\W\\.|;"},{className:"import",begin:"\\bimport\\b",end:"$",keywords:"import|0 qualified as hiding",contains:[f].concat(b),illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[e,f].concat(b)},{className:"typedef",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[c,e,f,g].concat(b)},{className:"default",beginKeywords:"default",end:"$",contains:[e,f].concat(b)},{className:"infix",beginKeywords:"infix infixl infixr",end:"$",contains:[a.C_NUMBER_MODE].concat(b)},{className:"foreign",begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[e,a.QUOTE_STRING_MODE].concat(b)},{className:"shebang",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},c,d,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,e,a.inherit(a.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),{begin:"->|<-"}].concat(b)}}),a.registerLanguage("haxe",function(a){var b="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)";return{aliases:["hx"],keywords:{keyword:"break callback case cast catch class continue default do dynamic else enum extends extern for function here if implements import in inline interface never new override package private public return static super switch this throw trace try typedef untyped using var while",literal:"true false null"},contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.C_NUMBER_MODE,{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},a.TITLE_MODE]},{className:"preprocessor",begin:"#",end:"$",keywords:"if else elseif end error"},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[a.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},{className:"type",begin:":",end:b,relevance:10}]}]}}),a.registerLanguage("http",function(a){return{aliases:["https"],illegal:"\\S",contains:[{className:"status",begin:"^HTTP/[0-9\\.]+",end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{className:"request",begin:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{className:"string",end:"$"}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}),a.registerLanguage("inform7",function(a){var b="\\[",c="\\]";return{aliases:["i7"],case_insensitive:!0,keywords:{keyword:"thing room person man woman animal container supporter backdrop door scenery open closed locked inside gender is are say understand kind of rule"},contains:[{className:"string",begin:'"',end:'"',relevance:0,contains:[{className:"subst",begin:b,end:c}]},{className:"title",begin:/^(Volume|Book|Part|Chapter|Section|Table)\b/,end:"$"},{begin:/^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,end:":",contains:[{begin:"\\b\\(This",end:"\\)"}]},{className:"comment",begin:b,end:c,contains:["self"]}]}}),a.registerLanguage("ini",function(a){var b={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]};return{aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[a.COMMENT(";","$"),a.HASH_COMMENT_MODE,{className:"title",begin:/^\s*\[+/,end:/\]+/},{className:"setting",begin:/^[a-z0-9\[\]_-]+\s*=\s*/,end:"$",contains:[{className:"value",endsWithParent:!0,keywords:"on off true false yes no",contains:[{className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},b,{className:"number",begin:/([\+\-]+)?[\d]+_[\d_]+/},a.NUMBER_MODE],relevance:0}]}]}}),a.registerLanguage("irpf90",function(a){var b={className:"params",begin:"\\(",end:"\\)"},c={constant:".False. .True.",type:"integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image IRP_ALIGN irp_here"};return{case_insensitive:!0,keywords:c,illegal:/\/\*/,contains:[a.inherit(a.APOS_STRING_MODE,{className:"string",relevance:0}),a.inherit(a.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[a.UNDERSCORE_TITLE_MODE,b]},a.COMMENT("!","$",{relevance:0}),a.COMMENT("begin_doc","end_doc",{relevance:10}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}}),a.registerLanguage("java",function(a){var b=a.UNDERSCORE_IDENT_RE+"(<"+a.UNDERSCORE_IDENT_RE+">)?",c="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",d="\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",e={className:"number",begin:d,relevance:0};return{aliases:["jsp"],keywords:c,illegal:/<\/|#/,contains:[a.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"("+b+"\\s+)+"+a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:c,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:c,relevance:0,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},e,{className:"annotation",begin:"@[A-Za-z]+"}]}}),a.registerLanguage("javascript",function(a){return{aliases:["js"],keywords:{keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},contains:[{className:"pi",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"}]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:a.C_NUMBER_RE}],relevance:0},{begin:"("+a.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.REGEXP_MODE,{begin:/\s*[);\]]/,relevance:0,subLanguage:"xml"}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[a.inherit(a.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]}],illegal:/\[|%/},{begin:/\$[(.]/},{begin:"\\."+a.IDENT_RE,relevance:0},{beginKeywords:"import",end:"[;$]",keywords:"import from as",contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE]},{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},a.UNDERSCORE_TITLE_MODE]}],illegal:/#/}}),a.registerLanguage("json",function(a){var b={literal:"true false null"},c=[a.QUOTE_STRING_MODE,a.C_NUMBER_MODE],d={className:"value",end:",",endsWithParent:!0,excludeEnd:!0,contains:c,keywords:b},e={begin:"{",end:"}",contains:[{className:"attribute",begin:'\\s*"',end:'"\\s*:\\s*',excludeBegin:!0,excludeEnd:!0,contains:[a.BACKSLASH_ESCAPE],illegal:"\\n",starts:d}],illegal:"\\S"},f={begin:"\\[",end:"\\]",contains:[a.inherit(d,{className:null})],illegal:"\\S"};return c.splice(c.length,0,e,f),{contains:c,keywords:b,illegal:"\\S"}}),a.registerLanguage("julia",function(a){var b={keyword:"in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export finally for function global if immutable import importall let local macro module quote return try type typealias using while",literal:"true false ANY ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e|0 eu|0 eulergamma golden im nothing pi γ π φ",built_in:"ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip"},c="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",d={lexemes:c,keywords:b},e={className:"type-annotation",begin:/::/},f={className:"subtype",begin:/<:/},g={className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},h={className:"char",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},i={className:"subst",begin:/\$\(/,end:/\)/,keywords:b},j={className:"variable",begin:"\\$"+c},k={className:"string",contains:[a.BACKSLASH_ESCAPE,i,j],variants:[{begin:/\w*"/,end:/"\w*/},{begin:/\w*"""/,end:/"""\w*/}]},l={className:"string",contains:[a.BACKSLASH_ESCAPE,i,j],begin:"`",end:"`"},m={className:"macrocall",begin:"@"+c},n={className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]};return d.contains=[g,h,e,f,k,l,m,n,a.HASH_COMMENT_MODE],i.contains=d.contains,d}),a.registerLanguage("kotlin",function(a){var b="val var get set class trait object public open private protected final enum if else do while for when break continue throw try catch finally import package is as in return fun override default companion reified inline volatile transient native";return{keywords:{typename:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null",keyword:b},contains:[a.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"type",begin://,returnBegin:!0,excludeEnd:!1,relevance:0},{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:b,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:b,relevance:0,illegal:/\([^\(,\s:]+,/,contains:[{className:"typename",begin:/:\s*/,end:/\s*[=\)]/,excludeBegin:!0,returnEnd:!0,relevance:0}]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},{className:"class",beginKeywords:"class trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[a.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"typename",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0}]},{className:"variable",beginKeywords:"var val",end:/\s*[=:$]/,excludeEnd:!0},a.QUOTE_STRING_MODE,{className:"shebang",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},a.C_NUMBER_MODE]}}),a.registerLanguage("lasso",function(a){var b="[a-zA-Z_][a-zA-Z0-9_.]*",c="<\\?(lasso(script)?|=)",d="\\]|\\?>",e={literal:"true false none minimal full all void bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",built_in:"array date decimal duration integer map pair string tag xml null boolean bytes keyword list locale queue set stack staticarray local var variable global data self inherited currentcapture givenblock",keyword:"error_code error_msg error_pop error_push error_reset cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome"},f=a.COMMENT("",{relevance:0}),g={className:"preprocessor",begin:"\\[noprocess\\]",starts:{className:"markup",end:"\\[/noprocess\\]",returnEnd:!0,contains:[f]}},h={className:"preprocessor",begin:"\\[/noprocess|"+c},i={className:"variable",begin:"'"+b+"'"},j=[a.COMMENT("/\\*\\*!","\\*/"),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.inherit(a.C_NUMBER_MODE,{begin:a.C_NUMBER_RE+"|(infinity|nan)\\b"}),a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"`",end:"`"},{className:"variable",variants:[{begin:"[#$]"+b},{begin:"#",end:"\\d+",illegal:"\\W"}]},{className:"tag",begin:"::\\s*",end:b,illegal:"\\W"},{className:"attribute",variants:[{begin:"-(?!infinity)"+a.UNDERSCORE_IDENT_RE,relevance:0},{begin:"(\\.\\.\\.)"}]},{className:"subst",variants:[{begin:"->\\s*",contains:[i]},{begin:"->|\\\\|&&?|\\|\\||!(?!=|>)|(and|or|not)\\b",relevance:0}]},{className:"built_in",begin:"\\.\\.?\\s*",relevance:0,contains:[i]},{className:"class",beginKeywords:"define",returnEnd:!0,end:"\\(|=>",contains:[a.inherit(a.TITLE_MODE,{begin:a.UNDERSCORE_IDENT_RE+"(=(?!>))?"})]}];return{aliases:["ls","lassoscript"],case_insensitive:!0,lexemes:b+"|&[lg]t;",keywords:e,contains:[{className:"preprocessor",begin:d,relevance:0,starts:{className:"markup",end:"\\[|"+c,returnEnd:!0,relevance:0,contains:[f]}},g,h,{className:"preprocessor",begin:"\\[no_square_brackets",starts:{end:"\\[/no_square_brackets\\]",lexemes:b+"|&[lg]t;",keywords:e,contains:[{className:"preprocessor",begin:d,relevance:0,starts:{className:"markup",end:"\\[noprocess\\]|"+c,returnEnd:!0,contains:[f]}},g,h].concat(j)}},{className:"preprocessor",begin:"\\[",relevance:0},{className:"shebang",begin:"^#!.+lasso9\\b",relevance:10}].concat(j)}}),a.registerLanguage("less",function(a){var b="[\\w-]+",c="("+b+"|@{"+b+"})",d=[],e=[],f=function(a){return{className:"string",begin:"~?"+a+".*?"+a}},g=function(a,b,c){return{className:a,begin:b,relevance:c}},h=function(b,c,d){return a.inherit({className:b,begin:c+"\\(",end:"\\(",returnBegin:!0,excludeEnd:!0,relevance:0},d)},i={begin:"\\(",end:"\\)",contains:e,relevance:0};e.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,f("'"),f('"'),a.CSS_NUMBER_MODE,g("hexcolor","#[0-9A-Fa-f]+\\b"),h("function","(url|data-uri)",{starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}}),h("function",b),i,g("variable","@@?"+b,10),g("variable","@{"+b+"}"),g("built_in","~?`[^`]*?`"),{className:"attribute",begin:b+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0});var j=e.concat({begin:"{",end:"}",contains:d}),k={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(e)},l={className:"attribute",begin:c,end:":",excludeEnd:!0,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE],illegal:/\S/,starts:{end:"[;}]",returnEnd:!0,contains:e,illegal:"[<=$]"}},m={className:"at_rule",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:e,relevance:0}},n={className:"variable",variants:[{begin:"@"+b+"\\s*:",relevance:15},{begin:"@"+b}],starts:{end:"[;}]",returnEnd:!0,contains:j}},o={variants:[{begin:"[\\.#:&\\[]",end:"[;{}]"},{begin:c+"[^;]*{",end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,k,g("keyword","all\\b"),g("variable","@{"+b+"}"),g("tag",c+"%?",0),g("id","#"+c),g("class","\\."+c,0),g("keyword","&",0),h("pseudo",":not"),h("keyword",":extend"),g("pseudo","::?"+c),{className:"attr_selector",begin:"\\[",end:"\\]"},{begin:"\\(",end:"\\)",contains:j},{begin:"!important"}]};return d.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,m,n,o,l),{case_insensitive:!0,illegal:"[=>'/<($\"]",contains:d}}),a.registerLanguage("lisp",function(a){var b="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*",c="\\|[^]*?\\|",d="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?",e={className:"shebang",begin:"^#!",end:"$"},f={className:"literal",begin:"\\b(t{1}|nil)\\b"},g={className:"number",variants:[{begin:d,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{begin:"#(c|C)\\("+d+" +"+d,end:"\\)"}]},h=a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),i=a.COMMENT(";","$",{relevance:0}),j={className:"variable",begin:"\\*",end:"\\*"},k={className:"keyword",begin:"[:&]"+b},l={begin:b,relevance:0},m={begin:c},n={begin:"\\(",end:"\\)",contains:["self",f,h,g,l]},o={className:"quoted",contains:[g,h,j,k,n,l],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:"quote"},{begin:"'"+c}]},p={className:"quoted",variants:[{begin:"'"+b},{begin:"#'"+b+"(::"+b+")*"}]},q={className:"list",begin:"\\(\\s*",end:"\\)"},r={endsWithParent:!0,relevance:0};return q.contains=[{className:"keyword",variants:[{begin:b},{begin:c}]},r],r.contains=[o,p,q,f,g,h,i,j,k,m,l],{illegal:/\S/,contains:[g,e,f,h,i,o,p,q,l]}}),a.registerLanguage("livecodeserver",function(a){var b={className:"variable",begin:"\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+",relevance:0},c=[a.C_BLOCK_COMMENT_MODE,a.HASH_COMMENT_MODE,a.COMMENT("--","$"),a.COMMENT("[^:]//","$")],d=a.inherit(a.TITLE_MODE,{variants:[{begin:"\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*"},{begin:"\\b_[a-z0-9\\-]+"}]}),e=a.inherit(a.TITLE_MODE,{begin:"\\b([A-Za-z0-9_\\-]+)\\b"});return{case_insensitive:!1,keywords:{keyword:"$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph after byte bytes english the until http forever descending using line real8 with seventh for stdout finally element word words fourth before black ninth sixth characters chars stderr uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat end repeat URL in try into switch to words https token binfile each tenth as ticks tick system real4 by dateItems without char character ascending eighth whole dateTime numeric short first ftp integer abbreviated abbr abbrev private case while if", -constant:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",operator:"div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys",built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress constantNames cos date dateFormat decompress directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge millisec millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load multiply socket prepare process post seek rel relative read from process rename replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop subtract union unload wait write"},contains:[b,{className:"keyword",begin:"\\bend\\sif\\b"},{className:"function",beginKeywords:"function",end:"$",contains:[b,e,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE,d]},{className:"function",begin:"\\bend\\s+",end:"$",keywords:"end",contains:[e,d]},{className:"command",beginKeywords:"command on",end:"$",contains:[b,e,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE,d]},{className:"preprocessor",variants:[{begin:"<\\?(rev|lc|livecode)",relevance:10},{begin:"<\\?"},{begin:"\\?>"}]},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE,d].concat(c),illegal:";$|^\\[|^="}}),a.registerLanguage("livescript",function(a){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger case default function var with then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super case default function var void const let enum export import native __hasProp __extends __slice __bind __indexOf",literal:"true false null undefined yes no on off it that void",built_in:"npm require console print module global window document"},c="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",d=a.inherit(a.TITLE_MODE,{begin:c}),e={className:"subst",begin:/#\{/,end:/}/,keywords:b},f={className:"subst",begin:/#[A-Za-z$_]/,end:/(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,keywords:b},g=[a.BINARY_NUMBER_MODE,{className:"number",begin:"(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)",relevance:0,starts:{end:"(\\s*/)?",relevance:0}},{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[a.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[a.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[a.BACKSLASH_ESCAPE,e,f]},{begin:/"/,end:/"/,contains:[a.BACKSLASH_ESCAPE,e,f]},{begin:/\\/,end:/(\s|$)/,excludeEnd:!0}]},{className:"pi",variants:[{begin:"//",end:"//[gim]*",contains:[e,a.HASH_COMMENT_MODE]},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{className:"property",begin:"@"+c},{begin:"``",end:"``",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];e.contains=g;var h={className:"params",begin:"\\(",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:b,contains:["self"].concat(g)}]};return{aliases:["ls"],keywords:b,illegal:/\/\*/,contains:g.concat([a.COMMENT("\\/\\*","\\*\\/"),a.HASH_COMMENT_MODE,{className:"function",contains:[d,h],returnBegin:!0,variants:[{begin:"("+c+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B\\->\\*?",end:"\\->\\*?"},{begin:"("+c+"\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?",end:"[-~]{1,2}>\\*?"},{begin:"("+c+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?",end:"!?[-~]{1,2}>\\*?"}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[d]},d]},{className:"attribute",begin:c+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}),a.registerLanguage("lua",function(a){var b="\\[=*\\[",c="\\]=*\\]",d={begin:b,end:c,contains:["self"]},e=[a.COMMENT("--(?!"+b+")","$"),a.COMMENT("--"+b,c,{contains:[d],relevance:10})];return{lexemes:a.UNDERSCORE_IDENT_RE,keywords:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},contains:e.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[a.inherit(a.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:e}].concat(e)},a.C_NUMBER_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:b,end:c,contains:[d],relevance:5}])}}),a.registerLanguage("makefile",function(a){var b={className:"variable",begin:/\$\(/,end:/\)/,contains:[a.BACKSLASH_ESCAPE]};return{aliases:["mk","mak"],contains:[a.HASH_COMMENT_MODE,{begin:/^\w+\s*\W*=/,returnBegin:!0,relevance:0,starts:{className:"constant",end:/\s*\W*=/,excludeEnd:!0,starts:{end:/$/,relevance:0,contains:[b]}}},{className:"title",begin:/^[\w]+:\s*$/},{className:"phony",begin:/^\.PHONY:/,end:/$/,keywords:".PHONY",lexemes:/[\.\w]+/},{begin:/^\t+/,end:/$/,relevance:0,contains:[a.QUOTE_STRING_MODE,b]}]}}),a.registerLanguage("mathematica",function(a){return{aliases:["mma"],lexemes:"(\\$|\\b)"+a.IDENT_RE+"\\b",keywords:"AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OwenT OwnValues PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine Transparent UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian XMLElement XMLObject Xnor Xor Yellow YuleDissimilarity ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform $Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber", -contains:[{className:"comment",begin:/\(\*/,end:/\*\)/},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{className:"list",begin:/\{/,end:/\}/,illegal:/:/}]}}),a.registerLanguage("matlab",function(a){var b=[a.C_NUMBER_MODE,{className:"string",begin:"'",end:"'",contains:[a.BACKSLASH_ESCAPE,{begin:"''"}]}],c={relevance:0,contains:[{className:"operator",begin:/'['\.]*/}]};return{keywords:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"},{className:"params",begin:"\\[",end:"\\]"}]},{begin:/[a-zA-Z_][a-zA-Z_0-9]*'['\.]*/,returnBegin:!0,relevance:0,contains:[{begin:/[a-zA-Z_][a-zA-Z_0-9]*/,relevance:0},c.contains[0]]},{className:"matrix",begin:"\\[",end:"\\]",contains:b,relevance:0,starts:c},{className:"cell",begin:"\\{",end:/}/,contains:b,relevance:0,starts:c},{begin:/\)/,relevance:0,starts:c},a.COMMENT("^\\s*\\%\\{\\s*$","^\\s*\\%\\}\\s*$"),a.COMMENT("\\%","$")].concat(b)}}),a.registerLanguage("mel",function(a){return{keywords:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",illegal:""},{begin:"<=",relevance:0},{begin:"=>",relevance:0},{begin:"/\\\\"},{begin:"\\\\/"}]},k={className:"built_in",variants:[{begin:":-\\|-->"},{begin:"=",relevance:0}]};return{aliases:["m","moo"],keywords:b,contains:[j,k,d,e,f,a.NUMBER_MODE,g,h,{begin:/:-/}]}}),a.registerLanguage("mizar",function(a){return{keywords:"environ vocabularies notations constructors definitions registrations theorems schemes requirements begin end definition registration cluster existence pred func defpred deffunc theorem proof let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from be being by means equals implies iff redefine define now not or attr is mode suppose per cases set thesis contradiction scheme reserve struct correctness compatibility coherence symmetry assymetry reflexivity irreflexivity connectedness uniqueness commutativity idempotence involutiveness projectivity",contains:[a.COMMENT("::","$")]}}),a.registerLanguage("perl",function(a){var b="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when",c={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:b},d={begin:"->{",end:"}"},e={className:"variable",variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},f=[a.BACKSLASH_ESCAPE,c,e],g=[e,a.HASH_COMMENT_MODE,a.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),d,{className:"string",contains:f,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*\\<",end:"\\>",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[a.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE]},{begin:"{\\w+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+a.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[a.HASH_COMMENT_MODE,{className:"regexp",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[a.BACKSLASH_ESCAPE],relevance:0}]},{className:"sub",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",relevance:5},{className:"operator",begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return c.contains=g,d.contains=g,{aliases:["pl"],keywords:b,contains:g}}),a.registerLanguage("mojolicious",function(a){return{subLanguage:"xml",contains:[{className:"preprocessor",begin:"^__(END|DATA)__$"},{begin:"^\\s*%{1,2}={0,2}",end:"$",subLanguage:"perl"},{begin:"<%{1,2}={0,2}",end:"={0,1}%>",subLanguage:"perl",excludeBegin:!0,excludeEnd:!0}]}}),a.registerLanguage("monkey",function(a){var b={className:"number",relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},a.NUMBER_MODE]};return{case_insensitive:!0,keywords:{keyword:"public private property continue exit extern new try catch eachin not abstract final select case default const local global field end if then else elseif endif while wend repeat until forever for to step next return module inline throw",built_in:"DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI",literal:"true false null and or shl shr mod"},illegal:/\/\*/,contains:[a.COMMENT("#rem","#end"),a.COMMENT("'","$",{relevance:0}),{className:"function",beginKeywords:"function method",end:"[(=:]|$",illegal:/\n/,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"$",contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{className:"variable",begin:"\\b(self|super)\\b"},{className:"preprocessor",beginKeywords:"import",end:"$"},{className:"preprocessor",begin:"\\s*#",end:"$",keywords:"if else elseif endif end then"},{className:"pi",begin:"^\\s*strict\\b"},{beginKeywords:"alias",end:"=",contains:[a.UNDERSCORE_TITLE_MODE]},a.QUOTE_STRING_MODE,b]}}),a.registerLanguage("nginx",function(a){var b={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+a.UNDERSCORE_IDENT_RE}]},c={endsWithParent:!0,lexemes:"[a-z/_]+",keywords:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[a.HASH_COMMENT_MODE,{className:"string",contains:[a.BACKSLASH_ESCAPE,b],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{className:"url",begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[b]},{className:"regexp",contains:[a.BACKSLASH_ESCAPE,b],variants:[{begin:"\\s\\^",end:"\\s|{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},b]};return{aliases:["nginxconf"],contains:[a.HASH_COMMENT_MODE,{begin:a.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"title",begin:a.UNDERSCORE_IDENT_RE,starts:c}],relevance:0}],illegal:"[^\\s\\}]"}}),a.registerLanguage("nimrod",function(a){return{aliases:["nim"],keywords:{keyword:"addr and as asm bind block break|0 case|0 cast const|0 continue|0 converter discard distinct|10 div do elif else|0 end|0 enum|0 except export finally for from generic if|0 import|0 in include|0 interface is isnot|10 iterator|10 let|0 macro method|10 mixin mod nil not notin|10 object|0 of or out proc|10 ptr raise ref|10 return shl shr static template try|0 tuple type|0 using|0 var|0 when while|0 with without xor yield",literal:"shared guarded stdin stdout stderr result|10 true false"},contains:[{className:"decorator",begin:/{\./,end:/\.}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/,end:/"""/},a.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/,relevance:0},{className:"type",begin:/\b(int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|float|float32|float64|bool|char|string|cstring|pointer|expr|stmt|void|auto|any|range|array|openarray|varargs|seq|set|clong|culong|cchar|cschar|cshort|cint|csize|clonglong|cfloat|cdouble|clongdouble|cuchar|cushort|cuint|culonglong|cstringarray|semistatic)\b/},{className:"number",begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},a.HASH_COMMENT_MODE]}}),a.registerLanguage("nix",function(a){var b={keyword:"rec with let in inherit assert if else then",constant:"true false or and null",built_in:"import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation"},c={className:"subst",begin:/\$\{/,end:/}/,keywords:b},d={className:"variable",begin:/[a-zA-Z0-9-_]+(\s*=)/,relevance:0},e={className:"string",begin:"''",end:"''",contains:[c]},f={className:"string",begin:'"',end:'"',contains:[c]},g=[a.NUMBER_MODE,a.HASH_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,e,f,d];return c.contains=g,{aliases:["nixos"],keywords:b,contains:g}}),a.registerLanguage("nsis",function(a){var b={className:"symbol",begin:"\\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)"},c={className:"constant",begin:"\\$+{[a-zA-Z0-9_]+}"},d={className:"variable",begin:"\\$+[a-zA-Z0-9_]+",illegal:"\\(\\){}"},e={className:"constant",begin:"\\$+\\([a-zA-Z0-9_]+\\)"},f={className:"params",begin:"(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)"},g={className:"constant",begin:"\\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)"};return{case_insensitive:!1,keywords:{keyword:"Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetPluginUnload SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption SubSectionEnd Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle", -literal:"admin all auto both colored current false force hide highest lastused leave listonly none normal notset off on open print show silent silentlog smooth textonly true user "},contains:[a.HASH_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[{className:"symbol",begin:"\\$(\\\\(n|r|t)|\\$)"},b,c,d,e]},a.COMMENT(";","$",{relevance:0}),{className:"function",beginKeywords:"Function PageEx Section SectionGroup SubSection",end:"$"},g,c,d,e,f,a.NUMBER_MODE,{className:"literal",begin:a.IDENT_RE+"::"+a.IDENT_RE}]}}),a.registerLanguage("objectivec",function(a){var b={className:"built_in",begin:"(AV|CA|CF|CG|CI|MK|MP|NS|UI)\\w+"},c={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},d=/[a-zA-Z@][a-zA-Z0-9_]*/,e="@interface @class @protocol @implementation";return{aliases:["mm","objc","obj-c"],keywords:c,lexemes:d,illegal:""}]}]},{className:"class",begin:"("+e.split(" ").join("|")+")\\b",end:"({|$)",excludeEnd:!0,keywords:e,lexemes:d,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"variable",begin:"\\."+a.UNDERSCORE_IDENT_RE,relevance:0}]}}),a.registerLanguage("ocaml",function(a){return{aliases:["ml"],keywords:{keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},illegal:/\/\/|>>/,lexemes:"[a-z_]\\w*!?",contains:[{className:"literal",begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},a.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"tag",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*"},a.inherit(a.APOS_STRING_MODE,{className:"char",relevance:0}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}}),a.registerLanguage("openscad",function(a){var b={className:"keyword",begin:"\\$(f[asn]|t|vp[rtd]|children)"},c={className:"literal",begin:"false|true|PI|undef"},d={className:"number",begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0},e=a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),f={className:"preprocessor",keywords:"include use",begin:"include|use <",end:">"},g={className:"params",begin:"\\(",end:"\\)",contains:["self",d,e,b,c]},h={className:"built_in",begin:"[*!#%]",relevance:0},i={className:"function",beginKeywords:"module function",end:"\\=|\\{",contains:[g,a.UNDERSCORE_TITLE_MODE]};return{aliases:["scad"],keywords:{keyword:"function module include use for intersection_for if else \\%",literal:"false true PI undef",built_in:"circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign"},contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,d,f,e,b,h,i]}}),a.registerLanguage("oxygene",function(a){var b="abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained",c=a.COMMENT("{","}",{relevance:0}),d=a.COMMENT("\\(\\*","\\*\\)",{relevance:10}),e={className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},f={className:"string",begin:"(#\\d+)+"},g={className:"function",beginKeywords:"function constructor destructor procedure method",end:"[:;]",keywords:"function constructor|10 destructor|10 procedure|10 method|10",contains:[a.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",keywords:b,contains:[e,f]},c,d]};return{case_insensitive:!0,keywords:b,illegal:'("|\\$[G-Zg-z]|\\/\\*||->)',contains:[c,d,a.C_LINE_COMMENT_MODE,e,f,a.NUMBER_MODE,g,{className:"class",begin:"=\\bclass\\b",end:"end;",keywords:b,contains:[e,f,c,d,a.C_LINE_COMMENT_MODE,g]}]}}),a.registerLanguage("parser3",function(a){var b=a.COMMENT("{","}",{contains:["self"]});return{subLanguage:"xml",relevance:0,contains:[a.COMMENT("^#","$"),a.COMMENT("\\^rem{","}",{relevance:10,contains:[b]}),{className:"preprocessor",begin:"^@(?:BASE|USE|CLASS|OPTIONS)$",relevance:10},{className:"title",begin:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{className:"variable",begin:"\\$\\{?[\\w\\-\\.\\:]+\\}?"},{className:"keyword",begin:"\\^[\\w\\-\\.\\:]+"},{className:"number",begin:"\\^#[0-9a-fA-F]+"},a.C_NUMBER_MODE]}}),a.registerLanguage("pf",function(a){var b={className:"variable",begin:/\$[\w\d#@][\w\d_]*/},c={className:"variable",begin://};return{aliases:["pf.conf"],lexemes:/[a-z0-9_<>-]+/,keywords:{built_in:"block match pass load anchor|5 antispoof|10 set table",keyword:"in out log quick on rdomain inet inet6 proto from port os to routeallow-opts divert-packet divert-reply divert-to flags group icmp-typeicmp6-type label once probability recieved-on rtable prio queuetos tag tagged user keep fragment for os dropaf-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robinsource-hash static-portdup-to reply-to route-toparent bandwidth default min max qlimitblock-policy debug fingerprints hostid limit loginterface optimizationreassemble ruleset-optimization basic none profile skip state-defaultsstate-policy timeoutconst counters persistno modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppysource-track global rule max-src-nodes max-src-states max-src-connmax-src-conn-rate overload flushscrub|5 max-mss min-ttl no-df|10 random-id",literal:"all any no-route self urpf-failed egress|5 unknown"},contains:[a.HASH_COMMENT_MODE,a.NUMBER_MODE,a.QUOTE_STRING_MODE,b,c]}}),a.registerLanguage("php",function(a){var b={className:"variable",begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},c={className:"preprocessor",begin:/<\?(php)?|\?>/},d={className:"string",contains:[a.BACKSLASH_ESCAPE,c],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null})]},e={variants:[a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]};return{aliases:["php3","php4","php5","php6"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",contains:[a.C_LINE_COMMENT_MODE,a.HASH_COMMENT_MODE,a.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"},c]}),a.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:a.UNDERSCORE_IDENT_RE}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[a.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},c,b,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",b,a.C_BLOCK_COMMENT_MODE,d,e]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[a.UNDERSCORE_TITLE_MODE]},{begin:"=>"},d,e]}}),a.registerLanguage("powershell",function(a){var b={begin:"`[\\s\\S]",relevance:0},c={className:"variable",variants:[{begin:/\$[\w\d][\w\d_:]*/}]},d={className:"string",begin:/"/,end:/"/,contains:[b,c,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},e={className:"string",begin:/'/,end:/'/};return{aliases:["ps"],lexemes:/-?[A-z\.\-]+/,case_insensitive:!0,keywords:{keyword:"if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch",literal:"$null $true $false",built_in:"Add-Content Add-History Add-Member Add-PSSnapin Clear-Content Clear-Item Clear-Item Property Clear-Variable Compare-Object ConvertFrom-SecureString Convert-Path ConvertTo-Html ConvertTo-SecureString Copy-Item Copy-ItemProperty Export-Alias Export-Clixml Export-Console Export-Csv ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-Content Get-Credential Get-Culture Get-Date Get-EventLog Get-ExecutionPolicy Get-Help Get-History Get-Host Get-Item Get-ItemProperty Get-Location Get-Member Get-PfxCertificate Get-Process Get-PSDrive Get-PSProvider Get-PSSnapin Get-Service Get-TraceSource Get-UICulture Get-Unique Get-Variable Get-WmiObject Group-Object Import-Alias Import-Clixml Import-Csv Invoke-Expression Invoke-History Invoke-Item Join-Path Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Item New-ItemProperty New-Object New-PSDrive New-Service New-TimeSpan New-Variable Out-Default Out-File Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Remove-Item Remove-ItemProperty Remove-PSDrive Remove-PSSnapin Remove-Variable Rename-Item Rename-ItemProperty Resolve-Path Restart-Service Resume-Service Select-Object Select-String Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-Location Set-PSDebug Set-Service Set-TraceSource Set-Variable Sort-Object Split-Path Start-Service Start-Sleep Start-Transcript Stop-Process Stop-Service Stop-Transcript Suspend-Service Tee-Object Test-Path Trace-Command Update-FormatData Update-TypeData Where-Object Write-Debug Write-Error Write-Host Write-Output Write-Progress Write-Verbose Write-Warning",operator:"-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace"},contains:[a.HASH_COMMENT_MODE,a.NUMBER_MODE,d,e,c]}}),a.registerLanguage("processing",function(a){return{keywords:{keyword:"BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject Object StringDict StringList Table TableRow XML false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",constant:"P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI",variable:"displayHeight displayWidth mouseY mouseX mousePressed pmouseX pmouseY key keyCode pixels focused frameCount frameRate height width",title:"setup draw",built_in:"size createGraphics beginDraw createShape loadShape PShape arc ellipse line point quad rect triangle bezier bezierDetail bezierPoint bezierTangent curve curveDetail curvePoint curveTangent curveTightness shape shapeMode beginContour beginShape bezierVertex curveVertex endContour endShape quadraticVertex vertex ellipseMode noSmooth rectMode smooth strokeCap strokeJoin strokeWeight mouseClicked mouseDragged mouseMoved mousePressed mouseReleased mouseWheel keyPressed keyPressedkeyReleased keyTyped print println save saveFrame day hour millis minute month second year background clear colorMode fill noFill noStroke stroke alpha blue brightness color green hue lerpColor red saturation modelX modelY modelZ screenX screenY screenZ ambient emissive shininess specular add createImage beginCamera camera endCamera frustum ortho perspective printCamera printProjection cursor frameRate noCursor exit loop noLoop popStyle pushStyle redraw binary boolean byte char float hex int str unbinary unhex join match matchAll nf nfc nfp nfs split splitTokens trim append arrayCopy concat expand reverse shorten sort splice subset box sphere sphereDetail createInput createReader loadBytes loadJSONArray loadJSONObject loadStrings loadTable loadXML open parseXML saveTable selectFolder selectInput beginRaw beginRecord createOutput createWriter endRaw endRecord PrintWritersaveBytes saveJSONArray saveJSONObject saveStream saveStrings saveXML selectOutput popMatrix printMatrix pushMatrix resetMatrix rotate rotateX rotateY rotateZ scale shearX shearY translate ambientLight directionalLight lightFalloff lights lightSpecular noLights normal pointLight spotLight image imageMode loadImage noTint requestImage tint texture textureMode textureWrap blend copy filter get loadPixels set updatePixels blendMode loadShader PShaderresetShader shader createFont loadFont text textFont textAlign textLeading textMode textSize textWidth textAscent textDescent abs ceil constrain dist exp floor lerp log mag map max min norm pow round sq sqrt acos asin atan atan2 cos degrees radians sin tan noise noiseDetail noiseSeed random randomGaussian randomSeed"},contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE]}}),a.registerLanguage("profile",function(a){return{contains:[a.C_NUMBER_MODE,{className:"built_in",begin:"{",end:"}$",excludeBegin:!0,excludeEnd:!0,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE],relevance:0},{className:"filename",begin:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",end:":",excludeEnd:!0},{className:"header",begin:"(ncalls|tottime|cumtime)",end:"$",keywords:"ncalls tottime|10 cumtime|10 filename",relevance:10},{className:"summary",begin:"function calls",end:"$",contains:[a.C_NUMBER_MODE],relevance:10},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"function",begin:"\\(",end:"\\)$",contains:[a.UNDERSCORE_TITLE_MODE],relevance:0}]}}),a.registerLanguage("prolog",function(a){var b={className:"atom",begin:/[a-z][A-Za-z0-9_]*/,relevance:0},c={className:"name",variants:[{begin:/[A-Z][a-zA-Z0-9_]*/},{begin:/_[A-Za-z0-9_]*/}],relevance:0},d={begin:/\(/,end:/\)/,relevance:0},e={begin:/\[/,end:/\]/},f={className:"comment",begin:/%/,end:/$/,contains:[a.PHRASAL_WORDS_MODE]},g={className:"string",begin:/`/,end:/`/,contains:[a.BACKSLASH_ESCAPE]},h={className:"string",begin:/0\'(\\\'|.)/},i={className:"string",begin:/0\'\\s/},j={begin:/:-/},k=[b,c,d,j,e,f,a.C_BLOCK_COMMENT_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,g,h,i,a.C_NUMBER_MODE];return d.contains=k,e.contains=k,{contains:k.concat([{begin:/\.$/}])}}),a.registerLanguage("protobuf",function(a){return{keywords:{keyword:"package import option optional required repeated group",built_in:"double float int32 int64 uint32 uint64 sint32 sint64 fixed32 fixed64 sfixed32 sfixed64 bool string bytes",literal:"true false"},contains:[a.QUOTE_STRING_MODE,a.NUMBER_MODE,a.C_LINE_COMMENT_MODE,{className:"class",beginKeywords:"message enum service",end:/\{/,illegal:/\n/,contains:[a.inherit(a.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"function",beginKeywords:"rpc",end:/;/,excludeEnd:!0,keywords:"rpc returns"},{className:"constant",begin:/^\s*[A-Z_]+/,end:/\s*=/,excludeEnd:!0}]}}),a.registerLanguage("puppet",function(a){var b={keyword:"and case default else elsif false if in import enherits node or true undef unless main settings $string ",literal:"alias audit before loglevel noop require subscribe tag owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check en_address ip_address realname command environment hour monute month monthday special target weekday creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey sslverify mounted",built_in:"architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version"},c=a.COMMENT("#","$"),d="([A-Za-z_]|::)(\\w|::)*",e=a.inherit(a.TITLE_MODE,{begin:d}),f={className:"variable",begin:"\\$"+d},g={className:"string",contains:[a.BACKSLASH_ESCAPE,f],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]};return{aliases:["pp"],contains:[c,f,g,{beginKeywords:"class",end:"\\{|;",illegal:/=/,contains:[e,c]},{beginKeywords:"define",end:/\{/,contains:[{className:"title",begin:a.IDENT_RE,endsParent:!0}]},{begin:a.IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\S/,contains:[{className:"name",begin:a.IDENT_RE},{begin:/\{/,end:/\}/,keywords:b,relevance:0,contains:[g,c,{begin:"[a-zA-Z_]+\\s*=>"},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},f]}],relevance:0}]}}),a.registerLanguage("python",function(a){var b={className:"prompt",begin:/^(>>>|\.\.\.) /},c={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[b],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[b],relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE]},d={className:"number",relevance:0,variants:[{begin:a.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:a.C_NUMBER_RE+"[lLjJ]?"}]},e={className:"params",begin:/\(/,end:/\)/,contains:["self",b,d,c]};return{aliases:["py","gyp"],keywords:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},illegal:/(<\/|->|\?)/,contains:[b,d,c,a.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def",relevance:10},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[a.UNDERSCORE_TITLE_MODE,e]},{className:"decorator",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}),a.registerLanguage("q",function(a){var b={keyword:"do while select delete by update from",constant:"0b 1b",built_in:"neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum",typename:"`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid"};return{aliases:["k","kdb"],keywords:b,lexemes:/\b(`?)[A-Za-z0-9_]+\b/,contains:[a.C_LINE_COMMENT_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE]}}),a.registerLanguage("r",function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{contains:[a.HASH_COMMENT_MODE,{begin:b,lexemes:b,keywords:{keyword:"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{begin:"`",end:"`",relevance:0},{className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]}]}}),a.registerLanguage("rib",function(a){return{keywords:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",illegal:""}]}}),a.registerLanguage("scala",function(a){var b={className:"annotation",begin:"@[A-Za-z]+"},c={className:"string",begin:'u?r?"""',end:'"""',relevance:10},d={className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},e={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},f={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},g={className:"class",beginKeywords:"class object trait type",end:/[:={\[(\n;]/,contains:[{className:"keyword",beginKeywords:"extends with",relevance:10},f]},h={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,contains:[f]};return{keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,c,a.QUOTE_STRING_MODE,d,e,h,g,a.C_NUMBER_MODE,b]}}),a.registerLanguage("scheme",function(a){var b="[^\\(\\)\\[\\]\\{\\}\",'`;#|\\\\\\s]+",c="(\\-|\\+)?\\d+([./]\\d+)?",d=c+"[+\\-]"+c+"i",e={built_in:"case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules ' * + , ,@ - ... / ; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"},f={className:"shebang",begin:"^#!",end:"$"},g={className:"literal",begin:"(#t|#f|#\\\\"+b+"|#\\\\.)"},h={className:"number",variants:[{begin:c,relevance:0},{begin:d,relevance:0},{begin:"#b[0-1]+(/[0-1]+)?"},{begin:"#o[0-7]+(/[0-7]+)?"},{begin:"#x[0-9a-f]+(/[0-9a-f]+)?"}]},i=a.QUOTE_STRING_MODE,j=[a.COMMENT(";","$",{relevance:0}),a.COMMENT("#\\|","\\|#")],k={begin:b,relevance:0},l={className:"variable",begin:"'"+b},m={endsWithParent:!0,relevance:0},n={className:"list",variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}],contains:[{className:"keyword",begin:b,lexemes:b,keywords:e},m]};return m.contains=[g,h,i,k,l,n].concat(j),{illegal:/\S/,contains:[f,h,i,l,n].concat(j)}}),a.registerLanguage("scilab",function(a){var b=[a.C_NUMBER_MODE,{className:"string",begin:"'|\"",end:"'|\"",contains:[a.BACKSLASH_ESCAPE,{begin:"''"}]}];return{aliases:["sci"],keywords:{keyword:"abort break case clear catch continue do elseif else endfunction end for functionglobal if pause return resume select try then while%f %F %t %T %pi %eps %inf %nan %e %i %z %s",built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp errorexec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isemptyisinfisnan isvector lasterror length load linspace list listfiles log10 log2 logmax min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand realround sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tantype typename warning zeros matrix"},illegal:'("|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function endfunction",end:"$",keywords:"function endfunction|10",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},{className:"transposed_variable",begin:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",end:"",relevance:0},{className:"matrix",begin:"\\[",end:"\\]'*[\\.']*",relevance:0,contains:b},a.COMMENT("//","$")].concat(b)}}),a.registerLanguage("scss",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*",c={className:"variable",begin:"(\\$"+b+")\\b"},d={className:"function",begin:b+"\\(",returnBegin:!0,excludeEnd:!0,end:"\\("},e={className:"hexcolor",begin:"#[0-9A-Fa-f]+"};({className:"attribute",begin:"[A-Z\\_\\.\\-]+",end:":",excludeEnd:!0,illegal:"[^\\s]",starts:{className:"value",endsWithParent:!0,excludeEnd:!0,contains:[d,e,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,a.C_BLOCK_COMMENT_MODE,{className:"important",begin:"!important"}]}});return{case_insensitive:!0,illegal:"[=/|']",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,d,{className:"id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{className:"class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{className:"attr_selector",begin:"\\[",end:"\\]",illegal:"$"},{className:"tag",begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",relevance:0},{className:"pseudo",begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{className:"pseudo",begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},c,{className:"attribute",begin:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",illegal:"[^\\s]"},{className:"value",begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{className:"value",begin:":",end:";",contains:[d,c,e,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,{className:"important",begin:"!important"}]},{className:"at_rule",begin:"@",end:"[{;]",keywords:"mixin include extend for if else each while charset import debug media page content font-face namespace warn",contains:[d,c,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,e,a.CSS_NUMBER_MODE,{className:"preprocessor",begin:"\\s[A-Za-z0-9_.-]+",relevance:0}]}]}}),a.registerLanguage("smali",function(a){var b=["add","and","cmp","cmpg","cmpl","const","div","double","float","goto","if","int","long","move","mul","neg","new","nop","not","or","rem","return","shl","shr","sput","sub","throw","ushr","xor"],c=["aget","aput","array","check","execute","fill","filled","goto/16","goto/32","iget","instance","invoke","iput","monitor","packed","sget","sparse"],d=["transient","constructor","abstract","final","synthetic","public","private","protected","static","bridge","system"];return{aliases:["smali"],contains:[{className:"string",begin:'"',end:'"',relevance:0},a.COMMENT("#","$",{relevance:0}),{className:"keyword",begin:"\\s*\\.end\\s[a-zA-Z0-9]*",relevance:1},{className:"keyword",begin:"^[ ]*\\.[a-zA-Z]*",relevance:0},{className:"keyword",begin:"\\s:[a-zA-Z_0-9]*",relevance:0},{className:"keyword",begin:"\\s("+d.join("|")+")",relevance:1},{className:"keyword",begin:"\\[",relevance:0},{className:"instruction",begin:"\\s("+b.join("|")+")\\s",relevance:1},{className:"instruction",begin:"\\s("+b.join("|")+")((\\-|/)[a-zA-Z0-9]+)+\\s",relevance:10},{className:"instruction",begin:"\\s("+c.join("|")+")((\\-|/)[a-zA-Z0-9]+)*\\s",relevance:10},{className:"class",begin:"L[^(;:\n]*;",relevance:0},{className:"function",begin:'( |->)[^(\n ;"]*\\(',relevance:0},{className:"function",begin:"\\)",relevance:0},{className:"variable",begin:"[vp][0-9]+",relevance:0}]}}),a.registerLanguage("smalltalk",function(a){var b="[a-z][a-zA-Z0-9_]*",c={className:"char",begin:"\\$.{1}"},d={className:"symbol",begin:"#"+a.UNDERSCORE_IDENT_RE};return{aliases:["st"],keywords:"self super nil true false thisContext",contains:[a.COMMENT('"','"'),a.APOS_STRING_MODE,{className:"class",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},{className:"method",begin:b+":",relevance:0},a.C_NUMBER_MODE,d,c,{className:"localvars",begin:"\\|[ ]*"+b+"([ ]+"+b+")*[ ]*\\|",returnBegin:!0,end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?"+b}]},{className:"array",begin:"\\#\\(",end:"\\)",contains:[a.APOS_STRING_MODE,c,a.C_NUMBER_MODE,d]}]}}),a.registerLanguage("sml",function(a){return{aliases:["ml"],keywords:{keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while",built_in:"array bool char exn int list option order real ref string substring vector unit word",literal:"true false NONE SOME LESS EQUAL GREATER nil"},illegal:/\/\/|>>/,lexemes:"[a-z_]\\w*!?",contains:[{className:"literal",begin:"\\[(\\|\\|)?\\]|\\(\\)"},a.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"tag",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*"},a.inherit(a.APOS_STRING_MODE,{className:"char",relevance:0}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}}),a.registerLanguage("sqf",function(a){var b=["!","-","+","!=","%","&&","*","/","=","==",">",">=","<","<=","or","plus","^",":",">>","abs","accTime","acos","action","actionKeys","actionKeysImages","actionKeysNames","actionKeysNamesArray","actionName","activateAddons","activatedAddons","activateKey","addAction","addBackpack","addBackpackCargo","addBackpackCargoGlobal","addBackpackGlobal","addCamShake","addCuratorAddons","addCuratorCameraArea","addCuratorEditableObjects","addCuratorEditingArea","addCuratorPoints","addEditorObject","addEventHandler","addGoggles","addGroupIcon","addHandgunItem","addHeadgear","addItem","addItemCargo","addItemCargoGlobal","addItemPool","addItemToBackpack","addItemToUniform","addItemToVest","addLiveStats","addMagazine","addMagazine array","addMagazineAmmoCargo","addMagazineCargo","addMagazineCargoGlobal","addMagazineGlobal","addMagazinePool","addMagazines","addMagazineTurret","addMenu","addMenuItem","addMissionEventHandler","addMPEventHandler","addMusicEventHandler","addPrimaryWeaponItem","addPublicVariableEventHandler","addRating","addResources","addScore","addScoreSide","addSecondaryWeaponItem","addSwitchableUnit","addTeamMember","addToRemainsCollector","addUniform","addVehicle","addVest","addWaypoint","addWeapon","addWeaponCargo","addWeaponCargoGlobal","addWeaponGlobal","addWeaponPool","addWeaponTurret","agent","agents","AGLToASL","aimedAtTarget","aimPos","airDensityRTD","airportSide","AISFinishHeal","alive","allControls","allCurators","allDead","allDeadMen","allDisplays","allGroups","allMapMarkers","allMines","allMissionObjects","allow3DMode","allowCrewInImmobile","allowCuratorLogicIgnoreAreas","allowDamage","allowDammage","allowFileOperations","allowFleeing","allowGetIn","allPlayers","allSites","allTurrets","allUnits","allUnitsUAV","allVariables","ammo","and","animate","animateDoor","animationPhase","animationState","append","armoryPoints","arrayIntersect","asin","ASLToAGL","ASLToATL","assert","assignAsCargo","assignAsCargoIndex","assignAsCommander","assignAsDriver","assignAsGunner","assignAsTurret","assignCurator","assignedCargo","assignedCommander","assignedDriver","assignedGunner","assignedItems","assignedTarget","assignedTeam","assignedVehicle","assignedVehicleRole","assignItem","assignTeam","assignToAirport","atan","atan2","atg","ATLToASL","attachedObject","attachedObjects","attachedTo","attachObject","attachTo","attackEnabled","backpack","backpackCargo","backpackContainer","backpackItems","backpackMagazines","backpackSpaceFor","behaviour","benchmark","binocular","blufor","boundingBox","boundingBoxReal","boundingCenter","breakOut","breakTo","briefingName","buildingExit","buildingPos","buttonAction","buttonSetAction","cadetMode","call","callExtension","camCommand","camCommit","camCommitPrepared","camCommitted","camConstuctionSetParams","camCreate","camDestroy","cameraEffect","cameraEffectEnableHUD","cameraInterest","cameraOn","cameraView","campaignConfigFile","camPreload","camPreloaded","camPrepareBank","camPrepareDir","camPrepareDive","camPrepareFocus","camPrepareFov","camPrepareFovRange","camPreparePos","camPrepareRelPos","camPrepareTarget","camSetBank","camSetDir","camSetDive","camSetFocus","camSetFov","camSetFovRange","camSetPos","camSetRelPos","camSetTarget","camTarget","camUseNVG","canAdd","canAddItemToBackpack","canAddItemToUniform","canAddItemToVest","cancelSimpleTaskDestination","canFire","canMove","canSlingLoad","canStand","canUnloadInCombat","captive","captiveNum","case","catch","cbChecked","cbSetChecked","ceil","cheatsEnabled","checkAIFeature","civilian","className","clearAllItemsFromBackpack","clearBackpackCargo","clearBackpackCargoGlobal","clearGroupIcons","clearItemCargo","clearItemCargoGlobal","clearItemPool","clearMagazineCargo","clearMagazineCargoGlobal","clearMagazinePool","clearOverlay","clearRadio","clearWeaponCargo","clearWeaponCargoGlobal","clearWeaponPool","closeDialog","closeDisplay","closeOverlay","collapseObjectTree","combatMode","commandArtilleryFire","commandChat","commander","commandFire","commandFollow","commandFSM","commandGetOut","commandingMenu","commandMove","commandRadio","commandStop","commandTarget","commandWatch","comment","commitOverlay","compile","compileFinal","completedFSM","composeText","configClasses","configFile","configHierarchy","configName","configProperties","configSourceMod","configSourceModList","connectTerminalToUAV","controlNull","controlsGroupCtrl","copyFromClipboard","copyToClipboard","copyWaypoints","cos","count","countEnemy","countFriendly","countSide","countType","countUnknown","createAgent","createCenter","createDialog","createDiaryLink","createDiaryRecord","createDiarySubject","createDisplay","createGearDialog","createGroup","createGuardedPoint","createLocation","createMarker","createMarkerLocal","createMenu","createMine","createMissionDisplay","createSimpleTask","createSite","createSoundSource","createTask","createTeam","createTrigger","createUnit","createUnit array","createVehicle","createVehicle array","createVehicleCrew","createVehicleLocal","crew","ctrlActivate","ctrlAddEventHandler","ctrlAutoScrollDelay","ctrlAutoScrollRewind","ctrlAutoScrollSpeed","ctrlChecked","ctrlClassName","ctrlCommit","ctrlCommitted","ctrlCreate","ctrlDelete","ctrlEnable","ctrlEnabled","ctrlFade","ctrlHTMLLoaded","ctrlIDC","ctrlIDD","ctrlMapAnimAdd","ctrlMapAnimClear","ctrlMapAnimCommit","ctrlMapAnimDone","ctrlMapCursor","ctrlMapMouseOver","ctrlMapScale","ctrlMapScreenToWorld","ctrlMapWorldToScreen","ctrlModel","ctrlModelDirAndUp","ctrlModelScale","ctrlParent","ctrlPosition","ctrlRemoveAllEventHandlers","ctrlRemoveEventHandler","ctrlScale","ctrlSetActiveColor","ctrlSetAutoScrollDelay","ctrlSetAutoScrollRewind","ctrlSetAutoScrollSpeed","ctrlSetBackgroundColor","ctrlSetChecked","ctrlSetEventHandler","ctrlSetFade","ctrlSetFocus","ctrlSetFont","ctrlSetFontH1","ctrlSetFontH1B","ctrlSetFontH2","ctrlSetFontH2B","ctrlSetFontH3","ctrlSetFontH3B","ctrlSetFontH4","ctrlSetFontH4B","ctrlSetFontH5","ctrlSetFontH5B","ctrlSetFontH6","ctrlSetFontH6B","ctrlSetFontHeight","ctrlSetFontHeightH1","ctrlSetFontHeightH2","ctrlSetFontHeightH3","ctrlSetFontHeightH4","ctrlSetFontHeightH5","ctrlSetFontHeightH6","ctrlSetFontP","ctrlSetFontPB","ctrlSetForegroundColor","ctrlSetModel","ctrlSetModelDirAndUp","ctrlSetModelScale","ctrlSetPosition","ctrlSetScale","ctrlSetStructuredText","ctrlSetText","ctrlSetTextColor","ctrlSetTooltip","ctrlSetTooltipColorBox","ctrlSetTooltipColorShade","ctrlSetTooltipColorText","ctrlShow","ctrlShown","ctrlText","ctrlTextHeight","ctrlType","ctrlVisible","curatorAddons","curatorCamera","curatorCameraArea","curatorCameraAreaCeiling","curatorCoef","curatorEditableObjects","curatorEditingArea","curatorEditingAreaType","curatorMouseOver","curatorPoints","curatorRegisteredObjects","curatorSelected","curatorWaypointCost","currentChannel","currentCommand","currentMagazine","currentMagazineDetail","currentMagazineDetailTurret","currentMagazineTurret","currentMuzzle","currentNamespace","currentTask","currentTasks","currentThrowable","currentVisionMode","currentWaypoint","currentWeapon","currentWeaponMode","currentWeaponTurret","currentZeroing","cursorTarget","customChat","customRadio","cutFadeOut","cutObj","cutRsc","cutText","damage","date","dateToNumber","daytime","deActivateKey","debriefingText","debugFSM","debugLog","default","deg","deleteAt","deleteCenter","deleteCollection","deleteEditorObject","deleteGroup","deleteIdentity","deleteLocation","deleteMarker","deleteMarkerLocal","deleteRange","deleteResources","deleteSite","deleteStatus","deleteTeam","deleteVehicle","deleteVehicleCrew","deleteWaypoint","detach","detectedMines","diag activeMissionFSMs","diag activeSQFScripts","diag activeSQSScripts","diag captureFrame","diag captureSlowFrame","diag fps","diag fpsMin","diag frameNo","diag log","diag logSlowFrame","diag tickTime","dialog","diarySubjectExists","didJIP","didJIPOwner","difficulty","difficultyEnabled","difficultyEnabledRTD","direction","directSay","disableAI","disableCollisionWith","disableConversation","disableDebriefingStats","disableSerialization","disableTIEquipment","disableUAVConnectability","disableUserInput","displayAddEventHandler","displayCtrl","displayNull","displayRemoveAllEventHandlers","displayRemoveEventHandler","displaySetEventHandler","dissolveTeam","distance","distance2D","distanceSqr","distributionRegion","do","doArtilleryFire","doFire","doFollow","doFSM","doGetOut","doMove","doorPhase","doStop","doTarget","doWatch","drawArrow","drawEllipse","drawIcon","drawIcon3D","drawLine","drawLine3D","drawLink","drawLocation","drawRectangle","driver","drop","east","echo","editObject","editorSetEventHandler","effectiveCommander","else","emptyPositions","enableAI","enableAIFeature","enableAttack","enableCamShake","enableCaustics","enableCollisionWith","enableCopilot","enableDebriefingStats","enableDiagLegend","enableEndDialog","enableEngineArtillery","enableEnvironment","enableFatigue","enableGunLights","enableIRLasers","enableMimics","enablePersonTurret","enableRadio","enableReload","enableRopeAttach","enableSatNormalOnDetail","enableSaving","enableSentences","enableSimulation","enableSimulationGlobal","enableTeamSwitch","enableUAVConnectability","enableUAVWaypoints","endLoadingScreen","endMission","engineOn","enginesIsOnRTD","enginesRpmRTD","enginesTorqueRTD","entities","estimatedEndServerTime","estimatedTimeLeft","evalObjectArgument","everyBackpack","everyContainer","exec","execEditorScript","execFSM","execVM","exit","exitWith","exp","expectedDestination","eyeDirection","eyePos","face","faction","fadeMusic","fadeRadio","fadeSound","fadeSpeech","failMission","false","fillWeaponsFromPool","find","findCover","findDisplay","findEditorObject","findEmptyPosition","findEmptyPositionReady","findNearestEnemy","finishMissionInit","finite","fire","fireAtTarget","firstBackpack","flag","flagOwner","fleeing","floor","flyInHeight","fog","fogForecast","fogParams","for","forceAddUniform","forceEnd","forceMap","forceRespawn","forceSpeed","forceWalk","forceWeaponFire","forceWeatherChange","forEach","forEachMember","forEachMemberAgent","forEachMemberTeam","format","formation","formationDirection","formationLeader","formationMembers","formationPosition","formationTask","formatText","formLeader","freeLook","from","fromEditor","fuel","fullCrew","gearSlotAmmoCount","gearSlotData","getAllHitPointsDamage","getAmmoCargo","getArray","getArtilleryAmmo","getArtilleryComputerSettings","getArtilleryETA","getAssignedCuratorLogic","getAssignedCuratorUnit","getBackpackCargo","getBleedingRemaining","getBurningValue","getCargoIndex","getCenterOfMass","getClientState","getConnectedUAV","getDammage","getDescription","getDir","getDirVisual","getDLCs","getEditorCamera","getEditorMode","getEditorObjectScope","getElevationOffset","getFatigue","getFriend","getFSMVariable","getFuelCargo","getGroupIcon","getGroupIconParams","getGroupIcons","getHideFrom","getHit","getHitIndex","getHitPointDamage","getItemCargo","getMagazineCargo","getMarkerColor","getMarkerPos","getMarkerSize","getMarkerType","getMass","getModelInfo","getNumber","getObjectArgument","getObjectChildren","getObjectDLC","getObjectMaterials","getObjectProxy","getObjectTextures","getObjectType","getObjectViewDistance","getOxygenRemaining","getPersonUsedDLCs","getPlayerChannel","getPlayerUID","getPos","getPosASL","getPosASLVisual","getPosASLW","getPosATL","getPosATLVisual","getPosVisual","getPosWorld","getRepairCargo","getResolution","getShadowDistance","getSlingLoad","getSpeed","getSuppression","getTerrainHeightASL","getText","getVariable","getWeaponCargo","getWPPos","glanceAt","globalChat","globalRadio","goggles","goto","group","groupChat","groupFromNetId","groupIconSelectable","groupIconsVisible","groupId","groupOwner","groupRadio","groupSelectedUnits","groupSelectUnit","grpNull","gunner","gusts","halt","handgunItems","handgunMagazine","handgunWeapon","handsHit","hasInterface","hasWeapon","hcAllGroups","hcGroupParams","hcLeader","hcRemoveAllGroups","hcRemoveGroup","hcSelected","hcSelectGroup","hcSetGroup","hcShowBar","hcShownBar","headgear","hideBody","hideObject","hideObjectGlobal","hint","hintC","hintCadet","hintSilent","hmd","hostMission","htmlLoad","HUDMovementLevels","humidity","if","image","importAllGroups","importance","in","incapacitatedState","independent","inflame","inflamed","inGameUISetEventHandler","inheritsFrom","initAmbientLife","inputAction","inRangeOfArtillery","insertEditorObject","intersect","isAbleToBreathe","isAgent","isArray","isAutoHoverOn","isAutonomous","isAutotest","isBleeding","isBurning","isClass","isCollisionLightOn","isCopilotEnabled","isDedicated","isDLCAvailable","isEngineOn","isEqualTo","isFlashlightOn","isFlatEmpty","isForcedWalk","isFormationLeader","isHidden","isInRemainsCollector","isInstructorFigureEnabled","isIRLaserOn","isKeyActive","isKindOf","isLightOn","isLocalized","isManualFire","isMarkedForCollection","isMultiplayer","isNil","isNull","isNumber","isObjectHidden","isObjectRTD","isOnRoad","isPipEnabled","isPlayer","isRealTime","isServer","isShowing3DIcons","isSteamMission","isStreamFriendlyUIEnabled","isText","isTouchingGround","isTurnedOut","isTutHintsEnabled","isUAVConnectable","isUAVConnected","isUniformAllowed","isWalking","isWeaponDeployed","isWeaponRested","itemCargo","items","itemsWithMagazines","join","joinAs","joinAsSilent","joinSilent","joinString","kbAddDatabase","kbAddDatabaseTargets","kbAddTopic","kbHasTopic","kbReact","kbRemoveTopic","kbTell","kbWasSaid","keyImage","keyName","knowsAbout","land","landAt","landResult","language","laserTarget","lbAdd","lbClear","lbColor","lbCurSel","lbData","lbDelete","lbIsSelected","lbPicture","lbSelection","lbSetColor","lbSetCurSel","lbSetData","lbSetPicture","lbSetPictureColor","lbSetPictureColorDisabled","lbSetPictureColorSelected","lbSetSelectColor","lbSetSelectColorRight","lbSetSelected","lbSetTooltip","lbSetValue","lbSize","lbSort","lbSortByValue","lbText","lbValue","leader","leaderboardDeInit","leaderboardGetRows","leaderboardInit","leaveVehicle","libraryCredits","libraryDisclaimers","lifeState","lightAttachObject","lightDetachObject","lightIsOn","lightnings","limitSpeed","linearConversion","lineBreak","lineIntersects","lineIntersectsObjs","lineIntersectsSurfaces","lineIntersectsWith","linkItem","list","listObjects","ln","lnbAddArray","lnbAddColumn","lnbAddRow","lnbClear","lnbColor","lnbCurSelRow","lnbData","lnbDeleteColumn","lnbDeleteRow","lnbGetColumnsPosition","lnbPicture","lnbSetColor","lnbSetColumnsPos","lnbSetCurSelRow","lnbSetData","lnbSetPicture","lnbSetText","lnbSetValue","lnbSize","lnbText","lnbValue","load","loadAbs","loadBackpack","loadFile","loadGame","loadIdentity","loadMagazine","loadOverlay","loadStatus","loadUniform","loadVest","local","localize","locationNull","locationPosition","lock","lockCameraTo","lockCargo","lockDriver","locked","lockedCargo","lockedDriver","lockedTurret","lockTurret","lockWP","log","logEntities","lookAt","lookAtPos","magazineCargo","magazines","magazinesAllTurrets","magazinesAmmo","magazinesAmmoCargo","magazinesAmmoFull","magazinesDetail","magazinesDetailBackpack","magazinesDetailUniform","magazinesDetailVest","magazinesTurret","magazineTurretAmmo","mapAnimAdd","mapAnimClear","mapAnimCommit","mapAnimDone","mapCenterOnCamera","mapGridPosition","markAsFinishedOnSteam","markerAlpha","markerBrush","markerColor","markerDir","markerPos","markerShape","markerSize","markerText","markerType","max","members","min","mineActive","mineDetectedBy","missionConfigFile","missionName","missionNamespace","missionStart","mod","modelToWorld","modelToWorldVisual","moonIntensity","morale","move","moveInAny","moveInCargo","moveInCommander","moveInDriver","moveInGunner","moveInTurret","moveObjectToEnd","moveOut","moveTime","moveTo","moveToCompleted","moveToFailed","musicVolume","name","name location","nameSound","nearEntities","nearestBuilding","nearestLocation","nearestLocations","nearestLocationWithDubbing","nearestObject","nearestObjects","nearObjects","nearObjectsReady","nearRoads","nearSupplies","nearTargets","needReload","netId","netObjNull","newOverlay","nextMenuItemIndex","nextWeatherChange","nil","nMenuItems","not","numberToDate","objectCurators","objectFromNetId","objectParent","objNull","objStatus","onBriefingGroup","onBriefingNotes","onBriefingPlan","onBriefingTeamSwitch","onCommandModeChanged","onDoubleClick","onEachFrame","onGroupIconClick","onGroupIconOverEnter","onGroupIconOverLeave","onHCGroupSelectionChanged","onMapSingleClick","onPlayerConnected","onPlayerDisconnected","onPreloadFinished","onPreloadStarted","onShowNewObject","onTeamSwitch","openCuratorInterface","openMap","openYoutubeVideo","opfor","or","orderGetIn","overcast","overcastForecast","owner","param","params","parseNumber","parseText","parsingNamespace","particlesQuality","pi","pickWeaponPool","pitch","playableSlotsNumber","playableUnits","playAction","playActionNow","player","playerRespawnTime","playerSide","playersNumber","playGesture","playMission","playMove","playMoveNow","playMusic","playScriptedMission","playSound","playSound3D","position","positionCameraToWorld","posScreenToWorld","posWorldToScreen","ppEffectAdjust","ppEffectCommit","ppEffectCommitted","ppEffectCreate","ppEffectDestroy","ppEffectEnable","ppEffectForceInNVG","precision","preloadCamera","preloadObject","preloadSound","preloadTitleObj","preloadTitleRsc","preprocessFile","preprocessFileLineNumbers","primaryWeapon","primaryWeaponItems","primaryWeaponMagazine","priority","private","processDiaryLink","productVersion","profileName","profileNamespace","profileNameSteam","progressLoadingScreen","progressPosition","progressSetPosition","publicVariable","publicVariableClient","publicVariableServer","pushBack","putWeaponPool","queryItemsPool","queryMagazinePool","queryWeaponPool","rad","radioChannelAdd","radioChannelCreate","radioChannelRemove","radioChannelSetCallSign","radioChannelSetLabel","radioVolume","rain","rainbow","random","rank","rankId","rating","rectangular","registeredTasks","registerTask","reload","reloadEnabled","remoteControl","remoteExec","remoteExecCall","removeAction","removeAllActions","removeAllAssignedItems","removeAllContainers","removeAllCuratorAddons","removeAllCuratorCameraAreas","removeAllCuratorEditingAreas","removeAllEventHandlers","removeAllHandgunItems","removeAllItems","removeAllItemsWithMagazines","removeAllMissionEventHandlers","removeAllMPEventHandlers","removeAllMusicEventHandlers","removeAllPrimaryWeaponItems","removeAllWeapons","removeBackpack","removeBackpackGlobal","removeCuratorAddons","removeCuratorCameraArea","removeCuratorEditableObjects","removeCuratorEditingArea","removeDrawIcon","removeDrawLinks","removeEventHandler","removeFromRemainsCollector","removeGoggles","removeGroupIcon","removeHandgunItem","removeHeadgear","removeItem","removeItemFromBackpack","removeItemFromUniform","removeItemFromVest","removeItems","removeMagazine","removeMagazineGlobal","removeMagazines","removeMagazinesTurret","removeMagazineTurret","removeMenuItem","removeMissionEventHandler","removeMPEventHandler","removeMusicEventHandler","removePrimaryWeaponItem","removeSecondaryWeaponItem","removeSimpleTask","removeSwitchableUnit","removeTeamMember","removeUniform","removeVest","removeWeapon","removeWeaponGlobal","removeWeaponTurret","requiredVersion","resetCamShake","resetSubgroupDirection","resistance","resize","resources","respawnVehicle","restartEditorCamera","reveal","revealMine","reverse","reversedMouseY","roadsConnectedTo","roleDescription","ropeAttachedObjects","ropeAttachedTo","ropeAttachEnabled","ropeAttachTo","ropeCreate","ropeCut","ropeEndPosition","ropeLength","ropes","ropeUnwind","ropeUnwound","rotorsForcesRTD","rotorsRpmRTD","round","runInitScript","safeZoneH","safeZoneW","safeZoneWAbs","safeZoneX","safeZoneXAbs","safeZoneY","saveGame","saveIdentity","saveJoysticks","saveOverlay","saveProfileNamespace","saveStatus","saveVar","savingEnabled","say","say2D","say3D","scopeName","score","scoreSide","screenToWorld","scriptDone","scriptName","scriptNull","scudState","secondaryWeapon","secondaryWeaponItems","secondaryWeaponMagazine","select","selectBestPlaces","selectDiarySubject","selectedEditorObjects","selectEditorObject","selectionPosition","selectLeader","selectNoPlayer","selectPlayer","selectWeapon","selectWeaponTurret","sendAUMessage","sendSimpleCommand","sendTask","sendTaskResult","sendUDPMessage","serverCommand","serverCommandAvailable","serverCommandExecutable","serverName","serverTime","set","setAccTime","setAirportSide","setAmmo","setAmmoCargo","setAperture","setApertureNew","setArmoryPoints","setAttributes","setAutonomous","setBehaviour","setBleedingRemaining","setCameraInterest","setCamShakeDefParams","setCamShakeParams","setCamUseTi","setCaptive","setCenterOfMass","setCollisionLight","setCombatMode","setCompassOscillation","setCuratorCameraAreaCeiling","setCuratorCoef","setCuratorEditingAreaType","setCuratorWaypointCost","setCurrentChannel","setCurrentTask","setCurrentWaypoint","setDamage","setDammage","setDate","setDebriefingText","setDefaultCamera","setDestination","setDetailMapBlendPars","setDir","setDirection","setDrawIcon","setDropInterval","setEditorMode","setEditorObjectScope","setEffectCondition","setFace","setFaceAnimation","setFatigue","setFlagOwner","setFlagSide","setFlagTexture","setFog","setFog array","setFormation","setFormationTask","setFormDir","setFriend","setFromEditor","setFSMVariable","setFuel","setFuelCargo","setGroupIcon","setGroupIconParams","setGroupIconsSelectable","setGroupIconsVisible","setGroupId","setGroupIdGlobal","setGroupOwner","setGusts","setHideBehind","setHit","setHitIndex","setHitPointDamage","setHorizonParallaxCoef","setHUDMovementLevels","setIdentity","setImportance","setLeader","setLightAmbient","setLightAttenuation","setLightBrightness","setLightColor","setLightDayLight","setLightFlareMaxDistance","setLightFlareSize","setLightIntensity","setLightnings","setLightUseFlare","setLocalWindParams","setMagazineTurretAmmo","setMarkerAlpha","setMarkerAlphaLocal","setMarkerBrush","setMarkerBrushLocal","setMarkerColor","setMarkerColorLocal","setMarkerDir","setMarkerDirLocal","setMarkerPos","setMarkerPosLocal","setMarkerShape","setMarkerShapeLocal","setMarkerSize","setMarkerSizeLocal","setMarkerText","setMarkerTextLocal","setMarkerType","setMarkerTypeLocal","setMass","setMimic","setMousePosition","setMusicEffect","setMusicEventHandler","setName","setNameSound","setObjectArguments","setObjectMaterial","setObjectProxy","setObjectTexture","setObjectTextureGlobal","setObjectViewDistance","setOvercast","setOwner","setOxygenRemaining","setParticleCircle","setParticleClass","setParticleFire","setParticleParams","setParticleRandom","setPilotLight","setPiPEffect","setPitch","setPlayable","setPlayerRespawnTime","setPos","setPosASL","setPosASL2","setPosASLW","setPosATL","setPosition","setPosWorld","setRadioMsg","setRain","setRainbow","setRandomLip","setRank","setRectangular","setRepairCargo","setShadowDistance","setSide","setSimpleTaskDescription","setSimpleTaskDestination","setSimpleTaskTarget","setSimulWeatherLayers","setSize","setSkill","setSkill array","setSlingLoad","setSoundEffect","setSpeaker","setSpeech","setSpeedMode","setStatValue","setSuppression","setSystemOfUnits","setTargetAge","setTaskResult","setTaskState","setTerrainGrid","setText","setTimeMultiplier","setTitleEffect","setTriggerActivation","setTriggerArea","setTriggerStatements","setTriggerText","setTriggerTimeout","setTriggerType","setType","setUnconscious","setUnitAbility","setUnitPos","setUnitPosWeak","setUnitRank","setUnitRecoilCoefficient","setUnloadInCombat","setUserActionText","setVariable","setVectorDir","setVectorDirAndUp","setVectorUp","setVehicleAmmo","setVehicleAmmoDef","setVehicleArmor","setVehicleId","setVehicleLock","setVehiclePosition","setVehicleTiPars","setVehicleVarName","setVelocity","setVelocityTransformation","setViewDistance","setVisibleIfTreeCollapsed","setWaves","setWaypointBehaviour","setWaypointCombatMode","setWaypointCompletionRadius","setWaypointDescription","setWaypointFormation","setWaypointHousePosition","setWaypointLoiterRadius","setWaypointLoiterType","setWaypointName","setWaypointPosition","setWaypointScript","setWaypointSpeed","setWaypointStatements","setWaypointTimeout","setWaypointType","setWaypointVisible","setWeaponReloadingTime","setWind","setWindDir","setWindForce","setWindStr","setWPPos","show3DIcons","showChat","showCinemaBorder","showCommandingMenu","showCompass","showCuratorCompass","showGPS","showHUD","showLegend","showMap","shownArtilleryComputer","shownChat","shownCompass","shownCuratorCompass","showNewEditorObject","shownGPS","shownHUD","shownMap","shownPad","shownRadio","shownUAVFeed","shownWarrant","shownWatch","showPad","showRadio","showSubtitles","showUAVFeed","showWarrant","showWatch","showWaypoint","side","sideChat","sideEnemy","sideFriendly","sideLogic","sideRadio","sideUnknown","simpleTasks","simulationEnabled","simulCloudDensity","simulCloudOcclusion","simulInClouds","simulWeatherSync","sin","size","sizeOf","skill","skillFinal","skipTime","sleep","sliderPosition","sliderRange","sliderSetPosition","sliderSetRange","sliderSetSpeed","sliderSpeed","slingLoadAssistantShown","soldierMagazines","someAmmo","sort","soundVolume","spawn","speaker","speed","speedMode","splitString","sqrt","squadParams","stance","startLoadingScreen","step","stop","stopped","str","sunOrMoon","supportInfo","suppressFor","surfaceIsWater","surfaceNormal","surfaceType","swimInDepth","switch","switchableUnits","switchAction","switchCamera","switchGesture","switchLight","switchMove","synchronizedObjects","synchronizedTriggers","synchronizedWaypoints","synchronizeObjectsAdd","synchronizeObjectsRemove","synchronizeTrigger","synchronizeWaypoint","synchronizeWaypoint trigger","systemChat","systemOfUnits","tan","targetKnowledge","targetsAggregate","targetsQuery","taskChildren","taskCompleted","taskDescription","taskDestination","taskHint","taskNull","taskParent","taskResult","taskState","teamMember","teamMemberNull","teamName","teams","teamSwitch","teamSwitchEnabled","teamType","terminate","terrainIntersect","terrainIntersectASL","text","text location","textLog","textLogFormat","tg","then","throw","time","timeMultiplier","titleCut","titleFadeOut","titleObj","titleRsc","titleText","to","toArray","toLower","toString","toUpper","triggerActivated","triggerActivation","triggerArea","triggerAttachedVehicle","triggerAttachObject","triggerAttachVehicle","triggerStatements","triggerText","triggerTimeout","triggerTimeoutCurrent","triggerType","true","try","turretLocal","turretOwner","turretUnit","tvAdd","tvClear","tvCollapse","tvCount","tvCurSel","tvData","tvDelete","tvExpand","tvPicture","tvSetCurSel","tvSetData","tvSetPicture","tvSetPictureColor","tvSetTooltip","tvSetValue","tvSort","tvSortByValue","tvText","tvValue","type","typeName","typeOf","UAVControl","uiNamespace","uiSleep","unassignCurator","unassignItem","unassignTeam","unassignVehicle","underwater","uniform","uniformContainer","uniformItems","uniformMagazines","unitAddons","unitBackpack","unitPos","unitReady","unitRecoilCoefficient","units","unitsBelowHeight","unlinkItem","unlockAchievement","unregisterTask","updateDrawIcon","updateMenuItem","updateObjectTree","useAudioTimeForMoves","vectorAdd","vectorCos","vectorCrossProduct","vectorDiff","vectorDir","vectorDirVisual","vectorDistance","vectorDistanceSqr","vectorDotProduct","vectorFromTo","vectorMagnitude","vectorMagnitudeSqr","vectorMultiply","vectorNormalized","vectorUp","vectorUpVisual","vehicle","vehicleChat","vehicleRadio","vehicles","vehicleVarName","velocity","velocityModelSpace","verifySignature","vest","vestContainer","vestItems","vestMagazines","viewDistance","visibleCompass","visibleGPS","visibleMap","visiblePosition","visiblePositionASL","visibleWatch","waitUntil","waves","waypointAttachedObject","waypointAttachedVehicle","waypointAttachObject","waypointAttachVehicle","waypointBehaviour","waypointCombatMode","waypointCompletionRadius","waypointDescription","waypointFormation","waypointHousePosition","waypointLoiterRadius","waypointLoiterType","waypointName","waypointPosition","waypoints","waypointScript","waypointsEnabledUAV","waypointShow","waypointSpeed","waypointStatements","waypointTimeout","waypointTimeoutCurrent","waypointType","waypointVisible","weaponAccessories","weaponCargo","weaponDirection","weaponLowered","weapons","weaponsItems","weaponsItemsCargo","weaponState","weaponsTurret","weightRTD","west","WFSideText","while","wind","windDir","windStr","wingsForcesRTD","with","worldName","worldSize","worldToModel","worldToModelVisual","worldToScreen"],c=["case","catch","default","do","else","exit","exitWith|5","for","forEach","from","if","switch","then","throw","to","try","while","with"],d=["!","-","+","!=","%","&&","*","/","=","==",">",">=","<","<=","^",":",">>"],e=["_forEachIndex|10","_this|10","_x|10"],f=["true","false","nil"],g=b.filter(function(a){ -return-1==c.indexOf(a)&&-1==f.indexOf(a)&&-1==d.indexOf(a)});g=g.concat(e);var h={className:"string",relevance:0,variants:[{begin:'"',end:'"',contains:[{begin:'""'}]},{begin:"'",end:"'",contains:[{begin:"''"}]}]},i={className:"number",begin:a.NUMBER_RE,relevance:0},j={className:"string",variants:[a.QUOTE_STRING_MODE,{begin:"'\\\\?.",end:"'",illegal:"."}]},k={className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line pragma ifdef ifndef",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[j,{className:"string",begin:"<",end:">",illegal:"\\n"}]},j,i,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]};return{aliases:["sqf"],case_insensitive:!0,keywords:{keyword:c.join(" "),built_in:g.join(" "),literal:f.join(" ")},contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,i,h,k]}}),a.registerLanguage("sql",function(a){var b=a.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*]/,contains:[{className:"operator",beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke",end:/;/,endsWithParent:!0,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes c cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle d data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration e each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract f failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function g general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http i id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists k keep keep_duplicates key keys kill l language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim m main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex n name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding p package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime t table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[a.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[a.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE]},a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE,b]},a.C_BLOCK_COMMENT_MODE,b]}}),a.registerLanguage("stata",function(a){return{aliases:["do","ado"],case_insensitive:!0,keywords:"if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate g gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l la lab labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize meqparse mer merg merge mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5",contains:[{className:"label",variants:[{begin:"\\$\\{?[a-zA-Z0-9_]+\\}?"},{begin:"`[a-zA-Z0-9_]+'"}]},{className:"string",variants:[{begin:'`"[^\r\n]*?"\''},{begin:'"[^\r\n"]*"'}]},{className:"literal",variants:[{begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\(|$)"}]},a.COMMENT("^[ ]*\\*.*$",!1),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]}}),a.registerLanguage("step21",function(a){var b="[A-Z_][A-Z0-9_.]*",c="END-ISO-10303-21;",d={literal:"",built_in:"",keyword:"HEADER ENDSEC DATA"},e={className:"preprocessor",begin:"ISO-10303-21;",relevance:10},f=[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.COMMENT("/\\*\\*!","\\*/"),a.C_NUMBER_MODE,a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"label",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}];return{aliases:["p21","step","stp"],case_insensitive:!0,lexemes:b,keywords:d,contains:[{className:"preprocessor",begin:c,relevance:10},e].concat(f)}}),a.registerLanguage("stylus",function(a){var b={className:"variable",begin:"\\$"+a.IDENT_RE},c={className:"hexcolor",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})",relevance:10},d=["charset","css","debug","extend","font-face","for","import","include","media","mixin","page","warn","while"],e=["after","before","first-letter","first-line","active","first-child","focus","hover","lang","link","visited"],f=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],g="[\\.\\s\\n\\[\\:,]",h=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-variant-ligatures","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"],i=["\\{","\\}","\\?","(\\bReturn\\b)","(\\bEnd\\b)","(\\bend\\b)",";","#\\s","\\*\\s","===\\s","\\|","%"]; -return{aliases:["styl"],case_insensitive:!1,illegal:"("+i.join("|")+")",keywords:"if else for in",contains:[a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,c,{begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"+g,returnBegin:!0,contains:[{className:"class",begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"+g,returnBegin:!0,contains:[{className:"id",begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\b("+f.join("|")+")"+g,returnBegin:!0,contains:[{className:"tag",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"}]},{className:"pseudo",begin:"&?:?:\\b("+e.join("|")+")"+g},{className:"at_rule",begin:"@("+d.join("|")+")\\b"},b,a.CSS_NUMBER_MODE,a.NUMBER_MODE,{className:"function",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)",illegal:"[\\n]",returnBegin:!0,contains:[{className:"title",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"},{className:"params",begin:/\(/,end:/\)/,contains:[c,b,a.APOS_STRING_MODE,a.CSS_NUMBER_MODE,a.NUMBER_MODE,a.QUOTE_STRING_MODE]}]},{className:"attribute",begin:"\\b("+h.reverse().join("|")+")\\b"}]}}),a.registerLanguage("swift",function(a){var b={keyword:"__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},c={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},d=a.COMMENT("/\\*","\\*/",{contains:["self"]}),e={className:"subst",begin:/\\\(/,end:"\\)",keywords:b,contains:[]},f={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0},g=a.inherit(a.QUOTE_STRING_MODE,{contains:[e,a.BACKSLASH_ESCAPE]});return e.contains=[f],{keywords:b,contains:[g,a.C_LINE_COMMENT_MODE,d,c,f,{className:"func",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[a.inherit(a.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/,illegal:/\(/}),{className:"generics",begin://,illegal:/>/},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:b,contains:["self",f,g,a.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:b,end:"\\{",excludeEnd:!0,contains:[a.inherit(a.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/})]},{className:"preprocessor",begin:"(@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain)"},{beginKeywords:"import",end:/$/,contains:[a.C_LINE_COMMENT_MODE,d]}]}}),a.registerLanguage("tcl",function(a){return{aliases:["tk"],keywords:"after append apply array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock close concat continue dde dict encoding eof error eval exec exit expr fblocked fconfigure fcopy file fileevent filename flush for foreach format gets glob global history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename return safe scan seek set socket source split string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update uplevel upvar variable vwait while",contains:[a.COMMENT(";[ \\t]*#","$"),a.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"symbol",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{className:"variable",excludeEnd:!0,variants:[{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)",end:"[^a-zA-Z0-9_\\}\\$]"},{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"(\\))?[^a-zA-Z0-9_\\}\\$]"}]},{className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null})]},{className:"number",variants:[a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]}]}}),a.registerLanguage("tex",function(a){var b={className:"command",begin:"\\\\[a-zA-Zа-яА-я]+[\\*]?"},c={className:"command",begin:"\\\\[^a-zA-Zа-яА-я0-9]"},d={className:"special",begin:"[{}\\[\\]\\&#~]",relevance:0};return{contains:[{begin:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",returnBegin:!0,contains:[b,c,{className:"number",begin:" *=",end:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",excludeBegin:!0}],relevance:10},b,c,d,{className:"formula",begin:"\\$\\$",end:"\\$\\$",contains:[b,c,d],relevance:0},{className:"formula",begin:"\\$",end:"\\$",contains:[b,c,d],relevance:0},a.COMMENT("%","$",{relevance:0})]}}),a.registerLanguage("thrift",function(a){var b="bool byte i16 i32 i64 double string binary";return{keywords:{keyword:"namespace const typedef struct enum service exception void oneway set list map required optional",built_in:b,literal:"true false"},contains:[a.QUOTE_STRING_MODE,a.NUMBER_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[a.inherit(a.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",end:">",keywords:b,contains:["self"]}]}}),a.registerLanguage("tp",function(a){var b={className:"number",begin:"[1-9][0-9]*",relevance:0},c={className:"comment",begin:":[^\\]]+"},d={className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER| TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",b,c]},e={className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",b,a.QUOTE_STRING_MODE,c]};return{keywords:{keyword:"ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN SUBSTR FINDSTR VOFFSET",constant:"ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET"},contains:[d,e,{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},a.COMMENT("//","[;$]"),a.COMMENT("!","[;$]"),a.COMMENT("--eg:","$"),a.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"'"},a.C_NUMBER_MODE,{className:"variable",begin:"\\$[A-Za-z0-9_]+"}]}}),a.registerLanguage("twig",function(a){var b={className:"params",begin:"\\(",end:"\\)"},c="attribute block constant cycle date dump include max min parent random range source template_from_string",d={className:"function",beginKeywords:c,relevance:0,contains:[b]},e={className:"filter",begin:/\|[A-Za-z_]+:?/,keywords:"abs batch capitalize convert_encoding date date_modify default escape first format join json_encode keys last length lower merge nl2br number_format raw replace reverse round slice sort split striptags title trim upper url_encode",contains:[d]},f="autoescape block do embed extends filter flush for if import include macro sandbox set spaceless use verbatim";return f=f+" "+f.split(" ").map(function(a){return"end"+a}).join(" "),{aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[a.COMMENT(/\{#/,/#}/),{className:"template_tag",begin:/\{%/,end:/%}/,keywords:f,contains:[e,d]},{className:"variable",begin:/\{\{/,end:/}}/,contains:[e,d]}]}}),a.registerLanguage("typescript",function(a){var b={keyword:"in if for while finally var new function|0 do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class public private protected get set super static implements enum export import declare type namespace abstract",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document any number boolean string void"};return{aliases:["ts"],keywords:b,contains:[{className:"pi",begin:/^\s*['"]use strict['"]/,relevance:0},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:a.C_NUMBER_RE}],relevance:0},{begin:"("+a.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.REGEXP_MODE],relevance:0},{className:"function",begin:"function",end:/[\{;]/,excludeEnd:!0,keywords:b,contains:["self",a.inherit(a.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:b,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE],illegal:/["'\(]/}],illegal:/\[|%/,relevance:0},{className:"constructor",beginKeywords:"constructor",end:/\{/,excludeEnd:!0,relevance:10},{className:"module",beginKeywords:"module",end:/\{/,excludeEnd:!0},{className:"interface",beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+a.IDENT_RE,relevance:0}]}}),a.registerLanguage("vala",function(a){return{keywords:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object",literal:"false true null"},contains:[{className:"class",beginKeywords:"class interface delegate namespace",end:"{",excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[a.UNDERSCORE_TITLE_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""',relevance:5},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{className:"preprocessor",begin:"^#",end:"$",relevance:2},{className:"constant",begin:" [A-Z_]+ ",relevance:0}]}}),a.registerLanguage("vbnet",function(a){return{aliases:["vb"],case_insensitive:!0,keywords:{keyword:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},illegal:"//|{|}|endif|gosub|variant|wend",contains:[a.inherit(a.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),a.COMMENT("'","$",{returnBegin:!0,contains:[{className:"xmlDocTag",begin:"'''|",contains:[a.PHRASAL_WORDS_MODE]},{className:"xmlDocTag",begin:"",contains:[a.PHRASAL_WORDS_MODE]}]}),a.C_NUMBER_MODE,{className:"preprocessor",begin:"#",end:"$",keywords:"if else elseif end region externalsource"}]}}),a.registerLanguage("vbscript",function(a){return{aliases:["vbs"],case_insensitive:!0,keywords:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},illegal:"//",contains:[a.inherit(a.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),a.COMMENT(/'/,/$/,{relevance:0}),a.C_NUMBER_MODE]}}),a.registerLanguage("vbscript-html",function(a){return{subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}}),a.registerLanguage("verilog",function(a){return{aliases:["v"],case_insensitive:!0,keywords:{keyword:"always and assign begin buf bufif0 bufif1 case casex casez cmos deassign default defparam disable edge else end endcase endfunction endmodule endprimitive endspecify endtable endtask event for force forever fork function if ifnone initial inout input join macromodule module nand negedge nmos nor not notif0 notif1 or output parameter pmos posedge primitive pulldown pullup rcmos release repeat rnmos rpmos rtran rtranif0 rtranif1 specify specparam table task timescale tran tranif0 tranif1 wait while xnor xor",typename:"highz0 highz1 integer large medium pull0 pull1 real realtime reg scalared signed small strong0 strong1 supply0 supply0 supply1 supply1 time tri tri0 tri1 triand trior trireg vectored wand weak0 weak1 wire wor"},contains:[a.C_BLOCK_COMMENT_MODE,a.C_LINE_COMMENT_MODE,a.QUOTE_STRING_MODE,{className:"number",begin:"\\b(\\d+'(b|h|o|d|B|H|O|D))?[0-9xzXZ]+",contains:[a.BACKSLASH_ESCAPE],relevance:0},{className:"typename",begin:"\\.\\w+",relevance:0},{className:"value",begin:"#\\((?!parameter).+\\)"},{className:"keyword",begin:"\\+|-|\\*|/|%|<|>|=|#|`|\\!|&|\\||@|:|\\^|~|\\{|\\}",relevance:0}]}}),a.registerLanguage("vhdl",function(a){var b="\\d(_|\\d)*",c="[eE][-+]?"+b,d=b+"(\\."+b+")?("+c+")?",e="\\w+",f=b+"#"+e+"(\\."+e+")?#("+c+")?",g="\\b("+f+"|"+d+")";return{case_insensitive:!0,keywords:{keyword:"abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",typename:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},illegal:"{",contains:[a.C_BLOCK_COMMENT_MODE,a.COMMENT("--","$"),a.QUOTE_STRING_MODE,{className:"number",begin:g,relevance:0},{className:"literal",begin:"'(U|X|0|1|Z|W|L|H|-)'",contains:[a.BACKSLASH_ESCAPE]},{className:"attribute",begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[a.BACKSLASH_ESCAPE]}]}}),a.registerLanguage("vim",function(a){return{lexemes:/[!#@\w]+/,keywords:{keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw d|0 delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu g|0 go gr grepa gu gv ha h|0 helpf helpg helpt hi hid his i|0 ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs n|0 new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf q|0 quita qa r|0 rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv s|0 sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync t|0 tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up v|0 ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank",built_in:"abs acos add and append argc argidx argv asin atan atan2 browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call ceil changenr char2nr cindent clearmatches col complete complete_add complete_check confirm copy cos cosh count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists exp expand extend feedkeys filereadable filewritable filter finddir findfile float2nr floor fmod fnameescape fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getmatches getpid getpos getqflist getreg getregtype gettabvar gettabwinvar getwinposx getwinposy getwinvar glob globpath has has_key haslocaldir hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert invert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime log log10 luaeval map maparg mapcheck match matchadd matcharg matchdelete matchend matchlist matchstr max min mkdir mode mzeval nextnonblank nr2char or pathshorten pow prevnonblank printf pumvisible py3eval pyeval range readfile reltime reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse round screenattr screenchar screencol screenrow search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setmatches setpos setqflist setreg settabvar settabwinvar setwinvar sha256 shellescape shiftwidth simplify sin sinh sort soundfold spellbadword spellsuggest split sqrt str2float str2nr strchars strdisplaywidth strftime stridx string strlen strpart strridx strtrans strwidth submatch substitute synconcealed synID synIDattr synIDtrans synstack system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tan tanh tempname tolower toupper tr trunc type undofile undotree values virtcol visualmode wildmenumode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile xor"},illegal:/[{:]/,contains:[a.NUMBER_MODE,a.APOS_STRING_MODE,{className:"string",begin:/"((\\")|[^"\n])*("|\n)/},{className:"variable",begin:/[bwtglsav]:[\w\d_]*/},{className:"function",beginKeywords:"function function!",end:"$",relevance:0,contains:[a.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]}]}}),a.registerLanguage("x86asm",function(a){return{case_insensitive:!0,lexemes:"\\.?"+a.IDENT_RE,keywords:{keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63", -literal:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l",pseudo:"db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times",preprocessor:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public ",built_in:"bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[a.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},a.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"},{begin:"\\.[A-Za-z0-9]+"}],relevance:0},{className:"label",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"argument",begin:"%[0-9]+",relevance:0},{className:"built_in",begin:"%!S+",relevance:0}]}}),a.registerLanguage("xl",function(a){var b="ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts",c={keyword:"if then else do while until for loop import with is as where when by data constant",literal:"true false nil",type:"integer real text name boolean symbol infix prefix postfix block tree",built_in:"in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin acos atan exp expm1 log log2 log10 log1p pi at",module:b,id:"text_length text_range text_find text_replace contains page slide basic_slide title_slide title subtitle fade_in fade_out fade_at clear_color color line_color line_width texture_wrap texture_transform texture scale_?x scale_?y scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y rotate_?z? rectangle circle ellipse sphere path line_to move_to quad_to curve_to theme background contents locally time mouse_?x mouse_?y mouse_buttons"},d={className:"constant",begin:"[A-Z][A-Z_0-9]+",relevance:0},e={className:"variable",begin:"([A-Z][a-z_0-9]+)+",relevance:0},f={className:"id",begin:"[a-z][a-z_0-9]+",relevance:0},g={className:"string",begin:'"',end:'"',illegal:"\\n"},h={className:"string",begin:"'",end:"'",illegal:"\\n"},i={className:"string",begin:"<<",end:">>"},j={className:"number",begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?",relevance:10},k={className:"import",beginKeywords:"import",end:"$",keywords:{keyword:"import",module:b},relevance:0,contains:[g]},l={className:"function",begin:"[a-z].*->"};return{aliases:["tao"],lexemes:/[a-zA-Z][a-zA-Z0-9_?]*/,keywords:c,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,g,h,i,l,k,d,e,f,j,a.NUMBER_MODE]}}),a.registerLanguage("xquery",function(a){var b="for let if while then else return where group by xquery encoding versionmodule namespace boundary-space preserve strip default collation base-uri orderingcopy-namespaces order declare import schema namespace function option in allowing emptyat tumbling window sliding window start when only end when previous next stable ascendingdescending empty greatest least some every satisfies switch case typeswitch try catch andor to union intersect instance of treat as castable cast map array delete insert intoreplace value rename copy modify update",c="false true xs:string xs:integer element item xs:date xs:datetime xs:float xs:double xs:decimal QName xs:anyURI xs:long xs:int xs:short xs:byte attribute",d={className:"variable",begin:/\$[a-zA-Z0-9\-]+/,relevance:5},e={className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},f={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},g={className:"decorator",begin:"%\\w+"},h={className:"comment",begin:"\\(:",end:":\\)",relevance:10,contains:[{className:"doc",begin:"@\\w+"}]},i={begin:"{",end:"}"},j=[d,f,e,h,g,i];return i.contains=j,{aliases:["xpath","xq"],case_insensitive:!1,lexemes:/[a-zA-Z\$][a-zA-Z0-9_:\-]*/,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{keyword:b,literal:c},contains:j}}),a.registerLanguage("zephir",function(a){var b={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null})]},c={variants:[a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]};return{aliases:["zep"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var let while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally int uint long ulong char uchar double float bool boolean stringlikely unlikely",contains:[a.C_LINE_COMMENT_MODE,a.HASH_COMMENT_MODE,a.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:a.UNDERSCORE_IDENT_RE}),{className:"string",begin:"<<<['\"]?\\w+['\"]?$",end:"^\\w+;",contains:[a.BACKSLASH_ESCAPE]},{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",a.C_BLOCK_COMMENT_MODE,b,c]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[a.UNDERSCORE_TITLE_MODE]},{begin:"=>"},b,c]}}),a}),function(a){"use strict";function b(b,c){if(c=c||{},c.worker&&y.WORKERS_SUPPORTED){var d=k();return d.userStep=c.step,d.userChunk=c.chunk,d.userComplete=c.complete,d.userError=c.error,c.step=r(c.step),c.chunk=r(c.chunk),c.complete=r(c.complete),c.error=r(c.error),delete c.worker,void d.postMessage({input:b,config:c,workerId:d.id})}var h=null;return"string"==typeof b?h=c.download?new e(c):new g(c):(a.File&&b instanceof File||b instanceof Object)&&(h=new f(c)),h.stream(b)}function c(a,b){function c(){"object"==typeof b&&("string"==typeof b.delimiter&&1==b.delimiter.length&&-1==y.BAD_DELIMITERS.indexOf(b.delimiter)&&(i=b.delimiter),("boolean"==typeof b.quotes||b.quotes instanceof Array)&&(h=b.quotes),"string"==typeof b.newline&&(j=b.newline))}function d(a){if("object"!=typeof a)return[];var b=[];for(var c in a)b.push(c);return b}function e(a,b){var c="";"string"==typeof a&&(a=JSON.parse(a)),"string"==typeof b&&(b=JSON.parse(b));var d=a instanceof Array&&a.length>0,e=!(b[0]instanceof Array);if(d){for(var g=0;g0&&(c+=i),c+=f(a[g],g);b.length>0&&(c+=j)}for(var h=0;hl;l++){l>0&&(c+=i);var m=d&&e?a[l]:l;c+=f(b[h][m],l)}h-1||" "==a.charAt(0)||" "==a.charAt(a.length-1);return c?'"'+a+'"':a}function g(a,b){for(var c=0;c-1)return!0;return!1}var h=!1,i=",",j="\r\n";if(c(),"string"==typeof a&&(a=JSON.parse(a)),a instanceof Array){if(!a.length||a[0]instanceof Array)return e(null,a);if("object"==typeof a[0])return e(d(a[0]),a)}else if("object"==typeof a)return"string"==typeof a.data&&(a.data=JSON.parse(a.data)),a.data instanceof Array&&(a.fields||(a.fields=a.data[0]instanceof Array?a.fields:d(a.data[0])),a.data[0]instanceof Array||"object"==typeof a.data[0]||(a.data=[a.data])),e(a.fields||[],a.data||[]);throw"exception: Unable to serialize unrecognized input"}function d(b){function c(a){var b=p(a);b.chunkSize=parseInt(b.chunkSize),a.step||a.chunk||(b.chunkSize=null),this._handle=new h(b),this._handle.streamer=this,this._config=b}this._handle=null,this._paused=!1,this._finished=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},c.call(this,b),this.parseChunk=function(b){if(this.isFirstChunk&&r(this._config.beforeFirstChunk)){var c=this._config.beforeFirstChunk(b);void 0!==c&&(b=c)}this.isFirstChunk=!1;var d=this._partialLine+b;this._partialLine="";var e=this._handle.parse(d,this._baseIndex,!this._finished);if(!this._handle.paused()&&!this._handle.aborted()){var f=e.meta.cursor;this._finished||(this._partialLine=d.substring(f-this._baseIndex),this._baseIndex=f),e&&e.data&&(this._rowCount+=e.data.length);var g=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(u)a.postMessage({results:e,workerId:y.WORKER_ID,finished:g});else if(r(this._config.chunk)){if(this._config.chunk(e,this._handle),this._paused)return;e=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(e.data),this._completeResults.errors=this._completeResults.errors.concat(e.errors),this._completeResults.meta=e.meta),!g||!r(this._config.complete)||e&&e.meta.aborted||this._config.complete(this._completeResults),g||e&&e.meta.paused||this._nextChunk(),e}},this._sendError=function(b){r(this._config.error)?this._config.error(b):u&&this._config.error&&a.postMessage({workerId:y.WORKER_ID,error:b,finished:!1})}}function e(a){function b(a){var b=a.getResponseHeader("Content-Range");return parseInt(b.substr(b.lastIndexOf("/")+1))}a=a||{},a.chunkSize||(a.chunkSize=y.RemoteChunkSize),d.call(this,a);var c;t?this._nextChunk=function(){this._readChunk(),this._chunkLoaded()}:this._nextChunk=function(){this._readChunk()},this.stream=function(a){this._input=a,this._nextChunk()},this._readChunk=function(){if(this._finished)return void this._chunkLoaded();if(c=new XMLHttpRequest,t||(c.onload=q(this._chunkLoaded,this),c.onerror=q(this._chunkError,this)),c.open("GET",this._input,!t),this._config.chunkSize){var a=this._start+this._config.chunkSize-1;c.setRequestHeader("Range","bytes="+this._start+"-"+a),c.setRequestHeader("If-None-Match","webkit-no-cache")}try{c.send()}catch(b){this._chunkError(b.message)}t&&0==c.status?this._chunkError():this._start+=this._config.chunkSize},this._chunkLoaded=function(){if(4==c.readyState){if(c.status<200||c.status>=400)return void this._chunkError();this._finished=!this._config.chunkSize||this._start>b(c),this.parseChunk(c.responseText)}},this._chunkError=function(a){var b=c.statusText||a;this._sendError(b)}}function f(a){a=a||{},a.chunkSize||(a.chunkSize=y.LocalChunkSize),d.call(this,a);var b,c,e="undefined"!=typeof FileReader;this.stream=function(a){this._input=a,c=a.slice||a.webkitSlice||a.mozSlice,e?(b=new FileReader,b.onload=q(this._chunkLoaded,this),b.onerror=q(this._chunkError,this)):b=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(a.target.result)},this._chunkError=function(){this._sendError(b.error)}}function g(a){a=a||{},d.call(this,a);var b,c;this.stream=function(a){return b=a,c=a,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var a=this._config.chunkSize,b=a?c.substr(0,a):c;return c=a?c.substr(a):"",this._finished=!c,this.parseChunk(b)}}}function h(a){function b(){if(v&&m&&(j("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+y.DefaultDelimiter+"'"),m=!1),a.skipEmptyLines)for(var b=0;b=u.length?(c.__parsed_extra||(c.__parsed_extra=[]),c.__parsed_extra.push(v.data[b][d])):c[u[d]]=v.data[b][d])}a.header&&(v.data[b]=c,d>u.length?j("FieldMismatch","TooManyFields","Too many fields: expected "+u.length+" fields but parsed "+d,b):d1&&(j+=Math.abs(n-e),e=n):e=n}l.data.length>0&&(k/=l.data.length),("undefined"==typeof d||d>j)&&k>1.99&&(d=j,c=h)}return a.delimiter=c,{successful:!!c,bestDelimiter:c}}function g(a){a=a.substr(0,1048576);var b=a.split("\r");if(1==b.length)return"\n";for(var c=0,d=0;d=b.length/2?"\r\n":"\r"}function h(a){var b=n.test(a);return b?parseFloat(a):a}function j(a,b,c,d){v.errors.push({type:a,code:b,message:c,row:d})}var k,l,m,n=/^\s*-?(\d*\.?\d+|\d+\.?\d*)(e[-+]?\d+)?\s*$/i,o=this,q=0,s=!1,t=!1,u=[],v={data:[],errors:[],meta:{}};if(r(a.step)){var w=a.step;a.step=function(d){if(v=d,c())b();else{if(b(),0==v.data.length)return;q+=d.data.length,a.preview&&q>a.preview?l.abort():w(v,o)}}}this.parse=function(c,d,e){if(a.newline||(a.newline=g(c)),m=!1,!a.delimiter){var h=f(c);h.successful?a.delimiter=h.bestDelimiter:(m=!0,a.delimiter=y.DefaultDelimiter),v.meta.delimiter=a.delimiter}var j=p(a);return a.preview&&a.header&&j.preview++,k=c,l=new i(j),v=l.parse(k,d,e),b(),s?{meta:{paused:!0}}:v||{meta:{paused:!1}}},this.paused=function(){return s},this.pause=function(){s=!0,l.abort(),k=k.substr(l.getCharIndex())},this.resume=function(){s=!1,o.streamer.parseChunk(k)},this.aborted=function(){return t},this.abort=function(){t=!0,l.abort(),v.meta.aborted=!0,r(a.complete)&&a.complete(v),k=""}}function i(a){a=a||{};var b=a.delimiter,c=a.newline,d=a.comments,e=a.step,f=a.preview,g=a.fastMode;if(("string"!=typeof b||y.BAD_DELIMITERS.indexOf(b)>-1)&&(b=","),d===b)throw"Comment character same as delimiter";d===!0?d="#":("string"!=typeof d||y.BAD_DELIMITERS.indexOf(d)>-1)&&(d=!1),"\n"!=c&&"\r"!=c&&"\r\n"!=c&&(c="\n");var h=0,i=!1;this.parse=function(a,j,k){function l(a){v.push(a),y=h}function m(b){return k?o():("undefined"==typeof b&&(b=a.substr(h)),x.push(b),h=q,l(x),u&&p(),o())}function n(b){h=b,l(x),x=[],C=a.indexOf(c,h)}function o(a){return{data:v,errors:w,meta:{delimiter:b,linebreak:c,aborted:i,truncated:!!a,cursor:y+(j||0)}}}function p(){e(o()),v=[],w=[]}if("string"!=typeof a)throw"Input must be a string";var q=a.length,r=b.length,s=c.length,t=d.length,u="function"==typeof e;h=0;var v=[],w=[],x=[],y=0;if(!a)return o();if(g||g!==!1&&-1===a.indexOf('"')){for(var z=a.split(c),A=0;A=f)return v=v.slice(0,f),o(!0)}}return o()}for(var B=a.indexOf(b,h),C=a.indexOf(c,h);;)if('"'!=a[h])if(d&&0===x.length&&a.substr(h,t)===d){if(-1==C)return o();h=C+s,C=a.indexOf(c,h),B=a.indexOf(b,h)}else if(-1!==B&&(C>B||-1===C))x.push(a.substring(h,B)),h=B+r,B=a.indexOf(b,h);else{if(-1===C)break;if(x.push(a.substring(h,C)),n(C+s),u&&(p(),i))return o();if(f&&v.length>=f)return o(!0)}else{var D=h;for(h++;;){var D=a.indexOf('"',D+1);if(-1===D)return k||w.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:v.length,index:h}),m();if(D===q-1){var E=a.substring(h,D).replace(/""/g,'"');return m(E)}if('"'!=a[D+1]){if(a[D+1]==b){x.push(a.substring(h,D).replace(/""/g,'"')),h=D+1+r,B=a.indexOf(b,h),C=a.indexOf(c,h);break}if(a.substr(D+1,s)===c){if(x.push(a.substring(h,D).replace(/""/g,'"')),n(D+1+s),B=a.indexOf(b,h),u&&(p(),i))return o();if(f&&v.length>=f)return o(!0);break}}else D++}}return m()},this.abort=function(){i=!0},this.getCharIndex=function(){return h}}function j(){var a=document.getElementsByTagName("script");return a.length?a[a.length-1].src:""}function k(){if(!y.WORKERS_SUPPORTED)return!1;if(!v&&null===y.SCRIPT_PATH)throw new Error("Script path cannot be determined automatically when Papa Parse is loaded asynchronously. You need to set Papa.SCRIPT_PATH manually.");var b=y.SCRIPT_PATH||s;b+=(-1!==b.indexOf("?")?"&":"?")+"papaworker";var c=new a.Worker(b);return c.onmessage=l,c.id=x++,w[c.id]=c,c}function l(a){var b=a.data,c=w[b.workerId],d=!1;if(b.error)c.userError(b.error,b.file);else if(b.results&&b.results.data){var e=function(){d=!0,m(b.workerId,{data:[],errors:[],meta:{aborted:!0}})},f={abort:e,pause:n,resume:n};if(r(c.userStep)){for(var g=0;gi;i++)e+=String.fromCharCode(f[i]);c.push(e)}else if("Blob"===b(a)||"File"===b(a)){if(!g)throw new h("NOT_READABLE_ERR");var k=new g;c.push(k.readAsBinaryString(a))}else a instanceof d?"base64"===a.encoding&&p?c.push(p(a.data)):"URI"===a.encoding?c.push(decodeURIComponent(a.data)):"raw"===a.encoding&&c.push(a.data):("string"!=typeof a&&(a+=""),c.push(unescape(encodeURIComponent(a))))},e.getBlob=function(a){return arguments.length||(a=null),new d(this.data.join(""),a,"raw")},e.toString=function(){return"[object BlobBuilder]"},f.slice=function(a,b,c){var e=arguments.length;return 3>e&&(c=null),new d(this.data.slice(a,e>1?b:this.data.length),c,this.encoding)},f.toString=function(){return"[object Blob]"},f.close=function(){this.size=0,delete this.data},c}(a);a.Blob=function(a,b){var d=b?b.type||"":"",e=new c;if(a)for(var f=0,g=a.length;g>f;f++)Uint8Array&&a[f]instanceof Uint8Array?e.append(a[f].buffer):e.append(a[f]);var h=e.getBlob(d);return!h.slice&&h.webkitSlice&&(h.slice=h.webkitSlice),h};var d=Object.getPrototypeOf||function(a){return a.__proto__};a.Blob.prototype=d(new a.Blob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this);var saveAs=saveAs||function(a){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var b=a.document,c=function(){return a.URL||a.webkitURL||a},d=b.createElementNS("http://www.w3.org/1999/xhtml","a"),e="download"in d,f=function(c){var d=b.createEvent("MouseEvents");d.initMouseEvent("click",!0,!1,a,0,0,0,0,0,!1,!1,!1,!1,0,null),c.dispatchEvent(d)},g=a.webkitRequestFileSystem,h=a.requestFileSystem||g||a.mozRequestFileSystem,i=function(b){(a.setImmediate||a.setTimeout)(function(){throw b},0)},j="application/octet-stream",k=0,l=500,m=function(b){var d=function(){"string"==typeof b?c().revokeObjectURL(b):b.remove()};a.chrome?d():setTimeout(d,l)},n=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"==typeof e)try{e.call(a,c||a)}catch(f){i(f)}}},o=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},p=function(b,i){b=o(b);var l,p,q,r=this,s=b.type,t=!1,u=function(){n(r,"writestart progress write writeend".split(" "))},v=function(){if(!t&&l||(l=c().createObjectURL(b)),p)p.location.href=l;else{var d=a.open(l,"_blank");void 0==d&&"undefined"!=typeof safari&&(a.location.href=l)}r.readyState=r.DONE,u(),m(l)},w=function(a){return function(){return r.readyState!==r.DONE?a.apply(this,arguments):void 0}},x={create:!0,exclusive:!1};return r.readyState=r.INIT,i||(i="download"),e?(l=c().createObjectURL(b),d.href=l,d.download=i,f(d),r.readyState=r.DONE,u(),void m(l)):(a.chrome&&s&&s!==j&&(q=b.slice||b.webkitSlice,b=q.call(b,0,b.size,j),t=!0),g&&"download"!==i&&(i+=".download"),(s===j||g)&&(p=a),h?(k+=b.size,void h(a.TEMPORARY,k,w(function(a){a.root.getDirectory("saved",x,w(function(a){var c=function(){a.getFile(i,x,w(function(a){a.createWriter(w(function(c){c.onwriteend=function(b){p.location.href=a.toURL(),r.readyState=r.DONE,n(r,"writeend",b),m(a)},c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&v()},"writestart progress write abort".split(" ").forEach(function(a){c["on"+a]=r["on"+a]}),c.write(b),r.abort=function(){c.abort(),r.readyState=r.DONE},r.readyState=r.WRITING}),v)}),v)};a.getFile(i,{create:!1},w(function(a){a.remove(),c()}),w(function(a){a.code===a.NOT_FOUND_ERR?c():v()}))}),v)}),v)):void v())},q=p.prototype,r=function(a,b){return new p(a,b)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(a,b){return navigator.msSaveOrOpenBlob(o(a),b)}:(q.abort=function(){var a=this;a.readyState=a.DONE,n(a,"abort")},q.readyState=q.INIT=0,q.WRITING=1,q.DONE=2,q.error=q.onwritestart=q.onprogress=q.onwrite=q.onabort=q.onerror=q.onwriteend=null,r)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&module.exports?module.exports.saveAs=saveAs:"undefined"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs}),function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gi;i++)e+=String.fromCharCode(f[i]);c.push(e)}else if("Blob"===b(a)||"File"===b(a)){if(!g)throw new h("NOT_READABLE_ERR");var k=new g;c.push(k.readAsBinaryString(a))}else a instanceof d?"base64"===a.encoding&&p?c.push(p(a.data)):"URI"===a.encoding?c.push(decodeURIComponent(a.data)):"raw"===a.encoding&&c.push(a.data):("string"!=typeof a&&(a+=""),c.push(unescape(encodeURIComponent(a))))},e.getBlob=function(a){return arguments.length||(a=null),new d(this.data.join(""),a,"raw")},e.toString=function(){return"[object BlobBuilder]"},f.slice=function(a,b,c){var e=arguments.length;return 3>e&&(c=null),new d(this.data.slice(a,e>1?b:this.data.length),c,this.encoding)},f.toString=function(){return"[object Blob]"},f.close=function(){this.size=0,delete this.data},c}(a);a.Blob=function(a,b){var d=b?b.type||"":"",e=new c;if(a)for(var f=0,g=a.length;g>f;f++)Uint8Array&&a[f]instanceof Uint8Array?e.append(a[f].buffer):e.append(a[f]);var h=e.getBlob(d);return!h.slice&&h.webkitSlice&&(h.slice=h.webkitSlice),h};var d=Object.getPrototypeOf||function(a){return a.__proto__};a.Blob.prototype=d(new a.Blob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this); -},{}],2:[function(a,b,c){var d=d||function(a){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var b=a.document,c=function(){return a.URL||a.webkitURL||a},d=b.createElementNS("http://www.w3.org/1999/xhtml","a"),e="download"in d,f=function(a){var b=new MouseEvent("click");a.dispatchEvent(b)},g=/Version\/[\d\.]+.*Safari/.test(navigator.userAgent),h=a.webkitRequestFileSystem,i=a.requestFileSystem||h||a.mozRequestFileSystem,j=function(b){(a.setImmediate||a.setTimeout)(function(){throw b},0)},k="application/octet-stream",l=0,m=500,n=function(b){var d=function(){"string"==typeof b?c().revokeObjectURL(b):b.remove()};a.chrome?d():setTimeout(d,m)},o=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"==typeof e)try{e.call(a,c||a)}catch(f){j(f)}}},p=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},q=function(b,j,m){m||(b=p(b));var q,r,s,t=this,u=b.type,v=!1,w=function(){o(t,"writestart progress write writeend".split(" "))},x=function(){if(r&&g&&"undefined"!=typeof FileReader){var d=new FileReader;return d.onloadend=function(){var a=d.result;r.location.href="data:attachment/file"+a.slice(a.search(/[,;]/)),t.readyState=t.DONE,w()},d.readAsDataURL(b),void(t.readyState=t.INIT)}if(!v&&q||(q=c().createObjectURL(b)),r)r.location.href=q;else{var e=a.open(q,"_blank");void 0==e&&g&&(a.location.href=q)}t.readyState=t.DONE,w(),n(q)},y=function(a){return function(){return t.readyState!==t.DONE?a.apply(this,arguments):void 0}},z={create:!0,exclusive:!1};return t.readyState=t.INIT,j||(j="download"),e?(q=c().createObjectURL(b),void setTimeout(function(){d.href=q,d.download=j,f(d),w(),n(q),t.readyState=t.DONE})):(a.chrome&&u&&u!==k&&(s=b.slice||b.webkitSlice,b=s.call(b,0,b.size,k),v=!0),h&&"download"!==j&&(j+=".download"),(u===k||h)&&(r=a),i?(l+=b.size,void i(a.TEMPORARY,l,y(function(a){a.root.getDirectory("saved",z,y(function(a){var c=function(){a.getFile(j,z,y(function(a){a.createWriter(y(function(c){c.onwriteend=function(b){r.location.href=a.toURL(),t.readyState=t.DONE,o(t,"writeend",b),n(a)},c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&x()},"writestart progress write abort".split(" ").forEach(function(a){c["on"+a]=t["on"+a]}),c.write(b),t.abort=function(){c.abort(),t.readyState=t.DONE},t.readyState=t.WRITING}),x)}),x)};a.getFile(j,{create:!1},y(function(a){a.remove(),c()}),y(function(a){a.code===a.NOT_FOUND_ERR?c():x()}))}),x)}),x)):void x())},r=q.prototype,s=function(a,b,c){return new q(a,b,c)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(a,b,c){return c||(a=p(a)),navigator.msSaveOrOpenBlob(a,b||"download")}:(r.abort=function(){var a=this;a.readyState=a.DONE,o(a,"abort")},r.readyState=r.INIT=0,r.WRITING=1,r.DONE=2,r.error=r.onwritestart=r.onprogress=r.onwrite=r.onabort=r.onerror=r.onwriteend=null,s)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof b&&b.exports?b.exports.saveAs=d:"undefined"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return d})},{}],3:[function(a,b,c){"use strict";angular.module("ngFileSaver",[]).factory("FileSaver",["Blob","SaveAs","FileSaverUtils",a("./angular-file-saver.service")]).factory("FileSaverUtils",[a("./utils/utils.service.js")]).factory("Blob",["$window",a("./dependencies/blob-bundle.service.js")]).factory("SaveAs",[a("./dependencies/file-saver-bundle.service.js")])},{"./angular-file-saver.service":4,"./dependencies/blob-bundle.service.js":5,"./dependencies/file-saver-bundle.service.js":6,"./utils/utils.service.js":7}],4:[function(a,b,c){"use strict";b.exports=function(a,b,c){function d(a,d,e){try{b(a,d,e)}catch(f){c.handleErrors(f.message)}}return{saveAs:function(a,b,e){return c.isBlobInstance(a)||c.handleErrors("Data argument should be a blob instance"),c.isString(b)||c.handleErrors("Filename argument should be a string"),d(a,b,e)}}}},{}],5:[function(a,b,c){"use strict";a("Blob.js"),b.exports=function(a){return a.Blob}},{"Blob.js":1}],6:[function(a,b,c){"use strict";b.exports=function(){return a("FileSaver.js").saveAs||function(){}}},{"FileSaver.js":2}],7:[function(a,b,c){"use strict";b.exports=function(){return{handleErrors:function(a){throw new Error(a)},isString:function(a){return"string"==typeof a||a instanceof String},isUndefined:function(a){return"undefined"==typeof a},isBlobInstance:function(a){return a instanceof Blob}}}},{}]},{},[3]),function(a){function b(a,b,c){switch(arguments.length){case 2:return null!=a?a:b;case 3:return null!=a?a:null!=b?b:c;default:throw new Error("Implement me")}}function c(a,b){return Ba.call(a,b)}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function e(a){va.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+a)}function f(a,b){var c=!0;return o(function(){return c&&(e(a),c=!1),b.apply(this,arguments)},b)}function g(a,b){sb[a]||(e(b),sb[a]=!0)}function h(a,b){return function(c){return r(a.call(this,c),b)}}function i(a,b){return function(c){return this.localeData().ordinal(a.call(this,c),b)}}function j(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,"months");return 0>b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)}function k(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}function l(){}function m(a,b){b!==!1&&H(a),p(this,a),this._d=new Date(+a._d),ub===!1&&(ub=!0,va.updateOffset(this),ub=!1)}function n(a){var b=A(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=va.localeData(),this._bubble()}function o(a,b){for(var d in b)c(b,d)&&(a[d]=b[d]);return c(b,"toString")&&(a.toString=b.toString),c(b,"valueOf")&&(a.valueOf=b.valueOf),a}function p(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=b._pf),"undefined"!=typeof b._locale&&(a._locale=b._locale),Ka.length>0)for(c in Ka)d=Ka[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function q(a){return 0>a?Math.ceil(a):Math.floor(a)}function r(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.lengthd;d++)(c&&a[d]!==b[d]||!c&&C(a[d])!==C(b[d]))&&g++;return g+f}function z(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=lb[a]||mb[b]||b}return a}function A(a){var b,d,e={};for(d in a)c(a,d)&&(b=z(d),b&&(e[b]=a[d]));return e}function B(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}va[b]=function(e,f){var g,h,i=va._locale[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=va().utc().set(d,a);return i.call(va._locale,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function C(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function D(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function E(a,b,c){return ja(va([a,11,31+b-c]),b,c).week}function F(a){return G(a)?366:365}function G(a){return a%4===0&&a%100!==0||a%400===0}function H(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[Da]<0||a._a[Da]>11?Da:a._a[Ea]<1||a._a[Ea]>D(a._a[Ca],a._a[Da])?Ea:a._a[Fa]<0||a._a[Fa]>24||24===a._a[Fa]&&(0!==a._a[Ga]||0!==a._a[Ha]||0!==a._a[Ia])?Fa:a._a[Ga]<0||a._a[Ga]>59?Ga:a._a[Ha]<0||a._a[Ha]>59?Ha:a._a[Ia]<0||a._a[Ia]>999?Ia:-1,a._pf._overflowDayOfYear&&(Ca>b||b>Ea)&&(b=Ea),a._pf.overflow=b)}function I(b){return null==b._isValid&&(b._isValid=!isNaN(b._d.getTime())&&b._pf.overflow<0&&!b._pf.empty&&!b._pf.invalidMonth&&!b._pf.nullInput&&!b._pf.invalidFormat&&!b._pf.userInvalidated,b._strict&&(b._isValid=b._isValid&&0===b._pf.charsLeftOver&&0===b._pf.unusedTokens.length&&b._pf.bigHour===a)),b._isValid}function J(a){return a?a.toLowerCase().replace("_","-"):a}function K(a){for(var b,c,d,e,f=0;f0;){if(d=L(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&y(e,c,!0)>=b-1)break;b--}f++}return null}function L(a){var b=null;if(!Ja[a]&&La)try{b=va.locale(),require("./locale/"+a),va.locale(b)}catch(c){}return Ja[a]}function M(a,b){var c,d;return b._isUTC?(c=b.clone(),d=(va.isMoment(a)||x(a)?+a:+va(a))-+c,c._d.setTime(+c._d+d),va.updateOffset(c,!1),c):va(a).local()}function N(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function O(a){var b,c,d=a.match(Pa);for(b=0,c=d.length;c>b;b++)rb[d[b]]?d[b]=rb[d[b]]:d[b]=N(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function P(a,b){return a.isValid()?(b=Q(b,a.localeData()),nb[b]||(nb[b]=O(b)),nb[b](a)):a.localeData().invalidDate()}function Q(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Qa.lastIndex=0;d>=0&&Qa.test(a);)a=a.replace(Qa,c),Qa.lastIndex=0,d-=1;return a}function R(a,b){var c,d=b._strict;switch(a){case"Q":return _a;case"DDDD":return bb;case"YYYY":case"GGGG":case"gggg":return d?cb:Ta;case"Y":case"G":case"g":return eb;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?db:Ua;case"S":if(d)return _a;case"SS":if(d)return ab;case"SSS":if(d)return bb;case"DDD":return Sa;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Wa;case"a":case"A":return b._locale._meridiemParse;case"x":return Za;case"X":return $a;case"Z":case"ZZ":return Xa;case"T":return Ya;case"SSSS":return Va;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?ab:Ra;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Ra;case"Do":return d?b._locale._ordinalParse:b._locale._ordinalParseLenient;default:return c=new RegExp($(Z(a.replace("\\","")),"i"))}}function S(a){a=a||"";var b=a.match(Xa)||[],c=b[b.length-1]||[],d=(c+"").match(jb)||["-",0,0],e=+(60*d[1])+C(d[2]);return"+"===d[0]?e:-e}function T(a,b,c){var d,e=c._a;switch(a){case"Q":null!=b&&(e[Da]=3*(C(b)-1));break;case"M":case"MM":null!=b&&(e[Da]=C(b)-1);break;case"MMM":case"MMMM":d=c._locale.monthsParse(b,a,c._strict),null!=d?e[Da]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[Ea]=C(b));break;case"Do":null!=b&&(e[Ea]=C(parseInt(b.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=C(b));break;case"YY":e[Ca]=va.parseTwoDigitYear(b);break;case"YYYY":case"YYYYY":case"YYYYYY":e[Ca]=C(b);break;case"a":case"A":c._meridiem=b;break;case"h":case"hh":c._pf.bigHour=!0;case"H":case"HH":e[Fa]=C(b);break;case"m":case"mm":e[Ga]=C(b);break;case"s":case"ss":e[Ha]=C(b);break;case"S":case"SS":case"SSS":case"SSSS":e[Ia]=C(1e3*("0."+b));break;case"x":c._d=new Date(C(b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=S(b);break;case"dd":case"ddd":case"dddd":d=c._locale.weekdaysParse(b),null!=d?(c._w=c._w||{},c._w.d=d):c._pf.invalidWeekday=b;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":a=a.substr(0,1);case"gggg":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=C(b));break;case"gg":case"GG":c._w=c._w||{},c._w[a]=va.parseTwoDigitYear(b)}}function U(a){var c,d,e,f,g,h,i;c=a._w,null!=c.GG||null!=c.W||null!=c.E?(g=1,h=4,d=b(c.GG,a._a[Ca],ja(va(),1,4).year),e=b(c.W,1),f=b(c.E,1)):(g=a._locale._week.dow,h=a._locale._week.doy,d=b(c.gg,a._a[Ca],ja(va(),g,h).year),e=b(c.w,1),null!=c.d?(f=c.d,g>f&&++e):f=null!=c.e?c.e+g:g),i=ka(d,e,f,h,g),a._a[Ca]=i.year,a._dayOfYear=i.dayOfYear}function V(a){var c,d,e,f,g=[];if(!a._d){for(e=X(a),a._w&&null==a._a[Ea]&&null==a._a[Da]&&U(a),a._dayOfYear&&(f=b(a._a[Ca],e[Ca]),a._dayOfYear>F(f)&&(a._pf._overflowDayOfYear=!0),d=fa(f,0,a._dayOfYear),a._a[Da]=d.getUTCMonth(),a._a[Ea]=d.getUTCDate()),c=0;3>c&&null==a._a[c];++c)a._a[c]=g[c]=e[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];24===a._a[Fa]&&0===a._a[Ga]&&0===a._a[Ha]&&0===a._a[Ia]&&(a._nextDay=!0,a._a[Fa]=0),a._d=(a._useUTC?fa:ea).apply(null,g),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[Fa]=24)}}function W(a){var b;a._d||(b=A(a._i),a._a=[b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],V(a))}function X(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function Y(b){if(b._f===va.ISO_8601)return void aa(b);b._a=[],b._pf.empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,j=0;for(e=Q(b._f,b._locale).match(Pa)||[],c=0;c0&&b._pf.unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),rb[f]?(d?b._pf.empty=!1:b._pf.unusedTokens.push(f),T(f,d,b)):b._strict&&!d&&b._pf.unusedTokens.push(f);b._pf.charsLeftOver=i-j,h.length>0&&b._pf.unusedInput.push(h),b._pf.bigHour===!0&&b._a[Fa]<=12&&(b._pf.bigHour=a),b._a[Fa]=k(b._locale,b._a[Fa],b._meridiem),V(b),H(b)}function Z(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function $(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function _(a){var b,c,e,f,g;if(0===a._f.length)return a._pf.invalidFormat=!0,void(a._d=new Date(NaN));for(f=0;fg)&&(e=g,c=b));o(a,c||b)}function aa(a){var b,c,d=a._i,e=fb.exec(d);if(e){for(a._pf.iso=!0,b=0,c=hb.length;c>b;b++)if(hb[b][1].exec(d)){a._f=hb[b][0]+(e[6]||" ");break}for(b=0,c=ib.length;c>b;b++)if(ib[b][1].exec(d)){a._f+=ib[b][0];break}d.match(Xa)&&(a._f+="Z"),Y(a)}else a._isValid=!1}function ba(a){aa(a),a._isValid===!1&&(delete a._isValid,va.createFromInputFallback(a))}function ca(a,b){var c,d=[];for(c=0;ca&&h.setFullYear(a),h}function fa(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function ga(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function ha(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function ia(a,b,c){var d=va.duration(a).abs(),e=Aa(d.as("s")),f=Aa(d.as("m")),g=Aa(d.as("h")),h=Aa(d.as("d")),i=Aa(d.as("M")),j=Aa(d.as("y")),k=e0,k[4]=c,ha.apply({},k)}function ja(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=va(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function ka(a,b,c,d,e){var f,g,h=fa(a,0,1).getUTCDay();return h=0===h?7:h,c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:F(a-1)+g}}function la(b){var c,d=b._i,e=b._f;return b._locale=b._locale||va.localeData(b._l),null===d||e===a&&""===d?va.invalid({nullInput:!0}):("string"==typeof d&&(b._i=d=b._locale.preparse(d)),va.isMoment(d)?new m(d,!0):(e?w(e)?_(b):Y(b):da(b),c=new m(b),c._nextDay&&(c.add(1,"d"),c._nextDay=a),c))}function ma(a,b){var c,d;if(1===b.length&&w(b[0])&&(b=b[0]),!b.length)return va();for(c=b[0],d=1;d=0?"+":"-";return b+r(Math.abs(a),6)},gg:function(){return r(this.weekYear()%100,2)},gggg:function(){return r(this.weekYear(),4)},ggggg:function(){return r(this.weekYear(),5)},GG:function(){return r(this.isoWeekYear()%100,2)},GGGG:function(){return r(this.isoWeekYear(),4)},GGGGG:function(){return r(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return C(this.milliseconds()/100)},SS:function(){return r(C(this.milliseconds()/10),2)},SSS:function(){return r(this.milliseconds(),3)},SSSS:function(){return r(this.milliseconds(),3)},Z:function(){var a=this.utcOffset(),b="+";return 0>a&&(a=-a,b="-"),b+r(C(a/60),2)+":"+r(C(a)%60,2)},ZZ:function(){var a=this.utcOffset(),b="+";return 0>a&&(a=-a,b="-"),b+r(C(a/60),2)+r(C(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},sb={},tb=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"],ub=!1;pb.length;)xa=pb.pop(),rb[xa+"o"]=i(rb[xa],xa);for(;qb.length;)xa=qb.pop(),rb[xa+xa]=h(rb[xa],2);rb.DDDD=h(rb.DDD,3),o(l.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a,b,c){var d,e,f;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;12>d;d++){if(e=va.utc([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=va([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b,c){var d=this._calendar[a];return"function"==typeof d?d.apply(b,[c]):d},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",_ordinalParse:/\d{1,2}/,preparse:function(a){return a},postformat:function(a){return a},week:function(a){return ja(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},firstDayOfWeek:function(){return this._week.dow},firstDayOfYear:function(){return this._week.doy},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),va=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=b,g._f=c,g._l=e,g._strict=f,g._isUTC=!1,g._pf=d(),la(g)},va.suppressDeprecationWarnings=!1,va.createFromInputFallback=f("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),va.min=function(){var a=[].slice.call(arguments,0);return ma("isBefore",a)},va.max=function(){var a=[].slice.call(arguments,0);return ma("isAfter",a)},va.utc=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=b,g._f=c,g._strict=f,g._pf=d(),la(g).utc()},va.unix=function(a){return va(1e3*a)},va.duration=function(a,b){var d,e,f,g,h=a,i=null;return va.isDuration(a)?h={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(h={},b?h[b]=a:h.milliseconds=a):(i=Na.exec(a))?(d="-"===i[1]?-1:1,h={y:0,d:C(i[Ea])*d,h:C(i[Fa])*d,m:C(i[Ga])*d,s:C(i[Ha])*d,ms:C(i[Ia])*d}):(i=Oa.exec(a))?(d="-"===i[1]?-1:1,f=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*d},h={y:f(i[2]),M:f(i[3]),d:f(i[4]),h:f(i[5]),m:f(i[6]),s:f(i[7]),w:f(i[8])}):null==h?h={}:"object"==typeof h&&("from"in h||"to"in h)&&(g=t(va(h.from),va(h.to)),h={},h.ms=g.milliseconds,h.M=g.months),e=new n(h),va.isDuration(a)&&c(a,"_locale")&&(e._locale=a._locale),e},va.version=ya,va.defaultFormat=gb,va.ISO_8601=function(){},va.momentProperties=Ka,va.updateOffset=function(){},va.relativeTimeThreshold=function(b,c){return ob[b]===a?!1:c===a?ob[b]:(ob[b]=c,!0)},va.lang=f("moment.lang is deprecated. Use moment.locale instead.",function(a,b){return va.locale(a,b)}),va.locale=function(a,b){var c;return a&&(c="undefined"!=typeof b?va.defineLocale(a,b):va.localeData(a),c&&(va.duration._locale=va._locale=c)),va._locale._abbr},va.defineLocale=function(a,b){return null!==b?(b.abbr=a,Ja[a]||(Ja[a]=new l),Ja[a].set(b),va.locale(a),Ja[a]):(delete Ja[a],null)},va.langData=f("moment.langData is deprecated. Use moment.localeData instead.",function(a){return va.localeData(a)}),va.localeData=function(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return va._locale;if(!w(a)){if(b=L(a))return b;a=[a]}return K(a)},va.isMoment=function(a){return a instanceof m||null!=a&&c(a,"_isAMomentObject")},va.isDuration=function(a){return a instanceof n};for(xa=tb.length-1;xa>=0;--xa)B(tb[xa]);va.normalizeUnits=function(a){return z(a)},va.invalid=function(a){var b=va.utc(NaN);return null!=a?o(b._pf,a):b._pf.userInvalidated=!0,b},va.parseZone=function(){return va.apply(null,arguments).parseZone()},va.parseTwoDigitYear=function(a){return C(a)+(C(a)>68?1900:2e3)},va.isDate=x,o(va.fn=m.prototype,{clone:function(){return va(this)},valueOf:function(){return+this._d-6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=va(this).utc();return 00:!1},parsingFlags:function(){return o({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(a){return this.utcOffset(0,a)},local:function(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(this._dateUtcOffset(),"m")),this},format:function(a){var b=P(this,a||va.defaultFormat);return this.localeData().postformat(b)},add:u(1,"add"),subtract:u(-1,"subtract"),diff:function(a,b,c){var d,e,f=M(a,this),g=6e4*(f.utcOffset()-this.utcOffset());return b=z(b),"year"===b||"month"===b||"quarter"===b?(e=j(this,f),"quarter"===b?e/=3:"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:q(e)},from:function(a,b){return va.duration({to:this,from:a}).locale(this.locale()).humanize(!b)},fromNow:function(a){return this.from(va(),a)},calendar:function(a){var b=a||va(),c=M(b,this).startOf("day"),d=this.diff(c,"days",!0),e=-6>d?"sameElse":-1>d?"lastWeek":0>d?"lastDay":1>d?"sameDay":2>d?"nextDay":7>d?"nextWeek":"sameElse";return this.format(this.localeData().calendar(e,this,va(b)))},isLeapYear:function(){return G(this.year())},isDST:function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=ga(a,this.localeData()),this.add(a-b,"d")):b},month:qa("Month",!0),startOf:function(a){switch(a=z(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a?this.weekday(0):"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(b){return b=z(b),b===a||"millisecond"===b?this:this.startOf(b).add(1,"isoWeek"===b?"week":b).subtract(1,"ms")},isAfter:function(a,b){var c;return b=z("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=va.isMoment(a)?a:va(a),+this>+a):(c=va.isMoment(a)?+a:+va(a),c<+this.clone().startOf(b))},isBefore:function(a,b){var c;return b=z("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=va.isMoment(a)?a:va(a),+a>+this):(c=va.isMoment(a)?+a:+va(a),+this.clone().endOf(b)a?this:a}),max:f("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(a){return a=va.apply(null,arguments),a>this?this:a}),zone:f("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",function(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}),utcOffset:function(a,b){var c,d=this._offset||0;return null!=a?("string"==typeof a&&(a=S(a)),Math.abs(a)<16&&(a=60*a),!this._isUTC&&b&&(c=this._dateUtcOffset()),this._offset=a,this._isUTC=!0,null!=c&&this.add(c,"m"),d!==a&&(!b||this._changeInProgress?v(this,va.duration(a-d,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,va.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?d:this._dateUtcOffset()},isLocal:function(){return!this._isUTC},isUtcOffset:function(){return this._isUTC},isUtc:function(){return this._isUTC&&0===this._offset},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(S(this._i)),this},hasAlignedHourOffset:function(a){return a=a?va(a).utcOffset():0,(this.utcOffset()-a)%60===0},daysInMonth:function(){return D(this.year(),this.month())},dayOfYear:function(a){var b=Aa((va(this).startOf("day")-va(this).startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")},quarter:function(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)},weekYear:function(a){var b=ja(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")},isoWeekYear:function(a){var b=ja(this,1,4).year;return null==a?b:this.add(a-b,"y")},week:function(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")},isoWeek:function(a){var b=ja(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")},weekday:function(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},isoWeeksInYear:function(){return E(this.year(),1,4)},weeksInYear:function(){var a=this.localeData()._week;return E(this.year(),a.dow,a.doy)},get:function(a){return a=z(a),this[a]()},set:function(a,b){var c;if("object"==typeof a)for(c in a)this.set(c,a[c]);else a=z(a),"function"==typeof this[a]&&this[a](b);return this},locale:function(b){var c;return b===a?this._locale._abbr:(c=va.localeData(b),null!=c&&(this._locale=c),this)},lang:f("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(b){return b===a?this.localeData():this.locale(b)}),localeData:function(){return this._locale},_dateUtcOffset:function(){return 15*-Math.round(this._d.getTimezoneOffset()/15)}}),va.fn.millisecond=va.fn.milliseconds=qa("Milliseconds",!1),va.fn.second=va.fn.seconds=qa("Seconds",!1),va.fn.minute=va.fn.minutes=qa("Minutes",!1),va.fn.hour=va.fn.hours=qa("Hours",!0),va.fn.date=qa("Date",!0),va.fn.dates=f("dates accessor is deprecated. Use date instead.",qa("Date",!0)),va.fn.year=qa("FullYear",!0),va.fn.years=f("years accessor is deprecated. Use year instead.",qa("FullYear",!0)),va.fn.days=va.fn.day,va.fn.months=va.fn.month,va.fn.weeks=va.fn.week,va.fn.isoWeeks=va.fn.isoWeek,va.fn.quarters=va.fn.quarter,va.fn.toJSON=va.fn.toISOString,va.fn.isUTC=va.fn.isUtc,o(va.duration.fn=n.prototype,{_bubble:function(){var a,b,c,d=this._milliseconds,e=this._days,f=this._months,g=this._data,h=0;g.milliseconds=d%1e3,a=q(d/1e3),g.seconds=a%60,b=q(a/60),g.minutes=b%60,c=q(b/60),g.hours=c%24,e+=q(c/24),h=q(ra(e)),e-=q(sa(h)),f+=q(e/30),e%=30,h+=q(f/12),f%=12,g.days=e,g.months=f,g.years=h},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return q(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*C(this._months/12)},humanize:function(a){var b=ia(this,!a,this.localeData());return a&&(b=this.localeData().pastFuture(+this,b)),this.localeData().postformat(b)},add:function(a,b){var c=va.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=va.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=z(a),this[a.toLowerCase()+"s"]()},as:function(a){var b,c;if(a=z(a),"month"===a||"year"===a)return b=this._days+this._milliseconds/864e5,c=this._months+12*ra(b),"month"===a?c:c/12;switch(b=this._days+Math.round(sa(this._months/12)),a){case"week":return b/7+this._milliseconds/6048e5;case"day":return b+this._milliseconds/864e5;case"hour":return 24*b+this._milliseconds/36e5;case"minute":return 24*b*60+this._milliseconds/6e4;case"second":return 24*b*60*60+this._milliseconds/1e3;case"millisecond":return Math.floor(24*b*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+a)}},lang:va.fn.lang,locale:va.fn.locale,toIsoString:f("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"},localeData:function(){return this._locale},toJSON:function(){return this.toISOString()}}),va.duration.fn.toString=va.duration.fn.toISOString;for(xa in kb)c(kb,xa)&&ta(xa.toLowerCase());va.duration.fn.asMilliseconds=function(){return this.as("ms")},va.duration.fn.asSeconds=function(){return this.as("s")},va.duration.fn.asMinutes=function(){return this.as("m")},va.duration.fn.asHours=function(){return this.as("h")},va.duration.fn.asDays=function(){return this.as("d")},va.duration.fn.asWeeks=function(){return this.as("weeks")},va.duration.fn.asMonths=function(){return this.as("M")},va.duration.fn.asYears=function(){return this.as("y")},va.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===C(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),La?module.exports=va:"function"==typeof define&&define.amd?(define(function(a,b,c){return c.config&&c.config()&&c.config().noGlobal===!0&&(za.moment=wa),va}),ua(!0)):ua()}.call(this),function(a,b){if("function"==typeof define&&define.amd)define(["moment","jquery","exports"],function(c,d,e){a.daterangepicker=b(a,e,c,d)});else if("undefined"!=typeof exports){var c,d=require("moment");try{c=require("jquery")}catch(e){if(c=window.jQuery,!c)throw new Error("jQuery dependency not found")}b(a,exports,d,c)}else a.daterangepicker=b(a,{},a.moment,a.jQuery||a.Zepto||a.ender||a.$)}(this,function(a,b,c,d){var e=function(a,b,c){this.parentEl="body",this.element=d(a),this.isShowing=!1;var e='';"object"==typeof b&&null!==b||(b={}),this.parentEl=d("object"==typeof b&&b.parentEl&&d(b.parentEl).length?b.parentEl:this.parentEl),this.container=d(e).appendTo(this.parentEl),this.setOptions(b,c);var f=this.container;d.each(this.buttonClasses,function(a,b){f.find("button").addClass(b)}),this.container.find(".daterangepicker_start_input label").html(this.locale.fromLabel),this.container.find(".daterangepicker_end_input label").html(this.locale.toLabel),this.applyClass.length&&this.container.find(".applyBtn").addClass(this.applyClass),this.cancelClass.length&&this.container.find(".cancelBtn").addClass(this.cancelClass),this.container.find(".applyBtn").html(this.locale.applyLabel),this.container.find(".cancelBtn").html(this.locale.cancelLabel),this.container.find(".calendar").on("click.daterangepicker",".prev",d.proxy(this.clickPrev,this)).on("click.daterangepicker",".next",d.proxy(this.clickNext,this)).on("click.daterangepicker","td.available",d.proxy(this.clickDate,this)).on("mouseenter.daterangepicker","td.available",d.proxy(this.hoverDate,this)).on("mouseleave.daterangepicker","td.available",d.proxy(this.updateFormInputs,this)).on("change.daterangepicker","select.yearselect",d.proxy(this.updateMonthYear,this)).on("change.daterangepicker","select.monthselect",d.proxy(this.updateMonthYear,this)).on("change.daterangepicker","select.hourselect,select.minuteselect,select.secondselect,select.ampmselect",d.proxy(this.updateTime,this)),this.container.find(".ranges").on("click.daterangepicker","button.applyBtn",d.proxy(this.clickApply,this)).on("click.daterangepicker","button.cancelBtn",d.proxy(this.clickCancel,this)).on("click.daterangepicker",".daterangepicker_start_input,.daterangepicker_end_input",d.proxy(this.showCalendars,this)).on("change.daterangepicker",".daterangepicker_start_input,.daterangepicker_end_input",d.proxy(this.inputsChanged,this)).on("keydown.daterangepicker",".daterangepicker_start_input,.daterangepicker_end_input",d.proxy(this.inputsKeydown,this)).on("click.daterangepicker","li",d.proxy(this.clickRange,this)).on("mouseenter.daterangepicker","li",d.proxy(this.enterRange,this)).on("mouseleave.daterangepicker","li",d.proxy(this.updateFormInputs,this)),this.element.is("input")?this.element.on({"click.daterangepicker":d.proxy(this.show,this),"focus.daterangepicker":d.proxy(this.show,this),"keyup.daterangepicker":d.proxy(this.updateFromControl,this)}):this.element.on("click.daterangepicker",d.proxy(this.toggle,this))};e.prototype={constructor:e,setOptions:function(a,b){if(this.startDate=c().startOf("day"),this.endDate=c().endOf("day"),this.timeZone=c().zone(),this.minDate=!1,this.maxDate=!1,this.dateLimit=!1,this.showDropdowns=!1,this.showWeekNumbers=!1,this.timePicker=!1,this.timePickerSeconds=!1,this.timePickerIncrement=30,this.timePicker12Hour=!0,this.singleDatePicker=!1,this.ranges={},this.opens="right",this.element.hasClass("pull-right")&&(this.opens="left"),this.buttonClasses=["btn","btn-small btn-sm"],this.applyClass="btn-success",this.cancelClass="btn-default",this.format="MM/DD/YYYY",this.separator=" - ",this.locale={applyLabel:"Apply",cancelLabel:"Cancel",fromLabel:"From",toLabel:"To",weekLabel:"W",customRangeLabel:"Custom Range",daysOfWeek:c.weekdaysMin(),monthNames:c.monthsShort(),firstDay:c.localeData()._week.dow},this.cb=function(){},"string"==typeof a.format&&(this.format=a.format),"string"==typeof a.separator&&(this.separator=a.separator),"string"==typeof a.startDate&&(this.startDate=c(a.startDate,this.format)),"string"==typeof a.endDate&&(this.endDate=c(a.endDate,this.format)),"string"==typeof a.minDate&&(this.minDate=c(a.minDate,this.format)),"string"==typeof a.maxDate&&(this.maxDate=c(a.maxDate,this.format)),"object"==typeof a.startDate&&(this.startDate=c(a.startDate)),"object"==typeof a.endDate&&(this.endDate=c(a.endDate)),"object"==typeof a.minDate&&(this.minDate=c(a.minDate)),"object"==typeof a.maxDate&&(this.maxDate=c(a.maxDate)),"string"==typeof a.applyClass&&(this.applyClass=a.applyClass),"string"==typeof a.cancelClass&&(this.cancelClass=a.cancelClass),"object"==typeof a.dateLimit&&(this.dateLimit=a.dateLimit),"object"==typeof a.locale&&("object"==typeof a.locale.daysOfWeek&&(this.locale.daysOfWeek=a.locale.daysOfWeek.slice()),"object"==typeof a.locale.monthNames&&(this.locale.monthNames=a.locale.monthNames.slice()),"number"==typeof a.locale.firstDay&&(this.locale.firstDay=a.locale.firstDay),"string"==typeof a.locale.applyLabel&&(this.locale.applyLabel=a.locale.applyLabel),"string"==typeof a.locale.cancelLabel&&(this.locale.cancelLabel=a.locale.cancelLabel),"string"==typeof a.locale.fromLabel&&(this.locale.fromLabel=a.locale.fromLabel),"string"==typeof a.locale.toLabel&&(this.locale.toLabel=a.locale.toLabel),"string"==typeof a.locale.weekLabel&&(this.locale.weekLabel=a.locale.weekLabel),"string"==typeof a.locale.customRangeLabel&&(this.locale.customRangeLabel=a.locale.customRangeLabel)),"string"==typeof a.opens&&(this.opens=a.opens),"boolean"==typeof a.showWeekNumbers&&(this.showWeekNumbers=a.showWeekNumbers),"string"==typeof a.buttonClasses&&(this.buttonClasses=[a.buttonClasses]),"object"==typeof a.buttonClasses&&(this.buttonClasses=a.buttonClasses),"boolean"==typeof a.showDropdowns&&(this.showDropdowns=a.showDropdowns),"boolean"==typeof a.singleDatePicker&&(this.singleDatePicker=a.singleDatePicker,this.singleDatePicker&&(this.endDate=this.startDate.clone())),"boolean"==typeof a.timePicker&&(this.timePicker=a.timePicker),"boolean"==typeof a.timePickerSeconds&&(this.timePickerSeconds=a.timePickerSeconds),"number"==typeof a.timePickerIncrement&&(this.timePickerIncrement=a.timePickerIncrement),"boolean"==typeof a.timePicker12Hour&&(this.timePicker12Hour=a.timePicker12Hour),0!=this.locale.firstDay)for(var e=this.locale.firstDay;e>0;)this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()),e--;var f,g,h;if("undefined"==typeof a.startDate&&"undefined"==typeof a.endDate&&d(this.element).is("input[type=text]")){var i=d(this.element).val(),j=i.split(this.separator);f=g=null,2==j.length?(f=c(j[0],this.format),g=c(j[1],this.format)):this.singleDatePicker&&""!==i&&(f=c(i,this.format),g=c(i,this.format)),null!==f&&null!==g&&(this.startDate=f,this.endDate=g)}if("string"==typeof a.timeZone||"number"==typeof a.timeZone?(this.timeZone=a.timeZone,this.startDate.zone(this.timeZone),this.endDate.zone(this.timeZone)):this.timeZone=c(this.startDate).zone(),"object"==typeof a.ranges){for(h in a.ranges)f="string"==typeof a.ranges[h][0]?c(a.ranges[h][0],this.format):c(a.ranges[h][0]),g="string"==typeof a.ranges[h][1]?c(a.ranges[h][1],this.format):c(a.ranges[h][1]),this.minDate&&f.isBefore(this.minDate)&&(f=c(this.minDate)),this.maxDate&&g.isAfter(this.maxDate)&&(g=c(this.maxDate)),this.minDate&&g.isBefore(this.minDate)||this.maxDate&&f.isAfter(this.maxDate)||(this.ranges[h]=[f,g]);var k="
          ";for(h in this.ranges)k+="
        • "+h+"
        • ";k+="
        • "+this.locale.customRangeLabel+"
        • ",k+="
        ",this.container.find(".ranges ul").remove(),this.container.find(".ranges").prepend(k)}if("function"==typeof b&&(this.cb=b),this.timePicker||(this.startDate=this.startDate.startOf("day"),this.endDate=this.endDate.endOf("day")),this.singleDatePicker?(this.opens="right",this.container.addClass("single"),this.container.find(".calendar.right").show(),this.container.find(".calendar.left").hide(),this.timePicker?this.container.find(".ranges .daterangepicker_start_input, .ranges .daterangepicker_end_input").hide():this.container.find(".ranges").hide(),this.container.find(".calendar.right").hasClass("single")||this.container.find(".calendar.right").addClass("single")):(this.container.removeClass("single"),this.container.find(".calendar.right").removeClass("single"),this.container.find(".ranges").show()),this.oldStartDate=this.startDate.clone(),this.oldEndDate=this.endDate.clone(),this.oldChosenLabel=this.chosenLabel,this.leftCalendar={month:c([this.startDate.year(),this.startDate.month(),1,this.startDate.hour(),this.startDate.minute(),this.startDate.second()]),calendar:[]},this.rightCalendar={month:c([this.endDate.year(),this.endDate.month(),1,this.endDate.hour(),this.endDate.minute(),this.endDate.second()]),calendar:[]},"right"==this.opens||"center"==this.opens){var l=this.container.find(".calendar.first"),m=this.container.find(".calendar.second");m.hasClass("single")&&(m.removeClass("single"),l.addClass("single")),l.removeClass("left").addClass("right"),m.removeClass("right").addClass("left"),this.singleDatePicker&&(l.show(),m.hide())}"undefined"!=typeof a.ranges||this.singleDatePicker||this.container.addClass("show-calendar"),this.container.addClass("opens"+this.opens),this.updateView(),this.updateCalendars()},setStartDate:function(a){"string"==typeof a&&(this.startDate=c(a,this.format).zone(this.timeZone)),"object"==typeof a&&(this.startDate=c(a)),this.timePicker||(this.startDate=this.startDate.startOf("day")),this.oldStartDate=this.startDate.clone(),this.updateView(),this.updateCalendars(),this.updateInputText()},setEndDate:function(a){"string"==typeof a&&(this.endDate=c(a,this.format).zone(this.timeZone)),"object"==typeof a&&(this.endDate=c(a)),this.timePicker||(this.endDate=this.endDate.endOf("day")),this.oldEndDate=this.endDate.clone(),this.updateView(),this.updateCalendars(),this.updateInputText()},updateView:function(){this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()).hour(this.startDate.hour()).minute(this.startDate.minute()),this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()).hour(this.endDate.hour()).minute(this.endDate.minute()),this.updateFormInputs()},updateFormInputs:function(){this.container.find("input[name=daterangepicker_start]").val(this.startDate.format(this.format)),this.container.find("input[name=daterangepicker_end]").val(this.endDate.format(this.format)),this.startDate.isSame(this.endDate)||this.startDate.isBefore(this.endDate)?this.container.find("button.applyBtn").removeAttr("disabled"):this.container.find("button.applyBtn").attr("disabled","disabled")},updateFromControl:function(){if(this.element.is("input")&&this.element.val().length){var a=this.element.val().split(this.separator),b=null,d=null;2===a.length&&(b=c(a[0],this.format).zone(this.timeZone),d=c(a[1],this.format).zone(this.timeZone)),(this.singleDatePicker||null===b||null===d)&&(b=c(this.element.val(),this.format).zone(this.timeZone),d=b),d.isBefore(b)||(this.oldStartDate=this.startDate.clone(),this.oldEndDate=this.endDate.clone(),this.startDate=b,this.endDate=d,this.startDate.isSame(this.oldStartDate)&&this.endDate.isSame(this.oldEndDate)||this.notify(),this.updateCalendars())}},notify:function(){this.updateView(),this.cb(this.startDate,this.endDate,this.chosenLabel)},move:function(){var a={top:0,left:0},b=d(window).width();this.parentEl.is("body")||(a={top:this.parentEl.offset().top-this.parentEl.scrollTop(),left:this.parentEl.offset().left-this.parentEl.scrollLeft()},b=this.parentEl[0].clientWidth+this.parentEl.offset().left),"left"==this.opens?(this.container.css({top:this.element.offset().top+this.element.outerHeight()-a.top,right:b-this.element.offset().left-this.element.outerWidth(),left:"auto"}),this.container.offset().left<0&&this.container.css({right:"auto",left:9})):"center"==this.opens?(this.container.css({top:this.element.offset().top+this.element.outerHeight()-a.top,left:this.element.offset().left-a.left+this.element.outerWidth()/2-this.container.outerWidth()/2,right:"auto"}),this.container.offset().left<0&&this.container.css({right:"auto",left:9})):(this.container.css({top:this.element.offset().top+this.element.outerHeight()-a.top,left:this.element.offset().left-a.left,right:"auto"}),this.container.offset().left+this.container.outerWidth()>d(window).width()&&this.container.css({left:"auto",right:0}))},toggle:function(a){this.element.hasClass("active")?this.hide():this.show()},show:function(a){this.isShowing||(this.element.addClass("active"),this.container.show(),this.move(),this._outsideClickProxy=d.proxy(function(a){this.outsideClick(a)},this),d(document).on("mousedown.daterangepicker",this._outsideClickProxy).on("touchend.daterangepicker",this._outsideClickProxy).on("click.daterangepicker","[data-toggle=dropdown]",this._outsideClickProxy).on("focusin.daterangepicker",this._outsideClickProxy),this.isShowing=!0,this.element.trigger("show.daterangepicker",this))},outsideClick:function(a){var b=d(a.target);"focusin"==a.type||b.closest(this.element).length||b.closest(this.container).length||b.closest(".calendar-date").length||this.hide()},hide:function(a){this.isShowing&&(d(document).off(".daterangepicker"),this.element.removeClass("active"),this.container.hide(),this.startDate.isSame(this.oldStartDate)&&this.endDate.isSame(this.oldEndDate)||this.notify(),this.oldStartDate=this.startDate.clone(),this.oldEndDate=this.endDate.clone(),this.isShowing=!1,this.element.trigger("hide.daterangepicker",this))},enterRange:function(a){var b=a.target.innerHTML;if(b==this.locale.customRangeLabel)this.updateView();else{var c=this.ranges[b];this.container.find("input[name=daterangepicker_start]").val(c[0].format(this.format)),this.container.find("input[name=daterangepicker_end]").val(c[1].format(this.format))}},showCalendars:function(){this.container.addClass("show-calendar"),this.move(),this.element.trigger("showCalendar.daterangepicker",this)},hideCalendars:function(){this.container.removeClass("show-calendar"),this.element.trigger("hideCalendar.daterangepicker",this)},inputsChanged:function(a){var b=d(a.target),e=c(b.val(),this.format);if(e.isValid()){var f,g;"daterangepicker_start"===b.attr("name")?(f=e,g=this.endDate):(f=this.startDate,g=e),this.setCustomDates(f,g)}},inputsKeydown:function(a){13===a.keyCode&&(this.inputsChanged(a),this.notify())},updateInputText:function(){this.element.is("input")&&!this.singleDatePicker?this.element.val(this.startDate.format(this.format)+this.separator+this.endDate.format(this.format)):this.element.is("input")&&this.element.val(this.endDate.format(this.format))},clickRange:function(a){var b=a.target.innerHTML;if(this.chosenLabel=b,b==this.locale.customRangeLabel)this.showCalendars();else{var c=this.ranges[b];this.startDate=c[0],this.endDate=c[1],this.timePicker||(this.startDate.startOf("day"),this.endDate.endOf("day")),this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()).hour(this.startDate.hour()).minute(this.startDate.minute()),this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()).hour(this.endDate.hour()).minute(this.endDate.minute()),this.updateCalendars(),this.updateInputText(),this.hideCalendars(),this.hide(),this.element.trigger("apply.daterangepicker",this)}},clickPrev:function(a){var b=d(a.target).parents(".calendar");b.hasClass("left")?this.leftCalendar.month.subtract(1,"month"):this.rightCalendar.month.subtract(1,"month"),this.updateCalendars()},clickNext:function(a){var b=d(a.target).parents(".calendar");b.hasClass("left")?this.leftCalendar.month.add(1,"month"):this.rightCalendar.month.add(1,"month"),this.updateCalendars()},hoverDate:function(a){var b=d(a.target).attr("data-title"),c=b.substr(1,1),e=b.substr(3,1),f=d(a.target).parents(".calendar");f.hasClass("left")?this.container.find("input[name=daterangepicker_start]").val(this.leftCalendar.calendar[c][e].format(this.format)):this.container.find("input[name=daterangepicker_end]").val(this.rightCalendar.calendar[c][e].format(this.format))},setCustomDates:function(a,b){if(this.chosenLabel=this.locale.customRangeLabel,a.isAfter(b)){var d=this.endDate.diff(this.startDate);b=c(a).add(d,"ms")}this.startDate=a,this.endDate=b,this.updateView(),this.updateCalendars()},clickDate:function(a){var b,e,f=d(a.target).attr("data-title"),g=f.substr(1,1),h=f.substr(3,1),i=d(a.target).parents(".calendar");if(i.hasClass("left")){if(b=this.leftCalendar.calendar[g][h],e=this.endDate,"object"==typeof this.dateLimit){var j=c(b).add(this.dateLimit).startOf("day");e.isAfter(j)&&(e=j)}}else if(b=this.startDate,e=this.rightCalendar.calendar[g][h],"object"==typeof this.dateLimit){var k=c(e).subtract(this.dateLimit).startOf("day");b.isBefore(k)&&(b=k)}this.singleDatePicker&&i.hasClass("left")?e=b.clone():this.singleDatePicker&&i.hasClass("right")&&(b=e.clone()),i.find("td").removeClass("active"),d(a.target).addClass("active"),this.setCustomDates(b,e),this.timePicker||e.endOf("day"),this.singleDatePicker&&!this.timePicker&&this.clickApply()},clickApply:function(a){this.updateInputText(),this.hide(),this.element.trigger("apply.daterangepicker",this)},clickCancel:function(a){this.startDate=this.oldStartDate,this.endDate=this.oldEndDate,this.chosenLabel=this.oldChosenLabel,this.updateView(),this.updateCalendars(),this.hide(),this.element.trigger("cancel.daterangepicker",this)},updateMonthYear:function(a){var b=d(a.target).closest(".calendar").hasClass("left"),c=b?"left":"right",e=this.container.find(".calendar."+c),f=parseInt(e.find(".monthselect").val(),10),g=e.find(".yearselect").val();this[c+"Calendar"].month.month(f).year(g),this.updateCalendars()},updateTime:function(a){var b=d(a.target).closest(".calendar"),c=b.hasClass("left"),e=parseInt(b.find(".hourselect").val(),10),f=parseInt(b.find(".minuteselect").val(),10),g=0;if(this.timePickerSeconds&&(g=parseInt(b.find(".secondselect").val(),10)),this.timePicker12Hour){var h=b.find(".ampmselect").val();"PM"===h&&12>e&&(e+=12),"AM"===h&&12===e&&(e=0)}if(c){var i=this.startDate.clone();i.hour(e),i.minute(f),i.second(g),this.startDate=i,this.leftCalendar.month.hour(e).minute(f).second(g),this.singleDatePicker&&(this.endDate=i.clone())}else{var j=this.endDate.clone();j.hour(e),j.minute(f),j.second(g),this.endDate=j,this.singleDatePicker&&(this.startDate=j.clone()),this.rightCalendar.month.hour(e).minute(f).second(g)}this.updateView(),this.updateCalendars()},updateCalendars:function(){this.leftCalendar.calendar=this.buildCalendar(this.leftCalendar.month.month(),this.leftCalendar.month.year(),this.leftCalendar.month.hour(),this.leftCalendar.month.minute(),this.leftCalendar.month.second(),"left"),this.rightCalendar.calendar=this.buildCalendar(this.rightCalendar.month.month(),this.rightCalendar.month.year(),this.rightCalendar.month.hour(),this.rightCalendar.month.minute(),this.rightCalendar.month.second(),"right"),this.container.find(".calendar.left").empty().html(this.renderCalendar(this.leftCalendar.calendar,this.startDate,this.minDate,this.maxDate,"left")),this.container.find(".calendar.right").empty().html(this.renderCalendar(this.rightCalendar.calendar,this.endDate,this.singleDatePicker?this.minDate:this.startDate,this.maxDate,"right")),this.container.find(".ranges li").removeClass("active");var a=!0,b=0;for(var c in this.ranges)this.timePicker?this.startDate.isSame(this.ranges[c][0])&&this.endDate.isSame(this.ranges[c][1])&&(a=!1,this.chosenLabel=this.container.find(".ranges li:eq("+b+")").addClass("active").html()):this.startDate.format("YYYY-MM-DD")==this.ranges[c][0].format("YYYY-MM-DD")&&this.endDate.format("YYYY-MM-DD")==this.ranges[c][1].format("YYYY-MM-DD")&&(a=!1,this.chosenLabel=this.container.find(".ranges li:eq("+b+")").addClass("active").html()),b++;a&&(this.chosenLabel=this.container.find(".ranges li:last").addClass("active").html(),this.showCalendars())},buildCalendar:function(a,b,d,e,f,g){var h,i=c([b,a]).daysInMonth(),j=c([b,a,1]),k=c([b,a,i]),l=c(j).subtract(1,"month").month(),m=c(j).subtract(1,"month").year(),n=c([m,l]).daysInMonth(),o=j.day(),p=[];for(p.firstDay=j,p.lastDay=k,h=0;6>h;h++)p[h]=[];var q=n-o+this.locale.firstDay+1;q>n&&(q-=7),o==this.locale.firstDay&&(q=n-6);var r,s,t=c([m,l,q,12,e,f]).zone(this.timeZone);for(h=0,r=0,s=0;42>h;h++,r++,t=c(t).add(24,"hour"))h>0&&r%7===0&&(r=0,s++),p[s][r]=t.clone().hour(d),t.hour(12),this.minDate&&p[s][r].format("YYYY-MM-DD")==this.minDate.format("YYYY-MM-DD")&&p[s][r].isBefore(this.minDate)&&"left"==g&&(p[s][r]=this.minDate.clone()),this.maxDate&&p[s][r].format("YYYY-MM-DD")==this.maxDate.format("YYYY-MM-DD")&&p[s][r].isAfter(this.maxDate)&&"right"==g&&(p[s][r]=this.maxDate.clone());return p},renderDropdowns:function(a,b,c){for(var d=a.month(),e=a.year(),f=c&&c.year()||e+5,g=b&&b.year()||e-50,h='";for(var l='",h+l},renderCalendar:function(a,b,c,e,f){var g='
        ';g+='',g+="",g+="",this.showWeekNumbers&&(g+=""),g+=!c||c.isBefore(a.firstDay)?'':"";var h=this.locale.monthNames[a[1][1].month()]+a[1][1].format(" YYYY");this.showDropdowns&&(h=this.renderDropdowns(a[1][1],c,e)),g+='",g+=!e||e.isAfter(a.lastDay)?'':"",g+="",g+="",this.showWeekNumbers&&(g+='"),d.each(this.locale.daysOfWeek,function(a,b){g+=""}),g+="",g+="",g+="";for(var i=0;6>i;i++){g+="",this.showWeekNumbers&&(g+='");for(var j=0;7>j;j++){var k="available ";k+=a[i][j].month()==a[1][1].month()?"":"off",c&&a[i][j].isBefore(c,"day")||e&&a[i][j].isAfter(e,"day")?k=" off disabled ":a[i][j].format("YYYY-MM-DD")==b.format("YYYY-MM-DD")?(k+=" active ",a[i][j].format("YYYY-MM-DD")==this.startDate.format("YYYY-MM-DD")&&(k+=" start-date "),a[i][j].format("YYYY-MM-DD")==this.endDate.format("YYYY-MM-DD")&&(k+=" end-date ")):a[i][j]>=this.startDate&&a[i][j]<=this.endDate&&(k+=" in-range ",a[i][j].isSame(this.startDate)&&(k+=" start-date "),a[i][j].isSame(this.endDate)&&(k+=" end-date "));var l="r"+i+"c"+j;g+='"}g+=""}g+="",g+="
        '+h+"
        '+this.locale.weekLabel+""+b+"
        '+a[i][0].week()+"'+a[i][j].date()+"
        ",g+="
        ";var m;if(this.timePicker){g+='
        ',g+=' : ",g+=' ",this.timePickerSeconds){for(g+=': "}if(this.timePicker12Hour){g+='"}g+="
        "}return g},remove:function(){this.container.remove(),this.element.off(".daterangepicker"),this.element.removeData("daterangepicker")}},d.fn.daterangepicker=function(a,b){return this.each(function(){var c=d(this);c.data("daterangepicker")&&c.data("daterangepicker").remove(),c.data("daterangepicker",new e(c,a,b))}),this}}),function(a){"use strict";a.module("ngBootstrap",[]).directive("input",["$compile","$parse","$filter",function(b,c,d){return{restrict:"E",require:"?ngModel",link:function(b,e,f,g){function h(a){return moment.isMoment(a)?a.toDate():a}function i(a){return moment.isMoment(a)?a:moment(a)}function j(a){return d("date")(h(a),l.format.replace(/Y/g,"y").replace(/D/g,"d"))}function k(a){return[j(a.startDate),j(a.endDate)].join(l.separator)}if("daterange"===f.type&&null!==g){var l={};l.format=f.format||"YYYY-MM-DD",l.separator=f.separator||" - ",l.minDate=f.minDate&&moment(f.minDate),l.maxDate=f.maxDate&&moment(f.maxDate),l.dateLimit=f.limit&&moment.duration.apply(this,f.limit.split(" ").map(function(a,b){return 0===b&&parseInt(a,10)||a})),l.ranges=f.ranges&&c(f.ranges)(b),l.locale=f.locale&&c(f.locale)(b),l.opens=f.opens||c(f.opens)(b),f.enabletimepicker&&(l.timePicker=!0,a.extend(l,c(f.enabletimepicker)(b))),g.$render=function(){g.$viewValue&&g.$viewValue.startDate&&e.val(k(g.$viewValue))},b.$watch(function(){return f.ngModel},function(a,c){return b[a]&&b[a].startDate?void(c===a&&(e.data("daterangepicker").startDate=i(b[a].startDate),e.data("daterangepicker").endDate=i(b[a].endDate),e.data("daterangepicker").updateView(),e.data("daterangepicker").updateCalendars(),e.data("daterangepicker").updateInputText())):void g.$setViewValue({startDate:moment().startOf("day"),endDate:moment().startOf("day")})}),e.daterangepicker(l,function(c,d,e){var f=g.$viewValue;a.equals(c,f.startDate)&&a.equals(d,f.endDate)||b.$apply(function(){g.$setViewValue({startDate:moment.isMoment(f.startDate)?c:c.toDate(),endDate:moment.isMoment(f.endDate)?d:d.toDate()}),g.$render()})})}}}}])}(angular),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.debounce","ui.bootstrap.dropdown","ui.bootstrap.stackedMap","ui.bootstrap.modal","ui.bootstrap.paging","ui.bootstrap.pager","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["uib/template/accordion/accordion-group.html","uib/template/accordion/accordion.html","uib/template/alert/alert.html","uib/template/carousel/carousel.html","uib/template/carousel/slide.html","uib/template/datepicker/datepicker.html","uib/template/datepicker/day.html","uib/template/datepicker/month.html","uib/template/datepicker/popup.html","uib/template/datepicker/year.html","uib/template/modal/backdrop.html","uib/template/modal/window.html","uib/template/pager/pager.html","uib/template/pagination/pagination.html","uib/template/tooltip/tooltip-html-popup.html","uib/template/tooltip/tooltip-popup.html","uib/template/tooltip/tooltip-template-popup.html","uib/template/popover/popover-html.html","uib/template/popover/popover-template.html","uib/template/popover/popover.html","uib/template/progressbar/bar.html","uib/template/progressbar/progress.html","uib/template/progressbar/progressbar.html","uib/template/rating/rating.html","uib/template/tabs/tab.html","uib/template/tabs/tabset.html","uib/template/timepicker/timepicker.html","uib/template/typeahead/typeahead-match.html","uib/template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.collapse",[]).directive("uibCollapse",["$animate","$injector",function(a,b){var c=b.has("$animateCss")?b.get("$animateCss"):null;return{link:function(b,d,e){function f(){d.removeClass("collapse").addClass("collapsing").attr("aria-expanded",!0).attr("aria-hidden",!1),c?c(d,{addClass:"in",easing:"ease",to:{height:d[0].scrollHeight+"px"}}).start()["finally"](g):a.addClass(d,"in",{to:{height:d[0].scrollHeight+"px"}}).then(g)}function g(){d.removeClass("collapsing").addClass("collapse").css({height:"auto"})}function h(){return d.hasClass("collapse")||d.hasClass("in")?(d.css({height:d[0].scrollHeight+"px"}).removeClass("collapse").addClass("collapsing").attr("aria-expanded",!1).attr("aria-hidden",!0),void(c?c(d,{removeClass:"in",to:{height:"0"}}).start()["finally"](i):a.removeClass(d,"in",{to:{height:"0"}}).then(i))):i()}function i(){d.css({height:"0"}),d.removeClass("collapsing").addClass("collapse")}b.$eval(e.uibCollapse)||d.addClass("in").addClass("collapse").css({height:"auto"}),b.$watch(e.uibCollapse,function(a){a?h():f()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("uibAccordionConfig",{closeOthers:!0}).controller("UibAccordionController",["$scope","$attrs","uibAccordionConfig",function(a,b,c){this.groups=[],this.closeOthers=function(d){var e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&&angular.forEach(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var b=this;this.groups.push(a),a.$on("$destroy",function(c){b.removeGroup(a)})},this.removeGroup=function(a){var b=this.groups.indexOf(a);-1!==b&&this.groups.splice(b,1)}}]).directive("uibAccordion",function(){return{controller:"UibAccordionController",controllerAs:"accordion",transclude:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/accordion/accordion.html"}}}).directive("uibAccordionGroup",function(){return{require:"^uibAccordion",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/accordion/accordion-group.html"},scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(a,b,c,d){d.addGroup(a),a.openClass=c.openClass||"panel-open",a.panelClass=c.panelClass||"panel-default",a.$watch("isOpen",function(c){b.toggleClass(a.openClass,!!c),c&&d.closeOthers(a)}),a.toggleOpen=function(b){a.isDisabled||b&&32!==b.which||(a.isOpen=!a.isOpen)}}}}).directive("uibAccordionHeading",function(){return{transclude:!0,template:"",replace:!0,require:"^uibAccordionGroup",link:function(a,b,c,d,e){d.setHeading(e(a,angular.noop))}}}).directive("uibAccordionTransclude",function(){return{require:"^uibAccordionGroup",link:function(a,b,c,d){a.$watch(function(){return d[c.uibAccordionTransclude]},function(a){a&&(b.find("span").html(""),b.find("span").append(a))})}}}),angular.module("ui.bootstrap.alert",[]).controller("UibAlertController",["$scope","$attrs","$interpolate","$timeout",function(a,b,c,d){a.closeable=!!b.close;var e=angular.isDefined(b.dismissOnTimeout)?c(b.dismissOnTimeout)(a.$parent):null;e&&d(function(){a.close()},parseInt(e,10))}]).directive("uibAlert",function(){return{controller:"UibAlertController",controllerAs:"alert",templateUrl:function(a,b){return b.templateUrl||"uib/template/alert/alert.html"},transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}),angular.module("ui.bootstrap.buttons",[]).constant("uibButtonConfig",{activeClass:"active",toggleEvent:"click"}).controller("UibButtonsController",["uibButtonConfig",function(a){this.activeClass=a.activeClass||"active",this.toggleEvent=a.toggleEvent||"click"}]).directive("uibBtnRadio",["$parse",function(a){return{require:["uibBtnRadio","ngModel"],controller:"UibButtonsController",controllerAs:"buttons",link:function(b,c,d,e){var f=e[0],g=e[1],h=a(d.uibUncheckable);c.find("input").css({display:"none"}),g.$render=function(){c.toggleClass(f.activeClass,angular.equals(g.$modelValue,b.$eval(d.uibBtnRadio)))},c.on(f.toggleEvent,function(){if(!d.disabled){var a=c.hasClass(f.activeClass);a&&!angular.isDefined(d.uncheckable)||b.$apply(function(){g.$setViewValue(a?null:b.$eval(d.uibBtnRadio)),g.$render()})}}),d.uibUncheckable&&b.$watch(h,function(a){d.$set("uncheckable",a?"":null)})}}}]).directive("uibBtnCheckbox",function(){return{require:["uibBtnCheckbox","ngModel"],controller:"UibButtonsController",controllerAs:"button",link:function(a,b,c,d){function e(){return g(c.btnCheckboxTrue,!0)}function f(){return g(c.btnCheckboxFalse,!1)}function g(b,c){return angular.isDefined(b)?a.$eval(b):c}var h=d[0],i=d[1];b.find("input").css({display:"none"}),i.$render=function(){b.toggleClass(h.activeClass,angular.equals(i.$modelValue,e()))},b.on(h.toggleEvent,function(){c.disabled||a.$apply(function(){i.$setViewValue(b.hasClass(h.activeClass)?f():e()),i.$render()})})}}}),angular.module("ui.bootstrap.carousel",[]).controller("UibCarouselController",["$scope","$element","$interval","$timeout","$animate",function(a,b,c,d,e){function f(){for(;s.length;)s.shift()}function g(a){if(angular.isUndefined(p[a].index))return p[a];for(var b=0,c=p.length;c>b;++b)if(p[b].index===a)return p[b]}function h(c,d,g){t||(angular.extend(c,{direction:g,active:!0}),angular.extend(o.currentSlide||{},{direction:g,active:!1}),e.enabled(b)&&!a.$currentTransition&&c.$element&&o.slides.length>1&&(c.$element.data(q,c.direction),o.currentSlide&&o.currentSlide.$element&&o.currentSlide.$element.data(q,c.direction),a.$currentTransition=!0,e.on("addClass",c.$element,function(b,c){if("close"===c&&(a.$currentTransition=null,e.off("addClass",b),s.length)){var d=s.pop(),g=a.indexOfSlide(d),i=g>o.getCurrentIndex()?"next":"prev";f(),h(d,g,i)}})),o.currentSlide=c,r=d,k())}function i(){m&&(c.cancel(m),m=null)}function j(b){b.length||(a.$currentTransition=null,f())}function k(){i();var b=+a.interval;!isNaN(b)&&b>0&&(m=c(l,b))}function l(){var b=+a.interval;n&&!isNaN(b)&&b>0&&p.length?a.next():a.pause()}var m,n,o=this,p=o.slides=a.slides=[],q="uib-slideDirection",r=-1,s=[];o.currentSlide=null;var t=!1;o.addSlide=function(b,c){b.$element=c,p.push(b),1===p.length||b.active?(a.$currentTransition&&(a.$currentTransition=null),o.select(p[p.length-1]),1===p.length&&a.play()):b.active=!1},o.getCurrentIndex=function(){return o.currentSlide&&angular.isDefined(o.currentSlide.index)?+o.currentSlide.index:r},o.next=a.next=function(){var b=(o.getCurrentIndex()+1)%p.length;return 0===b&&a.noWrap()?void a.pause():o.select(g(b),"next")},o.prev=a.prev=function(){var b=o.getCurrentIndex()-1<0?p.length-1:o.getCurrentIndex()-1;return a.noWrap()&&b===p.length-1?void a.pause():o.select(g(b),"prev")},o.removeSlide=function(a){angular.isDefined(a.index)&&p.sort(function(a,b){return+a.index>+b.index});var b=s.indexOf(a);-1!==b&&s.splice(b,1);var c=p.indexOf(a);p.splice(c,1),d(function(){p.length>0&&a.active?c>=p.length?o.select(p[c-1]):o.select(p[c]):r>c&&r--}),0===p.length&&(o.currentSlide=null,f())},o.select=a.select=function(b,c){var d=a.indexOfSlide(b);void 0===c&&(c=d>o.getCurrentIndex()?"next":"prev"),b&&b!==o.currentSlide&&!a.$currentTransition?h(b,d,c):b&&b!==o.currentSlide&&a.$currentTransition&&(s.push(b),b.active=!1)},a.indexOfSlide=function(a){return angular.isDefined(a.index)?+a.index:p.indexOf(a)},a.isActive=function(a){return o.currentSlide===a},a.pause=function(){a.noPause||(n=!1,i())},a.play=function(){n||(n=!0,k())},a.$on("$destroy",function(){t=!0,i()}),a.$watch("noTransition",function(a){e.enabled(b,!a)}),a.$watch("interval",k),a.$watchCollection("slides",j)}]).directive("uibCarousel",function(){return{transclude:!0,replace:!0,controller:"UibCarouselController",controllerAs:"carousel",templateUrl:function(a,b){return b.templateUrl||"uib/template/carousel/carousel.html"},scope:{interval:"=",noTransition:"=",noPause:"=",noWrap:"&"}}}).directive("uibSlide",function(){return{require:"^uibCarousel",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/carousel/slide.html"},scope:{active:"=?",actual:"=?",index:"=?"},link:function(a,b,c,d){d.addSlide(a,b),a.$on("$destroy",function(){d.removeSlide(a)}),a.$watch("active",function(b){b&&d.select(a)})}}}).animation(".item",["$animateCss",function(a){function b(a,b,c){a.removeClass(b),c&&c()}var c="uib-slideDirection";return{beforeAddClass:function(d,e,f){if("active"===e){var g=!1,h=d.data(c),i="next"===h?"left":"right",j=b.bind(this,d,i+" "+h,f);return d.addClass(h),a(d,{addClass:i}).start().done(j),function(){g=!0}}f()},beforeRemoveClass:function(d,e,f){if("active"===e){var g=!1,h=d.data(c),i="next"===h?"left":"right",j=b.bind(this,d,i,f);return a(d,{addClass:i}).start().done(j),function(){g=!0}}f()}}}]),angular.module("ui.bootstrap.dateparser",[]).service("uibDateParser",["$log","$locale","orderByFilter",function(a,b,c){function d(a){var b=[],d=a.split(""),e=a.indexOf("'");if(e>-1){var f=!1;a=a.split("");for(var g=e;g-1){a=a.split(""),d[e]="("+c.regex+")",a[e]="$";for(var f=e+1,g=e+c.key.length;g>f;f++)d[f]="",a[f]="$";a=a.join(""),b.push({index:e,apply:c.apply,matcher:c.regex})}}),{regex:new RegExp("^"+d.join("")+"$"),map:c(b,"index")}}function e(a,b,c){return 1>c?!1:1===b&&c>28?29===c&&(a%4===0&&a%100!==0||a%400===0):3===b||5===b||8===b||10===b?31>c:!0}function f(a){return parseInt(a,10)}function g(a,b){return a&&b?k(a,b):a}function h(a,b){return a&&b?k(a,b,!0):a}function i(a,b){var c=Date.parse("Jan 01, 1970 00:00:00 "+a)/6e4;return isNaN(c)?b:c}function j(a,b){return a=new Date(a.getTime()),a.setMinutes(a.getMinutes()+b),a}function k(a,b,c){c=c?-1:1;var d=i(b,a.getTimezoneOffset());return j(a,c*(d-a.getTimezoneOffset()))}var l,m,n=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;this.init=function(){l=b.id,this.parsers={},m=[{key:"yyyy",regex:"\\d{4}",apply:function(a){this.year=+a}},{key:"yy",regex:"\\d{2}",apply:function(a){this.year=+a+2e3}},{key:"y",regex:"\\d{1,4}",apply:function(a){this.year=+a}},{key:"M!",regex:"0?[1-9]|1[0-2]",apply:function(a){this.month=a-1}},{key:"MMMM",regex:b.DATETIME_FORMATS.MONTH.join("|"),apply:function(a){this.month=b.DATETIME_FORMATS.MONTH.indexOf(a)}},{key:"MMM",regex:b.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(a){this.month=b.DATETIME_FORMATS.SHORTMONTH.indexOf(a)}},{key:"MM",regex:"0[1-9]|1[0-2]",apply:function(a){this.month=a-1}},{key:"M",regex:"[1-9]|1[0-2]",apply:function(a){this.month=a-1}},{key:"d!",regex:"[0-2]?[0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},{key:"dd",regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},{key:"d",regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},{key:"EEEE",regex:b.DATETIME_FORMATS.DAY.join("|")},{key:"EEE",regex:b.DATETIME_FORMATS.SHORTDAY.join("|")},{key:"HH",regex:"(?:0|1)[0-9]|2[0-3]",apply:function(a){this.hours=+a}},{key:"hh",regex:"0[0-9]|1[0-2]",apply:function(a){this.hours=+a}},{key:"H",regex:"1?[0-9]|2[0-3]",apply:function(a){this.hours=+a}},{key:"h",regex:"[0-9]|1[0-2]",apply:function(a){this.hours=+a}},{key:"mm",regex:"[0-5][0-9]",apply:function(a){this.minutes=+a}},{key:"m",regex:"[0-9]|[1-5][0-9]",apply:function(a){this.minutes=+a}},{key:"sss",regex:"[0-9][0-9][0-9]",apply:function(a){this.milliseconds=+a}},{key:"ss",regex:"[0-5][0-9]",apply:function(a){this.seconds=+a}},{key:"s",regex:"[0-9]|[1-5][0-9]",apply:function(a){this.seconds=+a}},{key:"a",regex:b.DATETIME_FORMATS.AMPMS.join("|"),apply:function(a){12===this.hours&&(this.hours=0),"PM"===a&&(this.hours+=12)}},{key:"Z",regex:"[+-]\\d{4}",apply:function(a){var b=a.match(/([+-])(\d{2})(\d{2})/),c=b[1],d=b[2],e=b[3];this.hours+=f(c+d),this.minutes+=f(c+e)}},{key:"ww",regex:"[0-4][0-9]|5[0-3]"},{key:"w",regex:"[0-9]|[1-4][0-9]|5[0-3]"},{key:"GGGG",regex:b.DATETIME_FORMATS.ERANAMES.join("|").replace(/\s/g,"\\s")},{key:"GGG",regex:b.DATETIME_FORMATS.ERAS.join("|")},{key:"GG",regex:b.DATETIME_FORMATS.ERAS.join("|")},{key:"G",regex:b.DATETIME_FORMATS.ERAS.join("|")}]},this.init(),this.parse=function(c,f,g){if(!angular.isString(c)||!f)return c;f=b.DATETIME_FORMATS[f]||f,f=f.replace(n,"\\$&"),b.id!==l&&this.init(),this.parsers[f]||(this.parsers[f]=d(f));var h=this.parsers[f],i=h.regex,j=h.map,k=c.match(i),m=!1;if(k&&k.length){var o,p;angular.isDate(g)&&!isNaN(g.getTime())?o={year:g.getFullYear(),month:g.getMonth(),date:g.getDate(),hours:g.getHours(),minutes:g.getMinutes(),seconds:g.getSeconds(),milliseconds:g.getMilliseconds()}:(g&&a.warn("dateparser:","baseDate is not a valid date"),o={year:1900,month:0,date:1,hours:0,minutes:0,seconds:0,milliseconds:0});for(var q=1,r=k.length;r>q;q++){var s=j[q-1];"Z"===s.matcher&&(m=!0),s.apply&&s.apply.call(o,k[q])}var t=m?Date.prototype.setUTCFullYear:Date.prototype.setFullYear,u=m?Date.prototype.setUTCHours:Date.prototype.setHours;return e(o.year,o.month,o.date)&&(!angular.isDate(g)||isNaN(g.getTime())||m?(p=new Date(0),t.call(p,o.year,o.month,o.date),u.call(p,o.hours||0,o.minutes||0,o.seconds||0,o.milliseconds||0)):(p=new Date(g),t.call(p,o.year,o.month,o.date),u.call(p,o.hours,o.minutes,o.seconds,o.milliseconds))),p}},this.toTimezone=g,this.fromTimezone=h,this.timezoneToOffset=i,this.addDateMinutes=j,this.convertTimezoneToLocal=k}]),angular.module("ui.bootstrap.isClass",[]).directive("uibIsClass",["$animate",function(a){var b=/^\s*([\s\S]+?)\s+on\s+([\s\S]+?)\s*$/,c=/^\s*([\s\S]+?)\s+for\s+([\s\S]+?)\s*$/;return{restrict:"A",compile:function(d,e){function f(a,b,c){i.push(a),j.push({scope:a,element:b}),o.forEach(function(b,c){g(b,a)}),a.$on("$destroy",h)}function g(b,d){var e=b.match(c),f=d.$eval(e[1]),g=e[2],h=k[b];if(!h){var i=function(b){var c=null;j.some(function(a){var d=a.scope.$eval(m);return d===b?(c=a,!0):void 0}),h.lastActivated!==c&&(h.lastActivated&&a.removeClass(h.lastActivated.element,f),c&&a.addClass(c.element,f),h.lastActivated=c)};k[b]=h={lastActivated:null,scope:d,watchFn:i,compareWithExp:g,watcher:d.$watch(g,i)}}h.watchFn(d.$eval(g))}function h(a){var b=a.targetScope,c=i.indexOf(b);if(i.splice(c,1),j.splice(c,1),i.length){var d=i[0];angular.forEach(k,function(a){a.scope===b&&(a.watcher=d.$watch(a.compareWithExp,a.watchFn),a.scope=d)})}else k={}}var i=[],j=[],k={},l=e.uibIsClass.match(b),m=l[2],n=l[1],o=n.split(",");return f}}}]),angular.module("ui.bootstrap.position",[]).factory("$uibPosition",["$document","$window",function(a,b){var c,d={normal:/(auto|scroll)/,hidden:/(auto|scroll|hidden)/},e={auto:/\s?auto?\s?/i,primary:/^(top|bottom|left|right)$/,secondary:/^(top|bottom|left|right|center)$/,vertical:/^(top|bottom)$/};return{getRawNode:function(a){return a[0]||a},parseStyle:function(a){return a=parseFloat(a),isFinite(a)?a:0},offsetParent:function(c){function d(a){return"static"===(b.getComputedStyle(a).position||"static")}c=this.getRawNode(c);for(var e=c.offsetParent||a[0].documentElement;e&&e!==a[0].documentElement&&d(e);)e=e.offsetParent;return e||a[0].documentElement},scrollbarWidth:function(){if(angular.isUndefined(c)){var b=angular.element('
        ');a.find("body").append(b),c=b[0].offsetWidth-b[0].clientWidth,c=isFinite(c)?c:0,b.remove()}return c},scrollParent:function(c,e){c=this.getRawNode(c);var f=e?d.hidden:d.normal,g=a[0].documentElement,h=b.getComputedStyle(c),i="absolute"===h.position,j=c.parentElement||g;if(j===g||"fixed"===h.position)return g;for(;j.parentElement&&j!==g;){var k=b.getComputedStyle(j);if(i&&"static"!==k.position&&(i=!1),!i&&f.test(k.overflow+k.overflowY+k.overflowX))break;j=j.parentElement}return j},position:function(c,d){c=this.getRawNode(c);var e=this.offset(c);if(d){var f=b.getComputedStyle(c);e.top-=this.parseStyle(f.marginTop),e.left-=this.parseStyle(f.marginLeft)}var g=this.offsetParent(c),h={top:0,left:0};return g!==a[0].documentElement&&(h=this.offset(g),h.top+=g.clientTop-g.scrollTop,h.left+=g.clientLeft-g.scrollLeft),{width:Math.round(angular.isNumber(e.width)?e.width:c.offsetWidth),height:Math.round(angular.isNumber(e.height)?e.height:c.offsetHeight),top:Math.round(e.top-h.top),left:Math.round(e.left-h.left)}},offset:function(c){c=this.getRawNode(c);var d=c.getBoundingClientRect();return{width:Math.round(angular.isNumber(d.width)?d.width:c.offsetWidth),height:Math.round(angular.isNumber(d.height)?d.height:c.offsetHeight),top:Math.round(d.top+(b.pageYOffset||a[0].documentElement.scrollTop)),left:Math.round(d.left+(b.pageXOffset||a[0].documentElement.scrollLeft))}},viewportOffset:function(c,d,e){c=this.getRawNode(c),e=e!==!1;var f=c.getBoundingClientRect(),g={top:0,left:0,bottom:0,right:0},h=d?a[0].documentElement:this.scrollParent(c),i=h.getBoundingClientRect();if(g.top=i.top+h.clientTop,g.left=i.left+h.clientLeft,h===a[0].documentElement&&(g.top+=b.pageYOffset,g.left+=b.pageXOffset),g.bottom=g.top+h.clientHeight,g.right=g.left+h.clientWidth,e){var j=b.getComputedStyle(h);g.top+=this.parseStyle(j.paddingTop),g.bottom-=this.parseStyle(j.paddingBottom),g.left+=this.parseStyle(j.paddingLeft),g.right-=this.parseStyle(j.paddingRight)}return{top:Math.round(f.top-g.top),bottom:Math.round(g.bottom-f.bottom),left:Math.round(f.left-g.left),right:Math.round(g.right-f.right)}},parsePlacement:function(a){var b=e.auto.test(a);return b&&(a=a.replace(e.auto,"")),a=a.split("-"),a[0]=a[0]||"top",e.primary.test(a[0])||(a[0]="top"),a[1]=a[1]||"center",e.secondary.test(a[1])||(a[1]="center"),b?a[2]=!0:a[2]=!1,a},positionElements:function(a,c,d,f){a=this.getRawNode(a),c=this.getRawNode(c);var g=angular.isDefined(c.offsetWidth)?c.offsetWidth:c.prop("offsetWidth"),h=angular.isDefined(c.offsetHeight)?c.offsetHeight:c.prop("offsetHeight");d=this.parsePlacement(d);var i=f?this.offset(a):this.position(a),j={top:0,left:0,placement:""};if(d[2]){var k=this.viewportOffset(a),l=b.getComputedStyle(c),m={width:g+Math.round(Math.abs(this.parseStyle(l.marginLeft)+this.parseStyle(l.marginRight))),height:h+Math.round(Math.abs(this.parseStyle(l.marginTop)+this.parseStyle(l.marginBottom)))};if(d[0]="top"===d[0]&&m.height>k.top&&m.height<=k.bottom?"bottom":"bottom"===d[0]&&m.height>k.bottom&&m.height<=k.top?"top":"left"===d[0]&&m.width>k.left&&m.width<=k.right?"right":"right"===d[0]&&m.width>k.right&&m.width<=k.left?"left":d[0],d[1]="top"===d[1]&&m.height-i.height>k.bottom&&m.height-i.height<=k.top?"bottom":"bottom"===d[1]&&m.height-i.height>k.top&&m.height-i.height<=k.bottom?"top":"left"===d[1]&&m.width-i.width>k.right&&m.width-i.width<=k.left?"right":"right"===d[1]&&m.width-i.width>k.left&&m.width-i.width<=k.right?"left":d[1],"center"===d[1])if(e.vertical.test(d[0])){var n=i.width/2-g/2;k.left+n<0&&m.width-i.width<=k.right?d[1]="left":k.right+n<0&&m.width-i.width<=k.left&&(d[1]="right")}else{var o=i.height/2-m.height/2;k.top+o<0&&m.height-i.height<=k.bottom?d[1]="top":k.bottom+o<0&&m.height-i.height<=k.top&&(d[1]="bottom")}}switch(d[0]){case"top":j.top=i.top-h;break;case"bottom":j.top=i.top+i.height;break;case"left":j.left=i.left-g;break;case"right":j.left=i.left+i.width}switch(d[1]){case"top":j.top=i.top;break;case"bottom":j.top=i.top+i.height-h;break;case"left":j.left=i.left;break;case"right":j.left=i.left+i.width-g;break;case"center":e.vertical.test(d[0])?j.left=i.left+i.width/2-g/2:j.top=i.top+i.height/2-h/2}return j.top=Math.round(j.top),j.left=Math.round(j.left),j.placement="center"===d[1]?d[0]:d[0]+"-"+d[1],j},positionArrow:function(a,c){a=this.getRawNode(a);var d=!0,f=a.querySelector(".tooltip-inner");if(f||(d=!1,f=a.querySelector(".popover-inner")),f){var g=d?a.querySelector(".tooltip-arrow"):a.querySelector(".arrow");if(g){if(c=this.parsePlacement(c),"center"===c[1])return void angular.element(g).css({top:"",bottom:"",right:"",left:"",margin:""});var h="border-"+c[0]+"-width",i=b.getComputedStyle(g)[h],j="border-";j+=e.vertical.test(c[0])?c[0]+"-"+c[1]:c[1]+"-"+c[0],j+="-radius";var k=b.getComputedStyle(d?f:a)[j],l={top:"auto",bottom:"auto",left:"auto",right:"auto",margin:0};switch(c[0]){case"top":l.bottom=d?"0":"-"+i;break;case"bottom":l.top=d?"0":"-"+i;break;case"left":l.right=d?"0":"-"+i;break;case"right":l.left=d?"0":"-"+i}l[c[1]]=k,angular.element(g).css(l)}}}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.position"]).value("$datepickerSuppressError",!1).constant("uibDatepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRows:4,yearColumns:5,minDate:null,maxDate:null,shortcutPropagation:!1,ngModelOptions:{}}).controller("UibDatepickerController",["$scope","$attrs","$parse","$interpolate","$log","dateFilter","uibDatepickerConfig","$datepickerSuppressError","uibDateParser",function(a,b,c,d,e,f,g,h,i){var j=this,k={$setViewValue:angular.noop},l={};this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle"],function(c){j[c]=angular.isDefined(b[c])?d(b[c])(a.$parent):g[c]}),angular.forEach(["showWeeks","startingDay","yearRows","yearColumns","shortcutPropagation"],function(c){j[c]=angular.isDefined(b[c])?a.$parent.$eval(b[c]):g[c]}),angular.forEach(["minDate","maxDate"],function(c){b[c]?a.$parent.$watch(b[c],function(a){j[c]=a?angular.isDate(a)?i.fromTimezone(new Date(a),l.timezone):new Date(f(a,"medium")):null,j.refreshView()}):j[c]=g[c]?i.fromTimezone(new Date(g[c]),l.timezone):null}),angular.forEach(["minMode","maxMode"],function(c){b[c]?a.$parent.$watch(b[c],function(d){j[c]=a[c]=angular.isDefined(d)?d:b[c],("minMode"===c&&j.modes.indexOf(a.datepickerMode)j.modes.indexOf(j[c]))&&(a.datepickerMode=j[c])}):j[c]=a[c]=g[c]||null}),a.datepickerMode=a.datepickerMode||g.datepickerMode,a.uniqueId="datepicker-"+a.$id+"-"+Math.floor(1e4*Math.random()),angular.isDefined(b.initDate)?(this.activeDate=i.fromTimezone(a.$parent.$eval(b.initDate),l.timezone)||new Date,a.$parent.$watch(b.initDate,function(a){a&&(k.$isEmpty(k.$modelValue)||k.$invalid)&&(j.activeDate=i.fromTimezone(a,l.timezone),j.refreshView())})):this.activeDate=new Date,a.disabled=angular.isDefined(b.disabled)||!1,angular.isDefined(b.ngDisabled)&&a.$parent.$watch(b.ngDisabled,function(b){a.disabled=b,j.refreshView()}),a.isActive=function(b){return 0===j.compare(b.date,j.activeDate)?(a.activeDateId=b.uid,!0):!1},this.init=function(a){k=a,l=a.$options||g.ngModelOptions,k.$modelValue&&(this.activeDate=k.$modelValue),k.$render=function(){j.render()}},this.render=function(){if(k.$viewValue){var a=new Date(k.$viewValue),b=!isNaN(a);b?this.activeDate=i.fromTimezone(a,l.timezone):h||e.error('Datepicker directive: "ng-model" value must be a Date object')}this.refreshView()},this.refreshView=function(){if(this.element){a.selectedDt=null,this._refreshView(),a.activeDt&&(a.activeDateId=a.activeDt.uid);var b=k.$viewValue?new Date(k.$viewValue):null;b=i.fromTimezone(b,l.timezone),k.$setValidity("dateDisabled",!b||this.element&&!this.isDisabled(b))}},this.createDateObject=function(b,c){var d=k.$viewValue?new Date(k.$viewValue):null;d=i.fromTimezone(d,l.timezone);var e={date:b,label:f(b,c.replace(/d!/,"dd")).replace(/M!/,"MM"),selected:d&&0===this.compare(b,d),disabled:this.isDisabled(b),current:0===this.compare(b,new Date),customClass:this.customClass(b)||null};return d&&0===this.compare(b,d)&&(a.selectedDt=e),j.activeDate&&0===this.compare(e.date,j.activeDate)&&(a.activeDt=e),e},this.isDisabled=function(c){return a.disabled||this.minDate&&this.compare(c,this.minDate)<0||this.maxDate&&this.compare(c,this.maxDate)>0||b.dateDisabled&&a.dateDisabled({date:c,mode:a.datepickerMode})},this.customClass=function(b){return a.customClass({date:b,mode:a.datepickerMode})},this.split=function(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c},a.select=function(b){if(a.datepickerMode===j.minMode){var c=k.$viewValue?i.fromTimezone(new Date(k.$viewValue),l.timezone):new Date(0,0,0,0,0,0,0);c.setFullYear(b.getFullYear(),b.getMonth(),b.getDate()),c=i.toTimezone(c,l.timezone),k.$setViewValue(c),k.$render()}else j.activeDate=b,a.datepickerMode=j.modes[j.modes.indexOf(a.datepickerMode)-1]},a.move=function(a){var b=j.activeDate.getFullYear()+a*(j.step.years||0),c=j.activeDate.getMonth()+a*(j.step.months||0);j.activeDate.setFullYear(b,c,1),j.refreshView()},a.toggleMode=function(b){b=b||1,a.datepickerMode===j.maxMode&&1===b||a.datepickerMode===j.minMode&&-1===b||(a.datepickerMode=j.modes[j.modes.indexOf(a.datepickerMode)+b])},a.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};var m=function(){j.element[0].focus()};a.$on("uib:datepicker.focus",m),a.keydown=function(b){var c=a.keys[b.which];if(c&&!b.shiftKey&&!b.altKey&&!a.disabled)if(b.preventDefault(),j.shortcutPropagation||b.stopPropagation(),"enter"===c||"space"===c){if(j.isDisabled(j.activeDate))return;a.select(j.activeDate)}else!b.ctrlKey||"up"!==c&&"down"!==c?(j.handleKeyDown(c,b),j.refreshView()):a.toggleMode("up"===c?1:-1)}}]).controller("UibDaypickerController",["$scope","$element","dateFilter",function(a,b,c){function d(a,b){return 1!==b||a%4!==0||a%100===0&&a%400!==0?f[b]:29}function e(a){var b=new Date(a);b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1}var f=[31,28,31,30,31,30,31,31,30,31,30,31];this.step={months:1},this.element=b,this.init=function(b){angular.extend(b,this),a.showWeeks=b.showWeeks,b.refreshView()},this.getDates=function(a,b){for(var c,d=new Array(b),e=new Date(a),f=0;b>f;)c=new Date(e),d[f++]=c,e.setDate(e.getDate()+1);return d},this._refreshView=function(){var b=this.activeDate.getFullYear(),d=this.activeDate.getMonth(),f=new Date(this.activeDate);f.setFullYear(b,d,1);var g=this.startingDay-f.getDay(),h=g>0?7-g:-g,i=new Date(f);h>0&&i.setDate(-h+1);for(var j=this.getDates(i,42),k=0;42>k;k++)j[k]=angular.extend(this.createDateObject(j[k],this.formatDay),{secondary:j[k].getMonth()!==d,uid:a.uniqueId+"-"+k});a.labels=new Array(7);for(var l=0;7>l;l++)a.labels[l]={abbr:c(j[l].date,this.formatDayHeader),full:c(j[l].date,"EEEE")};if(a.title=c(this.activeDate,this.formatDayTitle),a.rows=this.split(j,7),a.showWeeks){a.weekNumbers=[];for(var m=(11-this.startingDay)%7,n=a.rows.length,o=0;n>o;o++)a.weekNumbers.push(e(a.rows[o][m].date))}},this.compare=function(a,b){var c=new Date(a.getFullYear(),a.getMonth(),a.getDate()),d=new Date(b.getFullYear(),b.getMonth(),b.getDate());return c.setFullYear(a.getFullYear()),d.setFullYear(b.getFullYear()),c-d},this.handleKeyDown=function(a,b){var c=this.activeDate.getDate();if("left"===a)c-=1;else if("up"===a)c-=7;else if("right"===a)c+=1;else if("down"===a)c+=7;else if("pageup"===a||"pagedown"===a){var e=this.activeDate.getMonth()+("pageup"===a?-1:1);this.activeDate.setMonth(e,1),c=Math.min(d(this.activeDate.getFullYear(),this.activeDate.getMonth()),c)}else"home"===a?c=1:"end"===a&&(c=d(this.activeDate.getFullYear(),this.activeDate.getMonth()));this.activeDate.setDate(c)}}]).controller("UibMonthpickerController",["$scope","$element","dateFilter",function(a,b,c){this.step={years:1},this.element=b,this.init=function(a){angular.extend(a,this),a.refreshView()},this._refreshView=function(){for(var b,d=new Array(12),e=this.activeDate.getFullYear(),f=0;12>f;f++)b=new Date(this.activeDate),b.setFullYear(e,f,1),d[f]=angular.extend(this.createDateObject(b,this.formatMonth),{ -uid:a.uniqueId+"-"+f});a.title=c(this.activeDate,this.formatMonthTitle),a.rows=this.split(d,3)},this.compare=function(a,b){var c=new Date(a.getFullYear(),a.getMonth()),d=new Date(b.getFullYear(),b.getMonth());return c.setFullYear(a.getFullYear()),d.setFullYear(b.getFullYear()),c-d},this.handleKeyDown=function(a,b){var c=this.activeDate.getMonth();if("left"===a)c-=1;else if("up"===a)c-=3;else if("right"===a)c+=1;else if("down"===a)c+=3;else if("pageup"===a||"pagedown"===a){var d=this.activeDate.getFullYear()+("pageup"===a?-1:1);this.activeDate.setFullYear(d)}else"home"===a?c=0:"end"===a&&(c=11);this.activeDate.setMonth(c)}}]).controller("UibYearpickerController",["$scope","$element","dateFilter",function(a,b,c){function d(a){return parseInt((a-1)/f,10)*f+1}var e,f;this.element=b,this.yearpickerInit=function(){e=this.yearColumns,f=this.yearRows*e,this.step={years:f}},this._refreshView=function(){for(var b,c=new Array(f),g=0,h=d(this.activeDate.getFullYear());f>g;g++)b=new Date(this.activeDate),b.setFullYear(h+g,0,1),c[g]=angular.extend(this.createDateObject(b,this.formatYear),{uid:a.uniqueId+"-"+g});a.title=[c[0].label,c[f-1].label].join(" - "),a.rows=this.split(c,e),a.columns=e},this.compare=function(a,b){return a.getFullYear()-b.getFullYear()},this.handleKeyDown=function(a,b){var c=this.activeDate.getFullYear();"left"===a?c-=1:"up"===a?c-=e:"right"===a?c+=1:"down"===a?c+=e:"pageup"===a||"pagedown"===a?c+=("pageup"===a?-1:1)*f:"home"===a?c=d(this.activeDate.getFullYear()):"end"===a&&(c=d(this.activeDate.getFullYear())+f-1),this.activeDate.setFullYear(c)}}]).directive("uibDatepicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/datepicker.html"},scope:{datepickerMode:"=?",dateDisabled:"&",customClass:"&",shortcutPropagation:"&?"},require:["uibDatepicker","^ngModel"],controller:"UibDatepickerController",controllerAs:"datepicker",link:function(a,b,c,d){var e=d[0],f=d[1];e.init(f)}}}).directive("uibDaypicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/day.html"},require:["^uibDatepicker","uibDaypicker"],controller:"UibDaypickerController",link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive("uibMonthpicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/month.html"},require:["^uibDatepicker","uibMonthpicker"],controller:"UibMonthpickerController",link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive("uibYearpicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/year.html"},require:["^uibDatepicker","uibYearpicker"],controller:"UibYearpickerController",link:function(a,b,c,d){var e=d[0];angular.extend(e,d[1]),e.yearpickerInit(),e.refreshView()}}}).constant("uibDatepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",datepickerPopupTemplateUrl:"uib/template/datepicker/popup.html",datepickerTemplateUrl:"uib/template/datepicker/datepicker.html",html5Types:{date:"yyyy-MM-dd","datetime-local":"yyyy-MM-ddTHH:mm:ss.sss",month:"yyyy-MM"},currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0,onOpenFocus:!0,altInputFormats:[]}).controller("UibDatepickerPopupController",["$scope","$element","$attrs","$compile","$parse","$document","$rootScope","$uibPosition","dateFilter","uibDateParser","uibDatepickerPopupConfig","$timeout","uibDatepickerConfig",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function o(b){var c=j.parse(b,t,a.date);if(isNaN(c))for(var d=0;d
        "),a.ngModelOptions=angular.copy(C),a.ngModelOptions.timezone=null,z.attr({"ng-model":"date","ng-model-options":"ngModelOptions","ng-change":"dateSelection(date)","template-url":x}),A=angular.element(z.children()[0]),A.attr("template-url",y),G&&"month"===c.type&&(A.attr("datepicker-mode",'"month"'),A.attr("min-mode","month")),c.datepickerOptions){var l=a.$parent.$eval(c.datepickerOptions);l&&l.initDate&&(a.initDate=j.fromTimezone(l.initDate,C.timezone),A.attr("init-date","initDate"),delete l.initDate),angular.forEach(l,function(a,b){A.attr(n(b),a)})}angular.forEach(["minMode","maxMode"],function(b){c[b]&&(a.$parent.$watch(function(){return c[b]},function(c){a.watchData[b]=c}),A.attr(n(b),"watchData."+b))}),angular.forEach(["datepickerMode","shortcutPropagation"],function(b){if(c[b]){var d=e(c[b]),f={get:function(){return d(a.$parent)}};if(A.attr(n(b),"watchData."+b),"datepickerMode"===b){var g=d.assign;f.set=function(b){g(a.$parent,b)}}Object.defineProperty(a.watchData,b,f)}}),angular.forEach(["minDate","maxDate","initDate"],function(b){if(c[b]){var d=e(c[b]);a.$parent.$watch(d,function(c){"minDate"!==b&&"maxDate"!==b||(F[b]=angular.isDate(c)?j.fromTimezone(new Date(c),C.timezone):new Date(i(c,"medium"))),a.watchData[b]=F[b]||j.fromTimezone(new Date(c),C.timezone)}),A.attr(n(b),"watchData."+b)}}),c.dateDisabled&&A.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","showWeeks","startingDay","yearRows","yearColumns"],function(a){angular.isDefined(c[a])&&A.attr(n(a),c[a])}),c.customClass&&A.attr("custom-class","customClass({ date: date, mode: mode })"),G?B.$formatters.push(function(b){return a.date=j.fromTimezone(b,C.timezone),b}):(B.$$parserName="date",B.$validators.date=q,B.$parsers.unshift(p),B.$formatters.push(function(b){return B.$isEmpty(b)?(a.date=b,b):(a.date=j.fromTimezone(b,C.timezone),t=t.replace(/M!/,"MM").replace(/d!/,"dd"),i(a.date,t))})),B.$viewChangeListeners.push(function(){a.date=o(B.$viewValue)}),b.bind("keydown",s),D=d(z)(a),z.remove(),v?f.find("body").append(D):b.after(D),a.$on("$destroy",function(){a.isOpen===!0&&(g.$$phase||a.$apply(function(){a.isOpen=!1})),D.remove(),b.unbind("keydown",s),f.unbind("click",r)})},a.getText=function(b){return a[b+"Text"]||k[b+"Text"]},a.isDisabled=function(b){return"today"===b&&(b=new Date),a.watchData.minDate&&a.compare(b,F.minDate)<0||a.watchData.maxDate&&a.compare(b,F.maxDate)>0},a.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate())-new Date(b.getFullYear(),b.getMonth(),b.getDate())},a.dateSelection=function(c){angular.isDefined(c)&&(a.date=c);var d=a.date?i(a.date,t):null;b.val(d),B.$setViewValue(d),u&&(a.isOpen=!1,b[0].focus())},a.keydown=function(c){27===c.which&&(c.stopPropagation(),a.isOpen=!1,b[0].focus())},a.select=function(b){if("today"===b){var c=new Date;angular.isDate(a.date)?(b=new Date(a.date),b.setFullYear(c.getFullYear(),c.getMonth(),c.getDate())):b=new Date(c.setHours(0,0,0,0))}a.dateSelection(b)},a.close=function(){a.isOpen=!1,b[0].focus()},a.disabled=angular.isDefined(c.disabled)||!1,c.ngDisabled&&a.$parent.$watch(e(c.ngDisabled),function(b){a.disabled=b}),a.$watch("isOpen",function(c){c?a.disabled?a.isOpen=!1:(a.position=v?h.offset(b):h.position(b),a.position.top=a.position.top+b.prop("offsetHeight"),l(function(){w&&a.$broadcast("uib:datepicker.focus"),f.bind("click",r)},0,!1)):f.unbind("click",r)})}]).directive("uibDatepickerPopup",function(){return{require:["ngModel","uibDatepickerPopup"],controller:"UibDatepickerPopupController",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&",customClass:"&"},link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive("uibDatepickerPopupWrap",function(){return{replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/popup.html"}}}),angular.module("ui.bootstrap.debounce",[]).factory("$$debounce",["$timeout",function(a){return function(b,c){var d;return function(){var e=this,f=Array.prototype.slice.call(arguments);d&&a.cancel(d),d=a(function(){b.apply(e,f)},c)}}}]),angular.module("ui.bootstrap.dropdown",["ui.bootstrap.position"]).constant("uibDropdownConfig",{appendToOpenClass:"uib-dropdown-open",openClass:"open"}).service("uibDropdownService",["$document","$rootScope",function(a,b){var c=null;this.open=function(b){c||(a.on("click",d),a.on("keydown",e)),c&&c!==b&&(c.isOpen=!1),c=b},this.close=function(b){c===b&&(c=null,a.off("click",d),a.off("keydown",e))};var d=function(a){if(c&&!(a&&"disabled"===c.getAutoClose()||a&&3===a.which)){var d=c.getToggleElement();if(!(a&&d&&d[0].contains(a.target))){var e=c.getDropdownElement();a&&"outsideClick"===c.getAutoClose()&&e&&e[0].contains(a.target)||(c.isOpen=!1,b.$$phase||c.$apply())}}},e=function(a){27===a.which?(c.focusToggleElement(),d()):c.isKeynavEnabled()&&-1!==[38,40].indexOf(a.which)&&c.isOpen&&(a.preventDefault(),a.stopPropagation(),c.focusDropdownEntry(a.which))}}]).controller("UibDropdownController",["$scope","$element","$attrs","$parse","uibDropdownConfig","uibDropdownService","$animate","$uibPosition","$document","$compile","$templateRequest",function(a,b,c,d,e,f,g,h,i,j,k){var l,m,n=this,o=a.$new(),p=e.appendToOpenClass,q=e.openClass,r=angular.noop,s=c.onToggle?d(c.onToggle):angular.noop,t=!1,u=null,v=!1,w=i.find("body");b.addClass("dropdown"),this.init=function(){if(c.isOpen&&(m=d(c.isOpen),r=m.assign,a.$watch(m,function(a){o.isOpen=!!a})),angular.isDefined(c.dropdownAppendTo)){var e=d(c.dropdownAppendTo)(o);e&&(u=angular.element(e))}t=angular.isDefined(c.dropdownAppendToBody),v=angular.isDefined(c.keyboardNav),t&&!u&&(u=w),u&&n.dropdownMenu&&(u.append(n.dropdownMenu),b.on("$destroy",function(){n.dropdownMenu.remove()}))},this.toggle=function(a){return o.isOpen=arguments.length?!!a:!o.isOpen},this.isOpen=function(){return o.isOpen},o.getToggleElement=function(){return n.toggleElement},o.getAutoClose=function(){return c.autoClose||"always"},o.getElement=function(){return b},o.isKeynavEnabled=function(){return v},o.focusDropdownEntry=function(a){var c=n.dropdownMenu?angular.element(n.dropdownMenu).find("a"):b.find("ul").eq(0).find("a");switch(a){case 40:angular.isNumber(n.selectedOption)?n.selectedOption=n.selectedOption===c.length-1?n.selectedOption:n.selectedOption+1:n.selectedOption=0;break;case 38:angular.isNumber(n.selectedOption)?n.selectedOption=0===n.selectedOption?0:n.selectedOption-1:n.selectedOption=c.length-1}c[n.selectedOption].focus()},o.getDropdownElement=function(){return n.dropdownMenu},o.focusToggleElement=function(){n.toggleElement&&n.toggleElement[0].focus()},o.$watch("isOpen",function(c,d){if(u&&n.dropdownMenu){var e,i,m=h.positionElements(b,n.dropdownMenu,"bottom-left",!0);if(e={top:m.top+"px",display:c?"block":"none"},i=n.dropdownMenu.hasClass("dropdown-menu-right"),i?(e.left="auto",e.right=window.innerWidth-(m.left+b.prop("offsetWidth"))+"px"):(e.left=m.left+"px",e.right="auto"),!t){var v=h.offset(u);e.top=m.top-v.top+"px",i?e.right=window.innerWidth-(m.left-v.left+b.prop("offsetWidth"))+"px":e.left=m.left-v.left+"px"}n.dropdownMenu.css(e)}var w=u?u:b;if(g[c?"addClass":"removeClass"](w,u?p:q).then(function(){angular.isDefined(c)&&c!==d&&s(a,{open:!!c})}),c)n.dropdownMenuTemplateUrl&&k(n.dropdownMenuTemplateUrl).then(function(a){l=o.$new(),j(a.trim())(l,function(a){var b=a;n.dropdownMenu.replaceWith(b),n.dropdownMenu=b})}),o.focusToggleElement(),f.open(o);else{if(n.dropdownMenuTemplateUrl){l&&l.$destroy();var x=angular.element('');n.dropdownMenu.replaceWith(x),n.dropdownMenu=x}f.close(o),n.selectedOption=null}angular.isFunction(r)&&r(a,c)}),a.$on("$locationChangeSuccess",function(){"disabled"!==o.getAutoClose()&&(o.isOpen=!1)})}]).directive("uibDropdown",function(){return{controller:"UibDropdownController",link:function(a,b,c,d){d.init()}}}).directive("uibDropdownMenu",function(){return{restrict:"A",require:"?^uibDropdown",link:function(a,b,c,d){if(d&&!angular.isDefined(c.dropdownNested)){b.addClass("dropdown-menu");var e=c.templateUrl;e&&(d.dropdownMenuTemplateUrl=e),d.dropdownMenu||(d.dropdownMenu=b)}}}}).directive("uibDropdownToggle",function(){return{require:"?^uibDropdown",link:function(a,b,c,d){if(d){b.addClass("dropdown-toggle"),d.toggleElement=b;var e=function(e){e.preventDefault(),b.hasClass("disabled")||c.disabled||a.$apply(function(){d.toggle()})};b.bind("click",e),b.attr({"aria-haspopup":!0,"aria-expanded":!1}),a.$watch(d.isOpen,function(a){b.attr("aria-expanded",!!a)}),a.$on("$destroy",function(){b.unbind("click",e)})}}}}),angular.module("ui.bootstrap.stackedMap",[]).factory("$$stackedMap",function(){return{createNew:function(){var a=[];return{add:function(b,c){a.push({key:b,value:c})},get:function(b){for(var c=0;c0&&(b=t.top().value,b.modalDomEl.toggleClass(b.windowTopClass||"",a))}function l(){if(p&&-1===i()){var a=q;m(p,q,function(){a=null}),p=void 0,q=void 0}}function m(a,c,d,e){function g(){g.done||(g.done=!0,b(a,{event:"leave"}).start().then(function(){a.remove(),e&&e.resolve()}),c.$destroy(),d&&d())}var h,i=null,j=function(){return h||(h=f.defer(),i=h.promise),function(){h.resolve()}};return c.$broadcast(v.NOW_CLOSING_EVENT,j),f.when(i).then(g)}function n(a){if(a.isDefaultPrevented())return a;var b=t.top();if(b)switch(a.which){case 27:b.value.keyboard&&(a.preventDefault(),e.$apply(function(){v.dismiss(b.key,"escape key press")}));break;case 9:v.loadFocusElementList(b);var c=!1;a.shiftKey?v.isFocusInFirstItem(a)&&(c=v.focusLastFocusableElement()):v.isFocusInLastItem(a)&&(c=v.focusFirstFocusableElement()),c&&(a.preventDefault(),a.stopPropagation())}}function o(a,b,c){return!a.value.modalScope.$broadcast("modal.closing",b,c).defaultPrevented}var p,q,r,s="modal-open",t=h.createNew(),u=g.createNew(),v={NOW_CLOSING_EVENT:"modal.stack.now-closing"},w=0,x="a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]";return e.$watch(i,function(a){q&&(q.index=a)}),c.on("keydown",n),e.$on("$destroy",function(){c.off("keydown",n)}),v.open=function(b,f){var g=c[0].activeElement,h=f.openedClass||s;k(!1),t.add(b,{deferred:f.deferred,renderDeferred:f.renderDeferred,closedDeferred:f.closedDeferred,modalScope:f.scope,backdrop:f.backdrop,keyboard:f.keyboard,openedClass:f.openedClass,windowTopClass:f.windowTopClass,animation:f.animation,appendTo:f.appendTo}),u.put(h,b);var j=f.appendTo,l=i();if(!j.length)throw new Error("appendTo element not found. Make sure that the element passed is in DOM.");l>=0&&!p&&(q=e.$new(!0),q.modalOptions=f,q.index=l,p=angular.element('
        '),p.attr("backdrop-class",f.backdropClass),f.animation&&p.attr("modal-animation","true"),d(p)(q),a.enter(p,j));var m=angular.element('
        ');m.attr({"template-url":f.windowTemplateUrl,"window-class":f.windowClass,"window-top-class":f.windowTopClass,size:f.size,index:t.length()-1,animate:"animate"}).html(f.content),f.animation&&m.attr("modal-animation","true"),a.enter(m,j).then(function(){d(m)(f.scope),a.addClass(j,h)}),t.top().value.modalDomEl=m,t.top().value.modalOpener=g,v.clearFocusListCache()},v.close=function(a,b){var c=t.get(a);return c&&o(c,b,!0)?(c.value.modalScope.$$uibDestructionScheduled=!0,c.value.deferred.resolve(b),j(a,c.value.modalOpener),!0):!c},v.dismiss=function(a,b){var c=t.get(a);return c&&o(c,b,!1)?(c.value.modalScope.$$uibDestructionScheduled=!0,c.value.deferred.reject(b),j(a,c.value.modalOpener),!0):!c},v.dismissAll=function(a){for(var b=this.getTop();b&&this.dismiss(b.key,a);)b=this.getTop()},v.getTop=function(){return t.top()},v.modalRendered=function(a){var b=t.get(a);b&&b.value.renderDeferred.resolve()},v.focusFirstFocusableElement=function(){return r.length>0?(r[0].focus(),!0):!1},v.focusLastFocusableElement=function(){return r.length>0?(r[r.length-1].focus(),!0):!1},v.isFocusInFirstItem=function(a){return r.length>0?(a.target||a.srcElement)===r[0]:!1},v.isFocusInLastItem=function(a){return r.length>0?(a.target||a.srcElement)===r[r.length-1]:!1},v.clearFocusListCache=function(){r=[],w=0},v.loadFocusElementList=function(a){if((void 0===r||!r.length)&&a){var b=a.value.modalDomEl;b&&b.length&&(r=b[0].querySelectorAll(x))}},v}]).provider("$uibModal",function(){var a={options:{animation:!0,backdrop:!0,keyboard:!0},$get:["$rootScope","$q","$document","$templateRequest","$controller","$uibResolve","$uibModalStack",function(b,c,d,e,f,g,h){function i(a){return a.template?c.when(a.template):e(angular.isFunction(a.templateUrl)?a.templateUrl():a.templateUrl)}var j={},k=null;return j.getPromiseChain=function(){return k},j.open=function(e){function j(){return r}var l=c.defer(),m=c.defer(),n=c.defer(),o=c.defer(),p={result:l.promise,opened:m.promise,closed:n.promise,rendered:o.promise,close:function(a){return h.close(p,a)},dismiss:function(a){return h.dismiss(p,a)}};if(e=angular.extend({},a.options,e),e.resolve=e.resolve||{},e.appendTo=e.appendTo||d.find("body").eq(0),!e.template&&!e.templateUrl)throw new Error("One of template or templateUrl options is required.");var q,r=c.all([i(e),g.resolve(e.resolve,{},null,null)]);return q=k=c.all([k]).then(j,j).then(function(a){var c=e.scope||b,d=c.$new();d.$close=p.close,d.$dismiss=p.dismiss,d.$on("$destroy",function(){d.$$uibDestructionScheduled||d.$dismiss("$uibUnscheduledDestruction")});var g,i={};e.controller&&(i.$scope=d,i.$uibModalInstance=p,angular.forEach(a[1],function(a,b){i[b]=a}),g=f(e.controller,i),e.controllerAs&&(e.bindToController&&(g.$close=d.$close,g.$dismiss=d.$dismiss,angular.extend(g,c)),d[e.controllerAs]=g)),h.open(p,{scope:d,deferred:l,renderDeferred:o,closedDeferred:n,content:a[0],animation:e.animation,backdrop:e.backdrop,keyboard:e.keyboard,backdropClass:e.backdropClass,windowTopClass:e.windowTopClass,windowClass:e.windowClass,windowTemplateUrl:e.windowTemplateUrl,size:e.size,openedClass:e.openedClass,appendTo:e.appendTo}),m.resolve(!0)},function(a){m.reject(a),l.reject(a)})["finally"](function(){k===q&&(k=null)}),p},j}]};return a}),angular.module("ui.bootstrap.paging",[]).factory("uibPaging",["$parse",function(a){return{create:function(b,c,d){b.setNumPages=d.numPages?a(d.numPages).assign:angular.noop,b.ngModelCtrl={$setViewValue:angular.noop},b.init=function(e,f){b.ngModelCtrl=e,b.config=f,e.$render=function(){b.render()},d.itemsPerPage?c.$parent.$watch(a(d.itemsPerPage),function(a){b.itemsPerPage=parseInt(a,10),c.totalPages=b.calculateTotalPages(),b.updatePage()}):b.itemsPerPage=f.itemsPerPage,c.$watch("totalItems",function(a,d){(angular.isDefined(a)||a!==d)&&(c.totalPages=b.calculateTotalPages(),b.updatePage())})},b.calculateTotalPages=function(){var a=b.itemsPerPage<1?1:Math.ceil(c.totalItems/b.itemsPerPage);return Math.max(a||0,1)},b.render=function(){c.page=parseInt(b.ngModelCtrl.$viewValue,10)||1},c.selectPage=function(a,d){d&&d.preventDefault();var e=!c.ngDisabled||!d;e&&c.page!==a&&a>0&&a<=c.totalPages&&(d&&d.target&&d.target.blur(),b.ngModelCtrl.$setViewValue(a),b.ngModelCtrl.$render())},c.getText=function(a){return c[a+"Text"]||b.config[a+"Text"]},c.noPrevious=function(){return 1===c.page},c.noNext=function(){return c.page===c.totalPages},b.updatePage=function(){b.setNumPages(c.$parent,c.totalPages),c.page>c.totalPages?c.selectPage(c.totalPages):b.ngModelCtrl.$render()}}}}]),angular.module("ui.bootstrap.pager",["ui.bootstrap.paging"]).controller("UibPagerController",["$scope","$attrs","uibPaging","uibPagerConfig",function(a,b,c,d){a.align=angular.isDefined(b.align)?a.$parent.$eval(b.align):d.align,c.create(this,a,b)}]).constant("uibPagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("uibPager",["uibPagerConfig",function(a){return{scope:{totalItems:"=",previousText:"@",nextText:"@",ngDisabled:"="},require:["uibPager","?ngModel"],controller:"UibPagerController",controllerAs:"pager",templateUrl:function(a,b){return b.templateUrl||"uib/template/pager/pager.html"},replace:!0,link:function(b,c,d,e){var f=e[0],g=e[1];g&&f.init(g,a)}}}]),angular.module("ui.bootstrap.pagination",["ui.bootstrap.paging"]).controller("UibPaginationController",["$scope","$attrs","$parse","uibPaging","uibPaginationConfig",function(a,b,c,d,e){function f(a,b,c){return{number:a,text:b,active:c}}function g(a,b){var c=[],d=1,e=b,g=angular.isDefined(i)&&b>i;g&&(j?(d=Math.max(a-Math.floor(i/2),1),e=d+i-1,e>b&&(e=b,d=e-i+1)):(d=(Math.ceil(a/i)-1)*i+1,e=Math.min(d+i-1,b)));for(var h=d;e>=h;h++){var m=f(h,h,h===a);c.push(m)}if(g&&i>0&&(!j||k||l)){if(d>1){if(!l||d>3){var n=f(d-1,"...",!1);c.unshift(n)}if(l){if(3===d){var o=f(2,"2",!1);c.unshift(o)}var p=f(1,"1",!1);c.unshift(p)}}if(b>e){if(!l||b-2>e){var q=f(e+1,"...",!1);c.push(q)}if(l){if(e===b-2){var r=f(b-1,b-1,!1);c.push(r)}var s=f(b,b,!1);c.push(s)}}}return c}var h=this,i=angular.isDefined(b.maxSize)?a.$parent.$eval(b.maxSize):e.maxSize,j=angular.isDefined(b.rotate)?a.$parent.$eval(b.rotate):e.rotate,k=angular.isDefined(b.forceEllipses)?a.$parent.$eval(b.forceEllipses):e.forceEllipses,l=angular.isDefined(b.boundaryLinkNumbers)?a.$parent.$eval(b.boundaryLinkNumbers):e.boundaryLinkNumbers;a.boundaryLinks=angular.isDefined(b.boundaryLinks)?a.$parent.$eval(b.boundaryLinks):e.boundaryLinks,a.directionLinks=angular.isDefined(b.directionLinks)?a.$parent.$eval(b.directionLinks):e.directionLinks,d.create(this,a,b),b.maxSize&&a.$parent.$watch(c(b.maxSize),function(a){i=parseInt(a,10),h.render()});var m=this.render;this.render=function(){m(),a.page>0&&a.page<=a.totalPages&&(a.pages=g(a.page,a.totalPages))}}]).constant("uibPaginationConfig",{itemsPerPage:10,boundaryLinks:!1,boundaryLinkNumbers:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0,forceEllipses:!1}).directive("uibPagination",["$parse","uibPaginationConfig",function(a,b){return{scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@",ngDisabled:"="},require:["uibPagination","?ngModel"],controller:"UibPaginationController",controllerAs:"pagination",templateUrl:function(a,b){return b.templateUrl||"uib/template/pagination/pagination.html"},replace:!0,link:function(a,c,d,e){var f=e[0],g=e[1];g&&f.init(g,b)}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.stackedMap"]).provider("$uibTooltip",function(){function a(a){var b=/[A-Z]/g,c="-";return a.replace(b,function(a,b){return(b?c:"")+a.toLowerCase()})}var b={placement:"top",placementClassPrefix:"",animation:!0,popupDelay:0,popupCloseDelay:0,useContentExp:!1},c={mouseenter:"mouseleave",click:"click",outsideClick:"outsideClick",focus:"blur",none:""},d={};this.options=function(a){angular.extend(d,a)},this.setTriggers=function(a){angular.extend(c,a)},this.$get=["$window","$compile","$timeout","$document","$uibPosition","$interpolate","$rootScope","$parse","$$stackedMap",function(e,f,g,h,i,j,k,l,m){function n(a){if(27===a.which){var b=o.top();b&&(b.value.close(),o.removeTop(),b=null)}}var o=m.createNew();return h.on("keypress",n),k.$on("$destroy",function(){h.off("keypress",n)}),function(e,k,m,n){function p(a){var b=(a||n.trigger||m).split(" "),d=b.map(function(a){return c[a]||a});return{show:b,hide:d}}n=angular.extend({},b,d,n);var q=a(e),r=j.startSymbol(),s=j.endSymbol(),t="
        ';return{compile:function(a,b){var c=f(t);return function(a,b,d,f){function j(){M.isOpen?q():m()}function m(){L&&!a.$eval(d[k+"Enable"])||(u(),x(),M.popupDelay?G||(G=g(r,M.popupDelay,!1)):r())}function q(){s(),M.popupCloseDelay?H||(H=g(t,M.popupCloseDelay,!1)):t()}function r(){return s(),u(),M.content?(v(),void M.$evalAsync(function(){M.isOpen=!0,y(!0),R()})):angular.noop}function s(){G&&(g.cancel(G),G=null),I&&(g.cancel(I),I=null)}function t(){M&&M.$evalAsync(function(){M.isOpen=!1,y(!1),M.animation?F||(F=g(w,150,!1)):w()})}function u(){H&&(g.cancel(H),H=null),F&&(g.cancel(F),F=null)}function v(){D||(E=M.$new(),D=c(E,function(a){J?h.find("body").append(a):b.after(a)}),z())}function w(){s(),u(),A(),D&&(D.remove(),D=null),E&&(E.$destroy(),E=null)}function x(){M.title=d[k+"Title"],P?M.content=P(a):M.content=d[e],M.popupClass=d[k+"Class"],M.placement=angular.isDefined(d[k+"Placement"])?d[k+"Placement"]:n.placement;var b=parseInt(d[k+"PopupDelay"],10),c=parseInt(d[k+"PopupCloseDelay"],10);M.popupDelay=isNaN(b)?n.popupDelay:b,M.popupCloseDelay=isNaN(c)?n.popupCloseDelay:c}function y(b){O&&angular.isFunction(O.assign)&&O.assign(a,b)}function z(){Q.length=0,P?(Q.push(a.$watch(P,function(a){M.content=a,!a&&M.isOpen&&t()})),Q.push(E.$watch(function(){N||(N=!0,E.$$postDigest(function(){N=!1,M&&M.isOpen&&R()}))}))):Q.push(d.$observe(e,function(a){M.content=a,!a&&M.isOpen?t():R()})),Q.push(d.$observe(k+"Title",function(a){M.title=a,M.isOpen&&R()})),Q.push(d.$observe(k+"Placement",function(a){M.placement=a?a:n.placement,M.isOpen&&R()}))}function A(){Q.length&&(angular.forEach(Q,function(a){a()}),Q.length=0)}function B(a){M&&M.isOpen&&D&&(b[0].contains(a.target)||D[0].contains(a.target)||q())}function C(){var a=d[k+"Trigger"];S(),K=p(a),"none"!==K.show&&K.show.forEach(function(a,c){"outsideClick"===a?(b.on("click",j),h.on("click",B)):a===K.hide[c]?b.on(a,j):a&&(b.on(a,m),b.on(K.hide[c],q)),b.on("keypress",function(a){27===a.which&&q()})})}var D,E,F,G,H,I,J=angular.isDefined(n.appendToBody)?n.appendToBody:!1,K=p(void 0),L=angular.isDefined(d[k+"Enable"]),M=a.$new(!0),N=!1,O=angular.isDefined(d[k+"IsOpen"])?l(d[k+"IsOpen"]):!1,P=n.useContentExp?l(d[e]):!1,Q=[],R=function(){D&&D.html()&&(I||(I=g(function(){D.css({top:0,left:0});var a=i.positionElements(b,D,M.placement,J);D.css({top:a.top+"px",left:a.left+"px",visibility:"visible"}),n.placementClassPrefix&&D.removeClass("top bottom left right"),D.removeClass(n.placementClassPrefix+"top "+n.placementClassPrefix+"top-left "+n.placementClassPrefix+"top-right "+n.placementClassPrefix+"bottom "+n.placementClassPrefix+"bottom-left "+n.placementClassPrefix+"bottom-right "+n.placementClassPrefix+"left "+n.placementClassPrefix+"left-top "+n.placementClassPrefix+"left-bottom "+n.placementClassPrefix+"right "+n.placementClassPrefix+"right-top "+n.placementClassPrefix+"right-bottom"); -var c=a.placement.split("-");D.addClass(c[0],n.placementClassPrefix+a.placement),i.positionArrow(D,a.placement),I=null},0,!1)))};M.origScope=a,M.isOpen=!1,o.add(M,{close:t}),M.contentExp=function(){return M.content},d.$observe("disabled",function(a){a&&s(),a&&M.isOpen&&t()}),O&&a.$watch(O,function(a){M&&!a===M.isOpen&&j()});var S=function(){K.show.forEach(function(a){"outsideClick"===a?b.off("click",j):(b.off(a,m),b.off(a,j))}),K.hide.forEach(function(a){"outsideClick"===a?h.off("click",B):b.off(a,q)})};C();var T=a.$eval(d[k+"Animation"]);M.animation=angular.isDefined(T)?!!T:n.animation;var U,V=k+"AppendToBody";U=V in d&&void 0===d[V]?!0:a.$eval(d[V]),J=angular.isDefined(U)?U:J,J&&a.$on("$locationChangeSuccess",function(){M.isOpen&&t()}),a.$on("$destroy",function(){S(),w(),o.remove(M),M=null})}}}}}]}).directive("uibTooltipTemplateTransclude",["$animate","$sce","$compile","$templateRequest",function(a,b,c,d){return{link:function(e,f,g){var h,i,j,k=e.$eval(g.tooltipTemplateTranscludeScope),l=0,m=function(){i&&(i.remove(),i=null),h&&(h.$destroy(),h=null),j&&(a.leave(j).then(function(){i=null}),i=j,j=null)};e.$watch(b.parseAsResourceUrl(g.uibTooltipTemplateTransclude),function(b){var g=++l;b?(d(b,!0).then(function(d){if(g===l){var e=k.$new(),i=d,n=c(i)(e,function(b){m(),a.enter(b,f)});h=e,j=n,h.$emit("$includeContentLoaded",b)}},function(){g===l&&(m(),e.$emit("$includeContentError",b))}),e.$emit("$includeContentRequested",b)):m()}),e.$on("$destroy",m)}}}]).directive("uibTooltipClasses",["$uibPosition",function(a){return{restrict:"A",link:function(b,c,d){if(b.placement){var e=a.parsePlacement(b.placement);c.addClass(e[0])}else c.addClass("top");b.popupClass&&c.addClass(b.popupClass),b.animation()&&c.addClass(d.tooltipAnimationClass)}}}]).directive("uibTooltipPopup",function(){return{replace:!0,scope:{content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-popup.html"}}).directive("uibTooltip",["$uibTooltip",function(a){return a("uibTooltip","tooltip","mouseenter")}]).directive("uibTooltipTemplatePopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/tooltip/tooltip-template-popup.html"}}).directive("uibTooltipTemplate",["$uibTooltip",function(a){return a("uibTooltipTemplate","tooltip","mouseenter",{useContentExp:!0})}]).directive("uibTooltipHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-html-popup.html"}}).directive("uibTooltipHtml",["$uibTooltip",function(a){return a("uibTooltipHtml","tooltip","mouseenter",{useContentExp:!0})}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("uibPopoverTemplatePopup",function(){return{replace:!0,scope:{title:"@",contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/popover/popover-template.html"}}).directive("uibPopoverTemplate",["$uibTooltip",function(a){return a("uibPopoverTemplate","popover","click",{useContentExp:!0})}]).directive("uibPopoverHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",title:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover-html.html"}}).directive("uibPopoverHtml",["$uibTooltip",function(a){return a("uibPopoverHtml","popover","click",{useContentExp:!0})}]).directive("uibPopoverPopup",function(){return{replace:!0,scope:{title:"@",content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover.html"}}).directive("uibPopover",["$uibTooltip",function(a){return a("uibPopover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("uibProgressConfig",{animate:!0,max:100}).controller("UibProgressController",["$scope","$attrs","uibProgressConfig",function(a,b,c){var d=this,e=angular.isDefined(b.animate)?a.$parent.$eval(b.animate):c.animate;this.bars=[],a.max=angular.isDefined(a.max)?a.max:c.max,this.addBar=function(b,c,f){e||c.css({transition:"none"}),this.bars.push(b),b.max=a.max,b.title=f&&angular.isDefined(f.title)?f.title:"progressbar",b.$watch("value",function(a){b.recalculatePercentage()}),b.recalculatePercentage=function(){var a=d.bars.reduce(function(a,b){return b.percent=+(100*b.value/b.max).toFixed(2),a+b.percent},0);a>100&&(b.percent-=a-100)},b.$on("$destroy",function(){c=null,d.removeBar(b)})},this.removeBar=function(a){this.bars.splice(this.bars.indexOf(a),1),this.bars.forEach(function(a){a.recalculatePercentage()})},a.$watch("max",function(b){d.bars.forEach(function(b){b.max=a.max,b.recalculatePercentage()})})}]).directive("uibProgress",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",require:"uibProgress",scope:{max:"=?"},templateUrl:"uib/template/progressbar/progress.html"}}).directive("uibBar",function(){return{replace:!0,transclude:!0,require:"^uibProgress",scope:{value:"=",type:"@"},templateUrl:"uib/template/progressbar/bar.html",link:function(a,b,c,d){d.addBar(a,b,c)}}}).directive("uibProgressbar",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",scope:{value:"=",max:"=?",type:"@"},templateUrl:"uib/template/progressbar/progressbar.html",link:function(a,b,c,d){d.addBar(a,angular.element(b.children()[0]),{title:c.title})}}}),angular.module("ui.bootstrap.rating",[]).constant("uibRatingConfig",{max:5,stateOn:null,stateOff:null,titles:["one","two","three","four","five"]}).controller("UibRatingController",["$scope","$attrs","uibRatingConfig",function(a,b,c){var d={$setViewValue:angular.noop};this.init=function(e){d=e,d.$render=this.render,d.$formatters.push(function(a){return angular.isNumber(a)&&a<<0!==a&&(a=Math.round(a)),a}),this.stateOn=angular.isDefined(b.stateOn)?a.$parent.$eval(b.stateOn):c.stateOn,this.stateOff=angular.isDefined(b.stateOff)?a.$parent.$eval(b.stateOff):c.stateOff;var f=angular.isDefined(b.titles)?a.$parent.$eval(b.titles):c.titles;this.titles=angular.isArray(f)&&f.length>0?f:c.titles;var g=angular.isDefined(b.ratingStates)?a.$parent.$eval(b.ratingStates):new Array(angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max);a.range=this.buildTemplateObjects(g)},this.buildTemplateObjects=function(a){for(var b=0,c=a.length;c>b;b++)a[b]=angular.extend({index:b},{stateOn:this.stateOn,stateOff:this.stateOff,title:this.getTitle(b)},a[b]);return a},this.getTitle=function(a){return a>=this.titles.length?a+1:this.titles[a]},a.rate=function(b){!a.readonly&&b>=0&&b<=a.range.length&&(d.$setViewValue(d.$viewValue===b?0:b),d.$render())},a.enter=function(b){a.readonly||(a.value=b),a.onHover({value:b})},a.reset=function(){a.value=d.$viewValue,a.onLeave()},a.onKeydown=function(b){/(37|38|39|40)/.test(b.which)&&(b.preventDefault(),b.stopPropagation(),a.rate(a.value+(38===b.which||39===b.which?1:-1)))},this.render=function(){a.value=d.$viewValue}}]).directive("uibRating",function(){return{require:["uibRating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"UibRatingController",templateUrl:"uib/template/rating/rating.html",replace:!0,link:function(a,b,c,d){var e=d[0],f=d[1];e.init(f)}}}),angular.module("ui.bootstrap.tabs",[]).controller("UibTabsetController",["$scope",function(a){var b=this,c=b.tabs=a.tabs=[];b.select=function(a){angular.forEach(c,function(b){b.active&&b!==a&&(b.active=!1,b.onDeselect(),a.selectCalled=!1)}),a.active=!0,a.selectCalled||(a.onSelect(),a.selectCalled=!0)},b.addTab=function(a){c.push(a),1===c.length&&a.active!==!1?a.active=!0:a.active?b.select(a):a.active=!1},b.removeTab=function(a){var e=c.indexOf(a);if(a.active&&c.length>1&&!d){var f=e===c.length-1?e-1:e+1;b.select(c[f])}c.splice(e,1)};var d;a.$on("$destroy",function(){d=!0})}]).directive("uibTabset",function(){return{transclude:!0,replace:!0,scope:{type:"@"},controller:"UibTabsetController",templateUrl:"uib/template/tabs/tabset.html",link:function(a,b,c){a.vertical=angular.isDefined(c.vertical)?a.$parent.$eval(c.vertical):!1,a.justified=angular.isDefined(c.justified)?a.$parent.$eval(c.justified):!1}}}).directive("uibTab",["$parse",function(a){return{require:"^uibTabset",replace:!0,templateUrl:"uib/template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},controllerAs:"tab",link:function(b,c,d,e,f){b.$watch("active",function(a){a&&e.select(b)}),b.disabled=!1,d.disable&&b.$parent.$watch(a(d.disable),function(a){b.disabled=!!a}),b.select=function(){b.disabled||(b.active=!0)},e.addTab(b),b.$on("$destroy",function(){e.removeTab(b)}),b.$transcludeFn=f}}}]).directive("uibTabHeadingTransclude",function(){return{restrict:"A",require:"^uibTab",link:function(a,b){a.$watch("headingElement",function(a){a&&(b.html(""),b.append(a))})}}}).directive("uibTabContentTransclude",function(){function a(a){return a.tagName&&(a.hasAttribute("uib-tab-heading")||a.hasAttribute("data-uib-tab-heading")||a.hasAttribute("x-uib-tab-heading")||"uib-tab-heading"===a.tagName.toLowerCase()||"data-uib-tab-heading"===a.tagName.toLowerCase()||"x-uib-tab-heading"===a.tagName.toLowerCase())}return{restrict:"A",require:"^uibTabset",link:function(b,c,d){var e=b.$eval(d.uibTabContentTransclude);e.$transcludeFn(e.$parent,function(b){angular.forEach(b,function(b){a(b)?e.headingElement=b:c.append(b)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("uibTimepickerConfig",{hourStep:1,minuteStep:1,secondStep:1,showMeridian:!0,showSeconds:!1,meridians:null,readonlyInput:!1,mousewheel:!0,arrowkeys:!0,showSpinners:!0,templateUrl:"uib/template/timepicker/timepicker.html"}).controller("UibTimepickerController",["$scope","$element","$attrs","$parse","$log","$locale","uibTimepickerConfig",function(a,b,c,d,e,f,g){function h(){var b=+a.hours,c=a.showMeridian?b>0&&13>b:b>=0&&24>b;return c?(a.showMeridian&&(12===b&&(b=0),a.meridian===t[1]&&(b+=12)),b):void 0}function i(){var b=+a.minutes;return b>=0&&60>b?b:void 0}function j(){var b=+a.seconds;return b>=0&&60>b?b:void 0}function k(a){return null===a?"":angular.isDefined(a)&&a.toString().length<2?"0"+a:a.toString()}function l(a){m(),s.$setViewValue(new Date(r)),n(a)}function m(){s.$setValidity("time",!0),a.invalidHours=!1,a.invalidMinutes=!1,a.invalidSeconds=!1}function n(b){if(s.$modelValue){var c=r.getHours(),d=r.getMinutes(),e=r.getSeconds();a.showMeridian&&(c=0===c||12===c?12:c%12),a.hours="h"===b?c:k(c),"m"!==b&&(a.minutes=k(d)),a.meridian=r.getHours()<12?t[0]:t[1],"s"!==b&&(a.seconds=k(e)),a.meridian=r.getHours()<12?t[0]:t[1]}else a.hours=null,a.minutes=null,a.seconds=null,a.meridian=t[0]}function o(a){r=q(r,a),l()}function p(a,b){return q(a,60*b)}function q(a,b){var c=new Date(a.getTime()+1e3*b),d=new Date(a);return d.setHours(c.getHours(),c.getMinutes(),c.getSeconds()),d}var r=new Date,s={$setViewValue:angular.noop},t=angular.isDefined(c.meridians)?a.$parent.$eval(c.meridians):g.meridians||f.DATETIME_FORMATS.AMPMS;a.tabindex=angular.isDefined(c.tabindex)?c.tabindex:0,b.removeAttr("tabindex"),this.init=function(b,d){s=b,s.$render=this.render,s.$formatters.unshift(function(a){return a?new Date(a):null});var e=d.eq(0),f=d.eq(1),h=d.eq(2),i=angular.isDefined(c.mousewheel)?a.$parent.$eval(c.mousewheel):g.mousewheel;i&&this.setupMousewheelEvents(e,f,h);var j=angular.isDefined(c.arrowkeys)?a.$parent.$eval(c.arrowkeys):g.arrowkeys;j&&this.setupArrowkeyEvents(e,f,h),a.readonlyInput=angular.isDefined(c.readonlyInput)?a.$parent.$eval(c.readonlyInput):g.readonlyInput,this.setupInputEvents(e,f,h)};var u=g.hourStep;c.hourStep&&a.$parent.$watch(d(c.hourStep),function(a){u=+a});var v=g.minuteStep;c.minuteStep&&a.$parent.$watch(d(c.minuteStep),function(a){v=+a});var w;a.$parent.$watch(d(c.min),function(a){var b=new Date(a);w=isNaN(b)?void 0:b});var x;a.$parent.$watch(d(c.max),function(a){var b=new Date(a);x=isNaN(b)?void 0:b});var y=!1;c.ngDisabled&&a.$parent.$watch(d(c.ngDisabled),function(a){y=a}),a.noIncrementHours=function(){var a=p(r,60*u);return y||a>x||r>a&&w>a},a.noDecrementHours=function(){var a=p(r,60*-u);return y||w>a||a>r&&a>x},a.noIncrementMinutes=function(){var a=p(r,v);return y||a>x||r>a&&w>a},a.noDecrementMinutes=function(){var a=p(r,-v);return y||w>a||a>r&&a>x},a.noIncrementSeconds=function(){var a=q(r,z);return y||a>x||r>a&&w>a},a.noDecrementSeconds=function(){var a=q(r,-z);return y||w>a||a>r&&a>x},a.noToggleMeridian=function(){return r.getHours()<12?y||p(r,720)>x:y||p(r,-720)0};b.bind("mousewheel wheel",function(b){y||a.$apply(e(b)?a.incrementHours():a.decrementHours()),b.preventDefault()}),c.bind("mousewheel wheel",function(b){y||a.$apply(e(b)?a.incrementMinutes():a.decrementMinutes()),b.preventDefault()}),d.bind("mousewheel wheel",function(b){y||a.$apply(e(b)?a.incrementSeconds():a.decrementSeconds()),b.preventDefault()})},this.setupArrowkeyEvents=function(b,c,d){b.bind("keydown",function(b){y||(38===b.which?(b.preventDefault(),a.incrementHours(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementHours(),a.$apply()))}),c.bind("keydown",function(b){y||(38===b.which?(b.preventDefault(),a.incrementMinutes(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementMinutes(),a.$apply()))}),d.bind("keydown",function(b){y||(38===b.which?(b.preventDefault(),a.incrementSeconds(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementSeconds(),a.$apply()))})},this.setupInputEvents=function(b,c,d){if(a.readonlyInput)return a.updateHours=angular.noop,a.updateMinutes=angular.noop,void(a.updateSeconds=angular.noop);var e=function(b,c,d){s.$setViewValue(null),s.$setValidity("time",!1),angular.isDefined(b)&&(a.invalidHours=b),angular.isDefined(c)&&(a.invalidMinutes=c),angular.isDefined(d)&&(a.invalidSeconds=d)};a.updateHours=function(){var a=h(),b=i();s.$setDirty(),angular.isDefined(a)&&angular.isDefined(b)?(r.setHours(a),r.setMinutes(b),w>r||r>x?e(!0):l("h")):e(!0)},b.bind("blur",function(b){s.$setTouched(),null===a.hours||""===a.hours?e(!0):!a.invalidHours&&a.hours<10&&a.$apply(function(){a.hours=k(a.hours)})}),a.updateMinutes=function(){var a=i(),b=h();s.$setDirty(),angular.isDefined(a)&&angular.isDefined(b)?(r.setHours(b),r.setMinutes(a),w>r||r>x?e(void 0,!0):l("m")):e(void 0,!0)},c.bind("blur",function(b){s.$setTouched(),null===a.minutes?e(void 0,!0):!a.invalidMinutes&&a.minutes<10&&a.$apply(function(){a.minutes=k(a.minutes)})}),a.updateSeconds=function(){var a=j();s.$setDirty(),angular.isDefined(a)?(r.setSeconds(a),l("s")):e(void 0,void 0,!0)},d.bind("blur",function(b){!a.invalidSeconds&&a.seconds<10&&a.$apply(function(){a.seconds=k(a.seconds)})})},this.render=function(){var b=s.$viewValue;isNaN(b)?(s.$setValidity("time",!1),e.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(b&&(r=b),w>r||r>x?(s.$setValidity("time",!1),a.invalidHours=!0,a.invalidMinutes=!0):m(),n())},a.showSpinners=angular.isDefined(c.showSpinners)?a.$parent.$eval(c.showSpinners):g.showSpinners,a.incrementHours=function(){a.noIncrementHours()||o(60*u*60)},a.decrementHours=function(){a.noDecrementHours()||o(60*-u*60)},a.incrementMinutes=function(){a.noIncrementMinutes()||o(60*v)},a.decrementMinutes=function(){a.noDecrementMinutes()||o(60*-v)},a.incrementSeconds=function(){a.noIncrementSeconds()||o(z)},a.decrementSeconds=function(){a.noDecrementSeconds()||o(-z)},a.toggleMeridian=function(){var b=i(),c=h();a.noToggleMeridian()||(angular.isDefined(b)&&angular.isDefined(c)?o(720*(r.getHours()<12?60:-60)):a.meridian=a.meridian===t[0]?t[1]:t[0])},a.blur=function(){s.$setTouched()}}]).directive("uibTimepicker",["uibTimepickerConfig",function(a){return{require:["uibTimepicker","?^ngModel"],controller:"UibTimepickerController",controllerAs:"timepicker",replace:!0,scope:{},templateUrl:function(b,c){return c.templateUrl||a.templateUrl},link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f,b.find("input"))}}}]),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.debounce","ui.bootstrap.position"]).factory("uibTypeaheadParser",["$parse",function(a){var b=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(c){var d=c.match(b);if(!d)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+c+'".');return{itemName:d[3],source:a(d[4]),viewMapper:a(d[2]||d[1]),modelMapper:a(d[1])}}}}]).controller("UibTypeaheadController",["$scope","$element","$attrs","$compile","$parse","$q","$timeout","$document","$window","$rootScope","$$debounce","$uibPosition","uibTypeaheadParser",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){N.moveInProgress||(N.moveInProgress=!0,N.$digest()),Y()}function o(){N.position=D?l.offset(b):l.position(b),N.position.top+=b.prop("offsetHeight")}var p,q,r=[9,13,27,38,40],s=200,t=a.$eval(c.typeaheadMinLength);t||0===t||(t=1);var u=a.$eval(c.typeaheadWaitMs)||0,v=a.$eval(c.typeaheadEditable)!==!1;a.$watch(c.typeaheadEditable,function(a){v=a!==!1});var w,x,y=e(c.typeaheadLoading).assign||angular.noop,z=e(c.typeaheadOnSelect),A=angular.isDefined(c.typeaheadSelectOnBlur)?a.$eval(c.typeaheadSelectOnBlur):!1,B=e(c.typeaheadNoResults).assign||angular.noop,C=c.typeaheadInputFormatter?e(c.typeaheadInputFormatter):void 0,D=c.typeaheadAppendToBody?a.$eval(c.typeaheadAppendToBody):!1,E=c.typeaheadAppendTo?a.$eval(c.typeaheadAppendTo):null,F=a.$eval(c.typeaheadFocusFirst)!==!1,G=c.typeaheadSelectOnExact?a.$eval(c.typeaheadSelectOnExact):!1,H=e(c.typeaheadIsOpen).assign||angular.noop,I=a.$eval(c.typeaheadShowHint)||!1,J=e(c.ngModel),K=e(c.ngModel+"($$$p)"),L=function(b,c){return angular.isFunction(J(a))&&q&&q.$options&&q.$options.getterSetter?K(b,{$$$p:c}):J.assign(b,c)},M=m.parse(c.uibTypeahead),N=a.$new(),O=a.$on("$destroy",function(){N.$destroy()});N.$on("$destroy",O);var P="typeahead-"+N.$id+"-"+Math.floor(1e4*Math.random());b.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":P});var Q,R;I&&(Q=angular.element("
        "),Q.css("position","relative"),b.after(Q),R=b.clone(),R.attr("placeholder",""),R.val(""),R.css({position:"absolute",top:"0px",left:"0px","border-color":"transparent","box-shadow":"none",opacity:1,background:"none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255)",color:"#999"}),b.css({position:"relative","vertical-align":"top","background-color":"transparent"}),Q.append(R),R.after(b));var S=angular.element("
        ");S.attr({id:P,matches:"matches",active:"activeIdx",select:"select(activeIdx, evt)","move-in-progress":"moveInProgress",query:"query",position:"position","assign-is-open":"assignIsOpen(isOpen)",debounce:"debounceUpdate"}),angular.isDefined(c.typeaheadTemplateUrl)&&S.attr("template-url",c.typeaheadTemplateUrl),angular.isDefined(c.typeaheadPopupTemplateUrl)&&S.attr("popup-template-url",c.typeaheadPopupTemplateUrl);var T=function(){I&&R.val("")},U=function(){N.matches=[],N.activeIdx=-1,b.attr("aria-expanded",!1),T()},V=function(a){return P+"-option-"+a};N.$watch("activeIdx",function(a){0>a?b.removeAttr("aria-activedescendant"):b.attr("aria-activedescendant",V(a))});var W=function(a,b){return N.matches.length>b&&a?a.toUpperCase()===N.matches[b].label.toUpperCase():!1},X=function(c,d){var e={$viewValue:c};y(a,!0),B(a,!1),f.when(M.source(a,e)).then(function(f){var g=c===p.$viewValue;if(g&&w)if(f&&f.length>0){N.activeIdx=F?0:-1,B(a,!1),N.matches.length=0;for(var h=0;h0&&i.slice(0,c.length).toUpperCase()===c.toUpperCase()?R.val(c+i.slice(c.length)):R.val("")}}else U(),B(a,!0);g&&y(a,!1)},function(){U(),y(a,!1),B(a,!0)})};D&&(angular.element(i).on("resize",n),h.find("body").on("scroll",n));var Y=k(function(){N.matches.length&&o(),N.moveInProgress=!1},s);N.moveInProgress=!1,N.query=void 0;var Z,$=function(a){Z=g(function(){X(a)},u)},_=function(){Z&&g.cancel(Z)};U(),N.assignIsOpen=function(b){H(a,b)},N.select=function(d,e){var f,h,i={};x=!0,i[M.itemName]=h=N.matches[d].model,f=M.modelMapper(a,i),L(a,f),p.$setValidity("editable",!0),p.$setValidity("parse",!0),z(a,{$item:h,$model:f,$label:M.viewMapper(a,i),$event:e}),U(),N.$eval(c.typeaheadFocusOnSelect)!==!1&&g(function(){b[0].focus()},0,!1)},b.on("keydown",function(a){if(0!==N.matches.length&&-1!==r.indexOf(a.which)){if(-1===N.activeIdx&&(9===a.which||13===a.which))return U(),void N.$digest();a.preventDefault();var b;switch(a.which){case 9:case 13:N.$apply(function(){angular.isNumber(N.debounceUpdate)||angular.isObject(N.debounceUpdate)?k(function(){N.select(N.activeIdx,a)},angular.isNumber(N.debounceUpdate)?N.debounceUpdate:N.debounceUpdate["default"]):N.select(N.activeIdx,a)});break;case 27:a.stopPropagation(),U(),N.$digest();break;case 38:N.activeIdx=(N.activeIdx>0?N.activeIdx:N.matches.length)-1,N.$digest(),b=S.find("li")[N.activeIdx],b.parentNode.scrollTop=b.offsetTop;break;case 40:N.activeIdx=(N.activeIdx+1)%N.matches.length,N.$digest(),b=S.find("li")[N.activeIdx],b.parentNode.scrollTop=b.offsetTop}}}),b.bind("focus",function(a){w=!0,0!==t||p.$viewValue||g(function(){X(p.$viewValue,a)},0)}),b.bind("blur",function(a){A&&N.matches.length&&-1!==N.activeIdx&&!x&&(x=!0,N.$apply(function(){angular.isObject(N.debounceUpdate)&&angular.isNumber(N.debounceUpdate.blur)?k(function(){N.select(N.activeIdx,a)},N.debounceUpdate.blur):N.select(N.activeIdx,a)})),!v&&p.$error.editable&&(p.$viewValue="",b.val("")),w=!1,x=!1});var aa=function(a){b[0]!==a.target&&3!==a.which&&0!==N.matches.length&&(U(),j.$$phase||N.$digest())};h.on("click",aa),a.$on("$destroy",function(){h.off("click",aa),(D||E)&&ba.remove(),D&&(angular.element(i).off("resize",n),h.find("body").off("scroll",n)),S.remove(),I&&Q.remove()});var ba=d(S)(N);D?h.find("body").append(ba):E?angular.element(E).eq(0).append(ba):b.after(ba),this.init=function(b,c){p=b,q=c,N.debounceUpdate=p.$options&&e(p.$options.debounce)(a),p.$parsers.unshift(function(b){return w=!0,0===t||b&&b.length>=t?u>0?(_(),$(b)):X(b):(y(a,!1),_(),U()),v?b:b?void p.$setValidity("editable",!1):(p.$setValidity("editable",!0),null)}),p.$formatters.push(function(b){var c,d,e={};return v||p.$setValidity("editable",!0),C?(e.$model=b,C(a,e)):(e[M.itemName]=b,c=M.viewMapper(a,e),e[M.itemName]=void 0,d=M.viewMapper(a,e),c!==d?c:b)})}}]).directive("uibTypeahead",function(){return{controller:"UibTypeaheadController",require:["ngModel","^?ngModelOptions","uibTypeahead"],link:function(a,b,c,d){d[2].init(d[0],d[1])}}}).directive("uibTypeaheadPopup",["$$debounce",function(a){return{scope:{matches:"=",query:"=",active:"=",position:"&",moveInProgress:"=",select:"&",assignIsOpen:"&",debounce:"&"},replace:!0,templateUrl:function(a,b){return b.popupTemplateUrl||"uib/template/typeahead/typeahead-popup.html"},link:function(b,c,d){b.templateUrl=d.templateUrl,b.isOpen=function(){var a=b.matches.length>0;return b.assignIsOpen({isOpen:a}),a},b.isActive=function(a){return b.active===a},b.selectActive=function(a){b.active=a},b.selectMatch=function(c,d){var e=b.debounce();angular.isNumber(e)||angular.isObject(e)?a(function(){b.select({activeIdx:c,evt:d})},angular.isNumber(e)?e:e["default"]):b.select({activeIdx:c,evt:d})}}}}]).directive("uibTypeaheadMatch",["$templateRequest","$compile","$parse",function(a,b,c){return{scope:{index:"=",match:"=",query:"="},link:function(d,e,f){var g=c(f.templateUrl)(d.$parent)||"uib/template/typeahead/typeahead-match.html";a(g).then(function(a){var c=angular.element(a.trim());e.replaceWith(c),b(c)(d)})}}}]).filter("uibTypeaheadHighlight",["$sce","$injector","$log",function(a,b,c){function d(a){return a.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function e(a){return/<.*>/g.test(a)}var f;return f=b.has("$sanitize"),function(b,g){return!f&&e(b)&&c.warn("Unsafe use of typeahead please use ngSanitize"),b=g?(""+b).replace(new RegExp(d(g),"gi"),"$&"):b,f||(b=a.trustAsHtml(b)),b}}]),angular.module("uib/template/accordion/accordion-group.html",[]).run(["$templateCache",function(a){a.put("uib/template/accordion/accordion-group.html",'
        \n
        \n

        \n
        {{heading}}
        \n

        \n
        \n
        \n
        \n
        \n
        \n')}]),angular.module("uib/template/accordion/accordion.html",[]).run(["$templateCache",function(a){a.put("uib/template/accordion/accordion.html",'
        ')}]),angular.module("uib/template/alert/alert.html",[]).run(["$templateCache",function(a){a.put("uib/template/alert/alert.html",'\n')}]),angular.module("uib/template/carousel/carousel.html",[]).run(["$templateCache",function(a){a.put("uib/template/carousel/carousel.html",'')}]),angular.module("uib/template/carousel/slide.html",[]).run(["$templateCache",function(a){a.put("uib/template/carousel/slide.html",'
        \n')}]),angular.module("uib/template/datepicker/datepicker.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/datepicker.html",'
        \n \n \n \n
        ')}]),angular.module("uib/template/datepicker/day.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/day.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        {{::label.abbr}}
        {{ weekNumbers[$index] }}\n \n
        \n')}]),angular.module("uib/template/datepicker/month.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/month.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n
        \n \n
        \n')}]),angular.module("uib/template/datepicker/popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/popup.html",'\n'); -}]),angular.module("uib/template/datepicker/year.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/year.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n
        \n \n
        \n')}]),angular.module("uib/template/modal/backdrop.html",[]).run(["$templateCache",function(a){a.put("uib/template/modal/backdrop.html",'\n')}]),angular.module("uib/template/modal/window.html",[]).run(["$templateCache",function(a){a.put("uib/template/modal/window.html",'\n')}]),angular.module("uib/template/pager/pager.html",[]).run(["$templateCache",function(a){a.put("uib/template/pager/pager.html",'\n')}]),angular.module("uib/template/pagination/pagination.html",[]).run(["$templateCache",function(a){a.put("uib/template/pagination/pagination.html",'\n')}]),angular.module("uib/template/tooltip/tooltip-html-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/tooltip/tooltip-html-popup.html",'
        \n
        \n
        \n
        \n')}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(a){a.put("template/tooltip/tooltip-html-unsafe-popup.html",'
        \n
        \n
        \n
        \n')}]),angular.module("uib/template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/tooltip/tooltip-popup.html",'
        \n
        \n
        \n
        \n')}]),angular.module("uib/template/tooltip/tooltip-template-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/tooltip/tooltip-template-popup.html",'
        \n
        \n
        \n
        \n')}]),angular.module("uib/template/popover/popover-html.html",[]).run(["$templateCache",function(a){a.put("uib/template/popover/popover-html.html",'
        \n
        \n\n
        \n

        \n
        \n
        \n
        \n')}]),angular.module("uib/template/popover/popover-template.html",[]).run(["$templateCache",function(a){a.put("uib/template/popover/popover-template.html",'
        \n
        \n\n
        \n

        \n
        \n
        \n
        \n')}]),angular.module("uib/template/popover/popover.html",[]).run(["$templateCache",function(a){a.put("uib/template/popover/popover.html",'
        \n
        \n\n
        \n

        \n
        \n
        \n
        \n')}]),angular.module("uib/template/progressbar/bar.html",[]).run(["$templateCache",function(a){a.put("uib/template/progressbar/bar.html",'
        \n')}]),angular.module("uib/template/progressbar/progress.html",[]).run(["$templateCache",function(a){a.put("uib/template/progressbar/progress.html",'
        ')}]),angular.module("uib/template/progressbar/progressbar.html",[]).run(["$templateCache",function(a){a.put("uib/template/progressbar/progressbar.html",'
        \n
        \n
        \n')}]),angular.module("uib/template/rating/rating.html",[]).run(["$templateCache",function(a){a.put("uib/template/rating/rating.html",'\n ({{ $index < value ? \'*\' : \' \' }})\n \n\n')}]),angular.module("uib/template/tabs/tab.html",[]).run(["$templateCache",function(a){a.put("uib/template/tabs/tab.html",'
      • \n
        {{heading}}
        \n
      • \n')}]),angular.module("uib/template/tabs/tabset.html",[]).run(["$templateCache",function(a){a.put("uib/template/tabs/tabset.html",'
        \n \n
        \n
        \n
        \n
        \n
        \n')}]),angular.module("uib/template/timepicker/timepicker.html",[]).run(["$templateCache",function(a){a.put("uib/template/timepicker/timepicker.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
          
        \n \n :\n \n :\n \n
          
        \n')}]),angular.module("uib/template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(a){a.put("uib/template/typeahead/typeahead-match.html",'\n')}]),angular.module("uib/template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/typeahead/typeahead-popup.html",'\n')}]),angular.module("ui.bootstrap.carousel").run(function(){!angular.$$csp().noInlineStyle&&angular.element(document).find("head").prepend('')}),angular.module("ui.bootstrap.tabs").run(function(){!angular.$$csp().noInlineStyle&&angular.element(document).find("head").prepend('')}),function(a){"use strict";"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a():"undefined"!=typeof Package?Sortable=a():window.Sortable=a()}(function(){"use strict";function a(a,b){if(!a||!a.nodeType||1!==a.nodeType)throw"Sortable: `el` must be HTMLElement, and not "+{}.toString.call(a);this.el=a,this.options=b=r({},b),a[L]=this;var c={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(a.nodeName)?"li":">*",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",ignore:"a, img",filter:null,animation:0,setData:function(a,b){a.setData("Text",b.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1};for(var d in c)!(d in b)&&(b[d]=c[d]);V(b);for(var f in this)"_"===f.charAt(0)&&(this[f]=this[f].bind(this));this.nativeDraggable=b.forceFallback?!1:P,e(a,"mousedown",this._onTapStart),e(a,"touchstart",this._onTapStart),this.nativeDraggable&&(e(a,"dragover",this),e(a,"dragenter",this)),T.push(this._onDragOver),b.store&&this.sort(b.store.get(this))}function b(a){v&&v.state!==a&&(h(v,"display",a?"none":""),!a&&v.state&&w.insertBefore(v,s),v.state=a)}function c(a,b,c){if(a){c=c||N,b=b.split(".");var d=b.shift().toUpperCase(),e=new RegExp("\\s("+b.join("|")+")(?=\\s)","g");do if(">*"===d&&a.parentNode===c||(""===d||a.nodeName.toUpperCase()==d)&&(!b.length||((" "+a.className+" ").match(e)||[]).length==b.length))return a;while(a!==c&&(a=a.parentNode))}return null}function d(a){a.dataTransfer&&(a.dataTransfer.dropEffect="move"),a.preventDefault()}function e(a,b,c){a.addEventListener(b,c,!1)}function f(a,b,c){a.removeEventListener(b,c,!1)}function g(a,b,c){if(a)if(a.classList)a.classList[c?"add":"remove"](b);else{var d=(" "+a.className+" ").replace(K," ").replace(" "+b+" "," ");a.className=(d+(c?" "+b:"")).replace(K," ")}}function h(a,b,c){var d=a&&a.style;if(d){if(void 0===c)return N.defaultView&&N.defaultView.getComputedStyle?c=N.defaultView.getComputedStyle(a,""):a.currentStyle&&(c=a.currentStyle),void 0===b?c:c[b];b in d||(b="-webkit-"+b),d[b]=c+("string"==typeof c?"":"px")}}function i(a,b,c){if(a){var d=a.getElementsByTagName(b),e=0,f=d.length;if(c)for(;f>e;e++)c(d[e],e);return d}return[]}function j(a,b,c,d,e,f,g){var h=N.createEvent("Event"),i=(a||b[L]).options,j="on"+c.charAt(0).toUpperCase()+c.substr(1);h.initEvent(c,!0,!0),h.to=b,h.from=e||b,h.item=d||b,h.clone=v,h.oldIndex=f,h.newIndex=g,b.dispatchEvent(h),i[j]&&i[j].call(a,h)}function k(a,b,c,d,e,f){var g,h,i=a[L],j=i.options.onMove;return g=N.createEvent("Event"),g.initEvent("move",!0,!0),g.to=b,g.from=a,g.dragged=c,g.draggedRect=d,g.related=e||b,g.relatedRect=f||b.getBoundingClientRect(),a.dispatchEvent(g),j&&(h=j.call(i,g)),h}function l(a){a.draggable=!1}function m(){R=!1}function n(a,b){var c=a.lastElementChild,d=c.getBoundingClientRect();return(b.clientY-(d.top+d.height)>5||b.clientX-(d.right+d.width)>5)&&c}function o(a){for(var b=a.tagName+a.className+a.src+a.href+a.textContent,c=b.length,d=0;c--;)d+=b.charCodeAt(c);return d.toString(36)}function p(a){var b=0;if(!a||!a.parentNode)return-1;for(;a&&(a=a.previousElementSibling);)"TEMPLATE"!==a.nodeName.toUpperCase()&&b++;return b}function q(a,b){var c,d;return function(){void 0===c&&(c=arguments,d=this,setTimeout(function(){1===c.length?a.call(d,c[0]):a.apply(d,c),c=void 0},b))}}function r(a,b){if(a&&b)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}var s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J={},K=/\s+/g,L="Sortable"+(new Date).getTime(),M=window,N=M.document,O=M.parseInt,P=!!("draggable"in N.createElement("div")),Q=function(a){return a=N.createElement("x"),a.style.cssText="pointer-events:auto","auto"===a.style.pointerEvents}(),R=!1,S=Math.abs,T=([].slice,[]),U=q(function(a,b,c){if(c&&b.scroll){var d,e,f,g,h=b.scrollSensitivity,i=b.scrollSpeed,j=a.clientX,k=a.clientY,l=window.innerWidth,m=window.innerHeight;if(z!==c&&(y=b.scroll,z=c,y===!0)){y=c;do if(y.offsetWidth=l-j)-(h>=j),g=(h>=m-k)-(h>=k),(f||g)&&(d=M)),J.vx===f&&J.vy===g&&J.el===d||(J.el=d,J.vx=f,J.vy=g,clearInterval(J.pid),d&&(J.pid=setInterval(function(){d===M?M.scrollTo(M.pageXOffset+f*i,M.pageYOffset+g*i):(g&&(d.scrollTop+=g*i),f&&(d.scrollLeft+=f*i))},24)))}},30),V=function(a){var b=a.group;b&&"object"==typeof b||(b=a.group={name:b}),["pull","put"].forEach(function(a){a in b||(b[a]=!0)}),a.groups=" "+b.name+(b.put.join?" "+b.put.join(" "):"")+" "};return a.prototype={constructor:a,_onTapStart:function(a){var b=this,d=this.el,e=this.options,f=a.type,g=a.touches&&a.touches[0],h=(g||a).target,i=h,k=e.filter;if(!("mousedown"===f&&0!==a.button||e.disabled)&&(h=c(h,e.draggable,d))){if(D=p(h),"function"==typeof k){if(k.call(this,a,h,this))return j(b,i,"filter",h,d,D),void a.preventDefault()}else if(k&&(k=k.split(",").some(function(a){return a=c(i,a.trim(),d),a?(j(b,a,"filter",h,d,D),!0):void 0})))return void a.preventDefault();e.handle&&!c(i,e.handle,d)||this._prepareDragStart(a,g,h)}},_prepareDragStart:function(a,b,c){var d,f=this,h=f.el,j=f.options,k=h.ownerDocument;c&&!s&&c.parentNode===h&&(G=a,w=h,s=c,t=s.parentNode,x=s.nextSibling,F=j.group,d=function(){f._disableDelayedDrag(),s.draggable=!0,g(s,f.options.chosenClass,!0),f._triggerDragStart(b)},j.ignore.split(",").forEach(function(a){i(s,a.trim(),l)}),e(k,"mouseup",f._onDrop),e(k,"touchend",f._onDrop),e(k,"touchcancel",f._onDrop),j.delay?(e(k,"mouseup",f._disableDelayedDrag),e(k,"touchend",f._disableDelayedDrag),e(k,"touchcancel",f._disableDelayedDrag),e(k,"mousemove",f._disableDelayedDrag),e(k,"touchmove",f._disableDelayedDrag),f._dragStartTimer=setTimeout(d,j.delay)):d())},_disableDelayedDrag:function(){var a=this.el.ownerDocument;clearTimeout(this._dragStartTimer),f(a,"mouseup",this._disableDelayedDrag),f(a,"touchend",this._disableDelayedDrag),f(a,"touchcancel",this._disableDelayedDrag),f(a,"mousemove",this._disableDelayedDrag),f(a,"touchmove",this._disableDelayedDrag)},_triggerDragStart:function(a){a?(G={target:s,clientX:a.clientX,clientY:a.clientY},this._onDragStart(G,"touch")):this.nativeDraggable?(e(s,"dragend",this),e(w,"dragstart",this._onDragStart)):this._onDragStart(G,!0);try{N.selection?N.selection.empty():window.getSelection().removeAllRanges()}catch(b){}},_dragStarted:function(){w&&s&&(g(s,this.options.ghostClass,!0),a.active=this,j(this,w,"start",s,w,D))},_emulateDragOver:function(){if(H){if(this._lastX===H.clientX&&this._lastY===H.clientY)return;this._lastX=H.clientX,this._lastY=H.clientY,Q||h(u,"display","none");var a=N.elementFromPoint(H.clientX,H.clientY),b=a,c=" "+this.options.group.name,d=T.length;if(b)do{if(b[L]&&b[L].options.groups.indexOf(c)>-1){for(;d--;)T[d]({clientX:H.clientX,clientY:H.clientY,target:a,rootEl:b});break}a=b}while(b=b.parentNode);Q||h(u,"display","")}},_onTouchMove:function(b){if(G){a.active||this._dragStarted(),this._appendGhost();var c=b.touches?b.touches[0]:b,d=c.clientX-G.clientX,e=c.clientY-G.clientY,f=b.touches?"translate3d("+d+"px,"+e+"px,0)":"translate("+d+"px,"+e+"px)";I=!0,H=c,h(u,"webkitTransform",f),h(u,"mozTransform",f),h(u,"msTransform",f),h(u,"transform",f),b.preventDefault()}},_appendGhost:function(){if(!u){var a,b=s.getBoundingClientRect(),c=h(s),d=this.options;u=s.cloneNode(!0),g(u,d.ghostClass,!1),g(u,d.fallbackClass,!0),h(u,"top",b.top-O(c.marginTop,10)),h(u,"left",b.left-O(c.marginLeft,10)),h(u,"width",b.width),h(u,"height",b.height),h(u,"opacity","0.8"),h(u,"position","fixed"),h(u,"zIndex","100000"),h(u,"pointerEvents","none"),d.fallbackOnBody&&N.body.appendChild(u)||w.appendChild(u),a=u.getBoundingClientRect(),h(u,"width",2*b.width-a.width),h(u,"height",2*b.height-a.height)}},_onDragStart:function(a,b){var c=a.dataTransfer,d=this.options;this._offUpEvents(),"clone"==F.pull&&(v=s.cloneNode(!0),h(v,"display","none"),w.insertBefore(v,s)),b?("touch"===b?(e(N,"touchmove",this._onTouchMove),e(N,"touchend",this._onDrop),e(N,"touchcancel",this._onDrop)):(e(N,"mousemove",this._onTouchMove),e(N,"mouseup",this._onDrop)),this._loopId=setInterval(this._emulateDragOver,50)):(c&&(c.effectAllowed="move",d.setData&&d.setData.call(this,c,s)),e(N,"drop",this),setTimeout(this._dragStarted,0))},_onDragOver:function(a){var d,e,f,g=this.el,i=this.options,j=i.group,l=j.put,o=F===j,p=i.sort;if(void 0!==a.preventDefault&&(a.preventDefault(),!i.dragoverBubble&&a.stopPropagation()),I=!0,F&&!i.disabled&&(o?p||(f=!w.contains(s)):F.pull&&l&&(F.name===j.name||l.indexOf&&~l.indexOf(F.name)))&&(void 0===a.rootEl||a.rootEl===this.el)){if(U(a,i,this.el),R)return;if(d=c(a.target,i.draggable,g),e=s.getBoundingClientRect(),f)return b(!0),void(v||x?w.insertBefore(s,v||x):p||w.appendChild(s));if(0===g.children.length||g.children[0]===u||g===a.target&&(d=n(g,a))){if(d){if(d.animated)return;r=d.getBoundingClientRect()}b(o),k(w,g,s,e,d,r)!==!1&&(s.contains(g)||(g.appendChild(s),t=g),this._animate(e,s),d&&this._animate(r,d))}else if(d&&!d.animated&&d!==s&&void 0!==d.parentNode[L]){A!==d&&(A=d,B=h(d),C=h(d.parentNode));var q,r=d.getBoundingClientRect(),y=r.right-r.left,z=r.bottom-r.top,D=/left|right|inline/.test(B.cssFloat+B.display)||"flex"==C.display&&0===C["flex-direction"].indexOf("row"),E=d.offsetWidth>s.offsetWidth,G=d.offsetHeight>s.offsetHeight,H=(D?(a.clientX-r.left)/y:(a.clientY-r.top)/z)>.5,J=d.nextElementSibling,K=k(w,g,s,e,d,r);if(K!==!1){if(R=!0,setTimeout(m,30),b(o),1===K||-1===K)q=1===K;else if(D){var M=s.offsetTop,N=d.offsetTop;q=M===N?d.previousElementSibling===s&&!E||H&&E:N>M}else q=J!==s&&!G||H&&G;s.contains(g)||(q&&!J?g.appendChild(s):d.parentNode.insertBefore(s,q?J:d)),t=s.parentNode,this._animate(e,s),this._animate(r,d)}}}},_animate:function(a,b){var c=this.options.animation;if(c){var d=b.getBoundingClientRect();h(b,"transition","none"),h(b,"transform","translate3d("+(a.left-d.left)+"px,"+(a.top-d.top)+"px,0)"),b.offsetWidth,h(b,"transition","all "+c+"ms"),h(b,"transform","translate3d(0,0,0)"),clearTimeout(b.animated),b.animated=setTimeout(function(){h(b,"transition",""),h(b,"transform",""),b.animated=!1},c)}},_offUpEvents:function(){var a=this.el.ownerDocument;f(N,"touchmove",this._onTouchMove),f(a,"mouseup",this._onDrop),f(a,"touchend",this._onDrop),f(a,"touchcancel",this._onDrop)},_onDrop:function(b){var c=this.el,d=this.options;clearInterval(this._loopId),clearInterval(J.pid),clearTimeout(this._dragStartTimer),f(N,"mousemove",this._onTouchMove),this.nativeDraggable&&(f(N,"drop",this),f(c,"dragstart",this._onDragStart)),this._offUpEvents(),b&&(I&&(b.preventDefault(),!d.dropBubble&&b.stopPropagation()),u&&u.parentNode.removeChild(u),s&&(this.nativeDraggable&&f(s,"dragend",this),l(s),g(s,this.options.ghostClass,!1),g(s,this.options.chosenClass,!1),w!==t?(E=p(s),E>=0&&(j(null,t,"sort",s,w,D,E),j(this,w,"sort",s,w,D,E),j(null,t,"add",s,w,D,E),j(this,w,"remove",s,w,D,E))):(v&&v.parentNode.removeChild(v),s.nextSibling!==x&&(E=p(s),E>=0&&(j(this,w,"update",s,w,D,E),j(this,w,"sort",s,w,D,E)))),a.active&&(null!==E&&-1!==E||(E=D),j(this,w,"end",s,w,D,E),this.save())),w=s=t=u=x=v=y=z=G=H=I=E=A=B=F=a.active=null)},handleEvent:function(a){var b=a.type;"dragover"===b||"dragenter"===b?s&&(this._onDragOver(a),d(a)):"drop"!==b&&"dragend"!==b||this._onDrop(a)},toArray:function(){for(var a,b=[],d=this.el.children,e=0,f=d.length,g=this.options;f>e;e++)a=d[e],c(a,g.draggable,this.el)&&b.push(a.getAttribute(g.dataIdAttr)||o(a));return b},sort:function(a){var b={},d=this.el;this.toArray().forEach(function(a,e){var f=d.children[e];c(f,this.options.draggable,d)&&(b[a]=f)},this),a.forEach(function(a){b[a]&&(d.removeChild(b[a]),d.appendChild(b[a]))})},save:function(){var a=this.options.store;a&&a.set(this)},closest:function(a,b){return c(a,b||this.options.draggable,this.el)},option:function(a,b){var c=this.options;return void 0===b?c[a]:(c[a]=b,void("group"===a&&V(c)))},destroy:function(){var a=this.el;a[L]=null,f(a,"mousedown",this._onTapStart),f(a,"touchstart",this._onTapStart),this.nativeDraggable&&(f(a,"dragover",this),f(a,"dragenter",this)),Array.prototype.forEach.call(a.querySelectorAll("[draggable]"),function(a){a.removeAttribute("draggable")}),T.splice(T.indexOf(this._onDragOver),1),this._onDrop(),this.el=a=null}},a.utils={on:e,off:f,css:h,find:i,is:function(a,b){return!!c(a,b,a)},extend:r,throttle:q,closest:c,toggleClass:g,index:p},a.create=function(b,c){return new a(b,c)},a.version="1.4.2",a}),function(a){"use strict";"function"==typeof define&&define.amd?define(["angular","./Sortable"],a):"function"==typeof require&&"object"==typeof exports&&"object"==typeof module?(require("angular"),a(angular,require("./Sortable")),module.exports="ng-sortable"):window.angular&&window.Sortable&&a(angular,Sortable)}(function(a,b){"use strict";var c="Sortable:ng-sortable";a.module("ng-sortable",[]).constant("ngSortableVersion","0.4.0").constant("ngSortableConfig",{}).directive("ngSortable",["$parse","ngSortableConfig",function(d,e){var f,g,h=function(a,b){var c=[].filter.call(a.childNodes,function(a){return 8===a.nodeType&&-1!==a.nodeValue.indexOf("ngRepeat:")})[0];if(!c)return function(){return null};c=c.nodeValue.match(/ngRepeat:\s*(?:\(.*?,\s*)?([^\s)]+)[\s)]+in\s+([^\s|]+)/);var e=d(c[2]);return function(){return e(b.$parent)||[]}};return{restrict:"AC",scope:{ngSortable:"=?"},link:function(d,i){function j(a,b){var c="on"+a.type.charAt(0).toUpperCase()+a.type.substr(1),d=p();n[c]&&n[c]({model:b||d[a.newIndex],models:d,oldIndex:a.oldIndex,newIndex:a.newIndex})}function k(e){var h=p();if(h){var i=e.oldIndex,j=e.newIndex;if(m!==e.from){var k=e.from[c]();f=k[i],e.clone?(f=a.copy(f),k.splice(b.utils.index(e.clone),0,k.splice(i,1)[0]),e.from.removeChild(e.clone)):k.splice(i,1),h.splice(j,0,f),e.from.insertBefore(e.item,g)}else h.splice(j,0,h.splice(i,1)[0]);d.$apply()}}var l,m=i[0],n=a.extend(d.ngSortable||{},e),o=[],p=h(m,d);m[c]=p,l=b.create(m,Object.keys(n).reduce(function(a,b){return a[b]=a[b]||n[b],a},{onStart:function(a){g=a.item.nextSibling,j(a),d.$apply()},onEnd:function(a){j(a,f),d.$apply()},onAdd:function(a){k(a),j(a,f),d.$apply()},onUpdate:function(a){k(a),j(a)},onRemove:function(a){j(a,f)},onSort:function(a){j(a)}})),i.on("$destroy",function(){a.forEach(o,function(a){a()}),l.destroy(),m[c]=null,m=null,o=null,l=null,g=null}),a.forEach(["sort","disabled","draggable","handle","animation","group","ghostClass","filter","onStart","onEnd","onAdd","onUpdate","onRemove","onSort"],function(a){o.push(d.$watch("ngSortable."+a,function(b){void 0!==b&&(n[a]=b,/^on[A-Z]/.test(a)||l.option(a,b))}))})}}}])}),function(a){"use strict";"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a(require("./Sortable")):"function"==typeof define&&define.amd?define(["./Sortable"],a):window.SortableMixin=a(Sortable)}(function(a){"use strict";function b(a){return a.sortableOptions&&a.sortableOptions.model||g.model}function c(a){var c=b(a),d=a.state&&a.state[c]||a.props[c];return d.slice()}function d(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}var e,f,g={ref:"list",model:"items",animation:100,onStart:"handleStart",onEnd:"handleEnd",onAdd:"handleAdd",onUpdate:"handleUpdate",onRemove:"handleRemove",onSort:"handleSort",onFilter:"handleFilter",onMove:"handleMove"},h={sortableMixinVersion:"0.1.1",_sortableInstance:null,componentDidMount:function(){var h,i=d(d({},g),this.sortableOptions||{}),j=d({},i),k=function(a,b){var c=this[i[a]];c&&c.call(this,b,this._sortableInstance)}.bind(this);"onStart onEnd onAdd onSort onUpdate onRemove onFilter onMove".split(" ").forEach(function(a){j[a]=function(d){if("onStart"===a)e=d.item.nextElementSibling,f=this;else if("onAdd"===a||"onUpdate"===a){d.from.insertBefore(d.item,e);var g,h,i={},l={},m=d.oldIndex,n=d.newIndex,o=c(this);"onAdd"===a?(g=c(f),h=g.splice(m,1)[0],o.splice(n,0,h),l[b(f)]=g):o.splice(n,0,o.splice(m,1)[0]),i[b(this)]=o,j.stateHandler?this[j.stateHandler](i):this.setState(i),this!==f&&f.setState(l)}setTimeout(function(){k(a,d)},0)}.bind(this)},this),h=this.getDOMNode()?(this.refs[i.ref]||this).getDOMNode():this.refs[i.ref]||this,this._sortableInstance=a.create(h,j); -},componentWillReceiveProps:function(a){var c={},d=b(this),e=a[d];e&&(c[d]=e,this.setState(c))},componentWillUnmount:function(){this._sortableInstance.destroy(),this._sortableInstance=null}};return h}),function(a,b){"use strict";angular.module("adf",["adf.provider","ui.bootstrap"]).value("adfTemplatePath","../src/templates/").value("rowTemplate",'').value("columnTemplate",'').value("adfVersion","0.11.0"),angular.module("adf").directive("adfDashboardColumn",["$log","$compile","$rootScope","adfTemplatePath","rowTemplate","dashboard",function(a,b,c,d,e,f){function g(a,b,d){var e=b.widgets;a.$apply(function(){e.splice(d.newIndex,0,e.splice(d.oldIndex,1)[0]),c.$broadcast("adfWidgetMovedInColumn")})}function h(a,b){for(var c=null,d=0;d0)for(var c=a.widgets.shift();c;)b.widgets.push(c),c=a.widgets.shift()}function i(a,b,c){return c=c||0,angular.isDefined(a.rows)&&angular.forEach(a.rows,function(a){angular.forEach(a.columns,function(a){a.widgets||(a.widgets=[]),angular.isDefined(b[c])&&(angular.isDefined(a.rows)||(h(b[c],a),c++)),c=i(a,b,c)})}),c}function j(a,b){return b=b||[],angular.isDefined(a.rows)&&angular.forEach(a.rows,function(a){angular.forEach(a.columns,function(a){b.push(a),j(a,b)})}),b}function k(a,b){var c=j(a),d=0;for(a.rows=angular.copy(b.rows);d{}
        ',e='
        \n
        \n loading ...\n
        \n
        ',f=function(){return!0};this.widget=function(b,c){var d=angular.extend({reload:!1,frameless:!1},c);if(d.edit){var e={reload:!0,immediate:!1,apply:f};angular.extend(e,d.edit),d.edit=e}return a[b]=d,this},this.widgetsPath=function(a){return b=a,this},this.structure=function(a,b){return c[a]=b,this},this.messageTemplate=function(a){return d=a,this},this.loadingTemplate=function(a){return e=a,this},this.$get=function(){var f=0;return{widgets:a,widgetsPath:b,structures:c,messageTemplate:d,loadingTemplate:e,id:function(){return(new Date).getTime()+"-"+ ++f},idEquals:function(a,b){return a&&b&&a.toString()===b.toString()}}}}),angular.module("adf").directive("adfDashboardRow",["$compile","adfTemplatePath","columnTemplate",function(a,b,c){return{restrict:"E",replace:!0,scope:{row:"=",adfModel:"=",editMode:"=",continuousEditMode:"=",options:"="},templateUrl:b+"dashboard-row.html",link:function(b,d){angular.isDefined(b.row.columns)&&angular.isArray(b.row.columns)&&a(c)(b,function(a){d.append(a)})}}}]),angular.module("adf").directive("adfWidgetContent",["$log","$q","$sce","$http","$templateCache","$compile","$controller","$injector","dashboard",function(a,b,c,d,e,f,g,h,i){function j(a){var b=a;return a.indexOf("{widgetsPath}")>=0&&(b=a.replace("{widgetsPath}",i.widgetsPath).replace("//","/"),0===b.indexOf("/")&&(b=b.substring(1))),b}function k(a){var f=b.defer();if(a.template)f.resolve(a.template);else if(a.templateUrl){var g=e.get(a.templateUrl);if(g)f.resolve(g);else{var h=c.getTrustedResourceUrl(j(a.templateUrl));d.get(h).success(function(b){e.put(a.templateUrl,b),f.resolve(b)}).error(function(){f.reject("could not load template")})}}return f.promise}function l(c,d,e){var j=c.model,l=c.content;d.html(i.loadingTemplate);var m=c.$new();j.config||(j.config={}),m.config=j.config;var n={$scope:m,widget:j,config:j.config},o={};return o.$tpl=k(l),l.resolve&&angular.forEach(l.resolve,function(a,b){angular.isString(a)?o[b]=h.get(a):o[b]=h.invoke(a,a,n)}),b.all(o).then(function(a){angular.extend(a,n);var b=a.$tpl;if(d.html(b),l.controller){var c=g(l.controller,a);l.controllerAs&&(m[l.controllerAs]=c),d.children().data("$ngControllerController",c)}f(d.contents())(m)},function(b){var c="Could not resolve all promises";b&&(c+=": "+b),a.warn(c),d.html(i.messageTemplate.replace(/{}/g,c))}),e&&e.$destroy(),m}return{replace:!0,restrict:"EA",transclude:!1,scope:{model:"=",content:"="},link:function(a,b){var c=l(a,b,null);a.$on("widgetConfigChanged",function(){c=l(a,b,c)}),a.$on("widgetReload",function(){c=l(a,b,c)})}}}]),angular.module("adf").directive("adfWidget",["$injector","$q","$log","$uibModal","$rootScope","dashboard","adfTemplatePath",function(a,b,c,d,e,f,g){function h(a){var b=a.definition;if(b){var d=f.widgets[b.type];if(d){b.title||(b.title=d.title),b.titleTemplateUrl||(b.titleTemplateUrl=g+"widget-title.html",d.titleTemplateUrl&&(b.titleTemplateUrl=d.titleTemplateUrl)),b.titleTemplateUrl||(b.frameless=d.frameless),b.styleClass||(b.styleClass=d.styleClass),b.wid||(b.wid=f.id()),a.widget=angular.copy(d);var e=b.config;e?angular.isString(e)&&(e=angular.fromJson(e)):e={},a.config=e,a.widgetState||(a.widgetState={},a.widgetState.isCollapsed=d.collapsed===!0?d.collapsed:!1)}else c.warn("could not find widget "+b.type)}else c.debug("definition not specified, widget was probably removed")}function i(f,h){var i=f.definition;if(i){var j=function(){var a=f.col;if(a){var b=a.widgets.indexOf(i);b>=0&&a.widgets.splice(b,1)}h.remove(),e.$broadcast("adfWidgetRemovedFromColumn")};f.remove=function(){if(f.options.enableConfirmDelete){var a=f.$new(),b=g+"widget-delete.html";i.deleteTemplateUrl&&(b=i.deleteTemplateUrl);var c={scope:a,templateUrl:b,backdrop:"static"},e=d.open(c);a.closeDialog=function(){e.close(),a.$destroy()},a.deleteDialog=function(){j(),a.closeDialog()}}else j()},f.reload=function(){f.$broadcast("widgetReload")},f.edit=function(){function c(a){var c;if("boolean"==typeof a){var d=b.defer();a?d.resolve():d.reject(),c=d.promise}else c=b.when(a);return c}var e=f.$new();e.definition=angular.copy(i);var h=g+"widget-edit.html";i.editTemplateUrl&&(h=i.editTemplateUrl);var j={scope:e,templateUrl:h,backdrop:"static"},k=d.open(j);e.closeDialog=function(){k.close(),e.$destroy()},e.saveDialog=function(){e.validationError=null;var b=f.widget,d=b.edit.apply,g={widget:b,definition:e.definition,config:e.definition.config},h=a.invoke(d,d,g);c(h).then(function(){i.title=e.definition.title,angular.extend(i.config,e.definition.config),b.edit&&b.edit.reload&&f.$broadcast("widgetConfigChanged"),e.closeDialog()},function(a){a?e.validationError=a:e.validationError="Validation durring apply failed"})}}}else c.debug("widget not found")}return{replace:!0,restrict:"EA",transclude:!1,templateUrl:g+"widget.html",scope:{definition:"=",col:"=column",editMode:"=",options:"=",widgetState:"="},controller:["$scope",function(a){a.$on("adfDashboardCollapseExpand",function(b,c){a.widgetState.isCollapsed=c.collapseExpandStatus}),a.$on("adfWidgetEnterEditMode",function(b,c){f.idEquals(a.definition.wid,c.wid)&&a.edit()}),a.widgetClasses=function(b,c){var d=c.styleClass||"";return b.frameless&&!a.editMode||(d+=" panel panel-default"),d},a.openFullScreen=function(){var b=a.definition,c=a.$new(),e={scope:c,templateUrl:g+"widget-fullscreen.html",size:b.modalSize||"lg",backdrop:"static",windowClass:b.fullScreen?"dashboard-modal widget-fullscreen":"dashboard-modal"},f=d.open(e);c.closeDialog=function(){f.close(),c.$destroy()}}}],compile:function(){return{pre:h,post:i}}}}]),angular.module("adf").run(["$templateCache",function(a){a.put("../src/templates/dashboard-column.html",'
        '),a.put("../src/templates/dashboard-edit.html",' '),a.put("../src/templates/dashboard-row.html","
        "),a.put("../src/templates/dashboard-title.html",'

        {{model.title}}

        '),a.put("../src/templates/dashboard.html",'
        '),a.put("../src/templates/widget-add.html",' '),a.put("../src/templates/widget-delete.html",' '),a.put("../src/templates/widget-edit.html",'
        '),a.put("../src/templates/widget-fullscreen.html",' '),a.put("../src/templates/widget-title.html",'

        {{definition.title}}

        '),a.put("../src/templates/widget.html",'
        ')}])}(window),angular.module("adf.structures.base",["adf"]).config(["dashboardProvider",function(a){a.structure("6-6",{rows:[{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]}]}).structure("4-8",{rows:[{columns:[{styleClass:"col-md-4",widgets:[]},{styleClass:"col-md-8",widgets:[]}]}]}).structure("12/4-4-4",{rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-4"},{styleClass:"col-md-4"},{styleClass:"col-md-4"}]}]}).structure("12/6-6",{rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]}]}).structure("12/6-6/12",{rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]},{columns:[{styleClass:"col-md-12"}]}]}).structure("3-9 (12/6-6)",{rows:[{columns:[{styleClass:"col-md-3"},{styleClass:"col-md-9",rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]}]}]}]})}]),function(a,b){"use strict";angular.module("adf.widget.clock",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("clock",{title:"Clock",description:"Displays date and time",templateUrl:"{widgetsPath}/clock/src/view.html",controller:"clockController",controllerAs:"clock",config:{timePattern:"HH:mm:ss",datePattern:"YYYY-MM-DD"},edit:{templateUrl:"{widgetsPath}/clock/src/edit.html"}})}]).controller("clockController",["$scope","$interval","config",function(a,b,c){function d(){var a=new moment;e.time=a.format(c.timePattern),e.date=a.format(c.datePattern)}var e=this;d();var f=b(d,1e3);a.$on("$destroy",function(){b.cancel(f)})}]),angular.module("adf.widget.clock").run(["$templateCache",function(a){a.put("{widgetsPath}/clock/src/edit.html",'

        For the list of possible patterns, please have a look at moment.js documentation

        '),a.put("{widgetsPath}/clock/src/view.html","
        {{clock.time}}
        {{clock.date}}
        ")}])}(window),function(a,b){"use strict";angular.module("adf.widget.iframe",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("iframe",{title:"iframe",description:"Embed an external page into the dashboard",templateUrl:"{widgetsPath}/iframe/src/view.html",controller:"iframeController",controllerAs:"iframe",edit:{templateUrl:"{widgetsPath}/iframe/src/edit.html"},config:{height:"420px"}})}]).controller("iframeController",["$sce","config",function(a,b){b.url&&(this.url=a.trustAsResourceUrl(b.url))}]),angular.module("adf.widget.iframe").run(["$templateCache",function(a){a.put("{widgetsPath}/iframe/src/edit.html","
        "),a.put("{widgetsPath}/iframe/src/view.html",'
        Please insert a url in the widget configuration
        ')}])}(window),function(){"use strict";angular.module("ui.grid.i18n",[]),angular.module("ui.grid",["ui.grid.i18n"])}(),function(){"use strict";angular.module("ui.grid").constant("uiGridConstants",{LOG_DEBUG_MESSAGES:!0,LOG_WARN_MESSAGES:!0,LOG_ERROR_MESSAGES:!0,CUSTOM_FILTERS:/CUSTOM_FILTERS/g,COL_FIELD:/COL_FIELD/g,MODEL_COL_FIELD:/MODEL_COL_FIELD/g,TOOLTIP:/title=\"TOOLTIP\"/g,DISPLAY_CELL_TEMPLATE:/DISPLAY_CELL_TEMPLATE/g,TEMPLATE_REGEXP:/<.+>/,FUNC_REGEXP:/(\([^)]*\))?$/,DOT_REGEXP:/\./g,APOS_REGEXP:/'/g,BRACKET_REGEXP:/^(.*)((?:\s*\[\s*\d+\s*\]\s*)|(?:\s*\[\s*"(?:[^"\\]|\\.)*"\s*\]\s*)|(?:\s*\[\s*'(?:[^'\\]|\\.)*'\s*\]\s*))(.*)$/,COL_CLASS_PREFIX:"ui-grid-col",events:{GRID_SCROLL:"uiGridScroll",COLUMN_MENU_SHOWN:"uiGridColMenuShown",ITEM_DRAGGING:"uiGridItemDragStart",COLUMN_HEADER_CLICK:"uiGridColumnHeaderClick"},keymap:{TAB:9,STRG:17,CAPSLOCK:20,CTRL:17,CTRLRIGHT:18,CTRLR:18,SHIFT:16,RETURN:13,ENTER:13,BACKSPACE:8,BCKSP:8,ALT:18,ALTR:17,ALTRIGHT:17,SPACE:32,WIN:91,MAC:91,FN:null,PG_UP:33,PG_DOWN:34,UP:38,DOWN:40,LEFT:37,RIGHT:39,ESC:27,DEL:46,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123},ASC:"asc",DESC:"desc",filter:{STARTS_WITH:2,ENDS_WITH:4,EXACT:8,CONTAINS:16,GREATER_THAN:32,GREATER_THAN_OR_EQUAL:64,LESS_THAN:128,LESS_THAN_OR_EQUAL:256,NOT_EQUAL:512,SELECT:"select",INPUT:"input"},aggregationTypes:{sum:2,count:4,avg:8,min:16,max:32},CURRENCY_SYMBOLS:["ƒ","$","£","$","¤","¥","៛","₩","₱","฿","₫"],scrollDirection:{UP:"up",DOWN:"down",LEFT:"left",RIGHT:"right",NONE:"none"},dataChange:{ALL:"all",EDIT:"edit",ROW:"row",COLUMN:"column",OPTIONS:"options"},scrollbars:{NEVER:0,ALWAYS:1}})}(),angular.module("ui.grid").directive("uiGridCell",["$compile","$parse","gridUtil","uiGridConstants",function(a,b,c,d){var e={priority:0,scope:!1,require:"?^uiGrid",compile:function(){return{pre:function(b,e,f,g){function h(){var a=b.col.compiledElementFn;a(b,function(a,b){e.append(a)})}if(g&&b.col.compiledElementFn)h();else if(g&&!b.col.compiledElementFn)b.col.getCompiledElementFn().then(function(a){a(b,function(a,b){e.append(a)})});else{var i=b.col.cellTemplate.replace(d.MODEL_COL_FIELD,"row.entity."+c.preEval(b.col.field)).replace(d.COL_FIELD,"grid.getCellValue(row, col)"),j=a(i)(b);e.append(j)}},post:function(a,b,c,e){var f=a.col.getColClass(!1);b.addClass(f);var g,h=function(c){var d=b;g&&(d.removeClass(g),g=null),g=angular.isFunction(a.col.cellClass)?a.col.cellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.cellClass,d.addClass(g)};a.col.cellClass&&h();var i=a.grid.registerDataChangeCallback(h,[d.dataChange.COLUMN,d.dataChange.EDIT]),j=function(c,d){if(c!==d){(g||a.col.cellClass)&&h();var e=a.col.getColClass(!1);e!==f&&(b.removeClass(f),b.addClass(e),f=e)}},k=a.$watch("row",j),l=function(){i(),k()};a.$on("$destroy",l),b.on("$destroy",l)}}}};return e}]),function(){angular.module("ui.grid").service("uiGridColumnMenuService",["i18nService","uiGridConstants","gridUtil",function(a,b,c){var d={initialize:function(a,b){a.grid=b.grid,b.columnMenuScope=a,a.menuShown=!1},setColMenuItemWatch:function(a){var b=a.$watch("col.menuItems",function(b,c){"undefined"!=typeof b&&b&&angular.isArray(b)?(b.forEach(function(b){"undefined"!=typeof b.context&&b.context||(b.context={}),b.context.col=a.col}),a.menuItems=a.defaultMenuItems.concat(b)):a.menuItems=a.defaultMenuItems});a.$on("$destroy",b)},sortable:function(a){return!!(a.grid.options.enableSorting&&"undefined"!=typeof a.col&&a.col&&a.col.enableSorting)},isActiveSort:function(a,b){return"undefined"!=typeof a.col&&"undefined"!=typeof a.col.sort&&"undefined"!=typeof a.col.sort.direction&&a.col.sort.direction===b},suppressRemoveSort:function(a){return!(!a.col||!a.col.suppressRemoveSort)},hideable:function(a){return"undefined"==typeof a.col||!a.col||!a.col.colDef||a.col.colDef.enableHiding!==!1},getDefaultMenuItems:function(c){return[{title:a.getSafeText("sort.ascending"),icon:"ui-grid-icon-sort-alt-up",action:function(a){a.stopPropagation(),c.sortColumn(a,b.ASC)},shown:function(){return d.sortable(c)},active:function(){return d.isActiveSort(c,b.ASC)}},{title:a.getSafeText("sort.descending"),icon:"ui-grid-icon-sort-alt-down",action:function(a){a.stopPropagation(),c.sortColumn(a,b.DESC)},shown:function(){return d.sortable(c)},active:function(){return d.isActiveSort(c,b.DESC)}},{title:a.getSafeText("sort.remove"),icon:"ui-grid-icon-cancel",action:function(a){a.stopPropagation(),c.unsortColumn()},shown:function(){return d.sortable(c)&&"undefined"!=typeof c.col&&"undefined"!=typeof c.col.sort&&"undefined"!=typeof c.col.sort.direction&&null!==c.col.sort.direction&&!d.suppressRemoveSort(c)}},{title:a.getSafeText("column.hide"),icon:"ui-grid-icon-cancel",shown:function(){return d.hideable(c)},action:function(a){a.stopPropagation(),c.hideColumn()}},{title:a.getSafeText("columnMenu.close"),screenReaderOnly:!0,shown:function(){return!0},action:function(a){a.stopPropagation()}}]},getColumnElementPosition:function(a,b,d){var e={};return e.left=d[0].offsetLeft,e.top=d[0].offsetTop,e.parentLeft=d[0].offsetParent.offsetLeft,e.offset=0,b.grid.options.offsetLeft&&(e.offset=b.grid.options.offsetLeft),e.height=c.elementHeight(d,!0),e.width=c.elementWidth(d,!0),e},repositionMenu:function(a,b,d,e,f){var g=e[0].querySelectorAll(".ui-grid-menu"),h=b.renderContainer?b.renderContainer:"body",i=(b.grid.renderContainers[h],c.closestElm(f,".ui-grid-render-container")),j=i.getBoundingClientRect().left-a.grid.element[0].getBoundingClientRect().left,k=i.querySelectorAll(".ui-grid-viewport")[0].scrollLeft,l=b.lastMenuWidth?b.lastMenuWidth:a.lastMenuWidth?a.lastMenuWidth:170,m=b.lastMenuPaddingRight?b.lastMenuPaddingRight:a.lastMenuPaddingRight?a.lastMenuPaddingRight:10;if(0!==g.length){var n=g[0].querySelectorAll(".ui-grid-menu-mid");0===n.length||angular.element(n).hasClass("ng-hide")||(l=c.elementWidth(g,!0),a.lastMenuWidth=l,b.lastMenuWidth=l,m=parseInt(c.getStyles(angular.element(g)[0]).paddingRight,10),a.lastMenuPaddingRight=m,b.lastMenuPaddingRight=m)}var o=d.left+j-k+d.parentLeft+d.width-l+m;oc)d=b;else{if(c>a&&!d)return d=b,!0;if(c>a&&d)return!0}}),d){var g=d.getColClass();b.focus.bySelector(e,".ui-grid-header-cell."+g+" .ui-grid-header-cell-primary-focus",!0).then(angular.noop,function(a){return"canceled"!==a?c():void 0})}else c()})};f.hideColumn=function(){f.col.colDef.visible=!1,f.col.visible=!1,f.grid.queueGridRefresh(),f.hideMenu(),f.grid.api.core.notifyDataChange(c.dataChange.COLUMN),f.grid.api.core.raise.columnVisibilityChanged(f.col),j()}},controller:["$scope",function(a){var b=this;a.$watch("menuItems",function(a,c){b.menuItems=a})}]};return f}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFilter",["$compile","$templateCache","i18nService","gridUtil",function(a,b,c,d){return{compile:function(){return{pre:function(b,c,d,e){b.col.updateFilters=function(d){if(c.children().remove(),d){var e=b.col.filterHeaderTemplate;c.append(a(e)(b))}},b.$on("$destroy",function(){delete b.col.updateFilters})},post:function(a,b,e,f){a.aria=c.getSafeText("headerCell.aria"),a.removeFilter=function(a,c){a.term=null,d.focus.bySelector(b,".ui-grid-filter-input-"+c)}}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFooterCell",["$timeout","gridUtil","uiGridConstants","$compile",function(a,b,c,d){var e={priority:0,scope:{col:"=",row:"=",renderIndex:"="},replace:!0,require:"^uiGrid",compile:function(a,b,e){return{pre:function(a,b,c,e){var f=d(a.col.footerCellTemplate)(a);b.append(f)},post:function(a,b,d,e){a.grid=e.grid;var f=a.col.getColClass(!1);b.addClass(f);var g,h=function(c){var d=b;g&&(d.removeClass(g),g=null),g=angular.isFunction(a.col.footerCellClass)?a.col.footerCellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.footerCellClass,d.addClass(g)};a.col.footerCellClass&&h(),a.col.updateAggregationValue();var i=a.grid.registerDataChangeCallback(h,[c.dataChange.COLUMN]);a.grid.api.core.on.rowsRendered(a,a.col.updateAggregationValue), -a.grid.api.core.on.rowsRendered(a,h),a.$on("$destroy",i)}}}};return e}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFooter",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout",function(a,b,c,d,e){return{restrict:"EA",replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:!0,compile:function(a,c){return{pre:function(a,c,e,f){var g=f[0],h=f[1];a.grid=g.grid,a.colContainer=h.colContainer,h.footer=c;var i=a.grid.options.footerTemplate;d.getTemplate(i).then(function(d){var e=angular.element(d),f=b(e)(a);if(c.append(f),h){var g=c[0].getElementsByClassName("ui-grid-footer-viewport")[0];g&&(h.footerViewport=g)}})},post:function(a,b,c,e){var f=e[0],g=e[1];f.grid;d.disableAnimations(b),g.footer=b;var h=b[0].getElementsByClassName("ui-grid-footer-viewport")[0];h&&(g.footerViewport=h)}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridGridFooter",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout",function(a,b,c,d,e){return{restrict:"EA",replace:!0,require:"^uiGrid",scope:!0,compile:function(a,c){return{pre:function(a,c,e,f){a.grid=f.grid;var g=a.grid.options.gridFooterTemplate;d.getTemplate(g).then(function(d){var e=angular.element(d),f=b(e)(a);c.append(f)})},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridGroupPanel",["$compile","uiGridConstants","gridUtil",function(a,b,c){var d="ui-grid/ui-grid-group-panel";return{restrict:"EA",replace:!0,require:"?^uiGrid",scope:!1,compile:function(b,e){return{pre:function(b,e,f,g){var h=b.grid.options.groupPanelTemplate||d;c.getTemplate(h).then(function(c){var d=angular.element(c),f=a(d)(b);e.append(f)})},post:function(a,b,c,d){b.bind("$destroy",function(){})}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridHeaderCell",["$compile","$timeout","$window","$document","gridUtil","uiGridConstants","ScrollEvent","i18nService",function(a,b,c,d,e,f,g,h){var i=500,j=500,k={priority:0,scope:{col:"=",row:"=",renderIndex:"="},require:["^uiGrid","^uiGridRenderContainer"],replace:!0,compile:function(){return{pre:function(b,c,d){var e=a(b.col.headerCellTemplate)(b);c.append(e)},post:function(a,c,e,g){var k=g[0],l=g[1];a.i18n={headerCell:h.getSafeText("headerCell"),sort:h.getSafeText("sort")},a.isSortPriorityVisible=function(){return a.col.sort.priority&&a.grid.columns.some(function(b,c){return b.sort.priority&&b!==a.col})},a.getSortDirectionAriaLabel=function(){var b=a.col,c=b.sort.direction===f.ASC?a.i18n.sort.ascending:b.sort.direction===f.DESC?a.i18n.sort.descending:a.i18n.sort.none,d=c;return a.isSortPriorityVisible()&&(d=d+". "+a.i18n.headerCell.priority+" "+b.sort.priority),d},a.grid=k.grid,a.renderContainer=k.grid.renderContainers[l.containerId];var m=a.col.getColClass(!1);c.addClass(m),a.menuShown=!1,a.asc=f.ASC,a.desc=f.DESC;var n,o,p=(angular.element(c[0].querySelectorAll(".ui-grid-header-cell-menu")),angular.element(c[0].querySelectorAll(".ui-grid-cell-contents"))),q=[];a.downFn=function(e){e.stopPropagation(),"undefined"!=typeof e.originalEvent&&void 0!==e.originalEvent&&(e=e.originalEvent),e.button&&0!==e.button||(o=e.pageX,a.mousedownStartTime=(new Date).getTime(),a.mousedownTimeout=b(function(){},i),a.mousedownTimeout.then(function(){a.colMenu&&k.columnMenuScope.showMenu(a.col,c,e)}),k.fireEvent(f.events.COLUMN_HEADER_CLICK,{event:e,columnName:a.col.colDef.name}),a.offAllEvents(),"touchstart"===e.type?(d.on("touchend",a.upFn),d.on("touchmove",a.moveFn)):"mousedown"===e.type&&(d.on("mouseup",a.upFn),d.on("mousemove",a.moveFn)))},a.upFn=function(c){c.stopPropagation(),b.cancel(a.mousedownTimeout),a.offAllEvents(),a.onDownEvents(c.type);var d=(new Date).getTime(),e=d-a.mousedownStartTime;e>i||a.sortable&&a.handleClick(c)},a.moveFn=function(c){var d=c.pageX-o;0!==d&&(b.cancel(a.mousedownTimeout),a.offAllEvents(),a.onDownEvents(c.type))},a.clickFn=function(b){b.stopPropagation(),p.off("click",a.clickFn)},a.offAllEvents=function(){p.off("touchstart",a.downFn),p.off("mousedown",a.downFn),d.off("touchend",a.upFn),d.off("mouseup",a.upFn),d.off("touchmove",a.moveFn),d.off("mousemove",a.moveFn),p.off("click",a.clickFn)},a.onDownEvents=function(c){switch(c){case"touchmove":case"touchend":p.on("click",a.clickFn),p.on("touchstart",a.downFn),b(function(){p.on("mousedown",a.downFn)},j);break;case"mousemove":case"mouseup":p.on("click",a.clickFn),p.on("mousedown",a.downFn),b(function(){p.on("touchstart",a.downFn)},j);break;default:p.on("click",a.clickFn),p.on("touchstart",a.downFn),p.on("mousedown",a.downFn)}};var r=function(d){var e=c;n&&(e.removeClass(n),n=null),n=angular.isFunction(a.col.headerCellClass)?a.col.headerCellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.headerCellClass,e.addClass(n),b(function(){var b=a.grid.renderContainers.right?a.grid.renderContainers.right:a.grid.renderContainers.body;a.isLastCol=a.col===b.visibleColumnCache[b.visibleColumnCache.length-1]}),k.grid.options.enableSorting&&a.col.enableSorting?a.sortable=!0:a.sortable=!1;var g=a.filterable;k.grid.options.enableFiltering&&a.col.enableFiltering?a.filterable=!0:a.filterable=!1,g!==a.filterable&&("undefined"!=typeof a.col.updateFilters&&a.col.updateFilters(a.filterable),a.filterable?(a.col.filters.forEach(function(b,c){q.push(a.$watch("col.filters["+c+"].term",function(a,b){a!==b&&(k.grid.api.core.raise.filterChanged(),k.grid.api.core.notifyDataChange(f.dataChange.COLUMN),k.grid.queueGridRefresh())}))}),a.$on("$destroy",function(){q.forEach(function(a){a()})})):q.forEach(function(a){a()})),a.col.grid.options&&a.col.grid.options.enableColumnMenus!==!1&&a.col.colDef&&a.col.colDef.enableColumnMenu!==!1?a.colMenu=!0:a.colMenu=!1,a.offAllEvents(),(a.sortable||a.colMenu)&&(a.onDownEvents(),a.$on("$destroy",function(){a.offAllEvents()}))};r();var s=a.grid.registerDataChangeCallback(r,[f.dataChange.COLUMN]);a.$on("$destroy",s),a.handleClick=function(b){var c=!1;b.shiftKey&&(c=!0),k.grid.sortColumn(a.col,c).then(function(){k.columnMenuScope&&k.columnMenuScope.hideMenu(),k.grid.refresh()})},a.toggleMenu=function(b){b.stopPropagation(),k.columnMenuScope.menuShown&&k.columnMenuScope.col===a.col?k.columnMenuScope.hideMenu():k.columnMenuScope.showMenu(a.col,c)}}}}};return k}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridHeader",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout","ScrollEvent",function(a,b,c,d,e,f){var g="ui-grid/ui-grid-header",h="ui-grid/ui-grid-no-header";return{restrict:"EA",replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:!0,compile:function(a,c){return{pre:function(a,c,e,i){function j(){m.header=m.colContainer.header=c;var a=c[0].getElementsByClassName("ui-grid-header-canvas");a.length>0?m.headerCanvas=m.colContainer.headerCanvas=a[0]:m.headerCanvas=null}function k(a){if(!l.grid.isScrollingHorizontally){var b=d.normalizeScrollLeft(m.headerViewport,l.grid),c=m.colContainer.scrollHorizontal(b),e=new f(l.grid,null,m.colContainer,f.Sources.ViewPortScroll);e.newScrollLeft=b,c>-1&&(e.x={percentage:c}),l.grid.scrollContainers(null,e)}}var l=i[0],m=i[1];a.grid=l.grid,a.colContainer=m.colContainer,j();var n;n=a.grid.options.showHeader?a.grid.options.headerTemplate?a.grid.options.headerTemplate:g:h,d.getTemplate(n).then(function(d){var e=angular.element(d),f=b(e)(a);if(c.replaceWith(f),c=f,j(),m){var g=c[0].getElementsByClassName("ui-grid-header-viewport")[0];g&&(m.headerViewport=g,angular.element(g).on("scroll",k),a.$on("$destroy",function(){angular.element(g).off("scroll",k)}))}a.grid.queueRefresh()})},post:function(a,b,c,e){function f(){var a=h.colContainer.visibleColumnCache,b="",c=0;return a.forEach(function(a){b+=a.getColClassDefinition(),c+=a.drawnWidth}),h.colContainer.canvasWidth=c,b}var g=e[0],h=e[1];g.grid;d.disableAnimations(b),h.header=b;var i=b[0].getElementsByClassName("ui-grid-header-viewport")[0];i&&(h.headerViewport=i),g&&g.grid.registerStyleComputation({priority:15,func:f})}}}}}])}(),function(){angular.module("ui.grid").service("uiGridGridMenuService",["gridUtil","i18nService","uiGridConstants",function(a,b,c){var d={initialize:function(a,b){b.gridMenuScope=a,a.grid=b,a.registeredMenuItems=[],a.$on("$destroy",function(){a.grid&&a.grid.gridMenuScope&&(a.grid.gridMenuScope=null),a.grid&&(a.grid=null),a.registeredMenuItems&&(a.registeredMenuItems=null)}),a.registeredMenuItems=[],b.api.registerMethod("core","addToGridMenu",d.addToGridMenu),b.api.registerMethod("core","removeFromGridMenu",d.removeFromGridMenu)},addToGridMenu:function(b,c){angular.isArray(c)?b.gridMenuScope?(b.gridMenuScope.registeredMenuItems=b.gridMenuScope.registeredMenuItems?b.gridMenuScope.registeredMenuItems:[],b.gridMenuScope.registeredMenuItems=b.gridMenuScope.registeredMenuItems.concat(c)):a.logError("Asked to addToGridMenu, but gridMenuScope not present. Timing issue? Please log issue with ui-grid"):a.logError("addToGridMenu: menuItems must be an array, and is not, not adding any items")},removeFromGridMenu:function(b,c){var d=-1;b&&b.gridMenuScope&&b.gridMenuScope.registeredMenuItems.forEach(function(b,e){b.id===c&&(d>-1?a.logError("removeFromGridMenu: found multiple items with the same id, removing only the last"):d=e)}),d>-1&&b.gridMenuScope.registeredMenuItems.splice(d,1)},getMenuItems:function(c){var e=[];c.grid.options.gridMenuCustomItems&&(angular.isArray(c.grid.options.gridMenuCustomItems)?e=e.concat(c.grid.options.gridMenuCustomItems):a.logError("gridOptions.gridMenuCustomItems must be an array, and is not"));var f=[{title:b.getSafeText("gridMenu.clearAllFilters"),action:function(a){c.grid.clearAllFilters(void 0,!0,void 0)},shown:function(){return c.grid.options.enableFiltering},order:100}];return e=e.concat(f),e=e.concat(c.registeredMenuItems),c.grid.options.gridMenuShowHideColumns!==!1&&(e=e.concat(d.showHideColumns(c))),e.sort(function(a,b){return a.order-b.order}),e},showHideColumns:function(a){var c=[];return a.grid.options.columnDefs&&0!==a.grid.options.columnDefs.length&&0!==a.grid.columns.length?(c.push({title:b.getSafeText("gridMenu.columns"),order:300}),a.grid.options.gridMenuTitleFilter=a.grid.options.gridMenuTitleFilter?a.grid.options.gridMenuTitleFilter:function(a){return a},a.grid.options.columnDefs.forEach(function(b,e){if(b.enableHiding!==!1){var f={icon:"ui-grid-icon-ok",action:function(a){a.stopPropagation(),d.toggleColumnVisibility(this.context.gridCol)},shown:function(){return this.context.gridCol.colDef.visible===!0||void 0===this.context.gridCol.colDef.visible},context:{gridCol:a.grid.getColumn(b.name||b.field)},leaveOpen:!0,order:301+2*e};d.setMenuItemTitle(f,b,a.grid),c.push(f),f={icon:"ui-grid-icon-cancel",action:function(a){a.stopPropagation(),d.toggleColumnVisibility(this.context.gridCol)},shown:function(){return!(this.context.gridCol.colDef.visible===!0||void 0===this.context.gridCol.colDef.visible)},context:{gridCol:a.grid.getColumn(b.name||b.field)},leaveOpen:!0,order:301+2*e+1},d.setMenuItemTitle(f,b,a.grid),c.push(f)}}),c):c},setMenuItemTitle:function(b,c,d){var e=d.options.gridMenuTitleFilter(c.displayName||a.readableColumnName(c.name)||c.field);"string"==typeof e?b.title=e:e.then?(b.title="",e.then(function(a){b.title=a},function(a){b.title=a})):(a.logError("Expected gridMenuTitleFilter to return a string or a promise, it has returned neither, bad config"),b.title="badconfig")},toggleColumnVisibility:function(a){a.colDef.visible=!(a.colDef.visible===!0||void 0===a.colDef.visible),a.grid.refresh(),a.grid.api.core.notifyDataChange(c.dataChange.COLUMN),a.grid.api.core.raise.columnVisibilityChanged(a)}};return d}]).directive("uiGridMenuButton",["gridUtil","uiGridConstants","uiGridGridMenuService","i18nService",function(a,b,c,d){return{priority:0,scope:!0,require:["^uiGrid"],templateUrl:"ui-grid/ui-grid-menu-button",replace:!0,link:function(b,e,f,g){var h=g[0];b.i18n={aria:d.getSafeText("gridMenu.aria")},c.initialize(b,h.grid),b.shown=!1,b.toggleMenu=function(){b.shown?(b.$broadcast("hide-menu"),b.shown=!1):(b.menuItems=c.getMenuItems(b),b.$broadcast("show-menu"),b.shown=!0)},b.$on("menu-hidden",function(){b.shown=!1,a.focus.bySelector(e,".ui-grid-icon-container")})}}}])}(),function(){angular.module("ui.grid").directive("uiGridMenu",["$compile","$timeout","$window","$document","gridUtil","uiGridConstants","i18nService",function(a,b,c,d,e,f,g){var h={priority:0,scope:{menuItems:"=",autoHide:"=?"},require:"?^uiGrid",templateUrl:"ui-grid/uiGridMenu",replace:!1,link:function(a,d,h,i){var j;a.dynamicStyles="",i&&(j=i.grid.gridHeight-30,a.dynamicStyles=[".grid"+i.grid.id+" .ui-grid-menu-mid {","max-height: "+j+"px;","}"].join(" ")),a.i18n={close:g.getSafeText("columnMenu.close")},a.showMenu=function(c,f){a.shown?a.shownMid||(a.shownMid=!0,a.$emit("menu-shown")):(a.shown=!0,b(function(){a.shownMid=!0,a.$emit("menu-shown")}));var g="click";f&&f.originalEvent&&f.originalEvent.type&&"touchstart"===f.originalEvent.type&&(g=f.originalEvent.type),angular.element(document).off("click touchstart",k),b(function(){angular.element(document).on(g,k)}),e.focus.bySelector(d,"button[type=button]",!0)},a.hideMenu=function(c,d){a.shown&&(a.shownMid=!1,b(function(){a.shownMid||(a.shown=!1,a.$emit("menu-hidden"))},200)),angular.element(document).off("click touchstart",k)},a.$on("hide-menu",function(b,c){a.hideMenu(b,c)}),a.$on("show-menu",function(b,c){a.showMenu(b,c)});var k=function(){a.shown&&a.$apply(function(){a.hideMenu()})};"undefined"!=typeof a.autoHide&&void 0!==a.autoHide||(a.autoHide=!0),a.autoHide&&angular.element(c).on("resize",k),a.$on("$destroy",function(){angular.element(document).off("click touchstart",k)}),a.$on("$destroy",function(){angular.element(c).off("resize",k)}),i&&a.$on("$destroy",i.grid.api.core.on.scrollBegin(a,k)),a.$on("$destroy",a.$on(f.events.ITEM_DRAGGING,k))},controller:["$scope","$element","$attrs",function(a,b,c){}]};return h}]).directive("uiGridMenuItem",["gridUtil","$compile","i18nService",function(a,b,c){var d={priority:0,scope:{name:"=",active:"=",action:"=",icon:"=",shown:"=",context:"=",templateUrl:"=",leaveOpen:"=",screenReaderOnly:"="},require:["?^uiGrid","^uiGridMenu"],templateUrl:"ui-grid/uiGridMenuItem",replace:!1,compile:function(d,e){return{pre:function(c,d,e,f){f[0],f[1];c.templateUrl&&a.getTemplate(c.templateUrl).then(function(a){var e=angular.element(a),f=b(e)(c);d.replaceWith(f)})},post:function(b,d,e,f){var g=f[0];f[1];"undefined"!=typeof b.shown&&null!==b.shown||(b.shown=function(){return!0}),b.itemShown=function(){var a={};return b.context&&(a.context=b.context),"undefined"!=typeof g&&g&&(a.grid=g.grid),b.shown.call(a)},b.itemAction=function(c,e){if(a.logDebug("itemAction"),c.stopPropagation(),"function"==typeof b.action){var f={};b.context&&(f.context=b.context),"undefined"!=typeof g&&g&&(f.grid=g.grid),b.action.call(f,c,e),b.leaveOpen?a.focus.bySelector(angular.element(a.closestElm(d,".ui-grid-menu-items")),"button[type=button]",!0):b.$emit("hide-menu")}},b.i18n=c.get()}}}};return d}])}(),function(){"use strict";var a=angular.module("ui.grid");angular.forEach([{tag:"Src",method:"attr"},{tag:"Text",method:"text"},{tag:"Href",method:"attr"},{tag:"Class",method:"addClass"},{tag:"Html",method:"html"},{tag:"Alt",method:"attr"},{tag:"Style",method:"css"},{tag:"Value",method:"attr"},{tag:"Id",method:"attr"},{tag:"Id",directiveName:"IdGrid",method:"attr",appendGridId:!0},{tag:"Title",method:"attr"},{tag:"Label",method:"attr",aria:!0},{tag:"Labelledby",method:"attr",aria:!0},{tag:"Labelledby",directiveName:"LabelledbyGrid",appendGridId:!0,method:"attr",aria:!0},{tag:"Describedby",method:"attr",aria:!0},{tag:"Describedby",directiveName:"DescribedbyGrid",appendGridId:!0,method:"attr",aria:!0}],function(b){var c="uiGridOneBind",d=(b.aria?c+"Aria":c)+(b.directiveName?b.directiveName:b.tag);a.directive(d,["gridUtil",function(a){return{restrict:"A",require:["?uiGrid","?^uiGrid"],link:function(c,e,f,g){var h=function(b){var e;if(c.grid)e=c.grid;else if(c.col&&c.col.grid)e=c.col.grid;else if(!g.some(function(a){return a&&a.grid?(e=a.grid,!0):void 0}))throw a.logError("["+d+"] A valid grid could not be found to bind id. Are you using this directive within the correct scope? Trying to generate id: [gridID]-"+b),new Error("No valid grid could be found");if(e){var f=new RegExp(e.id.toString());f.test(b)||(b=e.id.toString()+"-"+b)}return b},i=c.$watch(f[d],function(a){if(a){if(b.appendGridId){var c=null;angular.forEach(a.split(" "),function(a){c=(c?c+" ":"")+h(a)}),a=c}switch(b.method){case"attr":b.aria?e[b.method]("aria-"+b.tag.toLowerCase(),a):e[b.method](b.tag.toLowerCase(),a);break;case"addClass":if(angular.isObject(a)&&!angular.isArray(a)){var d=[],f=!1;if(angular.forEach(a,function(a,b){null!==a&&"undefined"!=typeof a&&(f=!0,a&&d.push(b))}),!f)return;a=d}if(!a)return;e.addClass(angular.isArray(a)?a.join(" "):a);break;default:e[b.method](a)}i()}},!0)}}}])})}(),function(){"use strict";var a=angular.module("ui.grid");a.directive("uiGridRenderContainer",["$timeout","$document","uiGridConstants","gridUtil","ScrollEvent",function(a,b,c,d,e){return{replace:!0,transclude:!0,templateUrl:"ui-grid/uiGridRenderContainer",require:["^uiGrid","uiGridRenderContainer"],scope:{containerId:"=",rowContainerName:"=",colContainerName:"=",bindScrollHorizontal:"=",bindScrollVertical:"=",enableVerticalScrollbar:"=",enableHorizontalScrollbar:"="},controller:"uiGridRenderContainer as RenderContainer",compile:function(){return{pre:function(a,b,c,d){var e=d[0],f=d[1],g=a.grid=e.grid;if(!a.rowContainerName)throw"No row render container name specified";if(!a.colContainerName)throw"No column render container name specified";if(!g.renderContainers[a.rowContainerName])throw"Row render container '"+a.rowContainerName+"' is not registered.";if(!g.renderContainers[a.colContainerName])throw"Column render container '"+a.colContainerName+"' is not registered.";var h=a.rowContainer=g.renderContainers[a.rowContainerName],i=a.colContainer=g.renderContainers[a.colContainerName];f.containerId=a.containerId,f.rowContainer=h,f.colContainer=i},post:function(a,b,c,f){function g(){var b="",c=l.canvasWidth,d=l.getViewportWidth(),e=k.getCanvasHeight(),f=k.getViewportHeight();l.needsHScrollbarPlaceholder()&&(f-=j.scrollbarHeight);var g,i;return g=i=l.getHeaderViewportWidth(),b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-canvas { width: "+c+"px; height: "+e+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-canvas { width: "+(c+j.scrollbarWidth)+"px; }",b+=o.explicitHeaderCanvasHeight?"\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-canvas { height: "+o.explicitHeaderCanvasHeight+"px; }":"\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-canvas { height: inherit; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-viewport { width: "+d+"px; height: "+f+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-viewport { width: "+g+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-footer-canvas { width: "+(c+j.scrollbarWidth)+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-footer-viewport { width: "+i+"px; }"}var h=f[0],i=f[1],j=h.grid,k=i.rowContainer,l=i.colContainer,m=null,n=null,o=j.renderContainers[a.containerId];b.addClass("ui-grid-render-container-"+a.containerId),d.on.mousewheel(b,function(a){var b=new e(j,k,l,e.Sources.RenderContainerMouseWheel);if(0!==a.deltaY){var c=-1*a.deltaY*a.deltaFactor;m=i.viewport[0].scrollTop,b.verticalScrollLength=k.getVerticalScrollLength();var f=(m+c)/b.verticalScrollLength;f>=1&&mf?f=0:f>1&&(f=1),b.y={percentage:f,pixels:c}}if(0!==a.deltaX){var g=a.deltaX*a.deltaFactor;n=d.normalizeScrollLeft(i.viewport,j),b.horizontalScrollLength=l.getCanvasWidth()-l.getViewportWidth();var h=(n+g)/b.horizontalScrollLength;0>h?h=0:h>1&&(h=1),b.x={percentage:h,pixels:g}}0!==a.deltaY&&(b.atTop(m)||b.atBottom(m))||0!==a.deltaX&&(b.atLeft(n)||b.atRight(n))||(a.preventDefault(),a.stopPropagation(),b.fireThrottledScrollingEvent("",b))}),b.bind("$destroy",function(){b.unbind("keydown"),["touchstart","touchmove","touchend","keydown","wheel","mousewheel","DomMouseScroll","MozMousePixelScroll"].forEach(function(a){b.unbind(a)})}),h.grid.registerStyleComputation({priority:6,func:g})}}}}}]),a.controller("uiGridRenderContainer",["$scope","gridUtil",function(a,b){}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridRow",["gridUtil",function(a){return{replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:{row:"=uiGridRow",rowRenderIndex:"="},compile:function(){return{pre:function(a,b,c,d){function e(){a.row.getRowTemplateFn.then(function(c){var d=a.$new();c(d,function(a,c){h&&(h.remove(),i.$destroy()),b.empty().append(a),h=a,i=d})})}var f=d[0],g=d[1];f.grid;a.grid=f.grid,a.colContainer=g.colContainer;var h,i;e(),a.$watch("row.getRowTemplateFn",function(a,b){a!==b&&e()})},post:function(a,b,c,d){}}}}}])}(),function(){angular.module("ui.grid").directive("uiGridStyle",["gridUtil","$interpolate",function(a,b){return{link:function(a,c,d,e){var f=b(c.text(),!0);f&&a.$watch(f,function(a){c.text(a)})}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridViewport",["gridUtil","ScrollEvent","uiGridConstants","$log",function(a,b,c,d){return{replace:!0,scope:{},controllerAs:"Viewport",templateUrl:"ui-grid/uiGridViewport",require:["^uiGrid","^uiGridRenderContainer"],link:function(c,d,e,f){function g(e){var f=d[0].scrollTop,g=a.normalizeScrollLeft(d,p),h=n.scrollVertical(f),i=o.scrollHorizontal(g),j=new b(p,n,o,b.Sources.ViewPortScroll);j.newScrollLeft=g,j.newScrollTop=f,i>-1&&(j.x={percentage:i}),h>-1&&(j.y={percentage:h}),p.scrollContainers(c.$parent.containerId,j)}function h(a){m.prevScrollArgs=a;var b=a.getNewScrollTop(n,m.viewport);d[0].scrollTop=b}function i(b){m.prevScrollArgs=b;var c=b.getNewScrollLeft(o,m.viewport);d[0].scrollLeft=a.denormalizeScrollLeft(m.viewport,c,p)}function j(b){var c=b.getNewScrollLeft(o,m.viewport);m.headerViewport&&(m.headerViewport.scrollLeft=a.denormalizeScrollLeft(m.viewport,c,p))}function k(b){var c=b.getNewScrollLeft(o,m.viewport);m.footerViewport&&(m.footerViewport.scrollLeft=a.denormalizeScrollLeft(m.viewport,c,p))}var l=f[0],m=f[1];c.containerCtrl=m;var n=m.rowContainer,o=m.colContainer,p=l.grid;c.grid=l.grid,c.rowContainer=m.rowContainer,c.colContainer=m.colContainer,m.viewport=d,d.on("scroll",g);c.$parent.bindScrollVertical&&p.addVerticalScrollSync(c.$parent.containerId,h),c.$parent.bindScrollHorizontal&&(p.addHorizontalScrollSync(c.$parent.containerId,i),p.addHorizontalScrollSync(c.$parent.containerId+"header",j),p.addHorizontalScrollSync(c.$parent.containerId+"footer",k))},controller:["$scope",function(a){this.rowStyle=function(b){var c=a.rowContainer,d=a.colContainer,e={};if(0===b&&0!==c.currentTopRow){var f=c.currentTopRow*c.grid.options.rowHeight;e["margin-top"]=f+"px"}return 0!==d.currentFirstColumn&&(d.grid.isRTL()?e["margin-right"]=d.columnOffset+"px":e["margin-left"]=d.columnOffset+"px"),e}}]}}])}(),function(){angular.module("ui.grid").directive("uiGridVisible",function(){return function(a,b,c){a.$watch(c.uiGridVisible,function(a){b[a?"removeClass":"addClass"]("ui-grid-invisible")})}})}(),function(){"use strict";function a(a,b,c,d,e,f){return{templateUrl:"ui-grid/ui-grid",scope:{uiGrid:"="},replace:!0,transclude:!0,controller:"uiGridController",compile:function(){return{post:function(a,b,g,h){function i(){b[0].offsetWidth<=0&&p>q?(setTimeout(i,o),q++):c(k)}function j(){angular.element(d).on("resize",m),b.on("$destroy",function(){angular.element(d).off("resize",m)}),a.$watch(function(){return n.hasLeftContainer()},function(a,b){a!==b&&n.refreshCanvas(!0)}),a.$watch(function(){return n.hasRightContainer()},function(a,b){a!==b&&n.refreshCanvas(!0)})}function k(){n.gridWidth=a.gridWidth=e.elementWidth(b),n.canvasWidth=h.grid.gridWidth,n.gridHeight=a.gridHeight=e.elementHeight(b),n.gridHeight<=n.options.rowHeight&&n.options.enableMinHeightCheck&&l(),n.refreshCanvas(!0)}function l(){var c=n.options.minRowsToShow*n.options.rowHeight,d=n.options.showHeader?n.options.headerRowHeight:0,g=n.calcFooterHeight(),h=0;n.options.enableHorizontalScrollbar===f.scrollbars.ALWAYS&&(h=e.getScrollbarWidth());var i=0;if(angular.forEach(n.options.columnDefs,function(a){a.hasOwnProperty("filter")?1>i&&(i=1):a.hasOwnProperty("filters")&&i(n.grid.rowHeaderColumns?n.grid.rowHeaderColumns.length:0);!g&&!c.uiGridColumns&&0===n.grid.options.columnDefs.length&&b.length>0&&n.grid.buildColumnDefsFromData(b),!g&&(n.grid.options.columnDefs.length>0||b.length>0)&&d.push(n.grid.buildColumns().then(function(){n.grid.preCompileCellTemplates()})),e.all(d).then(function(){n.grid.modifyRows(p).then(function(){n.grid.redrawInPlace(!0),a.$evalAsync(function(){n.grid.refreshCanvas(!0),n.grid.callDataChangeCallbacks(f.dataChange.ROW)})})})}}var n=this;n.grid=h.createGrid(a.uiGrid),n.grid.appScope=n.grid.appScope||a.$parent,b.addClass("grid"+n.grid.id),n.grid.rtl="rtl"===d.getStyles(b[0]).direction,a.grid=n.grid,c.uiGridColumns&&c.$observe("uiGridColumns",function(a){n.grid.options.columnDefs=a,n.grid.buildColumns().then(function(){n.grid.preCompileCellTemplates(),n.grid.refreshCanvas(!0)})});var o=[];n.grid.options.fastWatch?(n.uiGrid=a.uiGrid,angular.isString(a.uiGrid.data)?(o.push(a.$parent.$watch(a.uiGrid.data,m)),o.push(a.$parent.$watch(function(){return n.grid.appScope[a.uiGrid.data]?n.grid.appScope[a.uiGrid.data].length:void 0},m))):(o.push(a.$parent.$watch(function(){return a.uiGrid.data},m)),o.push(a.$parent.$watch(function(){return a.uiGrid.data.length},m))),o.push(a.$parent.$watch(function(){return a.uiGrid.columnDefs},l)),o.push(a.$parent.$watch(function(){return a.uiGrid.columnDefs.length},l))):(angular.isString(a.uiGrid.data)?o.push(a.$parent.$watchCollection(a.uiGrid.data,m)):o.push(a.$parent.$watchCollection(function(){return a.uiGrid.data},m)),o.push(a.$parent.$watchCollection(function(){return a.uiGrid.columnDefs},l)));var p,q=a.$watch(function(){return n.grid.styleComputations},function(){n.grid.refreshCanvas(!0)});a.$on("$destroy",function(){o.forEach(function(a){a()}),q()}),n.fireEvent=function(b,c){"undefined"!=typeof c&&void 0!==c||(c={}),"undefined"!=typeof c.grid&&void 0!==c.grid||(c.grid=n.grid),a.$broadcast(b,c)},n.innerCompile=function(b){k(b)(a)}}]),angular.module("ui.grid").directive("uiGrid",a),a.$inject=["$compile","$templateCache","$timeout","$window","gridUtil","uiGridConstants"]}(),function(){"use strict";angular.module("ui.grid").directive("uiGridPinnedContainer",["gridUtil",function(a){return{restrict:"EA",replace:!0,template:'
        ',scope:{side:"=uiGridPinnedContainer"},require:"^uiGrid",compile:function(){return{post:function(a,b,c,d){function e(){var a=this,b=0;a.visibleColumnCache.forEach(function(a){b+=a.drawnWidth});var c=a.getViewportAdjustment();return b+=c.width}function f(){if("left"===a.side||"right"===a.side){for(var b=h.renderContainers[a.side].visibleColumnCache,c=0,d=0;d0?b[0]:null},p.prototype.getColDef=function(a){var b=this.options.columnDefs.filter(function(b){return b.name===a});return b.length>0?b[0]:null},p.prototype.assignTypes=function(){var a=this;a.options.columnDefs.forEach(function(b,c){if(!b.type){var e=new g(b,c,a),f=a.rows.length>0?a.rows[0]:null;f?b.type=d.guessType(a.getCellValue(f,e)):b.type="string"}})},p.prototype.isRowHeaderColumn=function(a){return-1!==this.rowHeaderColumns.indexOf(a)},p.prototype.addRowHeaderColumn=function(a){var b=this,c=new g(a,d.nextUid(),b);c.isRowHeader=!0,b.isRTL()?(b.createRightContainer(),c.renderContainer="right"):(b.createLeftContainer(),c.renderContainer="left"),b.columnBuilders[0](a,c,b.options).then(function(){c.enableFiltering=!1,c.enableSorting=!1,c.enableHiding=!1,b.rowHeaderColumns.push(c),b.buildColumns().then(function(){b.preCompileCellTemplates(),b.queueGridRefresh()})})},p.prototype.getOnlyDataColumns=function(){var a=this,b=[];return a.columns.forEach(function(c){-1===a.rowHeaderColumns.indexOf(c)&&b.push(c)}),b},p.prototype.buildColumns=function(b){var c={orderByColumnDefs:!1};angular.extend(c,b);var e,f=this,h=[],i=f.rowHeaderColumns.length;for(e=0;ee;e++)f.columns[e+i].name!==f.options.columnDefs[e].name?j[e+i]=f.getColumn(f.options.columnDefs[e].name):j[e+i]=f.columns[e+i];f.columns.length=0,Array.prototype.splice.apply(f.columns,[0,0].concat(j))}return a.all(h).then(function(){f.rows.length>0&&f.assignTypes()})},p.prototype.preCompileCellTemplates=function(){var a=this,c=function(c){var d=c.cellTemplate.replace(e.MODEL_COL_FIELD,a.getQualifiedColField(c));d=d.replace(e.COL_FIELD,"grid.getCellValue(row, col)");var f=b(d);c.compiledElementFn=f,c.compiledElementFnDefer&&c.compiledElementFnDefer.resolve(c.compiledElementFn)};this.columns.forEach(function(a){a.cellTemplate?c(a):a.cellTemplatePromise&&a.cellTemplatePromise.then(function(){c(a)})})},p.prototype.getQualifiedColField=function(a){return"row.entity."+d.preEval(a.field)},p.prototype.createLeftContainer=function(){this.hasLeftContainer()||(this.renderContainers.left=new l("left",this,{disableColumnOffset:!0}))},p.prototype.createRightContainer=function(){this.hasRightContainer()||(this.renderContainers.right=new l("right",this,{disableColumnOffset:!0}))},p.prototype.hasLeftContainer=function(){return void 0!==this.renderContainers.left},p.prototype.hasRightContainer=function(){return void 0!==this.renderContainers.right},p.prototype.preprocessColDef=function(a){var b=this;if(!a.field&&!a.name)throw new Error("colDef.name or colDef.field property is required");if(void 0===a.name&&void 0!==a.field){for(var c=a.field,d=2;b.getColumn(c);)c=a.field+d.toString(),d++;a.name=c}},p.prototype.newInN=function(a,b,c,d){for(var e=this,f=[],g=0;g0?d[0]:null},p.prototype.modifyRows=function(b){var c=this,d=c.rows.slice(0),e=c.rowHashMap||c.createRowHashMap();c.rowHashMap=c.createRowHashMap(),c.rows.length=0,b.forEach(function(a,b){var f;f=c.options.enableRowHashing?e.get(a):c.getRow(a,d),f||(f=c.processRowBuilders(new h(a,b,c))),c.rows.push(f),c.rowHashMap.put(a,f)}),c.assignTypes();var f=a.when(c.processRowsProcessors(c.rows)).then(function(a){return c.setVisibleRows(a)}),g=a.when(c.processColumnsProcessors(c.columns)).then(function(a){return c.setVisibleColumns(a)});return a.all([f,g])},p.prototype.addRows=function(a){for(var b=this,c=b.rows.length,d=0;dd)d+=e.drawnWidth,c++;else{for(var g=0,h=f;h>=f-c;h--)g+=a.columns[h].drawnWidth;b>g&&c++}}),c},p.prototype.getBodyHeight=function(){var a=this.getViewportHeight();return a},p.prototype.getViewportHeight=function(){var a=this,b=this.gridHeight-this.headerHeight-this.footerHeight,c=a.getViewportAdjustment();return b+=c.height},p.prototype.getViewportWidth=function(){var a=this,b=this.gridWidth,c=a.getViewportAdjustment();return b+=c.width},p.prototype.getHeaderViewportWidth=function(){var a=this.getViewportWidth();return a},p.prototype.addVerticalScrollSync=function(a,b){this.verticalScrollSyncCallBackFns[a]=b},p.prototype.addHorizontalScrollSync=function(a,b){this.horizontalScrollSyncCallBackFns[a]=b},p.prototype.scrollContainers=function(a,b){if(b.y){var c=["body","left","right"];this.flagScrollingVertically(b),"body"===a?c=["left","right"]:"left"===a?c=["body","right"]:"right"===a&&(c=["body","left"]);for(var d=0;db&&(b=a.sort.priority)}),b+1},p.prototype.resetColumnSorting=function(a){var b=this;b.columns.forEach(function(b){b===a||b.suppressRemoveSort||(b.sort={})})},p.prototype.getColumnSorting=function(){var a,b=this,c=[];return a=b.columns.slice(0),a.sort(j.prioritySort).forEach(function(a){a.sort&&"undefined"!=typeof a.sort.direction&&a.sort.direction&&(a.sort.direction===e.ASC||a.sort.direction===e.DESC)&&c.push(a)}),c},p.prototype.sortColumn=function(b,c,d){var e=this,f=null;if("undefined"==typeof b||!b)throw new Error("No column parameter provided");if("boolean"==typeof c?d=c:f=c,d?b.sort.priority||(b.sort.priority=e.getNextColumnSortPriority()):(e.resetColumnSorting(b),b.sort.priority=0,b.sort.priority=e.getNextColumnSortPriority()),f)b.sort.direction=f;else{var g=b.sortDirectionCycle.indexOf(b.sort.direction?b.sort.direction:null);g=(g+1)%b.sortDirectionCycle.length,b.colDef&&b.suppressRemoveSort&&!b.sortDirectionCycle[g]&&(g=(g+1)%b.sortDirectionCycle.length),b.sortDirectionCycle[g]?b.sort.direction=b.sortDirectionCycle[g]:b.sort={}}return e.api.core.raise.sortChanged(e,e.getColumnSorting()),a.when(b)},p.prototype.renderingComplete=function(){angular.isFunction(this.options.onRegisterApi)&&this.options.onRegisterApi(this.api),this.api.core.raise.renderingComplete(this.api)},p.prototype.createRowHashMap=function(){var a=this,b=new o;return b.grid=a,b},p.prototype.refresh=function(b){var c=this,d=c.processRowsProcessors(c.rows).then(function(a){c.setVisibleRows(a)}),e=c.processColumnsProcessors(c.columns).then(function(a){c.setVisibleColumns(a)});return a.all([d,e]).then(function(){c.redrawInPlace(b),c.refreshCanvas(!0)})},p.prototype.refreshRows=function(){var a=this;return a.processRowsProcessors(a.rows).then(function(b){a.setVisibleRows(b),a.redrawInPlace(),a.refreshCanvas(!0)})},p.prototype.refreshCanvas=function(b){var c=this;b&&c.buildStyles();var e=a.defer(),f=[];for(var g in c.renderContainers)if(c.renderContainers.hasOwnProperty(g)){var h=c.renderContainers[g];if(null===h.canvasWidth||isNaN(h.canvasWidth))continue;(h.header||h.headerCanvas)&&(h.explicitHeaderHeight=h.explicitHeaderHeight||null,h.explicitHeaderCanvasHeight=h.explicitHeaderCanvasHeight||null,f.push(h))}return f.length>0?(b&&c.buildStyles(),m(function(){var a,g,h=!1,i=0,j=0,k=function(a,b){return a!==b&&(h=!0),b};for(a=0;ao?0:o,g.innerHeaderHeight=o,!g.explicitHeaderHeight&&o>i&&(i=o)}if(g.headerCanvas){var p=g.headerCanvasHeight=k(g.headerCanvasHeight,parseInt(d.outerElementHeight(g.headerCanvas),10));!g.explicitHeaderCanvasHeight&&p>j&&(j=p)}}for(a=0;a0&&"undefined"!=typeof g.headerHeight&&null!==g.headerHeight&&(g.explicitHeaderHeight||g.headerHeight0&&"undefined"!=typeof g.headerCanvasHeight&&null!==g.headerCanvasHeight&&(g.explicitHeaderCanvasHeight||g.headerCanvasHeight0},p.prototype.hasRightContainerColumns=function(){return this.hasRightContainer()&&this.renderContainers.right.renderedColumns.length>0},p.prototype.scrollToIfNecessary=function(b,c){var d=this,e=new n(d,"uiGrid.scrollToIfNecessary"),f=d.renderContainers.body.visibleRowCache,g=d.renderContainers.body.visibleColumnCache,h=d.renderContainers.body.prevScrollTop+d.headerHeight;h=0>h?0:h;var i=d.renderContainers.body.prevScrollLeft,j=d.renderContainers.body.prevScrollTop+d.gridHeight-d.renderContainers.body.headerHeight-d.footerHeight-d.scrollbarWidth,k=d.renderContainers.body.prevScrollLeft+Math.ceil(d.renderContainers.body.getViewportWidth());if(null!==b){var l=f.indexOf(b),m=d.renderContainers.body.getCanvasHeight()-d.renderContainers.body.getViewportHeight(),o=l*d.options.rowHeight+d.headerHeight;o=0>o?0:o;var p,q;h>o?(p=d.renderContainers.body.prevScrollTop-(h-o),q=p/m,e.y={percentage:q}):o>j&&(p=o-j+d.renderContainers.body.prevScrollTop,q=p/m,e.y={percentage:q})}if(null!==c){for(var r=g.indexOf(c),s=d.renderContainers.body.getCanvasWidth()-d.renderContainers.body.getViewportWidth(),t=0,u=0;r>u;u++){var v=g[u];t+=v.drawnWidth}t=0>t?0:t;var w=t+c.drawnWidth;w=0>w?0:w;var x,y;i>t?(x=d.renderContainers.body.prevScrollLeft-(i-t),y=x/s,y=y>1?1:y,e.x={percentage:y}):w>k&&(x=w-k+d.renderContainers.body.prevScrollLeft,y=x/s,y=y>1?1:y,e.x={percentage:y})}var z=a.defer();if(e.y||e.x){e.withDelay=!1,d.scrollContainers("",e);var A=d.api.core.on.scrollEnd(null,function(){z.resolve(e),A()})}else z.resolve();return z.promise},p.prototype.scrollTo=function(a,b){var c=null,d=null;return null!==a&&"undefined"!=typeof a&&(c=this.getRow(a)),null!==b&&"undefined"!=typeof b&&(d=this.getColumn(b.name?b.name:b.field)),this.scrollToIfNecessary(c,d)},p.prototype.clearAllFilters=function(a,b,c){return void 0===a&&(a=!0),void 0===b&&(b=!1),void 0===c&&(c=!1),this.columns.forEach(function(a){a.filters.forEach(function(a){a.term=void 0,b&&(a.condition=void 0),c&&(a.flags=void 0)})}),a?this.refreshRows():void 0},o.prototype={put:function(a,b){this[this.grid.options.rowIdentity(a)]=b},get:function(a){return this[this.grid.options.rowIdentity(a)]},remove:function(a){var b=this[a=this.grid.options.rowIdentity(a)];return delete this[a],b}},p}])}(),function(){angular.module("ui.grid").factory("GridApi",["$q","$rootScope","gridUtil","uiGridConstants","GridRow","uiGridGridMenuService",function(a,b,c,d,e,f){function g(a,c,d,e){return b.$on(a,function(a){var b=Array.prototype.slice.call(arguments);b.splice(0,1),c.apply(e?e:d.api,b)})}var h=function(a){this.grid=a,this.listeners=[],this.registerEvent("core","renderingComplete"),this.registerEvent("core","filterChanged"),this.registerMethod("core","setRowInvisible",e.prototype.setRowInvisible),this.registerMethod("core","clearRowInvisible",e.prototype.clearRowInvisible),this.registerMethod("core","getVisibleRows",this.grid.getVisibleRows),this.registerEvent("core","rowsVisibleChanged"),this.registerEvent("core","rowsRendered"),this.registerEvent("core","scrollBegin"),this.registerEvent("core","scrollEnd"),this.registerEvent("core","canvasHeightChanged")};return h.prototype.suppressEvents=function(a,b){var c=this,d=angular.isArray(a)?a:[a],e=c.listeners.filter(function(a){return d.some(function(b){return a.handler===b})});e.forEach(function(a){a.dereg()}),b(),e.forEach(function(a){a.dereg=g(a.eventId,a.handler,c.grid,a._this)})},h.prototype.registerEvent=function(a,d){var e=this;e[a]||(e[a]={});var f=e[a];f.on||(f.on={},f.raise={});var h=e.grid.id+a+d;f.raise[d]=function(){b.$emit.apply(b,[h].concat(Array.prototype.slice.call(arguments)))},f.on[d]=function(b,f,i){if(null!==b&&"undefined"==typeof b.$on)return void c.logError("asked to listen on "+a+".on."+d+" but scope wasn't passed in the input parameters. It is legitimate to pass null, but you've passed something else, so you probably forgot to provide scope rather than did it deliberately, not registering");var j=g(h,f,e.grid,i),k={handler:f,dereg:j,eventId:h,scope:b,_this:i};e.listeners.push(k);var l=function(){k.dereg();var a=e.listeners.indexOf(k);e.listeners.splice(a,1)};return b&&b.$on("$destroy",function(){l()}),l}},h.prototype.registerEventsFromObject=function(a){var b=this,c=[];angular.forEach(a,function(a,b){var d={name:b,events:[]};angular.forEach(a,function(a,b){d.events.push(b)}),c.push(d)}),c.forEach(function(a){a.events.forEach(function(c){b.registerEvent(a.name,c)})})},h.prototype.registerMethod=function(a,b,d,e){this[a]||(this[a]={});var f=this[a];f[b]=c.createBoundedWrapper(e||this.grid,d)},h.prototype.registerMethodsFromObject=function(a,b){var c=this,d=[];angular.forEach(a,function(a,b){var c={name:b,methods:[]};angular.forEach(a,function(a,b){c.methods.push({name:b,fn:a})}),d.push(c)}),d.forEach(function(a){a.methods.forEach(function(d){c.registerMethod(a.name,d.name,d.fn,b)})})},h}])}(),function(){angular.module("ui.grid").factory("GridColumn",["gridUtil","uiGridConstants","i18nService",function(a,b,c){function d(a,c,d){var e=this;e.grid=d,e.uid=c,e.updateColumnDef(a,!0),e.aggregationValue=void 0,e.updateAggregationValue=function(){if(!e.aggregationType)return void(e.aggregationValue=void 0);var a=0,c=e.grid.getVisibleRows(),d=function(){var a=[];return c.forEach(function(b){var c=e.grid.getCellValue(b,e),d=Number(c);isNaN(d)||a.push(d)}),a};angular.isFunction(e.aggregationType)?e.aggregationValue=e.aggregationType(c,e):e.aggregationType===b.aggregationTypes.count?e.aggregationValue=e.grid.getVisibleRowCount():e.aggregationType===b.aggregationTypes.sum?(d().forEach(function(b){a+=b}),e.aggregationValue=a):e.aggregationType===b.aggregationTypes.avg?(d().forEach(function(b){a+=b}),a/=d().length,e.aggregationValue=a):e.aggregationType===b.aggregationTypes.min?e.aggregationValue=Math.min.apply(null,d()):e.aggregationType===b.aggregationTypes.max?e.aggregationValue=Math.max.apply(null,d()):e.aggregationValue=" "},this.getAggregationValue=function(){return e.aggregationValue}}return d.prototype.hideColumn=function(){this.colDef.visible=!1},d.prototype.setPropertyOrDefault=function(a,b,c){var d=this;"undefined"!=typeof a[b]&&a[b]?d[b]=a[b]:"undefined"!=typeof d[b]?d[b]=d[b]:d[b]=c?c:{}},d.prototype.updateColumnDef=function(c,d){var e=this;if(e.colDef=c,void 0===c.name)throw new Error("colDef.name is required for column at index "+e.grid.options.columnDefs.indexOf(c));if(e.displayName=void 0===c.displayName?a.readableColumnName(c.name):c.displayName,!angular.isNumber(e.width)||!e.hasCustomWidth||c.allowCustomWidthOverride){var f=c.width,g="Cannot parse column width '"+f+"' for column named '"+c.name+"'";if(e.hasCustomWidth=!1,angular.isString(f)||angular.isNumber(f))if(angular.isString(f))if(a.endsWith(f,"%")){var h=f.replace(/%/g,""),i=parseInt(h,10);if(isNaN(i))throw new Error(g);e.width=f}else if(f.match(/^(\d+)$/))e.width=parseInt(f.match(/^(\d+)$/)[1],10);else{if(!f.match(/^\*+$/))throw new Error(g);e.width=f}else e.width=f;else e.width="*"}["minWidth","maxWidth"].forEach(function(a){var b=c[a],d="Cannot parse column "+a+" '"+b+"' for column named '"+c.name+"'";if(angular.isString(b)||angular.isNumber(b))if(angular.isString(b)){if(!b.match(/^(\d+)$/))throw new Error(d);e[a]=parseInt(b.match(/^(\d+)$/)[1],10)}else e[a]=b;else e[a]="minWidth"===a?30:9e3}),e.field=void 0===c.field?c.name:c.field,"string"!=typeof e.field&&a.logError("Field is not a string, this is likely to break the code, Field is: "+e.field),e.name=c.name,e.displayName=void 0===c.displayName?a.readableColumnName(c.name):c.displayName,e.aggregationType=angular.isDefined(c.aggregationType)?c.aggregationType:null,e.footerCellTemplate=angular.isDefined(c.footerCellTemplate)?c.footerCellTemplate:null,"undefined"==typeof c.cellTooltip||c.cellTooltip===!1?e.cellTooltip=!1:c.cellTooltip===!0?e.cellTooltip=function(a,b){return e.grid.getCellValue(a,b)}:"function"==typeof c.cellTooltip?e.cellTooltip=c.cellTooltip:e.cellTooltip=function(a,b){return b.colDef.cellTooltip},"undefined"==typeof c.headerTooltip||c.headerTooltip===!1?e.headerTooltip=!1:c.headerTooltip===!0?e.headerTooltip=function(a){return a.displayName}:"function"==typeof c.headerTooltip?e.headerTooltip=c.headerTooltip:e.headerTooltip=function(a){return a.colDef.headerTooltip},e.footerCellClass=c.footerCellClass,e.cellClass=c.cellClass,e.headerCellClass=c.headerCellClass,e.cellFilter=c.cellFilter?c.cellFilter:"",e.sortCellFiltered=!!c.sortCellFiltered,e.filterCellFiltered=!!c.filterCellFiltered,e.headerCellFilter=c.headerCellFilter?c.headerCellFilter:"",e.footerCellFilter=c.footerCellFilter?c.footerCellFilter:"",e.visible=a.isNullOrUndefined(c.visible)||c.visible,e.headerClass=c.headerClass,e.enableSorting="undefined"!=typeof c.enableSorting?c.enableSorting:!0,e.sortingAlgorithm=c.sortingAlgorithm,e.sortDirectionCycle="undefined"!=typeof c.sortDirectionCycle?c.sortDirectionCycle:[null,b.ASC,b.DESC],"undefined"==typeof e.suppressRemoveSort&&(e.suppressRemoveSort="undefined"!=typeof c.suppressRemoveSort?c.suppressRemoveSort:!1),e.enableFiltering="undefined"!=typeof c.enableFiltering?c.enableFiltering:!0,e.setPropertyOrDefault(c,"menuItems",[]),d&&e.setPropertyOrDefault(c,"sort");var j=[];c.filter?j.push(c.filter):c.filters?j=c.filters:j.push({}),d?(e.setPropertyOrDefault(c,"filter"),e.setPropertyOrDefault(c,"filters",j)):e.filters.length===j.length&&e.filters.forEach(function(a,b){"undefined"!=typeof j[b].placeholder&&(a.placeholder=j[b].placeholder),"undefined"!=typeof j[b].ariaLabel&&(a.ariaLabel=j[b].ariaLabel),"undefined"!=typeof j[b].flags&&(a.flags=j[b].flags),"undefined"!=typeof j[b].type&&(a.type=j[b].type),"undefined"!=typeof j[b].selectOptions&&(a.selectOptions=j[b].selectOptions)})},d.prototype.unsort=function(){this.sort={},this.grid.api.core.raise.sortChanged(this.grid,this.grid.getColumnSorting())},d.prototype.getColClass=function(a){var c=b.COL_CLASS_PREFIX+this.uid;return a?"."+c:c},d.prototype.isPinnedLeft=function(){return"left"===this.renderContainer},d.prototype.isPinnedRight=function(){return"right"===this.renderContainer},d.prototype.getColClassDefinition=function(){return" .grid"+this.grid.id+" "+this.getColClass(!0)+" { min-width: "+this.drawnWidth+"px; max-width: "+this.drawnWidth+"px; }"},d.prototype.getRenderContainer=function(){var a=this,b=a.renderContainer;return null!==b&&""!==b&&void 0!==b||(b="body"),a.grid.renderContainers[b]},d.prototype.showColumn=function(){this.colDef.visible=!0},d.prototype.getAggregationText=function(){var a=this;if(a.colDef.aggregationHideLabel)return"";if(a.colDef.aggregationLabel)return a.colDef.aggregationLabel;switch(a.colDef.aggregationType){case b.aggregationTypes.count:return c.getSafeText("aggregation.count");case b.aggregationTypes.sum:return c.getSafeText("aggregation.sum");case b.aggregationTypes.avg:return c.getSafeText("aggregation.avg");case b.aggregationTypes.min:return c.getSafeText("aggregation.min");case b.aggregationTypes.max:return c.getSafeText("aggregation.max");default:return""}},d.prototype.getCellTemplate=function(){var a=this;return a.cellTemplatePromise},d.prototype.getCompiledElementFn=function(){var a=this;return a.compiledElementFnDefer.promise},d}])}(),function(){angular.module("ui.grid").factory("GridOptions",["gridUtil","uiGridConstants",function(a,b){return{initialize:function(c){return c.onRegisterApi=c.onRegisterApi||angular.noop(),c.data=c.data||[],c.columnDefs=c.columnDefs||[],c.excludeProperties=c.excludeProperties||["$$hashKey"],c.enableRowHashing=c.enableRowHashing!==!1,c.rowIdentity=c.rowIdentity||function(b){return a.hashKey(b)},c.getRowIdentity=c.getRowIdentity||function(a){return a.$$hashKey},c.flatEntityAccess=c.flatEntityAccess===!0,c.showHeader="undefined"!=typeof c.showHeader?c.showHeader:!0,c.showHeader?c.headerRowHeight="undefined"!=typeof c.headerRowHeight?c.headerRowHeight:30:c.headerRowHeight=0,c.rowHeight=c.rowHeight||30,c.minRowsToShow="undefined"!=typeof c.minRowsToShow?c.minRowsToShow:10,c.showGridFooter=c.showGridFooter===!0,c.showColumnFooter=c.showColumnFooter===!0,c.columnFooterHeight="undefined"!=typeof c.columnFooterHeight?c.columnFooterHeight:30,c.gridFooterHeight="undefined"!=typeof c.gridFooterHeight?c.gridFooterHeight:30,c.columnWidth="undefined"!=typeof c.columnWidth?c.columnWidth:50,c.maxVisibleColumnCount="undefined"!=typeof c.maxVisibleColumnCount?c.maxVisibleColumnCount:200,c.virtualizationThreshold="undefined"!=typeof c.virtualizationThreshold?c.virtualizationThreshold:20,c.columnVirtualizationThreshold="undefined"!=typeof c.columnVirtualizationThreshold?c.columnVirtualizationThreshold:10,c.excessRows="undefined"!=typeof c.excessRows?c.excessRows:4,c.scrollThreshold="undefined"!=typeof c.scrollThreshold?c.scrollThreshold:4,c.excessColumns="undefined"!=typeof c.excessColumns?c.excessColumns:4,c.horizontalScrollThreshold="undefined"!=typeof c.horizontalScrollThreshold?c.horizontalScrollThreshold:2,c.aggregationCalcThrottle="undefined"!=typeof c.aggregationCalcThrottle?c.aggregationCalcThrottle:500,c.wheelScrollThrottle="undefined"!=typeof c.wheelScrollThrottle?c.wheelScrollThrottle:70,c.scrollDebounce="undefined"!=typeof c.scrollDebounce?c.scrollDebounce:300,c.enableSorting=c.enableSorting!==!1,c.enableFiltering=c.enableFiltering===!0,c.enableColumnMenus=c.enableColumnMenus!==!1,c.enableVerticalScrollbar="undefined"!=typeof c.enableVerticalScrollbar?c.enableVerticalScrollbar:b.scrollbars.ALWAYS,c.enableHorizontalScrollbar="undefined"!=typeof c.enableHorizontalScrollbar?c.enableHorizontalScrollbar:b.scrollbars.ALWAYS,c.enableMinHeightCheck=c.enableMinHeightCheck!==!1,c.minimumColumnSize="undefined"!=typeof c.minimumColumnSize?c.minimumColumnSize:10,c.rowEquality=c.rowEquality||function(a,b){return a===b},c.headerTemplate=c.headerTemplate||null,c.footerTemplate=c.footerTemplate||"ui-grid/ui-grid-footer",c.gridFooterTemplate=c.gridFooterTemplate||"ui-grid/ui-grid-grid-footer",c.rowTemplate=c.rowTemplate||"ui-grid/ui-grid-row",c.appScopeProvider=c.appScopeProvider||null, -c}}}])}(),function(){angular.module("ui.grid").factory("GridRenderContainer",["gridUtil","uiGridConstants",function(a,b){function c(a,b,c){var d=this;d.name=a,d.grid=b,d.visibleRowCache=[],d.visibleColumnCache=[],d.renderedRows=[],d.renderedColumns=[],d.prevScrollTop=0,d.prevScrolltopPercentage=0,d.prevRowScrollIndex=0,d.prevScrollLeft=0,d.prevScrollleftPercentage=0,d.prevColumnScrollIndex=0,d.columnStyles="",d.viewportAdjusters=[],d.hasHScrollbar=!1,d.hasVScrollbar=!1,d.canvasHeightShouldUpdate=!0,d.$$canvasHeight=0,c&&angular.isObject(c)&&angular.extend(d,c),b.registerStyleComputation({priority:5,func:function(){return d.updateColumnWidths(),d.columnStyles}})}return c.prototype.reset=function(){this.visibleColumnCache.length=0,this.visibleRowCache.length=0,this.renderedRows.length=0,this.renderedColumns.length=0},c.prototype.containsColumn=function(a){return-1!==this.visibleColumnCache.indexOf(a)},c.prototype.minRowsToRender=function(){for(var a=this,b=0,c=0,d=a.getViewportHeight(),e=a.visibleRowCache.length-1;d>c&&e>=0;e--)c+=a.visibleRowCache[e].height,b++;return b},c.prototype.minColumnsToRender=function(){for(var a=this,b=this.getViewportWidth(),c=0,d=0,e=0;ed)d+=f.drawnWidth?f.drawnWidth:0,c++;else{for(var g=0,h=e;h>=e-c;h--)g+=a.visibleColumnCache[h].drawnWidth?a.visibleColumnCache[h].drawnWidth:0;b>g&&c++}}return c},c.prototype.getVisibleRowCount=function(){return this.visibleRowCache.length},c.prototype.registerViewportAdjuster=function(a){this.viewportAdjusters.push(a)},c.prototype.removeViewportAdjuster=function(a){var b=this.viewportAdjusters.indexOf(a);b>-1&&this.viewportAdjusters.splice(b,1)},c.prototype.getViewportAdjustment=function(){var a=this,b={height:0,width:0};return a.viewportAdjusters.forEach(function(a){b=a.call(this,b)}),b},c.prototype.getMargin=function(a){var b=this,c=0;return b.viewportAdjusters.forEach(function(b){var d=b.call(this,{height:0,width:0});d.side&&d.side===a&&(c+=-1*d.width)}),c},c.prototype.getViewportHeight=function(){var a=this,b=a.headerHeight?a.headerHeight:a.grid.headerHeight,c=a.grid.gridHeight-b-a.grid.footerHeight,d=a.getViewportAdjustment();return c+=d.height},c.prototype.getViewportWidth=function(){var a=this,b=a.grid.gridWidth,c=a.getViewportAdjustment();return b+=c.width},c.prototype.getHeaderViewportWidth=function(){var a=this.getViewportWidth();return a},c.prototype.getCanvasHeight=function(){var a=this;if(!a.canvasHeightShouldUpdate)return a.$$canvasHeight;var b=a.$$canvasHeight;return a.$$canvasHeight=0,a.visibleRowCache.forEach(function(b){a.$$canvasHeight+=b.height}),a.canvasHeightShouldUpdate=!1,a.grid.api.core.raise.canvasHeightChanged(b,a.$$canvasHeight),a.$$canvasHeight},c.prototype.getVerticalScrollLength=function(){return this.getCanvasHeight()-this.getViewportHeight()+this.grid.scrollbarHeight},c.prototype.getCanvasWidth=function(){var a=this,b=a.canvasWidth;return b},c.prototype.setRenderedRows=function(a){this.renderedRows.length=a.length;for(var b=0;b0&&(this.grid.scrollDirection=b.scrollDirection.DOWN),0>d&&(this.grid.scrollDirection=b.scrollDirection.UP);var e=this.getVerticalScrollLength();return c=a/e,c>1&&(c=1),0>c&&(c=0),this.adjustScrollVertical(a,c),c}},c.prototype.scrollHorizontal=function(a){var c=-1;if(a!==this.prevScrollLeft){var d=a-this.prevScrollLeft;d>0&&(this.grid.scrollDirection=b.scrollDirection.RIGHT),0>d&&(this.grid.scrollDirection=b.scrollDirection.LEFT);var e=this.canvasWidth-this.getViewportWidth();return c=0!==e?a/e:0,this.adjustScrollHorizontal(a,c),c}},c.prototype.adjustScrollVertical=function(a,b,c){(this.prevScrollTop!==a||c)&&("undefined"!=typeof a&&void 0!==a&&null!==a||(a=(this.getCanvasHeight()-this.getViewportHeight())*b),this.adjustRows(a,b,!1),this.prevScrollTop=a,this.prevScrolltopPercentage=b,this.grid.queueRefresh())},c.prototype.adjustScrollHorizontal=function(a,b,c){(this.prevScrollLeft!==a||c)&&("undefined"!=typeof a&&void 0!==a&&null!==a||(a=(this.getCanvasWidth()-this.getViewportWidth())*b),this.adjustColumns(a,b),this.prevScrollLeft=a,this.prevScrollleftPercentage=b,this.grid.queueRefresh())},c.prototype.adjustRows=function(a,b,c){var d=this,e=d.minRowsToRender(),f=d.visibleRowCache,g=f.length-e;"undefined"!=typeof b&&null!==b||!a||(b=a/d.getVerticalScrollLength());var h=Math.ceil(Math.min(g,g*b));h>g&&(h=g);var i=[];if(f.length>d.grid.options.virtualizationThreshold){if("undefined"!=typeof a&&null!==a){if(!d.grid.suppressParentScrollDown&&d.prevScrollToph)return;if(!d.grid.suppressParentScrollUp&&d.prevScrollTop>a&&h>d.prevRowScrollIndex-d.grid.options.scrollThreshold&&g>h)return}var j={},k={};j=Math.max(0,h-d.grid.options.excessRows),k=Math.min(f.length,h+e+d.grid.options.excessRows),i=[j,k]}else{var l=d.visibleRowCache.length;i=[0,Math.max(l,e+d.grid.options.excessRows)]}d.updateViewableRowRange(i),d.prevRowScrollIndex=h},c.prototype.adjustColumns=function(a,b){var c=this,d=c.minColumnsToRender(),e=c.visibleColumnCache,f=e.length-d;if(("undefined"==typeof b||null===b)&&a){var g=c.getCanvasWidth()-c.getViewportWidth();b=a/g}var h=Math.ceil(Math.min(f,f*b));h>f&&(h=f);var i=[];if(e.length>c.grid.options.columnVirtualizationThreshold&&c.getCanvasWidth()>c.getViewportWidth()){var j=Math.max(0,h-c.grid.options.excessColumns),k=Math.min(e.length,h+d+c.grid.options.excessColumns);i=[j,k]}else{var l=c.visibleColumnCache.length;i=[0,Math.max(l,d+c.grid.options.excessColumns)]}c.updateViewableColumnRange(i),c.prevColumnScrollIndex=h},c.prototype.updateViewableRowRange=function(a){var b=this.visibleRowCache.slice(a[0],a[1]);this.currentTopRow=a[0],this.setRenderedRows(b)},c.prototype.updateViewableColumnRange=function(a){var b=this.visibleColumnCache.slice(a[0],a[1]);this.currentFirstColumn=a[0],this.setRenderedColumns(b)},c.prototype.headerCellWrapperStyle=function(){var a=this;if(0!==a.currentFirstColumn){var b=a.columnOffset;return a.grid.isRTL()?{"margin-right":b+"px"}:{"margin-left":b+"px"}}return null},c.prototype.updateColumnWidths=function(){var b=this,c=[],d=0,e=0,f="",g=b.grid.getViewportWidth()-b.grid.scrollbarWidth,h=[];angular.forEach(b.grid.renderContainers,function(a,b){h=h.concat(a.visibleColumnCache)}),h.forEach(function(b,f){var h=0;b.visible&&(angular.isNumber(b.width)?(h=parseInt(b.width,10),e+=h,b.drawnWidth=h):a.endsWith(b.width,"%")?(h=parseInt(parseInt(b.width.replace(/%/g,""),10)/100*g),h>b.maxWidth&&(h=b.maxWidth),h0){var j=i/d;c.forEach(function(a){var b=parseInt(a.width.length*j,10);b>a.maxWidth&&(b=a.maxWidth),b0&&(a.drawnWidth++,e++,l--,m=!0)},l=g-e,m=!0;l>0&&m;)m=!1,c.forEach(k);var n=function(a){a.drawnWidth>a.minWidth&&o>0&&(a.drawnWidth--,e--,o--,m=!0)},o=e-g;for(m=!0;o>0&&m;)m=!1,c.forEach(n);var p=0;b.visibleColumnCache.forEach(function(a){a.visible&&(p+=a.drawnWidth)}),h.forEach(function(a){f+=a.getColClassDefinition()}),b.canvasWidth=p,this.columnStyles=f},c.prototype.needsHScrollbarPlaceholder=function(){return this.grid.options.enableHorizontalScrollbar&&!this.hasHScrollbar&&!this.grid.disableScrolling},c.prototype.getViewportStyle=function(){var a=this,c={};return a.hasHScrollbar=!1,a.hasVScrollbar=!1,a.grid.disableScrolling?(c["overflow-x"]="hidden",c["overflow-y"]="hidden",c):("body"===a.name?(a.hasHScrollbar=a.grid.options.enableHorizontalScrollbar!==b.scrollbars.NEVER,a.grid.isRTL()?a.grid.hasLeftContainerColumns()||(a.hasVScrollbar=a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER):a.grid.hasRightContainerColumns()||(a.hasVScrollbar=a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER)):"left"===a.name?a.hasVScrollbar=a.grid.isRTL()?a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER:!1:a.hasVScrollbar=a.grid.isRTL()?!1:a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER,c["overflow-x"]=a.hasHScrollbar?"scroll":"hidden",c["overflow-y"]=a.hasVScrollbar?"scroll":"hidden",c)},c}])}(),function(){angular.module("ui.grid").factory("GridRow",["gridUtil",function(a){function b(b,c,d){this.grid=d,this.entity=b,this.uid=a.nextUid(),this.visible=!0,this.$$height=d.options.rowHeight}return Object.defineProperty(b.prototype,"height",{get:function(){return this.$$height},set:function(a){a!==this.$$height&&(this.grid.updateCanvasHeight(),this.$$height=a)}}),b.prototype.getQualifiedColField=function(a){return"row."+this.getEntityQualifiedColField(a)},b.prototype.getEntityQualifiedColField=function(b){return a.preEval("entity."+b.field)},b.prototype.setRowInvisible=function(a){a&&a.setThisRowInvisible&&a.setThisRowInvisible("user")},b.prototype.clearRowInvisible=function(a){a&&a.clearThisRowInvisible&&a.clearThisRowInvisible("user")},b.prototype.setThisRowInvisible=function(a,b){this.invisibleReason||(this.invisibleReason={}),this.invisibleReason[a]=!0,this.evaluateRowVisibility(b)},b.prototype.clearThisRowInvisible=function(a,b){"undefined"!=typeof this.invisibleReason&&delete this.invisibleReason[a],this.evaluateRowVisibility(b)},b.prototype.evaluateRowVisibility=function(a){var b=!0;"undefined"!=typeof this.invisibleReason&&angular.forEach(this.invisibleReason,function(a,c){a&&(b=!1)}),"undefined"!=typeof this.visible&&this.visible===b||(this.visible=b,a||(this.grid.queueGridRefresh(),this.grid.api.core.raise.rowsVisibleChanged(this)))},b}])}(),function(){"use strict";angular.module("ui.grid").factory("GridRowColumn",["$parse","$filter",function(a,b){var c=function d(a,b){if(!(this instanceof d))throw"Using GridRowColumn as a function insead of as a constructor. Must be called with `new` keyword";this.row=a,this.col=b};return c.prototype.getIntersectionValueRaw=function(){var b=a(this.row.getEntityQualifiedColField(this.col)),c=this.row;return b(c)},c.prototype.getIntersectionValueFiltered=function(){var a=this.getIntersectionValueRaw();if(this.col.cellFilter&&""!==this.col.cellFilter){var c=function(a){try{return b(a)}catch(c){return null}},d=c(this.col.cellFilter);if(d)a=d(a);else{var e,f=/([^:]*):([^:]*):?([\s\S]+)?/;null!==(e=f.exec(this.col.cellFilter))&&(a=b(e[1])(a,e[2],e[3]))}}return a},c}])}(),function(){angular.module("ui.grid").factory("ScrollEvent",["gridUtil",function(a){function b(b,c,d,e){var f=this;if(!b)throw new Error("grid argument is required");f.grid=b,f.source=e,f.withDelay=!0,f.sourceRowContainer=c,f.sourceColContainer=d,f.newScrollLeft=null,f.newScrollTop=null,f.x=null,f.y=null,f.verticalScrollLength=-9999999,f.horizontalScrollLength=-999999,f.fireThrottledScrollingEvent=a.throttle(function(a){f.grid.scrollContainers(a,f)},f.grid.options.wheelScrollThrottle,{trailing:!0})}return b.prototype.getNewScrollLeft=function(b,c){var d=this;if(!d.newScrollLeft){var e,f=b.getCanvasWidth()-b.getViewportWidth(),g=a.normalizeScrollLeft(c,d.grid);if("undefined"!=typeof d.x.percentage&&void 0!==d.x.percentage)e=d.x.percentage;else{if("undefined"==typeof d.x.pixels||void 0===d.x.pixels)throw new Error("No percentage or pixel value provided for scroll event X axis");e=d.x.percentage=(g+d.x.pixels)/f}return Math.max(0,e*f)}return d.newScrollLeft},b.prototype.getNewScrollTop=function(a,b){var c=this;if(!c.newScrollTop){var d,e=a.getVerticalScrollLength(),f=b[0].scrollTop;if("undefined"!=typeof c.y.percentage&&void 0!==c.y.percentage)d=c.y.percentage;else{if("undefined"==typeof c.y.pixels||void 0===c.y.pixels)throw new Error("No percentage or pixel value provided for scroll event Y axis");d=c.y.percentage=(f+c.y.pixels)/e}return Math.max(0,d*e)}return c.newScrollTop},b.prototype.atTop=function(a){return this.y&&(0===this.y.percentage||this.verticalScrollLength<0)&&0===a},b.prototype.atBottom=function(a){return this.y&&(1===this.y.percentage||0===this.verticalScrollLength)&&a>0},b.prototype.atLeft=function(a){return this.x&&(0===this.x.percentage||this.horizontalScrollLength<0)&&0===a},b.prototype.atRight=function(a){return this.x&&(1===this.x.percentage||0===this.horizontalScrollLength)&&a>0},b.Sources={ViewPortScroll:"ViewPortScroll",RenderContainerMouseWheel:"RenderContainerMouseWheel",RenderContainerTouchMove:"RenderContainerTouchMove",Other:99},b}])}(),function(){"use strict";angular.module("ui.grid").service("gridClassFactory",["gridUtil","$q","$compile","$templateCache","uiGridConstants","Grid","GridColumn","GridRow",function(a,b,c,d,e,f,g,h){var i={createGrid:function(d){d="undefined"!=typeof d?d:{},d.id=a.newId();var e=new f(d);if(e.options.rowTemplate){var g=b.defer();e.getRowTemplateFn=g.promise,a.getTemplate(e.options.rowTemplate).then(function(a){var b=c(a);g.resolve(b)},function(a){throw new Error("Couldn't fetch/use row template '"+e.options.rowTemplate+"'")})}return e.registerColumnBuilder(i.defaultColumnBuilder),e.registerRowBuilder(i.rowTemplateAssigner),e.registerRowsProcessor(function(a){return a.forEach(function(a){a.evaluateRowVisibility(!0)},50),a}),e.registerColumnsProcessor(function(a){return a.forEach(function(a){a.visible=!0}),a},50),e.registerColumnsProcessor(function(a){return a.forEach(function(a){a.colDef.visible===!1&&(a.visible=!1)}),a},50),e.registerRowsProcessor(e.searchRows,100),e.options.externalSort&&angular.isFunction(e.options.externalSort)?e.registerRowsProcessor(e.options.externalSort,200):e.registerRowsProcessor(e.sortByColumn,200),e},defaultColumnBuilder:function(c,d,f){var g=[],h=function(b,f,h,i,j){c[b]?d[f]=c[b]:d[f]=h,g.push(a.getTemplate(d[f]).then(function(a){angular.isFunction(a)&&(a=a());var c="cellTooltip"===j?"col.cellTooltip(row,col)":"col.headerTooltip(col)";j&&d[j]===!1?a=a.replace(e.TOOLTIP,""):j&&d[j]&&(a=a.replace(e.TOOLTIP,'title="{{'+c+' CUSTOM_FILTERS }}"')),i?d[b]=a.replace(e.CUSTOM_FILTERS,function(){return d[i]?"|"+d[i]:""}):d[b]=a},function(a){throw new Error("Couldn't fetch/use colDef."+b+" '"+c[b]+"'")}))};return h("cellTemplate","providedCellTemplate","ui-grid/uiGridCell","cellFilter","cellTooltip"),d.cellTemplatePromise=g[0],h("headerCellTemplate","providedHeaderCellTemplate","ui-grid/uiGridHeaderCell","headerCellFilter","headerTooltip"),h("footerCellTemplate","providedFooterCellTemplate","ui-grid/uiGridFooterCell","footerCellFilter"),h("filterHeaderTemplate","providedFilterHeaderTemplate","ui-grid/ui-grid-filter"),d.compiledElementFnDefer=b.defer(),b.all(g)},rowTemplateAssigner:function(d){var e=this;if(d.rowTemplate){var f=b.defer();d.getRowTemplateFn=f.promise,a.getTemplate(d.rowTemplate).then(function(a){var b=c(a);f.resolve(b)},function(a){throw new Error("Couldn't fetch/use row template '"+d.rowTemplate+"'")})}else d.rowTemplate=e.options.rowTemplate,d.getRowTemplateFn=e.getRowTemplateFn;return d.getRowTemplateFn}};return i}])}(),function(){function a(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var b=angular.module("ui.grid");b.service("rowSearcher",["gridUtil","uiGridConstants",function(b,c){var d=c.filter.CONTAINS,e={};return e.getTerm=function(a){if("undefined"==typeof a.term)return a.term;var b=a.term;return"string"==typeof b&&(b=b.trim()),b},e.stripTerm=function(b){var c=e.getTerm(b);return"string"==typeof c?a(c.replace(/(^\*|\*$)/g,"")):c},e.guessCondition=function(a){if("undefined"==typeof a.term||!a.term)return d;var b=e.getTerm(a);if(/\*/.test(b)){var c="";a.flags&&a.flags.caseSensitive||(c+="i");var f=b.replace(/(\\)?\*/g,function(a,b){return b?a:"[\\s\\S]*?"});return new RegExp("^"+f+"$",c)}return d},e.setupFilters=function(a){for(var d=[],f=a.length,g=0;f>g;g++){var h=a[g];if(h.noTerm||!b.isNullOrUndefined(h.term)){var i={},j="";h.flags&&h.flags.caseSensitive||(j+="i"),b.isNullOrUndefined(h.term)||(i.term=e.stripTerm(h)),h.condition?i.condition=h.condition:i.condition=e.guessCondition(h),i.flags=angular.extend({caseSensitive:!1,date:!1},h.flags),i.condition===c.filter.STARTS_WITH&&(i.startswithRE=new RegExp("^"+i.term,j)),i.condition===c.filter.ENDS_WITH&&(i.endswithRE=new RegExp(i.term+"$",j)),i.condition===c.filter.CONTAINS&&(i.containsRE=new RegExp(i.term,j)),i.condition===c.filter.EXACT&&(i.exactRE=new RegExp("^"+i.term+"$",j)),d.push(i)}}return d},e.runColumnFilter=function(a,b,d,e){var f,g=typeof e.condition,h=e.term;if(f=d.filterCellFiltered?a.getCellDisplayValue(b,d):a.getCellValue(b,d),e.condition instanceof RegExp)return e.condition.test(f);if("function"===g)return e.condition(h,f,b,d);if(e.startswithRE)return e.startswithRE.test(f);if(e.endswithRE)return e.endswithRE.test(f);if(e.containsRE)return e.containsRE.test(f);if(e.exactRE)return e.exactRE.test(f);if(e.condition===c.filter.NOT_EQUAL){var i=new RegExp("^"+h+"$");return!i.exec(f)}if("number"==typeof f&&"string"==typeof h){var j=parseFloat(h.replace(/\\\./,".").replace(/\\\-/,"-"));isNaN(j)||(h=j)}return e.flags.date===!0&&(f=new Date(f),h=new Date(h.replace(/\\/g,""))),e.condition===c.filter.GREATER_THAN?f>h:e.condition===c.filter.GREATER_THAN_OR_EQUAL?f>=h:e.condition===c.filter.LESS_THAN?h>f:e.condition===c.filter.LESS_THAN_OR_EQUAL?h>=f:!0},e.searchColumn=function(a,b,c,d){if(a.options.useExternalFiltering)return!0;for(var f=d.length,g=0;f>g;g++){var h=d[g],i=e.runColumnFilter(a,b,c,h);if(!i)return!1}return!0},e.search=function(a,c,d){if(c){if(!a.options.enableFiltering)return c;for(var f=[],g=d.length,h=function(a){var c=!1;return a.forEach(function(a){(!b.isNullOrUndefined(a.term)&&""!==a.term||a.noTerm)&&(c=!0)}),c},i=0;g>i;i++){var j=d[i];"undefined"!=typeof j.filters&&h(j.filters)&&f.push({col:j,filters:e.setupFilters(j.filters)})}if(f.length>0){for(var k=function(a,b,c,d){b.visible&&!e.searchColumn(a,b,c,d)&&(b.visible=!1)},l=function(a,b){for(var d=c.length,e=0;d>e;e++)k(a,c[e],b.col,b.filters)},m=f.length,n=0;m>n;n++)l(a,f[n]);a.api.core.raise.rowsVisibleChanged&&a.api.core.raise.rowsVisibleChanged()}return c}},e}])}(),function(){var a=angular.module("ui.grid");a.service("rowSorter",["$parse","uiGridConstants",function(a,b){var c="("+b.CURRENCY_SYMBOLS.map(function(a){return"\\"+a}).join("|")+")?",d=(new RegExp("^[-+]?"+c+"[\\d,.]+"+c+"%?$"),{colSortFnCache:{}});return d.guessSortFn=function(a){switch(a){case"number":return d.sortNumber;case"numberStr":return d.sortNumberStr;case"boolean":return d.sortBool;case"string":return d.sortAlpha;case"date":return d.sortDate;case"object":return d.basicSort;default:throw new Error("No sorting function found for type:"+a)}},d.handleNulls=function(a,b){if(!a&&0!==a&&a!==!1||!b&&0!==b&&b!==!1){if(!a&&0!==a&&a!==!1&&!b&&0!==b&&b!==!1)return 0;if(!a&&0!==a&&a!==!1)return 1;if(!b&&0!==b&&b!==!1)return-1}return null},d.basicSort=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a===b?0:b>a?-1:1},d.sortNumber=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a-b},d.sortNumberStr=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;var e,f,g=!1,h=!1;return e=parseFloat(a.replace(/[^0-9.-]/g,"")),isNaN(e)&&(g=!0),f=parseFloat(b.replace(/[^0-9.-]/g,"")),isNaN(f)&&(h=!0),g&&h?0:g?1:h?-1:e-f},d.sortAlpha=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;var e=a.toString().toLowerCase(),f=b.toString().toLowerCase();return e===f?0:e.localeCompare(f)},d.sortDate=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;a instanceof Date||(a=new Date(a)),b instanceof Date||(b=new Date(b));var e=a.getTime(),f=b.getTime();return e===f?0:f>e?-1:1},d.sortBool=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a&&b?0:a||b?a?1:-1:0},d.getSortFn=function(a,b,c){var e;return d.colSortFnCache[b.colDef.name]?e=d.colSortFnCache[b.colDef.name]:void 0!==b.sortingAlgorithm?(e=b.sortingAlgorithm,d.colSortFnCache[b.colDef.name]=b.sortingAlgorithm):b.sortCellFiltered&&b.cellFilter?(e=d.sortAlpha,d.colSortFnCache[b.colDef.name]=e):(e=d.guessSortFn(b.colDef.type),e?d.colSortFnCache[b.colDef.name]=e:e=d.sortAlpha),e},d.prioritySort=function(a,b){return void 0!==a.sort.priority&&void 0!==b.sort.priority?a.sort.priorityf;f+=2){var i=h[f];if("margin"===c){var j=parseFloat(e[c+i]);isNaN(j)||(g+=j)}if(d){if("content"===c){var k=parseFloat(e["padding"+i]);isNaN(k)||(g-=k)}if("margin"!==c){var l=parseFloat(e["border"+i+"Width"]);isNaN(l)||(g-=l)}}else{var m=parseFloat(e["padding"+i]);if(isNaN(m)||(g+=m),"padding"!==c){var n=parseFloat(e["border"+i+"Width"]);isNaN(n)||(g+=n)}}}return g}function c(c,d,e){var f,h=!0,i=a(c),j="border-box"===i.boxSizing;if(0>=f||null==f){if(f=i[d],(0>f||null==f)&&(f=c.style[d]),g.test(f))return f;h=j&&!0,f=parseFloat(f)||0}var k=f+b(c,d,e||(j?"border":"content"),h,i);return k}function d(b){b=angular.element(b)[0];var c=b.parentElement;return c||(c=document.getElementsByTagName("body")[0]),parseInt(a(c).fontSize)||parseInt(a(b).fontSize)||16}var e,f=angular.module("ui.grid");"function"!=typeof Function.prototype.bind&&(e=function(){var a=Array.prototype.slice;return function(b){var c=this,d=a.call(arguments,1);return d.length?function(){return arguments.length?c.apply(b,d.concat(a.call(arguments))):c.apply(b,d)}:function(){return arguments.length?c.apply(b,arguments):c.call(b)}}});var g=new RegExp("^("+/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source+")(?!px)[a-z%]+$","i"),h=/^(block|none|table(?!-c[ea]).+)/,i={position:"absolute",visibility:"hidden",display:"block"},j=["0","0","0","0"],k="uiGrid-";f.service("gridUtil",["$log","$window","$document","$http","$templateCache","$timeout","$interval","$injector","$q","$interpolate","uiGridConstants",function(f,g,l,m,n,o,p,q,r,s,t){function u(a,b){var c=angular.element(this),d=0,e=0,f=0,g=0;if(b.originalEvent&&(b=b.originalEvent),"detail"in b&&(f=-1*b.detail),"wheelDelta"in b&&(f=b.wheelDelta),"wheelDeltaY"in b&&(f=b.wheelDeltaY),"wheelDeltaX"in b&&(e=-1*b.wheelDeltaX),"axis"in b&&b.axis===b.HORIZONTAL_AXIS&&(e=-1*f,f=0),d=0===f?e:f,"deltaY"in b&&(f=-1*b.deltaY,d=f),"deltaX"in b&&(e=b.deltaX,0===f&&(d=-1*e)),0!==f||0!==e){if(1===b.deltaMode){var h=c.data("mousewheel-line-height");d*=h,f*=h,e*=h}else if(2===b.deltaMode){var i=c.data("mousewheel-page-height");d*=i,f*=i,e*=i}g=Math.max(Math.abs(f),Math.abs(e)),(!z||z>g)&&(z=g,w(b,g)&&(z/=40)),d=Math[d>=1?"floor":"ceil"](d/z),e=Math[e>=1?"floor":"ceil"](e/z),f=Math[f>=1?"floor":"ceil"](f/z),b.deltaMode=0;var j={originalEvent:b,deltaX:e,deltaY:f,deltaFactor:z,preventDefault:function(){b.preventDefault()},stopPropagation:function(){b.stopPropagation()}};y&&clearTimeout(y),y=setTimeout(v,200),a.call(c[0],j)}}function v(){z=null}function w(a,b){return"mousewheel"===a.type&&b%120===0}var x={augmentWidthOrHeight:b,getStyles:a,createBoundedWrapper:function(a,b){return function(){return b.apply(a,arguments)}},readableColumnName:function(a){return"undefined"==typeof a||void 0===a||null===a?a:("string"!=typeof a&&(a=String(a)),a.replace(/_+/g," ").replace(/^[A-Z]+$/,function(a){return angular.lowercase(angular.uppercase(a.charAt(0))+a.slice(1))}).replace(/([\w\u00C0-\u017F]+)/g,function(a){return angular.uppercase(a.charAt(0))+a.slice(1)}).replace(/(\w+?(?=[A-Z]))/g,"$1 "))},getColumnsFromData:function(a,b){var c=[];if(!a||"undefined"==typeof a[0]||void 0===a[0])return[];angular.isUndefined(b)&&(b=[]);var d=a[0];return angular.forEach(d,function(a,d){-1===b.indexOf(d)&&c.push({name:d})}),c},newId:function(){var a=(new Date).getTime();return function(){return a+=1}}(),getTemplate:function(a){if(n.get(a))return x.postProcessTemplate(n.get(a));if(a.hasOwnProperty("then"))return a.then(x.postProcessTemplate);try{if(angular.element(a).length>0)return r.when(a).then(x.postProcessTemplate)}catch(b){}return x.logDebug("fetching url",a),m({method:"GET",url:a}).then(function(b){var c=b.data.trim();return n.put(a,c),c},function(b){throw new Error("Could not get template "+a+": "+b)}).then(x.postProcessTemplate)},postProcessTemplate:function(a){var b=s.startSymbol(),c=s.endSymbol();return"{{"===b&&"}}"===c||(a=a.replace(/\{\{/g,b),a=a.replace(/\}\}/g,c)),r.when(a)},guessType:function(a){var b=typeof a;switch(b){case"number":case"boolean":case"string":return b;default:return angular.isDate(a)?"date":"object"}},elementWidth:function(a){},elementHeight:function(a){},getScrollbarWidth:function(){var a=document.createElement("div");a.style.visibility="hidden",a.style.width="100px",a.style.msOverflowStyle="scrollbar",document.body.appendChild(a);var b=a.offsetWidth;a.style.overflow="scroll";var c=document.createElement("div");c.style.width="100%",a.appendChild(c);var d=c.offsetWidth;return a.parentNode.removeChild(a),b-d},swap:function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},fakeElement:function(a,b,c,d){var e,f,g=angular.element(a).clone()[0];for(f in b)g.style[f]=b[f];return angular.element(document.body).append(g),e=c.call(g,g),angular.element(g).remove(),e},normalizeWheelEvent:function(a){var b,c,d,e=a||window.event,f=([].slice.call(arguments,1),0),g=0,h=0,i=0,j=0;return e.originalEvent&&(e=e.originalEvent),e.wheelDelta&&(f=e.wheelDelta),e.detail&&(f=-1*e.detail),h=f,void 0!==e.axis&&e.axis===e.HORIZONTAL_AXIS&&(h=0,g=-1*f),e.deltaY&&(h=-1*e.deltaY,f=h),e.deltaX&&(g=e.deltaX,f=-1*g),void 0!==e.wheelDeltaY&&(h=e.wheelDeltaY),void 0!==e.wheelDeltaX&&(g=e.wheelDeltaX),i=Math.abs(f),(!b||b>i)&&(b=i),j=Math.max(Math.abs(h),Math.abs(g)),(!c||c>j)&&(c=j),d=f>0?"floor":"ceil",f=Math[d](f/b),g=Math[d](g/c),h=Math[d](h/c),{delta:f,deltaX:g,deltaY:h}},isTouchEnabled:function(){var a;return("ontouchstart"in g||g.DocumentTouch&&l instanceof DocumentTouch)&&(a=!0),a},isNullOrUndefined:function(a){return void 0===a||null===a},endsWith:function(a,b){return a&&b&&"string"==typeof a?-1!==a.indexOf(b,a.length-b.length):!1},arrayContainsObjectWithProperty:function(a,b,c){var d=!1;return angular.forEach(a,function(a){a[b]===c&&(d=!0)}),d},numericAndNullSort:function(a,b){return null===a?1:null===b?-1:null===a&&null===b?0:a-b},disableAnimations:function(a){var b;try{b=q.get("$animate"),angular.version.major>1||1===angular.version.major&&angular.version.minor>=4?b.enabled(a,!1):b.enabled(!1,a)}catch(c){}},enableAnimations:function(a){var b;try{return b=q.get("$animate"),angular.version.major>1||1===angular.version.major&&angular.version.minor>=4?b.enabled(a,!0):b.enabled(!0,a),b}catch(c){}},nextUid:function(){for(var a,b=j.length;b;){if(b--,a=j[b].charCodeAt(0),57===a)return j[b]="A",k+j.join("");if(90!==a)return j[b]=String.fromCharCode(a+1),k+j.join("");j[b]="0"}return j.unshift("0"),k+j.join("")},hashKey:function(a){var b,c=typeof a;return"object"===c&&null!==a?"function"==typeof(b=a.$$hashKey)?b=a.$$hashKey():"undefined"!=typeof a.$$hashKey&&a.$$hashKey?b=a.$$hashKey:void 0===b&&(b=a.$$hashKey=x.nextUid()):b=a,c+":"+b},resetUids:function(){j=["0","0","0"]},logError:function(a){t.LOG_ERROR_MESSAGES&&f.error(a)},logWarn:function(a){t.LOG_WARN_MESSAGES&&f.warn(a)},logDebug:function(){t.LOG_DEBUG_MESSAGES&&f.debug.apply(f,arguments)}};x.focus={queue:[],byId:function(a,b){this._purgeQueue();var c=o(function(){var c=(b&&b.id?b.id+"-":"")+a,d=g.document.getElementById(c);d?d.focus():x.logWarn("[focus.byId] Element id "+c+" was not found.")});return this.queue.push(c),c},byElement:function(a){if(!angular.isElement(a))return x.logWarn("Trying to focus on an element that isn't an element."),r.reject("not-element");a=angular.element(a),this._purgeQueue();var b=o(function(){a&&a[0].focus()});return this.queue.push(b),b},bySelector:function(a,b,c){var d=this;if(!angular.isElement(a))throw new Error("The parent element is not an element.");a=angular.element(a);var e=function(){var c=a[0].querySelector(b);return d.byElement(c)};if(this._purgeQueue(),c){var f=o(e);return this.queue.push(o(e)),f}return e()},_purgeQueue:function(){this.queue.forEach(function(a){o.cancel(a)}),this.queue=[]}},["width","height"].forEach(function(b){var d=angular.uppercase(b.charAt(0))+b.substr(1);x["element"+d]=function(d,e){var f=d;if(f&&"undefined"!=typeof f.length&&f.length&&(f=d[0]),f){var g=a(f);return 0===f.offsetWidth&&h.test(g.display)?x.swap(f,i,function(){return c(f,b,e)}):c(f,b,e)}return null},x["outerElement"+d]=function(a,b){return a?x["element"+d].call(this,a,b?"margin":"border"):null}}),x.closestElm=function(a,b){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var c;["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"].some(function(a){return"function"==typeof document.body[a]?(c=a,!0):!1});for(var d;null!==a;){if(d=a.parentElement,null!==d&&d[c](b))return d;a=d}return null},x.type=function(a){var b=Function.prototype.toString.call(a.constructor);return b.match(/function (.*?)\(/)[1]},x.getBorderSize=function(b,c){"undefined"!=typeof b.length&&b.length&&(b=b[0]);var d=a(b);c=c?"border"+c.charAt(0).toUpperCase()+c.slice(1):"border",c+="Width";var e=parseInt(d[c],10);return isNaN(e)?0:e},x.detectBrowser=function(){var a=g.navigator.userAgent,b={chrome:/chrome/i,safari:/safari/i,firefox:/firefox/i,ie:/internet explorer|trident\//i};for(var c in b)if(b[c].test(a))return c;return"unknown"},x.rtlScrollType=function B(){if(B.type)return B.type;var a=angular.element('
        A
        ')[0],b="reverse";return document.body.appendChild(a),a.scrollLeft>0?b="default":(a.scrollLeft=1,0===a.scrollLeft&&(b="negative")),angular.element(a).remove(),B.type=b,b},x.normalizeScrollLeft=function(a,b){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var c=a.scrollLeft;if(b.isRTL())switch(x.rtlScrollType()){case"default":return a.scrollWidth-c-a.clientWidth;case"negative":return Math.abs(c);case"reverse":return c}return c},x.denormalizeScrollLeft=function(a,b,c){if("undefined"!=typeof a.length&&a.length&&(a=a[0]),c.isRTL())switch(x.rtlScrollType()){case"default":var d=a.scrollWidth-a.clientWidth;return d-b;case"negative":return-1*b;case"reverse":return b}return b},x.preEval=function(a){var b=t.BRACKET_REGEXP.exec(a);if(b)return(b[1]?x.preEval(b[1]):b[1])+b[2]+(b[3]?x.preEval(b[3]):b[3]);a=a.replace(t.APOS_REGEXP,"\\'");var c=a.split(t.DOT_REGEXP),d=[c.shift()];return angular.forEach(c,function(a){d.push(a.replace(t.FUNC_REGEXP,"']$1"))}),d.join("['")},x.debounce=function(a,b,c){function d(){g=this,f=arguments;var d=function(){e=null,c||(h=a.apply(g,f))},i=c&&!e;return e&&o.cancel(e),e=o(d,b),i&&(h=a.apply(g,f)),h}var e,f,g,h;return d.cancel=function(){o.cancel(e), -e=null},d},x.throttle=function(a,b,c){function d(b){g=+new Date,a.apply(e,f),p(function(){h=null},0,1)}c=c||{};var e,f,g=0,h=null;return function(){if(e=this,f=arguments,null===h){var a=+new Date-g;a>b?d():c.trailing&&(h=p(d,b-a,1))}}},x.on={},x.off={},x._events={},x.addOff=function(a){x.off[a]=function(b,c){var d=x._events[a].indexOf(c);d>0&&x._events[a].removeAt(d)}};var y,z,A="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"];return x.on.mousewheel=function(a,b){if(a&&b){var c=angular.element(a);c.data("mousewheel-line-height",d(c)),c.data("mousewheel-page-height",x.elementHeight(c)),c.data("mousewheel-callbacks")||c.data("mousewheel-callbacks",{});var f=c.data("mousewheel-callbacks");f[b]=(Function.prototype.bind||e).call(u,c[0],b);for(var g=A.length;g;)c.on(A[--g],f[b])}},x.off.mousewheel=function(a,b){var c=angular.element(a),d=c.data("mousewheel-callbacks"),e=d[b];if(e)for(var f=A.length;f;)c.off(A[--f],e);delete d[b],0===Object.keys(d).length&&(c.removeData("mousewheel-line-height"),c.removeData("mousewheel-page-height"),c.removeData("mousewheel-callbacks"))},x}]),f.filter("px",function(){return function(a){return a.match(/^[\d\.]+$/)?a+"px":a}})}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){var b={aggregate:{label:"položky"},groupPanel:{description:"Přesuňte záhlaví zde pro vytvoření skupiny dle sloupce."},search:{placeholder:"Hledat...",showingItems:"Zobrazuji položky:",selectedItems:"Vybrané položky:",totalItems:"Celkem položek:",size:"Velikost strany:",first:"První strana",next:"Další strana",previous:"Předchozí strana",last:"Poslední strana"},menu:{text:"Vyberte sloupec:"},sort:{ascending:"Seřadit od A-Z",descending:"Seřadit od Z-A",remove:"Odebrat seřazení"},column:{hide:"Schovat sloupec"},aggregation:{count:"celkem řádků: ",sum:"celkem: ",avg:"avg: ",min:"min.: ",max:"max.: "},pinning:{pinLeft:"Zamknout vlevo",pinRight:"Zamknout vpravo",unpin:"Odemknout"},gridMenu:{columns:"Sloupce:",importerTitle:"Importovat soubor",exporterAllAsCsv:"Exportovat všechna data do csv",exporterVisibleAsCsv:"Exportovat viditelná data do csv",exporterSelectedAsCsv:"Exportovat vybraná data do csv",exporterAllAsPdf:"Exportovat všechna data do pdf",exporterVisibleAsPdf:"Exportovat viditelná data do pdf",exporterSelectedAsPdf:"Exportovat vybraná data do pdf",clearAllFilters:"Odstranit všechny filtry"},importer:{noHeaders:"Názvy sloupců se nepodařilo získat, obsahuje soubor záhlaví?",noObjects:"Data se nepodařilo zpracovat, obsahuje soubor řádky mimo záhlaví?",invalidCsv:"Soubor nelze zpracovat, jedná se o CSV?",invalidJson:"Soubor nelze zpracovat, je to JSON?",jsonNotArray:"Soubor musí obsahovat json. Ukončuji.."},pagination:{sizes:"položek na stránku",totalItems:"položek"},grouping:{group:"Seskupit",ungroup:"Odebrat seskupení",aggregate_count:"Agregace: Count",aggregate_sum:"Agregace: Sum",aggregate_max:"Agregace: Max",aggregate_min:"Agregace: Min",aggregate_avg:"Agregace: Avg",aggregate_remove:"Agregace: Odebrat"}};return a.add("cs",b),a.add("cz",b),a.add("cs-cz",b),a.add("cs-CZ",b),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("da",{aggregate:{label:"artikler"},groupPanel:{description:"Grupér rækker udfra en kolonne ved at trække dens overskift hertil."},search:{placeholder:"Søg...",showingItems:"Viste rækker:",selectedItems:"Valgte rækker:",totalItems:"Rækker totalt:",size:"Side størrelse:",first:"Første side",next:"Næste side",previous:"Forrige side",last:"Sidste side"},menu:{text:"Vælg kolonner:"},sort:{ascending:"Sorter stigende",descending:"Sorter faldende",none:"Sorter ingen",remove:"Fjern sortering"},column:{hide:"Skjul kolonne"},aggregation:{count:"antal rækker: ",sum:"sum: ",avg:"gns: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("de",{headerCell:{aria:{defaultFilterLabel:"Filter für Spalte",removeFilter:"Filter löschen",columnMenuButtonLabel:"Spaltenmenü"},priority:"Priorität:",filterLabel:"Filter für Spalte: "},aggregate:{label:"Eintrag"},groupPanel:{description:"Ziehen Sie eine Spaltenüberschrift hierhin, um nach dieser Spalte zu gruppieren."},search:{placeholder:"Suche...",showingItems:"Zeige Einträge:",selectedItems:"Ausgewählte Einträge:",totalItems:"Einträge gesamt:",size:"Einträge pro Seite:",first:"Erste Seite",next:"Nächste Seite",previous:"Vorherige Seite",last:"Letzte Seite"},menu:{text:"Spalten auswählen:"},sort:{ascending:"aufsteigend sortieren",descending:"absteigend sortieren",none:"keine Sortierung",remove:"Sortierung zurücksetzen"},column:{hide:"Spalte ausblenden"},aggregation:{count:"Zeilen insgesamt: ",sum:"gesamt: ",avg:"Durchschnitt: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Links anheften",pinRight:"Rechts anheften",unpin:"Lösen"},columnMenu:{close:"Schließen"},gridMenu:{aria:{buttonLabel:"Tabellenmenü"},columns:"Spalten:",importerTitle:"Datei importieren",exporterAllAsCsv:"Alle Daten als CSV exportieren",exporterVisibleAsCsv:"sichtbare Daten als CSV exportieren",exporterSelectedAsCsv:"markierte Daten als CSV exportieren",exporterAllAsPdf:"Alle Daten als PDF exportieren",exporterVisibleAsPdf:"sichtbare Daten als PDF exportieren",exporterSelectedAsPdf:"markierte Daten als CSV exportieren",clearAllFilters:"Alle Filter zurücksetzen"},importer:{noHeaders:"Es konnten keine Spaltennamen ermittelt werden. Sind in der Datei Spaltendefinitionen enthalten?",noObjects:"Es konnten keine Zeileninformationen gelesen werden, Sind in der Datei außer den Spaltendefinitionen auch Daten enthalten?",invalidCsv:"Die Datei konnte nicht eingelesen werden, ist es eine gültige CSV-Datei?",invalidJson:"Die Datei konnte nicht eingelesen werden. Enthält sie gültiges JSON?",jsonNotArray:"Die importierte JSON-Datei muß ein Array enthalten. Breche Import ab."},pagination:{aria:{pageToFirst:"Zum Anfang",pageBack:"Seite zurück",pageSelected:"Ausgwählte Seite",pageForward:"Seite vor",pageToLast:"Zum Ende"},sizes:"Einträge pro Seite",totalItems:"Einträge",through:"bis",of:"von"},grouping:{group:"Gruppieren",ungroup:"Gruppierung aufheben",aggregate_count:"Agg: Anzahl",aggregate_sum:"Agg: Summe",aggregate_max:"Agg: Maximum",aggregate_min:"Agg: Minimum",aggregate_avg:"Agg: Mittelwert",aggregate_remove:"Aggregation entfernen"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("en",{headerCell:{aria:{defaultFilterLabel:"Filter for column",removeFilter:"Remove Filter",columnMenuButtonLabel:"Column Menu"},priority:"Priority:",filterLabel:"Filter for column: "},aggregate:{label:"items"},groupPanel:{description:"Drag a column header here and drop it to group by that column."},search:{placeholder:"Search...",showingItems:"Showing Items:",selectedItems:"Selected Items:",totalItems:"Total Items:",size:"Page Size:",first:"First Page",next:"Next Page",previous:"Previous Page",last:"Last Page"},menu:{text:"Choose Columns:"},sort:{ascending:"Sort Ascending",descending:"Sort Descending",none:"Sort None",remove:"Remove Sort"},column:{hide:"Hide Column"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Pin Left",pinRight:"Pin Right",unpin:"Unpin"},columnMenu:{close:"Close"},gridMenu:{aria:{buttonLabel:"Grid Menu"},columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."},pagination:{aria:{pageToFirst:"Page to first",pageBack:"Page back",pageSelected:"Selected page",pageForward:"Page forward",pageToLast:"Page to last"},sizes:"items per page",totalItems:"items",through:"through",of:"of"},grouping:{group:"Group",ungroup:"Ungroup",aggregate_count:"Agg: Count",aggregate_sum:"Agg: Sum",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Avg",aggregate_remove:"Agg: Remove"},validate:{error:"Error:",minLength:"Value should be at least THRESHOLD characters long.",maxLength:"Value should be at most THRESHOLD characters long.",required:"A value is needed."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("es",{aggregate:{label:"Artículos"},groupPanel:{description:"Arrastre un encabezado de columna aquí y suéltelo para agrupar por esa columna."},search:{placeholder:"Buscar...",showingItems:"Artículos Mostrados:",selectedItems:"Artículos Seleccionados:",totalItems:"Artículos Totales:",size:"Tamaño de Página:",first:"Primera Página",next:"Página Siguiente",previous:"Página Anterior",last:"Última Página"},menu:{text:"Elegir columnas:"},sort:{ascending:"Orden Ascendente",descending:"Orden Descendente",remove:"Sin Ordenar"},column:{hide:"Ocultar la columna"},aggregation:{count:"filas totales: ",sum:"total: ",avg:"media: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fijar a la Izquierda",pinRight:"Fijar a la Derecha",unpin:"Quitar Fijación"},gridMenu:{columns:"Columnas:",importerTitle:"Importar archivo",exporterAllAsCsv:"Exportar todo como csv",exporterVisibleAsCsv:"Exportar vista como csv",exporterSelectedAsCsv:"Exportar selección como csv",exporterAllAsPdf:"Exportar todo como pdf",exporterVisibleAsPdf:"Exportar vista como pdf",exporterSelectedAsPdf:"Exportar selección como pdf",clearAllFilters:"Limpiar todos los filtros"},importer:{noHeaders:"No fue posible derivar los nombres de las columnas, ¿tiene encabezados el archivo?",noObjects:"No fue posible obtener registros, ¿contiene datos el archivo, aparte de los encabezados?",invalidCsv:"No fue posible procesar el archivo, ¿es un CSV válido?",invalidJson:"No fue posible procesar el archivo, ¿es un Json válido?",jsonNotArray:"El archivo json importado debe contener un array, abortando."},pagination:{sizes:"registros por página",totalItems:"registros",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Cont",aggregate_sum:"Agr: Sum",aggregate_max:"Agr: Máx",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Prom",aggregate_remove:"Agr: Quitar"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fa",{aggregate:{label:"قلم"},groupPanel:{description:"عنوان یک ستون را بگیر و به گروهی از آن ستون رها کن."},search:{placeholder:"جستجو...",showingItems:"نمایش اقلام:",selectedItems:"قلم‌های انتخاب شده:",totalItems:"مجموع اقلام:",size:"اندازه‌ی صفحه:",first:"اولین صفحه",next:"صفحه‌ی‌بعدی",previous:"صفحه‌ی‌ قبلی",last:"آخرین صفحه"},menu:{text:"ستون‌های انتخابی:"},sort:{ascending:"ترتیب صعودی",descending:"ترتیب نزولی",remove:"حذف مرتب کردن"},column:{hide:"پنهان‌کردن ستون"},aggregation:{count:"تعداد: ",sum:"مجموع: ",avg:"میانگین: ",min:"کمترین: ",max:"بیشترین: "},pinning:{pinLeft:"پین کردن سمت چپ",pinRight:"پین کردن سمت راست",unpin:"حذف پین"},gridMenu:{columns:"ستون‌ها:",importerTitle:"وارد کردن فایل",exporterAllAsCsv:"خروجی تمام داده‌ها در فایل csv",exporterVisibleAsCsv:"خروجی داده‌های قابل مشاهده در فایل csv",exporterSelectedAsCsv:"خروجی داده‌های انتخاب‌شده در فایل csv",exporterAllAsPdf:"خروجی تمام داده‌ها در فایل pdf",exporterVisibleAsPdf:"خروجی داده‌های قابل مشاهده در فایل pdf",exporterSelectedAsPdf:"خروجی داده‌های انتخاب‌شده در فایل pdf",clearAllFilters:"پاک کردن تمام فیلتر"},importer:{noHeaders:"نام ستون قابل استخراج نیست. آیا فایل عنوان دارد؟",noObjects:"اشیا قابل استخراج نیستند. آیا به جز عنوان‌ها در فایل داده وجود دارد؟",invalidCsv:"فایل قابل پردازش نیست. آیا فرمت csv معتبر است؟",invalidJson:"فایل قابل پردازش نیست. آیا فرمت json معتبر است؟",jsonNotArray:"فایل json وارد شده باید حاوی آرایه باشد. عملیات ساقط شد."},pagination:{sizes:"اقلام در هر صفحه",totalItems:"اقلام",of:"از"},grouping:{group:"گروه‌بندی",ungroup:"حذف گروه‌بندی",aggregate_count:"Agg: تعداد",aggregate_sum:"Agg: جمع",aggregate_max:"Agg: بیشینه",aggregate_min:"Agg: کمینه",aggregate_avg:"Agg: میانگین",aggregate_remove:"Agg: حذف"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fi",{aggregate:{label:"rivit"},groupPanel:{description:"Raahaa ja pudota otsikko tähän ryhmittääksesi sarakkeen mukaan."},search:{placeholder:"Hae...",showingItems:"Näytetään rivejä:",selectedItems:"Valitut rivit:",totalItems:"Rivejä yht.:",size:"Näytä:",first:"Ensimmäinen sivu",next:"Seuraava sivu",previous:"Edellinen sivu",last:"Viimeinen sivu"},menu:{text:"Valitse sarakkeet:"},sort:{ascending:"Järjestä nouseva",descending:"Järjestä laskeva",remove:"Poista järjestys"},column:{hide:"Piilota sarake"},aggregation:{count:"Rivejä yht.: ",sum:"Summa: ",avg:"K.a.: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Lukitse vasemmalle",pinRight:"Lukitse oikealle",unpin:"Poista lukitus"},gridMenu:{columns:"Sarakkeet:",importerTitle:"Tuo tiedosto",exporterAllAsCsv:"Vie tiedot csv-muodossa",exporterVisibleAsCsv:"Vie näkyvä tieto csv-muodossa",exporterSelectedAsCsv:"Vie valittu tieto csv-muodossa",exporterAllAsPdf:"Vie tiedot pdf-muodossa",exporterVisibleAsPdf:"Vie näkyvä tieto pdf-muodossa",exporterSelectedAsPdf:"Vie valittu tieto pdf-muodossa",clearAllFilters:"Puhdista kaikki suodattimet"},importer:{noHeaders:"Sarakkeen nimiä ei voitu päätellä, onko tiedostossa otsikkoriviä?",noObjects:"Tietoja ei voitu lukea, onko tiedostossa muuta kuin otsikkot?",invalidCsv:"Tiedostoa ei voitu käsitellä, oliko se CSV-muodossa?",invalidJson:"Tiedostoa ei voitu käsitellä, oliko se JSON-muodossa?",jsonNotArray:"Tiedosto ei sisältänyt taulukkoa, lopetetaan."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fr",{aggregate:{label:"éléments"},groupPanel:{description:"Faites glisser une en-tête de colonne ici pour créer un groupe de colonnes."},search:{placeholder:"Recherche...",showingItems:"Affichage des éléments :",selectedItems:"Éléments sélectionnés :",totalItems:"Nombre total d'éléments:",size:"Taille de page:",first:"Première page",next:"Page Suivante",previous:"Page précédente",last:"Dernière page"},menu:{text:"Choisir des colonnes :"},sort:{ascending:"Trier par ordre croissant",descending:"Trier par ordre décroissant",remove:"Enlever le tri"},column:{hide:"Cacher la colonne"},aggregation:{count:"lignes totales: ",sum:"total: ",avg:"moy: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Épingler à gauche",pinRight:"Épingler à droite",unpin:"Détacher"},gridMenu:{columns:"Colonnes:",importerTitle:"Importer un fichier",exporterAllAsCsv:"Exporter toutes les données en CSV",exporterVisibleAsCsv:"Exporter les données visibles en CSV",exporterSelectedAsCsv:"Exporter les données sélectionnées en CSV",exporterAllAsPdf:"Exporter toutes les données en PDF",exporterVisibleAsPdf:"Exporter les données visibles en PDF",exporterSelectedAsPdf:"Exporter les données sélectionnées en PDF",clearAllFilters:"Nettoyez tous les filtres"},importer:{noHeaders:"Impossible de déterminer le nom des colonnes, le fichier possède-t-il une en-tête ?",noObjects:"Aucun objet trouvé, le fichier possède-t-il des données autres que l'en-tête ?",invalidCsv:"Le fichier n'a pas pu être traité, le CSV est-il valide ?",invalidJson:"Le fichier n'a pas pu être traité, le JSON est-il valide ?",jsonNotArray:"Le fichier JSON importé doit contenir un tableau, abandon."},pagination:{sizes:"éléments par page",totalItems:"éléments",of:"sur"},grouping:{group:"Grouper",ungroup:"Dégrouper",aggregate_count:"Agg: Compte",aggregate_sum:"Agg: Somme",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Moy",aggregate_remove:"Agg: Retirer"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("he",{aggregate:{label:"items"},groupPanel:{description:"גרור עמודה לכאן ושחרר בכדי לקבץ עמודה זו."},search:{placeholder:"חפש...",showingItems:"מציג:",selectedItems:'סה"כ נבחרו:',totalItems:'סה"כ רשומות:',size:"תוצאות בדף:",first:"דף ראשון",next:"דף הבא",previous:"דף קודם",last:"דף אחרון"},menu:{text:"בחר עמודות:"},sort:{ascending:"סדר עולה",descending:"סדר יורד",remove:"בטל"},column:{hide:"טור הסתר"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clean all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("hy",{aggregate:{label:"տվյալներ"},groupPanel:{description:"Ըստ սյան խմբավորելու համար քաշեք և գցեք վերնագիրն այստեղ։"},search:{placeholder:"Փնտրում...",showingItems:"Ցուցադրված տվյալներ՝",selectedItems:"Ընտրված:",totalItems:"Ընդամենը՝",size:"Տողերի քանակը էջում՝",first:"Առաջին էջ",next:"Հաջորդ էջ",previous:"Նախորդ էջ",last:"Վերջին էջ"},menu:{text:"Ընտրել սյուները:"},sort:{ascending:"Աճման կարգով",descending:"Նվազման կարգով",remove:"Հանել "},column:{hide:"Թաքցնել սյունը"},aggregation:{count:"ընդամենը տող՝ ",sum:"ընդամենը՝ ",avg:"միջին՝ ",min:"մին՝ ",max:"մաքս՝ "},pinning:{pinLeft:"Կպցնել ձախ կողմում",pinRight:"Կպցնել աջ կողմում",unpin:"Արձակել"},gridMenu:{columns:"Սյուներ:",importerTitle:"Ներմուծել ֆայլ",exporterAllAsCsv:"Արտահանել ամբողջը CSV",exporterVisibleAsCsv:"Արտահանել երևացող տվյալները CSV",exporterSelectedAsCsv:"Արտահանել ընտրված տվյալները CSV",exporterAllAsPdf:"Արտահանել PDF",exporterVisibleAsPdf:"Արտահանել երևացող տվյալները PDF",exporterSelectedAsPdf:"Արտահանել ընտրված տվյալները PDF",clearAllFilters:"Մաքրել բոլոր ֆիլտրերը"},importer:{noHeaders:"Հնարավոր չեղավ որոշել սյան վերնագրերը։ Արդյո՞ք ֆայլը ունի վերնագրեր։",noObjects:"Հնարավոր չեղավ կարդալ տվյալները։ Արդյո՞ք ֆայլում կան տվյալներ։",invalidCsv:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր CSV է։",invalidJson:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր Json է։",jsonNotArray:"Ներմուծված json ֆայլը պետք է պարունակի զանգված, կասեցվում է։"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("it",{aggregate:{label:"elementi"},groupPanel:{description:"Trascina un'intestazione all'interno del gruppo della colonna."},search:{placeholder:"Ricerca...",showingItems:"Mostra:",selectedItems:"Selezionati:",totalItems:"Totali:",size:"Tot Pagine:",first:"Prima",next:"Prossima",previous:"Precedente",last:"Ultima"},menu:{text:"Scegli le colonne:"},sort:{ascending:"Asc.",descending:"Desc.",remove:"Annulla ordinamento"},column:{hide:"Nascondi"},aggregation:{count:"righe totali: ",sum:"tot: ",avg:"media: ",min:"minimo: ",max:"massimo: "},pinning:{pinLeft:"Blocca a sx",pinRight:"Blocca a dx",unpin:"Blocca in alto"},gridMenu:{columns:"Colonne:",importerTitle:"Importa",exporterAllAsCsv:"Esporta tutti i dati in CSV",exporterVisibleAsCsv:"Esporta i dati visibili in CSV",exporterSelectedAsCsv:"Esporta i dati selezionati in CSV",exporterAllAsPdf:"Esporta tutti i dati in PDF",exporterVisibleAsPdf:"Esporta i dati visibili in PDF",exporterSelectedAsPdf:"Esporta i dati selezionati in PDF",clearAllFilters:"Pulire tutti i filtri"},importer:{noHeaders:"Impossibile reperire i nomi delle colonne, sicuro che siano indicati all'interno del file?",noObjects:"Impossibile reperire gli oggetti, sicuro che siano indicati all'interno del file?",invalidCsv:"Impossibile elaborare il file, sicuro che sia un CSV?",invalidJson:"Impossibile elaborare il file, sicuro che sia un JSON valido?",jsonNotArray:"Errore! Il file JSON da importare deve contenere un array."},grouping:{group:"Raggruppa",ungroup:"Separa",aggregate_count:"Agg: N. Elem.",aggregate_sum:"Agg: Somma",aggregate_max:"Agg: Massimo",aggregate_min:"Agg: Minimo",aggregate_avg:"Agg: Media",aggregate_remove:"Agg: Rimuovi"},validate:{error:"Errore:",minLength:"Lunghezza minima pari a THRESHOLD caratteri.",maxLength:"Lunghezza massima pari a THRESHOLD caratteri.",required:"Necessario inserire un valore."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ja",{aggregate:{label:"項目"},groupPanel:{description:"ここに列ヘッダをドラッグアンドドロップして、その列でグループ化します。"},search:{placeholder:"検索...",showingItems:"表示中の項目:",selectedItems:"選択した項目:",totalItems:"項目の総数:",size:"ページサイズ:",first:"最初のページ",next:"次のページ",previous:"前のページ",last:"前のページ"},menu:{text:"列の選択:"},sort:{ascending:"昇順に並べ替え",descending:"降順に並べ替え",remove:"並べ替えの解除"},column:{hide:"列の非表示"},aggregation:{count:"合計行数: ",sum:"合計: ",avg:"平均: ",min:"最小: ",max:"最大: "},pinning:{pinLeft:"左に固定",pinRight:"右に固定",unpin:"固定解除"},gridMenu:{columns:"列:",importerTitle:"ファイルのインポート",exporterAllAsCsv:"すべてのデータをCSV形式でエクスポート",exporterVisibleAsCsv:"表示中のデータをCSV形式でエクスポート",exporterSelectedAsCsv:"選択したデータをCSV形式でエクスポート",exporterAllAsPdf:"すべてのデータをPDF形式でエクスポート",exporterVisibleAsPdf:"表示中のデータをPDF形式でエクスポート",exporterSelectedAsPdf:"選択したデータをPDF形式でエクスポート",clearAllFilters:"すべてのフィルタを清掃してください"},importer:{noHeaders:"列名を取得できません。ファイルにヘッダが含まれていることを確認してください。",noObjects:"オブジェクトを取得できません。ファイルにヘッダ以外のデータが含まれていることを確認してください。",invalidCsv:"ファイルを処理できません。ファイルが有効なCSV形式であることを確認してください。",invalidJson:"ファイルを処理できません。ファイルが有効なJSON形式であることを確認してください。",jsonNotArray:"インポートしたJSONファイルには配列が含まれている必要があります。処理を中止します。"},pagination:{sizes:"項目/ページ",totalItems:"項目"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ko",{aggregate:{label:"아이템"},groupPanel:{description:"컬럼으로 그룹핑하기 위해서는 컬럼 헤더를 끌어 떨어뜨려 주세요."},search:{placeholder:"검색...",showingItems:"항목 보여주기:",selectedItems:"선택 항목:",totalItems:"전체 항목:",size:"페이지 크기:",first:"첫번째 페이지",next:"다음 페이지",previous:"이전 페이지",last:"마지막 페이지"},menu:{text:"컬럼을 선택하세요:"},sort:{ascending:"오름차순 정렬",descending:"내림차순 정렬",remove:"소팅 제거"},column:{hide:"컬럼 제거"},aggregation:{count:"전체 갯수: ",sum:"전체: ",avg:"평균: ",min:"최소: ",max:"최대: "},pinning:{pinLeft:"왼쪽 핀",pinRight:"오른쪽 핀",unpin:"핀 제거"},gridMenu:{columns:"컬럼:",importerTitle:"파일 가져오기",exporterAllAsCsv:"csv로 모든 데이터 내보내기",exporterVisibleAsCsv:"csv로 보이는 데이터 내보내기",exporterSelectedAsCsv:"csv로 선택된 데이터 내보내기",exporterAllAsPdf:"pdf로 모든 데이터 내보내기",exporterVisibleAsPdf:"pdf로 보이는 데이터 내보내기",exporterSelectedAsPdf:"pdf로 선택 데이터 내보내기",clearAllFilters:"모든 필터를 청소"},importer:{noHeaders:"컬럼명이 지정되어 있지 않습니다. 파일에 헤더가 명시되어 있는지 확인해 주세요.",noObjects:"데이터가 지정되어 있지 않습니다. 데이터가 파일에 있는지 확인해 주세요.",invalidCsv:"파일을 처리할 수 없습니다. 올바른 csv인지 확인해 주세요.",invalidJson:"파일을 처리할 수 없습니다. 올바른 json인지 확인해 주세요.",jsonNotArray:"json 파일은 배열을 포함해야 합니다."},pagination:{sizes:"페이지당 항목",totalItems:"전체 항목"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("nl",{aggregate:{label:"items"},groupPanel:{description:"Sleep hier een kolomnaam heen om op te groeperen."},search:{placeholder:"Zoeken...",showingItems:"Getoonde items:",selectedItems:"Geselecteerde items:",totalItems:"Totaal aantal items:",size:"Items per pagina:",first:"Eerste pagina",next:"Volgende pagina",previous:"Vorige pagina",last:"Laatste pagina"},menu:{text:"Kies kolommen:"},sort:{ascending:"Sorteer oplopend",descending:"Sorteer aflopend",remove:"Verwijder sortering"},column:{hide:"Verberg kolom"},aggregation:{count:"Aantal rijen: ",sum:"Som: ",avg:"Gemiddelde: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Zet links vast",pinRight:"Zet rechts vast",unpin:"Maak los"},gridMenu:{columns:"Kolommen:",importerTitle:"Importeer bestand",exporterAllAsCsv:"Exporteer alle data als csv",exporterVisibleAsCsv:"Exporteer zichtbare data als csv",exporterSelectedAsCsv:"Exporteer geselecteerde data als csv",exporterAllAsPdf:"Exporteer alle data als pdf",exporterVisibleAsPdf:"Exporteer zichtbare data als pdf",exporterSelectedAsPdf:"Exporteer geselecteerde data als pdf",clearAllFilters:"Reinig alle filters"},importer:{noHeaders:"Kolomnamen kunnen niet worden afgeleid. Heeft het bestand een header?",noObjects:"Objecten kunnen niet worden afgeleid. Bevat het bestand data naast de headers?",invalidCsv:"Het bestand kan niet verwerkt worden. Is het een valide csv bestand?",invalidJson:"Het bestand kan niet verwerkt worden. Is het valide json?",jsonNotArray:"Het json bestand moet een array bevatten. De actie wordt geannuleerd."},pagination:{sizes:"items per pagina",totalItems:"items",of:"van de"},grouping:{group:"Groepeer",ungroup:"Groepering opheffen",aggregate_count:"Agg: Aantal",aggregate_sum:"Agg: Som",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Gem",aggregate_remove:"Agg: Verwijder"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pl",{headerCell:{aria:{defaultFilterLabel:"Filter dla kolumny",removeFilter:"Usuń filter",columnMenuButtonLabel:"Menu kolumny"},priority:"Prioritet:",filterLabel:"Filtr dla kolumny: "},aggregate:{label:"pozycji"},groupPanel:{description:"Przeciągnij nagłówek kolumny tutaj, aby pogrupować według niej."},search:{placeholder:"Szukaj...",showingItems:"Widoczne pozycje:",selectedItems:"Zaznaczone pozycje:",totalItems:"Wszystkich pozycji:",size:"Rozmiar strony:",first:"Pierwsza strona",next:"Następna strona",previous:"Poprzednia strona",last:"Ostatnia strona"},menu:{text:"Wybierz kolumny:"},sort:{ascending:"Sortuj rosnąco",descending:"Sortuj malejąco",none:"Brak sortowania",remove:"Wyłącz sortowanie"},column:{hide:"Ukryj kolumne"},aggregation:{count:"Razem pozycji: ",sum:"Razem: ",avg:"Średnia: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Przypnij do lewej",pinRight:"Przypnij do prawej",unpin:"Odepnij"},columnMenu:{close:"Zamknij"},gridMenu:{aria:{buttonLabel:"Menu Grida"},columns:"Kolumny:",importerTitle:"Importuj plik",exporterAllAsCsv:"Eksportuj wszystkie dane do csv",exporterVisibleAsCsv:"Eksportuj widoczne dane do csv",exporterSelectedAsCsv:"Eksportuj zaznaczone dane do csv",exporterAllAsPdf:"Eksportuj wszystkie dane do pdf",exporterVisibleAsPdf:"Eksportuj widoczne dane do pdf",exporterSelectedAsPdf:"Eksportuj zaznaczone dane do pdf",clearAllFilters:"Wyczyść filtry"},importer:{noHeaders:"Nie udało się wczytać nazw kolumn. Czy plik posiada nagłówek?",noObjects:"Nie udalo się wczytać pozycji. Czy plik zawiera dane??",invalidCsv:"Nie udało się przetworzyć pliku, jest to prawidlowy plik CSV??",invalidJson:"Nie udało się przetworzyć pliku, jest to prawidlowy plik Json?",jsonNotArray:"Importowany plik json musi zawierać tablicę, importowanie przerwane."},pagination:{aria:{pageToFirst:"Pierwsza strona",pageBack:"Poprzednia strona",pageSelected:"Wybrana strona",pageForward:"Następna strona",pageToLast:"Ostatnia strona"},sizes:"pozycji na stronę",totalItems:"pozycji",through:"do",of:"z"},grouping:{group:"Grupuj",ungroup:"Rozgrupuj",aggregate_count:"Zbiorczo: Razem",aggregate_sum:"Zbiorczo: Suma",aggregate_max:"Zbiorczo: Max",aggregate_min:"Zbiorczo: Min",aggregate_avg:"Zbiorczo: Średnia",aggregate_remove:"Zbiorczo: Usuń"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt-br",{headerCell:{aria:{defaultFilterLabel:"Filtro por coluna",removeFilter:"Remover filtro",columnMenuButtonLabel:"Menu coluna"},priority:"Prioridade:",filterLabel:"Filtro por coluna: "},aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Items Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",none:"Nenhuma Ordem",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},columnMenu:{close:"Fechar"},gridMenu:{aria:{buttonLabel:"Menu Grid"},columns:"Colunas:",importerTitle:"Importar arquivo",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O arquivo tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no arquivo, além dos cabeçalhos?",invalidCsv:"Arquivo não pode ser processado. É um CSV válido?",invalidJson:"Arquivo não pode ser processado. É um Json válido?",jsonNotArray:"Arquivo json importado tem que conter um array. Abortando."},pagination:{aria:{pageToFirst:"Primeira página",pageBack:"Página anterior",pageSelected:"Página Selecionada",pageForward:"Proxima",pageToLast:"Anterior"},sizes:"itens por página",totalItems:"itens",through:"através dos",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt",{headerCell:{aria:{defaultFilterLabel:"Filtro por coluna",removeFilter:"Remover filtro",columnMenuButtonLabel:"Menu coluna"},priority:"Prioridade:",filterLabel:"Filtro por coluna: "},aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:", -selectedItems:"Itens Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",none:"Nenhuma Ordem",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},columnMenu:{close:"Fechar"},gridMenu:{aria:{buttonLabel:"Menu Grid"},columns:"Colunas:",importerTitle:"Importar ficheiro",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O ficheiro tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no ficheiro, além dos cabeçalhos?",invalidCsv:"Ficheiro não pode ser processado. É um CSV válido?",invalidJson:"Ficheiro não pode ser processado. É um Json válido?",jsonNotArray:"Ficheiro json importado tem que conter um array. Interrompendo."},pagination:{aria:{pageToFirst:"Primeira página",pageBack:"Página anterior",pageSelected:"Página Selecionada",pageForward:"Próxima",pageToLast:"Anterior"},sizes:"itens por página",totalItems:"itens",through:"através dos",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ro",{headerCell:{aria:{defaultFilterLabel:"Filtru pentru coloana",removeFilter:"Sterge filtru",columnMenuButtonLabel:"Column Menu"},priority:"Prioritate:",filterLabel:"Filtru pentru coloana:"},aggregate:{label:"Elemente"},groupPanel:{description:"Trage un cap de coloana aici pentru a grupa elementele dupa coloana respectiva"},search:{placeholder:"Cauta...",showingItems:"Arata elementele:",selectedItems:"Elementele selectate:",totalItems:"Total elemente:",size:"Marime pagina:",first:"Prima pagina",next:"Pagina urmatoare",previous:"Pagina anterioara",last:"Ultima pagina"},menu:{text:"Alege coloane:"},sort:{ascending:"Ordoneaza crescator",descending:"Ordoneaza descrescator",none:"Fara ordonare",remove:"Sterge ordonarea"},column:{hide:"Ascunde coloana"},aggregation:{count:"total linii: ",sum:"total: ",avg:"medie: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Pin la stanga",pinRight:"Pin la dreapta",unpin:"Sterge pinul"},columnMenu:{close:"Inchide"},gridMenu:{aria:{buttonLabel:"Grid Menu"},columns:"Coloane:",importerTitle:"Incarca fisier",exporterAllAsCsv:"Exporta toate datele ca csv",exporterVisibleAsCsv:"Exporta datele vizibile ca csv",exporterSelectedAsCsv:"Exporta datele selectate ca csv",exporterAllAsPdf:"Exporta toate datele ca pdf",exporterVisibleAsPdf:"Exporta datele vizibile ca pdf",exporterSelectedAsPdf:"Exporta datele selectate ca csv pdf",clearAllFilters:"Sterge toate filtrele"},importer:{noHeaders:"Numele coloanelor nu a putut fi incarcat, acest fisier are un header?",noObjects:"Datele nu au putut fi incarcate, exista date in fisier in afara numelor de coloane?",invalidCsv:"Fisierul nu a putut fi procesat, ati incarcat un CSV valid ?",invalidJson:"Fisierul nu a putut fi procesat, ati incarcat un Json valid?",jsonNotArray:"Json-ul incarcat trebuie sa contina un array, inchidere."},pagination:{aria:{pageToFirst:"Prima pagina",pageBack:"O pagina inapoi",pageSelected:"Pagina selectata",pageForward:"O pagina inainte",pageToLast:"Ultima pagina"},sizes:"Elemente per pagina",totalItems:"elemente",through:"prin",of:"of"},grouping:{group:"Grupeaza",ungroup:"Opreste gruparea",aggregate_count:"Agg: Count",aggregate_sum:"Agg: Sum",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Avg",aggregate_remove:"Agg: Remove"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ru",{headerCell:{aria:{defaultFilterLabel:"Фильтр столбца",removeFilter:"Удалить фильтр",columnMenuButtonLabel:"Меню столбца"},priority:"Приоритет:",filterLabel:"Фильтр столбца: "},aggregate:{label:"элементы"},groupPanel:{description:"Для группировки по столбцу перетащите сюда его название."},search:{placeholder:"Поиск...",showingItems:"Показать элементы:",selectedItems:"Выбранные элементы:",totalItems:"Всего элементов:",size:"Размер страницы:",first:"Первая страница",next:"Следующая страница",previous:"Предыдущая страница",last:"Последняя страница"},menu:{text:"Выбрать столбцы:"},sort:{ascending:"По возрастанию",descending:"По убыванию",none:"Без сортировки",remove:"Убрать сортировку"},column:{hide:"Спрятать столбец"},aggregation:{count:"всего строк: ",sum:"итого: ",avg:"среднее: ",min:"мин: ",max:"макс: "},pinning:{pinLeft:"Закрепить слева",pinRight:"Закрепить справа",unpin:"Открепить"},columnMenu:{close:"Закрыть"},gridMenu:{aria:{buttonLabel:"Меню"},columns:"Столбцы:",importerTitle:"Импортировать файл",exporterAllAsCsv:"Экспортировать всё в CSV",exporterVisibleAsCsv:"Экспортировать видимые данные в CSV",exporterSelectedAsCsv:"Экспортировать выбранные данные в CSV",exporterAllAsPdf:"Экспортировать всё в PDF",exporterVisibleAsPdf:"Экспортировать видимые данные в PDF",exporterSelectedAsPdf:"Экспортировать выбранные данные в PDF",clearAllFilters:"Очистите все фильтры"},importer:{noHeaders:"Не удалось получить названия столбцов, есть ли в файле заголовок?",noObjects:"Не удалось получить данные, есть ли в файле строки кроме заголовка?",invalidCsv:"Не удалось обработать файл, это правильный CSV-файл?",invalidJson:"Не удалось обработать файл, это правильный JSON?",jsonNotArray:"Импортируемый JSON-файл должен содержать массив, операция отменена."},pagination:{aria:{pageToFirst:"Первая страница",pageBack:"Предыдущая страница",pageSelected:"Выбранная страница",pageForward:"Следующая страница",pageToLast:"Последняя страница"},sizes:"строк на страницу",totalItems:"строк",through:"по",of:"из"},grouping:{group:"Группировать",ungroup:"Разгруппировать",aggregate_count:"Группировать: Count",aggregate_sum:"Для группы: Сумма",aggregate_max:"Для группы: Максимум",aggregate_min:"Для группы: Минимум",aggregate_avg:"Для группы: Среднее",aggregate_remove:"Для группы: Пусто"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sk",{aggregate:{label:"items"},groupPanel:{description:"Pretiahni sem názov stĺpca pre zoskupenie podľa toho stĺpca."},search:{placeholder:"Hľadaj...",showingItems:"Zobrazujem položky:",selectedItems:"Vybraté položky:",totalItems:"Počet položiek:",size:"Počet:",first:"Prvá strana",next:"Ďalšia strana",previous:"Predchádzajúca strana",last:"Posledná strana"},menu:{text:"Vyberte stĺpce:"},sort:{ascending:"Zotriediť vzostupne",descending:"Zotriediť zostupne",remove:"Vymazať triedenie"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sv",{aggregate:{label:"Artiklar"},groupPanel:{description:"Dra en kolumnrubrik hit och släpp den för att gruppera efter den kolumnen."},search:{placeholder:"Sök...",showingItems:"Visar artiklar:",selectedItems:"Valda artiklar:",totalItems:"Antal artiklar:",size:"Sidstorlek:",first:"Första sidan",next:"Nästa sida",previous:"Föregående sida",last:"Sista sidan"},menu:{text:"Välj kolumner:"},sort:{ascending:"Sortera stigande",descending:"Sortera fallande",remove:"Inaktivera sortering"},column:{hide:"Göm kolumn"},aggregation:{count:"Antal rader: ",sum:"Summa: ",avg:"Genomsnitt: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Fäst vänster",pinRight:"Fäst höger",unpin:"Lösgör"},gridMenu:{columns:"Kolumner:",importerTitle:"Importera fil",exporterAllAsCsv:"Exportera all data som CSV",exporterVisibleAsCsv:"Exportera synlig data som CSV",exporterSelectedAsCsv:"Exportera markerad data som CSV",exporterAllAsPdf:"Exportera all data som PDF",exporterVisibleAsPdf:"Exportera synlig data som PDF",exporterSelectedAsPdf:"Exportera markerad data som PDF",clearAllFilters:"Rengör alla filter"},importer:{noHeaders:"Kolumnnamn kunde inte härledas. Har filen ett sidhuvud?",noObjects:"Objekt kunde inte härledas. Har filen data undantaget sidhuvud?",invalidCsv:"Filen kunde inte behandlas, är den en giltig CSV?",invalidJson:"Filen kunde inte behandlas, är den en giltig JSON?",jsonNotArray:"Importerad JSON-fil måste innehålla ett fält. Import avbruten."},pagination:{sizes:"Artiklar per sida",totalItems:"Artiklar"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ta",{aggregate:{label:"உருப்படிகள்"},groupPanel:{description:"ஒரு பத்தியை குழுவாக அமைக்க அப்பத்தியின் தலைப்பை இங்கே இழுத்து வரவும் "},search:{placeholder:"தேடல் ...",showingItems:"உருப்படிகளை காண்பித்தல்:",selectedItems:"தேர்ந்தெடுக்கப்பட்ட உருப்படிகள்:",totalItems:"மொத்த உருப்படிகள்:",size:"பக்க அளவு: ",first:"முதல் பக்கம்",next:"அடுத்த பக்கம்",previous:"முந்தைய பக்கம் ",last:"இறுதி பக்கம்"},menu:{text:"பத்திகளை தேர்ந்தெடு:"},sort:{ascending:"மேலிருந்து கீழாக",descending:"கீழிருந்து மேலாக",remove:"வரிசையை நீக்கு"},column:{hide:"பத்தியை மறைத்து வை "},aggregation:{count:"மொத்த வரிகள்:",sum:"மொத்தம்: ",avg:"சராசரி: ",min:"குறைந்தபட்ச: ",max:"அதிகபட்ச: "},pinning:{pinLeft:"இடதுபுறமாக தைக்க ",pinRight:"வலதுபுறமாக தைக்க",unpin:"பிரி"},gridMenu:{columns:"பத்திகள்:",importerTitle:"கோப்பு : படித்தல்",exporterAllAsCsv:"எல்லா தரவுகளையும் கோப்பாக்கு: csv",exporterVisibleAsCsv:"இருக்கும் தரவுகளை கோப்பாக்கு: csv",exporterSelectedAsCsv:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: csv",exporterAllAsPdf:"எல்லா தரவுகளையும் கோப்பாக்கு: pdf",exporterVisibleAsPdf:"இருக்கும் தரவுகளை கோப்பாக்கு: pdf",exporterSelectedAsPdf:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"பத்தியின் தலைப்புகளை பெற இயலவில்லை, கோப்பிற்கு தலைப்பு உள்ளதா?",noObjects:"இலக்குகளை உருவாக்க முடியவில்லை, கோப்பில் தலைப்புகளை தவிர தரவு ஏதேனும் உள்ளதா? ",invalidCsv:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - csv",invalidJson:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - json",jsonNotArray:"படித்த கோப்பில் வரிசைகள் உள்ளது, நடைமுறை ரத்து செய் : json"},pagination:{sizes:"உருப்படிகள் / பக்கம்",totalItems:"உருப்படிகள் "},grouping:{group:"குழு",ungroup:"பிரி",aggregate_count:"மதிப்பீட்டு : எண்ணு",aggregate_sum:"மதிப்பீட்டு : கூட்டல்",aggregate_max:"மதிப்பீட்டு : அதிகபட்சம்",aggregate_min:"மதிப்பீட்டு : குறைந்தபட்சம்",aggregate_avg:"மதிப்பீட்டு : சராசரி",aggregate_remove:"மதிப்பீட்டு : நீக்கு"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("tr",{headerCell:{aria:{defaultFilterLabel:"Sütun için filtre",removeFilter:"Filtreyi Kaldır",columnMenuButtonLabel:"Sütun Menüsü"},priority:"Öncelik:",filterLabel:"Sütun için filtre: "},aggregate:{label:"kayıtlar"},groupPanel:{description:"Sütuna göre gruplamak için sütun başlığını buraya sürükleyin ve bırakın."},search:{placeholder:"Arama...",showingItems:"Gösterilen Kayıt:",selectedItems:"Seçili Kayıt:",totalItems:"Toplam Kayıt:",size:"Sayfa Boyutu:",first:"İlk Sayfa",next:"Sonraki Sayfa",previous:"Önceki Sayfa",last:"Son Sayfa"},menu:{text:"Sütunları Seç:"},sort:{ascending:"Artan Sırada Sırala",descending:"Azalan Sırada Sırala",none:"Sıralama Yapma",remove:"Sıralamayı Kaldır"},column:{hide:"Sütunu Gizle"},aggregation:{count:"toplam satır: ",sum:"toplam: ",avg:"ort: ",min:"min: ",max:"maks: "},pinning:{pinLeft:"Sola Sabitle",pinRight:"Sağa Sabitle",unpin:"Sabitlemeyi Kaldır"},columnMenu:{close:"Kapat"},gridMenu:{aria:{buttonLabel:"Tablo Menü"},columns:"Sütunlar:",importerTitle:"Dosya içeri aktar",exporterAllAsCsv:"Bütün veriyi CSV olarak dışarı aktar",exporterVisibleAsCsv:"Görünen veriyi CSV olarak dışarı aktar",exporterSelectedAsCsv:"Seçili veriyi CSV olarak dışarı aktar",exporterAllAsPdf:"Bütün veriyi PDF olarak dışarı aktar",exporterVisibleAsPdf:"Görünen veriyi PDF olarak dışarı aktar",exporterSelectedAsPdf:"Seçili veriyi PDF olarak dışarı aktar",clearAllFilters:"Bütün filtreleri kaldır"},importer:{noHeaders:"Sütun isimleri üretilemiyor, dosyanın bir başlığı var mı?",noObjects:"Nesneler üretilemiyor, dosyada başlıktan başka bir veri var mı?",invalidCsv:"Dosya işlenemedi, geçerli bir CSV dosyası mı?",invalidJson:"Dosya işlenemedi, geçerli bir Json dosyası mı?",jsonNotArray:"Alınan Json dosyasında bir dizi bulunmalıdır, işlem iptal ediliyor."},pagination:{aria:{pageToFirst:"İlk sayfaya",pageBack:"Geri git",pageSelected:"Seçili sayfa",pageForward:"İleri git",pageToLast:"Sona git"},sizes:"Sayfadaki nesne sayısı",totalItems:"kayıtlar",through:"",of:""},grouping:{group:"Grupla",ungroup:"Gruplama",aggregate_count:"Yekun: Sayı",aggregate_sum:"Yekun: Toplam",aggregate_max:"Yekun: Maks",aggregate_min:"Yekun: Min",aggregate_avg:"Yekun: Ort",aggregate_remove:"Yekun: Sil"}}),a}])}])}(),function(){var a=["uiT","uiTranslate"],b=["t","uiTranslate"],c=angular.module("ui.grid.i18n");c.constant("i18nConstants",{MISSING:"[MISSING]",UPDATE_EVENT:"$uiI18n",LOCALE_DIRECTIVE_ALIAS:"uiI18n",DEFAULT_LANG:"en"}),c.service("i18nService",["$log","i18nConstants","$rootScope",function(a,b,c){var d={_langs:{},current:null,get:function(a){return this._langs[a.toLowerCase()]},add:function(a,b){var c=a.toLowerCase();this._langs[c]||(this._langs[c]={}),angular.extend(this._langs[c],b)},getAllLangs:function(){var a=[];if(!this._langs)return a;for(var b in this._langs)a.push(b);return a},setCurrent:function(a){this.current=a.toLowerCase()},getCurrentLang:function(){return this.current}},e={add:function(a,b){"object"==typeof a?angular.forEach(a,function(a){a&&d.add(a,b)}):d.add(a,b)},getAllLangs:function(){return d.getAllLangs()},get:function(a){var b=a?a:e.getCurrentLang();return d.get(b)},getSafeText:function(a,c){var f=c?c:e.getCurrentLang(),g=d.get(f);if(!g)return b.MISSING;for(var h=a.split("."),i=g,j=0;jf?0===g?new d(a,c[h]):new d(e[g-1],c[h]):new d(a,c[h])},f.prototype.getRowColRight=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=f===c.length-1?0:f+1;return f>h?g===e.length-1?new d(a,c[h]):new d(e[g+1],c[h]):new d(a,c[h])},f.prototype.getRowColDown=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);return-1===f&&(f=0),g===e.length-1?new d(a,c[f]):new d(e[g+1],c[f])},f.prototype.getRowColPageDown=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=this.bodyContainer.minRowsToRender();return g>=e.length-h?new d(e[e.length-1],c[f]):new d(e[g+h],c[f])},f.prototype.getRowColUp=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);return-1===f&&(f=0),0===g?new d(a,c[f]):new d(e[g-1],c[f])},f.prototype.getRowColPageUp=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=this.bodyContainer.minRowsToRender();return 0>g-h?new d(e[0],c[f]):new d(e[g-h],c[f])},f}]),a.service("uiGridCellNavService",["gridUtil","uiGridConstants","uiGridCellNavConstants","$q","uiGridCellNavFactory","GridRowColumn","ScrollEvent",function(a,b,c,d,e,f,g){var h={initializeGrid:function(a){a.registerColumnBuilder(h.cellNavColumnBuilder),a.cellNav={},a.cellNav.lastRowCol=null,a.cellNav.focusedCells=[],h.defaultGridOptions(a.options);var b={events:{cellNav:{navigate:function(a,b){},viewPortKeyDown:function(a,b){},viewPortKeyPress:function(a,b){}}},methods:{cellNav:{scrollToFocus:function(b,c){return h.scrollToFocus(a,b,c)},getFocusedCell:function(){return a.cellNav.lastRowCol},getCurrentSelection:function(){return a.cellNav.focusedCells},rowColSelectIndex:function(b){for(var c=-1,d=0;db&&(c+=a.drawnWidth)});var e=0===d?0:(d+1)/a.renderContainers.body.visibleColumnCache.length;return c+=b.drawnWidth*e}};return h}]),a.directive("uiGridCellnav",["gridUtil","uiGridCellNavService","uiGridCellNavConstants","uiGridConstants","GridRowColumn","$timeout","$compile",function(a,b,c,d,e,f,g){return{replace:!0,priority:-150,require:"^uiGrid",scope:!1,controller:function(){},compile:function(){return{pre:function(a,f,g,h){var i=a,j=h.grid;b.initializeGrid(j),h.cellNav={},h.cellNav.makeRowCol=function(a){return a instanceof e||(a=new e(a.row,a.col)),a},h.cellNav.getActiveCell=function(){var a=f[0].getElementsByClassName("ui-grid-cell-focus");return a.length>0?a[0]:void 0},h.cellNav.broadcastCellNav=j.cellNav.broadcastCellNav=function(a,b,d){b=!(void 0===b||!b),a=h.cellNav.makeRowCol(a),h.cellNav.broadcastFocus(a,b,d),i.$broadcast(c.CELL_NAV_EVENT,a,b,d)},h.cellNav.clearFocus=j.cellNav.clearFocus=function(){j.cellNav.focusedCells=[],i.$broadcast(c.CELL_NAV_EVENT)},h.cellNav.broadcastFocus=function(a,b,c){b=!(void 0===b||!b),a=h.cellNav.makeRowCol(a);var d=a.row,f=a.col,g=h.grid.api.cellNav.rowColSelectIndex(a);if(null===j.cellNav.lastRowCol||-1===g){var i=new e(d,f);null!==j.cellNav.lastRowCol&&j.cellNav.lastRowCol.row===i.row&&j.cellNav.lastRowCol.col===i.col||(j.api.cellNav.raise.navigate(i,j.cellNav.lastRowCol),j.cellNav.lastRowCol=i),h.grid.options.modifierKeysToMultiSelectCells&&b?j.cellNav.focusedCells.push(a):j.cellNav.focusedCells=[a]}else j.options.modifierKeysToMultiSelectCells&&b&&g>=0&&j.cellNav.focusedCells.splice(g,1)},h.cellNav.handleKeyDown=function(a){var e=b.getDirection(a);if(null===e)return null;var f="body";a.uiGridTargetRenderContainerId&&(f=a.uiGridTargetRenderContainerId);var g=h.grid.api.cellNav.getFocusedCell();if(g){var i=h.grid.renderContainers[f].cellNav.getNextRowCol(e,g.row,g.col),k=h.grid.renderContainers[f].cellNav.getFocusableCols(),l=h.grid.api.cellNav.rowColSelectIndex(i);return e===c.direction.LEFT&&i.col===k[k.length-1]&&i.row===g.row&&a.keyCode===d.keymap.TAB&&a.shiftKey?(j.cellNav.focusedCells.splice(l,1),h.cellNav.clearFocus(),!0):e!==c.direction.RIGHT||i.col!==k[0]||i.row!==g.row||a.keyCode!==d.keymap.TAB||a.shiftKey?(j.scrollToIfNecessary(i.row,i.col).then(function(){h.cellNav.broadcastCellNav(i)}),a.stopPropagation(),a.preventDefault(),!1):(j.cellNav.focusedCells.splice(l,1),h.cellNav.clearFocus(),!0)}}},post:function(a,b,d,e){function f(){var d='
         
        ',e=g(d)(a);b.prepend(e),a.$on(c.CELL_NAV_EVENT,function(a,b,c,d){function f(a){a!==e.text()&&(e[0].style.clip="rect(0px,0px,0px,0px)",e[0].innerHTML="",e[0].style.visibility="hidden",e[0].style.visibility="visible",""!==a&&(e[0].style.clip="auto",e[0].appendChild(document.createTextNode(a+" ")),e[0].style.visibility="hidden",e[0].style.visibility="visible"))}if(!d||"focus"!==d.type){for(var g=[],i=h.api.cellNav.getCurrentSelection(),j=0;j
        ')(b);d.append(o),o.on("focus",function(a){a.uiGridTargetRenderContainerId=m;var b=j.grid.api.cellNav.getFocusedCell();null===b&&(b=j.grid.renderContainers[m].cellNav.getNextRowCol(g.direction.DOWN,null,null),b.row&&b.col&&j.cellNav.broadcastCellNav(b))}),l.setAriaActivedescendant=function(a){d.attr("aria-activedescendant",a)},l.removeAriaActivedescendant=function(a){d.attr("aria-activedescendant")===a&&d.attr("aria-activedescendant","")},j.focus=function(){c.focus.byElement(o[0])};var p=null;o.on("keydown",function(a){a.uiGridTargetRenderContainerId=m;var b=j.grid.api.cellNav.getFocusedCell(),c=j.cellNav.handleKeyDown(a);null===c&&(j.grid.api.cellNav.raise.viewPortKeyDown(a,b),p=b)}),o.on("keypress",function(b){p&&(a(function(){j.grid.api.cellNav.raise.viewPortKeyPress(b,p)},4),p=null)}),b.$on("$destroy",function(){o.off()})}}}}}}}]),a.directive("uiGridViewport",["$timeout","$document","gridUtil","uiGridConstants","uiGridCellNavService","uiGridCellNavConstants","$log","$compile",function(a,b,c,d,e,f,g,h){return{replace:!0,priority:-99999,require:["^uiGrid","^uiGridRenderContainer","?^uiGridCellnav"],scope:!1,compile:function(){return{pre:function(a,b,c,d){},post:function(a,b,c,d){var e=d[0],f=d[1];if(e.grid.api.cellNav){var g=f.containerId;if("body"===g){var h=e.grid;h.api.core.on.scrollBegin(a,function(a){var b=e.grid.api.cellNav.getFocusedCell();null!==b&&f.colContainer.containsColumn(b.col)&&e.cellNav.clearFocus()}),h.api.core.on.scrollEnd(a,function(a){var b=e.grid.api.cellNav.getFocusedCell();null!==b&&f.colContainer.containsColumn(b.col)&&e.cellNav.broadcastCellNav(b)}),h.api.cellNav.on.navigate(a,function(){e.focus()})}}}}}}}]),a.directive("uiGridCell",["$timeout","$document","uiGridCellNavService","gridUtil","uiGridCellNavConstants","uiGridConstants","GridRowColumn",function(a,b,c,d,e,f,g){return{priority:-150,restrict:"A",require:["^uiGrid","?^uiGridCellnav"],scope:!1,link:function(a,b,c,d){function f(a){a.preventDefault()}function h(){if(!a.focused){var c=b.find("div");c.addClass("ui-grid-cell-focus"),b.attr("aria-selected",!0),k.setAriaActivedescendant(b.attr("id")),a.focused=!0}}function i(){if(a.focused){var c=b.find("div");c.removeClass("ui-grid-cell-focus"),b.attr("aria-selected",!1),k.removeAriaActivedescendant(b.attr("id")),a.focused=!1}}var j=d[0],k=d[1];if(j.grid.api.cellNav&&a.col.colDef.allowCellFocus){var l=j.grid;a.focused=!1,b.attr("tabindex",-1),b.find("div").on("click",function(b){j.cellNav.broadcastCellNav(new g(a.row,a.col),b.ctrlKey||b.metaKey,b),b.stopPropagation(),a.$apply()}),b.on("mousedown",f),j.grid.api.edit&&(j.grid.api.edit.on.beginCellEdit(a,function(){b.off("mousedown",f)}),j.grid.api.edit.on.afterCellEdit(a,function(){b.on("mousedown",f)}),j.grid.api.edit.on.cancelCellEdit(a,function(){b.on("mousedown",f)})),b.on("focus",function(b){j.cellNav.broadcastCellNav(new g(a.row,a.col),!1,b),b.stopPropagation(),a.$apply()}),a.$on(e.CELL_NAV_EVENT,function(b,c,d){var e=l.cellNav.focusedCells.some(function(b,c){return b.row===a.row&&b.col===a.col; -});e?h():i()}),a.$on("$destroy",function(){b.find("div").off(),b.off()})}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.edit",["ui.grid"]);a.constant("uiGridEditConstants",{EDITABLE_CELL_TEMPLATE:/EDITABLE_CELL_TEMPLATE/g,EDITABLE_CELL_DIRECTIVE:/editable_cell_directive/g,events:{BEGIN_CELL_EDIT:"uiGridEventBeginCellEdit",END_CELL_EDIT:"uiGridEventEndCellEdit",CANCEL_CELL_EDIT:"uiGridEventCancelCellEdit"}}),a.service("uiGridEditService",["$q","uiGridConstants","gridUtil",function(a,b,c){var d={initializeGrid:function(a){d.defaultGridOptions(a.options),a.registerColumnBuilder(d.editColumnBuilder),a.edit={};var b={events:{edit:{afterCellEdit:function(a,b,c,d){},beginCellEdit:function(a,b,c){},cancelCellEdit:function(a,b){}}},methods:{edit:{}}};a.api.registerEventsFromObject(b.events)},defaultGridOptions:function(a){a.cellEditableCondition=void 0===a.cellEditableCondition?!0:a.cellEditableCondition,a.enableCellEditOnFocus=void 0===a.enableCellEditOnFocus?!1:a.enableCellEditOnFocus},editColumnBuilder:function(b,d,e){var f=[];return b.enableCellEdit=void 0===b.enableCellEdit?void 0===e.enableCellEdit?"object"!==b.type:e.enableCellEdit:b.enableCellEdit,b.cellEditableCondition=void 0===b.cellEditableCondition?e.cellEditableCondition:b.cellEditableCondition,b.enableCellEdit&&(b.editableCellTemplate=b.editableCellTemplate||e.editableCellTemplate||"ui-grid/cellEditor",f.push(c.getTemplate(b.editableCellTemplate).then(function(a){d.editableCellTemplate=a},function(a){throw new Error("Couldn't fetch/use colDef.editableCellTemplate '"+b.editableCellTemplate+"'")}))),b.enableCellEditOnFocus=void 0===b.enableCellEditOnFocus?e.enableCellEditOnFocus:b.enableCellEditOnFocus,a.all(f)},isStartEditKey:function(a){return!(a.metaKey||a.keyCode===b.keymap.ESC||a.keyCode===b.keymap.SHIFT||a.keyCode===b.keymap.CTRL||a.keyCode===b.keymap.ALT||a.keyCode===b.keymap.WIN||a.keyCode===b.keymap.CAPSLOCK||a.keyCode===b.keymap.LEFT||a.keyCode===b.keymap.TAB&&a.shiftKey||a.keyCode===b.keymap.RIGHT||a.keyCode===b.keymap.TAB||a.keyCode===b.keymap.UP||a.keyCode===b.keymap.ENTER&&a.shiftKey||a.keyCode===b.keymap.DOWN||a.keyCode===b.keymap.ENTER)}};return d}]),a.directive("uiGridEdit",["gridUtil","uiGridEditService",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridViewport",["uiGridEditConstants",function(a){return{replace:!0,priority:-99998,require:["^uiGrid","^uiGridRenderContainer"],scope:!1,compile:function(){return{post:function(b,c,d,e){var f=e[0];if(f.grid.api.edit&&f.grid.api.cellNav){var g=e[1].containerId;"body"===g&&(b.$on(a.events.CANCEL_CELL_EDIT,function(){f.focus()}),b.$on(a.events.END_CELL_EDIT,function(){f.focus()}))}}}}}}]),a.directive("uiGridCell",["$compile","$injector","$timeout","uiGridConstants","uiGridEditConstants","gridUtil","$parse","uiGridEditService","$rootScope","$q",function(a,b,c,d,e,f,g,h,i,j){var k=500;if(b.has("uiGridCellNavService")){b.get("uiGridCellNavService")}return{priority:-100,restrict:"A",scope:!1,require:"?^uiGrid",link:function(b,l,m,n){function o(){l.on("dblclick",u),l.on("touchstart",p),n&&n.grid.api.cellNav&&(G=n.grid.api.cellNav.on.viewPortKeyDown(b,function(a,c){null!==c&&(c.row!==b.row||c.col!==b.col||b.col.colDef.enableCellEditOnFocus||s(a))}),F=n.grid.api.cellNav.on.navigate(b,function(a,d){b.col.colDef.enableCellEditOnFocus&&(d&&a.row===d.row&&a.col===d.col||a.row!==b.row||a.col!==b.col||c(function(){u()}))})),b.beginEditEventsWired=!0}function p(a){"undefined"!=typeof a.originalEvent&&void 0!==a.originalEvent&&(a=a.originalEvent),l.on("touchend",q),C=c(function(){},k),C.then(function(){setTimeout(u,0),l.off("touchend",q)})}function q(a){c.cancel(C),l.off("touchend",q)}function r(){l.off("dblclick",u),l.off("keydown",s),l.off("touchstart",p),F(),G(),b.beginEditEventsWired=!1}function s(a){h.isStartEditKey(a)&&u(a)}function t(a,c){return!c.isSaving&&(angular.isFunction(a.colDef.cellEditableCondition)?a.colDef.cellEditableCondition(b):a.colDef.cellEditableCondition)}function u(a){b.grid.api.core.scrollToIfNecessary(b.row,b.col).then(function(){v(a)})}function v(h){if(!E&&t(b.col,b.row)){B=g(b.row.getQualifiedColField(b.col)),A=B(b),z=b.col.editableCellTemplate,z=b.col.colDef.editModelField?z.replace(d.MODEL_COL_FIELD,f.preEval("row.entity."+b.col.colDef.editModelField)):z.replace(d.MODEL_COL_FIELD,b.row.getQualifiedColField(b.col)),z=z.replace(d.COL_FIELD,"grid.getCellValue(row, col)");var k=b.col.colDef.editDropdownFilter?"|"+b.col.colDef.editDropdownFilter:"";z=z.replace(d.CUSTOM_FILTERS,k);var m="text";switch(b.col.colDef.type){case"boolean":m="checkbox";break;case"number":m="number";break;case"date":m="date"}z=z.replace("INPUT_TYPE",m);var n=b.col.colDef.editDropdownOptionsFunction;if(n)j.when(n(b.row.entity,b.col.colDef)).then(function(a){b.editDropdownOptionsArray=a});else{var o=b.col.colDef.editDropdownRowEntityOptionsArrayPath;o?b.editDropdownOptionsArray=y(b.row.entity,o):b.editDropdownOptionsArray=b.col.colDef.editDropdownOptionsArray}b.editDropdownIdLabel=b.col.colDef.editDropdownIdLabel?b.col.colDef.editDropdownIdLabel:"id",b.editDropdownValueLabel=b.col.colDef.editDropdownValueLabel?b.col.colDef.editDropdownValueLabel:"value";var p=function(){E=!0,r();var c=angular.element(z);l.append(c),D=b.$new(),a(c)(D);var d=angular.element(l.children()[0]);d.addClass("ui-grid-cell-contents-hidden")};i.$$phase?p():b.$apply(p);var q=b.col.grid.api.core.on.scrollBegin(b,function(){b.grid.disableScrolling||(w(),b.grid.api.edit.raise.afterCellEdit(b.row.entity,b.col.colDef,B(b),A),q(),s(),u())}),s=b.$on(e.events.END_CELL_EDIT,function(){w(),b.grid.api.edit.raise.afterCellEdit(b.row.entity,b.col.colDef,B(b),A),s(),q(),u()}),u=b.$on(e.events.CANCEL_CELL_EDIT,function(){x(),u(),q(),s()});b.$broadcast(e.events.BEGIN_CELL_EDIT,h),c(function(){b.grid.api.edit.raise.beginCellEdit(b.row.entity,b.col.colDef,h)})}}function w(){if(b.grid.disableScrolling=!1,E){n&&n.grid.api.cellNav&&n.focus();var a=angular.element(l.children()[0]);D.$destroy(),angular.element(l.children()[1]).remove(),a.removeClass("ui-grid-cell-contents-hidden"),E=!1,o(),b.grid.api.core.notifyDataChange(d.dataChange.EDIT)}}function x(){b.grid.disableScrolling=!1,E&&(B.assign(b,A),b.$apply(),b.grid.api.edit.raise.cancelCellEdit(b.row.entity,b.col.colDef),w())}function y(a,b){b=b.replace(/\[(\w+)\]/g,".$1"),b=b.replace(/^\./,"");for(var c=b.split(".");c.length;){var d=c.shift();if(!(d in a))return;a=a[d]}return a}var z,A,B,C,D,E=!1;if(b.col.colDef.enableCellEdit){var F=function(){},G=function(){},H=function(){b.col.colDef.enableCellEdit&&b.row.enableCellEdit!==!1?b.beginEditEventsWired||o():b.beginEditEventsWired&&r()};H();var I=b.$watch("row",function(a,b){a!==b&&H()});b.$on("$destroy",I)}}}}]),a.directive("uiGridEditor",["gridUtil","uiGridConstants","uiGridEditConstants","$timeout","uiGridEditService",function(a,b,c,d,e){return{scope:!0,require:["?^uiGrid","?^uiGridRenderContainer","ngModel"],compile:function(){return{pre:function(a,b,c){},post:function(a,f,g,h){var i,j,k;h[0]&&(i=h[0]),h[1]&&(j=h[1]),h[2]&&(k=h[2]),a.$on(c.events.BEGIN_CELL_EDIT,function(b,c){if(d(function(){if(f[0].focus(),!a.col.colDef.enableCellEditOnFocus&&i&&i.grid.api.cellNav)try{f[0].setSelectionRange(f[0].value.length,f[0].value.length)}catch(b){}else f[0].select()}),i&&i.grid.api.cellNav)var g=i.grid.api.cellNav.on.viewPortKeyPress(a,function(a,b){e.isStartEditKey(a)&&(k.$setViewValue(String.fromCharCode("number"==typeof a.which?a.which:a.keyCode),a),k.$render()),g()});f.on("blur",function(b){a.stopEdit(b)})}),a.deepEdit=!1,a.stopEdit=function(b){a.inputForm&&!a.inputForm.$valid?(b.stopPropagation(),a.$emit(c.events.CANCEL_CELL_EDIT)):a.$emit(c.events.END_CELL_EDIT),a.deepEdit=!1},f.on("click",function(b){"checkbox"!==f[0].type&&(a.deepEdit=!0,d(function(){a.grid.disableScrolling=!0}))}),f.on("keydown",function(d){switch(d.keyCode){case b.keymap.ESC:d.stopPropagation(),a.$emit(c.events.CANCEL_CELL_EDIT)}if(!a.deepEdit||d.keyCode!==b.keymap.LEFT&&d.keyCode!==b.keymap.RIGHT&&d.keyCode!==b.keymap.UP&&d.keyCode!==b.keymap.DOWN)if(i&&i.grid.api.cellNav)d.uiGridTargetRenderContainerId=j.containerId,null!==i.cellNav.handleKeyDown(d)&&a.stopEdit(d);else switch(d.keyCode){case b.keymap.ENTER:case b.keymap.TAB:d.stopPropagation(),d.preventDefault(),a.stopEdit(d)}else d.stopPropagation();return!0})}}}}}]),a.directive("uiGridEditor",["$filter",function(a){function b(a){if("undefined"==typeof a||""===a)return null;var b=a.split("-");if(3!==b.length)return null;var c=parseInt(b[0],10),d=parseInt(b[1],10),e=parseInt(b[2],10);return 1>d||1>c||1>e?null:new Date(c,d-1,e)}return{priority:-100,require:"?ngModel",link:function(c,d,e,f){2===angular.version.minor&&e.type&&"date"===e.type&&f&&(f.$formatters.push(function(b){return f.$setValidity(null,!b||!isNaN(b.getTime())),a("date")(b,"yyyy-MM-dd")}),f.$parsers.push(function(a){if(a&&a.length>0){var c=b(a);return f.$setValidity(null,c&&!isNaN(c.getTime())),c}return f.$setValidity(null,!0),null}))}}}]),a.directive("uiGridEditDropdown",["uiGridConstants","uiGridEditConstants",function(a,b){return{require:["?^uiGrid","?^uiGridRenderContainer"],scope:!0,compile:function(){return{pre:function(a,b,c){},post:function(c,d,e,f){var g=f[0],h=f[1];c.$on(b.events.BEGIN_CELL_EDIT,function(){d[0].focus(),d[0].style.width=d[0].parentElement.offsetWidth-1+"px",d.on("blur",function(a){c.stopEdit(a)})}),c.stopEdit=function(a){c.$emit(b.events.END_CELL_EDIT)},d.on("keydown",function(d){switch(d.keyCode){case a.keymap.ESC:d.stopPropagation(),c.$emit(b.events.CANCEL_CELL_EDIT)}if(g&&g.grid.api.cellNav)d.uiGridTargetRenderContainerId=h.containerId,null!==g.cellNav.handleKeyDown(d)&&c.stopEdit(d);else switch(d.keyCode){case a.keymap.ENTER:case a.keymap.TAB:d.stopPropagation(),d.preventDefault(),c.stopEdit(d)}return!0})}}}}}]),a.directive("uiGridEditFileChooser",["gridUtil","uiGridConstants","uiGridEditConstants","$timeout",function(a,b,c,d){return{scope:!0,require:["?^uiGrid","?^uiGridRenderContainer"],compile:function(){return{pre:function(a,b,c){},post:function(b,d,e,f){var g,h;f[0]&&(g=f[0]),f[1]&&(h=f[1]);var i=(g.grid,function(d){var e=d.srcElement||d.target;e&&e.files&&e.files.length>0?("function"==typeof b.col.colDef.editFileChooserCallback?b.col.colDef.editFileChooserCallback(b.row,b.col,e.files):a.logError("You need to set colDef.editFileChooserCallback to use the file chooser"),e.form.reset(),b.$emit(c.events.END_CELL_EDIT)):b.$emit(c.events.CANCEL_CELL_EDIT)});d[0].addEventListener("change",i,!1),b.$on(c.events.BEGIN_CELL_EDIT,function(){d[0].focus(),d[0].select(),d.on("blur",function(a){b.$emit(c.events.END_CELL_EDIT)})})}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.expandable",["ui.grid"]);a.service("uiGridExpandableService",["gridUtil","$compile",function(a,b){var c={initializeGrid:function(b){b.expandable={},b.expandable.expandedAll=!1,b.options.enableExpandable=b.options.enableExpandable!==!1,b.options.expandableRowHeight=b.options.expandableRowHeight||150,b.options.expandableRowHeaderWidth=b.options.expandableRowHeaderWidth||40,b.options.enableExpandable&&!b.options.expandableRowTemplate&&(a.logError("You have not set the expandableRowTemplate, disabling expandable module"),b.options.enableExpandable=!1);var d={events:{expandable:{rowExpandedBeforeStateChanged:function(a,b){},rowExpandedStateChanged:function(a,b){}}},methods:{expandable:{toggleRowExpansion:function(a){var d=b.getRow(a);null!==d&&c.toggleRowExpansion(b,d)},expandAllRows:function(){c.expandAllRows(b)},collapseAllRows:function(){c.collapseAllRows(b)},toggleAllRows:function(){c.toggleAllRows(b)}}}};b.api.registerEventsFromObject(d.events),b.api.registerMethodsFromObject(d.methods)},toggleRowExpansion:function(a,b){a.api.expandable.raise.rowExpandedBeforeStateChanged(b),b.isExpanded=!b.isExpanded,angular.isUndefined(b.expandedRowHeight)&&(b.expandedRowHeight=a.options.expandableRowHeight),b.isExpanded?b.height=b.grid.options.rowHeight+b.expandedRowHeight:(b.height=b.grid.options.rowHeight,a.expandable.expandedAll=!1),a.api.expandable.raise.rowExpandedStateChanged(b)},expandAllRows:function(a,b){a.renderContainers.body.visibleRowCache.forEach(function(b){b.isExpanded||c.toggleRowExpansion(a,b)}),a.expandable.expandedAll=!0,a.queueGridRefresh()},collapseAllRows:function(a){a.renderContainers.body.visibleRowCache.forEach(function(b){b.isExpanded&&c.toggleRowExpansion(a,b)}),a.expandable.expandedAll=!1,a.queueGridRefresh()},toggleAllRows:function(a){a.expandable.expandedAll?c.collapseAllRows(a):c.expandAllRows(a)}};return c}]),a.directive("uiGridExpandable",["uiGridExpandableService","$templateCache",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(c,d,e,f){if(f.grid.options.enableExpandableRowHeader!==!1){var g={name:"expandableButtons",displayName:"",exporterSuppressExport:!0,enableColumnResizing:!1,enableColumnMenu:!1,width:f.grid.options.expandableRowHeaderWidth||40};g.cellTemplate=b.get("ui-grid/expandableRowHeader"),g.headerCellTemplate=b.get("ui-grid/expandableTopRowHeader"),f.grid.addRowHeaderColumn(g)}a.initializeGrid(f.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGrid",["uiGridExpandableService","$templateCache",function(a,b){return{replace:!0,priority:599,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,b,c,d){d.grid.api.core.on.renderingComplete(a,function(){a.row&&a.row.grid&&a.row.grid.options&&a.row.grid.options.enableExpandable&&(d.grid.parentRow=a.row)})},post:function(a,b,c,d){}}}}}]),a.directive("uiGridExpandableRow",["uiGridExpandableService","$timeout","$compile","uiGridConstants","gridUtil","$interval","$log",function(a,b,c,d,e,f,g){return{replace:!1,priority:0,scope:!1,compile:function(){return{pre:function(a,b,d,f){e.getTemplate(a.grid.options.expandableRowTemplate).then(function(d){if(a.grid.options.expandableRowScope){var e=a.grid.options.expandableRowScope;for(var f in e)e.hasOwnProperty(f)&&(a[f]=e[f])}var g=c(d)(a);b.append(g),a.row.expandedRendered=!0})},post:function(a,b,c,d){a.$on("$destroy",function(){a.row.expandedRendered=!1})}}}}}]),a.directive("uiGridRow",["$compile","gridUtil","$templateCache",function(a,b,c){return{priority:-200,scope:!1,compile:function(a,b){return{pre:function(a,b,c,d){a.expandableRow={},a.expandableRow.shouldRenderExpand=function(){var b="body"===a.colContainer.name&&a.grid.options.enableExpandable!==!1&&a.row.isExpanded&&(!a.grid.isScrollingVertically||a.row.expandedRendered);return b},a.expandableRow.shouldRenderFiller=function(){var b=a.row.isExpanded&&("body"!==a.colContainer.name||a.grid.isScrollingVertically&&!a.row.expandedRendered);return b}},post:function(a,b,c,d){}}}}}]),a.directive("uiGridViewport",["$compile","gridUtil","$templateCache",function(a,b,c){return{priority:-200,scope:!1,compile:function(a,b){var d=angular.element(a.children().children()[0]),e=c.get("ui-grid/expandableScrollFiller"),f=c.get("ui-grid/expandableRow");return d.append(f),d.append(e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.exporter",["ui.grid"]);a.constant("uiGridExporterConstants",{featureName:"exporter",ALL:"all",VISIBLE:"visible",SELECTED:"selected",CSV_CONTENT:"CSV_CONTENT",BUTTON_LABEL:"BUTTON_LABEL",FILE_NAME:"FILE_NAME"}),a.service("uiGridExporterService",["$q","uiGridExporterConstants","gridUtil","$compile","$interval","i18nService",function(a,b,c,d,e,f){var g={delay:100,initializeGrid:function(a){a.exporter={},this.defaultGridOptions(a.options);var b={events:{exporter:{}},methods:{exporter:{csvExport:function(b,c){g.csvExport(a,b,c)},pdfExport:function(b,c){g.pdfExport(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods),a.api.core.addToGridMenu?g.addToMenu(a):e(function(){a.api.core.addToGridMenu&&g.addToMenu(a)},this.delay,1)},defaultGridOptions:function(a){a.exporterSuppressMenu=a.exporterSuppressMenu===!0,a.exporterMenuLabel=a.exporterMenuLabel?a.exporterMenuLabel:"Export",a.exporterSuppressColumns=a.exporterSuppressColumns?a.exporterSuppressColumns:[],a.exporterCsvColumnSeparator=a.exporterCsvColumnSeparator?a.exporterCsvColumnSeparator:",",a.exporterCsvFilename=a.exporterCsvFilename?a.exporterCsvFilename:"download.csv",a.exporterPdfFilename=a.exporterPdfFilename?a.exporterPdfFilename:"download.pdf",a.exporterOlderExcelCompatibility=a.exporterOlderExcelCompatibility===!0,a.exporterPdfDefaultStyle=a.exporterPdfDefaultStyle?a.exporterPdfDefaultStyle:{fontSize:11},a.exporterPdfTableStyle=a.exporterPdfTableStyle?a.exporterPdfTableStyle:{margin:[0,5,0,15]},a.exporterPdfTableHeaderStyle=a.exporterPdfTableHeaderStyle?a.exporterPdfTableHeaderStyle:{bold:!0,fontSize:12,color:"black"},a.exporterPdfHeader=a.exporterPdfHeader?a.exporterPdfHeader:null,a.exporterPdfFooter=a.exporterPdfFooter?a.exporterPdfFooter:null,a.exporterPdfOrientation=a.exporterPdfOrientation?a.exporterPdfOrientation:"landscape",a.exporterPdfPageSize=a.exporterPdfPageSize?a.exporterPdfPageSize:"A4",a.exporterPdfMaxGridWidth=a.exporterPdfMaxGridWidth?a.exporterPdfMaxGridWidth:720,a.exporterMenuAllData=void 0!==a.exporterMenuAllData?a.exporterMenuAllData:!0,a.exporterMenuVisibleData=void 0!==a.exporterMenuVisibleData?a.exporterMenuVisibleData:!0,a.exporterMenuSelectedData=void 0!==a.exporterMenuSelectedData?a.exporterMenuSelectedData:!0,a.exporterMenuCsv=void 0!==a.exporterMenuCsv?a.exporterMenuCsv:!0,a.exporterMenuPdf=void 0!==a.exporterMenuPdf?a.exporterMenuPdf:!0,a.exporterPdfCustomFormatter=a.exporterPdfCustomFormatter&&"function"==typeof a.exporterPdfCustomFormatter?a.exporterPdfCustomFormatter:function(a){return a},a.exporterHeaderFilterUseName=a.exporterHeaderFilterUseName===!0,a.exporterFieldCallback=a.exporterFieldCallback?a.exporterFieldCallback:function(a,b,c,d){return d},a.exporterAllDataFn=a.exporterAllDataFn?a.exporterAllDataFn:null,null==a.exporterAllDataFn&&a.exporterAllDataPromise&&(a.exporterAllDataFn=a.exporterAllDataPromise)},addToMenu:function(a){a.api.core.addToGridMenu(a,[{title:f.getSafeText("gridMenu.exporterAllAsCsv"),action:function(a){this.grid.api.exporter.csvExport(b.ALL,b.ALL)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuAllData},order:200},{title:f.getSafeText("gridMenu.exporterVisibleAsCsv"),action:function(a){this.grid.api.exporter.csvExport(b.VISIBLE,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuVisibleData},order:201},{title:f.getSafeText("gridMenu.exporterSelectedAsCsv"),action:function(a){this.grid.api.exporter.csvExport(b.SELECTED,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuSelectedData&&this.grid.api.selection&&this.grid.api.selection.getSelectedRows().length>0},order:202},{title:f.getSafeText("gridMenu.exporterAllAsPdf"),action:function(a){this.grid.api.exporter.pdfExport(b.ALL,b.ALL)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuAllData},order:203},{title:f.getSafeText("gridMenu.exporterVisibleAsPdf"),action:function(a){this.grid.api.exporter.pdfExport(b.VISIBLE,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuVisibleData},order:204},{title:f.getSafeText("gridMenu.exporterSelectedAsPdf"),action:function(a){this.grid.api.exporter.pdfExport(b.SELECTED,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuSelectedData&&this.grid.api.selection&&this.grid.api.selection.getSelectedRows().length>0},order:205}])},csvExport:function(a,b,c){var d=this;this.loadAllDataIfNeeded(a,b,c).then(function(){var e=a.options.showHeader?d.getColumnHeaders(a,c):[],f=d.getData(a,b,c),g=d.formatAsCsv(e,f,a.options.exporterCsvColumnSeparator);d.downloadFile(a.options.exporterCsvFilename,g,a.options.exporterOlderExcelCompatibility)})},loadAllDataIfNeeded:function(c,d,e){if(d===b.ALL&&c.rows.length!==c.options.totalItems&&c.options.exporterAllDataFn)return c.options.exporterAllDataFn().then(function(){c.modifyRows(c.options.data)});var f=a.defer();return f.resolve(),f.promise},getColumnHeaders:function(a,c){var d,e=[];if(c===b.ALL)d=a.columns;else{var f=a.renderContainers.left?a.renderContainers.left.visibleColumnCache.filter(function(a){return a.visible}):[],g=a.renderContainers.body?a.renderContainers.body.visibleColumnCache.filter(function(a){return a.visible}):[],h=a.renderContainers.right?a.renderContainers.right.visibleColumnCache.filter(function(a){return a.visible}):[];d=f.concat(g,h)}return d.forEach(function(b,c){b.colDef.exporterSuppressExport!==!0&&-1===a.options.exporterSuppressColumns.indexOf(b.name)&&e.push({name:b.field,displayName:a.options.exporterHeaderFilter?a.options.exporterHeaderFilterUseName?a.options.exporterHeaderFilter(b.name):a.options.exporterHeaderFilter(b.displayName):b.displayName,width:b.drawnWidth?b.drawnWidth:b.width,align:"number"===b.colDef.type?"right":"left"})}),e},getData:function(a,d,e,f){var g,h,i=[];switch(d){case b.ALL:g=a.rows;break;case b.VISIBLE:g=a.getVisibleRows();break;case b.SELECTED:a.api.selection?g=a.api.selection.getSelectedGridRows():c.logError("selection feature must be enabled to allow selected rows to be exported")}if(e===b.ALL)h=a.columns;else{var j=a.renderContainers.left?a.renderContainers.left.visibleColumnCache.filter(function(a){return a.visible}):[],k=a.renderContainers.body?a.renderContainers.body.visibleColumnCache.filter(function(a){return a.visible}):[],l=a.renderContainers.right?a.renderContainers.right.visibleColumnCache.filter(function(a){return a.visible}):[];h=j.concat(k,l)}return g.forEach(function(c,d){if(c.exporterEnableExporting!==!1){var g=[];h.forEach(function(d,h){if((d.visible||e===b.ALL)&&d.colDef.exporterSuppressExport!==!0&&-1===a.options.exporterSuppressColumns.indexOf(d.name)){var i=f?a.getCellDisplayValue(c,d):a.getCellValue(c,d),j={value:a.options.exporterFieldCallback(a,c,d,i)};d.colDef.exporterPdfAlign&&(j.alignment=d.colDef.exporterPdfAlign),g.push(j)}}),i.push(g)}}),i},formatAsCsv:function(a,b,c){var d=this,e=a.map(function(a){return{value:a.displayName}}),f=e.length>0?d.formatRowAsCsv(this,c)(e)+"\n":"";return f+=b.map(this.formatRowAsCsv(this,c)).join("\n")},formatRowAsCsv:function(a,b){return function(c){return c.map(a.formatFieldAsCsv).join(b)}},formatFieldAsCsv:function(a){return null==a.value?"":"number"==typeof a.value?a.value:"boolean"==typeof a.value?a.value?"TRUE":"FALSE":"string"==typeof a.value?'"'+a.value.replace(/"/g,'""')+'"':JSON.stringify(a.value)},isIE:function(){var a=navigator.userAgent.search(/(?:Edge|MSIE|Trident\/.*; rv:)/),b=!1;return-1!==a&&(b=!0),b},downloadFile:function(a,b,c){var d,e,f=document,g=f.createElement("a"),h="application/octet-stream;charset=utf-8";if(e=this.isIE(),e&&10>e){var i=f.createElement("iframe");return document.body.appendChild(i),i.contentWindow.document.open("text/html","replace"),i.contentWindow.document.write("sep=,\r\n"+b),i.contentWindow.document.close(),i.contentWindow.focus(),i.contentWindow.document.execCommand("SaveAs",!0,a),document.body.removeChild(i),!0}if(navigator.msSaveBlob)return navigator.msSaveOrOpenBlob(new Blob([c?"\ufeff":"",b],{type:h}),a);if("download"in g){var j=new Blob([c?"\ufeff":"",b],{type:h});d=URL.createObjectURL(j),g.setAttribute("download",a)}else d="data:"+h+","+encodeURIComponent(b),g.setAttribute("target","_blank");g.href=d,g.setAttribute("style","display:none;"),f.body.appendChild(g),setTimeout(function(){if(g.click)g.click();else if(document.createEvent){var a=document.createEvent("MouseEvents");a.initEvent("click",!0,!0),g.dispatchEvent(a)}f.body.removeChild(g)},this.delay)},pdfExport:function(a,b,c){var d=this;this.loadAllDataIfNeeded(a,b,c).then(function(){var e=d.getColumnHeaders(a,c),f=d.getData(a,b,c),g=d.prepareAsPdf(a,e,f);d.isIE()||-1!==navigator.appVersion.indexOf("Edge")?d.downloadPDF(a.options.exporterPdfFilename,g):pdfMake.createPdf(g).open()})},downloadPDF:function(a,b){var c,d=document;d.createElement("a");c=this.isIE();var e,f=pdfMake.createPdf(b);f.getBuffer(function(b){if(e=new Blob([b]),navigator.msSaveBlob)return navigator.msSaveBlob(e,a);if(c){var f=d.createElement("iframe");return document.body.appendChild(f),f.contentWindow.document.open("text/html","replace"),f.contentWindow.document.write(e),f.contentWindow.document.close(),f.contentWindow.focus(),f.contentWindow.document.execCommand("SaveAs",!0,a),document.body.removeChild(f),!0}})},prepareAsPdf:function(a,b,c){var d=this.calculatePdfHeaderWidths(a,b),e=b.map(function(a){return{text:a.displayName,style:"tableHeader"}}),f=c.map(this.formatRowAsPdf(this)),g=[e].concat(f),h={pageOrientation:a.options.exporterPdfOrientation,pageSize:a.options.exporterPdfPageSize,content:[{style:"tableStyle",table:{headerRows:1,widths:d,body:g}}],styles:{tableStyle:a.options.exporterPdfTableStyle,tableHeader:a.options.exporterPdfTableHeaderStyle},defaultStyle:a.options.exporterPdfDefaultStyle};return a.options.exporterPdfLayout&&(h.layout=a.options.exporterPdfLayout),a.options.exporterPdfHeader&&(h.header=a.options.exporterPdfHeader),a.options.exporterPdfFooter&&(h.footer=a.options.exporterPdfFooter),a.options.exporterPdfCustomFormatter&&(h=a.options.exporterPdfCustomFormatter(h)),h},calculatePdfHeaderWidths:function(a,b){var c=0;b.forEach(function(a){"number"==typeof a.width&&(c+=a.width)});var d=0;b.forEach(function(a){if("*"===a.width&&(d+=100),"string"==typeof a.width&&a.width.match(/(\d)*%/)){var b=parseInt(a.width.match(/(\d)*%/)[0]);a.width=c*b/100,d+=a.width}});var e=c+d;return b.map(function(b){return"*"===b.width?b.width:b.width*a.options.exporterPdfMaxGridWidth/e})},formatRowAsPdf:function(a){return function(b){return b.map(a.formatFieldAsPdfString)}},formatFieldAsPdfString:function(a){var b;return b=null==a.value?"":"number"==typeof a.value?a.value.toString():"boolean"==typeof a.value?a.value?"TRUE":"FALSE":"string"==typeof a.value?a.value.replace(/"/g,'""'):JSON.stringify(a.value).replace(/^"/,"").replace(/"$/,""),a.alignment&&"string"==typeof a.alignment&&(b={text:b,alignment:a.alignment}),b}};return g}]),a.directive("uiGridExporter",["uiGridExporterConstants","uiGridExporterService","gridUtil","$compile",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(a,c,d,e){b.initializeGrid(e.grid),e.grid.exporter.$scope=a}}}])}(),function(){"use strict";var a=angular.module("ui.grid.grouping",["ui.grid","ui.grid.treeBase"]);a.constant("uiGridGroupingConstants",{featureName:"grouping",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}}),a.service("uiGridGroupingService",["$q","uiGridGroupingConstants","gridUtil","rowSorter","GridRow","gridClassFactory","i18nService","uiGridConstants","uiGridTreeBaseService",function(a,b,c,d,e,f,g,h,i){var j={initializeGrid:function(a,b){i.initializeGrid(a,b),a.grouping={},a.grouping.groupHeaderCache={},j.defaultGridOptions(a.options),a.registerRowsProcessor(j.groupRows,400),a.registerColumnBuilder(j.groupingColumnBuilder),a.registerColumnsProcessor(j.groupingColumnProcessor,400);var c={events:{grouping:{aggregationChanged:{},groupingChanged:{}}},methods:{grouping:{getGrouping:function(b){var c=j.getGrouping(a);return c.grouping.forEach(function(a){a.colName=a.col.name,delete a.col}),c.aggregations.forEach(function(a){a.colName=a.col.name,delete a.col}),c.aggregations=c.aggregations.filter(function(a){return!a.aggregation.source||"grouping"!==a.aggregation.source}),b&&(c.rowExpandedStates=j.getRowExpandedStates(a.grouping.groupingHeaderCache)),c},setGrouping:function(b){j.setGrouping(a,b)},groupColumn:function(b){var c=a.getColumn(b);j.groupColumn(a,c)},ungroupColumn:function(b){var c=a.getColumn(b);j.ungroupColumn(a,c)},clearGrouping:function(){j.clearGrouping(a)},aggregateColumn:function(b,c,d){var e=a.getColumn(b);j.aggregateColumn(a,e,c,d)}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods),a.api.core.on.sortChanged(b,j.tidyPriorities)},defaultGridOptions:function(a){a.enableGrouping=a.enableGrouping!==!1,a.groupingShowCounts=a.groupingShowCounts!==!1,a.groupingNullLabel="undefined"==typeof a.groupingNullLabel?"Null":a.groupingNullLabel,a.enableGroupHeaderSelection=a.enableGroupHeaderSelection===!0},groupingColumnBuilder:function(a,d,e){if(a.enableGrouping!==!1){"undefined"==typeof d.grouping&&"undefined"!=typeof a.grouping?(d.grouping=angular.copy(a.grouping),"undefined"!=typeof d.grouping.groupPriority&&d.grouping.groupPriority>-1&&(d.treeAggregationFn=i.nativeAggregations()[b.aggregation.COUNT].aggregationFn,d.treeAggregationFinalizerFn=j.groupedFinalizerFn)):"undefined"==typeof d.grouping&&(d.grouping={}),"undefined"!=typeof d.grouping&&"undefined"!=typeof d.grouping.groupPriority&&d.grouping.groupPriority>=0&&(d.suppressRemoveSort=!0);var f={name:"ui.grid.grouping.group",title:g.get().grouping.group,icon:"ui-grid-icon-indent-right",shown:function(){return"undefined"==typeof this.context.col.grouping||"undefined"==typeof this.context.col.grouping.groupPriority||this.context.col.grouping.groupPriority<0},action:function(){j.groupColumn(this.context.col.grid,this.context.col)}},h={name:"ui.grid.grouping.ungroup",title:g.get().grouping.ungroup,icon:"ui-grid-icon-indent-left",shown:function(){return"undefined"!=typeof this.context.col.grouping&&"undefined"!=typeof this.context.col.grouping.groupPriority&&this.context.col.grouping.groupPriority>=0},action:function(){j.ungroupColumn(this.context.col.grid,this.context.col)}},k={name:"ui.grid.grouping.aggregateRemove",title:g.get().grouping.aggregate_remove,shown:function(){return"undefined"!=typeof this.context.col.treeAggregationFn},action:function(){j.aggregateColumn(this.context.col.grid,this.context.col,null)}},l=function(a,b){b=b||g.get().grouping["aggregate_"+a]||a;var e={name:"ui.grid.grouping.aggregate"+a,title:b,shown:function(){return"undefined"==typeof this.context.col.treeAggregation||"undefined"==typeof this.context.col.treeAggregation.type||this.context.col.treeAggregation.type!==a},action:function(){j.aggregateColumn(this.context.col.grid,this.context.col,a)}};c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.aggregate"+a)||d.menuItems.push(e)};d.colDef.groupingShowGroupingMenu!==!1&&(c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.group")||d.menuItems.push(f),c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.ungroup")||d.menuItems.push(h)),d.colDef.groupingShowAggregationMenu!==!1&&(angular.forEach(i.nativeAggregations(),function(a,b){l(b)}),angular.forEach(e.treeCustomAggregations,function(a,b){l(b,a.menuTitle)}),c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.aggregateRemove")||d.menuItems.push(k))}},groupingColumnProcessor:function(a,b){return a=j.moveGroupColumns(this,a,b)},groupedFinalizerFn:function(a){var b=this;"undefined"!=typeof a.groupVal?(a.rendered=a.groupVal,b.grid.options.groupingShowCounts&&"date"!==b.colDef.type&&(a.rendered+=" ("+a.value+")")):a.rendered=null},moveGroupColumns:function(a,b,c){return a.options.moveGroupColumns===!1?b:(b.forEach(function(a,b){a.groupingPosition=b}),b.sort(function(a,b){var c,d;return c=a.isRowHeader?-1e3:"undefined"==typeof a.grouping||"undefined"==typeof a.grouping.groupPriority||a.grouping.groupPriority<0?null:a.grouping.groupPriority,d=b.isRowHeader?-1e3:"undefined"==typeof b.grouping||"undefined"==typeof b.grouping.groupPriority||b.grouping.groupPriority<0?null:b.grouping.groupPriority,null!==c&&null===d?-1:null!==d&&null===c?1:null!==c&&null!==d?c-d:a.groupingPosition-b.groupingPosition}),b.forEach(function(a,b){delete a.groupingPosition}),b)},groupColumn:function(a,c){"undefined"==typeof c.grouping&&(c.grouping={});var d=j.getGrouping(a); -c.grouping.groupPriority=d.grouping.length,c.sort?"undefined"!=typeof c.sort.direction&&null!==c.sort.direction||(c.sort.direction=h.ASC):c.sort={direction:h.ASC},c.treeAggregation={type:b.aggregation.COUNT,source:"grouping"},c.treeAggregationFn=i.nativeAggregations()[b.aggregation.COUNT].aggregationFn,c.treeAggregationFinalizerFn=j.groupedFinalizerFn,a.api.grouping.raise.groupingChanged(c),a.api.core.raise.sortChanged(a,a.getColumnSorting()),a.queueGridRefresh()},ungroupColumn:function(a,b){"undefined"!=typeof b.grouping&&(delete b.grouping.groupPriority,delete b.treeAggregation,delete b.customTreeAggregationFinalizer,j.tidyPriorities(a),a.api.grouping.raise.groupingChanged(b),a.queueGridRefresh())},aggregateColumn:function(a,b,c){"undefined"!=typeof b.grouping&&"undefined"!=typeof b.grouping.groupPriority&&b.grouping.groupPriority>=0&&j.ungroupColumn(a,b);var d={};"undefined"!=typeof a.options.treeCustomAggregations[c]?d=a.options.treeCustomAggregations[c]:"undefined"!=typeof i.nativeAggregations()[c]&&(d=i.nativeAggregations()[c]),b.treeAggregation={type:c,label:g.get().aggregation[d.label]||d.label},b.treeAggregationFn=d.aggregationFn,b.treeAggregationFinalizerFn=d.finalizerFn,a.api.grouping.raise.aggregationChanged(b),a.queueGridRefresh()},setGrouping:function(a,b){"undefined"!=typeof b&&(j.clearGrouping(a),b.grouping&&b.grouping.length&&b.grouping.length>0&&b.grouping.forEach(function(b){var c=a.getColumn(b.colName);c&&j.groupColumn(a,c)}),b.aggregations&&b.aggregations.length&&b.aggregations.forEach(function(b){var c=a.getColumn(b.colName);c&&j.aggregateColumn(a,c,b.aggregation.type)}),b.rowExpandedStates&&j.applyRowExpandedStates(a.grouping.groupingHeaderCache,b.rowExpandedStates))},clearGrouping:function(a){var b=j.getGrouping(a);b.grouping.length>0&&b.grouping.forEach(function(b){b.col||(b.col=a.getColumn(b.colName)),j.ungroupColumn(a,b.col)}),b.aggregations.length>0&&b.aggregations.forEach(function(b){b.col||(b.col=a.getColumn(b.colName)),j.aggregateColumn(a,b.col,null)})},tidyPriorities:function(a){"undefined"!=typeof a&&"undefined"==typeof a.grid||"undefined"==typeof this.grid||(a=this.grid);var b=[],c=[];a.columns.forEach(function(a,d){"undefined"!=typeof a.grouping&&"undefined"!=typeof a.grouping.groupPriority&&a.grouping.groupPriority>=0?b.push(a):"undefined"!=typeof a.sort&&"undefined"!=typeof a.sort.priority&&a.sort.priority>=0&&c.push(a)}),b.sort(function(a,b){return a.grouping.groupPriority-b.grouping.groupPriority}),b.forEach(function(a,b){a.grouping.groupPriority=b,a.suppressRemoveSort=!0,"undefined"==typeof a.sort&&(a.sort={}),a.sort.priority=b});var d=b.length;c.sort(function(a,b){return a.sort.priority-b.sort.priority}),c.forEach(function(a,b){a.sort.priority=d,a.suppressRemoveSort=a.colDef.suppressRemoveSort,d++})},groupRows:function(a){if(0===a.length)return a;var b=this;b.grouping.oldGroupingHeaderCache=b.grouping.groupingHeaderCache||{},b.grouping.groupingHeaderCache={};for(var c=j.initialiseProcessingState(b),e=function(e,h){var i=b.getCellValue(g,e.col);e.initialised&&0===d.getSortFn(b,e.col,a)(i,e.currentValue)||(j.insertGroupHeader(b,a,f,c,h),f++)},f=0;f=0&&b.push({field:a.field,col:a,groupPriority:a.grouping.groupPriority,grouping:a.grouping}),a.treeAggregation&&a.treeAggregation.type&&c.push({field:a.field,col:a,aggregation:a.treeAggregation})}),b.sort(function(a,b){return a.groupPriority-b.groupPriority}),b.forEach(function(a,b){a.grouping.groupPriority=b,a.groupPriority=b,delete a.grouping}),{grouping:b,aggregations:c}},insertGroupHeader:function(a,b,c,d,g){var h=(d[g].fieldName,d[g].col),i=a.getCellValue(b[c],h),k=i;"undefined"!=typeof i&&null!==i||(k=a.options.groupingNullLabel);for(var l=function(a){return angular.isObject(a)?JSON.stringify(a):a},m=a.grouping.oldGroupingHeaderCache,n=0;g>n;n++)m&&m[l(d[n].currentValue)]&&(m=m[l(d[n].currentValue)].children);var o;for(m&&m[l(i)]?(o=m[l(i)].row,o.entity={}):(o=new e({},null,a),f.rowTemplateAssigner.call(a,o)),o.entity["$$"+d[g].col.uid]={groupVal:k},o.treeLevel=g,o.groupHeader=!0,o.internalRow=!0,o.enableCellEdit=!1,o.enableSelection=a.options.enableGroupHeaderSelection,d[g].initialised=!0,d[g].currentValue=i,d[g].currentRow=o,j.finaliseProcessingState(d,g+1),b.splice(c,0,o),m=a.grouping.groupingHeaderCache,n=0;g>n;n++)m=m[l(d[n].currentValue)].children;m[l(i)]={row:o,children:{}}},finaliseProcessingState:function(a,b){for(var c=b;c 1 or < 1 file choosers within the menu item, error, cannot continue"):h[0].addEventListener("change",g,!1)}}}])}(),function(){"use strict";var a=angular.module("ui.grid.infiniteScroll",["ui.grid"]);a.service("uiGridInfiniteScrollService",["gridUtil","$compile","$timeout","uiGridConstants","ScrollEvent","$q",function(a,b,c,d,e,f){var g={initializeGrid:function(a,b){if(g.defaultGridOptions(a.options),a.options.enableInfiniteScroll){a.infiniteScroll={dataLoading:!1},g.setScrollDirections(a,a.options.infiniteScrollUp,a.options.infiniteScrollDown),a.api.core.on.scrollEnd(b,g.handleScroll);var c={events:{infiniteScroll:{needLoadMoreData:function(a,b){},needLoadMoreDataTop:function(a,b){}}},methods:{infiniteScroll:{dataLoaded:function(b,c){g.setScrollDirections(a,b,c);var d=g.adjustScroll(a).then(function(){a.infiniteScroll.dataLoading=!1});return d},resetScroll:function(b,c){return g.setScrollDirections(a,b,c),g.adjustInfiniteScrollPosition(a,0)},saveScrollPercentage:function(){a.infiniteScroll.prevScrollTop=a.renderContainers.body.prevScrollTop,a.infiniteScroll.previousVisibleRows=a.getVisibleRowCount()},dataRemovedTop:function(b,c){g.dataRemovedTop(a,b,c)},dataRemovedBottom:function(b,c){g.dataRemovedBottom(a,b,c)},setScrollDirections:function(b,c){g.setScrollDirections(a,b,c)}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)}},defaultGridOptions:function(a){a.enableInfiniteScroll=a.enableInfiniteScroll!==!1,a.infiniteScrollRowsFromEnd=a.infiniteScrollRowsFromEnd||20,a.infiniteScrollUp=a.infiniteScrollUp===!0,a.infiniteScrollDown=a.infiniteScrollDown!==!1},setScrollDirections:function(a,b,c){a.infiniteScroll.scrollUp=b===!0,a.suppressParentScrollUp=b===!0,a.infiniteScroll.scrollDown=c!==!1,a.suppressParentScrollDown=c!==!1},handleScroll:function(a){if(!(a.grid.infiniteScroll&&a.grid.infiniteScroll.dataLoading||"ui.grid.adjustInfiniteScrollPosition"===a.source)&&a.y){var b,c=a.grid.options.infiniteScrollRowsFromEnd/a.grid.renderContainers.body.visibleRowCache.length;a.grid.scrollDirection===d.scrollDirection.UP?(b=a.y.percentage,c>=b&&g.loadData(a.grid)):a.grid.scrollDirection===d.scrollDirection.DOWN&&(b=1-a.y.percentage,c>=b&&g.loadData(a.grid))}},loadData:function(a){a.infiniteScroll.previousVisibleRows=a.renderContainers.body.visibleRowCache.length,a.infiniteScroll.direction=a.scrollDirection,delete a.infiniteScroll.prevScrollTop,a.scrollDirection===d.scrollDirection.UP&&a.infiniteScroll.scrollUp?(a.infiniteScroll.dataLoading=!0,a.api.infiniteScroll.raise.needLoadMoreDataTop()):a.scrollDirection===d.scrollDirection.DOWN&&a.infiniteScroll.scrollDown&&(a.infiniteScroll.dataLoading=!0,a.api.infiniteScroll.raise.needLoadMoreData())},adjustScroll:function(a){var b=f.defer();return c(function(){var e,f,h,i,j;e=a.getViewportHeight()+a.headerHeight-a.renderContainers.body.headerHeight-a.scrollbarHeight,f=a.options.rowHeight,void 0===a.infiniteScroll.direction&&g.adjustInfiniteScrollPosition(a,0),h=a.getVisibleRowCount();var k=f*h;a.infiniteScroll.scrollDown&&e>k&&a.api.infiniteScroll.raise.needLoadMoreData(),a.infiniteScroll.direction===d.scrollDirection.UP&&(i=a.infiniteScroll.prevScrollTop||0,j=i+(h-a.infiniteScroll.previousVisibleRows)*f,g.adjustInfiniteScrollPosition(a,j),c(function(){b.resolve()})),a.infiniteScroll.direction===d.scrollDirection.DOWN&&(j=a.infiniteScroll.prevScrollTop||a.infiniteScroll.previousVisibleRows*f-e,g.adjustInfiniteScrollPosition(a,j),c(function(){b.resolve()}))},0),b.promise},adjustInfiniteScrollPosition:function(a,b){var c=new e(a,null,null,"ui.grid.adjustInfiniteScrollPosition"),d=a.getVisibleRowCount(),f=a.getViewportHeight()+a.headerHeight-a.renderContainers.body.headerHeight-a.scrollbarHeight,g=a.options.rowHeight,h=d*g-f;0===b&&a.infiniteScroll.scrollUp?c.y={percentage:1/h}:c.y={percentage:b/h},a.scrollContainers("",c)},dataRemovedTop:function(a,b,c){var d,e,f,h;return g.setScrollDirections(a,b,c),d=a.renderContainers.body.visibleRowCache.length,e=a.infiniteScroll.prevScrollTop,h=a.options.rowHeight,f=e-(a.infiniteScroll.previousVisibleRows-d)*h,g.adjustInfiniteScrollPosition(a,f)},dataRemovedBottom:function(a,b,c){var d;return g.setScrollDirections(a,b,c),d=a.infiniteScroll.prevScrollTop,g.adjustInfiniteScrollPosition(a,d)}};return g}]),a.directive("uiGridInfiniteScroll",["uiGridInfiniteScrollService",function(a){return{priority:-200,scope:!1,require:"^uiGrid",compile:function(b,c,d){return{pre:function(b,c,d,e){a.initializeGrid(e.grid,b)},post:function(a,b,c){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.moveColumns",["ui.grid"]);a.service("uiGridMoveColumnService",["$q","$timeout","$log","ScrollEvent","uiGridConstants","gridUtil",function(a,b,c,d,e,f){var g={initializeGrid:function(a){var b=this;this.registerPublicApi(a),this.defaultGridOptions(a.options),a.moveColumns={orderCache:[]},a.registerColumnBuilder(b.movableColumnBuilder),a.registerDataChangeCallback(b.verifyColumnOrder,[e.dataChange.COLUMN])},registerPublicApi:function(a){var b=this,c={events:{colMovable:{columnPositionChanged:function(a,b,c){}}},methods:{colMovable:{moveColumn:function(c,d){var e=a.columns;if(!angular.isNumber(c)||!angular.isNumber(d))return void f.logError("MoveColumn: Please provide valid values for originalPosition and finalPosition");for(var g=0,h=0;h=e.length-g||d>=e.length-g)return void f.logError("MoveColumn: Invalid values for originalPosition, finalPosition");var i=function(a){for(var b=a,c=0;b>=c;c++)angular.isDefined(e[c])&&(angular.isDefined(e[c].colDef.visible)&&e[c].colDef.visible===!1||e[c].isRowHeader===!0)&&b++;return b};b.redrawColumnAtPosition(a,i(c),i(d))}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.enableColumnMoving=a.enableColumnMoving!==!1},movableColumnBuilder:function(b,c,d){var e=[];return b.enableColumnMoving=void 0===b.enableColumnMoving?d.enableColumnMoving:b.enableColumnMoving,a.all(e)},updateColumnCache:function(a){a.moveColumns.orderCache=a.getOnlyDataColumns()},verifyColumnOrder:function(a){var b,c=a.rowHeaderColumns.length;angular.forEach(a.moveColumns.orderCache,function(d,e){if(b=a.columns.indexOf(d),-1!==b&&b-c!==e){var f=a.columns.splice(b,1)[0];a.columns.splice(e+c,0,f)}})},redrawColumnAtPosition:function(a,c,d){if(c!==d){var f=a.columns,h=f[c];if(h.colDef.enableColumnMoving){if(c>d)for(var i=c;i>d;i--)f[i]=f[i-1];else if(d>c)for(var j=c;d>j;j++)f[j]=f[j+1];f[d]=h,g.updateColumnCache(a),a.queueGridRefresh(),b(function(){a.api.core.notifyDataChange(e.dataChange.COLUMN),a.api.colMovable.raise.columnPositionChanged(h.colDef,c,d)})}}}};return g}]),a.directive("uiGridMoveColumns",["uiGridMoveColumnService",function(a){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(b,c,d,e){a.initializeGrid(e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridHeaderCell",["$q","gridUtil","uiGridMoveColumnService","$document","$log","uiGridConstants","ScrollEvent",function(a,b,c,d,e,f,g){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(a,b,e,f){if(a.col.colDef.enableColumnMoving){var h,i,j,k,l,m,n=angular.element(b[0].querySelectorAll(".ui-grid-cell-contents")),o=!1,p=!1,q=function(b){h=a.grid.element[0].getBoundingClientRect().left,a.grid.hasLeftContainer()&&(h+=a.grid.renderContainers.left.header[0].getBoundingClientRect().width),i=b.pageX,j=0,k=h+a.grid.getViewportWidth(),"mousedown"===b.type?(d.on("mousemove",r),d.on("mouseup",s)):"touchstart"===b.type&&(d.on("touchmove",r),d.on("touchend",s))},r=function(a){var b=a.pageX-i;0!==b&&(document.onselectstart=function(){return!1},p=!0,o?o&&(w(b),i=a.pageX):v())},s=function(b){if(document.onselectstart=null,l&&(l.remove(),o=!1),u(),t(),p){for(var d=a.grid.columns,e=0,f=0;fj){for(var g=0,h=e-1;h>=0;h--)if((angular.isUndefined(d[h].colDef.visible)||d[h].colDef.visible===!0)&&(g+=d[h].drawnWidth||d[h].width||d[h].colDef.width,g>Math.abs(j))){c.redrawColumnAtPosition(a.grid,e,h+1);break}g0){for(var i=0,k=e+1;kj)){c.redrawColumnAtPosition(a.grid,e,k-1);break}j>i&&c.redrawColumnAtPosition(a.grid,e,d.length-1)}}},t=function(){n.on("touchstart",q),n.on("mousedown",q)},u=function(){n.off("touchstart",q),n.off("mousedown",q),d.off("mousemove",r),d.off("touchmove",r),d.off("mouseup",s),d.off("touchend",s)};t();var v=function(){o=!0,l=b.clone(),b.parent().append(l),l.addClass("movingColumn");var c={};c.left=b[0].offsetLeft+"px";var d=a.grid.element[0].getBoundingClientRect().right,e=b[0].getBoundingClientRect().right;e>d&&(m=a.col.drawnWidth+(d-e),c.width=m+"px"),l.css(c)},w=function(b){for(var c=a.grid.columns,d=0,e=0;ei?i:k,(n>=h||b>0)&&(k>=o||0>b))l.css({visibility:"visible",left:l[0].offsetLeft+(k>i?b:k-n)+"px"});else if(d>Math.ceil(f.grid.gridWidth)){b*=8;var p=new g(a.col.grid,null,null,"uiGridHeaderCell.moveElement");p.x={pixels:b},p.grid.scrollContainers("",p)}for(var q=0,r=0;r0?a.options.paginationCurrentPage=Math.min(a.options.paginationCurrentPage+1,c.methods.pagination.getTotalPages()):a.options.paginationCurrentPage++)},previousPage:function(){a.options.enablePagination&&(a.options.paginationCurrentPage=Math.max(a.options.paginationCurrentPage-1,1))},seek:function(b){if(a.options.enablePagination){if(!angular.isNumber(b)||1>b)throw"Invalid page number: "+b;a.options.paginationCurrentPage=Math.min(b,c.methods.pagination.getTotalPages())}}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods);var d=function(b){if(a.options.useExternalPagination||!a.options.enablePagination)return b;var c=parseInt(a.options.paginationPageSize,10),d=parseInt(a.options.paginationCurrentPage,10),e=b.filter(function(a){return a.visible});a.options.totalItems=e.length;var f=(d-1)*c;return f>e.length&&(d=a.options.paginationCurrentPage=1,f=(d-1)*c),e.slice(f,f+c)};a.registerRowsProcessor(d,900)},defaultGridOptions:function(b){b.enablePagination=b.enablePagination!==!1,b.enablePaginationControls=b.enablePaginationControls!==!1,b.useExternalPagination=b.useExternalPagination===!0,a.isNullOrUndefined(b.totalItems)&&(b.totalItems=0),a.isNullOrUndefined(b.paginationPageSizes)&&(b.paginationPageSizes=[250,500,1e3]),a.isNullOrUndefined(b.paginationPageSize)&&(b.paginationPageSizes.length>0?b.paginationPageSize=b.paginationPageSizes[0]:b.paginationPageSize=0),a.isNullOrUndefined(b.paginationCurrentPage)&&(b.paginationCurrentPage=1),a.isNullOrUndefined(b.paginationTemplate)&&(b.paginationTemplate="ui-grid/pagination")},onPaginationChanged:function(a,b,c){a.api.pagination.raise.paginationChanged(b,c),a.options.useExternalPagination||a.queueGridRefresh()}};return b}]),a.directive("uiGridPagination",["gridUtil","uiGridPaginationService",function(a,b){return{priority:-200,scope:!1,require:"uiGrid",link:{pre:function(c,d,e,f){b.initializeGrid(f.grid),a.getTemplate(f.grid.options.paginationTemplate).then(function(a){var b=angular.element(a);d.append(b),f.innerCompile(b)})}}}}]),a.directive("uiGridPager",["uiGridPaginationService","uiGridConstants","gridUtil","i18nService",function(a,b,c,d){return{priority:-200,scope:!0,require:"^uiGrid",link:function(e,f,g,h){var i=".ui-grid-pager-control-input";e.aria=d.getSafeText("pagination.aria"),e.paginationApi=h.grid.api.pagination,e.sizesLabel=d.getSafeText("pagination.sizes"),e.totalItemsLabel=d.getSafeText("pagination.totalItems"),e.paginationOf=d.getSafeText("pagination.of"),e.paginationThrough=d.getSafeText("pagination.through");var j=h.grid.options;h.grid.renderContainers.body.registerViewportAdjuster(function(a){return a.height=a.height-c.elementHeight(f,"padding"),a});var k=h.grid.registerDataChangeCallback(function(a){a.options.useExternalPagination||(a.options.totalItems=a.rows.length)},[b.dataChange.ROW]);e.$on("$destroy",k);var l=function(){e.showingLow=(j.paginationCurrentPage-1)*j.paginationPageSize+1,e.showingHigh=Math.min(j.paginationCurrentPage*j.paginationPageSize,j.totalItems)},m=e.$watch("grid.options.totalItems + grid.options.paginationPageSize",l),n=e.$watch("grid.options.paginationCurrentPage + grid.options.paginationPageSize",function(b,c){if(b!==c&&void 0!==c){if(!angular.isNumber(j.paginationCurrentPage)||j.paginationCurrentPage<1)return void(j.paginationCurrentPage=1);if(j.totalItems>0&&j.paginationCurrentPage>e.paginationApi.getTotalPages())return void(j.paginationCurrentPage=e.paginationApi.getTotalPages());l(),a.onPaginationChanged(e.grid,j.paginationCurrentPage,j.paginationPageSize)}});e.$on("$destroy",function(){m(),n()}),e.cantPageForward=function(){return j.totalItems>0?j.paginationCurrentPage>=e.paginationApi.getTotalPages():j.data.length<1},e.cantPageToLast=function(){return j.totalItems>0?e.cantPageForward():!0},e.cantPageBackward=function(){return j.paginationCurrentPage<=1};var o=function(a){a&&c.focus.bySelector(f,i)};e.pageFirstPageClick=function(){e.paginationApi.seek(1),o(e.cantPageBackward())},e.pagePreviousPageClick=function(){e.paginationApi.previousPage(),o(e.cantPageBackward())},e.pageNextPageClick=function(){e.paginationApi.nextPage(),o(e.cantPageForward())},e.pageLastPageClick=function(){e.paginationApi.seek(e.paginationApi.getTotalPages()),o(e.cantPageToLast())}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.pinning",["ui.grid"]);a.constant("uiGridPinningConstants",{container:{LEFT:"left",RIGHT:"right",NONE:""}}),a.service("uiGridPinningService",["gridUtil","GridRenderContainer","i18nService","uiGridPinningConstants",function(a,b,c,d){var e={initializeGrid:function(a){e.defaultGridOptions(a.options),a.registerColumnBuilder(e.pinningColumnBuilder);var b={events:{pinning:{columnPinned:function(a,b){}}},methods:{pinning:{pinColumn:function(b,c){e.pinColumn(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.enablePinning=a.enablePinning!==!1},pinningColumnBuilder:function(b,f,g){if(b.enablePinning=void 0===b.enablePinning?g.enablePinning:b.enablePinning,b.pinnedLeft?(f.renderContainer="left",f.grid.createLeftContainer()):b.pinnedRight&&(f.renderContainer="right",f.grid.createRightContainer()),b.enablePinning){var h={name:"ui.grid.pinning.pinLeft",title:c.get().pinning.pinLeft,icon:"ui-grid-icon-left-open",shown:function(){return"undefined"==typeof this.context.col.renderContainer||!this.context.col.renderContainer||"left"!==this.context.col.renderContainer},action:function(){e.pinColumn(this.context.col.grid,this.context.col,d.container.LEFT)}},i={name:"ui.grid.pinning.pinRight",title:c.get().pinning.pinRight,icon:"ui-grid-icon-right-open",shown:function(){return"undefined"==typeof this.context.col.renderContainer||!this.context.col.renderContainer||"right"!==this.context.col.renderContainer},action:function(){e.pinColumn(this.context.col.grid,this.context.col,d.container.RIGHT)}},j={name:"ui.grid.pinning.unpin",title:c.get().pinning.unpin,icon:"ui-grid-icon-cancel",shown:function(){return"undefined"!=typeof this.context.col.renderContainer&&null!==this.context.col.renderContainer&&"body"!==this.context.col.renderContainer},action:function(){e.pinColumn(this.context.col.grid,this.context.col,d.container.UNPIN)}};a.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.pinLeft")||f.menuItems.push(h),a.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.pinRight")||f.menuItems.push(i),a.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.unpin")||f.menuItems.push(j)}},pinColumn:function(a,b,c){c===d.container.NONE?b.renderContainer=null:(b.renderContainer=c,c===d.container.LEFT?a.createLeftContainer():c===d.container.RIGHT&&a.createRightContainer()),a.refresh().then(function(){a.api.pinning.raise.columnPinned(b.colDef,c)})}};return e}]),a.directive("uiGridPinning",["gridUtil","uiGridPinningService",function(a,b){return{require:"uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(e.grid)},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.resizeColumns",["ui.grid"]);a.service("uiGridResizeColumnsService",["gridUtil","$q","$timeout",function(a,b,c){var d={defaultGridOptions:function(a){a.enableColumnResizing=a.enableColumnResizing!==!1,a.enableColumnResize===!1&&(a.enableColumnResizing=!1)},colResizerColumnBuilder:function(a,c,d){var e=[];return a.enableColumnResizing=void 0===a.enableColumnResizing?d.enableColumnResizing:a.enableColumnResizing,a.enableColumnResize===!1&&(a.enableColumnResizing=!1),b.all(e)},registerPublicApi:function(a){var b={events:{colResizable:{columnSizeChanged:function(a,b){}}}};a.api.registerEventsFromObject(b.events)},fireColumnSizeChanged:function(b,d,e){c(function(){b.api.colResizable?b.api.colResizable.raise.columnSizeChanged(d,e):a.logError("The resizeable api is not registered, this may indicate that you've included the module but not added the 'ui-grid-resize-columns' directive to your grid definition. Cannot raise any events.")})},findTargetCol:function(a,b,c){var d=a.getRenderContainer();if("left"===b){var e=d.visibleColumnCache.indexOf(a);return d.visibleColumnCache[e-1*c]}return a}};return d}]),a.directive("uiGridResizeColumns",["gridUtil","uiGridResizeColumnsService",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.defaultGridOptions(e.grid.options),e.grid.registerColumnBuilder(b.colResizerColumnBuilder),b.registerPublicApi(e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridHeaderCell",["gridUtil","$templateCache","$compile","$q","uiGridResizeColumnsService","uiGridConstants","$timeout",function(a,b,c,d,e,f,g){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(a,d,h,i){var j=i.grid;if(j.options.enableColumnResizing){var k=b.get("ui-grid/columnResizer"),l=1;j.isRTL()&&(a.position="left",l=-1);var m=function(){for(var b=d[0].getElementsByClassName("ui-grid-column-resizer"),f=0;f
        '),f={priority:0,scope:{col:"=",position:"@",renderIndex:"="},require:"?^uiGrid",link:function(f,g,h,i){function j(a){i.grid.refreshCanvas(!0).then(function(){i.grid.queueGridRefresh()})}function k(a,b){var c=b;return a.minWidth&&ca.maxWidth&&(c=a.maxWidth),c}function l(a,b){a.originalEvent&&(a=a.originalEvent),a.preventDefault(),o=(a.targetTouches?a.targetTouches[0]:a).clientX-p,0>o?o=0:o>i.grid.gridWidth&&(o=i.grid.gridWidth);var g=d.findTargetCol(f.col,f.position,q); -if(g.colDef.enableColumnResizing!==!1){i.grid.element.hasClass("column-resizing")||i.grid.element.addClass("column-resizing");var h=o-n,j=parseInt(g.drawnWidth+h*q,10);o+=(k(g,j)-j)*q,e.css({left:o+"px"}),i.fireEvent(c.events.ITEM_DRAGGING)}}function m(a,b){a.originalEvent&&(a=a.originalEvent),a.preventDefault(),i.grid.element.removeClass("column-resizing"),e.remove(),o=(a.changedTouches?a.changedTouches[0]:a).clientX-p;var c=o-n;if(0===c)return t(),void s();var g=d.findTargetCol(f.col,f.position,q);if(g.colDef.enableColumnResizing!==!1){var h=parseInt(g.drawnWidth+c*q,10);g.width=k(g,h),g.hasCustomWidth=!0,j(c),d.fireColumnSizeChanged(i.grid,g.colDef,c),t(),s()}}var n=0,o=0,p=0,q=1;i.grid.isRTL()&&(f.position="left",q=-1),"left"===f.position?g.addClass("left"):"right"===f.position&&g.addClass("right");var r=function(b,c){b.originalEvent&&(b=b.originalEvent),b.stopPropagation(),p=i.grid.element[0].getBoundingClientRect().left,n=(b.targetTouches?b.targetTouches[0]:b).clientX-p,i.grid.element.append(e),e.css({left:n}),"touchstart"===b.type?(a.on("touchend",m),a.on("touchmove",l),g.off("mousedown",r)):(a.on("mouseup",m),a.on("mousemove",l),g.off("touchstart",r))},s=function(){g.on("mousedown",r),g.on("touchstart",r)},t=function(){a.off("mouseup",m),a.off("touchend",m),a.off("mousemove",l),a.off("touchmove",l),g.off("mousedown",r),g.off("touchstart",r)};s();var u=function(a,e){a.stopPropagation();var h=d.findTargetCol(f.col,f.position,q);if(h.colDef.enableColumnResizing!==!1){var l=0,m=0,n=b.closestElm(g,".ui-grid-render-container"),o=n.querySelectorAll("."+c.COL_CLASS_PREFIX+h.uid+" .ui-grid-cell-contents");Array.prototype.forEach.call(o,function(a){var c;angular.element(a).parent().hasClass("ui-grid-header-cell")&&(c=angular.element(a).parent()[0].querySelectorAll(".ui-grid-column-menu-button")),b.fakeElement(a,{},function(a){var d=angular.element(a);d.attr("style","float: left");var e=b.elementWidth(d);if(c){var f=b.elementWidth(c);e+=f}e>l&&(l=e,m=l-e)})}),h.width=k(h,l),h.hasCustomWidth=!0,j(m),d.fireColumnSizeChanged(i.grid,h.colDef,m)}};g.on("dblclick",u),g.on("$destroy",function(){g.off("dblclick",u),t()})}};return f}])}(),function(){"use strict";var a=angular.module("ui.grid.rowEdit",["ui.grid","ui.grid.edit","ui.grid.cellNav"]);a.constant("uiGridRowEditConstants",{}),a.service("uiGridRowEditService",["$interval","$q","uiGridConstants","uiGridRowEditConstants","gridUtil",function(a,b,c,d,e){var f={initializeGrid:function(a,b){b.rowEdit={};var c={events:{rowEdit:{saveRow:function(a){}}},methods:{rowEdit:{setSavePromise:function(a,c){f.setSavePromise(b,a,c)},getDirtyRows:function(){return b.rowEdit.dirtyRows?b.rowEdit.dirtyRows:[]},getErrorRows:function(){return b.rowEdit.errorRows?b.rowEdit.errorRows:[]},flushDirtyRows:function(){return f.flushDirtyRows(b)},setRowsDirty:function(a){f.setRowsDirty(b,a)},setRowsClean:function(a){f.setRowsClean(b,a)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods),b.api.core.on.renderingComplete(a,function(c){b.api.edit.on.afterCellEdit(a,f.endEditCell),b.api.edit.on.beginCellEdit(a,f.beginEditCell),b.api.edit.on.cancelCellEdit(a,f.cancelEditCell),b.api.cellNav&&b.api.cellNav.on.navigate(a,f.navigate)})},defaultGridOptions:function(a){},saveRow:function(a,b){var c=this;return function(){if(b.isSaving=!0,b.rowEditSavePromise)return b.rowEditSavePromise;var d=a.api.rowEdit.raise.saveRow(b.entity);return b.rowEditSavePromise?b.rowEditSavePromise.then(c.processSuccessPromise(a,b),c.processErrorPromise(a,b)):e.logError("A promise was not returned when saveRow event was raised, either nobody is listening to event, or event handler did not return a promise"),d}},setSavePromise:function(a,b,c){var d=a.getRow(b);d.rowEditSavePromise=c},processSuccessPromise:function(a,b){var c=this;return function(){delete b.isSaving,delete b.isDirty,delete b.isError,delete b.rowEditSaveTimer,delete b.rowEditSavePromise,c.removeRow(a.rowEdit.errorRows,b),c.removeRow(a.rowEdit.dirtyRows,b)}},processErrorPromise:function(a,b){return function(){delete b.isSaving,delete b.rowEditSaveTimer,delete b.rowEditSavePromise,b.isError=!0,a.rowEdit.errorRows||(a.rowEdit.errorRows=[]),f.isRowPresent(a.rowEdit.errorRows,b)||a.rowEdit.errorRows.push(b)}},removeRow:function(a,b){"undefined"!=typeof a&&null!==a&&a.forEach(function(c,d){c.uid===b.uid&&a.splice(d,1)})},isRowPresent:function(a,b){var c=!1;return a.forEach(function(a,d){a.uid===b.uid&&(c=!0)}),c},flushDirtyRows:function(a){var c=[];return a.api.rowEdit.getDirtyRows().forEach(function(b){f.saveRow(a,b)(),c.push(b.rowEditSavePromise)}),b.all(c)},endEditCell:function(a,b,c,d){var g=this.grid,h=g.getRow(a);return h?void((c!==d||h.isDirty)&&(g.rowEdit.dirtyRows||(g.rowEdit.dirtyRows=[]),h.isDirty||(h.isDirty=!0,g.rowEdit.dirtyRows.push(h)),delete h.isError,f.considerSetTimer(g,h))):void e.logError("Unable to find rowEntity in grid data, dirty flag cannot be set")},beginEditCell:function(a,b){var c=this.grid,d=c.getRow(a);return d?void f.cancelTimer(c,d):void e.logError("Unable to find rowEntity in grid data, timer cannot be cancelled")},cancelEditCell:function(a,b){var c=this.grid,d=c.getRow(a);return d?void f.considerSetTimer(c,d):void e.logError("Unable to find rowEntity in grid data, timer cannot be set")},navigate:function(a,b){var c=this.grid;a.row.rowEditSaveTimer&&f.cancelTimer(c,a.row),b&&b.row&&b.row!==a.row&&f.considerSetTimer(c,b.row)},considerSetTimer:function(b,c){if(f.cancelTimer(b,c),c.isDirty&&!c.isSaving&&-1!==b.options.rowEditWaitInterval){var d=b.options.rowEditWaitInterval?b.options.rowEditWaitInterval:2e3;c.rowEditSaveTimer=a(f.saveRow(b,c),d,1)}},cancelTimer:function(b,c){c.rowEditSaveTimer&&!c.isSaving&&(a.cancel(c.rowEditSaveTimer),delete c.rowEditSaveTimer)},setRowsDirty:function(a,b){var c;b.forEach(function(b,d){c=a.getRow(b),c?(a.rowEdit.dirtyRows||(a.rowEdit.dirtyRows=[]),c.isDirty||(c.isDirty=!0,a.rowEdit.dirtyRows.push(c)),delete c.isError,f.considerSetTimer(a,c)):e.logError("requested row not found in rowEdit.setRowsDirty, row was: "+b)})},setRowsClean:function(a,b){var c;b.forEach(function(b,d){c=a.getRow(b),c?(delete c.isDirty,f.removeRow(a.rowEdit.dirtyRows,c),f.cancelTimer(a,c),delete c.isError,f.removeRow(a.rowEdit.errorRows,c)):e.logError("requested row not found in rowEdit.setRowsClean, row was: "+b)})}};return f}]),a.directive("uiGridRowEdit",["gridUtil","uiGridRowEditService","uiGridEditConstants",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(a,e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","gridUtil","$parse",function(a,b,c,d){return{priority:-200,scope:!1,compile:function(a,b){var c=angular.element(a.children().children()[0]),d=c.attr("ng-class"),e="";return e=d?d.slice(0,-1)+", 'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}":"{'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}",c.attr("ng-class",e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.saveState",["ui.grid","ui.grid.selection","ui.grid.cellNav","ui.grid.grouping","ui.grid.pinning","ui.grid.treeView"]);a.constant("uiGridSaveStateConstants",{featureName:"saveState"}),a.service("uiGridSaveStateService",["$q","uiGridSaveStateConstants","gridUtil","$compile","$interval","uiGridConstants",function(a,b,c,d,e,f){var g={initializeGrid:function(a){a.saveState={},this.defaultGridOptions(a.options);var b={events:{saveState:{}},methods:{saveState:{save:function(){return g.save(a)},restore:function(b,c){g.restore(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.saveWidths=a.saveWidths!==!1,a.saveOrder=a.saveOrder!==!1,a.saveScroll=a.saveScroll===!0,a.saveFocus=a.saveScroll!==!0&&a.saveFocus!==!1,a.saveVisible=a.saveVisible!==!1,a.saveSort=a.saveSort!==!1,a.saveFilter=a.saveFilter!==!1,a.saveSelection=a.saveSelection!==!1,a.saveGrouping=a.saveGrouping!==!1,a.saveGroupingExpandedStates=a.saveGroupingExpandedStates===!0,a.savePinning=a.savePinning!==!1,a.saveTreeView=a.saveTreeView!==!1},save:function(a){var b={};return b.columns=g.saveColumns(a),b.scrollFocus=g.saveScrollFocus(a),b.selection=g.saveSelection(a),b.grouping=g.saveGrouping(a),b.treeView=g.saveTreeView(a),b},restore:function(a,b,c){c.columns&&g.restoreColumns(a,c.columns),c.scrollFocus&&g.restoreScrollFocus(a,b,c.scrollFocus),c.selection&&g.restoreSelection(a,c.selection),c.grouping&&g.restoreGrouping(a,c.grouping),c.treeView&&g.restoreTreeView(a,c.treeView),a.refresh()},saveColumns:function(a){var b=[];return a.getOnlyDataColumns().forEach(function(c){var d={};d.name=c.name,a.options.saveVisible&&(d.visible=c.visible),a.options.saveWidths&&(d.width=c.width),a.options.saveSort&&(d.sort=angular.copy(c.sort)),a.options.saveFilter&&(d.filters=[],c.filters.forEach(function(a){var b={};angular.forEach(a,function(a,c){"condition"!==c&&"$$hashKey"!==c&&"placeholder"!==c&&(b[c]=a)}),d.filters.push(b)})),a.api.pinning&&a.options.savePinning&&(d.pinned=c.renderContainer?c.renderContainer:""),b.push(d)}),b},saveScrollFocus:function(a){if(!a.api.cellNav)return{};var b={};if(a.options.saveFocus){b.focus=!0;var c=a.api.cellNav.getFocusedCell();null!==c&&(null!==c.col&&(b.colName=c.col.colDef.name),null!==c.row&&(b.rowVal=g.getRowVal(a,c.row)))}return(a.options.saveScroll||a.options.saveFocus&&!b.colName&&!b.rowVal)&&(b.focus=!1,a.renderContainers.body.prevRowScrollIndex&&(b.rowVal=g.getRowVal(a,a.renderContainers.body.visibleRowCache[a.renderContainers.body.prevRowScrollIndex])),a.renderContainers.body.prevColScrollIndex&&(b.colName=a.renderContainers.body.visibleColumnCache[a.renderContainers.body.prevColScrollIndex].name)),b},saveSelection:function(a){if(!a.api.selection||!a.options.saveSelection)return[];var b=a.api.selection.getSelectedGridRows().map(function(b){return g.getRowVal(a,b)});return b},saveGrouping:function(a){return a.api.grouping&&a.options.saveGrouping?a.api.grouping.getGrouping(a.options.saveGroupingExpandedStates):{}},saveTreeView:function(a){return a.api.treeView&&a.options.saveTreeView?a.api.treeView.getTreeView():{}},getRowVal:function(a,b){if(!b)return null;var c={};return a.options.saveRowIdentity?(c.identity=!0,c.row=a.options.saveRowIdentity(b.entity)):(c.identity=!1,c.row=a.renderContainers.body.visibleRowCache.indexOf(b)),c},restoreColumns:function(a,b){var c=!1;b.forEach(function(b,d){var e=a.getColumn(b.name);if(e&&!a.isRowHeaderColumn(e)){!a.options.saveVisible||e.visible===b.visible&&e.colDef.visible===b.visible||(e.visible=b.visible,e.colDef.visible=b.visible,a.api.core.raise.columnVisibilityChanged(e)),a.options.saveWidths&&(e.width=b.width),!a.options.saveSort||angular.equals(e.sort,b.sort)||void 0===e.sort&&angular.isEmpty(b.sort)||(e.sort=angular.copy(b.sort),c=!0),a.options.saveFilter&&!angular.equals(e.filters,b.filters)&&(b.filters.forEach(function(a,b){angular.extend(e.filters[b],a),"undefined"!=typeof a.term&&null!==a.term||delete e.filters[b].term}),a.api.core.raise.filterChanged()),a.api.pinning&&a.options.savePinning&&e.renderContainer!==b.pinned&&a.api.pinning.pinColumn(e,b.pinned);var f=a.getOnlyDataColumns().indexOf(e);if(-1!==f&&a.options.saveOrder&&f!==d){var g=a.columns.splice(f+a.rowHeaderColumns.length,1)[0];a.columns.splice(d+a.rowHeaderColumns.length,0,g)}}}),c&&a.api.core.raise.sortChanged(a,a.getColumnSorting())},restoreScrollFocus:function(a,b,c){if(a.api.cellNav){var d,e;if(c.colName){var f=a.options.columnDefs.filter(function(a){return a.name===c.colName});f.length>0&&(d=f[0])}c.rowVal&&c.rowVal.row&&(e=c.rowVal.identity?g.findRowByIdentity(a,c.rowVal):a.renderContainers.body.visibleRowCache[c.rowVal.row]);var h=e&&e.entity?e.entity:null;(d||h)&&(c.focus?a.api.cellNav.scrollToFocus(h,d):a.scrollTo(h,d))}},restoreSelection:function(a,b){a.api.selection&&(a.api.selection.clearSelectedRows(),b.forEach(function(b){if(b.identity){var c=g.findRowByIdentity(a,b);c&&a.api.selection.selectRow(c.entity)}else a.api.selection.selectRowByVisibleIndex(b.row)}))},restoreGrouping:function(a,b){a.api.grouping&&"undefined"!=typeof b&&null!==b&&!angular.equals(b,{})&&a.api.grouping.setGrouping(b)},restoreTreeView:function(a,b){a.api.treeView&&"undefined"!=typeof b&&null!==b&&!angular.equals(b,{})&&a.api.treeView.setTreeView(b)},findRowByIdentity:function(a,b){if(!a.options.saveRowIdentity)return null;var c=a.rows.filter(function(c){return a.options.saveRowIdentity(c.entity)===b.row});return c.length>0?c[0]:null}};return g}]),a.directive("uiGridSaveState",["uiGridSaveStateConstants","uiGridSaveStateService","gridUtil","$compile",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(a,c,d,e){b.initializeGrid(e.grid)}}}])}(),function(){"use strict";var a=angular.module("ui.grid.selection",["ui.grid"]);a.constant("uiGridSelectionConstants",{featureName:"selection",selectionRowHeaderColName:"selectionRowHeaderCol"}),angular.module("ui.grid").config(["$provide",function(a){a.decorator("GridRow",["$delegate",function(a){return a.prototype.setSelected=function(a){this.isSelected=a,a?this.grid.selection.selectedCount++:this.grid.selection.selectedCount--},a}])}]),a.service("uiGridSelectionService",["$q","$templateCache","uiGridSelectionConstants","gridUtil",function(a,b,c,d){var e={initializeGrid:function(a){a.selection={},a.selection.lastSelectedRow=null,a.selection.selectAll=!1,a.selection.selectedCount=0,e.defaultGridOptions(a.options);var b={events:{selection:{rowSelectionChanged:function(a,b,c){},rowSelectionChangedBatch:function(a,b,c){}}},methods:{selection:{toggleRowSelection:function(b,c){var d=a.getRow(b);null!==d&&e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},selectRow:function(b,c){var d=a.getRow(b);null===d||d.isSelected||e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},selectRowByVisibleIndex:function(b,c){var d=a.renderContainers.body.visibleRowCache[b];null===d||"undefined"==typeof d||d.isSelected||e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},unSelectRow:function(b,c){var d=a.getRow(b);null!==d&&d.isSelected&&e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},selectAllRows:function(b){if(a.options.multiSelect!==!1){var c=[];a.rows.forEach(function(d){d.isSelected||d.enableSelection===!1||(d.setSelected(!0),e.decideRaiseSelectionEvent(a,d,c,b))}),e.decideRaiseSelectionBatchEvent(a,c,b),a.selection.selectAll=!0}},selectAllVisibleRows:function(b){if(a.options.multiSelect!==!1){var c=[];a.rows.forEach(function(d){d.visible?d.isSelected||d.enableSelection===!1||(d.setSelected(!0),e.decideRaiseSelectionEvent(a,d,c,b)):d.isSelected&&(d.setSelected(!1),e.decideRaiseSelectionEvent(a,d,c,b))}),e.decideRaiseSelectionBatchEvent(a,c,b),a.selection.selectAll=!0}},clearSelectedRows:function(b){e.clearSelectedRows(a,b)},getSelectedRows:function(){return e.getSelectedRows(a).map(function(a){return a.entity})},getSelectedGridRows:function(){return e.getSelectedRows(a)},getSelectedCount:function(){return a.selection.selectedCount},setMultiSelect:function(b){a.options.multiSelect=b},setModifierKeysToMultiSelect:function(b){a.options.modifierKeysToMultiSelect=b},getSelectAllState:function(){return a.selection.selectAll}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.enableRowSelection=a.enableRowSelection!==!1,a.multiSelect=a.multiSelect!==!1,a.noUnselect=a.noUnselect===!0,a.modifierKeysToMultiSelect=a.modifierKeysToMultiSelect===!0,a.enableRowHeaderSelection=a.enableRowHeaderSelection!==!1,"undefined"==typeof a.enableFullRowSelection&&(a.enableFullRowSelection=!a.enableRowHeaderSelection),a.enableSelectAll=a.enableSelectAll!==!1,a.enableSelectionBatchEvent=a.enableSelectionBatchEvent!==!1,a.selectionRowHeaderWidth=angular.isDefined(a.selectionRowHeaderWidth)?a.selectionRowHeaderWidth:30,a.enableFooterTotalSelected=a.enableFooterTotalSelected!==!1,a.isRowSelectable=angular.isDefined(a.isRowSelectable)?a.isRowSelectable:angular.noop},toggleRowSelection:function(a,b,c,d,f){var g=b.isSelected;if(b.enableSelection!==!1||g){var h;d||g?!d&&g&&(h=e.getSelectedRows(a),h.length>1&&(g=!1,e.clearSelectedRows(a,c))):e.clearSelectedRows(a,c),g&&f||(b.setSelected(!g),b.isSelected===!0&&(a.selection.lastSelectedRow=b),h=e.getSelectedRows(a),a.selection.selectAll=a.rows.length===h.length,a.api.selection.raise.rowSelectionChanged(b,c))}},shiftSelect:function(a,b,c,d){if(d){var f=e.getSelectedRows(a),g=f.length>0?a.renderContainers.body.visibleRowCache.indexOf(a.selection.lastSelectedRow):0,h=a.renderContainers.body.visibleRowCache.indexOf(b);if(g>h){var i=g;g=h,h=i}for(var j=[],k=g;h>=k;k++){var l=a.renderContainers.body.visibleRowCache[k];l&&(l.isSelected||l.enableSelection===!1||(l.setSelected(!0),a.selection.lastSelectedRow=l,e.decideRaiseSelectionEvent(a,l,j,c)))}e.decideRaiseSelectionBatchEvent(a,j,c)}},getSelectedRows:function(a){return a.rows.filter(function(a){return a.isSelected})},clearSelectedRows:function(a,b){var c=[];e.getSelectedRows(a).forEach(function(d){d.isSelected&&(d.setSelected(!1),e.decideRaiseSelectionEvent(a,d,c,b))}),e.decideRaiseSelectionBatchEvent(a,c,b),a.selection.selectAll=!1,a.selection.selectedCount=0},decideRaiseSelectionEvent:function(a,b,c,d){a.options.enableSelectionBatchEvent?c.push(b):a.api.selection.raise.rowSelectionChanged(b,d)},decideRaiseSelectionBatchEvent:function(a,b,c){b.length>0&&a.api.selection.raise.rowSelectionChangedBatch(b,c)}};return e}]),a.directive("uiGridSelection",["uiGridSelectionConstants","uiGridSelectionService","$templateCache","uiGridConstants",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(c,e,f,g){if(b.initializeGrid(g.grid),g.grid.options.enableRowHeaderSelection){var h={name:a.selectionRowHeaderColName,displayName:"",width:g.grid.options.selectionRowHeaderWidth,minWidth:10,cellTemplate:"ui-grid/selectionRowHeader",headerCellTemplate:"ui-grid/selectionHeaderCell",enableColumnResizing:!1,enableColumnMenu:!1,exporterSuppressExport:!0,allowCellFocus:!0};g.grid.addRowHeaderColumn(h)}var i=!1,j=function(a){return a.forEach(function(a){a.enableSelection=g.grid.options.isRowSelectable(a)}),a},k=function(){g.grid.options.isRowSelectable!==angular.noop&&i!==!0&&(g.grid.registerRowsProcessor(j,500),i=!0)};k();var l=g.grid.registerDataChangeCallback(k,[d.dataChange.OPTIONS]);c.$on("$destroy",l)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridSelectionRowHeaderButtons",["$templateCache","uiGridSelectionService","gridUtil",function(a,b,c){return{replace:!0,restrict:"E",template:a.get("ui-grid/selectionRowHeaderButtons"),scope:!0,require:"^uiGrid",link:function(a,d,e,f){function g(a,c){c.stopPropagation(),c.shiftKey?b.shiftSelect(i,a,c,i.options.multiSelect):c.ctrlKey||c.metaKey?b.toggleRowSelection(i,a,c,i.options.multiSelect,i.options.noUnselect):b.toggleRowSelection(i,a,c,i.options.multiSelect&&!i.options.modifierKeysToMultiSelect,i.options.noUnselect)}function h(a){(a.ctrlKey||a.shiftKey)&&(a.target.onselectstart=function(){return!1},window.setTimeout(function(){a.target.onselectstart=null},0))}var i=f.grid;a.selectButtonClick=g,"ie"===c.detectBrowser()&&d.on("mousedown",h)}}}]),a.directive("uiGridSelectionSelectAllButtons",["$templateCache","uiGridSelectionService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/selectionSelectAllButtons"),scope:!1,link:function(a,c,d,e){var f=a.col.grid;a.headerButtonClick=function(a,c){f.selection.selectAll?(b.clearSelectedRows(f,c),f.options.noUnselect&&f.api.selection.selectRowByVisibleIndex(0,c),f.selection.selectAll=!1):f.options.multiSelect&&(f.api.selection.selectAllVisibleRows(c),f.selection.selectAll=!0)}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","uiGridSelectionConstants","gridUtil","$parse","uiGridSelectionService",function(a,b,c,d,e,f){return{priority:-200,scope:!1,compile:function(a,b){var c=angular.element(a.children().children()[0]),d=c.attr("ng-class"),e="";return e=d?d.slice(0,-1)+",'ui-grid-row-selected': row.isSelected}":"{'ui-grid-row-selected': row.isSelected}",c.attr("ng-class",e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}]),a.directive("uiGridCell",["$compile","uiGridConstants","uiGridSelectionConstants","gridUtil","$parse","uiGridSelectionService","$timeout",function(a,b,c,d,e,f,g){return{priority:-200,restrict:"A",require:"?^uiGrid",scope:!1,link:function(a,c,d,e){function h(){a.grid.options.enableRowSelection&&a.grid.options.enableFullRowSelection&&(c.addClass("ui-grid-disable-selection"),c.on("touchstart",m),c.on("touchend",n),c.on("click",l),a.registered=!0)}function i(){a.registered&&(c.removeClass("ui-grid-disable-selection"),c.off("touchstart",m),c.off("touchend",n),c.off("click",l),a.registered=!1)}var j=0,k=300;e.grid.api.cellNav&&e.grid.api.cellNav.on.viewPortKeyDown(a,function(b,c){null!==c&&c.row===a.row&&c.col===a.col&&32===b.keyCode&&"selectionRowHeaderCol"===a.col.colDef.name&&(f.toggleRowSelection(a.grid,a.row,b,a.grid.options.multiSelect&&!a.grid.options.modifierKeysToMultiSelect,a.grid.options.noUnselect),a.$apply())});var l=function(b){c.off("touchend",n),b.shiftKey?f.shiftSelect(a.grid,a.row,b,a.grid.options.multiSelect):b.ctrlKey||b.metaKey?f.toggleRowSelection(a.grid,a.row,b,a.grid.options.multiSelect,a.grid.options.noUnselect):f.toggleRowSelection(a.grid,a.row,b,a.grid.options.multiSelect&&!a.grid.options.modifierKeysToMultiSelect,a.grid.options.noUnselect),a.$apply(),g(function(){c.on("touchend",n)},k)},m=function(a){j=(new Date).getTime(),c.off("click",l)},n=function(a){var b=(new Date).getTime(),d=b-j;k>d&&l(a),g(function(){c.on("click",l)},k)};h();var o=a.grid.registerDataChangeCallback(function(){a.grid.options.enableRowSelection&&a.grid.options.enableFullRowSelection&&!a.registered?h():a.grid.options.enableRowSelection&&a.grid.options.enableFullRowSelection||!a.registered||i()},[b.dataChange.OPTIONS]);c.on("$destroy",o)}}}]),a.directive("uiGridGridFooter",["$compile","uiGridConstants","gridUtil",function(a,b,c){return{restrict:"EA",replace:!0,priority:-1e3,require:"^uiGrid",scope:!0,compile:function(b,d){return{pre:function(b,d,e,f){f.grid.options.showGridFooter&&c.getTemplate("ui-grid/gridFooterSelectedItems").then(function(c){var e=angular.element(c),f=a(e)(b);angular.element(d[0].getElementsByClassName("ui-grid-grid-footer")[0]).append(f)})},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.treeBase",["ui.grid"]);a.constant("uiGridTreeBaseConstants",{featureName:"treeBase",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}}),a.service("uiGridTreeBaseService",["$q","uiGridTreeBaseConstants","gridUtil","GridRow","gridClassFactory","i18nService","uiGridConstants","rowSorter",function(a,b,c,d,e,f,g,h){var i={initializeGrid:function(a,b){a.treeBase={},a.treeBase.numberLevels=0,a.treeBase.expandAll=!1,a.treeBase.tree=[],i.defaultGridOptions(a.options),a.registerRowsProcessor(i.treeRows,410),a.registerColumnBuilder(i.treeBaseColumnBuilder),i.createRowHeader(a);var c={events:{treeBase:{rowExpanded:{},rowCollapsed:{}}},methods:{treeBase:{expandAllRows:function(){i.expandAllRows(a)},collapseAllRows:function(){i.collapseAllRows(a)},toggleRowTreeState:function(b){i.toggleRowTreeState(a,b)},expandRow:function(b){i.expandRow(a,b)},expandRowChildren:function(b){i.expandRowChildren(a,b)},collapseRow:function(b){i.collapseRow(a,b)},collapseRowChildren:function(b){i.collapseRowChildren(a,b)},getTreeExpandedState:function(){return{expandedState:i.getTreeState(a)}},setTreeState:function(b){i.setTreeState(a,b)},getRowChildren:function(a){return a.treeNode.children.map(function(a){return a.row})}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.treeRowHeaderBaseWidth=a.treeRowHeaderBaseWidth||30,a.treeIndent=a.treeIndent||10,a.showTreeRowHeader=a.showTreeRowHeader!==!1,a.showTreeExpandNoChildren=a.showTreeExpandNoChildren!==!1,a.treeRowHeaderAlwaysVisible=a.treeRowHeaderAlwaysVisible!==!1,a.treeCustomAggregations=a.treeCustomAggregations||{}},treeBaseColumnBuilder:function(a,b,c){"undefined"!=typeof a.customTreeAggregationFn&&(b.treeAggregationFn=a.customTreeAggregationFn),"undefined"!=typeof a.treeAggregationType&&(b.treeAggregation={type:a.treeAggregationType},"undefined"!=typeof c.treeCustomAggregations[a.treeAggregationType]?(b.treeAggregationFn=c.treeCustomAggregations[a.treeAggregationType].aggregationFn,b.treeAggregationFinalizerFn=c.treeCustomAggregations[a.treeAggregationType].finalizerFn,b.treeAggregation.label=c.treeCustomAggregations[a.treeAggregationType].label):"undefined"!=typeof i.nativeAggregations()[a.treeAggregationType]&&(b.treeAggregationFn=i.nativeAggregations()[a.treeAggregationType].aggregationFn,b.treeAggregation.label=i.nativeAggregations()[a.treeAggregationType].label)),"undefined"!=typeof a.treeAggregationLabel&&("undefined"==typeof b.treeAggregation&&(b.treeAggregation={}),b.treeAggregation.label=a.treeAggregationLabel),b.treeAggregationUpdateEntity=a.treeAggregationUpdateEntity!==!1,"undefined"==typeof b.customTreeAggregationFinalizerFn&&(b.customTreeAggregationFinalizerFn=a.customTreeAggregationFinalizerFn)},createRowHeader:function(a){var c={name:b.rowHeaderColName,displayName:"",width:a.options.treeRowHeaderBaseWidth,minWidth:10,cellTemplate:"ui-grid/treeBaseRowHeader",headerCellTemplate:"ui-grid/treeBaseHeaderCell",enableColumnResizing:!1,enableColumnMenu:!1,exporterSuppressExport:!0,allowCellFocus:!0};c.visible=a.options.treeRowHeaderAlwaysVisible,a.addRowHeaderColumn(c)},expandAllRows:function(a){a.treeBase.tree.forEach(function(c){i.setAllNodes(a,c,b.EXPANDED)}),a.treeBase.expandAll=!0,a.queueGridRefresh()},collapseAllRows:function(a){a.treeBase.tree.forEach(function(c){i.setAllNodes(a,c,b.COLLAPSED)}),a.treeBase.expandAll=!1,a.queueGridRefresh()},setAllNodes:function(a,c,d){"undefined"!=typeof c.state&&c.state!==d&&(c.state=d,d===b.EXPANDED?a.api.treeBase.raise.rowExpanded(c.row):a.api.treeBase.raise.rowCollapsed(c.row)),c.children&&c.children.forEach(function(b){i.setAllNodes(a,b,d)})},toggleRowTreeState:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||(c.treeNode.state===b.EXPANDED?i.collapseRow(a,c):i.expandRow(a,c),a.queueGridRefresh())},expandRow:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||c.treeNode.state!==b.EXPANDED&&(c.treeNode.state=b.EXPANDED,a.api.treeBase.raise.rowExpanded(c),a.treeBase.expandAll=i.allExpanded(a.treeBase.tree),a.queueGridRefresh())},expandRowChildren:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||(i.setAllNodes(a,c.treeNode,b.EXPANDED),a.treeBase.expandAll=i.allExpanded(a.treeBase.tree),a.queueGridRefresh())},collapseRow:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||c.treeNode.state!==b.COLLAPSED&&(c.treeNode.state=b.COLLAPSED,a.treeBase.expandAll=!1,a.api.treeBase.raise.rowCollapsed(c),a.queueGridRefresh())},collapseRowChildren:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||(i.setAllNodes(a,c.treeNode,b.COLLAPSED),a.treeBase.expandAll=!1,a.queueGridRefresh())},allExpanded:function(a){var b=!0;return a.forEach(function(a){i.allExpandedInternal(a)||(b=!1)}),b},allExpandedInternal:function(a){if(a.children&&a.children.length>0){if(a.state===b.COLLAPSED)return!1;var c=!0;return a.children.forEach(function(a){i.allExpandedInternal(a)||(c=!1)}),c}return!0},treeRows:function(a){if(0===a.length)return a;var c=this;b.EXPANDED;return c.treeBase.tree=i.createTree(c,a),i.updateRowHeaderWidth(c),i.sortTree(c),i.fixFilter(c),i.renderTree(c.treeBase.tree)},updateRowHeaderWidth:function(a){var c=a.getColumn(b.rowHeaderColName),d=a.options.treeRowHeaderBaseWidth+a.options.treeIndent*Math.max(a.treeBase.numberLevels-1,0);c&&d!==c.width&&(c.width=d,a.queueRefresh());var e=!0;a.options.showTreeRowHeader===!1&&(e=!1),a.options.treeRowHeaderAlwaysVisible===!1&&a.treeBase.numberLevels<=0&&(e=!1),c.visible!==e&&(c.visible=e,c.colDef.visible=e,a.queueGridRefresh())},renderTree:function(a){var c=[];return a.forEach(function(a){a.row.visible&&c.push(a.row),a.state===b.EXPANDED&&a.children&&a.children.length>0&&(c=c.concat(i.renderTree(a.children)))}),c},createTree:function(a,c){var d,e=-1,f=[];a.treeBase.tree=[],a.treeBase.numberLevels=0;var g=i.getAggregations(a),h=function(c){if("undefined"!=typeof c.entity.$$treeLevel&&c.treeLevel!==c.entity.$$treeLevel&&(c.treeLevel=c.entity.$$treeLevel),c.treeLevel<=e){for(;c.treeLevel<=e;){var h=f.pop();i.finaliseAggregations(h),e--}d=f.length>0?i.setCurrentState(f):b.EXPANDED}("undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0)&&c.visible&&i.aggregate(a,c,f),i.addOrUseNode(a,c,f,g),"undefined"!=typeof c.treeLevel&&null!==c.treeLevel&&c.treeLevel>=0&&(f.push(c),e++,d=i.setCurrentState(f)),a.treeBase.numberLevels0;){var j=f.pop();i.finaliseAggregations(j)}return a.treeBase.tree},addOrUseNode:function(a,c,d,e){var f=[];e.forEach(function(a){f.push(i.buildAggregationObject(a.col))});var g={state:b.COLLAPSED,row:c,parentRow:null,aggregations:f,children:[]};c.treeNode&&(g.state=c.treeNode.state),d.length>0&&(g.parentRow=d[d.length-1]),c.treeNode=g,0===d.length?a.treeBase.tree.push(g):d[d.length-1].treeNode.children.push(g)},setCurrentState:function(a){var c=b.EXPANDED;return a.forEach(function(a){a.treeNode.state===b.COLLAPSED&&(c=b.COLLAPSED)}),c},sortTree:function(a){a.columns.forEach(function(a){a.sort&&a.sort.ignoreSort&&delete a.sort.ignoreSort}),a.treeBase.tree=i.sortInternal(a,a.treeBase.tree)},sortInternal:function(a,c){var d=c.map(function(a){return a.row});d=h.sort(a,d,a.columns);var e=d.map(function(a){return a.treeNode});return e.forEach(function(c){c.state===b.EXPANDED&&c.children&&c.children.length>0&&(c.children=i.sortInternal(a,c.children))}),e},fixFilter:function(a){var b;a.treeBase.tree.forEach(function(a){a.children&&a.children.length>0&&(b=a.row.visible,i.fixFilterInternal(a.children,b))})},fixFilterInternal:function(a,b){return a.forEach(function(a){a.row.visible&&!b&&(i.setParentsVisible(a),b=!0),a.children&&a.children.length>0&&i.fixFilterInternal(a.children,b&&a.row.visible)&&(b=!0)}),b},setParentsVisible:function(a){for(;a.parentRow;)a.parentRow.visible=!0,a=a.parentRow.treeNode},buildAggregationObject:function(a){var b={col:a};return a.treeAggregation&&a.treeAggregation.type&&(b.type=a.treeAggregation.type),a.treeAggregation&&a.treeAggregation.label&&(b.label=a.treeAggregation.label),b},getAggregations:function(a){var b=[];return a.columns.forEach(function(c){"undefined"!=typeof c.treeAggregationFn&&(b.push(i.buildAggregationObject(c)),a.options.showColumnFooter&&"undefined"==typeof c.colDef.aggregationType&&c.treeAggregation&&(c.treeFooterAggregation=i.buildAggregationObject(c),c.aggregationType=i.treeFooterAggregationType))}),b},aggregate:function(a,b,c){0===c.length&&b.treeNode&&b.treeNode.aggregations&&b.treeNode.aggregations.forEach(function(c){if("undefined"!=typeof c.col.treeFooterAggregation){var d=a.getCellValue(b,c.col),e=Number(d);c.col.treeAggregationFn(c.col.treeFooterAggregation,d,e,b)}}),c.forEach(function(c,d){c.treeNode.aggregations&&c.treeNode.aggregations.forEach(function(c){var e=a.getCellValue(b,c.col),f=Number(e);c.col.treeAggregationFn(c,e,f,b),0===d&&"undefined"!=typeof c.col.treeFooterAggregation&&c.col.treeAggregationFn(c.col.treeFooterAggregation,e,f,b)})})},nativeAggregations:function(){var a={count:{label:f.get().aggregation.count, -menuTitle:f.get().grouping.aggregate_count,aggregationFn:function(a,b,c){"undefined"==typeof a.value?a.value=1:a.value++}},sum:{label:f.get().aggregation.sum,menuTitle:f.get().grouping.aggregate_sum,aggregationFn:function(a,b,c){isNaN(c)||("undefined"==typeof a.value?a.value=c:a.value+=c)}},min:{label:f.get().aggregation.min,menuTitle:f.get().grouping.aggregate_min,aggregationFn:function(a,b,c){"undefined"==typeof a.value?a.value=b:"undefined"!=typeof b&&null!==b&&(ba.value||null===a.value)&&(a.value=b)}},avg:{label:f.get().aggregation.avg,menuTitle:f.get().grouping.aggregate_avg,aggregationFn:function(a,b,c){"undefined"==typeof a.count?a.count=1:a.count++,isNaN(c)||("undefined"==typeof a.value||"undefined"==typeof a.sum?(a.value=c,a.sum=c):(a.sum+=c,a.value=a.sum/a.count))}}};return a},finaliseAggregation:function(a,b){b.col.treeAggregationUpdateEntity&&"undefined"!=typeof a&&"undefined"!=typeof a.entity["$$"+b.col.uid]&&angular.extend(b,a.entity["$$"+b.col.uid]),"function"==typeof b.col.treeAggregationFinalizerFn&&b.col.treeAggregationFinalizerFn(b),"function"==typeof b.col.customTreeAggregationFinalizerFn&&b.col.customTreeAggregationFinalizerFn(b),"undefined"==typeof b.rendered&&(b.rendered=b.label?b.label+b.value:b.value)},finaliseAggregations:function(a){"undefined"!=typeof a.treeNode.aggregations&&a.treeNode.aggregations.forEach(function(b){if(i.finaliseAggregation(a,b),b.col.treeAggregationUpdateEntity){var c={};angular.forEach(b,function(a,d){b.hasOwnProperty(d)&&"col"!==d&&(c[d]=a)}),a.entity["$$"+b.col.uid]=c}})},treeFooterAggregationType:function(a,b){return i.finaliseAggregation(void 0,b.treeFooterAggregation),"undefined"==typeof b.treeFooterAggregation.value||null===b.treeFooterAggregation.rendered?"":b.treeFooterAggregation.rendered}};return i}]),a.directive("uiGridTreeBaseRowHeaderButtons",["$templateCache","uiGridTreeBaseService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/treeBaseRowHeaderButtons"),scope:!0,require:"^uiGrid",link:function(a,c,d,e){var f=e.grid;a.treeButtonClick=function(a,c){b.toggleRowTreeState(f,a,c)}}}}]),a.directive("uiGridTreeBaseExpandAllButtons",["$templateCache","uiGridTreeBaseService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/treeBaseExpandAllButtons"),scope:!1,link:function(a,c,d,e){var f=a.col.grid;a.headerButtonClick=function(a,c){f.treeBase.expandAll?b.collapseAllRows(f,c):b.expandAllRows(f,c)}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","gridUtil","$parse",function(a,b,c,d){return{priority:-200,scope:!1,compile:function(a,b){var c=angular.element(a.children().children()[0]),d=c.attr("ng-class"),e="";return e=d?d.slice(0,-1)+",'ui-grid-tree-header-row': row.treeLevel > -1}":"{'ui-grid-tree-header-row': row.treeLevel > -1}",c.attr("ng-class",e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.treeView",["ui.grid","ui.grid.treeBase"]);a.constant("uiGridTreeViewConstants",{featureName:"treeView",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}}),a.service("uiGridTreeViewService",["$q","uiGridTreeViewConstants","uiGridTreeBaseConstants","uiGridTreeBaseService","gridUtil","GridRow","gridClassFactory","i18nService","uiGridConstants",function(a,b,c,d,e,f,g,h,i){var j={initializeGrid:function(a,b){d.initializeGrid(a,b),a.treeView={},a.registerRowsProcessor(j.adjustSorting,60);var c={events:{treeView:{}},methods:{treeView:{}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.enableTreeView=a.enableTreeView!==!1},adjustSorting:function(a){var b=this;return b.columns.forEach(function(a){a.sort&&(a.sort.ignoreSort=!0)}),a}};return j}]),a.directive("uiGridTreeView",["uiGridTreeViewConstants","uiGridTreeViewService","$templateCache",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){e.grid.options.enableTreeView!==!1&&b.initializeGrid(e.grid,a)},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.validate",["ui.grid"]);a.service("uiGridValidateService",["$sce","$q","$http","i18nService","uiGridConstants",function(a,b,c,d,e){var f={validatorFactories:{},setExternalFactoryFunction:function(a){f.externalFactoryFunction=a},clearExternalFactory:function(){delete f.externalFactoryFunction},getValidatorFromExternalFactory:function(a,b){return f.externalFactoryFunction(a,b).validatorFactory(b)},getMessageFromExternalFactory:function(a,b){return f.externalFactoryFunction(a,b).messageFunction(b)},setValidator:function(a,b,c){f.validatorFactories[a]={validatorFactory:b,messageFunction:c}},getValidator:function(a,b){if(f.externalFactoryFunction){var c=f.getValidatorFromExternalFactory(a,b);if(c)return c}if(!f.validatorFactories[a])throw"Invalid validator name: "+a;return f.validatorFactories[a].validatorFactory(b)},getMessage:function(a,b){if(f.externalFactoryFunction){var c=f.getMessageFromExternalFactory(a,b);if(c)return c}return f.validatorFactories[a].messageFunction(b)},isInvalid:function(a,b){return a["$$invalid"+b.name]},setInvalid:function(a,b){a["$$invalid"+b.name]=!0},setValid:function(a,b){delete a["$$invalid"+b.name]},setError:function(a,b,c){a["$$errors"+b.name]||(a["$$errors"+b.name]={}),a["$$errors"+b.name][c]=!0},clearError:function(a,b,c){a["$$errors"+b.name]&&c in a["$$errors"+b.name]&&delete a["$$errors"+b.name][c]},getErrorMessages:function(a,b){var c=[];return a["$$errors"+b.name]&&0!==Object.keys(a["$$errors"+b.name]).length?(Object.keys(a["$$errors"+b.name]).sort().forEach(function(a){c.push(f.getMessage(a,b.validators[a]))}),c):c},getFormattedErrors:function(b,c){var e="",g=f.getErrorMessages(b,c);return g.length?(g.forEach(function(a){e+=a+"
        "}),a.trustAsHtml("

        "+d.getSafeText("validate.error")+"

        "+e)):void 0},getTitleFormattedErrors:function(b,c){var e="\n",g="",h=f.getErrorMessages(b,c);return h.length?(h.forEach(function(a){g+=a+e}),a.trustAsHtml(d.getSafeText("validate.error")+e+g)):void 0},runValidators:function(a,c,d,e,g){if(d!==e){if("undefined"==typeof c.name||!c.name)throw new Error("colDef.name is required to perform validation");f.setValid(a,c);var h=function(a,b,c){return function(h){h||(f.setInvalid(a,b),f.setError(a,b,c),g&&g.api.validate.raise.validationFailed(a,b,d,e))}};for(var i in c.validators){f.clearError(a,c,i);var j=f.getValidator(i,c.validators[i]);b.when(j(e,d,a,c)).then(h(a,c,i))}}},createDefaultValidators:function(){f.setValidator("minLength",function(a){return function(b,c,d,e){return void 0===c||null===c||""===c?!0:c.length>=a}},function(a){return d.getSafeText("validate.minLength").replace("THRESHOLD",a)}),f.setValidator("maxLength",function(a){return function(b,c,d,e){return void 0===c||null===c||""===c?!0:c.length<=a}},function(a){return d.getSafeText("validate.maxLength").replace("THRESHOLD",a)}),f.setValidator("required",function(a){return function(b,c,d,e){return a?!(void 0===c||null===c||""===c):!0}},function(a){return d.getSafeText("validate.required")})},initializeGrid:function(a,b){b.validate={isInvalid:f.isInvalid,getFormattedErrors:f.getFormattedErrors,getTitleFormattedErrors:f.getTitleFormattedErrors,runValidators:f.runValidators};var c={events:{validate:{validationFailed:function(a,b,c,d){}}},methods:{validate:{isInvalid:function(a,c){return b.validate.isInvalid(a,c)},getErrorMessages:function(a,c){return b.validate.getErrorMessages(a,c)},getFormattedErrors:function(a,c){return b.validate.getFormattedErrors(a,c)},getTitleFormattedErrors:function(a,c){return b.validate.getTitleFormattedErrors(a,c)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods),b.edit&&b.api.edit.on.afterCellEdit(a,function(a,c,d,e){b.validate.runValidators(a,c,d,e,b)}),f.createDefaultValidators()}};return f}]),a.directive("uiGridValidate",["gridUtil","uiGridValidateService",function(a,b){return{priority:0,replace:!0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(a,e.grid)},post:function(a,b,c,d){}}}}}])}(),angular.module("ui.grid").run(["$templateCache",function(a){"use strict";a.put("ui-grid/ui-grid-filter",'
         
         
        '),a.put("ui-grid/ui-grid-footer",''),a.put("ui-grid/ui-grid-grid-footer",''),a.put("ui-grid/ui-grid-group-panel",'
        • {{group.displayName}} x
        '),a.put("ui-grid/ui-grid-header",'
        '),a.put("ui-grid/ui-grid-menu-button",'
         
        '),a.put("ui-grid/ui-grid-no-header",'
        '),a.put("ui-grid/ui-grid-row","
        "),a.put("ui-grid/ui-grid",'
        '),a.put("ui-grid/uiGridCell",'
        {{COL_FIELD CUSTOM_FILTERS}}
        '),a.put("ui-grid/uiGridColumnMenu",'
        '),a.put("ui-grid/uiGridFooterCell",'
        {{ col.getAggregationText() + ( col.getAggregationValue() CUSTOM_FILTERS ) }}
        '),a.put("ui-grid/uiGridHeaderCell",'
        {{ col.displayName CUSTOM_FILTERS }} {{col.sort.priority}}
        '),a.put("ui-grid/uiGridMenu",'
        '),a.put("ui-grid/uiGridMenuItem",''),a.put("ui-grid/uiGridRenderContainer","
        "),a.put("ui-grid/uiGridViewport",'
        '),a.put("ui-grid/cellEditor",'
        '),a.put("ui-grid/dropdownEditor",'
        '),a.put("ui-grid/fileChooserEditor",'
        '),a.put("ui-grid/expandableRow",'
        '),a.put("ui-grid/expandableRowHeader",'
        '),a.put("ui-grid/expandableScrollFiller","
        "),a.put("ui-grid/expandableTopRowHeader",'
        '),a.put("ui-grid/csvLink",'LINK_LABEL'),a.put("ui-grid/importerMenuItem",'
      • '),a.put("ui-grid/importerMenuItemContainer","
        "),a.put("ui-grid/pagination",''),a.put("ui-grid/columnResizer",'
        '),a.put("ui-grid/gridFooterSelectedItems",'({{"search.selectedItems" | t}} {{grid.selection.selectedCount}})'),a.put("ui-grid/selectionHeaderCell",'
        '),a.put("ui-grid/selectionRowHeader",'
        '),a.put("ui-grid/selectionRowHeaderButtons",'
         
        '),a.put("ui-grid/selectionSelectAllButtons",'
        '),a.put("ui-grid/treeBaseExpandAllButtons",'
        '),a.put("ui-grid/treeBaseHeaderCell",'
        '),a.put("ui-grid/treeBaseRowHeader",'
        '),a.put("ui-grid/treeBaseRowHeaderButtons","
        -1 }\" ng-click=\"treeButtonClick(row, $event)\"> -1 ) || ( row.treeNode.children && row.treeNode.children.length > 0 ) ) && row.treeNode.state === 'expanded', 'ui-grid-icon-plus-squared': ( ( grid.options.showTreeExpandNoChildren && row.treeLevel > -1 ) || ( row.treeNode.children && row.treeNode.children.length > 0 ) ) && row.treeNode.state === 'collapsed'}\" ng-style=\"{'padding-left': grid.options.treeIndent * row.treeLevel + 'px'}\">  
        "),a.put("ui-grid/cellTitleValidator",'
        {{COL_FIELD CUSTOM_FILTERS}}
        '),a.put("ui-grid/cellTooltipValidator",'
        {{COL_FIELD CUSTOM_FILTERS}}
        ')}]),function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){(function(b){a.exports=b.pdfMake=c(1)}).call(b,function(){return this}())},function(a,b,c){(function(b){"use strict";function d(a,b,c){this.docDefinition=a,this.fonts=b||h,this.vfs=c}var e=c(6),f=c(105),g=f.saveAs,h={Roboto:{normal:"Roboto-Regular.ttf",bold:"Roboto-Medium.ttf",italics:"Roboto-Italic.ttf",bolditalics:"Roboto-Italic.ttf"}};d.prototype._createDoc=function(a,c){var d=new e(this.fonts);d.fs.bindFS(this.vfs);var f,g=d.createPdfKitDocument(this.docDefinition,a),h=[];g.on("data",function(a){h.push(a)}),g.on("end",function(){f=b.concat(h),c(f,g._pdfMakePages)}),g.end()},d.prototype._getPages=function(a,b){if(!b)throw"getBuffer is an async method and needs a callback argument";this._createDoc(a,function(a,c){b(c)})},d.prototype.open=function(a){var b=window.open("","_blank");try{this.getDataUrl(function(a){b.location.href=a})}catch(c){throw b.close(),c}},d.prototype.print=function(){this.getDataUrl(function(a){var b=document.createElement("iframe");b.style.position="absolute",b.style.left="-99999px",b.src=a,b.onload=function(){function a(){document.body.removeChild(b),document.removeEventListener("click",a)}document.addEventListener("click",a,!1)},document.body.appendChild(b)},{autoPrint:!0})},d.prototype.download=function(a,b){"function"==typeof a&&(b=a,a=null),a=a||"file.pdf",this.getBuffer(function(c){var d;try{d=new Blob([c],{type:"application/pdf"})}catch(e){if("InvalidStateError"==e.name){var f=new Uint8Array(c);d=new Blob([f.buffer],{type:"application/pdf"})}}if(!d)throw"Could not generate blob";g(d,a),"function"==typeof b&&b()})},d.prototype.getBase64=function(a,b){if(!a)throw"getBase64 is an async method and needs a callback argument";this._createDoc(b,function(b){a(b.toString("base64"))})},d.prototype.getDataUrl=function(a,b){if(!a)throw"getDataUrl is an async method and needs a callback argument";this._createDoc(b,function(b){a("data:application/pdf;base64,"+b.toString("base64"))})},d.prototype.getBuffer=function(a,b){if(!a)throw"getBuffer is an async method and needs a callback argument";this._createDoc(b,function(b){a(b)})},a.exports={createPdf:function(a){return new d(a,window.pdfMake.fonts,window.pdfMake.vfs)}}}).call(b,c(2).Buffer)},function(a,b,c){(function(a,d){function e(){function a(){}try{var b=new Uint8Array(1);return b.foo=function(){return 42},b.constructor=a,42===b.foo()&&b.constructor===a&&"function"==typeof b.subarray&&0===b.subarray(1,1).byteLength}catch(c){return!1}}function f(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(b){return this instanceof a?(this.length=0,this.parent=void 0,"number"==typeof b?g(this,b):"string"==typeof b?h(this,b,arguments.length>1?arguments[1]:"utf8"):i(this,b)):arguments.length>1?new a(b,arguments[1]):new a(b)}function g(b,c){if(b=p(b,0>c?0:0|q(c)),!a.TYPED_ARRAY_SUPPORT)for(var d=0;c>d;d++)b[d]=0;return b}function h(a,b,c){"string"==typeof c&&""!==c||(c="utf8");var d=0|s(b,c);return a=p(a,d),a.write(b,c),a}function i(b,c){if(a.isBuffer(c))return j(b,c);if(Y(c))return k(b,c);if(null==c)throw new TypeError("must start with number, buffer, array or string");if("undefined"!=typeof ArrayBuffer){if(c.buffer instanceof ArrayBuffer)return l(b,c);if(c instanceof ArrayBuffer)return m(b,c)}return c.length?n(b,c):o(b,c)}function j(a,b){var c=0|q(b.length);return a=p(a,c),b.copy(a,0,0,c),a}function k(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function l(a,b){var c=0|q(b.length); -a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function m(b,c){return a.TYPED_ARRAY_SUPPORT?(c.byteLength,b=a._augment(new Uint8Array(c))):b=l(b,new Uint8Array(c)),b}function n(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function o(a,b){var c,d=0;"Buffer"===b.type&&Y(b.data)&&(c=b.data,d=0|q(c.length)),a=p(a,d);for(var e=0;d>e;e+=1)a[e]=255&c[e];return a}function p(b,c){a.TYPED_ARRAY_SUPPORT?(b=a._augment(new Uint8Array(c)),b.__proto__=a.prototype):(b.length=c,b._isBuffer=!0);var d=0!==c&&c<=a.poolSize>>>1;return d&&(b.parent=Z),b}function q(a){if(a>=f())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+f().toString(16)+" bytes");return 0|a}function r(b,c){if(!(this instanceof r))return new r(b,c);var d=new a(b,c);return delete d.parent,d}function s(a,b){"string"!=typeof a&&(a=""+a);var c=a.length;if(0===c)return 0;for(var d=!1;;)switch(b){case"ascii":case"binary":case"raw":case"raws":return c;case"utf8":case"utf-8":return R(a).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*c;case"hex":return c>>>1;case"base64":return U(a).length;default:if(d)return R(a).length;b=(""+b).toLowerCase(),d=!0}}function t(a,b,c){var d=!1;if(b=0|b,c=void 0===c||c===1/0?this.length:0|c,a||(a="utf8"),0>b&&(b=0),c>this.length&&(c=this.length),b>=c)return"";for(;;)switch(a){case"hex":return F(this,b,c);case"utf8":case"utf-8":return B(this,b,c);case"ascii":return D(this,b,c);case"binary":return E(this,b,c);case"base64":return A(this,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G(this,b,c);default:if(d)throw new TypeError("Unknown encoding: "+a);a=(a+"").toLowerCase(),d=!0}}function u(a,b,c,d){c=Number(c)||0;var e=a.length-c;d?(d=Number(d),d>e&&(d=e)):d=e;var f=b.length;if(f%2!==0)throw new Error("Invalid hex string");d>f/2&&(d=f/2);for(var g=0;d>g;g++){var h=parseInt(b.substr(2*g,2),16);if(isNaN(h))throw new Error("Invalid hex string");a[c+g]=h}return g}function v(a,b,c,d){return V(R(b,a.length-c),a,c,d)}function w(a,b,c,d){return V(S(b),a,c,d)}function x(a,b,c,d){return w(a,b,c,d)}function y(a,b,c,d){return V(U(b),a,c,d)}function z(a,b,c,d){return V(T(b,a.length-c),a,c,d)}function A(a,b,c){return 0===b&&c===a.length?W.fromByteArray(a):W.fromByteArray(a.slice(b,c))}function B(a,b,c){c=Math.min(a.length,c);for(var d=[],e=b;c>e;){var f=a[e],g=null,h=f>239?4:f>223?3:f>191?2:1;if(c>=e+h){var i,j,k,l;switch(h){case 1:128>f&&(g=f);break;case 2:i=a[e+1],128===(192&i)&&(l=(31&f)<<6|63&i,l>127&&(g=l));break;case 3:i=a[e+1],j=a[e+2],128===(192&i)&&128===(192&j)&&(l=(15&f)<<12|(63&i)<<6|63&j,l>2047&&(55296>l||l>57343)&&(g=l));break;case 4:i=a[e+1],j=a[e+2],k=a[e+3],128===(192&i)&&128===(192&j)&&128===(192&k)&&(l=(15&f)<<18|(63&i)<<12|(63&j)<<6|63&k,l>65535&&1114112>l&&(g=l))}}null===g?(g=65533,h=1):g>65535&&(g-=65536,d.push(g>>>10&1023|55296),g=56320|1023&g),d.push(g),e+=h}return C(d)}function C(a){var b=a.length;if($>=b)return String.fromCharCode.apply(String,a);for(var c="",d=0;b>d;)c+=String.fromCharCode.apply(String,a.slice(d,d+=$));return c}function D(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(127&a[e]);return d}function E(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(a[e]);return d}function F(a,b,c){var d=a.length;(!b||0>b)&&(b=0),(!c||0>c||c>d)&&(c=d);for(var e="",f=b;c>f;f++)e+=Q(a[f]);return e}function G(a,b,c){for(var d=a.slice(b,c),e="",f=0;fa)throw new RangeError("offset is not uint");if(a+b>c)throw new RangeError("Trying to access beyond buffer length")}function I(b,c,d,e,f,g){if(!a.isBuffer(b))throw new TypeError("buffer must be a Buffer instance");if(c>f||g>c)throw new RangeError("value is out of bounds");if(d+e>b.length)throw new RangeError("index out of range")}function J(a,b,c,d){0>b&&(b=65535+b+1);for(var e=0,f=Math.min(a.length-c,2);f>e;e++)a[c+e]=(b&255<<8*(d?e:1-e))>>>8*(d?e:1-e)}function K(a,b,c,d){0>b&&(b=4294967295+b+1);for(var e=0,f=Math.min(a.length-c,4);f>e;e++)a[c+e]=b>>>8*(d?e:3-e)&255}function L(a,b,c,d,e,f){if(b>e||f>b)throw new RangeError("value is out of bounds");if(c+d>a.length)throw new RangeError("index out of range");if(0>c)throw new RangeError("index out of range")}function M(a,b,c,d,e){return e||L(a,b,c,4,3.4028234663852886e38,-3.4028234663852886e38),X.write(a,b,c,d,23,4),c+4}function N(a,b,c,d,e){return e||L(a,b,c,8,1.7976931348623157e308,-1.7976931348623157e308),X.write(a,b,c,d,52,8),c+8}function O(a){if(a=P(a).replace(aa,""),a.length<2)return"";for(;a.length%4!==0;)a+="=";return a}function P(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function Q(a){return 16>a?"0"+a.toString(16):a.toString(16)}function R(a,b){b=b||1/0;for(var c,d=a.length,e=null,f=[],g=0;d>g;g++){if(c=a.charCodeAt(g),c>55295&&57344>c){if(!e){if(c>56319){(b-=3)>-1&&f.push(239,191,189);continue}if(g+1===d){(b-=3)>-1&&f.push(239,191,189);continue}e=c;continue}if(56320>c){(b-=3)>-1&&f.push(239,191,189),e=c;continue}c=e-55296<<10|c-56320|65536}else e&&(b-=3)>-1&&f.push(239,191,189);if(e=null,128>c){if((b-=1)<0)break;f.push(c)}else if(2048>c){if((b-=2)<0)break;f.push(c>>6|192,63&c|128)}else if(65536>c){if((b-=3)<0)break;f.push(c>>12|224,c>>6&63|128,63&c|128)}else{if(!(1114112>c))throw new Error("Invalid code point");if((b-=4)<0)break;f.push(c>>18|240,c>>12&63|128,c>>6&63|128,63&c|128)}}return f}function S(a){for(var b=[],c=0;c>8,e=c%256,f.push(e),f.push(d);return f}function U(a){return W.toByteArray(O(a))}function V(a,b,c,d){for(var e=0;d>e&&!(e+c>=b.length||e>=a.length);e++)b[e+c]=a[e];return e}var W=c(3),X=c(4),Y=c(5);b.Buffer=a,b.SlowBuffer=r,b.INSPECT_MAX_BYTES=50,a.poolSize=8192;var Z={};a.TYPED_ARRAY_SUPPORT=void 0!==d.TYPED_ARRAY_SUPPORT?d.TYPED_ARRAY_SUPPORT:e(),a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array),a.isBuffer=function(a){return!(null==a||!a._isBuffer)},a.compare=function(b,c){if(!a.isBuffer(b)||!a.isBuffer(c))throw new TypeError("Arguments must be Buffers");if(b===c)return 0;for(var d=b.length,e=c.length,f=0,g=Math.min(d,e);g>f&&b[f]===c[f];)++f;return f!==g&&(d=b[f],e=c[f]),e>d?-1:d>e?1:0},a.isEncoding=function(a){switch(String(a).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(b,c){if(!Y(b))throw new TypeError("list argument must be an Array of Buffers.");if(0===b.length)return new a(0);var d;if(void 0===c)for(c=0,d=0;d0&&(a=this.toString("hex",0,c).match(/.{2}/g).join(" "),this.length>c&&(a+=" ... ")),""},a.prototype.compare=function(b){if(!a.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?0:a.compare(this,b)},a.prototype.indexOf=function(b,c){function d(a,b,c){for(var d=-1,e=0;c+e2147483647?c=2147483647:-2147483648>c&&(c=-2147483648),c>>=0,0===this.length)return-1;if(c>=this.length)return-1;if(0>c&&(c=Math.max(this.length+c,0)),"string"==typeof b)return 0===b.length?-1:String.prototype.indexOf.call(this,b,c);if(a.isBuffer(b))return d(this,b,c);if("number"==typeof b)return a.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,b,c):d(this,[b],c);throw new TypeError("val must be string, number or Buffer")},a.prototype.get=function(a){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(a)},a.prototype.set=function(a,b){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(a,b)},a.prototype.write=function(a,b,c,d){if(void 0===b)d="utf8",c=this.length,b=0;else if(void 0===c&&"string"==typeof b)d=b,c=this.length,b=0;else if(isFinite(b))b=0|b,isFinite(c)?(c=0|c,void 0===d&&(d="utf8")):(d=c,c=void 0);else{var e=d;d=b,b=0|c,c=e}var f=this.length-b;if((void 0===c||c>f)&&(c=f),a.length>0&&(0>c||0>b)||b>this.length)throw new RangeError("attempt to write outside buffer bounds");d||(d="utf8");for(var g=!1;;)switch(d){case"hex":return u(this,a,b,c);case"utf8":case"utf-8":return v(this,a,b,c);case"ascii":return w(this,a,b,c);case"binary":return x(this,a,b,c);case"base64":return y(this,a,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return z(this,a,b,c);default:if(g)throw new TypeError("Unknown encoding: "+d);d=(""+d).toLowerCase(),g=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var $=4096;a.prototype.slice=function(b,c){var d=this.length;b=~~b,c=void 0===c?d:~~c,0>b?(b+=d,0>b&&(b=0)):b>d&&(b=d),0>c?(c+=d,0>c&&(c=0)):c>d&&(c=d),b>c&&(c=b);var e;if(a.TYPED_ARRAY_SUPPORT)e=a._augment(this.subarray(b,c));else{var f=c-b;e=new a(f,void 0);for(var g=0;f>g;g++)e[g]=this[g+b]}return e.length&&(e.parent=this.parent||this),e},a.prototype.readUIntLE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a],e=1,f=0;++f0&&(e*=256);)d+=this[a+--b]*e;return d},a.prototype.readUInt8=function(a,b){return b||H(a,1,this.length),this[a]},a.prototype.readUInt16LE=function(a,b){return b||H(a,2,this.length),this[a]|this[a+1]<<8},a.prototype.readUInt16BE=function(a,b){return b||H(a,2,this.length),this[a]<<8|this[a+1]},a.prototype.readUInt32LE=function(a,b){return b||H(a,4,this.length),(this[a]|this[a+1]<<8|this[a+2]<<16)+16777216*this[a+3]},a.prototype.readUInt32BE=function(a,b){return b||H(a,4,this.length),16777216*this[a]+(this[a+1]<<16|this[a+2]<<8|this[a+3])},a.prototype.readIntLE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a],e=1,f=0;++f=e&&(d-=Math.pow(2,8*b)),d},a.prototype.readIntBE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=b,e=1,f=this[a+--d];d>0&&(e*=256);)f+=this[a+--d]*e;return e*=128,f>=e&&(f-=Math.pow(2,8*b)),f},a.prototype.readInt8=function(a,b){return b||H(a,1,this.length),128&this[a]?-1*(255-this[a]+1):this[a]},a.prototype.readInt16LE=function(a,b){b||H(a,2,this.length);var c=this[a]|this[a+1]<<8;return 32768&c?4294901760|c:c},a.prototype.readInt16BE=function(a,b){b||H(a,2,this.length);var c=this[a+1]|this[a]<<8;return 32768&c?4294901760|c:c},a.prototype.readInt32LE=function(a,b){return b||H(a,4,this.length),this[a]|this[a+1]<<8|this[a+2]<<16|this[a+3]<<24},a.prototype.readInt32BE=function(a,b){return b||H(a,4,this.length),this[a]<<24|this[a+1]<<16|this[a+2]<<8|this[a+3]},a.prototype.readFloatLE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!0,23,4)},a.prototype.readFloatBE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!1,23,4)},a.prototype.readDoubleLE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!0,52,8)},a.prototype.readDoubleBE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!1,52,8)},a.prototype.writeUIntLE=function(a,b,c,d){a=+a,b=0|b,c=0|c,d||I(this,a,b,c,Math.pow(2,8*c),0);var e=1,f=0;for(this[b]=255&a;++f=0&&(f*=256);)this[b+e]=a/f&255;return b+c},a.prototype.writeUInt8=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,1,255,0),a.TYPED_ARRAY_SUPPORT||(b=Math.floor(b)),this[c]=255&b,c+1},a.prototype.writeUInt16LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[c]=255&b,this[c+1]=b>>>8):J(this,b,c,!0),c+2},a.prototype.writeUInt16BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>8,this[c+1]=255&b):J(this,b,c,!1),c+2},a.prototype.writeUInt32LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[c+3]=b>>>24,this[c+2]=b>>>16,this[c+1]=b>>>8,this[c]=255&b):K(this,b,c,!0),c+4},a.prototype.writeUInt32BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>24,this[c+1]=b>>>16,this[c+2]=b>>>8,this[c+3]=255&b):K(this,b,c,!1),c+4},a.prototype.writeIntLE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=0,g=1,h=0>a?1:0;for(this[b]=255&a;++f>0)-h&255;return b+c},a.prototype.writeIntBE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=c-1,g=1,h=0>a?1:0;for(this[b+f]=255&a;--f>=0&&(g*=256);)this[b+f]=(a/g>>0)-h&255;return b+c},a.prototype.writeInt8=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,1,127,-128),a.TYPED_ARRAY_SUPPORT||(b=Math.floor(b)),0>b&&(b=255+b+1),this[c]=255&b,c+1},a.prototype.writeInt16LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[c]=255&b,this[c+1]=b>>>8):J(this,b,c,!0),c+2},a.prototype.writeInt16BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>8,this[c+1]=255&b):J(this,b,c,!1),c+2},a.prototype.writeInt32LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[c]=255&b,this[c+1]=b>>>8,this[c+2]=b>>>16,this[c+3]=b>>>24):K(this,b,c,!0),c+4},a.prototype.writeInt32BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,2147483647,-2147483648),0>b&&(b=4294967295+b+1),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>24,this[c+1]=b>>>16,this[c+2]=b>>>8,this[c+3]=255&b):K(this,b,c,!1),c+4},a.prototype.writeFloatLE=function(a,b,c){return M(this,a,b,!0,c)},a.prototype.writeFloatBE=function(a,b,c){return M(this,a,b,!1,c)},a.prototype.writeDoubleLE=function(a,b,c){return N(this,a,b,!0,c)},a.prototype.writeDoubleBE=function(a,b,c){return N(this,a,b,!1,c)},a.prototype.copy=function(b,c,d,e){if(d||(d=0),e||0===e||(e=this.length),c>=b.length&&(c=b.length),c||(c=0),e>0&&d>e&&(e=d),e===d)return 0;if(0===b.length||0===this.length)return 0;if(0>c)throw new RangeError("targetStart out of bounds");if(0>d||d>=this.length)throw new RangeError("sourceStart out of bounds");if(0>e)throw new RangeError("sourceEnd out of bounds");e>this.length&&(e=this.length),b.length-cd&&e>c)for(f=g-1;f>=0;f--)b[f+c]=this[f+d];else if(1e3>g||!a.TYPED_ARRAY_SUPPORT)for(f=0;g>f;f++)b[f+c]=this[f+d];else b._set(this.subarray(d,d+g),c);return g},a.prototype.fill=function(a,b,c){if(a||(a=0),b||(b=0),c||(c=this.length),b>c)throw new RangeError("end < start");if(c!==b&&0!==this.length){if(0>b||b>=this.length)throw new RangeError("start out of bounds");if(0>c||c>this.length)throw new RangeError("end out of bounds");var d;if("number"==typeof a)for(d=b;c>d;d++)this[d]=a;else{var e=R(a.toString()),f=e.length;for(d=b;c>d;d++)this[d]=e[d%f]}return this}},a.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(a.TYPED_ARRAY_SUPPORT)return new a(this).buffer;for(var b=new Uint8Array(this.length),c=0,d=b.length;d>c;c+=1)b[c]=this[c];return b.buffer}throw new TypeError("Buffer.toArrayBuffer not supported in this browser")};var _=a.prototype;a._augment=function(b){return b.constructor=a,b._isBuffer=!0,b._set=b.set,b.get=_.get,b.set=_.set,b.write=_.write,b.toString=_.toString,b.toLocaleString=_.toString,b.toJSON=_.toJSON,b.equals=_.equals,b.compare=_.compare,b.indexOf=_.indexOf,b.copy=_.copy,b.slice=_.slice,b.readUIntLE=_.readUIntLE,b.readUIntBE=_.readUIntBE,b.readUInt8=_.readUInt8,b.readUInt16LE=_.readUInt16LE,b.readUInt16BE=_.readUInt16BE,b.readUInt32LE=_.readUInt32LE,b.readUInt32BE=_.readUInt32BE,b.readIntLE=_.readIntLE,b.readIntBE=_.readIntBE,b.readInt8=_.readInt8,b.readInt16LE=_.readInt16LE,b.readInt16BE=_.readInt16BE,b.readInt32LE=_.readInt32LE,b.readInt32BE=_.readInt32BE,b.readFloatLE=_.readFloatLE,b.readFloatBE=_.readFloatBE,b.readDoubleLE=_.readDoubleLE,b.readDoubleBE=_.readDoubleBE,b.writeUInt8=_.writeUInt8,b.writeUIntLE=_.writeUIntLE,b.writeUIntBE=_.writeUIntBE,b.writeUInt16LE=_.writeUInt16LE,b.writeUInt16BE=_.writeUInt16BE,b.writeUInt32LE=_.writeUInt32LE,b.writeUInt32BE=_.writeUInt32BE,b.writeIntLE=_.writeIntLE,b.writeIntBE=_.writeIntBE,b.writeInt8=_.writeInt8,b.writeInt16LE=_.writeInt16LE,b.writeInt16BE=_.writeInt16BE,b.writeInt32LE=_.writeInt32LE,b.writeInt32BE=_.writeInt32BE,b.writeFloatLE=_.writeFloatLE,b.writeFloatBE=_.writeFloatBE,b.writeDoubleLE=_.writeDoubleLE,b.writeDoubleBE=_.writeDoubleBE,b.fill=_.fill,b.inspect=_.inspect,b.toArrayBuffer=_.toArrayBuffer,b};var aa=/[^+\/0-9A-Za-z-_]/g}).call(b,c(2).Buffer,function(){return this}())},function(a,b,c){var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(a){"use strict";function b(a){var b=a.charCodeAt(0);return b===g||b===l?62:b===h||b===m?63:i>b?-1:i+10>b?b-i+26+26:k+26>b?b-k:j+26>b?b-j+26:void 0}function c(a){function c(a){j[l++]=a}var d,e,g,h,i,j;if(a.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var k=a.length;i="="===a.charAt(k-2)?2:"="===a.charAt(k-1)?1:0,j=new f(3*a.length/4-i),g=i>0?a.length-4:a.length;var l=0;for(d=0,e=0;g>d;d+=4,e+=3)h=b(a.charAt(d))<<18|b(a.charAt(d+1))<<12|b(a.charAt(d+2))<<6|b(a.charAt(d+3)),c((16711680&h)>>16),c((65280&h)>>8),c(255&h);return 2===i?(h=b(a.charAt(d))<<2|b(a.charAt(d+1))>>4,c(255&h)):1===i&&(h=b(a.charAt(d))<<10|b(a.charAt(d+1))<<4|b(a.charAt(d+2))>>2,c(h>>8&255),c(255&h)),j}function e(a){function b(a){return d.charAt(a)}function c(a){return b(a>>18&63)+b(a>>12&63)+b(a>>6&63)+b(63&a)}var e,f,g,h=a.length%3,i="";for(e=0,g=a.length-h;g>e;e+=3)f=(a[e]<<16)+(a[e+1]<<8)+a[e+2],i+=c(f);switch(h){case 1:f=a[a.length-1],i+=b(f>>2),i+=b(f<<4&63),i+="==";break;case 2:f=(a[a.length-2]<<8)+a[a.length-1],i+=b(f>>10),i+=b(f>>4&63),i+=b(f<<2&63),i+="="}return i}var f="undefined"!=typeof Uint8Array?Uint8Array:Array,g="+".charCodeAt(0),h="/".charCodeAt(0),i="0".charCodeAt(0),j="a".charCodeAt(0),k="A".charCodeAt(0),l="-".charCodeAt(0),m="_".charCodeAt(0);a.toByteArray=c,a.fromByteArray=e}(b)},function(a,b){b.read=function(a,b,c,d,e){var f,g,h=8*e-d-1,i=(1<>1,k=-7,l=c?e-1:0,m=c?-1:1,n=a[b+l];for(l+=m,f=n&(1<<-k)-1,n>>=-k,k+=h;k>0;f=256*f+a[b+l],l+=m,k-=8);for(g=f&(1<<-k)-1,f>>=-k,k+=d;k>0;g=256*g+a[b+l],l+=m,k-=8);if(0===f)f=1-j;else{if(f===i)return g?NaN:(n?-1:1)*(1/0);g+=Math.pow(2,d),f-=j}return(n?-1:1)*g*Math.pow(2,f-d)},b.write=function(a,b,c,d,e,f){var g,h,i,j=8*f-e-1,k=(1<>1,m=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,n=d?0:f-1,o=d?1:-1,p=0>b||0===b&&0>1/b?1:0;for(b=Math.abs(b),isNaN(b)||b===1/0?(h=isNaN(b)?1:0,g=k):(g=Math.floor(Math.log(b)/Math.LN2),b*(i=Math.pow(2,-g))<1&&(g--,i*=2),b+=g+l>=1?m/i:m*Math.pow(2,1-l),b*i>=2&&(g++,i/=2),g+l>=k?(h=0,g=k):g+l>=1?(h=(b*i-1)*Math.pow(2,e),g+=l):(h=b*Math.pow(2,l-1)*Math.pow(2,e),g=0));e>=8;a[c+n]=255&h,n+=o,h/=256,e-=8);for(g=g<0;a[c+n]=255&g,n+=o,g/=256,j-=8);a[c+n-o]|=128*p}},function(a,b){var c=Array.isArray,d=Object.prototype.toString;a.exports=c||function(a){return!!a&&"[object Array]"==d.call(a)}},function(a,b,c){"use strict";function d(a){this.fontDescriptors=a}function e(a){if(!a)return null;if("number"==typeof a||a instanceof Number)a={left:a,right:a,top:a,bottom:a};else if(a instanceof Array)if(2===a.length)a={left:a[0],top:a[1],right:a[0],bottom:a[1]};else{if(4!==a.length)throw"Invalid pageMargins definition";a={left:a[0],top:a[1],right:a[2],bottom:a[3]}}return a}function f(a){a.registerTableLayouts({noBorders:{hLineWidth:function(a){return 0},vLineWidth:function(a){return 0},paddingLeft:function(a){return a&&4||0},paddingRight:function(a,b){return ab.options.size[1]?"landscape":"portrait";if(a.pageSize.orientation!==c){var d=b.options.size[0],e=b.options.size[1];b.options.size=[e,d]}}function i(a,b,c){c._pdfMakePages=a;for(var d=0;d0&&(h(a[d],c),c.addPage(c.options));for(var e=a[d],f=0,g=e.items.length;g>f;f++){var i=e.items[f];switch(i.type){case"vector":l(i.item,c);break;case"line":j(i.item,i.item.x,i.item.y,c);break;case"image":m(i.item,i.item.x,i.item.y,c)}}e.watermark&&k(e,c),b.setFontRefsToPdfDoc()}}function j(a,b,c,d){b=b||0,c=c||0;var e=a.getHeight(),f=a.getAscenderHeight();s.drawBackground(a,b,c,d);for(var g=0,h=a.inlines.length;h>g;g++){var i=a.inlines[g];d.fill(i.color||"black"),d.save(),d.transform(1,0,0,-1,0,d.page.height);var j=i.font.encode(i.text);d.addContent("BT"),d.addContent(""+(b+i.x)+" "+(d.page.height-c-f)+" Td"),d.addContent("/"+j.fontId+" "+i.fontSize+" Tf"),d.addContent("<"+j.encodedText+"> Tj"),d.addContent("ET"),i.link&&d.link(b+i.x,d.page.height-c-e,i.width,e,i.link),d.restore()}s.drawDecorations(a,b,c,d)}function k(a,b){var c=a.watermark;b.fill("black"),b.opacity(.6),b.save(),b.transform(1,0,0,-1,0,b.page.height);var d=180*Math.atan2(b.page.height,b.page.width)/Math.PI;b.rotate(d,{origin:[b.page.width/2,b.page.height/2]});var e=c.font.encode(c.text);b.addContent("BT"),b.addContent(""+(b.page.width/2-c.size.size.width/2)+" "+(b.page.height/2-c.size.size.height/4)+" Td"),b.addContent("/"+e.fontId+" "+c.size.fontSize+" Tf"),b.addContent("<"+e.encodedText+"> Tj"),b.addContent("ET"),b.restore()}function l(a,b){switch(b.lineWidth(a.lineWidth||1),a.dash?b.dash(a.dash.length,{space:a.dash.space||a.dash.length}):b.undash(),b.fillOpacity(a.fillOpacity||1),b.strokeOpacity(a.strokeOpacity||1),b.lineJoin(a.lineJoin||"miter"),a.type){case"ellipse":b.ellipse(a.x,a.y,a.r1,a.r2);break;case"rect":a.r?b.roundedRect(a.x,a.y,a.w,a.h,a.r):b.rect(a.x,a.y,a.w,a.h);break;case"line":b.moveTo(a.x1,a.y1),b.lineTo(a.x2,a.y2);break;case"polyline":if(0===a.points.length)break;b.moveTo(a.points[0].x,a.points[0].y);for(var c=1,d=a.points.length;d>c;c++)b.lineTo(a.points[c].x,a.points[c].y);if(a.points.length>1){var e=a.points[0],f=a.points[a.points.length-1];(a.closePath||e.x===f.x&&e.y===f.y)&&b.closePath()}}a.color&&a.lineColor?b.fillAndStroke(a.color,a.lineColor):a.color?b.fill(a.color):b.stroke(a.lineColor||"black")}function m(a,b,c,d){d.image(a.image,a.x,a.y,{width:a._width,height:a._height})}var n=(c(7),c(9)),o=c(11),p=c(24),q=(c(46),c(102)),r=c(103),s=c(104),n=c(9);d.prototype.createPdfKitDocument=function(a,b){b=b||{};var c=g(a.pageSize||"a4");if("landscape"===a.pageOrientation&&(c={width:c.height,height:c.width}),c.orientation="landscape"===a.pageOrientation?a.pageOrientation:"portrait",this.pdfKitDoc=new p({size:[c.width,c.height],compress:!1}),this.pdfKitDoc.info.Producer="pdfmake",this.pdfKitDoc.info.Creator="pdfmake",a.info){a.info;this.pdfKitDoc.info.Title=a.info.title?a.info.title:null,this.pdfKitDoc.info.Author=a.info.author?a.info.author:null,this.pdfKitDoc.info.Subject=a.info.subject?a.info.subject:null,this.pdfKitDoc.info.Keywords=a.info.keywords?a.info.keywords:null}this.fontProvider=new n(this.fontDescriptors,this.pdfKitDoc),a.images=a.images||{};var d=new o(c,e(a.pageMargins||40),new r(this.pdfKitDoc,a.images));f(d),b.tableLayouts&&d.registerTableLayouts(b.tableLayouts);var h=d.layoutDocument(a.content,this.fontProvider,a.styles||{},a.defaultStyle||{fontSize:12,font:"Roboto"},a.background,a.header,a.footer,a.images,a.watermark,a.pageBreakBefore);if(i(h,this.fontProvider,this.pdfKitDoc),b.autoPrint){var j=this.pdfKitDoc.ref({Type:"Action",S:"Named",N:"Print"});this.pdfKitDoc._root.data.OpenAction=j,j.end()}return this.pdfKitDoc};a.exports=d,d.prototype.fs=c(44)},function(a,b,c){var d;(function(a,e){(function(){function f(a,b){if(a!==b){var c=null===a,d=a===B,e=a===a,f=null===b,g=b===B,h=b===b;if(a>b&&!f||!e||c&&!g&&h||d&&h)return 1;if(b>a&&!c||!h||f&&!d&&e||g&&e)return-1}return 0}function g(a,b,c){for(var d=a.length,e=c?d:-1;c?e--:++e-1;);return c}function l(a,b){for(var c=a.length;c--&&b.indexOf(a.charAt(c))>-1;);return c}function m(a,b){return f(a.criteria,b.criteria)||a.index-b.index}function n(a,b,c){for(var d=-1,e=a.criteria,g=b.criteria,h=e.length,i=c.length;++d=i)return j;var k=c[d];return j*("asc"===k||k===!0?1:-1)}}return a.index-b.index}function o(a){return Ua[a]}function p(a){return Va[a]}function q(a,b,c){return b?a=Ya[a]:c&&(a=Za[a]),"\\"+a}function r(a){return"\\"+Za[a]}function s(a,b,c){for(var d=a.length,e=b+(c?0:-1);c?e--:++e=a&&a>=9&&13>=a||32==a||160==a||5760==a||6158==a||a>=8192&&(8202>=a||8232==a||8233==a||8239==a||8287==a||12288==a||65279==a)}function v(a,b){for(var c=-1,d=a.length,e=-1,f=[];++cb,e=c?a.length:0,f=Tc(0,e,this.__views__),g=f.start,h=f.end,i=h-g,j=d?h:g-1,k=this.__iteratees__,l=k.length,m=0,n=wg(i,this.__takeCount__);if(!c||Q>e||e==i&&n==i)return cc(d&&c?a.reverse():a,this.__actions__);var o=[];a:for(;i--&&n>m;){j+=b;for(var p=-1,q=a[j];++p=Q?oc(b):null,j=b.length;i&&(f=Za,g=!1,b=i);a:for(;++ec&&(c=-c>e?0:e+c),d=d===B||d>e?e:+d||0,0>d&&(d+=e),e=c>d?0:d>>>0,c>>>=0;e>c;)a[c++]=b;return a}function Bb(a,b){var c=[];return Jg(a,function(a,d,e){b(a,d,e)&&c.push(a)}),c}function Cb(a,b,c,d){var e;return c(a,function(a,c,f){return b(a,c,f)?(e=d?c:a,!1):void 0}),e}function Db(a,b,c,d){d||(d=[]);for(var e=-1,f=a.length;++ed;)a=a[b[d++]];return d&&d==e?a:B}}function Jb(a,b,c,d,e,f){return a===b?!0:null==a||null==b||!He(a)&&!t(b)?a!==a&&b!==b:Kb(a,b,Jb,c,d,e,f)}function Kb(a,b,c,d,e,f,g){ -var h=Ch(a),i=Ch(b),j=W,k=W;h||(j=cg.call(a),j==V?j=ba:j!=ba&&(h=Qe(a))),i||(k=cg.call(b),k==V?k=ba:k!=ba&&(i=Qe(b)));var l=j==ba,m=k==ba,n=j==k;if(n&&!h&&!l)return Mc(a,b,j);if(!e){var o=l&&ag.call(a,"__wrapped__"),p=m&&ag.call(b,"__wrapped__");if(o||p)return c(o?a.value():a,p?b.value():b,d,e,f,g)}if(!n)return!1;f||(f=[]),g||(g=[]);for(var q=f.length;q--;)if(f[q]==a)return g[q]==b;f.push(a),g.push(b);var r=(h?Lc:Nc)(a,b,c,d,e,f,g);return f.pop(),g.pop(),r}function Lb(a,b,c){var d=b.length,e=d,f=!c;if(null==a)return!e;for(a=kd(a);d--;){var g=b[d];if(f&&g[2]?g[1]!==a[g[0]]:!(g[0]in a))return!1}for(;++db&&(b=-b>e?0:e+b),c=c===B||c>e?e:+c||0,0>c&&(c+=e),e=b>c?0:c-b>>>0,b>>>=0;for(var f=Of(e);++d=Q,i=g?oc():null,j=[];i?(d=Za,f=!1):(g=!1,i=b?[]:j);a:for(;++c=e){for(;e>d;){var f=d+e>>>1,g=a[f];(c?b>=g:b>g)&&null!==g?d=f+1:e=f}return e}return ec(a,b,Bf,c)}function ec(a,b,c,d){b=c(b);for(var e=0,f=a?a.length:0,g=b!==b,h=null===b,i=b===B;f>e;){var j=rg((e+f)/2),k=c(a[j]),l=k!==B,m=k===k;if(g)var n=m||d;else n=h?m&&l&&(d||null!=k):i?m&&(d||l):null==k?!1:d?b>=k:b>k;n?e=j+1:f=j}return wg(f,Dg)}function fc(a,b,c){if("function"!=typeof a)return Bf;if(b===B)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 3:return function(c,d,e){return a.call(b,c,d,e)};case 4:return function(c,d,e,f){return a.call(b,c,d,e,f)};case 5:return function(c,d,e,f,g){return a.call(b,c,d,e,f,g)}}return function(){return a.apply(b,arguments)}}function gc(a){var b=new fg(a.byteLength),c=new ng(b);return c.set(new ng(a)),b}function hc(a,b,c){for(var d=c.length,e=-1,f=vg(a.length-d,0),g=-1,h=b.length,i=Of(h+f);++g2?c[e-2]:B,g=e>2?c[2]:B,h=e>1?c[e-1]:B;for("function"==typeof f?(f=fc(f,h,5),e-=2):(f="function"==typeof h?h:B,e-=f?1:0),g&&$c(c[0],c[1],g)&&(f=3>e?B:f,e=1);++d-1?c[f]:B}return Cb(c,d,a)}}function vc(a){return function(b,c,d){return b&&b.length?(c=Oc(c,d,3),g(b,c,a)):-1}}function wc(a){return function(b,c,d){return c=Oc(c,d,3),Cb(b,c,a,!0)}}function xc(a){return function(){for(var b,c=arguments.length,e=a?c:-1,f=0,g=Of(c);a?e--:++e=Q)return b.plant(d).value();for(var e=0,f=c?g[e].apply(this,a):d;++es){var y=h?ab(h):B,z=vg(j-s,0),A=o?x:B,C=o?B:x,F=o?u:B,G=o?B:u;b|=o?I:J,b&=~(o?J:I),p||(b&=~(D|E));var H=[a,b,c,F,A,G,C,y,i,z],K=Fc.apply(B,H);return ad(a)&&Qg(K,H),K.placeholder=w,K}}var L=m?c:this,M=n?L[a]:a;return h&&(u=hd(u,h)),l&&i=b||!tg(b))return"";var e=b-d;return c=null==c?" ":c+"",qf(c,pg(e/c.length)).slice(0,e)}function Hc(a,b,c,d){function e(){for(var b=-1,h=arguments.length,i=-1,j=d.length,k=Of(j+h);++ii))return!1;for(;++h-1&&a%1==0&&b>a}function $c(a,b,c){if(!He(c))return!1;var d=typeof b;if("number"==d?Yc(c)&&Zc(b,c.length):"string"==d&&b in c){var e=c[b];return a===a?a===e:e!==e}return!1}function _c(a,b){var c=typeof a;if("string"==c&&Ba.test(a)||"number"==c)return!0;if(Ch(a))return!1;var d=!Aa.test(a);return d||null!=b&&a in kd(b)}function ad(a){var c=Pc(a);if(!(c in e.prototype))return!1;var d=b[c];if(a===d)return!0;var f=Og(d);return!!f&&a===f[0]}function bd(a){return"number"==typeof a&&a>-1&&a%1==0&&Fg>=a}function cd(a){return a===a&&!He(a)}function dd(a,b){var c=a[1],d=b[1],e=c|d,f=K>e,g=d==K&&c==G||d==K&&c==L&&a[7].length<=b[8]||d==(K|L)&&c==G;if(!f&&!g)return a;d&D&&(a[2]=b[2],e|=c&D?0:F);var h=b[3];if(h){var i=a[3];a[3]=i?hc(i,h,b[4]):ab(h),a[4]=i?v(a[3],U):ab(b[4])}return h=b[5],h&&(i=a[5],a[5]=i?ic(i,h,b[6]):ab(h),a[6]=i?v(a[5],U):ab(b[6])),h=b[7],h&&(a[7]=ab(h)),d&K&&(a[8]=null==a[8]?b[8]:wg(a[8],b[8])),null==a[9]&&(a[9]=b[9]),a[0]=b[0],a[1]=e,a}function ed(a,b){return a===B?b:Dh(a,b,ed)}function fd(a,b){a=kd(a);for(var c=-1,d=b.length,e={};++cd;)g[++f]=Wb(a,d,d+=b);return g}function od(a){for(var b=-1,c=a?a.length:0,d=-1,e=[];++bb?0:b)):[]}function qd(a,b,c){var d=a?a.length:0;return d?((c?$c(a,b,c):null==b)&&(b=1),b=d-(+b||0),Wb(a,0,0>b?0:b)):[]}function rd(a,b,c){return a&&a.length?bc(a,Oc(b,c,3),!0,!0):[]}function sd(a,b,c){return a&&a.length?bc(a,Oc(b,c,3),!0):[]}function td(a,b,c,d){var e=a?a.length:0;return e?(c&&"number"!=typeof c&&$c(a,b,c)&&(c=0,d=e),Ab(a,b,c,d)):[]}function ud(a){return a?a[0]:B}function vd(a,b,c){var d=a?a.length:0;return c&&$c(a,b,c)&&(b=!1),d?Db(a,b):[]}function wd(a){var b=a?a.length:0;return b?Db(a,!0):[]}function xd(a,b,c){var d=a?a.length:0;if(!d)return-1;if("number"==typeof c)c=0>c?vg(d+c,0):c;else if(c){var e=dc(a,b);return d>e&&(b===b?b===a[e]:a[e]!==a[e])?e:-1}return h(a,b,c||0)}function yd(a){return qd(a,1)}function zd(a){var b=a?a.length:0;return b?a[b-1]:B}function Ad(a,b,c){var d=a?a.length:0;if(!d)return-1;var e=d;if("number"==typeof c)e=(0>c?vg(d+c,0):wg(c||0,d-1))+1;else if(c){e=dc(a,b,!0)-1;var f=a[e];return(b===b?b===f:f!==f)?e:-1}if(b!==b)return s(a,e,!0);for(;e--;)if(a[e]===b)return e;return-1}function Bd(){var a=arguments,b=a[0];if(!b||!b.length)return b;for(var c=0,d=Qc(),e=a.length;++c-1;)mg.call(b,f,1);return b}function Cd(a,b,c){var d=[];if(!a||!a.length)return d;var e=-1,f=[],g=a.length;for(b=Oc(b,c,3);++eb?0:b)):[]}function Gd(a,b,c){var d=a?a.length:0;return d?((c?$c(a,b,c):null==b)&&(b=1),b=d-(+b||0),Wb(a,0>b?0:b)):[]}function Hd(a,b,c){return a&&a.length?bc(a,Oc(b,c,3),!1,!0):[]}function Id(a,b,c){return a&&a.length?bc(a,Oc(b,c,3)):[]}function Jd(a,b,c,d){var e=a?a.length:0;if(!e)return[];null!=b&&"boolean"!=typeof b&&(d=c,c=$c(a,b,d)?B:b,b=!1);var f=Oc();return null==c&&f===ub||(c=f(c,d,3)),b&&Qc()==h?w(a,c):_b(a,c)}function Kd(a){if(!a||!a.length)return[];var b=-1,c=0;a=hb(a,function(a){return Yc(a)?(c=vg(a.length,c),!0):void 0});for(var d=Of(c);++bc?vg(e+c,0):c||0,"string"==typeof a||!Ch(a)&&Pe(a)?e>=c&&a.indexOf(b,c)>-1:!!e&&Qc(a,b,c)>-1}function _d(a,b,c){var d=Ch(a)?ib:Mb;return b=Oc(b,c,3),d(a,b)}function ae(a,b){return _d(a,Hf(b))}function be(a,b,c){var d=Ch(a)?hb:Bb;return b=Oc(b,c,3),d(a,function(a,c,d){return!b(a,c,d)})}function ce(a,b,c){if(c?$c(a,b,c):null==b){a=jd(a);var d=a.length;return d>0?a[Ub(0,d-1)]:B}var e=-1,f=Ue(a),d=f.length,g=d-1;for(b=wg(0>b?0:+b||0,d);++e0&&(c=b.apply(this,arguments)),1>=a&&(b=B),c}}function me(a,b,c){function d(){n&&gg(n),j&&gg(j),p=0,j=n=o=B}function e(b,c){c&&gg(c),j=n=o=B,b&&(p=oh(),k=a.apply(m,i),n||j||(i=m=B))}function f(){var a=b-(oh()-l);0>=a||a>b?e(o,j):n=lg(f,a)}function g(){e(r,n)}function h(){if(i=arguments,l=oh(),m=this,o=r&&(n||!s),q===!1)var c=s&&!n;else{j||s||(p=l);var d=q-(l-p),e=0>=d||d>q;e?(j&&(j=gg(j)),p=l,k=a.apply(m,i)):j||(j=lg(g,d))}return e&&n?n=gg(n):n||b===q||(n=lg(f,b)),c&&(e=!0,k=a.apply(m,i)),!e||n||j||(i=m=B),k}var i,j,k,l,m,n,o,p=0,q=!1,r=!0;if("function"!=typeof a)throw new Xf(T);if(b=0>b?0:+b||0,c===!0){var s=!0;r=!1}else He(c)&&(s=!!c.leading,q="maxWait"in c&&vg(+c.maxWait||0,b),r="trailing"in c?!!c.trailing:r);return h.cancel=d,h}function ne(a,b){if("function"!=typeof a||b&&"function"!=typeof b)throw new Xf(T);var c=function(){var d=arguments,e=b?b.apply(this,d):d[0],f=c.cache;if(f.has(e))return f.get(e);var g=a.apply(this,d);return c.cache=f.set(e,g),g};return c.cache=new ne.Cache,c}function oe(a){if("function"!=typeof a)throw new Xf(T);return function(){return!a.apply(this,arguments)}}function pe(a){return le(2,a)}function qe(a,b){if("function"!=typeof a)throw new Xf(T);return b=vg(b===B?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,e=vg(c.length-b,0),f=Of(e);++db}function xe(a,b){return a>=b}function ye(a){return t(a)&&Yc(a)&&ag.call(a,"callee")&&!jg.call(a,"callee")}function ze(a){return a===!0||a===!1||t(a)&&cg.call(a)==X}function Ae(a){return t(a)&&cg.call(a)==Y}function Be(a){return!!a&&1===a.nodeType&&t(a)&&!Ne(a)}function Ce(a){return null==a?!0:Yc(a)&&(Ch(a)||Pe(a)||ye(a)||t(a)&&Ge(a.splice))?!a.length:!Nh(a).length}function De(a,b,c,d){c="function"==typeof c?fc(c,d,3):B;var e=c?c(a,b):B;return e===B?Jb(a,b,c):!!e}function Ee(a){return t(a)&&"string"==typeof a.message&&cg.call(a)==Z}function Fe(a){return"number"==typeof a&&tg(a)}function Ge(a){return He(a)&&cg.call(a)==$}function He(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}function Ie(a,b,c,d){return c="function"==typeof c?fc(c,d,3):B,Lb(a,Rc(b),c)}function Je(a){return Me(a)&&a!=+a}function Ke(a){return null==a?!1:Ge(a)?eg.test(_f.call(a)):t(a)&&Ka.test(a)}function Le(a){return null===a}function Me(a){return"number"==typeof a||t(a)&&cg.call(a)==aa}function Ne(a){var b;if(!t(a)||cg.call(a)!=ba||ye(a)||!ag.call(a,"constructor")&&(b=a.constructor,"function"==typeof b&&!(b instanceof b)))return!1;var c;return Eb(a,function(a,b){c=b}),c===B||ag.call(a,c)}function Oe(a){return He(a)&&cg.call(a)==ca}function Pe(a){return"string"==typeof a||t(a)&&cg.call(a)==ea}function Qe(a){return t(a)&&bd(a.length)&&!!Sa[cg.call(a)]}function Re(a){return a===B}function Se(a,b){return b>a}function Te(a,b){return b>=a}function Ue(a){var b=a?Pg(a):0;return bd(b)?b?ab(a):[]:ef(a)}function Ve(a){return tb(a,_e(a))}function We(a,b,c){var d=Ig(a);return c&&$c(a,b,c)&&(b=B),b?rb(d,b):d}function Xe(a){return Hb(a,_e(a))}function Ye(a,b,c){var d=null==a?B:Ib(a,ld(b),b+"");return d===B?c:d}function Ze(a,b){if(null==a)return!1;var c=ag.call(a,b);if(!c&&!_c(b)){if(b=ld(b),a=1==b.length?a:Ib(a,Wb(b,0,-1)),null==a)return!1;b=zd(b),c=ag.call(a,b)}return c||bd(a.length)&&Zc(b,a.length)&&(Ch(a)||ye(a))}function $e(a,b,c){c&&$c(a,b,c)&&(b=B);for(var d=-1,e=Nh(a),f=e.length,g={};++d0;++d=wg(b,c)&&ac?0:+c||0,d),c-=b.length,c>=0&&a.indexOf(b,c)==c}function mf(a){return a=j(a),a&&wa.test(a)?a.replace(ua,p):a}function nf(a){return a=j(a),a&&Ea.test(a)?a.replace(Da,q):a||"(?:)"}function of(a,b,c){a=j(a),b=+b;var d=a.length;if(d>=b||!tg(b))return a;var e=(b-d)/2,f=rg(e),g=pg(e);return c=Gc("",g,c),c.slice(0,f)+a+c}function pf(a,b,c){return(c?$c(a,b,c):null==b)?b=0:b&&(b=+b),a=tf(a),yg(a,b||(Ja.test(a)?16:10))}function qf(a,b){var c="";if(a=j(a),b=+b,1>b||!a||!tg(b))return c;do b%2&&(c+=a),b=rg(b/2),a+=a;while(b);return c}function rf(a,b,c){return a=j(a),c=null==c?0:wg(0>c?0:+c||0,a.length),a.lastIndexOf(b,c)==c}function sf(a,c,d){var e=b.templateSettings;d&&$c(a,c,d)&&(c=d=B),a=j(a),c=qb(rb({},d||c),e,pb);var f,g,h=qb(rb({},c.imports),e.imports,pb),i=Nh(h),k=ac(h,i),l=0,m=c.interpolate||Na,n="__p += '",o=Vf((c.escape||Na).source+"|"+m.source+"|"+(m===za?Ha:Na).source+"|"+(c.evaluate||Na).source+"|$","g"),p="//# sourceURL="+("sourceURL"in c?c.sourceURL:"lodash.templateSources["+ ++Ra+"]")+"\n";a.replace(o,function(b,c,d,e,h,i){return d||(d=e),n+=a.slice(l,i).replace(Oa,r),c&&(f=!0,n+="' +\n__e("+c+") +\n'"),h&&(g=!0,n+="';\n"+h+";\n__p += '"),d&&(n+="' +\n((__t = ("+d+")) == null ? '' : __t) +\n'"),l=i+b.length,b}),n+="';\n";var q=c.variable;q||(n="with (obj) {\n"+n+"\n}\n"),n=(g?n.replace(qa,""):n).replace(ra,"$1").replace(sa,"$1;"),n="function("+(q||"obj")+") {\n"+(q?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(f?", __e = _.escape":"")+(g?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+n+"return __p\n}";var s=Yh(function(){return Rf(i,p+"return "+n).apply(B,k)});if(s.source=n,Ee(s))throw s;return s}function tf(a,b,c){var d=a;return(a=j(a))?(c?$c(d,b,c):null==b)?a.slice(x(a),y(a)+1):(b+="",a.slice(k(a,b),l(a,b)+1)):a}function uf(a,b,c){var d=a;return a=j(a),a?(c?$c(d,b,c):null==b)?a.slice(x(a)):a.slice(k(a,b+"")):a}function vf(a,b,c){var d=a;return a=j(a),a?(c?$c(d,b,c):null==b)?a.slice(0,y(a)+1):a.slice(0,l(a,b+"")+1):a}function wf(a,b,c){c&&$c(a,b,c)&&(b=B);var d=M,e=N;if(null!=b)if(He(b)){var f="separator"in b?b.separator:f;d="length"in b?+b.length||0:d,e="omission"in b?j(b.omission):e}else d=+b||0;if(a=j(a),d>=a.length)return a;var g=d-e.length;if(1>g)return e;var h=a.slice(0,g);if(null==f)return h+e;if(Oe(f)){if(a.slice(g).search(f)){var i,k,l=a.slice(0,g);for(f.global||(f=Vf(f.source,(Ia.exec(f)||"")+"g")),f.lastIndex=0;i=f.exec(l);)k=i.index;h=h.slice(0,null==k?g:k)}}else if(a.indexOf(f,g)!=g){var m=h.lastIndexOf(f);m>-1&&(h=h.slice(0,m))}return h+e}function xf(a){return a=j(a),a&&va.test(a)?a.replace(ta,z):a}function yf(a,b,c){return c&&$c(a,b,c)&&(b=B),a=j(a),a.match(b||Pa)||[]}function zf(a,b,c){return c&&$c(a,b,c)&&(b=B),t(a)?Cf(a):ub(a,b)}function Af(a){return function(){return a}}function Bf(a){return a}function Cf(a){return Nb(vb(a,!0))}function Df(a,b){return Ob(a,vb(b,!0))}function Ef(a,b,c){if(null==c){var d=He(b),e=d?Nh(b):B,f=e&&e.length?Hb(b,e):B;(f?f.length:d)||(f=!1,c=b,b=a,a=this)}f||(f=Hb(b,Nh(b)));var g=!0,h=-1,i=Ge(a),j=f.length;c===!1?g=!1:He(c)&&"chain"in c&&(g=c.chain);for(;++ha||!tg(a))return[];var d=-1,e=Of(wg(a,Cg));for(b=fc(b,c,1);++dd?e[d]=b(d):b(d);return e}function Lf(a){var b=++bg;return j(a)+b}function Mf(a,b){return(+a||0)+(+b||0)}function Nf(a,b,c){return c&&$c(a,b,c)&&(b=B),b=Oc(b,c,3),1==b.length?nb(Ch(a)?a:jd(a),b):$b(a,b)}a=a?eb.defaults(db.Object(),a,eb.pick(db,Qa)):db;var Of=a.Array,Pf=a.Date,Qf=a.Error,Rf=a.Function,Sf=a.Math,Tf=a.Number,Uf=a.Object,Vf=a.RegExp,Wf=a.String,Xf=a.TypeError,Yf=Of.prototype,Zf=Uf.prototype,$f=Wf.prototype,_f=Rf.prototype.toString,ag=Zf.hasOwnProperty,bg=0,cg=Zf.toString,dg=db._,eg=Vf("^"+_f.call(ag).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),fg=a.ArrayBuffer,gg=a.clearTimeout,hg=a.parseFloat,ig=Sf.pow,jg=Zf.propertyIsEnumerable,kg=Sc(a,"Set"),lg=a.setTimeout,mg=Yf.splice,ng=a.Uint8Array,og=Sc(a,"WeakMap"),pg=Sf.ceil,qg=Sc(Uf,"create"),rg=Sf.floor,sg=Sc(Of,"isArray"),tg=a.isFinite,ug=Sc(Uf,"keys"),vg=Sf.max,wg=Sf.min,xg=Sc(Pf,"now"),yg=a.parseInt,zg=Sf.random,Ag=Tf.NEGATIVE_INFINITY,Bg=Tf.POSITIVE_INFINITY,Cg=4294967295,Dg=Cg-1,Eg=Cg>>>1,Fg=9007199254740991,Gg=og&&new og,Hg={};b.support={};b.templateSettings={escape:xa,evaluate:ya,interpolate:za,variable:"",imports:{_:b}};var Ig=function(){function a(){}return function(b){if(He(b)){a.prototype=b;var c=new a;a.prototype=B}return c||{}}}(),Jg=lc(Fb),Kg=lc(Gb,!0),Lg=mc(),Mg=mc(!0),Ng=Gg?function(a,b){return Gg.set(a,b),a}:Bf,Og=Gg?function(a){return Gg.get(a)}:Gf,Pg=Rb("length"),Qg=function(){var a=0,b=0;return function(c,d){var e=oh(),f=P-(e-b);if(b=e,f>0){if(++a>=O)return c}else a=0;return Ng(c,d)}}(),Rg=qe(function(a,b){return t(a)&&Yc(a)?xb(a,Db(b,!1,!0)):[]}),Sg=vc(),Tg=vc(!0),Ug=qe(function(a){for(var b=a.length,c=b,d=Of(l),e=Qc(),f=e==h,g=[];c--;){var i=a[c]=Yc(i=a[c])?i:[];d[c]=f&&i.length>=120?oc(c&&i):null}var j=a[0],k=-1,l=j?j.length:0,m=d[0];a:for(;++k2?a[b-2]:B,d=b>1?a[b-1]:B;return b>2&&"function"==typeof c?b-=2:(c=b>1&&"function"==typeof d?(--b,d):B,d=B),a.length=b,Ld(a,c,d)}),ah=qe(function(a){return a=Db(a),this.thru(function(b){return _a(Ch(b)?b:[kd(b)],a)})}),bh=qe(function(a,b){return sb(a,Db(b))}),ch=jc(function(a,b,c){ag.call(a,c)?++a[c]:a[c]=1}),dh=uc(Jg),eh=uc(Kg,!0),fh=yc(bb,Jg),gh=yc(cb,Kg),hh=jc(function(a,b,c){ag.call(a,c)?a[c].push(b):a[c]=[b]}),ih=jc(function(a,b,c){a[c]=b}),jh=qe(function(a,b,c){var d=-1,e="function"==typeof b,f=_c(b),g=Yc(a)?Of(a.length):[];return Jg(a,function(a){var h=e?b:f&&null!=a?a[b]:B;g[++d]=h?h.apply(a,c):Xc(a,b,c)}),g}),kh=jc(function(a,b,c){a[c?0:1].push(b)},function(){return[[],[]]}),lh=Ec(kb,Jg),mh=Ec(lb,Kg),nh=qe(function(a,b){if(null==a)return[];var c=b[2];return c&&$c(b[0],b[1],c)&&(b.length=1),Zb(a,Db(b),[])}),oh=xg||function(){return(new Pf).getTime()},ph=qe(function(a,b,c){var d=D;if(c.length){var e=v(c,ph.placeholder);d|=I}return Kc(a,d,b,c,e)}),qh=qe(function(a,b){b=b.length?Db(b):Xe(a);for(var c=-1,d=b.length;++c0||0>b)?new e(c):(0>a?c=c.takeRight(-a):a&&(c=c.drop(a)),b!==B&&(b=+b||0,c=0>b?c.dropRight(-b):c.take(b-a)),c)},e.prototype.takeRightWhile=function(a,b){return this.reverse().takeWhile(a,b).reverse()},e.prototype.toArray=function(){return this.take(Bg)},Fb(e.prototype,function(a,c){var f=/^(?:filter|map|reject)|While$/.test(c),g=/^(?:first|last)$/.test(c),h=b[g?"take"+("last"==c?"Right":""):c];h&&(b.prototype[c]=function(){var b=g?[1]:arguments,c=this.__chain__,i=this.__wrapped__,j=!!this.__actions__.length,k=i instanceof e,l=b[0],m=k||Ch(i);m&&f&&"function"==typeof l&&1!=l.length&&(k=m=!1);var n=function(a){return g&&c?h(a,1)[0]:h.apply(B,jb([a],b))},o={func:Qd,args:[n],thisArg:B},p=k&&!j;if(g&&!c)return p?(i=i.clone(),i.__actions__.push(o),a.call(i)):h.call(B,this.value())[0];if(!g&&m){i=p?i:new e(this);var q=a.apply(i,b);return q.__actions__.push(o),new d(q,c)}return this.thru(n)})}),bb(["join","pop","push","replace","shift","sort","splice","split","unshift"],function(a){var c=(/^(?:replace|split)$/.test(a)?$f:Yf)[a],d=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",e=/^(?:join|pop|replace|shift)$/.test(a);b.prototype[a]=function(){var a=arguments;return e&&!this.__chain__?c.apply(this.value(),a):this[d](function(b){return c.apply(b,a)})}}),Fb(e.prototype,function(a,c){var d=b[c];if(d){var e=d.name,f=Hg[e]||(Hg[e]=[]);f.push({name:c,func:d})}}),Hg[Fc(B,E).name]=[{name:"wrapper",func:B}],e.prototype.clone=u,e.prototype.reverse=_,e.prototype.value=da,b.prototype.chain=Rd,b.prototype.commit=Sd,b.prototype.concat=ah,b.prototype.plant=Td,b.prototype.reverse=Ud,b.prototype.toString=Vd,b.prototype.run=b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=Wd,b.prototype.collect=b.prototype.map,b.prototype.head=b.prototype.first,b.prototype.select=b.prototype.filter,b.prototype.tail=b.prototype.rest,b}var B,C="3.10.1",D=1,E=2,F=4,G=8,H=16,I=32,J=64,K=128,L=256,M=30,N="...",O=150,P=16,Q=200,R=1,S=2,T="Expected a function",U="__lodash_placeholder__",V="[object Arguments]",W="[object Array]",X="[object Boolean]",Y="[object Date]",Z="[object Error]",$="[object Function]",_="[object Map]",aa="[object Number]",ba="[object Object]",ca="[object RegExp]",da="[object Set]",ea="[object String]",fa="[object WeakMap]",ga="[object ArrayBuffer]",ha="[object Float32Array]",ia="[object Float64Array]",ja="[object Int8Array]",ka="[object Int16Array]",la="[object Int32Array]",ma="[object Uint8Array]",na="[object Uint8ClampedArray]",oa="[object Uint16Array]",pa="[object Uint32Array]",qa=/\b__p \+= '';/g,ra=/\b(__p \+=) '' \+/g,sa=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ta=/&(?:amp|lt|gt|quot|#39|#96);/g,ua=/[&<>"'`]/g,va=RegExp(ta.source),wa=RegExp(ua.source),xa=/<%-([\s\S]+?)%>/g,ya=/<%([\s\S]+?)%>/g,za=/<%=([\s\S]+?)%>/g,Aa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,Ba=/^\w*$/,Ca=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,Da=/^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,Ea=RegExp(Da.source),Fa=/[\u0300-\u036f\ufe20-\ufe23]/g,Ga=/\\(\\)?/g,Ha=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ia=/\w*$/,Ja=/^0[xX]/,Ka=/^\[object .+?Constructor\]$/,La=/^\d+$/,Ma=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,Na=/($^)/,Oa=/['\n\r\u2028\u2029\\]/g,Pa=function(){var a="[A-Z\\xc0-\\xd6\\xd8-\\xde]",b="[a-z\\xdf-\\xf6\\xf8-\\xff]+";return RegExp(a+"+(?="+a+b+")|"+a+"?"+b+"|"+a+"+|[0-9]+","g")}(),Qa=["Array","ArrayBuffer","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Math","Number","Object","RegExp","Set","String","_","clearTimeout","isFinite","parseFloat","parseInt","setTimeout","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap"],Ra=-1,Sa={};Sa[ha]=Sa[ia]=Sa[ja]=Sa[ka]=Sa[la]=Sa[ma]=Sa[na]=Sa[oa]=Sa[pa]=!0,Sa[V]=Sa[W]=Sa[ga]=Sa[X]=Sa[Y]=Sa[Z]=Sa[$]=Sa[_]=Sa[aa]=Sa[ba]=Sa[ca]=Sa[da]=Sa[ea]=Sa[fa]=!1;var Ta={};Ta[V]=Ta[W]=Ta[ga]=Ta[X]=Ta[Y]=Ta[ha]=Ta[ia]=Ta[ja]=Ta[ka]=Ta[la]=Ta[aa]=Ta[ba]=Ta[ca]=Ta[ea]=Ta[ma]=Ta[na]=Ta[oa]=Ta[pa]=!0,Ta[Z]=Ta[$]=Ta[_]=Ta[da]=Ta[fa]=!1;var Ua={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},Va={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Wa={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},Xa={"function":!0,object:!0},Ya={0:"x30",1:"x31",2:"x32",3:"x33",4:"x34",5:"x35",6:"x36",7:"x37",8:"x38",9:"x39",A:"x41",B:"x42",C:"x43",D:"x44",E:"x45",F:"x46",a:"x61",b:"x62",c:"x63",d:"x64",e:"x65",f:"x66",n:"x6e",r:"x72",t:"x74",u:"x75",v:"x76",x:"x78"},Za={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},$a=Xa[typeof b]&&b&&!b.nodeType&&b,_a=Xa[typeof a]&&a&&!a.nodeType&&a,ab=$a&&_a&&"object"==typeof e&&e&&e.Object&&e,bb=Xa[typeof self]&&self&&self.Object&&self,cb=Xa[typeof window]&&window&&window.Object&&window,db=(_a&&_a.exports===$a&&$a,ab||cb!==(this&&this.window)&&cb||bb||this),eb=A();db._=eb,d=function(){return eb}.call(b,c,b,a),!(d!==B&&(a.exports=d))}).call(this)}).call(b,c(8)(a),function(){return this}())},function(a,b){a.exports=function(a){return a.webpackPolyfill||(a.deprecate=function(){},a.paths=[],a.children=[],a.webpackPolyfill=1),a}},function(a,b,c){"use strict";function d(a,b){var c="normal";return a&&b?c="bolditalics":a?c="bold":b&&(c="italics"),c}function e(a,b){this.fonts={},this.pdfDoc=b,this.fontWrappers={};for(var c in a)if(a.hasOwnProperty(c)){var d=a[c];this.fonts[c]={normal:d.normal,bold:d.bold,italics:d.italics,bolditalics:d.bolditalics}}}var f=c(7),g=c(10);e.prototype.provideFont=function(a,b,c){var e=d(b,c);if(!this.fonts[a]||!this.fonts[a][e])throw new Error("Font '"+a+"' in style '"+e+"' is not defined in the font section of the document definition.");return this.fontWrappers[a]=this.fontWrappers[a]||{},this.fontWrappers[a][e]||(this.fontWrappers[a][e]=new g(this.pdfDoc,this.fonts[a][e],a+"("+e+")")),this.fontWrappers[a][e]},e.prototype.setFontRefsToPdfDoc=function(){var a=this;f.each(a.fontWrappers,function(b){f.each(b,function(b){f.each(b.pdfFonts,function(b){a.pdfDoc.page.fonts[b.id]||(a.pdfDoc.page.fonts[b.id]=b.ref())})})})},a.exports=e},function(a,b,c){"use strict";function d(a,b,c){this.MAX_CHAR_TYPES=92,this.pdfkitDoc=a,this.path=b,this.pdfFonts=[],this.charCatalogue=[],this.name=c,Object.defineProperty(this,"ascender",{get:function(){var a=this.getFont(0);return a.ascender}}),Object.defineProperty(this,"decender",{get:function(){var a=this.getFont(0);return a.decender}})}var e=c(7);d.prototype.getFont=function(a){if(!this.pdfFonts[a]){var b=this.name+a;this.postscriptName&&delete this.pdfkitDoc._fontFamilies[this.postscriptName],this.pdfFonts[a]=this.pdfkitDoc.font(this.path,b)._font,this.postscriptName||(this.postscriptName=this.pdfFonts[a].name)}return this.pdfFonts[a]},d.prototype.widthOfString=function(){var a=this.getFont(0);return a.widthOfString.apply(a,arguments)},d.prototype.lineHeight=function(){var a=this.getFont(0);return a.lineHeight.apply(a,arguments)},d.prototype.ref=function(){var a=this.getFont(0);return a.ref.apply(a,arguments)};var f=function(a){return a.charCodeAt(0)};d.prototype.encode=function(a){var b=this,c=e.chain(a.split("")).map(f).uniq().value();if(c.length>b.MAX_CHAR_TYPES)throw new Error("Inline has more than "+b.MAX_CHAR_TYPES+": "+a+" different character types and therefore cannot be properly embedded into pdf.");var d=function(a){return e.uniq(a.concat(c)).length<=b.MAX_CHAR_TYPES},g=e.findIndex(b.charCatalogue,d);0>g&&(g=b.charCatalogue.length,b.charCatalogue[g]=[]);var h=b.getFont(g);h.use(a),e.each(c,function(a){e.includes(b.charCatalogue[g],a)||b.charCatalogue[g].push(a)});var i=e.map(h.encode(a),function(a){return a.charCodeAt(0).toString(16)}).join("");return{encodedText:i,fontId:h.id}},a.exports=d},function(a,b,c){"use strict";function d(a,b){g.each(b,function(b){a.push(b)})}function e(a,b,c){this.pageSize=a,this.pageMargins=b,this.tracker=new h,this.imageMeasure=c,this.tableLayouts={}}function f(a){var b=a.x,c=a.y;a.positions=[],g.each(a.canvas,function(a){var b=a.x,c=a.y,d=a.x1,e=a.y1,f=a.x2,g=a.y2;a.resetXY=function(){a.x=b,a.y=c,a.x1=d,a.y1=e,a.x2=f,a.y2=g}}),a.resetXY=function(){a.x=b,a.y=c,g.each(a.canvas,function(a){a.resetXY()})}}var g=c(7),h=c(12),i=c(13),j=c(19),k=c(20),l=c(16),m=c(23),n=c(22),o=c(17).pack,p=c(17).offsetVector,q=c(17).fontStringify,r=c(17).isFunction,s=c(14),t=c(15);e.prototype.registerTableLayouts=function(a){this.tableLayouts=o(this.tableLayouts,a)},e.prototype.layoutDocument=function(a,b,c,d,e,f,h,j,k,l){function m(a,b){return r(l)?(a=g.reject(a,function(a){return g.isEmpty(a.positions)}),g.each(a,function(a){var c=g.pick(a,["id","text","ul","ol","table","image","qr","canvas","columns","headlineLevel","style","pageBreak","pageOrientation","width","height"]);c.startPosition=g.first(a.positions),c.pageNumbers=g.chain(a.positions).map("pageNumber").uniq().value(),c.pages=b.length,c.stack=g.isArray(a.stack),a.nodeInfo=c}),g.any(a,function(a,b,c){if("before"!==a.pageBreak&&!a.pageBreakCalculated){a.pageBreakCalculated=!0;var d=g.first(a.nodeInfo.pageNumbers),e=g.chain(c).drop(b+1).filter(function(a){return g.contains(a.nodeInfo.pageNumbers,d)}).value(),f=g.chain(c).drop(b+1).filter(function(a){return g.contains(a.nodeInfo.pageNumbers,d+1)}).value(),h=g.chain(c).take(b).filter(function(a){return g.contains(a.nodeInfo.pageNumbers,d)}).value();if(l(a.nodeInfo,g.map(e,"nodeInfo"),g.map(f,"nodeInfo"),g.map(h,"nodeInfo")))return a.pageBreak="before",!0}})):!1}function n(a){g.each(a.linearNodeList,function(a){a.resetXY()})}this.docMeasure=new i(b,c,d,this.imageMeasure,this.tableLayouts,j);for(var o=this.tryLayoutDocument(a,b,c,d,e,f,h,j,k);m(o.linearNodeList,o.pages);)n(o),o=this.tryLayoutDocument(a,b,c,d,e,f,h,j,k);return o.pages},e.prototype.tryLayoutDocument=function(a,b,c,d,e,f,g,h,i,l){this.linearNodeList=[],a=this.docMeasure.measureDocument(a),this.writer=new k(new j(this.pageSize,this.pageMargins),this.tracker);var m=this;return this.writer.context().tracker.startTracking("pageAdded",function(){m.addBackground(e)}),this.addBackground(e),this.processNode(a),this.addHeadersAndFooters(f,g),null!=i&&this.addWatermark(i,b),{pages:this.writer.context().pages,linearNodeList:this.linearNodeList}},e.prototype.addBackground=function(a){var b=r(a)?a:function(){return a},c=b(this.writer.context().page+1);if(c){var d=this.writer.context().getCurrentPage().pageSize;this.writer.beginUnbreakableBlock(d.width,d.height),this.processNode(this.docMeasure.measureDocument(c)),this.writer.commitUnbreakableBlock(0,0)}},e.prototype.addStaticRepeatable=function(a,b){this.addDynamicRepeatable(function(){return a},b)},e.prototype.addDynamicRepeatable=function(a,b){for(var c=this.writer.context().pages,d=0,e=c.length;e>d;d++){this.writer.context().page=d;var f=a(d+1,e);if(f){var g=b(this.writer.context().getCurrentPage().pageSize,this.pageMargins);this.writer.beginUnbreakableBlock(g.width,g.height),this.processNode(this.docMeasure.measureDocument(f)),this.writer.commitUnbreakableBlock(g.x,g.y)}}},e.prototype.addHeadersAndFooters=function(a,b){var c=function(a,b){return{x:0,y:0,width:a.width,height:b.top}},d=function(a,b){return{x:0,y:a.height-b.bottom,width:a.width,height:b.bottom}};r(a)?this.addDynamicRepeatable(a,c):a&&this.addStaticRepeatable(a,c),r(b)?this.addDynamicRepeatable(b,d):b&&this.addStaticRepeatable(b,d)},e.prototype.addWatermark=function(a,b){function c(a,b,c){for(var d,e=a.width,f=a.height,g=.8*Math.sqrt(e*e+f*f),h=new s(c),i=new t,j=0,k=1e3,l=(j+k)/2;Math.abs(j-k)>1;)i.push({fontSize:l}),d=h.sizeOfString(b,i),d.width>g?(k=l,l=(j+k)/2):d.widthg;g++)f[g].watermark=e},e.prototype.processNode=function(a){function b(b){var d=a._margin;"before"===a.pageBreak&&c.writer.moveToNextPage(a.pageOrientation),d&&(c.writer.context().moveDown(d[1]),c.writer.context().addMargin(d[0],d[2])),b(),d&&(c.writer.context().addMargin(-d[0],-d[2]),c.writer.context().moveDown(d[3])),"after"===a.pageBreak&&c.writer.moveToNextPage(a.pageOrientation)}var c=this;this.linearNodeList.push(a),f(a),b(function(){var b=a.absolutePosition;if(b&&(c.writer.context().beginDetachedBlock(),c.writer.context().moveTo(b.x||0,b.y||0)),a.stack)c.processVerticalContainer(a);else if(a.columns)c.processColumns(a);else if(a.ul)c.processList(!1,a);else if(a.ol)c.processList(!0,a);else if(a.table)c.processTable(a);else if(void 0!==a.text)c.processLeaf(a);else if(a.image)c.processImage(a);else if(a.canvas)c.processCanvas(a);else if(a.qr)c.processQr(a);else if(!a._span)throw"Unrecognized document structure: "+JSON.stringify(a,q);b&&c.writer.context().endDetachedBlock()})},e.prototype.processVerticalContainer=function(a){var b=this;a.stack.forEach(function(c){b.processNode(c),d(a.positions,c.positions)})},e.prototype.processColumns=function(a){function b(a){if(!a)return null;var b=[];b.push(0);for(var d=c.length-1;d>0;d--)b.push(a);return b}var c=a.columns,e=this.writer.context().availableWidth,f=b(a._gap);f&&(e-=(f.length-1)*a._gap),l.buildColumnWidths(c,e);var g=this.processRow(c,c,f);d(a.positions,g.positions)},e.prototype.processRow=function(a,b,c,e,f){function g(a){for(var b,c=0,d=k.length;d>c;c++){var e=k[c];if(e.prevPage===a.prevPage){b=e;break}}b||(b=a,k.push(b)),b.prevY=Math.max(b.prevY,a.prevY),b.y=Math.min(b.y,a.y)}function h(a){return c&&c.length>a?c[a]:0}function i(a,b){if(a.rowSpan&&a.rowSpan>1){var c=f+a.rowSpan-1;if(c>=e.length)throw"Row span for column "+b+" (with indexes starting from 0) exceeded row count";return e[c][b]}return null}var j=this,k=[],l=[];return this.tracker.auto("pageChanged",g,function(){b=b||a,j.writer.context().beginColumnGroup();for(var e=0,f=a.length;f>e;e++){var g=a[e],k=b[e]._calcWidth,m=h(e);if(g.colSpan&&g.colSpan>1)for(var n=1;nc;c++){b.beginRow(c,this.writer);var f=this.processRow(a.table.body[c],a.table.widths,a._offsets.offsets,a.table.body,c);d(a.positions,f.positions),b.endRow(c,this.writer,f.pageBreaks)}b.endTable(this.writer)},e.prototype.processLeaf=function(a){for(var b=this.buildNextLine(a),c=b?b.getHeight():0,d=a.maxHeight||-1;b&&(-1===d||d>c);){var e=this.writer.addLine(b);a.positions.push(e),b=this.buildNextLine(a),b&&(c+=b.getHeight())}},e.prototype.buildNextLine=function(a){if(!a._inlines||0===a._inlines.length)return null;for(var b=new n(this.writer.context().availableWidth);a._inlines&&a._inlines.length>0&&b.hasEnoughSpaceForInline(a._inlines[0]);)b.addInline(a._inlines.shift());return b.lastLineInParagraph=0===a._inlines.length,b},e.prototype.processImage=function(a){var b=this.writer.addImage(a);a.positions.push(b)},e.prototype.processCanvas=function(a){var b=a._minHeight;this.writer.context().availableHeight=0&&c.splice(d,1)}},c.prototype.emit=function(a){var b=Array.prototype.slice.call(arguments,1),c=this.events[a];c&&c.forEach(function(a){a.apply(this,b)})},c.prototype.auto=function(a,b,c){this.startTracking(a,b),c(),this.stopTracking(a,b)},a.exports=c},function(a,b,c){"use strict";function d(a,b,c,d,g,h){this.textTools=new e(a),this.styleStack=new f(b,c),this.imageMeasure=d,this.tableLayouts=g,this.images=h,this.autoImageIndex=1}var e=c(14),f=c(15),g=c(16),h=c(17).fontStringify,i=c(17).pack,j=c(18);d.prototype.measureDocument=function(a){return this.measureNode(a)},d.prototype.measureNode=function(a){function b(a){var b=a._margin;return b&&(a._minWidth+=b[0]+b[2],a._maxWidth+=b[0]+b[2]),a}function c(){function b(a,b){return a.marginLeft||a.marginTop||a.marginRight||a.marginBottom?[a.marginLeft||b[0]||0,a.marginTop||b[1]||0,a.marginRight||b[2]||0,a.marginBottom||b[3]||0]:b}function c(a){for(var b={},c=a.length-1;c>=0;c--){var e=a[c],f=d.styleStack.styleDictionary[e];for(var g in f)f.hasOwnProperty(g)&&(b[g]=f[g])}return b}function e(a){return"number"==typeof a||a instanceof Number?a=[a,a,a,a]:a instanceof Array&&2===a.length&&(a=[a[0],a[1],a[0],a[1]]),a}var f=[void 0,void 0,void 0,void 0];if(a.style){var g=a.style instanceof Array?a.style:[a.style],h=c(g);h&&(f=b(h,f)),h.margin&&(f=e(h.margin))}return f=b(a,f),a.margin&&(f=e(a.margin)),void 0===f[0]&&void 0===f[1]&&void 0===f[2]&&void 0===f[3]?null:f}a instanceof Array?a={stack:a}:("string"==typeof a||a instanceof String)&&(a={text:a}),0===Object.keys(a).length&&(a={text:""});var d=this;return this.styleStack.auto(a,function(){if(a._margin=c(a),a.columns)return b(d.measureColumns(a));if(a.stack)return b(d.measureVerticalContainer(a));if(a.ul)return b(d.measureList(!1,a));if(a.ol)return b(d.measureList(!0,a));if(a.table)return b(d.measureTable(a));if(void 0!==a.text)return b(d.measureLeaf(a));if(a.image)return b(d.measureImage(a));if(a.canvas)return b(d.measureCanvas(a));if(a.qr)return b(d.measureQr(a));throw"Unrecognized document structure: "+JSON.stringify(a,h)})},d.prototype.convertIfBase64Image=function(a){if(/^data:image\/(jpeg|jpg|png);base64,/.test(a.image)){var b="$$pdfmake$$"+this.autoImageIndex++;this.images[b]=a.image,a.image=b}},d.prototype.measureImage=function(a){this.images&&this.convertIfBase64Image(a);var b=this.imageMeasure.measureImage(a.image);if(a.fit){var c=b.width/b.height>a.fit[0]/a.fit[1]?a.fit[0]/b.width:a.fit[1]/b.height;a._width=a._minWidth=a._maxWidth=b.width*c,a._height=b.height*c}else a._width=a._minWidth=a._maxWidth=a.width||b.width,a._height=a.height||b.height*a._width/b.width;return a._alignment=this.styleStack.getProperty("alignment"),a},d.prototype.measureLeaf=function(a){var b=this.styleStack.clone();b.push(a);var c=this.textTools.buildInlines(a.text,b);return a._inlines=c.items,a._minWidth=c.minWidth,a._maxWidth=c.maxWidth,a},d.prototype.measureVerticalContainer=function(a){var b=a.stack;a._minWidth=0,a._maxWidth=0;for(var c=0,d=b.length;d>c;c++)b[c]=this.measureNode(b[c]),a._minWidth=Math.max(a._minWidth,b[c]._minWidth),a._maxWidth=Math.max(a._maxWidth,b[c]._maxWidth);return a},d.prototype.gapSizeForList=function(a,b){if(a){var c=b.length.toString().replace(/./g,"9");return this.textTools.sizeOfString(c+". ",this.styleStack)}return this.textTools.sizeOfString("9. ",this.styleStack)},d.prototype.buildMarker=function(a,b,c,d){var e;if(a)e={_inlines:this.textTools.buildInlines(b,c).items};else{var f=d.fontSize/6;e={canvas:[{x:f,y:d.height/d.lineHeight+d.decender-d.fontSize/3,r1:f,r2:f,type:"ellipse",color:"black"}]}}return e._minWidth=e._maxWidth=d.width,e._minHeight=e._maxHeight=d.height,e},d.prototype.measureList=function(a,b){var c=this.styleStack.clone(),d=a?b.ol:b.ul;b._gapSize=this.gapSizeForList(a,d),b._minWidth=0,b._maxWidth=0;for(var e=1,f=0,g=d.length;g>f;f++){var h=d[f]=this.measureNode(d[f]),i=e++ +". ";h.ol||h.ul||(h.listMarker=this.buildMarker(a,h.counter||i,c,b._gapSize)),b._minWidth=Math.max(b._minWidth,d[f]._minWidth+b._gapSize.width),b._maxWidth=Math.max(b._maxWidth,d[f]._maxWidth+b._gapSize.width)}return b},d.prototype.measureColumns=function(a){var b=a.columns;a._gap=this.styleStack.getProperty("columnGap")||0;for(var c=0,d=b.length;d>c;c++)b[c]=this.measureNode(b[c]);var e=g.measureMinMax(b);return a._minWidth=e.min+a._gap*(b.length-1),a._maxWidth=e.max+a._gap*(b.length-1),a},d.prototype.measureTable=function(a){function b(a,b){return function(){return null!==b&&"object"==typeof b&&(b.fillColor=a.styleStack.getProperty("fillColor")),a.measureNode(b)}}function c(b){var c=a.layout;("string"==typeof a.layout||a instanceof String)&&(c=b[c]);var d={hLineWidth:function(a,b){return 1},vLineWidth:function(a,b){return 1},hLineColor:function(a,b){return"black"},vLineColor:function(a,b){return"black"},paddingLeft:function(a,b){return 4},paddingRight:function(a,b){return 4},paddingTop:function(a,b){return 2},paddingBottom:function(a,b){return 2}};return i(d,c)}function d(b){for(var c=[],d=0,e=0,f=0,g=a.table.widths.length;g>f;f++){var h=e+b.vLineWidth(f,a)+b.paddingLeft(f,a);c.push(h),d+=h,e=b.paddingRight(f,a)}return d+=e+b.vLineWidth(a.table.widths.length,a),{total:d,offsets:c}}function e(){for(var b,c,d=0,e=p.length;e>d;d++){var g=p[d],h=f(g.col,g.span,a._offsets),i=g.minWidth-h.minWidth,j=g.maxWidth-h.maxWidth;if(i>0)for(b=i/g.span,c=0;c0)for(b=j/g.span,c=0;cf;f++)e.minWidth+=a.table.widths[b+f]._minWidth+(f?d.offsets[b+f]:0),e.maxWidth+=a.table.widths[b+f]._maxWidth+(f?d.offsets[b+f]:0);return e}function h(a,b,c){for(var d=1;c>d;d++)a[b+d]={_span:!0,_minWidth:0,_maxWidth:0,rowSpan:a[b].rowSpan}}function j(a,b,c,d){for(var e=1;d>e;e++)a.body[b+e][c]={_span:!0,_minWidth:0,_maxWidth:0,fillColor:a.body[b][c].fillColor}}function k(a){if(a.table.widths||(a.table.widths="auto"),"string"==typeof a.table.widths||a.table.widths instanceof String)for(a.table.widths=[a.table.widths];a.table.widths.lengthb;b++){var d=a.table.widths[b];("number"==typeof d||d instanceof Number||"string"==typeof d||d instanceof String)&&(a.table.widths[b]={width:d})}}k(a),a._layout=c(this.tableLayouts),a._offsets=d(a._layout);var l,m,n,o,p=[];for(l=0,n=a.table.body[0].length;n>l;l++){var q=a.table.widths[l];for(q._minWidth=0,q._maxWidth=0,m=0,o=a.table.body.length;o>m;m++){var r=a.table.body[m],s=r[l];if(!s._span){s=r[l]=this.styleStack.auto(s,b(this,s)),s.colSpan&&s.colSpan>1?(h(r,l,s.colSpan),p.push({col:l,span:s.colSpan,minWidth:s._minWidth,maxWidth:s._maxWidth})):(q._minWidth=Math.max(q._minWidth,s._minWidth),q._maxWidth=Math.max(q._maxWidth,s._maxWidth))}s.rowSpan&&s.rowSpan>1&&j(a.table,m,l,s.rowSpan)}}e();var t=g.measureMinMax(a.table.widths);return a._minWidth=t.min+a._offsets.total,a._maxWidth=t.max+a._offsets.total,a},d.prototype.measureCanvas=function(a){for(var b=0,c=0,d=0,e=a.canvas.length;e>d;d++){var f=a.canvas[d];switch(f.type){case"ellipse":b=Math.max(b,f.x+f.r1),c=Math.max(c,f.y+f.r2);break;case"rect":b=Math.max(b,f.x+f.w),c=Math.max(c,f.y+f.h);break;case"line":b=Math.max(b,f.x1,f.x2),c=Math.max(c,f.y1,f.y2);break;case"polyline":for(var g=0,h=f.points.length;h>g;g++)b=Math.max(b,f.points[g].x),c=Math.max(c,f.points[g].y)}}return a._minWidth=a._maxWidth=b,a._minHeight=a._maxHeight=c,a},d.prototype.measureQr=function(a){return a=j.measure(a),a._alignment=this.styleStack.getProperty("alignment"),a},a.exports=d},function(a,b){"use strict";function c(a){this.fontProvider=a}function d(a,b){var c=[];a=a.replace(" "," ");var d;d=b?[a,""]:a.match(j);for(var e=0,f=d.length;f-1>e;e++){var g=d[e],h=0===g.length;if(h){var i=0===c.length||c[c.length-1].lineEnd;i?c.push({text:"",lineEnd:!0}):c[c.length-1].lineEnd=!0}else c.push({text:g})}return c}function e(a,b){b=b||{},a=a||{};for(var c in a)"text"!=c&&a.hasOwnProperty(c)&&(b[c]=a[c]);return b}function f(a){var b=[];("string"==typeof a||a instanceof String)&&(a=[a]);for(var c=0,f=a.length;f>c;c++){var g,h=a[c],i=null;"string"==typeof h||h instanceof String?g=d(h):(g=d(h.text,h.noWrap),i=e(h));for(var j=0,k=g.length;k>j;j++){var l={text:g[j].text};g[j].lineEnd&&(l.lineEnd=!0),e(i,l),b.push(l)}}return b}function g(a){return a.replace(/[^A-Za-z0-9\[\] ]/g,function(a){return m[a]||a})}function h(a,b,c,d){var e;return void 0!==a[c]&&null!==a[c]?a[c]:b?(b.auto(a,function(){e=b.getProperty(c)}),null!==e&&void 0!==e?e:d):d}function i(a,b,c){var d=f(b);return d.forEach(function(b){var d=h(b,c,"font","Roboto"),e=h(b,c,"fontSize",12),f=h(b,c,"bold",!1),i=h(b,c,"italics",!1),j=h(b,c,"color","black"),m=h(b,c,"decoration",null),n=h(b,c,"decorationColor",null),o=h(b,c,"decorationStyle",null),p=h(b,c,"background",null),q=h(b,c,"lineHeight",1),r=a.provideFont(d,f,i);b.width=r.widthOfString(g(b.text),e),b.height=r.lineHeight(e)*q;var s=b.text.match(k),t=b.text.match(l);s?b.leadingCut=r.widthOfString(s[0],e):b.leadingCut=0, -t?b.trailingCut=r.widthOfString(t[0],e):b.trailingCut=0,b.alignment=h(b,c,"alignment","left"),b.font=r,b.fontSize=e,b.color=j,b.decoration=m,b.decorationColor=n,b.decorationStyle=o,b.background=p}),d}var j=/([^ ,\/!.?:;\-\n]*[ ,\/!.?:;\-]*)|\n/g,k=/^(\s)+/g,l=/(\s)+$/g;c.prototype.buildInlines=function(a,b){function c(a){return Math.max(0,a.width-a.leadingCut-a.trailingCut)}var d,e=i(this.fontProvider,a,b),f=0,g=0;return e.forEach(function(a){f=Math.max(f,a.width-a.leadingCut-a.trailingCut),d||(d={width:0,leadingCut:a.leadingCut,trailingCut:0}),d.width+=a.width,d.trailingCut=a.trailingCut,g=Math.max(g,c(d)),a.lineEnd&&(d=null)}),h({},b,"noWrap",!1)&&(f=g),{items:e,minWidth:f,maxWidth:g}},c.prototype.sizeOfString=function(a,b){a=a.replace(" "," ");var c=h({},b,"font","Roboto"),d=h({},b,"fontSize",12),e=h({},b,"bold",!1),f=h({},b,"italics",!1),i=h({},b,"lineHeight",1),j=this.fontProvider.provideFont(c,e,f);return{width:j.widthOfString(g(a),d),height:j.lineHeight(d)*i,fontSize:d,lineHeight:i,ascender:j.ascender/1e3*d,decender:j.decender/1e3*d}};var m={"Ą":"A","Ć":"C","Ę":"E","Ł":"L","Ń":"N","Ó":"O","Ś":"S","Ź":"Z","Ż":"Z","ą":"a","ć":"c","ę":"e","ł":"l","ń":"n","ó":"o","ś":"s","ź":"z","ż":"z"};a.exports=c},function(a,b){"use strict";function c(a,b){this.defaultStyle=b||{},this.styleDictionary=a,this.styleOverrides=[]}c.prototype.clone=function(){var a=new c(this.styleDictionary,this.defaultStyle);return this.styleOverrides.forEach(function(b){a.styleOverrides.push(b)}),a},c.prototype.push=function(a){this.styleOverrides.push(a)},c.prototype.pop=function(a){for(a=a||1;a-- >0;)this.styleOverrides.pop()},c.prototype.autopush=function(a){if("string"==typeof a||a instanceof String)return 0;var b=[];a.style&&(b=a.style instanceof Array?a.style:[a.style]);for(var c=0,d=b.length;d>c;c++)this.push(b[c]);var e={},f=!1;return["font","fontSize","bold","italics","alignment","color","columnGap","fillColor","decoration","decorationStyle","decorationColor","background","lineHeight","noWrap"].forEach(function(b){void 0!==a[b]&&null!==a[b]&&(e[b]=a[b],f=!0)}),f&&this.push(e),b.length+(f?1:0)},c.prototype.auto=function(a,b){var c=this.autopush(a),d=b();return c>0&&this.pop(c),d},c.prototype.getProperty=function(a){if(this.styleOverrides)for(var b=this.styleOverrides.length-1;b>=0;b--){var c=this.styleOverrides[b];if("string"==typeof c||c instanceof String){var d=this.styleDictionary[c];if(d&&null!==d[a]&&void 0!==d[a])return d[a]}else if(void 0!==c[a]&&null!==c[a])return c[a]}return this.defaultStyle&&this.defaultStyle[a]},a.exports=c},function(a,b){"use strict";function c(a,b){var c=[],f=0,g=0,h=[],i=0,j=0,k=[],l=b;a.forEach(function(a){d(a)?(c.push(a),f+=a._minWidth,g+=a._maxWidth):e(a)?(h.push(a),i=Math.max(i,a._minWidth),j=Math.max(j,a._maxWidth)):k.push(a)}),k.forEach(function(a){"string"==typeof a.width&&/\d+%/.test(a.width)&&(a.width=parseFloat(a.width)*l/100),a.width=b)c.forEach(function(a){a._calcWidth=a._minWidth}),h.forEach(function(a){a._calcWidth=i});else{if(b>n)c.forEach(function(a){a._calcWidth=a._maxWidth,b-=a._calcWidth});else{var o=b-m,p=n-m;c.forEach(function(a){var c=a._maxWidth-a._minWidth;a._calcWidth=a._minWidth+c*o/p,b-=a._calcWidth})}if(h.length>0){var q=b/h.length;h.forEach(function(a){a._calcWidth=q})}}}function d(a){return"auto"===a.width}function e(a){return null===a.width||void 0===a.width||"*"===a.width||"star"===a.width}function f(a){for(var b={min:0,max:0},c={min:0,max:0},f=0,g=0,h=a.length;h>g;g++){var i=a[g];e(i)?(c.min=Math.max(c.min,i._minWidth),c.max=Math.max(c.max,i._maxWidth),f++):d(i)?(b.min+=i._minWidth,b.max+=i._maxWidth):(b.min+=void 0!==i.width&&i.width||i._minWidth,b.max+=void 0!==i.width&&i.width||i._maxWidth)}return f&&(b.min+=f*c.min,b.max+=f*c.max),b}a.exports={buildColumnWidths:c,measureMinMax:f,isAutoColumn:d,isStarColumn:e}},function(a,b){"use strict";function c(){for(var a={},b=0,c=arguments.length;c>b;b++){var d=arguments[b];if(d)for(var e in d)d.hasOwnProperty(e)&&(a[e]=d[e])}return a}function d(a,b,c){switch(a.type){case"ellipse":case"rect":a.x+=b,a.y+=c;break;case"line":a.x1+=b,a.x2+=b,a.y1+=c,a.y2+=c;break;case"polyline":for(var d=0,e=a.points.length;e>d;d++)a.points[d].x+=b,a.points[d].y+=c}}function e(a,b){return"font"===a?"font":b}function f(a){var b={};return a&&"[object Function]"===b.toString.call(a)}a.exports={pack:c,fontStringify:e,offsetVector:d,isFunction:f}},function(a,b){"use strict";function c(a,b){var c={numeric:h,alphanumeric:i,octet:j},d={L:o,M:p,Q:q,H:r};b=b||{};var e=b.version||-1,f=d[(b.eccLevel||"L").toUpperCase()],g=b.mode?c[b.mode.toLowerCase()]:-1,k="mask"in b?b.mask:-1;if(0>g)g="string"==typeof a?a.match(l)?h:a.match(n)?i:j:j;else if(g!=h&&g!=i&&g!=j)throw"invalid or unsupported mode";if(a=K(g,a),null===a)throw"invalid data format";if(0>f||f>3)throw"invalid ECC level";if(0>e){for(e=1;40>=e&&!(a.length<=J(e,g,f));++e);if(e>40)throw"too large data for the Qr format"}else if(1>e||e>40)throw"invalid Qr version! should be between 1 and 40";if(-1!=k&&(0>k||k>8))throw"invalid mask";return U(a,e,g,f,k)}function d(a,b){var d=[],e=a.background||"#fff",f=a.foreground||"#000",g=c(a,b),h=g.length,i=Math.floor(b.fit?b.fit/h:5),j=h*i;d.push({type:"rect",x:0,y:0,w:j,h:j,lineWidth:0,color:e});for(var k=0;h>k;++k)for(var l=0;h>l;++l)g[k][l]&&d.push({type:"rect",x:i*k,y:i*l,w:i,h:i,lineWidth:0,color:f});return{canvas:d,size:j}}function e(a){var b=d(a.qr,a);return a._canvas=b.canvas,a._width=a._height=a._minWidth=a._maxWidth=a._minHeight=a._maxHeight=b.size,a}for(var f=[null,[[10,7,17,13],[1,1,1,1],[]],[[16,10,28,22],[1,1,1,1],[4,16]],[[26,15,22,18],[1,1,2,2],[4,20]],[[18,20,16,26],[2,1,4,2],[4,24]],[[24,26,22,18],[2,1,4,4],[4,28]],[[16,18,28,24],[4,2,4,4],[4,32]],[[18,20,26,18],[4,2,5,6],[4,20,36]],[[22,24,26,22],[4,2,6,6],[4,22,40]],[[22,30,24,20],[5,2,8,8],[4,24,44]],[[26,18,28,24],[5,4,8,8],[4,26,48]],[[30,20,24,28],[5,4,11,8],[4,28,52]],[[22,24,28,26],[8,4,11,10],[4,30,56]],[[22,26,22,24],[9,4,16,12],[4,32,60]],[[24,30,24,20],[9,4,16,16],[4,24,44,64]],[[24,22,24,30],[10,6,18,12],[4,24,46,68]],[[28,24,30,24],[10,6,16,17],[4,24,48,72]],[[28,28,28,28],[11,6,19,16],[4,28,52,76]],[[26,30,28,28],[13,6,21,18],[4,28,54,80]],[[26,28,26,26],[14,7,25,21],[4,28,56,84]],[[26,28,28,30],[16,8,25,20],[4,32,60,88]],[[26,28,30,28],[17,8,25,23],[4,26,48,70,92]],[[28,28,24,30],[17,9,34,23],[4,24,48,72,96]],[[28,30,30,30],[18,9,30,25],[4,28,52,76,100]],[[28,30,30,30],[20,10,32,27],[4,26,52,78,104]],[[28,26,30,30],[21,12,35,29],[4,30,56,82,108]],[[28,28,30,28],[23,12,37,34],[4,28,56,84,112]],[[28,30,30,30],[25,12,40,34],[4,32,60,88,116]],[[28,30,30,30],[26,13,42,35],[4,24,48,72,96,120]],[[28,30,30,30],[28,14,45,38],[4,28,52,76,100,124]],[[28,30,30,30],[29,15,48,40],[4,24,50,76,102,128]],[[28,30,30,30],[31,16,51,43],[4,28,54,80,106,132]],[[28,30,30,30],[33,17,54,45],[4,32,58,84,110,136]],[[28,30,30,30],[35,18,57,48],[4,28,56,84,112,140]],[[28,30,30,30],[37,19,60,51],[4,32,60,88,116,144]],[[28,30,30,30],[38,19,63,53],[4,28,52,76,100,124,148]],[[28,30,30,30],[40,20,66,56],[4,22,48,74,100,126,152]],[[28,30,30,30],[43,21,70,59],[4,26,52,78,104,130,156]],[[28,30,30,30],[45,22,74,62],[4,30,56,82,108,134,160]],[[28,30,30,30],[47,24,77,65],[4,24,52,80,108,136,164]],[[28,30,30,30],[49,25,81,68],[4,28,56,84,112,140,168]]],g=0,h=1,i=2,j=4,k=8,l=/^\d*$/,m=/^[A-Za-z0-9 $%*+\-.\/:]*$/,n=/^[A-Z0-9 $%*+\-.\/:]*$/,o=1,p=0,q=3,r=2,s=[],t=[-1],u=0,v=1;255>u;++u)s.push(v),t[v]=u,v=2*v^(v>=128?285:0);for(var w=[[]],u=0;30>u;++u){for(var x=w[u],y=[],z=0;u>=z;++z){var A=u>z?s[x[z]]:0,B=s[(u+(x[z-1]||0))%255];y.push(t[A^B])}w.push(y)}for(var C={},u=0;45>u;++u)C["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".charAt(u)]=u;var D=[function(a,b){return(a+b)%2===0},function(a,b){return a%2===0},function(a,b){return b%3===0},function(a,b){return(a+b)%3===0},function(a,b){return((a/2|0)+(b/3|0))%2===0},function(a,b){return a*b%2+a*b%3===0},function(a,b){return(a*b%2+a*b%3)%2===0},function(a,b){return((a+b)%2+a*b%3)%2===0}],E=function(a){return a>6},F=function(a){return 4*a+17},G=function(a){var b=f[a],c=16*a*a+128*a+64;return E(a)&&(c-=36),b[2].length&&(c-=25*b[2].length*b[2].length-10*b[2].length-55),c},H=function(a,b){var c=-8&G(a),d=f[a];return c-=8*d[0][b]*d[1][b]},I=function(a,b){switch(b){case h:return 10>a?10:27>a?12:14;case i:return 10>a?9:27>a?11:13;case j:return 10>a?8:16;case k:return 10>a?8:27>a?10:12}},J=function(a,b,c){var d=H(a,c)-4-I(a,b);switch(b){case h:return 3*(d/10|0)+(4>d%10?0:7>d%10?1:2);case i:return 2*(d/11|0)+(6>d%11?0:1);case j:return d/8|0;case k:return d/13|0}},K=function(a,b){switch(a){case h:return b.match(l)?b:null;case i:return b.match(m)?b.toUpperCase():null;case j:if("string"==typeof b){for(var c=[],d=0;de?c.push(e):2048>e?c.push(192|e>>6,128|63&e):65536>e?c.push(224|e>>12,128|e>>6&63,128|63&e):c.push(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)}return c}return b}},L=function(a,b,c,d){var e=[],f=0,k=8,l=c.length,m=function(a,b){if(b>=k){for(e.push(f|a>>(b-=k));b>=8;)e.push(a>>(b-=8)&255);f=0,k=8}b>0&&(f|=(a&(1<o;o+=3)m(parseInt(c.substring(o-2,o+1),10),10);m(parseInt(c.substring(o-2),10),[0,4,7][l%3]);break;case i:for(var o=1;l>o;o+=2)m(45*C[c.charAt(o-1)]+C[c.charAt(o)],11);l%2==1&&m(C[c.charAt(o-1)],6);break;case j:for(var o=0;l>o;++o)m(c[o],8)}for(m(g,4),8>k&&e.push(f);e.length+1f;++f)c.push(0);for(var f=0;d>f;){var g=t[c[f++]];if(g>=0)for(var h=0;e>h;++h)c[f+h]^=s[(g+b[h])%255]}return c.slice(d)},N=function(a,b,c){for(var d=[],e=a.length/b|0,f=0,g=b-a.length%b,h=0;g>h;++h)d.push(f),f+=e;for(var h=g;b>h;++h)d.push(f),f+=e+1;d.push(f);for(var i=[],h=0;b>h;++h)i.push(M(a.slice(d[h],d[h+1]),c));for(var j=[],k=a.length/b|0,h=0;k>h;++h)for(var l=0;b>l;++l)j.push(a[d[l]+h]);for(var l=g;b>l;++l)j.push(a[d[l+1]-1]);for(var h=0;hl;++l)j.push(i[l][h]);return j},O=function(a,b,c,d){for(var e=a<=0;--f)e>>d+f&1&&(e^=c<g;++g)d.push([]),e.push([]);var h=function(a,b,c,f,g){for(var h=0;c>h;++h)for(var i=0;f>i;++i)d[a+h][b+i]=g[h]>>i&1,e[a+h][b+i]=1};h(0,0,9,9,[127,65,93,93,93,65,383,0,64]),h(c-8,0,8,9,[256,127,65,93,93,93,65,127]),h(0,c-8,9,8,[254,130,186,186,186,130,254,0,0]);for(var g=9;c-8>g;++g)d[6][g]=d[g][6]=1&~g,e[6][g]=e[g][6]=1;for(var i=b[2],j=i.length,g=0;j>g;++g)for(var k=0===g||g===j-1?1:0,l=0===g?j-1:j,m=k;l>m;++m)h(i[g],i[m],5,5,[31,17,21,17,31]);if(E(a))for(var n=O(a,6,7973,12),o=0,g=0;6>g;++g)for(var m=0;3>m;++m)d[g][c-11+m]=d[c-11+m][g]=n>>o++&1,e[g][c-11+m]=e[c-11+m][g]=1;return{matrix:d,reserved:e}},Q=function(a,b,c){for(var d=a.length,e=0,f=-1,g=d-1;g>=0;g-=2){6==g&&--g;for(var h=0>f?d-1:0,i=0;d>i;++i){for(var j=g;j>g-2;--j)b[h][j]||(a[h][j]=c[e>>3]>>(7&~e)&1,++e);h+=f}f=-f}return a},R=function(a,b,c){for(var d=D[c],e=a.length,f=0;e>f;++f)for(var g=0;e>g;++g)b[f][g]||(a[f][g]^=d(f,g));return a},S=function(a,b,c,d){for(var e=a.length,f=21522^O(c<<3|d,5,1335,10),g=0;15>g;++g){var h=[0,1,2,3,4,5,7,8,e-7,e-6,e-5,e-4,e-3,e-2,e-1][g],i=[e-1,e-2,e-3,e-4,e-5,e-6,e-7,e-8,7,5,4,3,2,1,0][g];a[h][8]=a[8][i]=f>>g&1}return a},T=function(a){for(var b=3,c=3,d=40,e=10,f=function(a){for(var c=0,e=0;e=5&&(c+=b+(a[e]-5));for(var e=5;e=4*f||a[e+1]>=4*f)&&(c+=d)}return c},g=a.length,h=0,i=0,j=0;g>j;++j){var k,l=a[j];k=[0];for(var m=0;g>m;){var n;for(n=0;g>m&&l[m];++n)++m;for(k.push(n),n=0;g>m&&!l[m];++n)++m;k.push(n)}h+=f(k),k=[0];for(var m=0;g>m;){var n;for(n=0;g>m&&a[m][j];++n)++m;for(k.push(n),n=0;g>m&&!a[m][j];++n)++m;k.push(n)}h+=f(k);var o=a[j+1]||[];i+=l[0];for(var m=1;g>m;++m){var p=l[m];i+=p,l[m-1]==p&&o[m]===p&&o[m-1]===p&&(h+=c)}}return h+=e*(Math.abs(i/g/g-.5)/.05|0)},U=function(a,b,c,d,e){var g=f[b],h=L(b,c,a,H(b,d)>>3);h=N(h,g[1][d],w[g[0][d]]);var i=P(b),j=i.matrix,k=i.reserved;if(Q(j,k,h),0>e){R(j,k,0),S(j,k,d,0);var l=0,m=T(j);for(R(j,k,0),e=1;8>e;++e){R(j,k,e),S(j,k,d,e);var n=T(j);m>n&&(m=n,l=e),R(j,k,e)}e=l}return R(j,k,e),S(j,k,d,e),j};a.exports={measure:e}},function(a,b,c){"use strict";function d(a,b){this.pages=[],this.pageMargins=b,this.x=b.left,this.availableWidth=a.width-b.left-b.right,this.availableHeight=0,this.page=-1,this.snapshots=[],this.endingCell=null,this.tracker=new g,this.addPage(a)}function e(a,b){return void 0===a?b:"landscape"===a?"landscape":"portrait"}function f(a,b){var c;return c=a.page>b.page?a:b.page>a.page?b:a.y>b.y?a:b,{page:c.page,x:c.x,y:c.y,availableHeight:c.availableHeight,availableWidth:c.availableWidth}}var g=c(12);d.prototype.beginColumnGroup=function(){this.snapshots.push({x:this.x,y:this.y,availableHeight:this.availableHeight,availableWidth:this.availableWidth,page:this.page,bottomMost:{y:this.y,page:this.page},endingCell:this.endingCell,lastColumnWidth:this.lastColumnWidth}),this.lastColumnWidth=0},d.prototype.beginColumn=function(a,b,c){var d=this.snapshots[this.snapshots.length-1];this.calculateBottomMost(d),this.endingCell=c,this.page=d.page,this.x=this.x+this.lastColumnWidth+(b||0),this.y=d.y,this.availableWidth=a,this.availableHeight=d.availableHeight,this.lastColumnWidth=a},d.prototype.calculateBottomMost=function(a){this.endingCell?(this.saveContextInEndingCell(this.endingCell),this.endingCell=null):a.bottomMost=f(this,a.bottomMost)},d.prototype.markEnding=function(a){this.page=a._columnEndingContext.page,this.x=a._columnEndingContext.x,this.y=a._columnEndingContext.y,this.availableWidth=a._columnEndingContext.availableWidth,this.availableHeight=a._columnEndingContext.availableHeight,this.lastColumnWidth=a._columnEndingContext.lastColumnWidth},d.prototype.saveContextInEndingCell=function(a){a._columnEndingContext={page:this.page,x:this.x,y:this.y,availableHeight:this.availableHeight,availableWidth:this.availableWidth,lastColumnWidth:this.lastColumnWidth}},d.prototype.completeColumnGroup=function(){var a=this.snapshots.pop();this.calculateBottomMost(a),this.endingCell=null,this.x=a.x,this.y=a.bottomMost.y,this.page=a.bottomMost.page,this.availableWidth=a.availableWidth,this.availableHeight=a.bottomMost.availableHeight,this.lastColumnWidth=a.lastColumnWidth},d.prototype.addMargin=function(a,b){this.x+=a,this.availableWidth-=a+(b||0)},d.prototype.moveDown=function(a){return this.y+=a,this.availableHeight-=a,this.availableHeight>0},d.prototype.initializePage=function(){this.y=this.pageMargins.top,this.availableHeight=this.getCurrentPage().pageSize.height-this.pageMargins.top-this.pageMargins.bottom,this.pageSnapshot().availableWidth=this.getCurrentPage().pageSize.width-this.pageMargins.left-this.pageMargins.right},d.prototype.pageSnapshot=function(){return this.snapshots[0]?this.snapshots[0]:this},d.prototype.moveTo=function(a,b){void 0!==a&&null!==a&&(this.x=a,this.availableWidth=this.getCurrentPage().pageSize.width-this.x-this.pageMargins.right),void 0!==b&&null!==b&&(this.y=b,this.availableHeight=this.getCurrentPage().pageSize.height-this.y-this.pageMargins.bottom)},d.prototype.beginDetachedBlock=function(){this.snapshots.push({x:this.x,y:this.y,availableHeight:this.availableHeight,availableWidth:this.availableWidth,page:this.page,endingCell:this.endingCell,lastColumnWidth:this.lastColumnWidth})},d.prototype.endDetachedBlock=function(){var a=this.snapshots.pop();this.x=a.x,this.y=a.y,this.availableWidth=a.availableWidth,this.availableHeight=a.availableHeight,this.page=a.page,this.endingCell=a.endingCell,this.lastColumnWidth=a.lastColumnWidth};var h=function(a,b){return b=e(b,a.pageSize.orientation),b!==a.pageSize.orientation?{orientation:b,width:a.pageSize.height,height:a.pageSize.width}:{orientation:a.pageSize.orientation,width:a.pageSize.width,height:a.pageSize.height}};d.prototype.moveToNextPage=function(a){var b=this.page+1,c=this.page,d=this.y,e=b>=this.pages.length;return e?this.addPage(h(this.getCurrentPage(),a)):(this.page=b,this.initializePage()),{newPageCreated:e,prevPage:c,prevY:d,y:this.y}},d.prototype.addPage=function(a){var b={items:[],pageSize:a};return this.pages.push(b),this.page=this.pages.length-1,this.initializePage(),this.tracker.emit("pageAdded"),b},d.prototype.getCurrentPage=function(){return this.page<0||this.page>=this.pages.length?null:this.pages[this.page]},d.prototype.getCurrentPosition=function(){var a=this.getCurrentPage().pageSize,b=a.height-this.pageMargins.top-this.pageMargins.bottom,c=a.width-this.pageMargins.left-this.pageMargins.right;return{pageNumber:this.page+1,pageOrientation:a.orientation,pageInnerHeight:b,pageInnerWidth:c,left:this.x,top:this.y,verticalRatio:(this.y-this.pageMargins.top)/b,horizontalRatio:(this.x-this.pageMargins.left)/c}},a.exports=d},function(a,b,c){"use strict";function d(a,b){this.transactionLevel=0,this.repeatables=[],this.tracker=b,this.writer=new f(a,b)}function e(a,b){var c=b(a);return c||(a.moveToNextPage(),c=b(a)),c}var f=c(21);d.prototype.addLine=function(a,b,c){return e(this,function(d){return d.writer.addLine(a,b,c)})},d.prototype.addImage=function(a,b){return e(this,function(c){return c.writer.addImage(a,b)})},d.prototype.addQr=function(a,b){return e(this,function(c){return c.writer.addQr(a,b)})},d.prototype.addVector=function(a,b,c,d){return this.writer.addVector(a,b,c,d)},d.prototype.addFragment=function(a,b,c,d){this.writer.addFragment(a,b,c,d)||(this.moveToNextPage(),this.writer.addFragment(a,b,c,d))},d.prototype.moveToNextPage=function(a){var b=this.writer.context.moveToNextPage(a);b.newPageCreated?this.repeatables.forEach(function(a){this.writer.addFragment(a,!0)},this):this.repeatables.forEach(function(a){this.writer.context.moveDown(a.height)},this),this.writer.tracker.emit("pageChanged",{prevPage:b.prevPage,prevY:b.prevY,y:b.y})},d.prototype.beginUnbreakableBlock=function(a,b){0===this.transactionLevel++&&(this.originalX=this.writer.context.x,this.writer.pushContext(a,b))},d.prototype.commitUnbreakableBlock=function(a,b){if(0===--this.transactionLevel){var c=this.writer.context;this.writer.popContext();var d=c.pages.length;if(d>0){var e=c.pages[0];if(e.xOffset=a,e.yOffset=b,d>1)if(void 0!==a||void 0!==b)e.height=c.getCurrentPage().pageSize.height-c.pageMargins.top-c.pageMargins.bottom;else{e.height=this.writer.context.getCurrentPage().pageSize.height-this.writer.context.pageMargins.top-this.writer.context.pageMargins.bottom;for(var f=0,g=this.repeatables.length;g>f;f++)e.height-=this.repeatables[f].height}else e.height=c.y;void 0!==a||void 0!==b?this.writer.addFragment(e,!0,!0,!0):this.addFragment(e)}}},d.prototype.currentBlockToRepeatable=function(){var a=this.writer.context,b={items:[]};return a.pages[0].items.forEach(function(a){b.items.push(a)}),b.xOffset=this.originalX,b.height=a.y,b},d.prototype.pushToRepeatables=function(a){this.repeatables.push(a)},d.prototype.popFromRepeatables=function(){this.repeatables.pop()},d.prototype.context=function(){return this.writer.context},a.exports=d},function(a,b,c){"use strict";function d(a,b){this.context=a,this.contextStack=[],this.tracker=b}function e(a,b,c){null===c||void 0===c||0>c||c>a.items.length?a.items.push(b):a.items.splice(c,0,b)}function f(a){var b=new g(a.maxWidth);for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}var g=c(22),h=c(17).pack,i=c(17).offsetVector,j=c(19);d.prototype.addLine=function(a,b,c){var d=a.getHeight(),f=this.context,g=f.getCurrentPage(),h=this.getCurrentPositionOnPage();return f.availableHeight0&&a.inlines[0].alignment,e=0;switch(d){case"right":e=b-c;break;case"center":e=(b-c)/2}if(e&&(a.x=(a.x||0)+e),"justify"===d&&!a.newLineForced&&!a.lastLineInParagraph&&a.inlines.length>1)for(var f=(b-c)/(a.inlines.length-1),g=1,h=a.inlines.length;h>g;g++)e=g*f,a.inlines[g].x+=e},d.prototype.addImage=function(a,b){var c=this.context,d=c.getCurrentPage(),f=this.getCurrentPositionOnPage();return c.availableHeightf;f++){var h=a._canvas[f];h.x+=a.x,h.y+=a.y,this.addVector(h,!0,!0,b)}return c.moveDown(a._height),e},d.prototype.alignImage=function(a){var b=this.context.availableWidth,c=a._minWidth,d=0;switch(a._alignment){case"right":d=b-c;break;case"center":d=(b-c)/2}d&&(a.x=(a.x||0)+d)},d.prototype.addVector=function(a,b,c,d){var f=this.context,g=f.getCurrentPage(),h=this.getCurrentPositionOnPage();return g?(i(a,b?0:f.x,c?0:f.y),e(g,{type:"vector",item:a},d),h):void 0},d.prototype.addFragment=function(a,b,c,d){var e=this.context,g=e.getCurrentPage();return!b&&a.height>e.availableHeight?!1:(a.items.forEach(function(d){switch(d.type){case"line":var j=f(d.item);j.x=(j.x||0)+(b?a.xOffset||0:e.x),j.y=(j.y||0)+(c?a.yOffset||0:e.y),g.items.push({type:"line",item:j});break;case"vector":var k=h(d.item);i(k,b?a.xOffset||0:e.x,c?a.yOffset||0:e.y),g.items.push({type:"vector",item:k});break;case"image":var l=h(d.item);l.x=(l.x||0)+(b?a.xOffset||0:e.x),l.y=(l.y||0)+(c?a.yOffset||0:e.y),g.items.push({type:"image",item:l})}}),d||e.moveDown(a.height),!0)},d.prototype.pushContext=function(a,b){void 0===a&&(b=this.context.getCurrentPage().height-this.context.pageMargins.top-this.context.pageMargins.bottom,a=this.context.availableWidth),("number"==typeof a||a instanceof Number)&&(a=new j({width:a,height:b},{left:0,right:0,top:0,bottom:0})),this.contextStack.push(this.context),this.context=a},d.prototype.popContext=function(){this.context=this.contextStack.pop()},d.prototype.getCurrentPositionOnPage=function(){return(this.contextStack[0]||this.context).getCurrentPosition()},a.exports=d},function(a,b){"use strict";function c(a){this.maxWidth=a,this.leadingCut=0,this.trailingCut=0,this.inlineWidths=0,this.inlines=[]}c.prototype.getAscenderHeight=function(){var a=0;return this.inlines.forEach(function(b){a=Math.max(a,b.font.ascender/1e3*b.fontSize)}),a},c.prototype.hasEnoughSpaceForInline=function(a){return 0===this.inlines.length?!0:this.newLineForced?!1:this.inlineWidths+a.width-this.leadingCut-(a.trailingCut||0)<=this.maxWidth},c.prototype.addInline=function(a){0===this.inlines.length&&(this.leadingCut=a.leadingCut||0),this.trailingCut=a.trailingCut||0,a.x=this.inlineWidths-this.leadingCut,this.inlines.push(a),this.inlineWidths+=a.width,a.lineEnd&&(this.newLineForced=!0)},c.prototype.getWidth=function(){return this.inlineWidths-this.leadingCut-this.trailingCut},c.prototype.getHeight=function(){var a=0;return this.inlines.forEach(function(b){a=Math.max(a,b.height||0)}),a},a.exports=c},function(a,b,c){"use strict";function d(a){this.tableNode=a}var e=c(16);d.prototype.beginTable=function(a){function b(){var a=0;return d.table.widths.forEach(function(b){a+=b._calcWidth}),a}function c(){var a=[],b=0,c=0;a.push({left:0,rowSpan:0});for(var d=0,e=g.tableNode.table.body[0].length;e>d;d++){var f=g.layout.paddingLeft(d,g.tableNode)+g.layout.paddingRight(d,g.tableNode),h=g.layout.vLineWidth(d,g.tableNode);c=f+h+g.tableNode.table.widths[d]._calcWidth,a[a.length-1].width=c,b+=c,a.push({left:b,rowSpan:0,width:0})}return a}var d,f,g=this;d=this.tableNode,this.offsets=d._offsets,this.layout=d._layout,f=a.context().availableWidth-this.offsets.total,e.buildColumnWidths(d.table.widths,f),this.tableWidth=d._offsets.total+b(),this.rowSpanData=c(),this.cleanUpRepeatables=!1,this.headerRows=d.table.headerRows||0,this.rowsWithoutPageBreak=this.headerRows+(d.table.keepWithHeaderRows||0),this.dontBreakRows=d.table.dontBreakRows||!1,this.rowsWithoutPageBreak&&a.beginUnbreakableBlock(),this.drawHorizontalLine(0,a)},d.prototype.onRowBreak=function(a,b){var c=this;return function(){var a=c.rowPaddingTop+(c.headerRows?0:c.topLineWidth);b.context().moveDown(a)}},d.prototype.beginRow=function(a,b){this.topLineWidth=this.layout.hLineWidth(a,this.tableNode),this.rowPaddingTop=this.layout.paddingTop(a,this.tableNode),this.bottomLineWidth=this.layout.hLineWidth(a+1,this.tableNode),this.rowPaddingBottom=this.layout.paddingBottom(a,this.tableNode),this.rowCallback=this.onRowBreak(a,b),b.tracker.startTracking("pageChanged",this.rowCallback),this.dontBreakRows&&b.beginUnbreakableBlock(),this.rowTopY=b.context().y,this.reservedAtBottom=this.bottomLineWidth+this.rowPaddingBottom,b.context().availableHeight-=this.reservedAtBottom,b.context().moveDown(this.rowPaddingTop)},d.prototype.drawHorizontalLine=function(a,b,c){var d=this.layout.hLineWidth(a,this.tableNode);if(d){for(var e=d/2,f=null,g=0,h=this.rowSpanData.length;h>g;g++){var i=this.rowSpanData[g],j=!i.rowSpan;!f&&j&&(f={left:i.left,width:0}),j&&(f.width+=i.width||0);var k=(c||0)+e;j&&g!==h-1||f&&(b.addVector({type:"line",x1:f.left,x2:f.left+f.width,y1:k,y2:k,lineWidth:d,lineColor:"function"==typeof this.layout.hLineColor?this.layout.hLineColor(a,this.tableNode):this.layout.hLineColor},!1,c),f=null)}b.context().moveDown(d)}},d.prototype.drawVerticalLine=function(a,b,c,d,e){var f=this.layout.vLineWidth(d,this.tableNode);0!==f&&e.addVector({type:"line",x1:a+f/2,x2:a+f/2,y1:b,y2:c,lineWidth:f,lineColor:"function"==typeof this.layout.vLineColor?this.layout.vLineColor(d,this.tableNode):this.layout.vLineColor},!1,!0)},d.prototype.endTable=function(a){this.cleanUpRepeatables&&a.popFromRepeatables()},d.prototype.endRow=function(a,b,c){function d(){for(var b=[],c=0,d=0,e=g.tableNode.table.body[a].length;e>d;d++){if(!c){b.push({x:g.rowSpanData[d].left,index:d});var f=g.tableNode.table.body[a][d];c=f._colSpan||f.colSpan||0}c>0&&c--}return b.push({x:g.rowSpanData[g.rowSpanData.length-1].left,index:g.rowSpanData.length-1}),b}var e,f,g=this;b.tracker.stopTracking("pageChanged",this.rowCallback),b.context().moveDown(this.layout.paddingBottom(a,this.tableNode)),b.context().availableHeight+=this.reservedAtBottom;var h=b.context().page,i=b.context().y,j=d(),k=[],l=c&&c.length>0;if(k.push({y0:this.rowTopY,page:l?c[0].prevPage:h}),l)for(f=0,e=c.length;e>f;f++){var m=c[f];k[k.length-1].y1=m.prevY,k.push({y0:m.y,page:m.prevPage+1})}k[k.length-1].y1=i;for(var n=k[0].y1-k[0].y0===this.rowPaddingTop,o=n?1:0,p=k.length;p>o;o++){var q=o0&&!this.headerRows,s=r?0:this.topLineWidth,t=k[o].y0,u=k[o].y1;for(q&&(u+=this.rowPaddingBottom),b.context().page!=k[o].page&&(b.context().page=k[o].page,this.reservedAtBottom=0),f=0,e=j.length;e>f;f++)if(this.drawVerticalLine(j[f].x,t-s,u+this.bottomLineWidth,j[f].index,b),e-1>f){var v=j[f].index,w=this.tableNode.table.body[a][v].fillColor;if(w){var x=this.layout.vLineWidth(v,this.tableNode),y=j[f].x+x,z=t-s;b.addVector({type:"rect",x:y,y:z,w:j[f+1].x-y,h:u+this.bottomLineWidth-z,lineWidth:0,color:w},!1,!0,0)}}q&&this.layout.hLineWhenBroken!==!1&&this.drawHorizontalLine(a+1,b,u),r&&this.layout.hLineWhenBroken!==!1&&this.drawHorizontalLine(a,b,t)}b.context().page=h,b.context().y=i;var A=this.tableNode.table.body[a];for(f=0,e=A.length;e>f;f++){if(A[f].rowSpan&&(this.rowSpanData[f].rowSpan=A[f].rowSpan,A[f].colSpan&&A[f].colSpan>1))for(var B=1;B0&&this.rowSpanData[f].rowSpan--}this.drawHorizontalLine(a+1,b),this.headerRows&&a===this.headerRows-1&&(this.headerRepeatable=b.currentBlockToRepeatable()),this.dontBreakRows&&b.tracker.auto("pageChanged",function(){g.drawHorizontalLine(a,b)},function(){b.commitUnbreakableBlock(),g.drawHorizontalLine(a,b)}),!this.headerRepeatable||a!==this.rowsWithoutPageBreak-1&&a!==this.tableNode.table.body.length-1||(b.commitUnbreakableBlock(),b.pushToRepeatables(this.headerRepeatable),this.cleanUpRepeatables=!0,this.headerRepeatable=null)},a.exports=d},function(a,b,c){(function(b){(function(){var d,e,f,g,h,i,j={}.hasOwnProperty,k=function(a,b){function c(){this.constructor=a}for(var d in b)j.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};i=c(25),h=c(44),e=c(45),g=c(46),f=c(64),d=function(a){function d(a){var b,c,e,f;if(this.options=null!=a?a:{},d.__super__.constructor.apply(this,arguments),this.version=1.3,this.compress=null!=(e=this.options.compress)?e:!0,this._pageBuffer=[],this._pageBufferStart=0,this._offsets=[],this._waiting=0,this._ended=!1,this._offset=0,this._root=this.ref({Type:"Catalog",Pages:this.ref({Type:"Pages",Count:0,Kids:[]})}),this.page=null,this.initColor(),this.initVector(),this.initFonts(),this.initText(),this.initImages(),this.info={Producer:"PDFKit",Creator:"PDFKit",CreationDate:new Date},this.options.info){f=this.options.info;for(b in f)c=f[b],this.info[b]=c}this._write("%PDF-"+this.version),this._write("%ÿÿÿÿ"),this.addPage()}var i;return k(d,a),i=function(a){var b,c,e;e=[];for(c in a)b=a[c],e.push(d.prototype[c]=b);return e},i(c(65)),i(c(67)),i(c(69)),i(c(89)),i(c(96)),i(c(101)),d.prototype.addPage=function(a){var b;return null==a&&(a=this.options),this.options.bufferPages||this.flushPages(),this.page=new f(this,a),this._pageBuffer.push(this.page),b=this._root.data.Pages.data,b.Kids.push(this.page.dictionary),b.Count++,this.x=this.page.margins.left,this.y=this.page.margins.top,this._ctm=[1,0,0,1,0,0],this.transform(1,0,0,-1,0,this.page.height),this},d.prototype.bufferedPageRange=function(){return{start:this._pageBufferStart,count:this._pageBuffer.length}},d.prototype.switchToPage=function(a){var b;if(!(b=this._pageBuffer[a-this._pageBufferStart]))throw new Error("switchToPage("+a+") out of bounds, current buffer covers pages "+this._pageBufferStart+" to "+(this._pageBufferStart+this._pageBuffer.length-1));return this.page=b},d.prototype.flushPages=function(){var a,b,c,d;for(b=this._pageBuffer,this._pageBuffer=[],this._pageBufferStart+=b.length,c=0,d=b.length;d>c;c++)a=b[c],a.end()},d.prototype.ref=function(a){var b;return b=new g(this,this._offsets.length+1,a),this._offsets.push(null),this._waiting++,b},d.prototype._read=function(){},d.prototype._write=function(a){return b.isBuffer(a)||(a=new b(a+"\n","binary")),this.push(a),this._offset+=a.length},d.prototype.addContent=function(a){return this.page.write(a),this},d.prototype._refEnd=function(a){return this._offsets[a.id-1]=a.offset,0===--this._waiting&&this._ended?(this._finalize(),this._ended=!1):void 0},d.prototype.write=function(a,b){var c;return c=new Error("PDFDocument#write is deprecated, and will be removed in a future version of PDFKit. Please pipe the document into a Node stream."),console.warn(c.stack),this.pipe(h.createWriteStream(a)),this.end(),this.once("end",b)},d.prototype.output=function(a){throw new Error("PDFDocument#output is deprecated, and has been removed from PDFKit. Please pipe the document into a Node stream.")},d.prototype.end=function(){var a,b,c,d,e,f;this.flushPages(),this._info=this.ref(),e=this.info;for(b in e)d=e[b],"string"==typeof d&&(d=new String(d)),this._info.data[b]=d;this._info.end(),f=this._fontFamilies;for(c in f)a=f[c],a.embed();return this._root.end(),this._root.data.Pages.end(),0===this._waiting?this._finalize():this._ended=!0},d.prototype._finalize=function(a){var b,c,d,f,g;for(c=this._offset,this._write("xref"),this._write("0 "+(this._offsets.length+1)),this._write("0000000000 65535 f "),g=this._offsets,d=0,f=g.length;f>d;d++)b=g[d],b=("0000000000"+b).slice(-10),this._write(b+" 00000 n ");return this._write("trailer"),this._write(e.convert({Size:this._offsets.length+1,Root:this._root,Info:this._info})),this._write("startxref"),this._write(""+c),this._write("%%EOF"),this.push(null)},d.prototype.toString=function(){ -return"[object PDFDocument]"},d}(i.Readable),a.exports=d}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){function d(){e.call(this)}a.exports=d;var e=c(26).EventEmitter,f=c(27);f(d,e),d.Readable=c(28),d.Writable=c(40),d.Duplex=c(41),d.Transform=c(42),d.PassThrough=c(43),d.Stream=d,d.prototype.pipe=function(a,b){function c(b){a.writable&&!1===a.write(b)&&j.pause&&j.pause()}function d(){j.readable&&j.resume&&j.resume()}function f(){k||(k=!0,a.end())}function g(){k||(k=!0,"function"==typeof a.destroy&&a.destroy())}function h(a){if(i(),0===e.listenerCount(this,"error"))throw a}function i(){j.removeListener("data",c),a.removeListener("drain",d),j.removeListener("end",f),j.removeListener("close",g),j.removeListener("error",h),a.removeListener("error",h),j.removeListener("end",i),j.removeListener("close",i),a.removeListener("close",i)}var j=this;j.on("data",c),a.on("drain",d),a._isStdio||b&&b.end===!1||(j.on("end",f),j.on("close",g));var k=!1;return j.on("error",h),a.on("error",h),j.on("end",i),j.on("close",i),a.on("close",i),a.emit("pipe",j),a}},function(a,b){function c(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function d(a){return"function"==typeof a}function e(a){return"number"==typeof a}function f(a){return"object"==typeof a&&null!==a}function g(a){return void 0===a}a.exports=c,c.EventEmitter=c,c.prototype._events=void 0,c.prototype._maxListeners=void 0,c.defaultMaxListeners=10,c.prototype.setMaxListeners=function(a){if(!e(a)||0>a||isNaN(a))throw TypeError("n must be a positive number");return this._maxListeners=a,this},c.prototype.emit=function(a){var b,c,e,h,i,j;if(this._events||(this._events={}),"error"===a&&(!this._events.error||f(this._events.error)&&!this._events.error.length)){if(b=arguments[1],b instanceof Error)throw b;throw TypeError('Uncaught, unspecified "error" event.')}if(c=this._events[a],g(c))return!1;if(d(c))switch(arguments.length){case 1:c.call(this);break;case 2:c.call(this,arguments[1]);break;case 3:c.call(this,arguments[1],arguments[2]);break;default:h=Array.prototype.slice.call(arguments,1),c.apply(this,h)}else if(f(c))for(h=Array.prototype.slice.call(arguments,1),j=c.slice(),e=j.length,i=0;e>i;i++)j[i].apply(this,h);return!0},c.prototype.addListener=function(a,b){var e;if(!d(b))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",a,d(b.listener)?b.listener:b),this._events[a]?f(this._events[a])?this._events[a].push(b):this._events[a]=[this._events[a],b]:this._events[a]=b,f(this._events[a])&&!this._events[a].warned&&(e=g(this._maxListeners)?c.defaultMaxListeners:this._maxListeners,e&&e>0&&this._events[a].length>e&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace())),this},c.prototype.on=c.prototype.addListener,c.prototype.once=function(a,b){function c(){this.removeListener(a,c),e||(e=!0,b.apply(this,arguments))}if(!d(b))throw TypeError("listener must be a function");var e=!1;return c.listener=b,this.on(a,c),this},c.prototype.removeListener=function(a,b){var c,e,g,h;if(!d(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],g=c.length,e=-1,c===b||d(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(f(c)){for(h=g;h-- >0;)if(c[h]===b||c[h].listener&&c[h].listener===b){e=h;break}if(0>e)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(e,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},c.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],d(c))this.removeListener(a,c);else if(c)for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},c.prototype.listeners=function(a){var b;return b=this._events&&this._events[a]?d(this._events[a])?[this._events[a]]:this._events[a].slice():[]},c.prototype.listenerCount=function(a){if(this._events){var b=this._events[a];if(d(b))return 1;if(b)return b.length}return 0},c.listenerCount=function(a,b){return a.listenerCount(b)}},function(a,b){"function"==typeof Object.create?a.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:a.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},function(a,b,c){b=a.exports=c(29),b.Stream=c(25),b.Readable=b,b.Writable=c(36),b.Duplex=c(35),b.Transform=c(38),b.PassThrough=c(39)},function(a,b,c){(function(b){function d(a,b){var d=c(35);a=a||{};var e=a.highWaterMark,f=a.objectMode?16:16384;this.highWaterMark=e||0===e?e:f,this.highWaterMark=~~this.highWaterMark,this.buffer=[],this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.objectMode=!!a.objectMode,b instanceof d&&(this.objectMode=this.objectMode||!!a.readableObjectMode),this.defaultEncoding=a.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,a.encoding&&(C||(C=c(37).StringDecoder),this.decoder=new C(a.encoding),this.encoding=a.encoding)}function e(a){c(35);return this instanceof e?(this._readableState=new d(a,this),this.readable=!0,void A.call(this)):new e(a)}function f(a,b,c,d,e){var f=j(b,c);if(f)a.emit("error",f);else if(B.isNullOrUndefined(c))b.reading=!1,b.ended||k(a,b);else if(b.objectMode||c&&c.length>0)if(b.ended&&!e){var h=new Error("stream.push() after EOF");a.emit("error",h)}else if(b.endEmitted&&e){var h=new Error("stream.unshift() after end event");a.emit("error",h)}else!b.decoder||e||d||(c=b.decoder.write(c)),e||(b.reading=!1),b.flowing&&0===b.length&&!b.sync?(a.emit("data",c),a.read(0)):(b.length+=b.objectMode?1:c.length,e?b.buffer.unshift(c):b.buffer.push(c),b.needReadable&&l(a)),n(a,b);else e||(b.reading=!1);return g(b)}function g(a){return!a.ended&&(a.needReadable||a.length=E)a=E;else{a--;for(var b=1;32>b;b<<=1)a|=a>>b;a++}return a}function i(a,b){return 0===b.length&&b.ended?0:b.objectMode?0===a?0:1:isNaN(a)||B.isNull(a)?b.flowing&&b.buffer.length?b.buffer[0].length:b.length:0>=a?0:(a>b.highWaterMark&&(b.highWaterMark=h(a)),a>b.length?b.ended?b.length:(b.needReadable=!0,0):a)}function j(a,b){var c=null;return B.isBuffer(b)||B.isString(b)||B.isNullOrUndefined(b)||a.objectMode||(c=new TypeError("Invalid non-string/buffer chunk")),c}function k(a,b){if(b.decoder&&!b.ended){var c=b.decoder.end();c&&c.length&&(b.buffer.push(c),b.length+=b.objectMode?1:c.length)}b.ended=!0,l(a)}function l(a){var c=a._readableState;c.needReadable=!1,c.emittedReadable||(D("emitReadable",c.flowing),c.emittedReadable=!0,c.sync?b.nextTick(function(){m(a)}):m(a))}function m(a){D("emit readable"),a.emit("readable"),s(a)}function n(a,c){c.readingMore||(c.readingMore=!0,b.nextTick(function(){o(a,c)}))}function o(a,b){for(var c=b.length;!b.reading&&!b.flowing&&!b.ended&&b.length=e)c=f?d.join(""):y.concat(d,e),d.length=0;else if(aj&&a>i;j++){var h=d[0],l=Math.min(a-i,h.length);f?c+=h.slice(0,l):h.copy(c,i,0,l),l0)throw new Error("endReadable called on non-empty stream");c.endEmitted||(c.ended=!0,b.nextTick(function(){c.endEmitted||0!==c.length||(c.endEmitted=!0,a.readable=!1,a.emit("end"))}))}function v(a,b){for(var c=0,d=a.length;d>c;c++)b(a[c],c)}function w(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1}a.exports=e;var x=c(31),y=c(2).Buffer;e.ReadableState=d;var z=c(26).EventEmitter;z.listenerCount||(z.listenerCount=function(a,b){return a.listeners(b).length});var A=c(25),B=c(32);B.inherits=c(33);var C,D=c(34);D=D&&D.debuglog?D.debuglog("stream"):function(){},B.inherits(e,A),e.prototype.push=function(a,b){var c=this._readableState;return B.isString(a)&&!c.objectMode&&(b=b||c.defaultEncoding,b!==c.encoding&&(a=new y(a,b),b="")),f(this,c,a,b,!1)},e.prototype.unshift=function(a){var b=this._readableState;return f(this,b,a,"",!0)},e.prototype.setEncoding=function(a){return C||(C=c(37).StringDecoder),this._readableState.decoder=new C(a),this._readableState.encoding=a,this};var E=8388608;e.prototype.read=function(a){D("read",a);var b=this._readableState,c=a;if((!B.isNumber(a)||a>0)&&(b.emittedReadable=!1),0===a&&b.needReadable&&(b.length>=b.highWaterMark||b.ended))return D("read: emitReadable",b.length,b.ended),0===b.length&&b.ended?u(this):l(this),null;if(a=i(a,b),0===a&&b.ended)return 0===b.length&&u(this),null;var d=b.needReadable;D("need readable",d),(0===b.length||b.length-a0?t(a,b):null,B.isNull(e)&&(b.needReadable=!0,a=0),b.length-=a,0!==b.length||b.ended||(b.needReadable=!0),c!==a&&b.ended&&0===b.length&&u(this),B.isNull(e)||this.emit("data",e),e},e.prototype._read=function(a){this.emit("error",new Error("not implemented"))},e.prototype.pipe=function(a,c){function d(a){D("onunpipe"),a===l&&f()}function e(){D("onend"),a.end()}function f(){D("cleanup"),a.removeListener("close",i),a.removeListener("finish",j),a.removeListener("drain",q),a.removeListener("error",h),a.removeListener("unpipe",d),l.removeListener("end",e),l.removeListener("end",f),l.removeListener("data",g),!m.awaitDrain||a._writableState&&!a._writableState.needDrain||q()}function g(b){D("ondata");var c=a.write(b);!1===c&&(D("false write response, pause",l._readableState.awaitDrain),l._readableState.awaitDrain++,l.pause())}function h(b){D("onerror",b),k(),a.removeListener("error",h),0===z.listenerCount(a,"error")&&a.emit("error",b)}function i(){a.removeListener("finish",j),k()}function j(){D("onfinish"),a.removeListener("close",i),k()}function k(){D("unpipe"),l.unpipe(a)}var l=this,m=this._readableState;switch(m.pipesCount){case 0:m.pipes=a;break;case 1:m.pipes=[m.pipes,a];break;default:m.pipes.push(a)}m.pipesCount+=1,D("pipe count=%d opts=%j",m.pipesCount,c);var n=(!c||c.end!==!1)&&a!==b.stdout&&a!==b.stderr,o=n?e:f;m.endEmitted?b.nextTick(o):l.once("end",o),a.on("unpipe",d);var q=p(l);return a.on("drain",q),l.on("data",g),a._events&&a._events.error?x(a._events.error)?a._events.error.unshift(h):a._events.error=[h,a._events.error]:a.on("error",h),a.once("close",i),a.once("finish",j),a.emit("pipe",l),m.flowing||(D("pipe resume"),l.resume()),a},e.prototype.unpipe=function(a){var b=this._readableState;if(0===b.pipesCount)return this;if(1===b.pipesCount)return a&&a!==b.pipes?this:(a||(a=b.pipes),b.pipes=null,b.pipesCount=0,b.flowing=!1,a&&a.emit("unpipe",this),this);if(!a){var c=b.pipes,d=b.pipesCount;b.pipes=null,b.pipesCount=0,b.flowing=!1;for(var e=0;d>e;e++)c[e].emit("unpipe",this);return this}var e=w(b.pipes,a);return-1===e?this:(b.pipes.splice(e,1),b.pipesCount-=1,1===b.pipesCount&&(b.pipes=b.pipes[0]),a.emit("unpipe",this),this)},e.prototype.on=function(a,c){var d=A.prototype.on.call(this,a,c);if("data"===a&&!1!==this._readableState.flowing&&this.resume(),"readable"===a&&this.readable){var e=this._readableState;if(!e.readableListening)if(e.readableListening=!0,e.emittedReadable=!1,e.needReadable=!0,e.reading)e.length&&l(this,e);else{var f=this;b.nextTick(function(){D("readable nexttick read 0"),f.read(0)})}}return d},e.prototype.addListener=e.prototype.on,e.prototype.resume=function(){var a=this._readableState;return a.flowing||(D("resume"),a.flowing=!0,a.reading||(D("resume read 0"),this.read(0)),q(this,a)),this},e.prototype.pause=function(){return D("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(D("pause"),this._readableState.flowing=!1,this.emit("pause")),this},e.prototype.wrap=function(a){var b=this._readableState,c=!1,d=this;a.on("end",function(){if(D("wrapped end"),b.decoder&&!b.ended){var a=b.decoder.end();a&&a.length&&d.push(a)}d.push(null)}),a.on("data",function(e){if(D("wrapped data"),b.decoder&&(e=b.decoder.write(e)),e&&(b.objectMode||e.length)){var f=d.push(e);f||(c=!0,a.pause())}});for(var e in a)B.isFunction(a[e])&&B.isUndefined(this[e])&&(this[e]=function(b){return function(){return a[b].apply(a,arguments)}}(e));var f=["error","close","destroy","pause","resume"];return v(f,function(b){a.on(b,d.emit.bind(d,b))}),d._read=function(b){D("wrapped _read",b),c&&(c=!1,a.resume())},d},e._fromList=t}).call(b,c(30))},function(a,b){function c(){j=!1,g.length?i=g.concat(i):k=-1,i.length&&d()}function d(){if(!j){var a=setTimeout(c);j=!0;for(var b=i.length;b;){for(g=i,i=[];++k1)for(var c=1;cc;c++)b(a[c],c)}a.exports=d;var g=Object.keys||function(a){var b=[];for(var c in a)b.push(c);return b},h=c(32);h.inherits=c(33);var i=c(29),j=c(36);h.inherits(d,i),f(g(j.prototype),function(a){d.prototype[a]||(d.prototype[a]=j.prototype[a])})}).call(b,c(30))},function(a,b,c){(function(b){function d(a,b,c){this.chunk=a,this.encoding=b,this.callback=c}function e(a,b){var d=c(35);a=a||{};var e=a.highWaterMark,f=a.objectMode?16:16384;this.highWaterMark=e||0===e?e:f,this.objectMode=!!a.objectMode,b instanceof d&&(this.objectMode=this.objectMode||!!a.writableObjectMode),this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var g=a.decodeStrings===!1;this.decodeStrings=!g,this.defaultEncoding=a.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){n(b,a)},this.writecb=null,this.writelen=0,this.buffer=[],this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1}function f(a){var b=c(35);return this instanceof f||this instanceof b?(this._writableState=new e(a,this),this.writable=!0,void x.call(this)):new f(a)}function g(a,c,d){var e=new Error("write after end");a.emit("error",e),b.nextTick(function(){d(e)})}function h(a,c,d,e){var f=!0;if(!(w.isBuffer(d)||w.isString(d)||w.isNullOrUndefined(d)||c.objectMode)){var g=new TypeError("Invalid non-string/buffer chunk");a.emit("error",g),b.nextTick(function(){e(g)}),f=!1}return f}function i(a,b,c){return!a.objectMode&&a.decodeStrings!==!1&&w.isString(b)&&(b=new v(b,c)),b}function j(a,b,c,e,f){c=i(b,c,e),w.isBuffer(c)&&(e="buffer");var g=b.objectMode?1:c.length;b.length+=g;var h=b.length1){for(var c=[],d=0;d=this.charLength-this.charReceived?this.charLength-this.charReceived:a.length;if(a.copy(this.charBuffer,this.charReceived,0,c),this.charReceived+=c,this.charReceived=55296&&56319>=d)){if(this.charReceived=this.charLength=0,0===a.length)return b;break}this.charLength+=this.surrogateSize,b=""}this.detectIncompleteChar(a);var e=a.length;this.charLength&&(a.copy(this.charBuffer,0,a.length-this.charReceived,e),e-=this.charReceived),b+=a.toString(this.encoding,0,e);var e=b.length-1,d=b.charCodeAt(e);if(d>=55296&&56319>=d){var f=this.surrogateSize;return this.charLength+=f,this.charReceived+=f,this.charBuffer.copy(this.charBuffer,f,0,f),a.copy(this.charBuffer,0,0,f),b.substring(0,e)}return b},j.prototype.detectIncompleteChar=function(a){for(var b=a.length>=3?3:a.length;b>0;b--){var c=a[a.length-b];if(1==b&&c>>5==6){this.charLength=2;break}if(2>=b&&c>>4==14){this.charLength=3;break}if(3>=b&&c>>3==30){this.charLength=4;break}}this.charReceived=b},j.prototype.end=function(a){var b="";if(a&&a.length&&(b=this.write(a)),this.charReceived){var c=this.charReceived,d=this.charBuffer,e=this.encoding;b+=d.slice(0,c).toString(e)}return b}},function(a,b,c){function d(a,b){this.afterTransform=function(a,c){return e(b,a,c)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null}function e(a,b,c){var d=a._transformState;d.transforming=!1;var e=d.writecb;if(!e)return a.emit("error",new Error("no writecb in Transform class"));d.writechunk=null,d.writecb=null,i.isNullOrUndefined(c)||a.push(c),e&&e(b);var f=a._readableState;f.reading=!1,(f.needReadable||f.lengthe;c=e+=2)b=a[c],a[c]=a[c+1],a[c+1]=b;return a},a.convert=function(h){var i,j,k,l,m,n,o,p,q,r;if("string"==typeof h)return"/"+h;if(h instanceof String){for(o=h.replace(d,function(a){return c[a]}),k=!1,j=q=0,r=o.length;r>q;j=q+=1)if(o.charCodeAt(j)>127){k=!0;break}return k&&(o=g(new b("\ufeff"+o,"utf16le")).toString("binary")),"("+o+")"}if(b.isBuffer(h))return"<"+h.toString("hex")+">";if(h instanceof e)return h.toString();if(h instanceof Date)return"(D:"+f(h.getUTCFullYear(),4)+f(h.getUTCMonth(),2)+f(h.getUTCDate(),2)+f(h.getUTCHours(),2)+f(h.getUTCMinutes(),2)+f(h.getUTCSeconds(),2)+"Z)";if(Array.isArray(h))return l=function(){var b,c,d;for(d=[],b=0,c=h.length;c>b;b++)i=h[b],d.push(a.convert(i));return d}().join(" "),"["+l+"]";if("[object Object]"==={}.toString.call(h)){n=["<<"];for(m in h)p=h[m],n.push("/"+m+" "+a.convert(p));return n.push(">>"),n.join("\n")}return""+h},a}(),a.exports=d,e=c(46)}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(b){(function(){var d,e,f,g=function(a,b){return function(){return a.apply(b,arguments)}};f=c(47),e=function(){function a(a,b,c){this.document=a,this.id=b,this.data=null!=c?c:{},this.finalize=g(this.finalize,this),this.gen=0,this.deflate=null,this.compress=this.document.compress&&!this.data.Filter,this.uncompressedLength=0,this.chunks=[]}return a.prototype.initDeflate=function(){return this.data.Filter="FlateDecode",this.deflate=f.createDeflate(),this.deflate.on("data",function(a){return function(b){return a.chunks.push(b),a.data.Length+=b.length}}(this)),this.deflate.on("end",this.finalize)},a.prototype.write=function(a){var c;return b.isBuffer(a)||(a=new b(a+"\n","binary")),this.uncompressedLength+=a.length,null==(c=this.data).Length&&(c.Length=0),this.compress?(this.deflate||this.initDeflate(),this.deflate.write(a)):(this.chunks.push(a),this.data.Length+=a.length)},a.prototype.end=function(a){return("string"==typeof a||b.isBuffer(a))&&this.write(a),this.deflate?this.deflate.end():this.finalize()},a.prototype.finalize=function(){var a,b,c,e;if(this.offset=this.document._offset,this.document._write(""+this.id+" "+this.gen+" obj"),this.document._write(d.convert(this.data)),this.chunks.length){for(this.document._write("stream"),e=this.chunks,b=0,c=e.length;c>b;b++)a=e[b],this.document._write(a);this.chunks.length=0,this.document._write("\nendstream")}return this.document._write("endobj"),this.document._refEnd(this)},a.prototype.toString=function(){return""+this.id+" "+this.gen+" R"},a}(),a.exports=e,d=c(45)}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(a,d){function e(b,c,d){function e(){for(var a;null!==(a=b.read());)h.push(a),i+=a.length;b.once("readable",e)}function f(a){b.removeListener("end",g),b.removeListener("readable",e),d(a)}function g(){var c=a.concat(h,i);h=[],d(null,c),b.close()}var h=[],i=0;b.on("error",f),b.on("end",g),b.end(c),e()}function f(b,c){if("string"==typeof c&&(c=new a(c)),!a.isBuffer(c))throw new TypeError("Not a string or buffer");var d=p.Z_FINISH;return b._processChunk(c,d)}function g(a){return this instanceof g?void n.call(this,a,p.DEFLATE):new g(a)}function h(a){return this instanceof h?void n.call(this,a,p.INFLATE):new h(a)}function i(a){return this instanceof i?void n.call(this,a,p.GZIP):new i(a)}function j(a){return this instanceof j?void n.call(this,a,p.GUNZIP):new j(a)}function k(a){return this instanceof k?void n.call(this,a,p.DEFLATERAW):new k(a)}function l(a){return this instanceof l?void n.call(this,a,p.INFLATERAW):new l(a)}function m(a){return this instanceof m?void n.call(this,a,p.UNZIP):new m(a)}function n(c,d){if(this._opts=c=c||{},this._chunkSize=c.chunkSize||b.Z_DEFAULT_CHUNK,o.call(this,c),c.flush&&c.flush!==p.Z_NO_FLUSH&&c.flush!==p.Z_PARTIAL_FLUSH&&c.flush!==p.Z_SYNC_FLUSH&&c.flush!==p.Z_FULL_FLUSH&&c.flush!==p.Z_FINISH&&c.flush!==p.Z_BLOCK)throw new Error("Invalid flush flag: "+c.flush);if(this._flushFlag=c.flush||p.Z_NO_FLUSH,c.chunkSize&&(c.chunkSizeb.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+c.chunkSize);if(c.windowBits&&(c.windowBitsb.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+c.windowBits);if(c.level&&(c.levelb.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+c.level);if(c.memLevel&&(c.memLevelb.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+c.memLevel);if(c.strategy&&c.strategy!=b.Z_FILTERED&&c.strategy!=b.Z_HUFFMAN_ONLY&&c.strategy!=b.Z_RLE&&c.strategy!=b.Z_FIXED&&c.strategy!=b.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+c.strategy);if(c.dictionary&&!a.isBuffer(c.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new p.Zlib(d);var e=this;this._hadError=!1,this._binding.onerror=function(a,c){e._binding=null,e._hadError=!0;var d=new Error(a);d.errno=c,d.code=b.codes[c],e.emit("error",d)};var f=b.Z_DEFAULT_COMPRESSION;"number"==typeof c.level&&(f=c.level);var g=b.Z_DEFAULT_STRATEGY;"number"==typeof c.strategy&&(g=c.strategy),this._binding.init(c.windowBits||b.Z_DEFAULT_WINDOWBITS,f,c.memLevel||b.Z_DEFAULT_MEMLEVEL,g,c.dictionary),this._buffer=new a(this._chunkSize),this._offset=0,this._closed=!1,this._level=f,this._strategy=g,this.once("end",this.close)}var o=c(42),p=c(48),q=c(60),r=c(63).ok;p.Z_MIN_WINDOWBITS=8,p.Z_MAX_WINDOWBITS=15,p.Z_DEFAULT_WINDOWBITS=15,p.Z_MIN_CHUNK=64,p.Z_MAX_CHUNK=1/0,p.Z_DEFAULT_CHUNK=16384,p.Z_MIN_MEMLEVEL=1,p.Z_MAX_MEMLEVEL=9,p.Z_DEFAULT_MEMLEVEL=8,p.Z_MIN_LEVEL=-1,p.Z_MAX_LEVEL=9,p.Z_DEFAULT_LEVEL=p.Z_DEFAULT_COMPRESSION,Object.keys(p).forEach(function(a){ -a.match(/^Z/)&&(b[a]=p[a])}),b.codes={Z_OK:p.Z_OK,Z_STREAM_END:p.Z_STREAM_END,Z_NEED_DICT:p.Z_NEED_DICT,Z_ERRNO:p.Z_ERRNO,Z_STREAM_ERROR:p.Z_STREAM_ERROR,Z_DATA_ERROR:p.Z_DATA_ERROR,Z_MEM_ERROR:p.Z_MEM_ERROR,Z_BUF_ERROR:p.Z_BUF_ERROR,Z_VERSION_ERROR:p.Z_VERSION_ERROR},Object.keys(b.codes).forEach(function(a){b.codes[b.codes[a]]=a}),b.Deflate=g,b.Inflate=h,b.Gzip=i,b.Gunzip=j,b.DeflateRaw=k,b.InflateRaw=l,b.Unzip=m,b.createDeflate=function(a){return new g(a)},b.createInflate=function(a){return new h(a)},b.createDeflateRaw=function(a){return new k(a)},b.createInflateRaw=function(a){return new l(a)},b.createGzip=function(a){return new i(a)},b.createGunzip=function(a){return new j(a)},b.createUnzip=function(a){return new m(a)},b.deflate=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new g(b),a,c)},b.deflateSync=function(a,b){return f(new g(b),a)},b.gzip=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new i(b),a,c)},b.gzipSync=function(a,b){return f(new i(b),a)},b.deflateRaw=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new k(b),a,c)},b.deflateRawSync=function(a,b){return f(new k(b),a)},b.unzip=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new m(b),a,c)},b.unzipSync=function(a,b){return f(new m(b),a)},b.inflate=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new h(b),a,c)},b.inflateSync=function(a,b){return f(new h(b),a)},b.gunzip=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new j(b),a,c)},b.gunzipSync=function(a,b){return f(new j(b),a)},b.inflateRaw=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new l(b),a,c)},b.inflateRawSync=function(a,b){return f(new l(b),a)},q.inherits(n,o),n.prototype.params=function(a,c,e){if(ab.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+a);if(c!=b.Z_FILTERED&&c!=b.Z_HUFFMAN_ONLY&&c!=b.Z_RLE&&c!=b.Z_FIXED&&c!=b.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+c);if(this._level!==a||this._strategy!==c){var f=this;this.flush(p.Z_SYNC_FLUSH,function(){f._binding.params(a,c),f._hadError||(f._level=a,f._strategy=c,e&&e())})}else d.nextTick(e)},n.prototype.reset=function(){return this._binding.reset()},n.prototype._flush=function(b){this._transform(new a(0),"",b)},n.prototype.flush=function(b,c){var e=this._writableState;if(("function"==typeof b||void 0===b&&!c)&&(c=b,b=p.Z_FULL_FLUSH),e.ended)c&&d.nextTick(c);else if(e.ending)c&&this.once("end",c);else if(e.needDrain){var f=this;this.once("drain",function(){f.flush(c)})}else this._flushFlag=b,this.write(new a(0),"",c)},n.prototype.close=function(a){if(a&&d.nextTick(a),!this._closed){this._closed=!0,this._binding.close();var b=this;d.nextTick(function(){b.emit("close")})}},n.prototype._transform=function(b,c,d){var e,f=this._writableState,g=f.ending||f.ended,h=g&&(!b||f.length===b.length);if(null===!b&&!a.isBuffer(b))return d(new Error("invalid input"));h?e=p.Z_FINISH:(e=this._flushFlag,b.length>=f.length&&(this._flushFlag=this._opts.flush||p.Z_NO_FLUSH));this._processChunk(b,e,d)},n.prototype._processChunk=function(b,c,d){function e(k,n){if(!i._hadError){var o=g-n;if(r(o>=0,"have should not go down"),o>0){var p=i._buffer.slice(i._offset,i._offset+o);i._offset+=o,j?i.push(p):(l.push(p),m+=p.length)}if((0===n||i._offset>=i._chunkSize)&&(g=i._chunkSize,i._offset=0,i._buffer=new a(i._chunkSize)),0===n){if(h+=f-k,f=k,!j)return!0;var q=i._binding.write(c,b,h,f,i._buffer,i._offset,i._chunkSize);return q.callback=e,void(q.buffer=b)}return j?void d():!1}}var f=b&&b.length,g=this._chunkSize-this._offset,h=0,i=this,j="function"==typeof d;if(!j){var k,l=[],m=0;this.on("error",function(a){k=a});do var n=this._binding.writeSync(c,b,h,f,this._buffer,this._offset,g);while(!this._hadError&&e(n[0],n[1]));if(this._hadError)throw k;var o=a.concat(l,m);return this.close(),o}var p=this._binding.write(c,b,h,f,this._buffer,this._offset,g);p.buffer=b,p.callback=e},q.inherits(g,n),q.inherits(h,n),q.inherits(i,n),q.inherits(j,n),q.inherits(k,n),q.inherits(l,n),q.inherits(m,n)}).call(b,c(2).Buffer,c(30))},function(a,b,c){(function(a,d){function e(a){if(ab.UNZIP)throw new TypeError("Bad argument");this.mode=a,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function f(a,b){for(var c=0;c4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(C.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){D._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,C.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=E(a.adler,b,e,c):2===a.state.wrap&&(a.adler=F(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-ja?a.strstart-(a.w_size-ja):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ia,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&m>f);if(d=ia-(m-f),f=m-ia,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-ja)){C.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=ha)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===H)return sa;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return sa;if(a.strstart-a.block_start>=a.w_size-ja&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?sa:sa}function o(a,b){for(var c,d;;){if(a.lookahead=ha&&(a.ins_h=(a.ins_h<=ha)if(d=D._tr_tally(a,a.strstart-a.match_start,a.match_length-ha),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=ha){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<=ha&&(a.ins_h=(a.ins_h<4096)&&(a.match_length=ha-1)),a.prev_length>=ha&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-ha,d=D._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-ha),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<=ha&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ia;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&f>e);a.match_length=ia-(f-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=ha?(c=D._tr_tally(a,1,a.match_length-ha),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sa:ta}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===H)return sa;break}if(a.match_length=0,c=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sa:ta}function s(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=B[a.level].max_lazy,a.good_match=B[a.level].good_length,a.nice_match=B[a.level].nice_length,a.max_chain_length=B[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=ha-1,a.match_available=0,a.ins_h=0}function t(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Y,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new C.Buf16(2*fa),this.dyn_dtree=new C.Buf16(2*(2*da+1)),this.bl_tree=new C.Buf16(2*(2*ea+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new C.Buf16(ga+1),this.heap=new C.Buf16(2*ca+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new C.Buf16(2*ca+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function u(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=X,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?la:qa,a.adler=2===b.wrap?0:1,b.last_flush=H,D._tr_init(b),M):d(a,O)}function v(a){var b=u(a);return b===M&&s(a.state),b}function w(a,b){return a&&a.state?2!==a.state.wrap?O:(a.state.gzhead=b,M):O}function x(a,b,c,e,f,g){if(!a)return O;var h=1;if(b===R&&(b=6),0>e?(h=0,e=-e):e>15&&(h=2,e-=16),1>f||f>Z||c!==Y||8>e||e>15||0>b||b>9||0>g||g>V)return d(a,O);8===e&&(e=9);var i=new t;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<>1,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,v(a)}function y(a,b){return x(a,b,Y,$,_,W)}function z(a,b){var c,h,k,l;if(!a||!a.state||b>L||0>b)return a?d(a,O):O;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===ra&&b!==K)return d(a,0===a.avail_out?Q:O);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===la)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=T||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=F(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=ma):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=T||h.level<2?4:0),i(h,wa),h.status=qa);else{var m=Y+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=T||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=ka),m+=31-m%31,h.status=qa,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===ma)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=na)}else h.status=na;if(h.status===na)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindexk&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=oa)}else h.status=oa;if(h.status===oa)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindexk&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=pa)}else h.status=pa;if(h.status===pa&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=qa)):h.status=qa),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,M}else if(0===a.avail_in&&e(b)<=e(c)&&b!==K)return d(a,Q);if(h.status===ra&&0!==a.avail_in)return d(a,Q);if(0!==a.avail_in||0!==h.lookahead||b!==H&&h.status!==ra){var o=h.strategy===T?r(h,b):h.strategy===U?q(h,b):B[h.level].func(h,b);if(o!==ua&&o!==va||(h.status=ra),o===sa||o===ua)return 0===a.avail_out&&(h.last_flush=-1),M;if(o===ta&&(b===I?D._tr_align(h):b!==L&&(D._tr_stored_block(h,0,0,!1),b===J&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,M}return b!==K?M:h.wrap<=0?N:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?M:N)}function A(a){var b;return a&&a.state?(b=a.state.status,b!==la&&b!==ma&&b!==na&&b!==oa&&b!==pa&&b!==qa&&b!==ra?d(a,O):(a.state=null,b===qa?d(a,P):M)):O}var B,C=c(52),D=c(53),E=c(54),F=c(55),G=c(49),H=0,I=1,J=3,K=4,L=5,M=0,N=1,O=-2,P=-3,Q=-5,R=-1,S=1,T=2,U=3,V=4,W=0,X=2,Y=8,Z=9,$=15,_=8,aa=29,ba=256,ca=ba+1+aa,da=30,ea=19,fa=2*ca+1,ga=15,ha=3,ia=258,ja=ia+ha+1,ka=32,la=42,ma=69,na=73,oa=91,pa=103,qa=113,ra=666,sa=1,ta=2,ua=3,va=4,wa=3,xa=function(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e};B=[new xa(0,0,0,0,n),new xa(4,4,8,4,o),new xa(4,5,16,8,o),new xa(4,6,32,32,o),new xa(4,4,16,16,p),new xa(8,16,32,32,p),new xa(8,16,128,128,p),new xa(8,32,128,256,p),new xa(32,128,258,1024,p),new xa(32,258,258,4096,p)],b.deflateInit=y,b.deflateInit2=x,b.deflateReset=v,b.deflateResetKeep=u,b.deflateSetHeader=w,b.deflate=z,b.deflateEnd=A,b.deflateInfo="pako deflate (from Nodeca project)"},function(a,b){"use strict";var c="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;b.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},b.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var d={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(d=0,b=0,c=a.length;c>b;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;c>b;b++)f=a[b],g.set(f,e),e+=f.length;return g}},e={arraySet:function(a,b,c,d,e){for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};b.setTyped=function(a){a?(b.Buf8=Uint8Array,b.Buf16=Uint16Array,b.Buf32=Int32Array,b.assign(b,d)):(b.Buf8=Array,b.Buf16=Array,b.Buf32=Array,b.assign(b,e))},b.setTyped(c)},function(a,b,c){"use strict";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a){return 256>a?ga[a]:ga[256+(a>>>7)]}function f(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function g(a,b,c){a.bi_valid>V-c?(a.bi_buf|=b<>V-a.bi_valid,a.bi_valid+=c-V):(a.bi_buf|=b<>>=1,c<<=1;while(--b>0);return c>>>1}function j(a){16===a.bi_valid?(f(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function k(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;U>=f;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,c=a.heap_max+1;T>c;c++)d=a.heap[c],f=i[2*i[2*d+1]+1]+1,f>o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function l(a,b,c){var d,e,f=new Array(U+1),g=0;for(d=1;U>=d;d++)f[d]=g=g+c[d-1]<<1;for(e=0;b>=e;e++){var h=a[2*e+1];0!==h&&(a[2*e]=i(f[h]++,h))}}function m(){var a,b,c,d,e,f=new Array(U+1);for(c=0,d=0;O-1>d;d++)for(ia[d]=c,a=0;a<1<<_[d];a++)ha[c++]=d;for(ha[c-1]=d,e=0,d=0;16>d;d++)for(ja[d]=e,a=0;a<1<>=7;R>d;d++)for(ja[d]=e<<7,a=0;a<1<=b;b++)f[b]=0;for(a=0;143>=a;)ea[2*a+1]=8,a++,f[8]++;for(;255>=a;)ea[2*a+1]=9,a++,f[9]++;for(;279>=a;)ea[2*a+1]=7,a++,f[7]++;for(;287>=a;)ea[2*a+1]=8,a++,f[8]++;for(l(ea,Q+1,f),a=0;R>a;a++)fa[2*a+1]=5,fa[2*a]=i(a,5);ka=new na(ea,_,P+1,Q,U),la=new na(fa,aa,0,R,U),ma=new na(new Array(0),ba,0,S,W)}function n(a){var b;for(b=0;Q>b;b++)a.dyn_ltree[2*b]=0;for(b=0;R>b;b++)a.dyn_dtree[2*b]=0;for(b=0;S>b;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*X]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function o(a){a.bi_valid>8?f(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function p(a,b,c,d){o(a),d&&(f(a,c),f(a,~c)),E.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function q(a,b,c,d){var e=2*b,f=2*c;return a[e]c;c++)0!==f[2*c]?(a.heap[++a.heap_len]=j=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)e=a.heap[++a.heap_len]=2>j?++j:0,f[2*e]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=j,c=a.heap_len>>1;c>=1;c--)r(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],r(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,r(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],k(a,b),l(f,j,a.bl_count)}function u(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;c>=d;d++)e=g,g=b[2*(d+1)+1],++hh?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[2*Y]++):10>=h?a.bl_tree[2*Z]++:a.bl_tree[2*$]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function v(a,b,c){var d,e,f=-1,i=b[1],j=0,k=7,l=4;for(0===i&&(k=138,l=3),d=0;c>=d;d++)if(e=i,i=b[2*(d+1)+1],!(++jj){do h(a,e,a.bl_tree);while(0!==--j)}else 0!==e?(e!==f&&(h(a,e,a.bl_tree),j--),h(a,Y,a.bl_tree),g(a,j-3,2)):10>=j?(h(a,Z,a.bl_tree),g(a,j-3,3)):(h(a,$,a.bl_tree),g(a,j-11,7));j=0,f=e,0===i?(k=138,l=3):e===i?(k=6,l=3):(k=7,l=4)}}function w(a){var b;for(u(a,a.dyn_ltree,a.l_desc.max_code),u(a,a.dyn_dtree,a.d_desc.max_code),t(a,a.bl_desc),b=S-1;b>=3&&0===a.bl_tree[2*ca[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function x(a,b,c,d){var e;for(g(a,b-257,5),g(a,c-1,5),g(a,d-4,4),e=0;d>e;e++)g(a,a.bl_tree[2*ca[e]+1],3);v(a,a.dyn_ltree,b-1),v(a,a.dyn_dtree,c-1)}function y(a){var b,c=4093624447;for(b=0;31>=b;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return G;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return H;for(b=32;P>b;b++)if(0!==a.dyn_ltree[2*b])return H;return G}function z(a){pa||(m(),pa=!0),a.l_desc=new oa(a.dyn_ltree,ka),a.d_desc=new oa(a.dyn_dtree,la),a.bl_desc=new oa(a.bl_tree,ma),a.bi_buf=0,a.bi_valid=0,n(a)}function A(a,b,c,d){g(a,(J<<1)+(d?1:0),3),p(a,b,c,!0)}function B(a){g(a,K<<1,3),h(a,X,ea),j(a)}function C(a,b,c,d){var e,f,h=0;a.level>0?(a.strm.data_type===I&&(a.strm.data_type=y(a)),t(a,a.l_desc),t(a,a.d_desc),h=w(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,e>=f&&(e=f)):e=f=c+5,e>=c+4&&-1!==b?A(a,b,c,d):a.strategy===F||f===e?(g(a,(K<<1)+(d?1:0),3),s(a,ea,fa)):(g(a,(L<<1)+(d?1:0),3),x(a,a.l_desc.max_code+1,a.d_desc.max_code+1,h+1),s(a,a.dyn_ltree,a.dyn_dtree)),n(a),d&&o(a)}function D(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(ha[c]+P+1)]++,a.dyn_dtree[2*e(b)]++),a.last_lit===a.lit_bufsize-1}var E=c(52),F=4,G=0,H=1,I=2,J=0,K=1,L=2,M=3,N=258,O=29,P=256,Q=P+1+O,R=30,S=19,T=2*Q+1,U=15,V=16,W=7,X=256,Y=16,Z=17,$=18,_=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],aa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ba=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ca=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],da=512,ea=new Array(2*(Q+2));d(ea);var fa=new Array(2*R);d(fa);var ga=new Array(da);d(ga);var ha=new Array(N-M+1);d(ha);var ia=new Array(O);d(ia);var ja=new Array(R);d(ja);var ka,la,ma,na=function(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length},oa=function(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b},pa=!1;b._tr_init=z,b._tr_stored_block=A,b._tr_flush_block=C,b._tr_tally=D,b._tr_align=B},function(a,b){"use strict";function c(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0}a.exports=c},function(a,b){"use strict";function c(){for(var a,b=[],c=0;256>c;c++){a=c;for(var d=0;8>d;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function d(a,b,c,d){var f=e,g=d+c;a=-1^a;for(var h=d;g>h;h++)a=a>>>8^f[255&(a^b[h])];return-1^a}var e=c();a.exports=d},function(a,b,c){"use strict";function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=K,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new r.Buf32(oa),b.distcode=b.distdyn=new r.Buf32(pa),b.sane=1,b.back=-1,C):F}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):F}function h(a,b){var c,d;return a&&a.state?(d=a.state,0>b?(c=0,b=-b):(c=(b>>4)+1,48>b&&(b&=15)),b&&(8>b||b>15)?F:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):F}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==C&&(a.state=null),c):F}function j(a){return i(a,ra)}function k(a){if(sa){var b;for(p=new r.Buf32(512),q=new r.Buf32(32),b=0;144>b;)a.lens[b++]=8;for(;256>b;)a.lens[b++]=9;for(;280>b;)a.lens[b++]=7;for(;288>b;)a.lens[b++]=8;for(v(x,a.lens,0,288,p,0,a.work,{bits:9}),b=0;32>b;)a.lens[b++]=5;v(y,a.lens,0,32,q,0,a.work,{bits:5}),sa=!1}a.lencode=p,a.lenbits=9,a.distcode=q,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<=f.wsize?(r.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),r.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(r.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whaven;){if(0===i)break a; -i--,m+=e[g++]<>>8&255,c.check=t(c.check,Ba,2,0),m=0,n=0,c.mode=L;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg="incorrect header check",c.mode=la;break}if((15&m)!==J){a.msg="unknown compression method",c.mode=la;break}if(m>>>=4,n-=4,wa=(15&m)+8,0===c.wbits)c.wbits=wa;else if(wa>c.wbits){a.msg="invalid window size",c.mode=la;break}c.dmax=1<n;){if(0===i)break a;i--,m+=e[g++]<>8&1),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=t(c.check,Ba,2,0)),m=0,n=0,c.mode=M;case M:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<>>8&255,Ba[2]=m>>>16&255,Ba[3]=m>>>24&255,c.check=t(c.check,Ba,4,0)),m=0,n=0,c.mode=N;case N:for(;16>n;){if(0===i)break a;i--,m+=e[g++]<>8),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=t(c.check,Ba,2,0)),m=0,n=0,c.mode=O;case O:if(1024&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<>>8&255,c.check=t(c.check,Ba,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=P;case P:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wa=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),r.arraySet(c.head.extra,e,g,q,wa)),512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=Q;case Q:if(2048&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.name+=String.fromCharCode(wa));while(wa&&i>q);if(512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.name=null);c.length=0,c.mode=R;case R:if(4096&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.comment+=String.fromCharCode(wa));while(wa&&i>q);if(512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.comment=null);c.mode=S;case S:if(512&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=V;break;case T:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<>>=7&n,n-=7&n,c.mode=ia;break}for(;3>n;){if(0===i)break a;i--,m+=e[g++]<>>=1,n-=1,3&m){case 0:c.mode=X;break;case 1:if(k(c),c.mode=ba,b===B){m>>>=2,n-=2;break a}break;case 2:c.mode=$;break;case 3:a.msg="invalid block type",c.mode=la}m>>>=2,n-=2;break;case X:for(m>>>=7&n,n-=7&n;32>n;){if(0===i)break a;i--,m+=e[g++]<>>16^65535)){a.msg="invalid stored block lengths",c.mode=la;break}if(c.length=65535&m,m=0,n=0,c.mode=Y,b===B)break a;case Y:c.mode=Z;case Z:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;r.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=V;break;case $:for(;14>n;){if(0===i)break a;i--,m+=e[g++]<>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=la;break}c.have=0,c.mode=_;case _:for(;c.haven;){if(0===i)break a;i--,m+=e[g++]<>>=3,n-=3}for(;c.have<19;)c.lens[Ca[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ya={bits:c.lenbits},xa=v(w,c.lens,0,19,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid code lengths set",c.mode=la;break}c.have=0,c.mode=aa;case aa:for(;c.have>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<sa)m>>>=qa,n-=qa,c.lens[c.have++]=sa;else{if(16===sa){for(za=qa+2;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=qa,n-=qa,0===c.have){a.msg="invalid bit length repeat",c.mode=la;break}wa=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sa){for(za=qa+3;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=qa,n-=qa,wa=0,q=3+(7&m),m>>>=3,n-=3}else{for(za=qa+7;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=qa,n-=qa,wa=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=la;break}for(;q--;)c.lens[c.have++]=wa}}if(c.mode===la)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=la;break}if(c.lenbits=9,ya={bits:c.lenbits},xa=v(x,c.lens,0,c.nlen,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid literal/lengths set",c.mode=la;break}if(c.distbits=6,c.distcode=c.distdyn,ya={bits:c.distbits},xa=v(y,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ya),c.distbits=ya.bits,xa){a.msg="invalid distances set",c.mode=la;break}if(c.mode=ba,b===B)break a;case ba:c.mode=ca;case ca:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,u(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===V&&(c.back=-1);break}for(c.back=0;Aa=c.lencode[m&(1<>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=ta+qa);){if(0===i)break a;i--,m+=e[g++]<>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,c.length=sa,0===ra){c.mode=ha;break}if(32&ra){c.back=-1,c.mode=V;break}if(64&ra){a.msg="invalid literal/length code",c.mode=la;break}c.extra=15&ra,c.mode=da;case da:if(c.extra){for(za=c.extra;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=ea;case ea:for(;Aa=c.distcode[m&(1<>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=ta+qa);){if(0===i)break a;i--,m+=e[g++]<>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,64&ra){a.msg="invalid distance code",c.mode=la;break}c.offset=sa,c.extra=15&ra,c.mode=fa;case fa:if(c.extra){for(za=c.extra;za>n;){if(0===i)break a;i--,m+=e[g++]<>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=la;break}c.mode=ga;case ga:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=la;break}q>c.wnext?(q-=c.wnext,oa=c.wsize-q):oa=c.wnext-q,q>c.length&&(q=c.length),pa=c.window}else pa=f,oa=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pa[oa++];while(--q);0===c.length&&(c.mode=ca);break;case ha:if(0===j)break a;f[h++]=c.length,j--,c.mode=ca;break;case ia:if(c.wrap){for(;32>n;){if(0===i)break a;i--,m|=e[g++]<n;){if(0===i)break a;i--,m+=e[g++]<q&&(p+=B[f++]<>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<q&&(p+=B[f++]<>>=w,q-=w),15>q&&(p+=B[f++]<>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<q&&(p+=B[f++]<q&&(p+=B[f++]<k){a.msg="invalid distance too far back",e.mode=c;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&e.sane){a.msg="invalid distance too far back",e.mode=c;break a}if(z=0,A=o,0===n){if(z+=l-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}else if(w>n){if(z+=l+n-w,w-=n,x>w){x-=w;do C[h++]=o[z++];while(--w);if(z=0,x>n){w=n,x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}}else if(z+=n-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}for(;x>2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(g>f&&j>h);x=q>>3,f-=x,q-=x<<3,p&=(1<f?5+(g-f):5-(f-g),a.avail_out=j>h?257+(j-h):257-(h-j),e.hold=p,e.bits=q}},function(a,b,c){"use strict";var d=c(52),e=15,f=852,g=592,h=0,i=1,j=2,k=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],l=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],m=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],n=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];a.exports=function(a,b,c,o,p,q,r,s){var t,u,v,w,x,y,z,A,B,C=s.bits,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=null,O=0,P=new d.Buf16(e+1),Q=new d.Buf16(e+1),R=null,S=0;for(D=0;e>=D;D++)P[D]=0;for(E=0;o>E;E++)P[b[c+E]]++;for(H=C,G=e;G>=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;G>F&&0===P[F];F++);for(F>H&&(H=F),K=1,D=1;e>=D;D++)if(K<<=1,K-=P[D],0>K)return-1;if(K>0&&(a===h||1!==G))return-1;for(Q[1]=0,D=1;e>D;D++)Q[D+1]=Q[D]+P[D];for(E=0;o>E;E++)0!==b[c+E]&&(r[Q[b[c+E]]++]=E);if(a===h?(N=R=r,y=19):a===i?(N=k,O-=257,R=l,S-=257,y=256):(N=m,R=n,y=-1),M=0,E=0,D=F,x=q,I=H,J=0,v=-1,L=1<f||a===j&&L>g)return 1;for(var T=0;;){T++,z=D-J,r[E]y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[c+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<I+J&&(K-=P[I+J],!(0>=K));)I++,K<<=1;if(L+=1<f||a===j&&L>g)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},function(a,b){a.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(a,b,c){(function(a,d){function e(a,c){var d={seen:[],stylize:g};return arguments.length>=3&&(d.depth=arguments[2]),arguments.length>=4&&(d.colors=arguments[3]),p(c)?d.showHidden=c:c&&b._extend(d,c),v(d.showHidden)&&(d.showHidden=!1),v(d.depth)&&(d.depth=2),v(d.colors)&&(d.colors=!1),v(d.customInspect)&&(d.customInspect=!0),d.colors&&(d.stylize=f),i(d,a,d.depth)}function f(a,b){var c=e.styles[b];return c?"["+e.colors[c][0]+"m"+a+"["+e.colors[c][1]+"m":a}function g(a,b){return a}function h(a){var b={};return a.forEach(function(a,c){b[a]=!0}),b}function i(a,c,d){if(a.customInspect&&c&&A(c.inspect)&&c.inspect!==b.inspect&&(!c.constructor||c.constructor.prototype!==c)){var e=c.inspect(d,a);return t(e)||(e=i(a,e,d)),e}var f=j(a,c);if(f)return f;var g=Object.keys(c),p=h(g);if(a.showHidden&&(g=Object.getOwnPropertyNames(c)),z(c)&&(g.indexOf("message")>=0||g.indexOf("description")>=0))return k(c);if(0===g.length){if(A(c)){var q=c.name?": "+c.name:"";return a.stylize("[Function"+q+"]","special")}if(w(c))return a.stylize(RegExp.prototype.toString.call(c),"regexp");if(y(c))return a.stylize(Date.prototype.toString.call(c),"date");if(z(c))return k(c)}var r="",s=!1,u=["{","}"];if(o(c)&&(s=!0,u=["[","]"]),A(c)){var v=c.name?": "+c.name:"";r=" [Function"+v+"]"}if(w(c)&&(r=" "+RegExp.prototype.toString.call(c)),y(c)&&(r=" "+Date.prototype.toUTCString.call(c)),z(c)&&(r=" "+k(c)),0===g.length&&(!s||0==c.length))return u[0]+r+u[1];if(0>d)return w(c)?a.stylize(RegExp.prototype.toString.call(c),"regexp"):a.stylize("[Object]","special");a.seen.push(c);var x;return x=s?l(a,c,d,p,g):g.map(function(b){return m(a,c,d,p,b,s)}),a.seen.pop(),n(x,r,u)}function j(a,b){if(v(b))return a.stylize("undefined","undefined");if(t(b)){var c="'"+JSON.stringify(b).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(c,"string")}return s(b)?a.stylize(""+b,"number"):p(b)?a.stylize(""+b,"boolean"):q(b)?a.stylize("null","null"):void 0}function k(a){return"["+Error.prototype.toString.call(a)+"]"}function l(a,b,c,d,e){for(var f=[],g=0,h=b.length;h>g;++g)F(b,String(g))?f.push(m(a,b,c,d,String(g),!0)):f.push("");return e.forEach(function(e){e.match(/^\d+$/)||f.push(m(a,b,c,d,e,!0))}),f}function m(a,b,c,d,e,f){var g,h,j;if(j=Object.getOwnPropertyDescriptor(b,e)||{value:b[e]},j.get?h=j.set?a.stylize("[Getter/Setter]","special"):a.stylize("[Getter]","special"):j.set&&(h=a.stylize("[Setter]","special")),F(d,e)||(g="["+e+"]"),h||(a.seen.indexOf(j.value)<0?(h=q(c)?i(a,j.value,null):i(a,j.value,c-1),h.indexOf("\n")>-1&&(h=f?h.split("\n").map(function(a){return" "+a}).join("\n").substr(2):"\n"+h.split("\n").map(function(a){return" "+a}).join("\n"))):h=a.stylize("[Circular]","special")),v(g)){if(f&&e.match(/^\d+$/))return h;g=JSON.stringify(""+e),g.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(g=g.substr(1,g.length-2),g=a.stylize(g,"name")):(g=g.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),g=a.stylize(g,"string"))}return g+": "+h}function n(a,b,c){var d=0,e=a.reduce(function(a,b){return d++,b.indexOf("\n")>=0&&d++,a+b.replace(/\u001b\[\d\d?m/g,"").length+1},0);return e>60?c[0]+(""===b?"":b+"\n ")+" "+a.join(",\n ")+" "+c[1]:c[0]+b+" "+a.join(", ")+" "+c[1]}function o(a){return Array.isArray(a)}function p(a){return"boolean"==typeof a}function q(a){return null===a}function r(a){return null==a}function s(a){return"number"==typeof a}function t(a){return"string"==typeof a}function u(a){return"symbol"==typeof a}function v(a){return void 0===a}function w(a){return x(a)&&"[object RegExp]"===C(a)}function x(a){return"object"==typeof a&&null!==a}function y(a){return x(a)&&"[object Date]"===C(a)}function z(a){return x(a)&&("[object Error]"===C(a)||a instanceof Error)}function A(a){return"function"==typeof a}function B(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function C(a){return Object.prototype.toString.call(a)}function D(a){return 10>a?"0"+a.toString(10):a.toString(10)}function E(){var a=new Date,b=[D(a.getHours()),D(a.getMinutes()),D(a.getSeconds())].join(":");return[a.getDate(),J[a.getMonth()],b].join(" ")}function F(a,b){return Object.prototype.hasOwnProperty.call(a,b)}var G=/%[sdj%]/g;b.format=function(a){if(!t(a)){for(var b=[],c=0;c=f)return a;switch(a){case"%s":return String(d[c++]);case"%d":return Number(d[c++]);case"%j":try{return JSON.stringify(d[c++])}catch(b){return"[Circular]"}default:return a}}),h=d[c];f>c;h=d[++c])g+=q(h)||!x(h)?" "+h:" "+e(h);return g},b.deprecate=function(c,e){function f(){if(!g){if(d.throwDeprecation)throw new Error(e);d.traceDeprecation?console.trace(e):console.error(e),g=!0}return c.apply(this,arguments)}if(v(a.process))return function(){return b.deprecate(c,e).apply(this,arguments)};if(d.noDeprecation===!0)return c;var g=!1;return f};var H,I={};b.debuglog=function(a){if(v(H)&&(H=d.env.NODE_DEBUG||""),a=a.toUpperCase(),!I[a])if(new RegExp("\\b"+a+"\\b","i").test(H)){var c=d.pid;I[a]=function(){var d=b.format.apply(b,arguments);console.error("%s %d: %s",a,c,d)}}else I[a]=function(){};return I[a]},b.inspect=e,e.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},e.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},b.isArray=o,b.isBoolean=p,b.isNull=q,b.isNullOrUndefined=r,b.isNumber=s,b.isString=t,b.isSymbol=u,b.isUndefined=v,b.isRegExp=w,b.isObject=x,b.isDate=y,b.isError=z,b.isFunction=A,b.isPrimitive=B,b.isBuffer=c(61);var J=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];b.log=function(){console.log("%s - %s",E(),b.format.apply(b,arguments))},b.inherits=c(62),b._extend=function(a,b){if(!b||!x(b))return a;for(var c=Object.keys(b),d=c.length;d--;)a[c[d]]=b[c[d]];return a}}).call(b,function(){return this}(),c(30))},function(a,b){a.exports=function(a){return a&&"object"==typeof a&&"function"==typeof a.copy&&"function"==typeof a.fill&&"function"==typeof a.readUInt8}},function(a,b){"function"==typeof Object.create?a.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:a.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},function(a,b,c){function d(a,b){return n.isUndefined(b)?""+b:n.isNumber(b)&&!isFinite(b)?b.toString():n.isFunction(b)||n.isRegExp(b)?b.toString():b}function e(a,b){return n.isString(a)?a.length=0;f--)if(g[f]!=h[f])return!1;for(f=g.length-1;f>=0;f--)if(e=g[f],!i(a[e],b[e]))return!1;return!0}function l(a,b){return a&&b?"[object RegExp]"==Object.prototype.toString.call(b)?b.test(a):a instanceof b?!0:b.call({},a)===!0:!1}function m(a,b,c,d){var e;n.isString(c)&&(d=c,c=null);try{b()}catch(f){e=f}if(d=(c&&c.name?" ("+c.name+").":".")+(d?" "+d:"."),a&&!e&&g(e,c,"Missing expected exception"+d),!a&&l(e,c)&&g(e,c,"Got unwanted exception"+d),a&&e&&c&&!l(e,c)||!a&&e)throw e}var n=c(60),o=Array.prototype.slice,p=Object.prototype.hasOwnProperty,q=a.exports=h;q.AssertionError=function(a){this.name="AssertionError",this.actual=a.actual,this.expected=a.expected,this.operator=a.operator,a.message?(this.message=a.message,this.generatedMessage=!1):(this.message=f(this),this.generatedMessage=!0);var b=a.stackStartFunction||g;if(Error.captureStackTrace)Error.captureStackTrace(this,b);else{var c=new Error;if(c.stack){var d=c.stack,e=b.name,h=d.indexOf("\n"+e);if(h>=0){var i=d.indexOf("\n",h+1);d=d.substring(i+1)}this.stack=d}}},n.inherits(q.AssertionError,Error),q.fail=g,q.ok=h,q.equal=function(a,b,c){a!=b&&g(a,b,c,"==",q.equal)},q.notEqual=function(a,b,c){a==b&&g(a,b,c,"!=",q.notEqual)},q.deepEqual=function(a,b,c){i(a,b)||g(a,b,c,"deepEqual",q.deepEqual)},q.notDeepEqual=function(a,b,c){i(a,b)&&g(a,b,c,"notDeepEqual",q.notDeepEqual)},q.strictEqual=function(a,b,c){a!==b&&g(a,b,c,"===",q.strictEqual)},q.notStrictEqual=function(a,b,c){a===b&&g(a,b,c,"!==",q.notStrictEqual)},q["throws"]=function(a,b,c){m.apply(this,[!0].concat(o.call(arguments)))},q.doesNotThrow=function(a,b){m.apply(this,[!1].concat(o.call(arguments)))},q.ifError=function(a){if(a)throw a};var r=Object.keys||function(a){var b=[];for(var c in a)p.call(a,c)&&b.push(c);return b}},function(a,b){(function(){var b;b=function(){function a(a,d){var e;this.document=a,null==d&&(d={}),this.size=d.size||"letter",this.layout=d.layout||"portrait","number"==typeof d.margin?this.margins={top:d.margin,left:d.margin,bottom:d.margin,right:d.margin}:this.margins=d.margins||b,e=Array.isArray(this.size)?this.size:c[this.size.toUpperCase()],this.width=e["portrait"===this.layout?0:1],this.height=e["portrait"===this.layout?1:0],this.content=this.document.ref(),this.resources=this.document.ref({ProcSet:["PDF","Text","ImageB","ImageC","ImageI"]}),Object.defineProperties(this,{fonts:{get:function(a){return function(){var b;return null!=(b=a.resources.data).Font?b.Font:b.Font={}}}(this)},xobjects:{get:function(a){return function(){var b;return null!=(b=a.resources.data).XObject?b.XObject:b.XObject={}}}(this)},ext_gstates:{get:function(a){return function(){var b;return null!=(b=a.resources.data).ExtGState?b.ExtGState:b.ExtGState={}}}(this)},patterns:{get:function(a){return function(){var b;return null!=(b=a.resources.data).Pattern?b.Pattern:b.Pattern={}}}(this)},annotations:{get:function(a){return function(){var b;return null!=(b=a.dictionary.data).Annots?b.Annots:b.Annots=[]}}(this)}}),this.dictionary=this.document.ref({Type:"Page",Parent:this.document._root.data.Pages,MediaBox:[0,0,this.width,this.height],Contents:this.content,Resources:this.resources})}var b,c;return a.prototype.maxY=function(){return this.height-this.margins.bottom},a.prototype.write=function(a){return this.content.write(a)},a.prototype.end=function(){return this.dictionary.end(),this.resources.end(),this.content.end()},b={top:72,left:72,bottom:72,right:72},c={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],EXECUTIVE:[521.86,756],FOLIO:[612,936],LEGAL:[612,1008],LETTER:[612,792],TABLOID:[792,1224]},a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f,g;g=c(66),b=g.PDFGradient,d=g.PDFLinearGradient,e=g.PDFRadialGradient,a.exports={initColor:function(){return this._opacityRegistry={},this._opacityCount=0,this._gradCount=0},_normalizeColor:function(a){var c,d;return a instanceof b?a:("string"==typeof a&&("#"===a.charAt(0)?(4===a.length&&(a=a.replace(/#([0-9A-F])([0-9A-F])([0-9A-F])/i,"#$1$1$2$2$3$3")),c=parseInt(a.slice(1),16),a=[c>>16,c>>8&255,255&c]):f[a]&&(a=f[a])),Array.isArray(a)?(3===a.length?a=function(){var b,c,e;for(e=[],b=0,c=a.length;c>b;b++)d=a[b],e.push(d/255);return e}():4===a.length&&(a=function(){var b,c,e;for(e=[],b=0,c=a.length;c>b;b++)d=a[b],e.push(d/100);return e}()),a):null)},_setColor:function(a,c){var d,e,f,g;return(a=this._normalizeColor(a))?(this._sMasked&&(d=this.ref({Type:"ExtGState",SMask:"None"}),d.end(),e="Gs"+ ++this._opacityCount,this.page.ext_gstates[e]=d,this.addContent("/"+e+" gs"),this._sMasked=!1),f=c?"SCN":"scn",a instanceof b?(this._setColorSpace("Pattern",c),a.apply(f)):(g=4===a.length?"DeviceCMYK":"DeviceRGB",this._setColorSpace(g,c),a=a.join(" "),this.addContent(""+a+" "+f)),!0):!1},_setColorSpace:function(a,b){var c;return c=b?"CS":"cs",this.addContent("/"+a+" "+c)},fillColor:function(a,b){var c;return null==b&&(b=1),c=this._setColor(a,!1),c&&this.fillOpacity(b),this._fillColor=[a,b],this},strokeColor:function(a,b){var c;return null==b&&(b=1),c=this._setColor(a,!0),c&&this.strokeOpacity(b),this},opacity:function(a){return this._doOpacity(a,a),this},fillOpacity:function(a){return this._doOpacity(a,null),this},strokeOpacity:function(a){return this._doOpacity(null,a),this},_doOpacity:function(a,b){var c,d,e,f,g;if(null!=a||null!=b)return null!=a&&(a=Math.max(0,Math.min(1,a))),null!=b&&(b=Math.max(0,Math.min(1,b))),e=""+a+"_"+b,this._opacityRegistry[e]?(g=this._opacityRegistry[e],c=g[0],f=g[1]):(c={Type:"ExtGState"},null!=a&&(c.ca=a),null!=b&&(c.CA=b),c=this.ref(c),c.end(),d=++this._opacityCount,f="Gs"+d,this._opacityRegistry[e]=[c,f]),this.page.ext_gstates[f]=c,this.addContent("/"+f+" gs")},linearGradient:function(a,b,c,e){return new d(this,a,b,c,e)},radialGradient:function(a,b,c,d,f,g){return new e(this,a,b,c,d,f,g)}},f={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}).call(this)},function(a,b){(function(){var b,c,d,e={}.hasOwnProperty,f=function(a,b){function c(){this.constructor=a}for(var d in b)e.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};b=function(){function a(a){this.doc=a,this.stops=[],this.embedded=!1,this.transform=[1,0,0,1,0,0],this._colorSpace="DeviceRGB"}return a.prototype.stop=function(a,b,c){return null==c&&(c=1),c=Math.max(0,Math.min(1,c)),this.stops.push([a,this.doc._normalizeColor(b),c]),this},a.prototype.embed=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J;if(!this.embedded&&0!==this.stops.length){for(this.embedded=!0,k=this.stops[this.stops.length-1],k[0]<1&&this.stops.push([1,k[1],k[2]]),a=[],d=[],C=[],j=E=0,H=this.stops.length-1;H>=0?H>E:E>H;j=H>=0?++E:--E)d.push(0,1),j+2!==this.stops.length&&a.push(this.stops[j+1][0]),e=this.doc.ref({FunctionType:2,Domain:[0,1],C0:this.stops[j+0][1],C1:this.stops[j+1][1],N:1}),C.push(e),e.end();if(1===C.length?e=C[0]:(e=this.doc.ref({FunctionType:3,Domain:[0,1],Functions:C,Bounds:a,Encode:d}),e.end()),this.id="Sh"+ ++this.doc._gradCount,l=this.doc._ctm.slice(),m=l[0],n=l[1],q=l[2],t=l[3],u=l[4],v=l[5],I=this.transform,o=I[0],p=I[1],r=I[2],s=I[3],b=I[4],c=I[5],l[0]=m*o+q*p,l[1]=n*o+t*p,l[2]=m*r+q*s,l[3]=n*r+t*s,l[4]=m*b+q*c+u,l[5]=n*b+t*c+v, -A=this.shader(e),A.end(),x=this.doc.ref({Type:"Pattern",PatternType:2,Shading:A,Matrix:function(){var a,b,c;for(c=[],a=0,b=l.length;b>a;a++)D=l[a],c.push(+D.toFixed(5));return c}()}),this.doc.page.patterns[this.id]=x,x.end(),this.stops.some(function(a){return a[2]<1})){for(g=this.opacityGradient(),g._colorSpace="DeviceGray",J=this.stops,F=0,G=J.length;G>F;F++)B=J[F],g.stop(B[0],[B[2]]);g=g.embed(),h=this.doc.ref({Type:"Group",S:"Transparency",CS:"DeviceGray"}),h.end(),y=this.doc.ref({ProcSet:["PDF","Text","ImageB","ImageC","ImageI"],Shading:{Sh1:g.data.Shading}}),y.end(),f=this.doc.ref({Type:"XObject",Subtype:"Form",FormType:1,BBox:[0,0,this.doc.page.width,this.doc.page.height],Group:h,Resources:y}),f.end("/Sh1 sh"),z=this.doc.ref({Type:"Mask",S:"Luminosity",G:f}),z.end(),i=this.doc.ref({Type:"ExtGState",SMask:z}),this.opacity_id=++this.doc._opacityCount,w="Gs"+this.opacity_id,this.doc.page.ext_gstates[w]=i,i.end()}return x}},a.prototype.apply=function(a){return this.embedded||this.embed(),this.doc.addContent("/"+this.id+" "+a),this.opacity_id?(this.doc.addContent("/Gs"+this.opacity_id+" gs"),this.doc._sMasked=!0):void 0},a}(),c=function(a){function b(a,c,d,e,f){this.doc=a,this.x1=c,this.y1=d,this.x2=e,this.y2=f,b.__super__.constructor.apply(this,arguments)}return f(b,a),b.prototype.shader=function(a){return this.doc.ref({ShadingType:2,ColorSpace:this._colorSpace,Coords:[this.x1,this.y1,this.x2,this.y2],Function:a,Extend:[!0,!0]})},b.prototype.opacityGradient=function(){return new b(this.doc,this.x1,this.y1,this.x2,this.y2)},b}(b),d=function(a){function b(a,c,d,e,f,g,h){this.doc=a,this.x1=c,this.y1=d,this.r1=e,this.x2=f,this.y2=g,this.r2=h,b.__super__.constructor.apply(this,arguments)}return f(b,a),b.prototype.shader=function(a){return this.doc.ref({ShadingType:3,ColorSpace:this._colorSpace,Coords:[this.x1,this.y1,this.r1,this.x2,this.y2,this.r2],Function:a,Extend:[!0,!0]})},b.prototype.opacityGradient=function(){return new b(this.doc,this.x1,this.y1,this.r1,this.x2,this.y2,this.r2)},b}(b),a.exports={PDFGradient:b,PDFLinearGradient:c,PDFRadialGradient:d}}).call(this)},function(a,b,c){(function(){var b,d,e=[].slice;d=c(68),b=4*((Math.sqrt(2)-1)/3),a.exports={initVector:function(){return this._ctm=[1,0,0,1,0,0],this._ctmStack=[]},save:function(){return this._ctmStack.push(this._ctm.slice()),this.addContent("q")},restore:function(){return this._ctm=this._ctmStack.pop()||[1,0,0,1,0,0],this.addContent("Q")},closePath:function(){return this.addContent("h")},lineWidth:function(a){return this.addContent(""+a+" w")},_CAP_STYLES:{BUTT:0,ROUND:1,SQUARE:2},lineCap:function(a){return"string"==typeof a&&(a=this._CAP_STYLES[a.toUpperCase()]),this.addContent(""+a+" J")},_JOIN_STYLES:{MITER:0,ROUND:1,BEVEL:2},lineJoin:function(a){return"string"==typeof a&&(a=this._JOIN_STYLES[a.toUpperCase()]),this.addContent(""+a+" j")},miterLimit:function(a){return this.addContent(""+a+" M")},dash:function(a,b){var c,d,e;return null==b&&(b={}),null==a?this:(d=null!=(e=b.space)?e:a,c=b.phase||0,this.addContent("["+a+" "+d+"] "+c+" d"))},undash:function(){return this.addContent("[] 0 d")},moveTo:function(a,b){return this.addContent(""+a+" "+b+" m")},lineTo:function(a,b){return this.addContent(""+a+" "+b+" l")},bezierCurveTo:function(a,b,c,d,e,f){return this.addContent(""+a+" "+b+" "+c+" "+d+" "+e+" "+f+" c")},quadraticCurveTo:function(a,b,c,d){return this.addContent(""+a+" "+b+" "+c+" "+d+" v")},rect:function(a,b,c,d){return this.addContent(""+a+" "+b+" "+c+" "+d+" re")},roundedRect:function(a,b,c,d,e){return null==e&&(e=0),this.moveTo(a+e,b),this.lineTo(a+c-e,b),this.quadraticCurveTo(a+c,b,a+c,b+e),this.lineTo(a+c,b+d-e),this.quadraticCurveTo(a+c,b+d,a+c-e,b+d),this.lineTo(a+e,b+d),this.quadraticCurveTo(a,b+d,a,b+d-e),this.lineTo(a,b+e),this.quadraticCurveTo(a,b,a+e,b)},ellipse:function(a,c,d,e){var f,g,h,i,j,k;return null==e&&(e=d),a-=d,c-=e,f=d*b,g=e*b,h=a+2*d,j=c+2*e,i=a+d,k=c+e,this.moveTo(a,k),this.bezierCurveTo(a,k-g,i-f,c,i,c),this.bezierCurveTo(i+f,c,h,k-g,h,k),this.bezierCurveTo(h,k+g,i+f,j,i,j),this.bezierCurveTo(i-f,j,a,k+g,a,k),this.closePath()},circle:function(a,b,c){return this.ellipse(a,b,c)},polygon:function(){var a,b,c,d;for(b=1<=arguments.length?e.call(arguments,0):[],this.moveTo.apply(this,b.shift()),c=0,d=b.length;d>c;c++)a=b[c],this.lineTo.apply(this,a);return this.closePath()},path:function(a){return d.apply(this,a),this},_windingRule:function(a){return/even-?odd/.test(a)?"*":""},fill:function(a,b){return/(even-?odd)|(non-?zero)/.test(a)&&(b=a,a=null),a&&this.fillColor(a),this.addContent("f"+this._windingRule(b))},stroke:function(a){return a&&this.strokeColor(a),this.addContent("S")},fillAndStroke:function(a,b,c){var d;return null==b&&(b=a),d=/(even-?odd)|(non-?zero)/,d.test(a)&&(c=a,a=null),d.test(b)&&(c=b,b=a),a&&(this.fillColor(a),this.strokeColor(b)),this.addContent("B"+this._windingRule(c))},clip:function(a){return this.addContent("W"+this._windingRule(a)+" n")},transform:function(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o;return g=this._ctm,h=g[0],i=g[1],j=g[2],k=g[3],l=g[4],m=g[5],g[0]=h*a+j*b,g[1]=i*a+k*b,g[2]=h*c+j*d,g[3]=i*c+k*d,g[4]=h*e+j*f+l,g[5]=i*e+k*f+m,o=function(){var g,h,i,j;for(i=[a,b,c,d,e,f],j=[],g=0,h=i.length;h>g;g++)n=i[g],j.push(+n.toFixed(5));return j}().join(" "),this.addContent(""+o+" cm")},translate:function(a,b){return this.transform(1,0,0,1,a,b)},rotate:function(a,b){var c,d,e,f,g,h,i,j;return null==b&&(b={}),d=a*Math.PI/180,c=Math.cos(d),e=Math.sin(d),f=h=0,null!=b.origin&&(j=b.origin,f=j[0],h=j[1],g=f*c-h*e,i=f*e+h*c,f-=g,h-=i),this.transform(c,e,-e,c,f,h)},scale:function(a,b,c){var d,e,f;return null==b&&(b=a),null==c&&(c={}),2===arguments.length&&(b=a,c=b),d=e=0,null!=c.origin&&(f=c.origin,d=f[0],e=f[1],d-=a*d,e-=b*e),this.transform(a,0,0,b,d,e)}}}).call(this)},function(a,b){(function(){var b;b=function(){function a(){}var b,c,d,e,f,g,h,i,j,k,l,m,n;return a.apply=function(a,c){var d;return d=g(c),b(d,a)},f={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0},g=function(a){var b,c,d,e,g,h,i,j,k;for(i=[],b=[],e="",g=!1,h=0,j=0,k=a.length;k>j;j++)if(c=a[j],null!=f[c])h=f[c],d&&(e.length>0&&(b[b.length]=+e),i[i.length]={cmd:d,args:b},b=[],e="",g=!1),d=c;else if(" "===c||","===c||"-"===c&&e.length>0&&"e"!==e[e.length-1]||"."===c&&g){if(0===e.length)continue;b.length===h?(i[i.length]={cmd:d,args:b},b=[+e],"M"===d&&(d="L"),"m"===d&&(d="l")):b[b.length]=+e,g="."===c,e="-"===c||"."===c?c:""}else e+=c,"."===c&&(g=!0);return e.length>0&&(b.length===h?(i[i.length]={cmd:d,args:b},b=[+e],"M"===d&&(d="L"),"m"===d&&(d="l")):b[b.length]=+e),i[i.length]={cmd:d,args:b},i},d=e=h=i=m=n=0,b=function(a,b){var c,f,g,k,l;for(d=e=h=i=m=n=0,f=g=0,k=a.length;k>g;f=++g)c=a[f],"function"==typeof j[l=c.cmd]&&j[l](b,c.args);return d=e=h=i=0},j={M:function(a,b){return d=b[0],e=b[1],h=i=null,m=d,n=e,a.moveTo(d,e)},m:function(a,b){return d+=b[0],e+=b[1],h=i=null,m=d,n=e,a.moveTo(d,e)},C:function(a,b){return d=b[4],e=b[5],h=b[2],i=b[3],a.bezierCurveTo.apply(a,b)},c:function(a,b){return a.bezierCurveTo(b[0]+d,b[1]+e,b[2]+d,b[3]+e,b[4]+d,b[5]+e),h=d+b[2],i=e+b[3],d+=b[4],e+=b[5]},S:function(a,b){return null===h&&(h=d,i=e),a.bezierCurveTo(d-(h-d),e-(i-e),b[0],b[1],b[2],b[3]),h=b[0],i=b[1],d=b[2],e=b[3]},s:function(a,b){return null===h&&(h=d,i=e),a.bezierCurveTo(d-(h-d),e-(i-e),d+b[0],e+b[1],d+b[2],e+b[3]),h=d+b[0],i=e+b[1],d+=b[2],e+=b[3]},Q:function(a,b){return h=b[0],i=b[1],d=b[2],e=b[3],a.quadraticCurveTo(b[0],b[1],d,e)},q:function(a,b){return a.quadraticCurveTo(b[0]+d,b[1]+e,b[2]+d,b[3]+e),h=d+b[0],i=e+b[1],d+=b[2],e+=b[3]},T:function(a,b){return null===h?(h=d,i=e):(h=d-(h-d),i=e-(i-e)),a.quadraticCurveTo(h,i,b[0],b[1]),h=d-(h-d),i=e-(i-e),d=b[0],e=b[1]},t:function(a,b){return null===h?(h=d,i=e):(h=d-(h-d),i=e-(i-e)),a.quadraticCurveTo(h,i,d+b[0],e+b[1]),d+=b[0],e+=b[1]},A:function(a,b){return l(a,d,e,b),d=b[5],e=b[6]},a:function(a,b){return b[5]+=d,b[6]+=e,l(a,d,e,b),d=b[5],e=b[6]},L:function(a,b){return d=b[0],e=b[1],h=i=null,a.lineTo(d,e)},l:function(a,b){return d+=b[0],e+=b[1],h=i=null,a.lineTo(d,e)},H:function(a,b){return d=b[0],h=i=null,a.lineTo(d,e)},h:function(a,b){return d+=b[0],h=i=null,a.lineTo(d,e)},V:function(a,b){return e=b[0],h=i=null,a.lineTo(d,e)},v:function(a,b){return e+=b[0],h=i=null,a.lineTo(d,e)},Z:function(a){return a.closePath(),d=m,e=n},z:function(a){return a.closePath(),d=m,e=n}},l=function(a,b,d,e){var f,g,h,i,j,l,m,n,o,p,q,r,s;for(l=e[0],m=e[1],j=e[2],i=e[3],p=e[4],g=e[5],h=e[6],o=c(g,h,l,m,i,p,j,b,d),s=[],q=0,r=o.length;r>q;q++)n=o[q],f=k.apply(null,n),s.push(a.bezierCurveTo.apply(a,f));return s},c=function(a,b,c,d,e,f,g,j,k){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K;for(y=g*(Math.PI/180),x=Math.sin(y),p=Math.cos(y),c=Math.abs(c),d=Math.abs(d),h=p*(j-a)*.5+x*(k-b)*.5,i=p*(k-b)*.5-x*(j-a)*.5,s=h*h/(c*c)+i*i/(d*d),s>1&&(s=Math.sqrt(s),c*=s,d*=s),l=p/c,m=x/c,n=-x/d,o=p/d,E=l*j+m*k,H=n*j+o*k,F=l*a+m*b,I=n*a+o*b,q=(F-E)*(F-E)+(I-H)*(I-H),w=1/q-.25,0>w&&(w=0),v=Math.sqrt(w),f===e&&(v=-v),G=.5*(E+F)-v*(I-H),J=.5*(H+I)+v*(F-E),z=Math.atan2(H-J,E-G),A=Math.atan2(I-J,F-G),D=A-z,0>D&&1===f?D+=2*Math.PI:D>0&&0===f&&(D-=2*Math.PI),u=Math.ceil(Math.abs(D/(.5*Math.PI+.001))),t=[],r=K=0;u>=0?u>K:K>u;r=u>=0?++K:--K)B=z+r*D/u,C=z+(r+1)*D/u,t[r]=[G,J,B,C,c,d,x,p];return t},k=function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s,t;return i=h*e,j=-g*f,k=g*e,l=h*f,n=.5*(d-c),m=8/3*Math.sin(.5*n)*Math.sin(.5*n)/Math.sin(n),o=a+Math.cos(c)-m*Math.sin(c),r=b+Math.sin(c)+m*Math.cos(c),q=a+Math.cos(d),t=b+Math.sin(d),p=q+m*Math.sin(d),s=t-m*Math.cos(d),[i*o+j*r,k*o+l*r,i*p+j*s,k*p+l*s,i*q+j*t,k*q+l*t]},a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b;b=c(70),a.exports={initFonts:function(){this._fontFamilies={},this._fontCount=0,this._fontSize=12,this._font=null,this._registeredFonts={}},font:function(a,c,d){var e,f,g,h;return"number"==typeof c&&(d=c,c=null),"string"==typeof a&&this._registeredFonts[a]?(e=a,h=this._registeredFonts[a],a=h.src,c=h.family):(e=c||a,"string"!=typeof e&&(e=null)),null!=d&&this.fontSize(d),(f=this._fontFamilies[e])?(this._font=f,this):(g="F"+ ++this._fontCount,this._font=new b(this,a,c,g),(f=this._fontFamilies[this._font.name])?(this._font=f,this):(e&&(this._fontFamilies[e]=this._font),this._fontFamilies[this._font.name]=this._font,this))},fontSize:function(a){return this._fontSize=a,this},currentLineHeight:function(a){return null==a&&(a=!1),this._font.lineHeight(this._fontSize,a)},registerFont:function(a,b,c){return this._registeredFonts[a]={src:b,family:c},this}}}).call(this)},function(a,b,c){(function(b,d){(function(){var e,f,g,h,i;h=c(71),e=c(87),g=c(88),i=c(44),f=function(){function a(a,d,f,i){if(this.document=a,this.id=i,"string"==typeof d){if(d in c)return this.isAFM=!0,this.font=new e(c[d]()),void this.registerAFM(d);if(/\.(ttf|ttc)$/i.test(d))this.font=h.open(d,f);else{if(!/\.dfont$/i.test(d))throw new Error("Not a supported font format or standard PDF font.");this.font=h.fromDFont(d,f)}}else if(b.isBuffer(d))this.font=h.fromBuffer(d,f);else if(d instanceof Uint8Array)this.font=h.fromBuffer(new b(d),f);else{if(!(d instanceof ArrayBuffer))throw new Error("Not a supported font format or standard PDF font.");this.font=h.fromBuffer(new b(new Uint8Array(d)),f)}this.subset=new g(this.font),this.registerTTF()}var c,f;return c={Courier:function(){return i.readFileSync(d+"/font/data/Courier.afm","utf8")},"Courier-Bold":function(){return i.readFileSync(d+"/font/data/Courier-Bold.afm","utf8")},"Courier-Oblique":function(){return i.readFileSync(d+"/font/data/Courier-Oblique.afm","utf8")},"Courier-BoldOblique":function(){return i.readFileSync(d+"/font/data/Courier-BoldOblique.afm","utf8")},Helvetica:function(){return i.readFileSync(d+"/font/data/Helvetica.afm","utf8")},"Helvetica-Bold":function(){return i.readFileSync(d+"/font/data/Helvetica-Bold.afm","utf8")},"Helvetica-Oblique":function(){return i.readFileSync(d+"/font/data/Helvetica-Oblique.afm","utf8")},"Helvetica-BoldOblique":function(){return i.readFileSync(d+"/font/data/Helvetica-BoldOblique.afm","utf8")},"Times-Roman":function(){return i.readFileSync(d+"/font/data/Times-Roman.afm","utf8")},"Times-Bold":function(){return i.readFileSync(d+"/font/data/Times-Bold.afm","utf8")},"Times-Italic":function(){return i.readFileSync(d+"/font/data/Times-Italic.afm","utf8")},"Times-BoldItalic":function(){return i.readFileSync(d+"/font/data/Times-BoldItalic.afm","utf8")},Symbol:function(){return i.readFileSync(d+"/font/data/Symbol.afm","utf8")},ZapfDingbats:function(){return i.readFileSync(d+"/font/data/ZapfDingbats.afm","utf8")}},a.prototype.use=function(a){var b;return null!=(b=this.subset)?b.use(a):void 0},a.prototype.embed=function(){return this.embedded||null==this.dictionary?void 0:(this.isAFM?this.embedAFM():this.embedTTF(),this.embedded=!0)},a.prototype.encode=function(a){var b;return this.isAFM?this.font.encodeText(a):(null!=(b=this.subset)?b.encodeText(a):void 0)||a},a.prototype.ref=function(){return null!=this.dictionary?this.dictionary:this.dictionary=this.document.ref()},a.prototype.registerTTF=function(){var a,b,c,d,e;if(this.name=this.font.name.postscriptName,this.scaleFactor=1e3/this.font.head.unitsPerEm,this.bbox=function(){var b,c,d,e;for(d=this.font.bbox,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(Math.round(a*this.scaleFactor));return e}.call(this),this.stemV=0,this.font.post.exists?(d=this.font.post.italic_angle,b=d>>16,c=255&d,b&!0&&(b=-((65535^b)+1)),this.italicAngle=+(""+b+"."+c)):this.italicAngle=0,this.ascender=Math.round(this.font.ascender*this.scaleFactor),this.decender=Math.round(this.font.decender*this.scaleFactor),this.lineGap=Math.round(this.font.lineGap*this.scaleFactor),this.capHeight=this.font.os2.exists&&this.font.os2.capHeight||this.ascender,this.xHeight=this.font.os2.exists&&this.font.os2.xHeight||0,this.familyClass=(this.font.os2.exists&&this.font.os2.familyClass||0)>>8,this.isSerif=1===(e=this.familyClass)||2===e||3===e||4===e||5===e||7===e,this.isScript=10===this.familyClass,this.flags=0,this.font.post.isFixedPitch&&(this.flags|=1),this.isSerif&&(this.flags|=2),this.isScript&&(this.flags|=8),0!==this.italicAngle&&(this.flags|=64),this.flags|=32,!this.font.cmap.unicode)throw new Error("No unicode cmap for font")},a.prototype.embedTTF=function(){var a,b,c,d,e,g,h,i;return d=this.subset.encode(),h=this.document.ref(),h.write(d),h.data.Length1=h.uncompressedLength,h.end(),e=this.document.ref({Type:"FontDescriptor",FontName:this.subset.postscriptName,FontFile2:h,FontBBox:this.bbox,Flags:this.flags,StemV:this.stemV,ItalicAngle:this.italicAngle,Ascent:this.ascender,Descent:this.decender,CapHeight:this.capHeight,XHeight:this.xHeight}),e.end(),g=+Object.keys(this.subset.cmap)[0],a=function(){var a,b;a=this.subset.cmap,b=[];for(c in a)i=a[c],b.push(Math.round(this.font.widthOfGlyph(i)));return b}.call(this),b=this.document.ref(),b.end(f(this.subset.subset)),this.dictionary.data={Type:"Font",BaseFont:this.subset.postscriptName,Subtype:"TrueType",FontDescriptor:e,FirstChar:g,LastChar:g+a.length-1,Widths:a,Encoding:"MacRomanEncoding",ToUnicode:b},this.dictionary.end()},f=function(a){var b,c,d,e,f,g,h;for(f="/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo <<\n /Registry (Adobe)\n /Ordering (UCS)\n /Supplement 0\n>> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<00>\nendcodespacerange",c=Object.keys(a).sort(function(a,b){return a-b}),d=[],g=0,h=c.length;h>g;g++)b=c[g],d.length>=100&&(f+="\n"+d.length+" beginbfchar\n"+d.join("\n")+"\nendbfchar",d=[]),e=("0000"+a[b].toString(16)).slice(-4),b=(+b).toString(16),d.push("<"+b+"><"+e+">");return d.length&&(f+="\n"+d.length+" beginbfchar\n"+d.join("\n")+"\nendbfchar\n"),f+="endcmap\nCMapName currentdict /CMap defineresource pop\nend\nend"},a.prototype.registerAFM=function(a){var b;return this.name=a,b=this.font,this.ascender=b.ascender,this.decender=b.decender,this.bbox=b.bbox,this.lineGap=b.lineGap,b},a.prototype.embedAFM=function(){return this.dictionary.data={Type:"Font",BaseFont:this.name,Subtype:"Type1",Encoding:"WinAnsiEncoding"},this.dictionary.end()},a.prototype.widthOfString=function(a,b){var c,d,e,f,g,h;for(a=""+a,f=0,d=g=0,h=a.length;h>=0?h>g:g>h;d=h>=0?++g:--g)c=a.charCodeAt(d),f+=this.font.widthOfGlyph(this.font.characterToGlyph(c))||0;return e=b/1e3,f*e},a.prototype.lineHeight=function(a,b){var c;return null==b&&(b=!1),c=b?this.lineGap:0,(this.ascender+c-this.decender)/1e3*a},a}(),a.exports=f}).call(this)}).call(b,c(2).Buffer,"/")},function(a,b,c){(function(){var b,d,e,f,g,h,i,j,k,l,m,n,o,p,q;q=c(44),e=c(72),d=c(73),f=c(74),m=c(75),h=c(78),b=c(79),j=c(80),i=c(81),l=c(82),o=c(83),n=c(84),k=c(85),g=c(86),p=function(){function a(a,b){var c,d,f,g,h,i,j,k,l;if(this.rawData=a,c=this.contents=new e(this.rawData),"ttcf"===c.readString(4)){if(!b)throw new Error("Must specify a font name for TTC files.");for(i=c.readInt(),f=c.readInt(),h=[],d=j=0;f>=0?f>j:j>f;d=f>=0?++j:--j)h[d]=c.readInt();for(d=k=0,l=h.length;l>k;d=++k)if(g=h[d],c.pos=g,this.parse(),this.name.postscriptName===b)return;throw new Error("Font "+b+" not found in TTC file.")}c.pos=0,this.parse()}return a.open=function(b,c){var d;return d=q.readFileSync(b),new a(d,c)},a.fromDFont=function(b,c){var e;return e=d.open(b),new a(e.getNamedFont(c))},a.fromBuffer=function(b,c){var e,f,g;try{if(g=new a(b,c),!(g.head.exists&&g.name.exists&&g.cmap.exists||(e=new d(b),g=new a(e.getNamedFont(c)),g.head.exists&&g.name.exists&&g.cmap.exists)))throw new Error("Invalid TTF file in DFont");return g}catch(h){throw f=h,new Error("Unknown font format in buffer: "+f.message)}},a.prototype.parse=function(){return this.directory=new f(this.contents),this.head=new h(this),this.name=new m(this),this.cmap=new b(this),this.hhea=new i(this),this.maxp=new l(this),this.hmtx=new j(this),this.post=new o(this),this.os2=new n(this),this.loca=new k(this),this.glyf=new g(this),this.ascender=this.os2.exists&&this.os2.ascender||this.hhea.ascender,this.decender=this.os2.exists&&this.os2.decender||this.hhea.decender,this.lineGap=this.os2.exists&&this.os2.lineGap||this.hhea.lineGap,this.bbox=[this.head.xMin,this.head.yMin,this.head.xMax,this.head.yMax]},a.prototype.characterToGlyph=function(a){var b;return(null!=(b=this.cmap.unicode)?b.codeMap[a]:void 0)||0},a.prototype.widthOfGlyph=function(a){var b;return b=1e3/this.head.unitsPerEm,this.hmtx.forGlyph(a).advance*b},a}(),a.exports=p}).call(this)},function(a,b){(function(){var b;b=function(){function a(a){this.data=null!=a?a:[],this.pos=0,this.length=this.data.length}return a.prototype.readByte=function(){return this.data[this.pos++]},a.prototype.writeByte=function(a){return this.data[this.pos++]=a},a.prototype.byteAt=function(a){return this.data[a]},a.prototype.readBool=function(){return!!this.readByte()},a.prototype.writeBool=function(a){return this.writeByte(a?1:0)},a.prototype.readUInt32=function(){var a,b,c,d;return a=16777216*this.readByte(),b=this.readByte()<<16,c=this.readByte()<<8,d=this.readByte(),a+b+c+d},a.prototype.writeUInt32=function(a){return this.writeByte(a>>>24&255),this.writeByte(a>>16&255),this.writeByte(a>>8&255),this.writeByte(255&a)},a.prototype.readInt32=function(){var a;return a=this.readUInt32(),a>=2147483648?a-4294967296:a},a.prototype.writeInt32=function(a){return 0>a&&(a+=4294967296),this.writeUInt32(a)},a.prototype.readUInt16=function(){var a,b;return a=this.readByte()<<8,b=this.readByte(),a|b},a.prototype.writeUInt16=function(a){return this.writeByte(a>>8&255),this.writeByte(255&a)},a.prototype.readInt16=function(){var a;return a=this.readUInt16(),a>=32768?a-65536:a},a.prototype.writeInt16=function(a){return 0>a&&(a+=65536),this.writeUInt16(a)},a.prototype.readString=function(a){var b,c,d;for(c=[],b=d=0;a>=0?a>d:d>a;b=a>=0?++d:--d)c[b]=String.fromCharCode(this.readByte());return c.join("")},a.prototype.writeString=function(a){var b,c,d,e;for(e=[],b=c=0,d=a.length;d>=0?d>c:c>d;b=d>=0?++c:--c)e.push(this.writeByte(a.charCodeAt(b)));return e},a.prototype.stringAt=function(a,b){return this.pos=a,this.readString(b)},a.prototype.readShort=function(){return this.readInt16()},a.prototype.writeShort=function(a){return this.writeInt16(a)},a.prototype.readLongLong=function(){var a,b,c,d,e,f,g,h;return a=this.readByte(),b=this.readByte(),c=this.readByte(),d=this.readByte(),e=this.readByte(),f=this.readByte(),g=this.readByte(),h=this.readByte(),128&a?-1*(72057594037927940*(255^a)+281474976710656*(255^b)+1099511627776*(255^c)+4294967296*(255^d)+16777216*(255^e)+65536*(255^f)+256*(255^g)+(255^h)+1):72057594037927940*a+281474976710656*b+1099511627776*c+4294967296*d+16777216*e+65536*f+256*g+h},a.prototype.writeLongLong=function(a){var b,c;return b=Math.floor(a/4294967296),c=4294967295&a,this.writeByte(b>>24&255),this.writeByte(b>>16&255),this.writeByte(b>>8&255),this.writeByte(255&b),this.writeByte(c>>24&255),this.writeByte(c>>16&255),this.writeByte(c>>8&255),this.writeByte(255&c)},a.prototype.readInt=function(){return this.readInt32()},a.prototype.writeInt=function(a){return this.writeInt32(a)},a.prototype.slice=function(a,b){return this.data.slice(a,b)},a.prototype.read=function(a){var b,c,d;for(b=[],c=d=0;a>=0?a>d:d>a;c=a>=0?++d:--d)b.push(this.readByte());return b},a.prototype.write=function(a){var b,c,d,e;for(e=[],c=0,d=a.length;d>c;c++)b=a[c],e.push(this.writeByte(b));return e},a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f,g;g=c(44),d=c(72),e=c(74),f=c(75),b=function(){function a(a){this.contents=new d(a),this.parse(this.contents)}return a.open=function(b){var c;return c=g.readFileSync(b),new a(c)},a.prototype.parse=function(a){var b,c,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G;for(j=a.readInt(),u=a.readInt(),i=a.readInt(),t=a.readInt(),this.map={},a.pos=u+24,E=a.readShort()+u,y=a.readShort()+u,a.pos=E,v=a.readShort(),o=F=0;v>=F;o=F+=1){for(D=a.readString(4),w=a.readShort(),C=a.readShort(),this.map[D]={list:[],named:{}},B=a.pos,a.pos=E+C,q=G=0;w>=G;q=G+=1)p=a.readShort(),z=a.readShort(),b=a.readByte(),c=a.readByte()<<16,g=a.readByte()<<8,h=a.readByte(),k=j+(0|c|g|h),n=a.readUInt32(),l={id:p,attributes:b,offset:k,handle:n},A=a.pos,-1!==z&&u+t>y+z?(a.pos=y+z,r=a.readByte(),l.name=a.readString(r)):"sfnt"===D&&(a.pos=l.offset,s=a.readUInt32(),m={},m.contents=new d(a.slice(a.pos,a.pos+s)),m.directory=new e(m.contents),x=new f(m),l.name=x.fontName[0].raw),a.pos=A,this.map[D].list.push(l),l.name&&(this.map[D].named[l.name]=l);a.pos=B}},a.prototype.getNamedFont=function(a){var b,c,d,e,f,g;if(b=this.contents,e=b.pos,c=null!=(g=this.map.sfnt)?g.named[a]:void 0,!c)throw new Error("Font "+a+" not found in DFont file.");return b.pos=c.offset,d=b.readUInt32(),f=b.slice(b.pos,b.pos+d),b.pos=e,f},a}(),a.exports=b}).call(this)},function(a,b,c){(function(b){(function(){var d,e,f=[].slice;d=c(72),e=function(){function a(a){var b,c,d,e;for(this.scalarType=a.readInt(),this.tableCount=a.readShort(),this.searchRange=a.readShort(),this.entrySelector=a.readShort(),this.rangeShift=a.readShort(),this.tables={},c=d=0,e=this.tableCount;e>=0?e>d:d>e;c=e>=0?++d:--d)b={tag:a.readString(4),checksum:a.readInt(),offset:a.readInt(),length:a.readInt()},this.tables[b.tag]=b}var c;return a.prototype.encode=function(a){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;p=Object.keys(a).length,j=Math.log(2),m=16*Math.floor(Math.log(p)/j),h=Math.floor(m/j),l=16*p-m,f=new d,f.writeInt(this.scalarType),f.writeShort(p),f.writeShort(m),f.writeShort(h),f.writeShort(l),g=16*p,k=f.pos+g,i=null,q=[];for(r in a)for(o=a[r],f.writeString(r),f.writeInt(c(o)),f.writeInt(k),f.writeInt(o.length),q=q.concat(o),"head"===r&&(i=k),k+=o.length;k%4;)q.push(0),k++;return f.write(q),n=c(f.data),e=2981146554-n,f.pos=i+8,f.writeUInt32(e),new b(f.data)},c=function(a){var b,c,e,g,h;for(a=f.call(a);a.length%4;)a.push(0);for(e=new d(a),c=0,b=g=0,h=a.length;h>g;b=g+=4)c+=e.readUInt32();return 4294967295&c},a}(),a.exports=e}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(){var b,d,e,f,g,h={}.hasOwnProperty,i=function(a,b){function c(){this.constructor=a}for(var d in b)h.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};f=c(76),b=c(72),g=c(77),e=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}var e;return i(c,a),c.prototype.tag="name",c.prototype.parse=function(a){var b,c,e,f,g,h,i,j,k,l,m,n,o;for(a.pos=this.offset,f=a.readShort(),b=a.readShort(),i=a.readShort(),c=[],g=l=0;b>=0?b>l:l>b;g=b>=0?++l:--l)c.push({platformID:a.readShort(),encodingID:a.readShort(),languageID:a.readShort(),nameID:a.readShort(),length:a.readShort(),offset:this.offset+i+a.readShort()});for(j={},g=m=0,n=c.length;n>m;g=++m)e=c[g],a.pos=e.offset,k=a.readString(e.length),h=new d(k,e),null==j[o=e.nameID]&&(j[o]=[]),j[e.nameID].push(h);return this.strings=j,this.copyright=j[0],this.fontFamily=j[1],this.fontSubfamily=j[2],this.uniqueSubfamily=j[3],this.fontName=j[4],this.version=j[5],this.postscriptName=j[6][0].raw.replace(/[\x00-\x19\x80-\xff]/g,""),this.trademark=j[7],this.manufacturer=j[8],this.designer=j[9],this.description=j[10],this.vendorUrl=j[11],this.designerUrl=j[12],this.license=j[13],this.licenseUrl=j[14],this.preferredFamily=j[15],this.preferredSubfamily=j[17],this.compatibleFull=j[18],this.sampleText=j[19]},e="AAAAAA",c.prototype.encode=function(){var a,c,f,h,i,j,k,l,m,n,o,p,q,r;m={},r=this.strings;for(a in r)o=r[a],m[a]=o;i=new d(""+e+"+"+this.postscriptName,{platformID:1,encodingID:0,languageID:0}),m[6]=[i],e=g.successorOf(e),j=0;for(a in m)c=m[a],null!=c&&(j+=c.length);n=new b,k=new b,n.writeShort(0),n.writeShort(j),n.writeShort(6+12*j);for(f in m)if(c=m[f],null!=c)for(p=0,q=c.length;q>p;p++)l=c[p],n.writeShort(l.platformID),n.writeShort(l.encodingID),n.writeShort(l.languageID),n.writeShort(f),n.writeShort(l.length),n.writeShort(k.pos),k.writeString(l.raw);return h={postscriptName:i.raw,table:n.data.concat(k.data)}},c}(f),a.exports=e,d=function(){function a(a,b){this.raw=a,this.length=this.raw.length,this.platformID=b.platformID,this.encodingID=b.encodingID,this.languageID=b.languageID}return a}()}).call(this)},function(a,b){(function(){var b;b=function(){function a(a){var b;this.file=a,b=this.file.directory.tables[this.tag],this.exists=!!b,b&&(this.offset=b.offset,this.length=b.length,this.parse(this.file.contents))}return a.prototype.parse=function(){},a.prototype.encode=function(){},a.prototype.raw=function(){return this.exists?(this.file.contents.pos=this.offset,this.file.contents.read(this.length)):null},a}(),a.exports=b}).call(this)},function(a,b){(function(){b.successorOf=function(a){var b,c,d,e,f,g,h,i,j,k;for(c="abcdefghijklmnopqrstuvwxyz",i=c.length,k=a,e=a.length;e>=0;){if(h=a.charAt(--e),isNaN(h)){if(f=c.indexOf(h.toLowerCase()),-1===f)j=h,d=!0;else if(j=c.charAt((f+1)%i),g=h===h.toUpperCase(),g&&(j=j.toUpperCase()),d=f+1>=i,d&&0===e){b=g?"A":"a",k=b+j+k.slice(1);break}}else if(j=+h+1,d=j>9,d&&(j=0),d&&0===e){k="1"+j+k.slice(1);break}if(k=k.slice(0,e)+j+k.slice(e+1),!d)break}return k},b.invert=function(a){var b,c,d;c={};for(b in a)d=a[b],c[d]=b;return c}}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="head",c.prototype.parse=function(a){return a.pos=this.offset,this.version=a.readInt(),this.revision=a.readInt(),this.checkSumAdjustment=a.readInt(),this.magicNumber=a.readInt(),this.flags=a.readShort(),this.unitsPerEm=a.readShort(),this.created=a.readLongLong(),this.modified=a.readLongLong(),this.xMin=a.readShort(),this.yMin=a.readShort(),this.xMax=a.readShort(),this.yMax=a.readShort(),this.macStyle=a.readShort(),this.lowestRecPPEM=a.readShort(),this.fontDirectionHint=a.readShort(),this.indexToLocFormat=a.readShort(),this.glyphDataFormat=a.readShort()},c.prototype.encode=function(a){var c;return c=new b,c.writeInt(this.version),c.writeInt(this.revision),c.writeInt(this.checkSumAdjustment),c.writeInt(this.magicNumber),c.writeShort(this.flags),c.writeShort(this.unitsPerEm),c.writeLongLong(this.created),c.writeLongLong(this.modified),c.writeShort(this.xMin),c.writeShort(this.yMin),c.writeShort(this.xMax),c.writeShort(this.yMax),c.writeShort(this.macStyle),c.writeShort(this.lowestRecPPEM),c.writeShort(this.fontDirectionHint),c.writeShort(a.type),c.writeShort(this.glyphDataFormat),c.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f,g={}.hasOwnProperty,h=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};f=c(76),e=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return h(c,a),c.prototype.tag="cmap",c.prototype.parse=function(a){var c,d,e,f;for(a.pos=this.offset,this.version=a.readUInt16(),e=a.readUInt16(),this.tables=[],this.unicode=null,d=f=0;e>=0?e>f:f>e;d=e>=0?++f:--f)c=new b(a,this.offset),this.tables.push(c),c.isUnicode&&null==this.unicode&&(this.unicode=c);return!0},c.encode=function(a,c){var d,f;return null==c&&(c="macroman"),d=b.encode(a,c),f=new e,f.writeUInt16(0),f.writeUInt16(1),d.table=f.data.concat(d.subtable),d},c}(f),b=function(){function a(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;switch(this.platformID=a.readUInt16(),this.encodingID=a.readShort(),this.offset=b+a.readInt(),l=a.pos,a.pos=this.offset,this.format=a.readUInt16(),this.length=a.readUInt16(),this.language=a.readUInt16(),this.isUnicode=3===this.platformID&&1===this.encodingID&&4===this.format||0===this.platformID&&4===this.format,this.codeMap={},this.format){case 0:for(h=r=0;256>r;h=++r)this.codeMap[h]=a.readByte();break;case 4:for(n=a.readUInt16(),m=n/2,a.pos+=6,e=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),a.pos+=2,p=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),i=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),j=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),d=(this.length-a.pos+this.offset)/2,g=function(){var b,c;for(c=[],h=b=0;d>=0?d>b:b>d;h=d>=0?++b:--b)c.push(a.readUInt16());return c}(),h=s=0,u=e.length;u>s;h=++s)for(q=e[h],o=p[h],c=t=o;q>=o?q>=t:t>=q;c=q>=o?++t:--t)0===j[h]?f=c+i[h]:(k=j[h]/2+(c-o)-(m-h),f=g[k]||0,0!==f&&(f+=i[h])),this.codeMap[c]=65535&f}a.pos=l}return a.encode=function(a,b){var c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X;switch(F=new e,g=Object.keys(a).sort(function(a,b){return a-b}),b){case"macroman":for(p=0,q=function(){var a,b;for(b=[],o=a=0;256>a;o=++a)b.push(0);return b}(),s={0:0},f={},G=0,K=g.length;K>G;G++)d=g[G],null==s[U=a[d]]&&(s[U]=++p),f[d]={old:a[d],"new":s[a[d]]},q[d]=s[a[d]];return F.writeUInt16(1),F.writeUInt16(0),F.writeUInt32(12),F.writeUInt16(0),F.writeUInt16(262),F.writeUInt16(0),F.write(q),y={charMap:f,subtable:F.data,maxGlyphID:p+1};case"unicode":for(D=[],l=[],t=0,s={},c={},r=j=null,H=0,L=g.length;L>H;H++)d=g[H],v=a[d],null==s[v]&&(s[v]=++t),c[d]={old:v,"new":s[v]},h=s[v]-d,null!=r&&h===j||(r&&l.push(r),D.push(d),j=h),r=d;for(r&&l.push(r),l.push(65535),D.push(65535),A=D.length,B=2*A,z=2*Math.pow(Math.log(A)/Math.LN2,2),m=Math.log(z/2)/Math.LN2,x=2*A-z,i=[],w=[],n=[],o=I=0,M=D.length;M>I;o=++I){if(C=D[o],k=l[o],65535===C){i.push(0),w.push(0);break}if(E=c[C]["new"],C-E>=32768)for(i.push(0),w.push(2*(n.length+A-o)),d=J=C;k>=C?k>=J:J>=k;d=k>=C?++J:--J)n.push(c[d]["new"]);else i.push(E-C),w.push(0)}for(F.writeUInt16(3),F.writeUInt16(1),F.writeUInt32(12),F.writeUInt16(4),F.writeUInt16(16+8*A+2*n.length),F.writeUInt16(0),F.writeUInt16(B),F.writeUInt16(z),F.writeUInt16(m),F.writeUInt16(x),S=0,N=l.length;N>S;S++)d=l[S],F.writeUInt16(d);for(F.writeUInt16(0),T=0,O=D.length;O>T;T++)d=D[T], -F.writeUInt16(d);for(V=0,P=i.length;P>V;V++)h=i[V],F.writeUInt16(h);for(W=0,Q=w.length;Q>W;W++)u=w[W],F.writeUInt16(u);for(X=0,R=n.length;R>X;X++)p=n[X],F.writeUInt16(p);return y={charMap:c,subtable:F.data,maxGlyphID:t+1}}},a}(),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="hmtx",c.prototype.parse=function(a){var b,c,d,e,f,g,h,i;for(a.pos=this.offset,this.metrics=[],b=f=0,h=this.file.hhea.numberOfMetrics;h>=0?h>f:f>h;b=h>=0?++f:--f)this.metrics.push({advance:a.readUInt16(),lsb:a.readInt16()});for(d=this.file.maxp.numGlyphs-this.file.hhea.numberOfMetrics,this.leftSideBearings=function(){var c,e;for(e=[],b=c=0;d>=0?d>c:c>d;b=d>=0?++c:--c)e.push(a.readInt16());return e}(),this.widths=function(){var a,b,c,d;for(c=this.metrics,d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(e.advance);return d}.call(this),c=this.widths[this.widths.length-1],i=[],b=g=0;d>=0?d>g:g>d;b=d>=0?++g:--g)i.push(this.widths.push(c));return i},c.prototype.forGlyph=function(a){var b;return a in this.metrics?this.metrics[a]:b={advance:this.metrics[this.metrics.length-1].advance,lsb:this.leftSideBearings[a-this.metrics.length]}},c.prototype.encode=function(a){var c,d,e,f,g;for(e=new b,f=0,g=a.length;g>f;f++)c=a[f],d=this.forGlyph(c),e.writeUInt16(d.advance),e.writeUInt16(d.lsb);return e.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="hhea",c.prototype.parse=function(a){return a.pos=this.offset,this.version=a.readInt(),this.ascender=a.readShort(),this.decender=a.readShort(),this.lineGap=a.readShort(),this.advanceWidthMax=a.readShort(),this.minLeftSideBearing=a.readShort(),this.minRightSideBearing=a.readShort(),this.xMaxExtent=a.readShort(),this.caretSlopeRise=a.readShort(),this.caretSlopeRun=a.readShort(),this.caretOffset=a.readShort(),a.pos+=8,this.metricDataFormat=a.readShort(),this.numberOfMetrics=a.readUInt16()},c.prototype.encode=function(a){var c,d,e,f;for(d=new b,d.writeInt(this.version),d.writeShort(this.ascender),d.writeShort(this.decender),d.writeShort(this.lineGap),d.writeShort(this.advanceWidthMax),d.writeShort(this.minLeftSideBearing),d.writeShort(this.minRightSideBearing),d.writeShort(this.xMaxExtent),d.writeShort(this.caretSlopeRise),d.writeShort(this.caretSlopeRun),d.writeShort(this.caretOffset),c=e=0,f=8;f>=0?f>e:e>f;c=f>=0?++e:--e)d.writeByte(0);return d.writeShort(this.metricDataFormat),d.writeUInt16(a.length),d.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="maxp",c.prototype.parse=function(a){return a.pos=this.offset,this.version=a.readInt(),this.numGlyphs=a.readUInt16(),this.maxPoints=a.readUInt16(),this.maxContours=a.readUInt16(),this.maxCompositePoints=a.readUInt16(),this.maxComponentContours=a.readUInt16(),this.maxZones=a.readUInt16(),this.maxTwilightPoints=a.readUInt16(),this.maxStorage=a.readUInt16(),this.maxFunctionDefs=a.readUInt16(),this.maxInstructionDefs=a.readUInt16(),this.maxStackElements=a.readUInt16(),this.maxSizeOfInstructions=a.readUInt16(),this.maxComponentElements=a.readUInt16(),this.maxComponentDepth=a.readUInt16()},c.prototype.encode=function(a){var c;return c=new b,c.writeInt(this.version),c.writeUInt16(a.length),c.writeUInt16(this.maxPoints),c.writeUInt16(this.maxContours),c.writeUInt16(this.maxCompositePoints),c.writeUInt16(this.maxComponentContours),c.writeUInt16(this.maxZones),c.writeUInt16(this.maxTwilightPoints),c.writeUInt16(this.maxStorage),c.writeUInt16(this.maxFunctionDefs),c.writeUInt16(this.maxInstructionDefs),c.writeUInt16(this.maxStackElements),c.writeUInt16(this.maxSizeOfInstructions),c.writeUInt16(this.maxComponentElements),c.writeUInt16(this.maxComponentDepth),c.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}var d;return g(c,a),c.prototype.tag="post",c.prototype.parse=function(a){var b,c,d,e,f;switch(a.pos=this.offset,this.format=a.readInt(),this.italicAngle=a.readInt(),this.underlinePosition=a.readShort(),this.underlineThickness=a.readShort(),this.isFixedPitch=a.readInt(),this.minMemType42=a.readInt(),this.maxMemType42=a.readInt(),this.minMemType1=a.readInt(),this.maxMemType1=a.readInt(),this.format){case 65536:break;case 131072:for(d=a.readUInt16(),this.glyphNameIndex=[],b=e=0;d>=0?d>e:e>d;b=d>=0?++e:--e)this.glyphNameIndex.push(a.readUInt16());for(this.names=[],f=[];a.pos=0?d>c:c>d;b=d>=0?++c:--c)e.push(a.readUInt32());return e}.call(this)}},c.prototype.glyphFor=function(a){var b;switch(this.format){case 65536:return d[a]||".notdef";case 131072:return b=this.glyphNameIndex[a],257>=b?d[b]:this.names[b-258]||".notdef";case 151552:return d[a+this.offsets[a]]||".notdef";case 196608:return".notdef";case 262144:return this.map[a]||65535}},c.prototype.encode=function(a){var c,e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(!this.exists)return null;if(i=this.raw(),196608===this.format)return i;for(l=new b(i.slice(0,32)),l.writeUInt32(131072),l.pos=32,f=[],k=[],m=0,p=a.length;p>m;m++)c=a[m],h=this.glyphFor(c),g=d.indexOf(h),-1!==g?f.push(g):(f.push(257+k.length),k.push(h));for(l.writeUInt16(Object.keys(a).length),n=0,q=f.length;q>n;n++)e=f[n],l.writeUInt16(e);for(o=0,r=k.length;r>o;o++)j=k[o],l.writeByte(j.length),l.writeString(j);return l.data},d=".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\nzero one two three four five six seven eight nine colon semicolon less equal greater\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\nbracketleft backslash bracketright asciicircum underscore grave\na b c d e f g h i j k l m n o p q r s t u v w x y z\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\nsterling section bullet paragraph germandbls registered copyright trademark acute\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\nCacute cacute Ccaron ccaron dcroat".split(/\s+/g),c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e={}.hasOwnProperty,f=function(a,b){function c(){this.constructor=a}for(var d in b)e.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};d=c(76),b=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}return f(b,a),b.prototype.tag="OS/2",b.prototype.parse=function(a){var b;return a.pos=this.offset,this.version=a.readUInt16(),this.averageCharWidth=a.readShort(),this.weightClass=a.readUInt16(),this.widthClass=a.readUInt16(),this.type=a.readShort(),this.ySubscriptXSize=a.readShort(),this.ySubscriptYSize=a.readShort(),this.ySubscriptXOffset=a.readShort(),this.ySubscriptYOffset=a.readShort(),this.ySuperscriptXSize=a.readShort(),this.ySuperscriptYSize=a.readShort(),this.ySuperscriptXOffset=a.readShort(),this.ySuperscriptYOffset=a.readShort(),this.yStrikeoutSize=a.readShort(),this.yStrikeoutPosition=a.readShort(),this.familyClass=a.readShort(),this.panose=function(){var c,d;for(d=[],b=c=0;10>c;b=++c)d.push(a.readByte());return d}(),this.charRange=function(){var c,d;for(d=[],b=c=0;4>c;b=++c)d.push(a.readInt());return d}(),this.vendorID=a.readString(4),this.selection=a.readShort(),this.firstCharIndex=a.readShort(),this.lastCharIndex=a.readShort(),this.version>0&&(this.ascent=a.readShort(),this.descent=a.readShort(),this.lineGap=a.readShort(),this.winAscent=a.readShort(),this.winDescent=a.readShort(),this.codePageRange=function(){var c,d;for(d=[],b=c=0;2>c;b=++c)d.push(a.readInt());return d}(),this.version>1)?(this.xHeight=a.readShort(),this.capHeight=a.readShort(),this.defaultChar=a.readShort(),this.breakChar=a.readShort(),this.maxContext=a.readShort()):void 0},b.prototype.encode=function(){return this.raw()},b}(d),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="loca",c.prototype.parse=function(a){var b,c;return a.pos=this.offset,b=this.file.head.indexToLocFormat,0===b?this.offsets=function(){var b,d,e;for(e=[],c=b=0,d=this.length;d>b;c=b+=2)e.push(2*a.readUInt16());return e}.call(this):this.offsets=function(){var b,d,e;for(e=[],c=b=0,d=this.length;d>b;c=b+=4)e.push(a.readUInt32());return e}.call(this)},c.prototype.indexOf=function(a){return this.offsets[a]},c.prototype.lengthOf=function(a){return this.offsets[a+1]-this.offsets[a]},c.prototype.encode=function(a){var c,d,e,f,g,h,i,j,k,l,m;for(f=new b,g=0,j=a.length;j>g;g++)if(d=a[g],d>65535){for(m=this.offsets,h=0,k=m.length;k>h;h++)c=m[h],f.writeUInt32(c);return e={format:1,table:f.data}}for(i=0,l=a.length;l>i;i++)c=a[i],f.writeUInt16(c/2);return e={format:0,table:f.data}},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f,g,h={}.hasOwnProperty,i=function(a,b){function c(){this.constructor=a}for(var d in b)h.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},j=[].slice;g=c(76),d=c(72),e=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return i(c,a),c.prototype.tag="glyf",c.prototype.parse=function(a){return this.cache={}},c.prototype.glyphFor=function(a){var c,e,g,h,i,j,k,l,m,n;return a in this.cache?this.cache[a]:(h=this.file.loca,c=this.file.contents,e=h.indexOf(a),g=h.lengthOf(a),0===g?this.cache[a]=null:(c.pos=this.offset+e,j=new d(c.read(g)),i=j.readShort(),l=j.readShort(),n=j.readShort(),k=j.readShort(),m=j.readShort(),-1===i?this.cache[a]=new b(j,l,n,k,m):this.cache[a]=new f(j,i,l,n,k,m),this.cache[a]))},c.prototype.encode=function(a,b,c){var d,e,f,g,h,i;for(g=[],f=[],h=0,i=b.length;i>h;h++)e=b[h],d=a[e],f.push(g.length),d&&(g=g.concat(d.encode(c)));return f.push(g.length),{table:g,offsets:f}},c}(g),f=function(){function a(a,b,c,d,e,f){this.raw=a,this.numberOfContours=b,this.xMin=c,this.yMin=d,this.xMax=e,this.yMax=f,this.compound=!1}return a.prototype.encode=function(){return this.raw.data},a}(),b=function(){function a(a,d,h,i,j){var k,l;for(this.raw=a,this.xMin=d,this.yMin=h,this.xMax=i,this.yMax=j,this.compound=!0,this.glyphIDs=[],this.glyphOffsets=[],k=this.raw;;){if(l=k.readShort(),this.glyphOffsets.push(k.pos),this.glyphIDs.push(k.readShort()),!(l&c))break;l&b?k.pos+=4:k.pos+=2,l&g?k.pos+=8:l&e?k.pos+=4:l&f&&(k.pos+=2)}}var b,c,e,f,g,h;return b=1,f=8,c=32,e=64,g=128,h=256,a.prototype.encode=function(a){var b,c,e,f,g,h;for(e=new d(j.call(this.raw.data)),h=this.glyphIDs,b=f=0,g=h.length;g>f;b=++f)c=h[b],e.pos=this.glyphOffsets[b],e.writeShort(a[c]);return e.data},a}(),a.exports=e}).call(this)},function(a,b,c){(function(){var b,d;d=c(44),b=function(){function a(a){var b,d;this.contents=a,this.attributes={},this.glyphWidths={},this.boundingBoxes={},this.parse(),this.charWidths=function(){var a,b;for(b=[],d=a=0;255>=a;d=++a)b.push(this.glyphWidths[c[d]]);return b}.call(this),this.bbox=function(){var a,c,d,e;for(d=this.attributes.FontBBox.split(/\s+/),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(+b);return e}.call(this),this.ascender=+(this.attributes.Ascender||0),this.decender=+(this.attributes.Descender||0),this.lineGap=this.bbox[3]-this.bbox[1]-(this.ascender-this.decender)}var b,c;return a.open=function(b){return new a(d.readFileSync(b,"utf8"))},a.prototype.parse=function(){var a,b,c,d,e,f,g,h,i,j;for(f="",j=this.contents.split("\n"),h=0,i=j.length;i>h;h++)if(c=j[h],d=c.match(/^Start(\w+)/))f=d[1];else if(d=c.match(/^End(\w+)/))f="";else switch(f){case"FontMetrics":d=c.match(/(^\w+)\s+(.*)/),b=d[1],g=d[2],(a=this.attributes[b])?(Array.isArray(a)||(a=this.attributes[b]=[a]),a.push(g)):this.attributes[b]=g;break;case"CharMetrics":if(!/^CH?\s/.test(c))continue;e=c.match(/\bN\s+(\.?\w+)\s*;/)[1],this.glyphWidths[e]=+c.match(/\bWX\s+(\d+)\s*;/)[1]}},b={402:131,8211:150,8212:151,8216:145,8217:146,8218:130,8220:147,8221:148,8222:132,8224:134,8225:135,8226:149,8230:133,8364:128,8240:137,8249:139,8250:155,710:136,8482:153,338:140,339:156,732:152,352:138,353:154,376:159,381:142,382:158},a.prototype.encodeText=function(a){var c,d,e,f,g;for(e="",d=f=0,g=a.length;g>=0?g>f:f>g;d=g>=0?++f:--f)c=a.charCodeAt(d),c=b[c]||c,e+=String.fromCharCode(c);return e},a.prototype.characterToGlyph=function(a){return c[b[a]||a]},a.prototype.widthOfGlyph=function(a){return this.glyphWidths[a]},c=".notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n\nspace exclam quotedbl numbersign\ndollar percent ampersand quotesingle\nparenleft parenright asterisk plus\ncomma hyphen period slash\nzero one two three\nfour five six seven\neight nine colon semicolon\nless equal greater question\n\nat A B C\nD E F G\nH I J K\nL M N O\nP Q R S\nT U V W\nX Y Z bracketleft\nbackslash bracketright asciicircum underscore\n\ngrave a b c\nd e f g\nh i j k\nl m n o\np q r s\nt u v w\nx y z braceleft\nbar braceright asciitilde .notdef\n\nEuro .notdef quotesinglbase florin\nquotedblbase ellipsis dagger daggerdbl\ncircumflex perthousand Scaron guilsinglleft\nOE .notdef Zcaron .notdef\n.notdef quoteleft quoteright quotedblleft\nquotedblright bullet endash emdash\ntilde trademark scaron guilsinglright\noe .notdef zcaron ydieresis\n\nspace exclamdown cent sterling\ncurrency yen brokenbar section\ndieresis copyright ordfeminine guillemotleft\nlogicalnot hyphen registered macron\ndegree plusminus twosuperior threesuperior\nacute mu paragraph periodcentered\ncedilla onesuperior ordmasculine guillemotright\nonequarter onehalf threequarters questiondown\n\nAgrave Aacute Acircumflex Atilde\nAdieresis Aring AE Ccedilla\nEgrave Eacute Ecircumflex Edieresis\nIgrave Iacute Icircumflex Idieresis\nEth Ntilde Ograve Oacute\nOcircumflex Otilde Odieresis multiply\nOslash Ugrave Uacute Ucircumflex\nUdieresis Yacute Thorn germandbls\n\nagrave aacute acircumflex atilde\nadieresis aring ae ccedilla\negrave eacute ecircumflex edieresis\nigrave iacute icircumflex idieresis\neth ntilde ograve oacute\nocircumflex otilde odieresis divide\noslash ugrave uacute ucircumflex\nudieresis yacute thorn ydieresis".split(/\s+/),a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=c(79),e=c(77),d=function(){function a(a){this.font=a,this.subset={},this.unicodes={},this.next=33}return a.prototype.use=function(a){var b,c,d;{if("string"!=typeof a)return this.unicodes[a]?void 0:(this.subset[this.next]=a,this.unicodes[a]=this.next++);for(b=c=0,d=a.length;d>=0?d>c:c>d;b=d>=0?++c:--c)this.use(a.charCodeAt(b))}},a.prototype.encodeText=function(a){var b,c,d,e,f;for(d="",c=e=0,f=a.length;f>=0?f>e:e>f;c=f>=0?++e:--e)b=this.unicodes[a.charCodeAt(c)],d+=String.fromCharCode(b);return d},a.prototype.generateCmap=function(){var a,b,c,d,e;d=this.font.cmap.tables[0].codeMap,a={},e=this.subset;for(b in e)c=e[b],a[b]=d[c];return a},a.prototype.glyphIDs=function(){var a,b,c,d,e,g;d=this.font.cmap.tables[0].codeMap,a=[0],g=this.subset;for(b in g)c=g[b],e=d[c],null!=e&&f.call(a,e)<0&&a.push(e);return a.sort()},a.prototype.glyphsFor=function(a){var b,c,d,e,f,g,h;for(d={},f=0,g=a.length;g>f;f++)e=a[f],d[e]=this.font.glyf.glyphFor(e);b=[];for(e in d)c=d[e],(null!=c?c.compound:void 0)&&b.push.apply(b,c.glyphIDs);if(b.length>0){h=this.glyphsFor(b);for(e in h)c=h[e],d[e]=c}return d},a.prototype.encode=function(){var a,c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s;a=b.encode(this.generateCmap(),"unicode"),f=this.glyphsFor(this.glyphIDs()),n={0:0},r=a.charMap;for(c in r)h=r[c],n[h.old]=h["new"];m=a.maxGlyphID;for(o in f)o in n||(n[o]=m++);k=e.invert(n),l=Object.keys(k).sort(function(a,b){return a-b}),p=function(){var a,b,c;for(c=[],a=0,b=l.length;b>a;a++)g=l[a],c.push(k[g]);return c}(),d=this.font.glyf.encode(f,p,n),i=this.font.loca.encode(d.offsets),j=this.font.name.encode(),this.postscriptName=j.postscriptName,this.cmap={},s=a.charMap;for(c in s)h=s[c],this.cmap[c]=h.old;return q={cmap:a.table,glyf:d.table,loca:i.table,hmtx:this.font.hmtx.encode(p),hhea:this.font.hhea.encode(p),maxp:this.font.maxp.encode(p),post:this.font.post.encode(p),name:j.table,head:this.font.head.encode(i)},this.font.os2.exists&&(q["OS/2"]=this.font.os2.raw()),this.font.directory.encode(q)},a}(),a.exports=d}).call(this)},function(a,b,c){(function(){var b;b=c(90),a.exports={initText:function(){return this.x=0,this.y=0,this._lineGap=0},lineGap:function(a){return this._lineGap=a,this},moveDown:function(a){return null==a&&(a=1),this.y+=this.currentLineHeight(!0)*a+this._lineGap,this},moveUp:function(a){return null==a&&(a=1),this.y-=this.currentLineHeight(!0)*a+this._lineGap,this},_text:function(a,c,d,e,f){var g,h,i,j,k;if(e=this._initOptions(c,d,e),a=""+a,e.wordSpacing&&(a=a.replace(/\s{2,}/g," ")),e.width)h=this._wrapper,h||(h=new b(this,e),h.on("line",f)),this._wrapper=e.continued?h:null,this._textOptions=e.continued?e:null,h.wrap(a,e);else for(k=a.split("\n"),i=0,j=k.length;j>i;i++)g=k[i],f(g,e);return this},text:function(a,b,c,d){return this._text(a,b,c,d,this._line.bind(this))},widthOfString:function(a,b){return null==b&&(b={}),this._font.widthOfString(a,this._fontSize)+(b.characterSpacing||0)*(a.length-1)},heightOfString:function(a,b){var c,d,e,f;return null==b&&(b={}),e=this.x,f=this.y,b=this._initOptions(b),b.height=1/0,d=b.lineGap||this._lineGap||0,this._text(a,this.x,this.y,b,function(a){return function(b,c){return a.y+=a.currentLineHeight(!0)+d}}(this)),c=this.y-f,this.x=e,this.y=f,c},list:function(a,c,d,e,f){var g,h,i,j,k,l,m,n;return e=this._initOptions(c,d,e),n=Math.round(this._font.ascender/1e3*this._fontSize/3),i=e.textIndent||5*n,j=e.bulletIndent||8*n,l=1,k=[],m=[],g=function(a){var b,c,d,e,f;for(f=[],b=d=0,e=a.length;e>d;b=++d)c=a[b],Array.isArray(c)?(l++,g(c),f.push(l--)):(k.push(c),f.push(m.push(l)));return f},g(a),f=new b(this,e),f.on("line",this._line.bind(this)),l=1,h=0,f.on("firstLine",function(a){return function(){var b,c;return(c=m[h++])!==l&&(b=j*(c-l),a.x+=b,f.lineWidth-=b,l=c),a.circle(a.x-i+n,a.y+n+n/2,n),a.fill()}}(this)),f.on("sectionStart",function(a){return function(){var b;return b=i+j*(l-1),a.x+=b,f.lineWidth-=b}}(this)),f.on("sectionEnd",function(a){return function(){var b;return b=i+j*(l-1),a.x-=b,f.lineWidth+=b}}(this)),f.wrap(k.join("\n"),e),this},_initOptions:function(a,b,c){var d,e,f,g;if(null==a&&(a={}),null==c&&(c={}),"object"==typeof a&&(c=a,a=null),c=function(){var a,b,d;b={};for(a in c)d=c[a],b[a]=d;return b}(),this._textOptions){g=this._textOptions;for(d in g)f=g[d],"continued"!==d&&null==c[d]&&(c[d]=f)}return null!=a&&(this.x=a),null!=b&&(this.y=b),c.lineBreak!==!1&&(e=this.page.margins,null==c.width&&(c.width=this.page.width-this.x-e.right)),c.columns||(c.columns=0),null==c.columnGap&&(c.columnGap=18),c},_line:function(a,b,c){var d;return null==b&&(b={}),this._fragment(a,this.x,this.y,b),d=b.lineGap||this._lineGap||0,c?this.y+=this.currentLineHeight(!0)+d:this.x+=this.widthOfString(a)},_fragment:function(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(a=""+a,0!==a.length){if(e=d.align||"left",r=d.wordSpacing||0,f=d.characterSpacing||0,d.width)switch(e){case"right":p=this.widthOfString(a.replace(/\s+$/,""),d),b+=d.lineWidth-p;break;case"center":b+=d.lineWidth/2-d.textWidth/2;break;case"justify":s=a.trim().split(/\s+/),p=this.widthOfString(a.replace(/\s+/g,""),d),o=this.widthOfString(" ")+f,r=Math.max(0,(d.lineWidth-p)/Math.max(1,s.length-1)-o)}if(n=d.textWidth+r*(d.wordCount-1)+f*(a.length-1),d.link&&this.link(b,c,n,this.currentLineHeight(),d.link),(d.underline||d.strike)&&(this.save(),d.stroke||this.strokeColor.apply(this,this._fillColor),k=this._fontSize<10?.5:Math.floor(this._fontSize/10),this.lineWidth(k),h=d.underline?1:2,l=c+this.currentLineHeight()/h,d.underline&&(l-=k),this.moveTo(b,l),this.lineTo(b+n,l),this.stroke(),this.restore()),this.save(),this.transform(1,0,0,-1,0,this.page.height),c=this.page.height-c-this._font.ascender/1e3*this._fontSize,null==(t=this.page.fonts)[w=this._font.id]&&(t[w]=this._font.ref()),this._font.use(a),this.addContent("BT"),this.addContent(""+b+" "+c+" Td"),this.addContent("/"+this._font.id+" "+this._fontSize+" Tf"),m=d.fill&&d.stroke?2:d.stroke?1:0,m&&this.addContent(""+m+" Tr"),f&&this.addContent(""+f+" Tc"),r){for(s=a.trim().split(/\s+/),r+=this.widthOfString(" ")+f,r*=1e3/this._fontSize,g=[],u=0,v=s.length;v>u;u++)q=s[u],i=this._font.encode(q),i=function(){var a,b,c;for(c=[],j=a=0,b=i.length;b>a;j=a+=1)c.push(i.charCodeAt(j).toString(16));return c}().join(""),g.push("<"+i+"> "+-r);this.addContent("["+g.join(" ")+"] TJ")}else i=this._font.encode(a),i=function(){var a,b,c;for(c=[],j=a=0,b=i.length;b>a;j=a+=1)c.push(i.charCodeAt(j).toString(16));return c}().join(""),this.addContent("<"+i+"> Tj");return this.addContent("ET"),this.restore()}}}}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};b=c(26).EventEmitter,d=c(91),e=function(a){function b(a,b){var c;this.document=a,this.indent=b.indent||0,this.characterSpacing=b.characterSpacing||0,this.wordSpacing=0===b.wordSpacing,this.columns=b.columns||1,this.columnGap=null!=(c=b.columnGap)?c:18,this.lineWidth=(b.width-this.columnGap*(this.columns-1))/this.columns,this.spaceLeft=this.lineWidth,this.startX=this.document.x,this.startY=this.document.y,this.column=1,this.ellipsis=b.ellipsis,this.continuedX=0,null!=b.height?(this.height=b.height,this.maxY=this.startY+b.height):this.maxY=this.document.page.maxY(),this.on("firstLine",function(a){return function(b){var c;return c=a.continuedX||a.indent,a.document.x+=c,a.lineWidth-=c,a.once("line",function(){return a.document.x-=c,a.lineWidth+=c,b.continued&&!a.continuedX&&(a.continuedX=a.indent),b.continued?void 0:a.continuedX=0})}}(this)),this.on("lastLine",function(a){return function(b){var c;return c=b.align,"justify"===c&&(b.align="left"),a.lastLine=!0,a.once("line",function(){return a.document.y+=b.paragraphGap||0,b.align=c,a.lastLine=!1})}}(this))}return g(b,a),b.prototype.wordWidth=function(a){return this.document.widthOfString(a,this)+this.characterSpacing+this.wordSpacing},b.prototype.eachWord=function(a,b){var c,e,f,g,h,i,j,k,l,m;for(e=new d(a),h=null,m={};c=e.nextBreak();){if(l=a.slice((null!=h?h.position:void 0)||0,c.position),k=null!=m[l]?m[l]:m[l]=this.wordWidth(l),k>this.lineWidth+this.continuedX)for(i=h,f={};l.length;){for(g=l.length;k>this.spaceLeft;)k=this.wordWidth(l.slice(0,--g));if(f.required=gthis.maxY||f>this.maxY)&&this.nextSection(),c="",g=0,h=0,e=0,i=this.document.y,d=function(a){return function(){return b.textWidth=g+a.wordSpacing*(h-1),b.wordCount=h,b.lineWidth=a.lineWidth,i=a.document.y,a.emit("line",c,b,a),e++}}(this),this.emit("sectionStart",b,this),this.eachWord(a,function(a){return function(e,f,i,j){var k,l;if((null==j||j.required)&&(a.emit("firstLine",b,a),a.spaceLeft=a.lineWidth),f<=a.spaceLeft&&(c+=e,g+=f,h++),i.required||f>a.spaceLeft){if(i.required&&a.emit("lastLine",b,a),k=a.document.currentLineHeight(!0),null!=a.height&&a.ellipsis&&a.document.y+2*k>a.maxY&&a.column>=a.columns){for(a.ellipsis===!0&&(a.ellipsis="…"),c=c.replace(/\s+$/,""),g=a.wordWidth(c+a.ellipsis);g>a.lineWidth;)c=c.slice(0,-1).replace(/\s+$/,""),g=a.wordWidth(c+a.ellipsis);c+=a.ellipsis}return d(),a.document.y+k>a.maxY&&(l=a.nextSection(),!l)?(h=0,c="",!1):i.required?(f>a.spaceLeft&&(c=e,g=f,h=1,d()),a.spaceLeft=a.lineWidth,c="",g=0,h=0):(a.spaceLeft=a.lineWidth-f,c=e,g=f,h=1)}return a.spaceLeft-=f}}(this)),h>0&&(this.emit("lastLine",b,this),d()),this.emit("sectionEnd",b,this),b.continued===!0?(e>1&&(this.continuedX=0),this.continuedX+=b.textWidth,this.document.y=i):this.document.x=this.startX},b.prototype.nextSection=function(a){var b;if(this.emit("sectionEnd",a,this),++this.column>this.columns){if(null!=this.height)return!1;this.document.addPage(),this.column=1,this.startY=this.document.page.margins.top,this.maxY=this.document.page.maxY(),this.document.x=this.startX,this.document._fillColor&&(b=this.document).fillColor.apply(b,this.document._fillColor),this.emit("pageBreak",a,this)}else this.document.x+=this.lineWidth+this.columnGap,this.document.y=this.startY,this.emit("columnBreak",a,this);return this.emit("sectionStart",a,this),!0},b}(b),a.exports=e}).call(this)},function(a,b,c){(function(){var b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D;w=c(92),A=new w(c(93)),C=c(94),f=C.BK,k=C.CR,o=C.LF,q=C.NL,g=C.CB,e=C.BA,v=C.SP,x=C.WJ,v=C.SP,f=C.BK,o=C.LF,q=C.NL,b=C.AI,d=C.AL,t=C.SA,u=C.SG,y=C.XX,i=C.CJ,m=C.ID,r=C.NS,z=C.characterClasses,D=c(95),l=D.DI_BRK,n=D.IN_BRK,h=D.CI_BRK,j=D.CP_BRK,s=D.PR_BRK,B=D.pairTable,p=function(){function a(a){this.string=a,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null}var c,m,p;return a.prototype.nextCodePoint=function(){var a,b;return a=this.string.charCodeAt(this.pos++),b=this.string.charCodeAt(this.pos),a>=55296&&56319>=a&&b>=56320&&57343>=b?(this.pos++,1024*(a-55296)+(b-56320)+65536):a},m=function(a){switch(a){case b:return d;case t:case u:case y:return d;case i:return r;default:return a}},p=function(a){switch(a){case o:case q:return f;case g:return e;case v:return x;default:return a}},a.prototype.nextCharClass=function(a){return null==a&&(a=!1),m(A.get(this.nextCodePoint()))},c=function(){function a(a,b){this.position=a,this.required=null!=b?b:!1}return a}(),a.prototype.nextBreak=function(){var a,b,d;for(null==this.curClass&&(this.curClass=p(this.nextCharClass()));this.pos=this.string.length?this.lastPos>n,g=1<>p,k=1024>>p,h=l+k,r=h,q=32,f=r+q,c=1<a||a>1114111?this.errorValue:55296>a||a>56319&&65535>=a?(b=(this.data[a>>p]<=a?(b=(this.data[l+(a-55296>>p)]<>n)],b=this.data[b+(a>>p&i)],b=(b<h?(n=i,j=i/m):(j=g,n=g*m),"center"===f.align?c=c+i/2-n/2:"right"===f.align&&(c=c+i-n),"center"===f.valign?e=e+g/2-j/2:"bottom"===f.valign&&(e=e+g-j)),this.y===e&&(this.y+=j),this.save(),this.transform(n,0,0,-j,c,e+j),this.addContent("/"+l.label+" Do"),this.restore(),this}}}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(b){(function(){var d,e,f,g,h;h=c(44),d=c(72),e=c(98),g=c(99),f=function(){function a(){}return a.open=function(a,c){var d,f;if(b.isBuffer(a))d=a;else if(f=/^data:.+;base64,(.*)$/.exec(a))d=new b(f[1],"base64");else if(d=h.readFileSync(a),!d)return;if(255===d[0]&&216===d[1])return new e(d,c);if(137===d[0]&&"PNG"===d.toString("ascii",1,4))return new g(d,c);throw new Error("Unknown image format.")},a}(),a.exports=f}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(){var b,d,e=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};d=c(44),b=function(){function a(a,c){var d,f,g;if(this.data=a,this.label=c,65496!==this.data.readUInt16BE(0))throw"SOI not found in JPEG";for(g=2;g=0));)g+=this.data.readUInt16BE(g);if(e.call(b,f)<0)throw"Invalid JPEG.";g+=2,this.bits=this.data[g++],this.height=this.data.readUInt16BE(g),g+=2,this.width=this.data.readUInt16BE(g),g+=2,d=this.data[g++],this.colorSpace=function(){switch(d){case 1:return"DeviceGray";case 3:return"DeviceRGB";case 4:return"DeviceCMYK"}}(),this.obj=null}var b;return b=[65472,65473,65474,65475,65477,65478,65479,65480,65481,65482,65483,65484,65485,65486,65487],a.prototype.embed=function(a){return this.obj?void 0:(this.obj=a.ref({Type:"XObject",Subtype:"Image",BitsPerComponent:this.bits,Width:this.width,Height:this.height,ColorSpace:this.colorSpace,Filter:"DCTDecode"}),"DeviceCMYK"===this.colorSpace&&(this.obj.data.Decode=[1,0,1,0,1,0,1,0]),this.obj.end(this.data),this.data=null)},a}(),a.exports=b}).call(this)},function(a,b,c){(function(b){(function(){var d,e,f;f=c(47),d=c(100),e=function(){function a(a,b){this.label=b,this.image=new d(a),this.width=this.image.width,this.height=this.image.height,this.imgData=this.image.imgData,this.obj=null}return a.prototype.embed=function(a){var c,d,e,f,g,h,i,j;if(this.document=a,!this.obj){if(this.obj=a.ref({Type:"XObject",Subtype:"Image",BitsPerComponent:this.image.bits,Width:this.width,Height:this.height,Filter:"FlateDecode"}),this.image.hasAlphaChannel||(e=a.ref({Predictor:15,Colors:this.image.colors,BitsPerComponent:this.image.bits,Columns:this.width}),this.obj.data.DecodeParms=e,e.end()),0===this.image.palette.length?this.obj.data.ColorSpace=this.image.colorSpace:(d=a.ref(),d.end(new b(this.image.palette)),this.obj.data.ColorSpace=["Indexed","DeviceRGB",this.image.palette.length/3-1,d]),this.image.transparency.grayscale)return g=this.image.transparency.greyscale,this.obj.data.Mask=[g,g];if(this.image.transparency.rgb){for(f=this.image.transparency.rgb,c=[],i=0,j=f.length;j>i;i++)h=f[i],c.push(h,h);return this.obj.data.Mask=c}return this.image.transparency.indexed?this.loadIndexedAlphaChannel():this.image.hasAlphaChannel?this.splitAlphaChannel():this.finalize()}},a.prototype.finalize=function(){var a;return this.alphaChannel&&(a=this.document.ref({Type:"XObject",Subtype:"Image",Height:this.height,Width:this.width,BitsPerComponent:8,Filter:"FlateDecode",ColorSpace:"DeviceGray",Decode:[0,1]}),a.end(this.alphaChannel),this.obj.data.SMask=a),this.obj.end(this.imgData),this.image=null,this.imgData=null},a.prototype.splitAlphaChannel=function(){return this.image.decodePixels(function(a){return function(c){var d,e,g,h,i,j,k,l,m;for(g=a.image.colors*a.image.bits/8,m=a.width*a.height,j=new b(m*g),e=new b(m),i=l=d=0,k=c.length;k>i;)j[l++]=c[i++],j[l++]=c[i++],j[l++]=c[i++],e[d++]=c[i++];return h=0,f.deflate(j,function(b,c){if(a.imgData=c,b)throw b;return 2===++h?a.finalize():void 0}),f.deflate(e,function(b,c){if(a.alphaChannel=c,b)throw b;return 2===++h?a.finalize():void 0})}}(this))},a.prototype.loadIndexedAlphaChannel=function(a){var c;return c=this.image.transparency.indexed,this.image.decodePixels(function(a){return function(d){var e,g,h,i,j;for(e=new b(a.width*a.height),g=0,h=i=0,j=d.length;j>i;h=i+=1)e[g++]=c[d[h]];return f.deflate(e,function(b,c){if(a.alphaChannel=c,b)throw b;return a.finalize()})}}(this))},a}(),a.exports=e}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(b){(function(){var d,e,f;e=c(44),f=c(47),a.exports=d=function(){function a(a){var c,d,e,f,g,h,i,j,k,l,m;for(this.data=a,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.text={};;){switch(c=this.readUInt32(),h=function(){var a,b;for(b=[],e=a=0;4>a;e=++a)b.push(String.fromCharCode(this.data[this.pos++]));return b}.call(this).join("")){case"IHDR":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case"PLTE":this.palette=this.read(c);break;case"IDAT":for(e=k=0;c>k;e=k+=1)this.imgData.push(this.data[this.pos++]);break;case"tRNS":switch(this.transparency={},this.colorType){case 3:if(this.transparency.indexed=this.read(c),i=255-this.transparency.indexed.length,i>0)for(e=l=0;i>=0?i>l:l>i;e=i>=0?++l:--l)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(c)[0];break;case 2:this.transparency.rgb=this.read(c)}break;case"tEXt":j=this.read(c),f=j.indexOf(0),g=String.fromCharCode.apply(String,j.slice(0,f)),this.text[g]=String.fromCharCode.apply(String,j.slice(f+1));break;case"IEND":return this.colors=function(){switch(this.colorType){case 0:case 3:case 4:return 1;case 2:case 6:return 3}}.call(this),this.hasAlphaChannel=4===(m=this.colorType)||6===m,d=this.colors+(this.hasAlphaChannel?1:0),this.pixelBitlength=this.bits*d,this.colorSpace=function(){switch(this.colors){case 1:return"DeviceGray";case 3:return"DeviceRGB"}}.call(this),void(this.imgData=new b(this.imgData));default:this.pos+=c}if(this.pos+=4,this.pos>this.data.length)throw new Error("Incomplete or corrupt PNG file")}}return a.decode=function(b,c){return e.readFile(b,function(b,d){var e;return e=new a(d),e.decode(function(a){return c(a)})})},a.load=function(b){var c;return c=e.readFileSync(b),new a(c)},a.prototype.read=function(a){var b,c,d;for(d=[],b=c=0;a>=0?a>c:c>a;b=a>=0?++c:--c)d.push(this.data[this.pos++]);return d},a.prototype.readUInt32=function(){var a,b,c,d;return a=this.data[this.pos++]<<24,b=this.data[this.pos++]<<16,c=this.data[this.pos++]<<8,d=this.data[this.pos++],a|b|c|d},a.prototype.readUInt16=function(){var a,b;return a=this.data[this.pos++]<<8,b=this.data[this.pos++],a|b},a.prototype.decodePixels=function(a){var c=this;return f.inflate(this.imgData,function(d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B;if(d)throw d;for(q=c.pixelBitlength/8,u=q*c.width,r=new b(u*c.height),k=e.length,t=0,s=0,g=0;k>s;){switch(e[s++]){case 0:for(i=x=0;u>x;i=x+=1)r[g++]=e[s++];break;case 1:for(i=y=0;u>y;i=y+=1)f=e[s++],j=q>i?0:r[g-q],r[g++]=(f+j)%256;break;case 2:for(i=z=0;u>z;i=z+=1)f=e[s++],h=(i-i%q)/q,v=t&&r[(t-1)*u+h*q+i%q],r[g++]=(v+f)%256;break;case 3:for(i=A=0;u>A;i=A+=1)f=e[s++],h=(i-i%q)/q,j=q>i?0:r[g-q],v=t&&r[(t-1)*u+h*q+i%q],r[g++]=(f+Math.floor((j+v)/2))%256;break;case 4:for(i=B=0;u>B;i=B+=1)f=e[s++],h=(i-i%q)/q,j=q>i?0:r[g-q],0===t?v=w=0:(v=r[(t-1)*u+h*q+i%q],w=h&&r[(t-1)*u+(h-1)*q+i%q]),l=j+v-w,m=Math.abs(l-j),o=Math.abs(l-v),p=Math.abs(l-w),n=o>=m&&p>=m?j:p>=o?v:w,r[g++]=(f+n)%256;break;default:throw new Error("Invalid filter algorithm: "+e[s-1])}t++}return a(r)})},a.prototype.decodePalette=function(){var a,c,d,e,f,g,h,i,j,k;for(e=this.palette,h=this.transparency.indexed||[],g=new b(h.length+e.length),f=0,d=e.length,a=0,c=i=0,j=e.length;j>i;c=i+=3)g[f++]=e[c],g[f++]=e[c+1],g[f++]=e[c+2],g[f++]=null!=(k=h[a++])?k:255;return g},a.prototype.copyToImageData=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;if(d=this.colors,k=null,c=this.hasAlphaChannel,this.palette.length&&(k=null!=(m=this._decodedPalette)?m:this._decodedPalette=this.decodePalette(),d=4,c=!0),e=(null!=a?a.data:void 0)||a,j=e.length,g=k||b,f=h=0,1===d)for(;j>f;)i=k?4*b[f/4]:h,l=g[i++],e[f++]=l,e[f++]=l,e[f++]=l,e[f++]=c?g[i++]:255,h=i;else for(;j>f;)i=k?4*b[f/4]:h,e[f++]=g[i++],e[f++]=g[i++],e[f++]=g[i++],e[f++]=c?g[i++]:255,h=i},a.prototype.decode=function(a){var c,d=this;return c=new b(this.width*this.height*4),this.decodePixels(function(b){return d.copyToImageData(c,b),a(c)})},a}()}).call(this)}).call(b,c(2).Buffer)},function(a,b){(function(){a.exports={annotate:function(a,b,c,d,e){var f,g,h;e.Type="Annot",e.Rect=this._convertRect(a,b,c,d),e.Border=[0,0,0],"Link"!==e.Subtype&&null==e.C&&(e.C=this._normalizeColor(e.color||[0,0,0])),delete e.color,"string"==typeof e.Dest&&(e.Dest=new String(e.Dest));for(f in e)h=e[f],e[f[0].toUpperCase()+f.slice(1)]=h;return g=this.ref(e),this.page.annotations.push(g),g.end(),this},note:function(a,b,c,d,e,f){return null==f&&(f={}),f.Subtype="Text",f.Contents=new String(e),f.Name="Comment",null==f.color&&(f.color=[243,223,92]),this.annotate(a,b,c,d,f)},link:function(a,b,c,d,e,f){return null==f&&(f={}),f.Subtype="Link",f.A=this.ref({S:"URI",URI:new String(e)}),f.A.end(),this.annotate(a,b,c,d,f)},_markup:function(a,b,c,d,e){var f,g,h,i,j;return null==e&&(e={}),j=this._convertRect(a,b,c,d),f=j[0],h=j[1],g=j[2],i=j[3],e.QuadPoints=[f,i,g,i,f,h,g,h],e.Contents=new String,this.annotate(a,b,c,d,e)},highlight:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Highlight",null==e.color&&(e.color=[241,238,148]),this._markup(a,b,c,d,e)},underline:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Underline",this._markup(a,b,c,d,e)},strike:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="StrikeOut",this._markup(a,b,c,d,e)},lineAnnotation:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Line",e.Contents=new String,e.L=[a,this.page.height-b,c,this.page.height-d],this.annotate(a,b,c,d,e)},rectAnnotation:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Square",e.Contents=new String,this.annotate(a,b,c,d,e)},ellipseAnnotation:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Circle",e.Contents=new String,this.annotate(a,b,c,d,e)},textAnnotation:function(a,b,c,d,e,f){return null==f&&(f={}),f.Subtype="FreeText",f.Contents=new String(e),f.DA=new String,this.annotate(a,b,c,d,f)},_convertRect:function(a,b,c,d){var e,f,g,h,i,j,k,l,m;return l=b,b+=d,k=a+c,m=this._ctm,e=m[0],f=m[1],g=m[2],h=m[3],i=m[4],j=m[5],a=e*a+g*b+i,b=f*a+h*b+j,k=e*k+g*l+i,l=f*k+h*l+j,[a,b,k,l]}}}).call(this)},function(a,b){a.exports={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],EXECUTIVE:[521.86,756],FOLIO:[612,936],LEGAL:[612,1008],LETTER:[612,792],TABLOID:[792,1224]}},function(a,b,c){(function(b){"use strict";function d(a,b){this.pdfDoc=a,this.imageDictionary=b||{}}var e=(c(24),c(97));d.prototype.measureImage=function(a){function c(a){var c=g.imageDictionary[a];if(!c)return a;var d=c.indexOf("base64,");if(0>d)throw"invalid image format, images dictionary should contain dataURL entries";return new b(c.substring(d+7),"base64")}var d,f,g=this;return this.pdfDoc._imageRegistry[a]?d=this.pdfDoc._imageRegistry[a]:(f="I"+ ++this.pdfDoc._imageCount,d=e.open(c(a),f),d.embed(this.pdfDoc),this.pdfDoc._imageRegistry[a]=d),{width:d.width,height:d.height}},a.exports=d}).call(b,c(2).Buffer)},function(a,b){"use strict";function c(a){for(var b=[],c=null,d=0,e=a.inlines.length;e>d;d++){var f=a.inlines[d],g=f.decoration;if(g){var h=f.decorationColor||f.color||"black",i=f.decorationStyle||"solid";g=Array.isArray(g)?g:[g];for(var j=0,k=g.length;k>j;j++){var l=g[j];c&&l===c.decoration&&i===c.decorationStyle&&h===c.decorationColor&&"lineThrough"!==l?c.inlines.push(f):(c={line:a,decoration:l,decorationColor:h,decorationStyle:i,inlines:[f]},b.push(c))}}else c=null}return b}function d(a,b,c,d){function e(){for(var b=0,c=0,d=a.inlines.length;d>c;c++){var e=a.inlines[c];b=e.fontSize>b?c:b}return a.inlines[b]}function f(){for(var b=0,c=0,d=a.inlines.length;d>c;c++)b+=a.inlines[c].width;return b}var g=a.inlines[0],h=e(),i=f(),j=a.line.getAscenderHeight(),k=h.font.ascender/1e3*h.fontSize,l=h.height,m=l-k,n=.5+.12*Math.floor(Math.max(h.fontSize-8,0)/2);switch(a.decoration){case"underline":c+=j+.45*m;break;case"overline":c+=j-.85*k;break;case"lineThrough":c+=j-.25*k;break;default:throw"Unkown decoration : "+a.decoration}if(d.save(),"double"===a.decorationStyle){var o=Math.max(.5,2*n);d.fillColor(a.decorationColor).rect(b+g.x,c-n/2,i,n/2).fill().rect(b+g.x,c+o-n/2,i,n/2).fill()}else if("dashed"===a.decorationStyle){var p=Math.ceil(i/6.8),q=b+g.x;d.rect(q,c,i,n).clip(),d.fillColor(a.decorationColor);for(var r=0;p>r;r++)d.rect(q,c-n/2,3.96,n).fill(),q+=6.8}else if("dotted"===a.decorationStyle){var s=Math.ceil(i/(3*n)),t=b+g.x;d.rect(t,c,i,n).clip(),d.fillColor(a.decorationColor);for(var u=0;s>u;u++)d.rect(t,c-n/2,n,n).fill(),t+=3*n}else if("wavy"===a.decorationStyle){var v=.7,w=1,x=Math.ceil(i/(2*v))+1,y=b+g.x-1;d.rect(b+g.x,c-w,i,c+w).clip(),d.lineWidth(.24),d.moveTo(y,c);for(var z=0;x>z;z++)d.bezierCurveTo(y+v,c-w,y+2*v,c-w,y+3*v,c).bezierCurveTo(y+4*v,c+w,y+5*v,c+w,y+6*v,c),y+=6*v;d.stroke(a.decorationColor)}else d.fillColor(a.decorationColor).rect(b+g.x,c-n/2,i,n).fill();d.restore()}function e(a,b,e,f){for(var g=c(a),h=0,i=g.length;i>h;h++)d(g[h],b,e,f)}function f(a,b,c,d){for(var e=a.getHeight(),f=0,g=a.inlines.length;g>f;f++){var h=a.inlines[f];h.background&&d.fillColor(h.background).rect(b+h.x,c,h.width,e).fill()}}a.exports={drawBackground:f,drawDecorations:e}},function(a,b,c){var d,e,f=f||function(a){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var b=a.document,c=function(){return a.URL||a.webkitURL||a},d=b.createElementNS("http://www.w3.org/1999/xhtml","a"),e="download"in d,f=function(a){var b=new MouseEvent("click");a.dispatchEvent(b)},g=a.webkitRequestFileSystem,h=a.requestFileSystem||g||a.mozRequestFileSystem,i=function(b){(a.setImmediate||a.setTimeout)(function(){throw b},0)},j="application/octet-stream",k=0,l=500,m=function(b){var d=function(){"string"==typeof b?c().revokeObjectURL(b):b.remove()};a.chrome?d():setTimeout(d,l)},n=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"==typeof e)try{e.call(a,c||a)}catch(f){i(f)}}},o=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},p=function(b,i,l){l||(b=o(b));var p,q,r,s=this,t=b.type,u=!1,v=function(){n(s,"writestart progress write writeend".split(" "))},w=function(){if(!u&&p||(p=c().createObjectURL(b)),q)q.location.href=p;else{var d=a.open(p,"_blank");void 0==d&&"undefined"!=typeof safari&&(a.location.href=p)}s.readyState=s.DONE,v(),m(p)},x=function(a){return function(){return s.readyState!==s.DONE?a.apply(this,arguments):void 0}},y={create:!0,exclusive:!1};return s.readyState=s.INIT,i||(i="download"),e?(p=c().createObjectURL(b),d.href=p,d.download=i,void setTimeout(function(){f(d),v(),m(p),s.readyState=s.DONE})):(a.chrome&&t&&t!==j&&(r=b.slice||b.webkitSlice,b=r.call(b,0,b.size,j),u=!0),g&&"download"!==i&&(i+=".download"),(t===j||g)&&(q=a),h?(k+=b.size,void h(a.TEMPORARY,k,x(function(a){a.root.getDirectory("saved",y,x(function(a){var c=function(){a.getFile(i,y,x(function(a){a.createWriter(x(function(c){c.onwriteend=function(b){q.location.href=a.toURL(),s.readyState=s.DONE,n(s,"writeend",b),m(a)},c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&w()},"writestart progress write abort".split(" ").forEach(function(a){c["on"+a]=s["on"+a]}),c.write(b),s.abort=function(){c.abort(),s.readyState=s.DONE},s.readyState=s.WRITING}),w)}),w)};a.getFile(i,{create:!1},x(function(a){a.remove(),c()}),x(function(a){a.code===a.NOT_FOUND_ERR?c():w()}))}),w)}),w)):void w())},q=p.prototype,r=function(a,b,c){return new p(a,b,c)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(a,b,c){return c||(a=o(a)),navigator.msSaveOrOpenBlob(a,b||"download")}:(q.abort=function(){var a=this;a.readyState=a.DONE,n(a,"abort")},q.readyState=q.INIT=0,q.WRITING=1,q.DONE=2,q.error=q.onwritestart=q.onprogress=q.onwrite=q.onabort=q.onerror=q.onwriteend=null,r)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof a&&a.exports?a.exports.saveAs=f:null!==c(106)&&null!=c(107)&&(d=[],e=function(){return f}.apply(b,d),!(void 0!==e&&(a.exports=e)))},function(a,b){a.exports=function(){throw new Error("define cannot be used indirect")}},function(a,b){(function(b){a.exports=b}).call(b,{})}]),window.pdfMake=window.pdfMake||{},window.pdfMake.vfs={"LICENSE.txt":"DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNA0KICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLw0KDQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04NCg0KICAgMS4gRGVmaW5pdGlvbnMuDQoNCiAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sDQogICAgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4NCg0KICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkNCiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4NCg0KICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbA0KICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbg0KICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwNCiAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQ0KICAgICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3INCiAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQ0KICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4NCg0KICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQ0KICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4NCg0KICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsDQogICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uDQogICAgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLg0KDQogICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbA0KICAgICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dA0KICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLA0KICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLg0KDQogICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcg0KICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQ0KICAgICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrDQogICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLg0KDQogICAgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0DQogICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlDQogICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zDQogICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3Nlcw0KICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluDQogICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsDQogICAgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLg0KDQogICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZw0KICAgICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucw0KICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5DQogICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyDQogICAgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YNCiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIg0KICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudA0KICAgICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8NCiAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsDQogICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQ0KICAgICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0DQogICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQ0KICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iDQoNCiAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5DQogICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQNCiAgICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLg0KDQogICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YNCiAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwNCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlDQogICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwNCiAgICAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQ0KICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4NCg0KICAgMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mDQogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsDQogICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQ0KICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsDQogICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywNCiAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlDQogICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcg0KICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQ0KICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UNCiAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhDQogICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrDQogICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdA0KICAgICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcw0KICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlDQogICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuDQoNCiAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlDQogICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQNCiAgICAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91DQogICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoNCg0KICAgICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3INCiAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZA0KDQogICAgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzDQogICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kDQoNCiAgICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3Jrcw0KICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQNCiAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLA0KICAgICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YNCiAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kDQoNCiAgICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cw0KICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QNCiAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQNCiAgICAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QNCiAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUNCiAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZA0KICAgICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3INCiAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwNCiAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kDQogICAgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzDQogICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZA0KICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uDQogICAgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUNCiAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQNCiAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQNCiAgICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuDQoNCiAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZA0KICAgICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucw0KICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcg0KICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsDQogICAgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgNCiAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuDQoNCiAgIDUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwNCiAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaw0KICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YNCiAgICAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLg0KICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQ0KICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQNCiAgICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4NCg0KICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQ0KICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLA0KICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlDQogICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4NCg0KICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yDQogICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoDQogICAgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywNCiAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcg0KICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMNCiAgICAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEENCiAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQ0KICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55DQogICAgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuDQoNCiAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LA0KICAgICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsDQogICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQ0KICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUNCiAgICAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwNCiAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQ0KICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQ0KICAgICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLA0KICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwNCiAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3INCiAgICAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4NCg0KICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZw0KICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwNCiAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksDQogICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcw0KICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkNCiAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmDQogICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksDQogICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkNCiAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24NCiAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5Lg0KDQogICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMNCg0KICAgQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLg0KDQogICAgICBUbyBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxvd2luZw0KICAgICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIg0KICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUNCiAgICAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBzaG91bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlDQogICAgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0aGF0IGENCiAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUNCiAgICAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2llcg0KICAgICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLg0KDQogICBDb3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0NCg0KICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQogICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQogICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCg0KICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KDQogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQogICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQogICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCg==", -"Roboto-Italic.ttf":"AAEAAAAOAIAAAwBgR0RFRgsuCy8AATmYAAAASEdQT1OC3T4oAAE54AAAkPhHU1VCeolvLwABytgAAANsT1MvMrivKS4AAAFoAAAAYFZETVhu6nZPAAASPAAABeBjbWFwg/CFnwAAGBwAAA7yZ2x5ZqugYnAAACcQAADhjGhlYWQVl+THAAAA7AAAADZoaGVhK3TmIgAAASQAAAAkaG10eH7tDo8AAAHIAAAQdGxvY2H/CzayAAEInAAACDxtYXhwBDwA9gAAAUgAAAAgbmFtZW3ArcAAARDYAAAEb3Bvc3QJy9dbAAEVSAAAJE0AAQAAAAEAAERFNtJfDzz1AAkIAAAAAADE8BEuAAAAAM2Cslz6t9PdKU8IYgACAAkAAgAAAAAAAAABAAAHbP4MAAAJA/q32vUpTwABAAAAAAAAAAAAAAAAAAAEHQABAAAEHQCWABYAXgAFAAEAAAAAAAAAAAAAAAAAAwABAAMEQQGQAAUAAAWaBTMAAAEfBZoFMwAAA9EAZgIAAAAAAAAAAAAAAAAA4AAC/1AAIFsAAAAgAAAAAHB5cnMAAQAA//0GAP4AAGYHmgIAIAABn08BAAAEOgWwAAAAIAACAeMAAAAAAAAB4wAAAeMAAAJ1AMUErABDBDoARwV7ANMErAAbAVcAxgKBAFcCiP+MA0AAoQRCAHIBgf+YAhUAPgIGAEYDH/+mBDoAUAQ6AXAEOgAtBDoANQQ6ACcEOgBoBDoAZwQ6ANgEOgA1BDoAfwHpAEYB8f/GA9EAZQQ6AI4D7gBWA5IAwga0ABME/v/VBMsAWATBAGIE8ABYBGIAWARfAFgFJgBoBVgAWAIkAGIEJQAPBH4APgQgAFgGkgBYBVkAWAUcAF4EzQBYBTsAXgT4AFcEjQBDBHoA7AUSAGcE3QDNBpUA7AS9//wEpgDuBDIAIAIKABIDHAD3Agr/lwMnAHwDa/+WAl0A8wQgADoERAA1A/wARwREAEQD+QBHApsAigRDADcERAA1AegARAH2/x0D2QA2AegARAaLADUERAA1BEQARgRE/+IERABEAqQANQPuADsCaQBvBEQAWgPIAJcFrACyA8j/6QPI/7wDyAAIApEAUQHhADYCkf+pBRgAggHh/+sEHQBXBGAALQVVACYEjgBxAdkAAQSc/8gDvwEnBd4AUgNeAMIDjABwBCsApgXfAFIDewEDAtABBQQGAE4DMQCnAzgAqgJoAPsERP/rA7EAhwH/AMMB4//OAg8BBANtAM8DiwA1BdUBDgY7ARsGgQC6A7f/8wcF/54EBABIBR0AJgRvAEgEeQAwBlIABARnACYESgBqBEUATARY/+sFRABVAegAPgQxAD4D8wBJAhEARwUwAEYERAA1BygATwbHAEQB6ABEApb/ZgUjAFkETgBGBToAZwSuAFoB7/8bA/kAPAOWAUgDYgFeAzgBCwINAUECkQEiAhP/twOXAQgCzwEHAnoAHQAK/fIACv5BAAr9WAAK/kYACv1LAAr83AHzAWQD1AFBAgAAwwQuAFcFS//MBR0ATwTs/94ETQAiBVoAWARN//EFXwBXBS8AigUAAB0EPwBABHL/9QPIALMERABBBAsAKQPsAIsERAA1BEYAVgJ5AH4EKv/RA7AAOgR6AHAERP/iBAsASQREAEMD7gC3BBwAWgVNAD8FRABDBisAXQSiAFoD/wCzBeEAZAWfANsFEgBmCAj/3ggTAFcGGgDyBVoAVwS7AEgFqv+WBtP/ygR0ACAFWQBYBU//3gS3AKMF0QBbBX8AVwUnANEHDgBXB0cAVwWrAMkGggBXBLkASAURAIcGrABiBM4ADAQnAEQETgBAAygAPgSQ/5oFvP/DA9IAHgRaAEAEFQBABFv/1QWSAEAEWQBABFoAQAOfAJAFbwBABHkAQAQYAH8GEgBABjoANQSlAIYF2ABABBYAQAQLADMGHgBABCH/1QRFADUEDABRBlj/1QZzAEAERQA1BFoAQAaRAGgFtwBFBBQAPga2AGMFmQA8BIb/2AQF/7wGmAB0BaoAXQZrADoFigA6CHsAYgddAD4D5f/HA5//xgUdAF0ERQBGBL4A6APIALMFHQBPBEUARgaLAGwFtwBIBpIAaAW4AEUE5ABkBAgASgSyAFUACv09AAr9ZAAK/m8ACv6QAAr6twAK+tYEFAA+BMsAVwRD/+IEHwBIA1wANQSXAFcDyQA1BL0ASAQ+AD4GJADzBTQApQdEAFcFVQA1B6kAVwaGADUFjQBlBIkATga/AOgFCwCIBR0A0QQmAJcFHQDQBc8ArgR0ACUEvQBIBBsAPgVYAFcERAA1BSsARgRgADYEYP/tBHIACgMY//sEtQA2BjQANgZzAEAF7wDoBNkAiAQIAM8DywC8B0H/8QYM/+wHfQBOBjUANQSoAGAD3gBGBVIA1wTPAKwFEQBqA9UAAAehAAAD1QAAB6EAAAKSAAAB7wAAAU4AAAQ4AAACEwAAAY8AAADMAAAACgAABS8A6QYSAQADb/9oAY0A1gGNALEBjP+kAY7/YQK7ANYCwgC9Aqn/pAQkAJUESQAQApAArwOPAEcFDABHByYArgJGAIACRgAhA24ACQN0AIsDLgCjBGAALQYmAEkD/gBgBYkA4wOXAGcIOABOBLQBIwTGAHwGUAD+BtwArAcIAKoGbQEeBFkAJgU/ADkEZ/+7BEoAzwSIAGgHqABJAfL/OwQ7AFAD7wCOA/YASAP9AEcDyQBnAjYAjwJ1AJQB7f/mBC0AaAAKAAAHq/+1B6wAhwPfAB8DXAAnBDoAUQLg/+AB6P8dAhH/egF+/8IDbQE3A2wBNwNsATcDyAEPA9ABCwPIAF8DxwEXA20BDQHrAS8Eb//UBDIAPgRJAE0EYAA+BAQAPgPfAD4EhgBKBKsAPgHoAD4DzwALBBwAPgOEAD4FlwA+BMoAPgR/AE0ElQBNBGMAPgQrACMD7gC9BLMAWARwAL4FoQDUBEH/4wQcALUD/v/5BDMASgJNAKwDqQAPA9YAIAQjACUEJQAeA+8ATgOEAL0D7gAjA+cAbQIPAH8DKAAiAzgAJQLTAO0DRwArA0gAQALjAI8DTwAuAzgAZANtAD4DZwC5ApEBKwMbAPUEOgAuBDoAJwQ6AGEESwBkA/n/kQQBAOsEMP/OBDoANQR7AEAERABBBPAAWAQgADcE3gBXBNMAWAPZADYE7ABYA9gANgQ6AH0EMgA+AzgBCwHjAAACFQA+BTMAXgUzAF4EYgBTBHoA7AJpAAcE/v/VBP7/1QT+/9UE/v/VBP7/1QT+/9UE/v/VBMsAYgRiAFgEYgBYBGIAWARiAFgCJABiAiQAYgIkAGICJABiBVkAWAU7AF4FOwBeBTsAXgU7AF4FOwBeBRIAZwUSAGcFEgBnBRIAZwSmAO4EIAA6BCAAOgQgADoEIAA6BCAAOgQgADoEIAA6A/wARwP5AEcD+QBHA/kARwP5AEcB6AA+AegAPgHoAD4B6AA+BEQANQREAEYERABGBEQARgREAEYERABGBEQAWgREAFoERABaBEQAWgPI/7wDyP+8BP7/1QQgADoE/v/VBCAAOgT+/9UEIAA6BMsAYgP8AEcEywBiA/wARwTLAGID/ABHBMsAYgP8AEcFFQBYBNoARARiAFgD+QBHBGIAWAP5AEcEYgBYA/kARwRiAFgD+QBHBGIAWAP5AEcFJgBoBEMANwUmAGgEQwA3BSYAaARDADcFJgBoBEMANwVYAFgERAA1AiQAYgHoAD4CJABiAegAPgIkAGIB6AA+AiT/mgHo/3sCJABiBkkAYgPeAEQEJQAPAe//GwTTAD4D2QA2BCAAWAHoAEQEIABYAej/qAQgAFgCfgBEBCAAWALEAEQFWQBYBEQANQVZAFgERAA1BVkAWAREADUERAA1BTsAXgREAEYFOwBeBEQARgU7AF4ERABGBPgAVwKkADUE+ABXAqT/pgT4AFcCpAA1BJgAQwPuADsEmABDA+4AOwSYAEMD7gA7BJgAQwPuADsEmABDA+4AOwR6AOwCaQBFBHoA7AJpAG8EegDsApEAbwUSAGcERABaBRIAZwREAFoFEgBnBEQAWgUSAGcERABaBRIAZwREAFoFEgBnBEQAWgaVAOwFrACyBKYA7gPI/7wEpgDuBH0AIAPIAAgEfQAgA8gACAR9ACADyAAIBwX/ngZSAAQFHQAmBEUATARgAAsEYAALA+4AvQRv/9QEb//UBG//1ARv/9QEb//UBG//1ARv/9QESQBNBAQAPgQEAD4EBAA+BAQAPgHoAD4B6AA+AegAPgHoAD4EygA+BH8ATQR/AE0EfwBNBH8ATQR/AE0EswBYBLMAWASzAFgEswBYBBwAtQRv/9QEb//UBG//1ARJAE0ESQBNBEkATQRJAE0EYAA+BAQAPgQEAD4EBAA+BAQAPgQEAD4EhgBKBIYASgSGAEoEhgBKBKsAPgHoAD4B6AA+AegAPgHo/3MB6AA+A88ACwQcAD4DhAA+A4QAPgOEAD4DhAA+BMoAPgTKAD4EygA+BH8ATQR/AE0EfwBNBGMAPgRjAD4EYwA+BCsAIwQrACMEKwAjBCsAIwPuAJcD7gC9BLMAWASzAFgEswBYBLMAWASzAFgEswBYBaEA1AQcALUEHAC1A/7/+QP+//kD/v/5CFYAIwT+/9UExgCbBbwAvAKIAMYFTwByBQoASQUUADECeQBsBP7/1QTLAFgEYgBYBH0AIAVYAFgCJABiBNMAPgaSAFgFWQBYBTsAXgTNAFgEegDsBKYA7gS9//wCJABiBKYA7gQ/AEAECwApBEQANQJ5AH4EHABaBDEAPgREAEYERP/rA8gAlwPI/+kCeQB+BBwAWgREAEYEHABaBisAXQRiAFgELgBXBJgAQwIkAGICJABiBCUADwTTAD4E0wA+BLcAowT+/9UEywBYBC4AVwRiAFgFWQBYBpIAWAVYAFgFOwBeBVoAWATNAFgEywBiBHoA7AS9//wEIAA6A/kARwRaAEAERABGBET/4gP8AEcDyP+8A8j/6QP5AEcDKAA+A+4AOwHoAEQB6AA+Afb/HQQVAEADyP+8BpUA7AWsALIGlQDsBawAsgaVAOwFrACyBKYA7gPI/7wBVwDGAnUAxQP6AE8EgwCKAe//GwGNALEGkgBYBosANQT+/9UEIAA6BTsAAQbIAIoHHgCKBGIAWAVZAFgD+QBHBFoAQAUvAIoFRABDBL4A6APIALMIDABGCQMAXgR0ACAD0gAeBMsAYgP8AEcEpgDuA8gAswIkAGIG0//KBbz/wwIkAGIE/v/VBCAAOgT+/9UEIAA6BwX/ngZSAAQEYgBYA/kARwUrAEYD+QA8A/kAPAbT/8oFvP/DBHQAIAPSAB4FWQBYBFoAQAVZAFgEWgBABTsAXgREAEYFHQBdBEUARgUdAF0ERQBGBREAhwQLADMEtwCjA8j/vAS3AKMDyP+8BLcAowPI/7wFJwDRBBgAfwaCAFcF2ABABL3//API/+kERABEBU//3gRb/9UE/v/VBCAAOgT+/9UEIAA6BP7/1QQgADoE/v/VBCAAOgT+/9UEIAA6BP7/1QQgADoE/v/VBCAAOgT+/9UEIAA6BP7/1QQgADoE/v/VBCAAOgT+/9UEIAA6BP7/1QQgADoEYgBYA/kARwRiAFgD+QBHBGIAWAP5AEcEYgBYA/kARwRiAFgD+QBHBGIAWAP5AEcEYgBYA/kARwRiAFgD+QBHAiQAYgHoAD4CJAAXAej/+gU7AF4ERABGBTsAXgREAEYFOwBeBEQARgU7AF4ERABGBTsAXgREAEYFOwBeBEQARgU7AF4ERABGBSMAWQROAEYFIwBZBE4ARgUjAFkETgBGBSMAWQROAEYFIwBZBE4ARgUSAGcERABaBRIAZwREAFoFOgBnBK4AWgU6AGcErgBaBToAZwSuAFoFOgBnBK4AWgU6AGcErgBaBKYA7gPI/7wEpgDuA8j/vASmAO4DyP+8BGIARARiABME0wA+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////1QAABH8HiAImACMAAAAHAJ4BkgGo////1QAABMYHnwImACMAAAAHAdQBiQEs//8AYv5EBPgFxQAmACUAAAAHAHcBt//3//8AWAAABPIHIgImACcAAAAHAEIBNwFd//8AWAAABPIHHwImACcAAAAHAHMB4wFZ//8AWAAABPIHRgImACcAAAAHAJoA0gFd//8AWAAABPIHDAImACcAAAAHAGgA0wFc//8AYgAAAkQHIgImACsAAAAHAEL//AFd//8AYgAAA1MHHwImACsAAAAHAHMApwFZ//8AYgAAAx4HRgImACsAAAAHAJr/lwFd//8AYgAAA10HDAImACsAAAAHAGj/mAFc//8AWAAABXoHUQImADAAAAAHAKABTgFg//8AXv/rBTYHNwAmADEAAAAHAEIBjAFy//8AXv/rBTYHNAAmADEAAAAHAHMCOAFu//8AXv/rBTYHWwAmADEAAAAHAJoBJwFy//8AXv/rBTYHZgAmADEAAAAHAKABRgF1//8AXv/rBTYHIQAmADEAAAAHAGgBKAFx//8AZ//rBVcHIgImADcAAAAHAEIBdwFd//8AZ//rBVcHHwImADcAAAAHAHMCIwFZ//8AZ//rBVcHRgImADcAAAAHAJoBEgFd//8AZ//rBVcHDAImADcAAAAHAGgBEwFc//8A7gAABVMHHQImADsAAAAHAHMB6QFX//8AOv/sA/cF4AImAEMAAAAHAEIAswAb//8AOv/sBAsF3QImAEMAAAAHAHMBXwAX//8AOv/sA/cGBAImAEMAAAAGAJpOGwAA//8AOv/sBBwGDwImAEMAAAAGAKBtHgAA//8AOv/sBBQFygImAEMAAAAGAGhPGgAA//8AOv/sA/cGRgImAEMAAAAHAJ4A2gBm//8AOv/sBA4GXgImAEMAAAAHAdQA0f/r//8AR/5EA/sETgImAEUAAAAHAHcBOf/3//8AR//sA+sF4QImAEcAAAAHAEIAkQAc//8AR//sA+sF3gImAEcAAAAHAHMBPQAY//8AR//sA+sGBQImAEcAAAAGAJosHAAA//8AR//sA/IFywImAEcAAAAGAGgtGwAA//8APgAAAd0FywImAIoAAAAGAEKVBgAA//8APgAAAuwFyAImAIoAAAAGAHNAAgAA//8APgAAArcF7wImAIoAAAAHAJr/MAAG//8APgAAAvYFtQIm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//8A7gAABVMHRAImADsAAAAHAJoA2AFb////vP5LBCoF7wImAFsAAAAGAJokBgAA//8A7gAABVMHCgImADsAAAAHAGgA2QFa//8AIAAABH0HHwAmADwAAAAHAHMB0QFZ//8ACAAAA+oFyAImAFwAAAAHAHMBPgAC//8AIAAABFsHDQAmADwAAAAHAJ0BgQFd//8ACAAAA98FtgImAFwAAAAHAJ0A7gAG//8AIAAABH8HRwAmADwAAAAHAJsA1gFe//8ACAAAA+wF8AImAFwAAAAGAJtDBwAA////ngAAB3UHHwImAH8AAAAHAHMDAQFZ//8ABP/rBmAF3gImAIQAAAAHAHMCegAY//8AJv+jBWsHXQImAIEAAAAHAHMCMQGX//8ATP95BDgF3AImAIcAAAAHAHMBUAAW//8ACwAABEkEjQImAakAAAAHAdP/Uv97//8ACwAABEkEjQImAakAAAAHAdP/Uv97//8AvQAABCUEjQImAbgAAAAGAdMo9wAA////1AAAA+gF3wImAaYAAAAHAEIA2QAa////1AAABDEF3AImAaYAAAAHAHMBhQAW////1AAAA/sGAwImAaYAAAAGAJp0GgAA////1AAABEIGDgImAaYAAAAHAKAAkwAd////1AAABDoFyQImAaYAAAAGAGh1GQAA////1AAAA+gGRQImAaYAAAAHAJ4BAABl////1AAABDQGXQImAaYAAAAHAdQA9//q//8ATf5HBEIEnQImAagAAAAHAHcBU//6//8APgAABB0F3wImAaoAAAAHAEIAqgAa//8APgAABB0F3AImAaoAAAAHAHMBVgAW//8APgAABB0GAwImAaoAAAAGAJpFGgAA//8APgAABB0FyQImAaoAAAAGAGhGGQAA//8APgAAAd8F3wImAa4AAAAGAEKXGgAA//8APgAAAu4F3AImAa4AAAAGAHNCFgAA//8APgAAArkGAwImAa4AAAAHAJr/MgAa//8APgAAAvgFyQImAa4AAAAHAGj/MwAZ//8APgAABL4GDgImAbMAAAAHAKAAsQAd//8ATf/vBG8F7wImAbQAAAAHAEIA3QAq//8ATf/vBG8F7AImAbQAAAAHAHMBiQAm//8ATf/vBG8GEwImAbQAAAAGAJp4KgAA//8ATf/vBG8GHgImAbQAAAAHAKAAlwAt//8ATf/vBG8F2QIm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u9uwJyX+9czZ/uMwtSO4mmqrAUx3hEJIy8axsuzWi6F0V393R0/Hw7ir1uurgXIA//8AYgAAAjoFsAIGACsAAP//AGIAAANdBwwCJgArAAAABwBo/5gBXP//AA//6wRSBbACBgAsAAD//wA+AAAFNQWwAAYALQAA//8APgAABTUGxwAmAC0AAAAHAHMBxQEB//8Ao//rBUUHTAImANkAAAAHAJwBPgGc////1QAABH8FsAIGACMAAP//AFgAAATQBbACBgAkAAD//wBXAAAEuQWwAgYArAAA//8AWAAABPIFsAIGACcAAP//AFgAAAV6B0wCJgDXAAAABwCcAY4BnP//AFgAAAazBbACBgAvAAD//wBYAAAFeQWwAgYAKgAA//8AXv/rBTYFxQAGADEAAP//AFgAAAV7BbACBgCxAAD//wBYAAAFGAWwAgYAMgAA//8AYv/rBPgFxQAGACUAAP//AOwAAAULBbACBgA2AAD////8AAAFHQWwAgYAOgAA//8AOv/sA/cETgIGAEMAAP//AEf/7APrBE4CBgBHAAD//wBAAAAERwX1AiYA6wAAAAcAnADIAEX//wBG/+wEHAROAgYAUQAA////4v5gBCYETgIGAFIAAAABAEf/7AP7BE4AGwAAJTI2NzMGBCMiAj8BNgAzMhYHIzYmIyIGDwEGFgHxWqAPrBn+8qbXuyUHJwER4a7BGqwQameNpBoHHFWBeFyazwEy6ir1ASfeqmyG4qQqsdYAAP///7z+SwQqBDoCBgBbAAD////pAAAD8QQ6AgYAWgAA//8AR//sA/IFywImAEcAAAAGAGgtGwAA//8APgAAA5UFyAImAOcAAAAHAHMA5wAC//8AO//sA8kETgIGAFUAAP//AEQAAAIxBhgCBgBLAAD//wA+AAAC9gW1AiYAigAAAAcAaP8xAAX///8d/ksCOQYYAgYATAAA//8AQAAABGEFxwImAOwAAAAHAHMBTQAB////vP5LBCoF9QImAFsAAAAGAJx/RQAA//8A7AAABuwHIgImADkAAAAHAEICAQFd//8AsgAABfoFywImAFkAAAAHAEIBegAG//8A7AAABuwHHwImADkAAAAHAHMCrQFZ//8AsgAABfoFyAImAFkAAAAHAHMCJgAC//8A7AAABuwHDAImADkAAAAHAGgBnQFc//8AsgAABfoFtQIm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AEMAAAAHAKgEBQAA////1QAABH8HxgImACMAAAAHAKYE5QFT//8AOv/sA/cGhAImAEMAAAAHAKYELQAR////1QAABg4HqAImACMAAAAHAaMA8AEW//8AOv/sBVYGZwImAEMAAAAGAaM41QAA////1QAABLcHpQImACMAAAAHAaIA+gEl//8AOv/sA/8GZAImAEMAAAAGAaJC5AAA////1QAABZ4H2wImACMAAAAHAaEA9QEN//8AOv/sBOYGmgImAEMAAAAGAaE9zAAA////1QAABLYH5QImACMAAAAHAaAA9gET//8AOv/sA/4GpAImAEMAAAAGAaA+0gAA////1f6xBI0HRgImACMAAAAnAJoBBgFdAAcAqASsAAD//wA6/rED9wYEAiYAQwAAACYAmk4bAAcAqAQFAAAAAP///9UAAASqB90CJgAjAAAABwGfASkBVP//ADr/7AP3BpsCJgBDAAAABgGfcRIAAP///9UAAATOB+ACJgAjAAAABwGkAS8BZ///ADr/7AQWBp4CJgBDAAAABgGkdyUAAP///9UAAASVCEsCJgAjAAAABwGeASkBSf//ADr/7AP3BwkCJgBDAAAABgGecQcAAP///9UAAATMCB8CJgAjAAAABwGdASsBUf//ADr/7AQUBt0CJgBDAAAABgGdcw8AAP///9X+sQSwB0wCJgAjAAAAJwCcAWEBnAAHAKgErAAA//8AOv6xA/gGCgImAEMAAAAnAJwAqQBaAAcAqAQFAAD//wBY/rsE8gWwAiYAJwAAAAcAqAR3AAr//wBH/rED6wROAiYARwAAAAcAqARRAAD//wBYAAAE8gfGAiYAJwAAAAcApgSxAVP//wBH/+wD6waFAiYARwAAAAcApgQLABL//wBYAAAE8gdRAiYAJwAAAAcAoADxAWD//wBH/+wD+gYQAiYARwAAAAYAoEsfAAD//wBYAAAF2geoAiYAJwAAAAcBowC8ARb//wBH/+wFNAZoAiYARwAAAAYBoxbWAAD//wBYAAAE8gelAiYAJwAAAAcBogDGASX//wBH/+wD6wZlAiYARwAAAAYBoiDlAAD//wBYAAAFagfbAiYAJwAAAAcBoQDBAQ3//wBH/+wExAabAiYARwAAAAYBoRvNAAD//wBYAAAE8gflAiYAJwAAAAcBoADCARP//wBH/+wD6walAiYARwAAAAYBoBzTAAD//wBY/rsE8gdGAiYAJwAAACcAmgDSAV0ABwCoBHcACv//AEf+sQPrBgUCJgBHAAAAJgCaLBwABwCoBFEAAAAA//8AYgAAAwoHxgImACsAAAAHAKYDdQFT//8APgAAAqMGcAImAIoAAAAHAKYDDv/9//8AF/65AjoFsAImACsAAAAHAKgDOwAI////+v67AjEGGAImAEsAAAAHAKgDHgAK//8AXv6pBTYFxQAmADEAAAAHAKgEw//4//8ARv6oBBwETgImAFEAAAAHAKgEV//3//8AXv/rBTYH2wAmADEAAAAHAKYFBgFo//8ARv/sBBwGhAImAFEAAAAHAKYEIQAR//8AXv/rBi8HvQAmADEAAAAHAaMBEQEr//8ARv/sBUoGZwImAFEAAAAGAaMs1QAA//8AXv/rBTYHugAmADEAAAAHAaIBGwE6//8ARv/sBBwGZAImAFEAAAAGAaI25AAA//8AXv/rBb8H8AAmADEAAAAHAaEBFgEi//8ARv/sBNoGmgImAFEAAAAGAaExzAAA//8AXv/rBTYH+gAmADEAAAAHAaABFwEo//8ARv/sBBwGpAImAFEAAAAGAaAy0gAA//8AXv6pBTYHWwAmADEAAAAnAJoBJwFyAAcAqATD//j//wBG/qgEHAYEAiYAUQAAACYAmkIbAAcAqARX//cAAP//AFn/6wYlBw8CJgCUAAAABwBzAiQBSf//AEb/7AUJBd0CJgCVAAAABwBzAXgAF///AFn/6wYlBxICJgCUAAAABwBCAXgBTf//AEb/7AUJBeACJgCVAAAABwBCAMwAG///AFn/6wYlB7YCJgCUAAAABwCmBPIBQ///AEb/7AUJBoQCJgCVAAAABwCmBEYAEf//AFn/6wYlB0ECJgCUAAAABwCgATIBUP//AEb/7AUJBg8CJgCVAAAABwCgAIYAHv//AFn+sQYlBjYCJgCUAAAABwCoBLEAAP//AEb+qAUJBLACJgCVAAAABwCoBEj/9///AGf+qgVXBbACJgA3AAAABwCoBLL/+f//AFr+sQQ7BDoCJgBXAAAABwCoBAsAAP//AGf/6wVXB8YCJgA3AAAABwCmBPEBU///AFr/7AQ7BnACJgBXAAAABwCmBED//f//AGf/6walBx8CJgCWAAAABwBzAiIBWf//AFr/7AVXBcgCJgCXAAAABwBzAXIAAv//AGf/6walByICJgCWAAAABwBCAXYBXf//AFr/7AVXBcsCJgCXAAAABwBCAMYABv//AGf/6walB8YCJgCWAAAABwCmBPABU///AFr/7AVXBnACJgCXAAAABwCmBED//f//AGf/6walB1ECJgCWAAAABwCgATABYP//AFr/7AVXBfoCJgCXAAAABwCgAIAACf//AGf+qQalBg0CJgCWAAAABwCoBLH/+P//AFr+sQVXBJECJgCXAAAABwCoBAsAAP//AO7+uwVTBbACJgA7AAAABwCoBH0ACv///7z+FAQqBDoCJgBbAAAABwCoBKj/Y///AO4AAAVTB8QCJgA7AAAABwCmBLcBUf///7z+SwQqBnACJgBbAAAABwCmBAP//f//AO4AAAVTB08CJgA7AAAABwCgAPcBXv///7z+SwQqBfoCJgBbAAAABgCgQwkAAAACAET/6wUmBhgAGgAoAAABIwMjNycOASMiAj8BGgEzMhYXEyM3MzczBzMBBhYzMjY3Ey4BIyIGBwUItPedCQM8kFiwri8EOO7BWIcrN+oe6SS1JLX8AyRhiUx1M2Uba1R8nyYE0vsuaAI/QAE06hUBHAEUSEUBEZWxsfyis9FTTwH6RE/ZvQD//wAT/u4FJgYYACYARgAAACcB0wH8AkYABgBBfYMAAP//AD7+mQU1BbAAJgAtAAAABwGcA/QAAP//AED+mQRhBDoCJgDsAAAABwGcAxMAAP//AFj+mQV5BbACJgAqAAAABwGcBBwAAP//AED+mQRGBDoCJgDvAAAABwGcAzQAAP//AOz+mQULBbACJgA2AAAABwGcAggAAP//AJD+mQP3BDoCJgDxAAAABwGcAZgAAP////z+mQUdBbACJgA6AAAABwGcA5YAAP///+n+mQPxBDoCJgBaAAAABwGcAq4AAP//ANH+mQVIBbACJgDcAAAABwGcA+sAAP//AH/+mQQGBDsCJgD0AAAABwGcAvMAAP//ANH+mQVIBbACJgDcAAAABwGcAt8AAP//AH/+mQQGBDsCJgD0AAAABwGcAeYAAP//AFf+mQS5BbACJgCsAAAABwGcANMAAP//AD7+mQOVBDoCJgDnAAAABwGcAJsAAP///8r+mQddBbACJgDVAAAABwGcBeEAAP///8P+mQYBBDoCJgDpAAAABwGcBKoAAP//AK7+VAXu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ACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQCjAIQAhQC9AJYA6ACGAI4AiwCdAKkApACKAQMAgwCTAPIA8wCNAJcAiAEEAN4A8QCeAKoA9QD0APYAogCQAPAAkQDtAIkAoADqALgAoQDuAQUA1wEGAOIA4wEHAQgAsACxAQkApgEKAQsBDAENAQ4BDwDYAOEA2wDcAN0A4ADZAN8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgCfASMBJAElASYBJwEoASkBKgErASwBLQCbAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0AsgCzAc4AtgC3AMQBzwC0ALUAxQCCAMIAhwHQAKsAxgC+AL8AvAHRAdIB0wHUAdUB1gHXAdgAjAHZAdoB2wHcAd0AmACaAJkA7wClAJIAnACnAI8AlACVALkB3gHfAeAAwAHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AgACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwCsAjgCOQDpAjoCOwI8AK0AyQDHAK4AYgBjAj0AZADLAGUAyADKAM8AzADNAM4AZgDTANAA0QCvAGcA1gDUANUAaADrAGoAaQBrAG0AbABuAj4AbwBxAHAAcgBzAHUAdAB2AHcAeAB6AHkAewB9AHwAfwB+AIAAgQDsALoCPwJAAkECQgJDAkQA/QD+AkUCRgJHAkgA/wEAAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgD4APkCVwJYAlkCWgJbAlwCXQJeAl8CYAJhAmICYwJkAmUCZgJnAmgCaQJqAmsCbAJtAm4CbwJwAnECcgJzAnQCdQJ2AncCeAJ5AnoCewJ8An0CfgJ/AoACgQKCAoMChAKFAoYChwKIAokCigD7APwCiwKMAOQA5QKNAo4CjwKQApECkgKTApQClQKWApcCmAKZApoCmwKcAp0CngKfAqACoQKiALsCowKkAqUCpgDmAOcCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CvwLAAsECwgLDAsQCxQLGAscCyALJAsoCywLMAs0CzgLPAtAC0QLSAtMC1ALVAtYC1wLYAtkC2gLbAtwC3QLeAt8C4ALhAuIC4wLkAuUC5gLnAugC6QLqAusC7ALtAu4C7wLwAvEC8gLzAvQC9QL2AvcC+AL5AvoC+wL8Av0C/gL/AwADAQMCAwMDBAMFAwYDBwMIAwkDCgMLAwwDDQMOAw8DEAMRAxIDEwMUAxUDFgMXAxgDGQMaAxsDHAMdAx4DHwMgAyEDIgMjAyQDJQMmAycDKAMpAyoDKwMsAy0DLgMvAzADMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTANNA04DTwNQA1EDUgNTA1QDVQNWA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiA2MDZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UDdgN3A3gDeQN6A3sDfAN9A34DfwOAA4EDggODA4QDhQOGA4cDiAOJA4oDiwOMA40DjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOeA58DoAOhA6IDowOkA6UDpgOnA6gDqQOqA6sDrAOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA8MDxAPFA8YDxwPIA8kDygPLA8wDzQPOA88D0APRA9ID0wPUA9UD1gPXA9gD2QPaA9sD3APdA94D3wPgA+ED4gPjA+QD5QPmA+cD6APpA+oD6wPsA+0D7gPvA/AD8QPyA/MD9AP1A/YD9wP4A/kD+gP7A/wD/QP+A/8EAAQBBAIEAwQEBAUEBgQHBAgECQQKBAsEDAQNBA4EDwQQBBEEEgQTBBQEFQQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQD3BCIEIwQkAAQETlVMTAZtYWNyb24OcGVyaW9kY2VudGVyZWQESGJhcgxrZ3JlZW5sYW5kaWMDRW5nA2VuZwVsb25ncwVPaG9ybgVvaG9ybgVVaG9ybgV1aG9ybgd1bmkwMjM3BXNjaHdhB3VuaTAyRjMJZ3JhdmVjb21iCWFjdXRlY29tYgl0aWxkZWNvbWIEaG9vawd1bmkwMzBGCGRvdGJlbG93BXRvbm9zDWRpZXJlc2lzdG9ub3MJYW5vdGVsZWlhBUdhbW1hBURlbHRhBVRoZXRhBkxhbWJkYQJYaQJQaQVTaWdtYQNQaGkDUHNpBWFscGhhBGJldGEFZ2FtbWEFZGVsdGEHZXBzaWxvbgR6ZXRhA2V0YQV0aGV0YQRpb3RhBmxhbWJkYQJ4aQNyaG8Gc2lnbWExBXNpZ21hA3RhdQd1cHNpbG9uA3BoaQNwc2kFb21lZ2EHdW5pMDNEMQd1bmkwM0QyB3VuaTAzRDYHdW5pMDQwMgd1bmkwNDA0B3VuaTA0MDkHdW5pMDQwQQd1bmkwNDBCB3VuaTA0MEYHdW5pMDQxMQd1bmkwNDE0B3VuaTA0MTYHdW5pMDQxNwd1bmkwNDE4B3VuaTA0MUIHdW5pMDQyMwd1bmkwNDI0B3VuaTA0MjYHdW5pMDQyNwd1bmkwNDI4B3VuaTA0MjkHdW5pMDQyQQd1bmkwNDJCB3VuaTA0MkMHdW5pMDQyRAd1bmkwNDJFB3VuaTA0MkYHdW5pMDQzMQd1bmkwNDMyB3VuaTA0MzMHdW5pMDQzNAd1bmkwNDM2B3VuaTA0MzcHdW5pMDQzOAd1bmkwNDNBB3VuaTA0M0IHdW5pMDQzQwd1bmkwNDNEB3VuaTA0M0YHdW5pMDQ0Mgd1bmkwNDQ0B3VuaTA0NDYHdW5pMDQ0Nwd1bmkwNDQ4B3VuaTA0NDkHdW5pMDQ0QQd1bmkwNDRCB3VuaTA0NEMHdW5pMDQ0RAd1bmkwNDRFB3VuaTA0NEYHdW5pMDQ1Mgd1bmkwNDU0B3VuaTA0NTkHdW5pMDQ1QQd1bmkwNDVCB3VuaTA0NUYHdW5pMDQ2MAd1bmkwNDYxB3VuaTA0NjMHdW5pMDQ2NAd1bmkwNDY1B3VuaTA0NjYHdW5pMDQ2Nwd1bmkwNDY4B3VuaTA0NjkHdW5pMDQ2QQd1bmkwNDZCB3VuaTA0NkMHdW5pMDQ2RAd1bmkwNDZFB3VuaTA0NkYHdW5pMDQ3Mgd1bmkwNDczB3VuaTA0NzQHdW5pMDQ3NQd1bmkwNDdBB3VuaTA0N0IHdW5pMDQ3Qwd1bmkwNDdEB3VuaTA0N0UHdW5pMDQ3Rgd1bmkwNDgwB3VuaTA0ODEHdW5pMDQ4Mgd1bmkwNDgzB3VuaTA0ODQHdW5pMDQ4NQd1bmkwNDg2B3VuaTA0ODgHdW5pMDQ4OQd1bmkwNDhEB3VuaTA0OEUHdW5pMDQ4Rgd1bmkwNDkwB3VuaTA0OTEHdW5pMDQ5NAd1bmkwNDk1B3VuaTA0OUMHdW5pMDQ5RAd1bmkwNEEwB3VuaTA0QTEHdW5pMDRBNAd1bmkwNEE1B3VuaTA0QTYHdW5pMDRBNwd1bmkwNEE4B3VuaTA0QTkHdW5pMDRCNAd1bmkwNEI1B3VuaTA0QjgHdW5pMDRCOQd1bmkwNEJBB3VuaTA0QkMHdW5pMDRCRAd1bmkwNEMzB3VuaTA0QzQHdW5pMDRDNwd1bmkwNEM4B3VuaTA0RDgHdW5pMDRFMAd1bmkwNEUxB3VuaTA0RkEHdW5pMDRGQgd1bmkwNTAwB3VuaTA1MDIHdW5pMDUwMwd1bmkwNTA0B3VuaTA1MDUHdW5pMDUwNgd1bmkwNTA3B3VuaTA1MDgHdW5pMDUwOQd1bmkwNTBBB3VuaTA1MEIHdW5pMDUwQwd1bmkwNTBEB3VuaTA1MEUHdW5pMDUwRgd1bmkwNTEwB3VuaTIwMDAHdW5pMjAwMQd1bmkyMDAyB3VuaTIwMDMHdW5pMjAwNAd1bmkyMDA1B3VuaTIwMDYHdW5pMjAwNwd1bmkyMDA4B3VuaTIwMDkHdW5pMjAwQQd1bmkyMDBCDXVuZGVyc2NvcmVkYmwNcXVvdGVyZXZlcnNlZAd1bmkyMDI1B3VuaTIwNzQJbnN1cGVyaW9yBGxpcmEGcGVzZXRhBEV1cm8HdW5pMjEwNQd1bmkyMTEzB3VuaTIxMTYJZXN0aW1hdGVkCW9uZWVpZ2h0aAx0aHJlZWVpZ2h0aHMLZml2ZWVpZ2h0aHMMc2V2ZW5laWdodGhzCmNvbG9uLmxudW0JcXVvdGVkYmx4C2NvbW1hYWNjZW50B3VuaUZFRkYHdW5pRkZGQwd1bmlGRkZECWZpdmUuc21jcAhmb3VyLnN1cAl6ZXJvLmxudW0ObGFyZ2VyaWdodGhvb2sMY3lyaWxsaWNob29rEGN5cmlsbGljaG9va2xlZnQLY3lyaWxsaWN0aWMOYnJldmV0aWxkZWNvbWINYnJldmVob29rY29tYg5icmV2ZWFjdXRlY29tYhNjaXJjdW1mbGV4dGlsZGVjb21iEmNpcmN1bWZsZXhob29rY29tYhNjaXJjdW1mbGV4Z3JhdmVjb21iE2NpcmN1bWZsZXhhY3V0ZWNvbWIOYnJldmVncmF2ZWNvbWIRY29tbWFhY2NlbnRyb3RhdGUGQS5zbWNwBkIuc21jcAZDLnNtY3AGRC5zbWNwBkUuc21jcAZGLnNtY3AGRy5zbWNwBkguc21jcAZJLnNtY3AGSi5zbWNwBksuc21jcAZMLnNtY3AGTS5zbWNwBk4uc21jcAZPLnNtY3AGUS5zbWNwBlIuc21jcAZTLnNtY3AGVC5zbWNwBlUuc21jcAZWLnNtY3AGVy5zbWNwBlguc21jcAZZLnNtY3AGWi5zbWNwCXplcm8uc21jcAhvbmUuc21jcAh0d28uc21jcAp0aHJlZS5zbWNwCWZvdXIuc21jcAh0d28ubG51bQhzaXguc21jcApzZXZlbi5zbWNwCmVpZ2h0LnNtY3AJbmluZS5zbWNwB29uZS5zdXAHdHdvLnN1cAl0aHJlZS5zdXAIb25lLmxudW0IZml2ZS5zdXAHc2l4LnN1cAlzZXZlbi5zdXAJZWlnaHQuc3VwCG5pbmUuc3VwCHplcm8uc3VwCGNyb3NzYmFyCXJpbmdhY3V0ZQlkYXNpYW94aWEKdGhyZWUubG51bQlmb3VyLmxudW0JZml2ZS5sbnVtCHNpeC5sbnVtBWcuYWx0CnNldmVuLmxudW0HY2hpLmFsdAplaWdodC5sbnVtCWFscGhhLmFsdAlkZWx0YS5hbHQERC5jbgRhLmNuBVIuYWx0BUsuYWx0BWsuYWx0BksuYWx0MgZrLmFsdDIJbmluZS5sbnVtBlAuc21jcA1jeXJpbGxpY2JyZXZlB3VuaTAwQUQGRGNyb2F0BGhiYXIEVGJhcgR0YmFyCkFyaW5nYWN1dGUKYXJpbmdhY3V0ZQdBbWFjcm9uB2FtYWNyb24GQWJyZXZlBmFicmV2ZQdBb2dvbmVrB2FvZ29uZWsLQ2NpcmN1bWZsZXgLY2NpcmN1bWZsZXgHdW5pMDEwQQd1bmkwMTBCBkRjYXJvbgZkY2Fyb24HRW1hY3JvbgdlbWFjcm9uBkVicmV2ZQZlYnJldmUKRWRvdGFjY2VudAplZG90YWNjZW50B0VvZ29uZWsHZW9nb25lawZFY2Fyb24GZWNhcm9uC0djaXJjdW1mbGV4C2djaXJjdW1mbGV4B3VuaTAxMjAHdW5pMDEyMQxHY29tbWFhY2NlbnQMZ2NvbW1hYWNjZW50C0hjaXJjdW1mbGV4C2hjaXJjdW1mbGV4Bkl0aWxkZQZpdGlsZGUHSW1hY3JvbgdpbWFjcm9uBklicmV2ZQZpYnJldmUHSW9nb25lawdpb2dvbmVrCklkb3RhY2NlbnQCSUoCaWoLSmNpcmN1bWZsZXgLamNpcmN1bWZsZXgMS2NvbW1hYWNjZW50DGtjb21tYWFjY2VudAZMYWN1dGUGbGFjdXRlDExjb21tYWFjY2VudAxsY29tbWFhY2NlbnQGTGNhcm9uBmxjYXJvbgRMZG90BGxkb3QGTmFjdXRlBm5hY3V0ZQxOY29tbWFhY2NlbnQMbmNvbW1hYWNjZW50Bk5jYXJvbgZuY2Fyb24LbmFwb3N0cm9waGUHT21hY3JvbgdvbWFjcm9uBk9icmV2ZQZvYnJldmUNT2h1bmdhcnVtbGF1dA1vaHVuZ2FydW1sYXV0BlJhY3V0ZQZyYWN1dGUMUmNvbW1hYWNjZW50DHJjb21tYWFjY2VudAZSY2Fyb24GcmNhcm9uBlNhY3V0ZQZzYWN1dGULU2NpcmN1bWZsZXgLc2NpcmN1bWZsZXgHdW5pMDIxOAd1bmkwMjE5B3VuaTAyMUEHdW5pMDIxQgd1bmkwMTYyB3VuaTAxNjMGVGNhcm9uBnRjYXJvbgZVdGlsZGUGdXRpbGRlB1VtYWNyb24HdW1hY3JvbgZVYnJldmUGdWJyZXZlBVVyaW5nBXVyaW5nDVVodW5nYXJ1bWxhdXQNdWh1bmdhcnVtbGF1dAdVb2dvbmVrB3VvZ29uZWsLV2NpcmN1bWZsZXgLd2NpcmN1bWZsZXgLWWNpcmN1bWZsZXgLeWNpcmN1bWZsZXgGWmFjdXRlBnphY3V0ZQpaZG90YWNjZW50Cnpkb3RhY2NlbnQHQUVhY3V0ZQdhZWFjdXRlC09zbGFzaGFjdXRlC29zbGFzaGFjdXRlC0Rjcm9hdC5zbWNwCEV0aC5zbWNwCVRiYXIuc21jcAtBZ3JhdmUuc21jcAtBYWN1dGUuc21jcBBBY2lyY3VtZmxleC5zbWNwC0F0aWxkZS5zbWNwDkFkaWVyZXNpcy5zbWNwCkFyaW5nLnNtY3APQXJpbmdhY3V0ZS5zbWNwDUNjZWRpbGxhLnNtY3ALRWdyYXZlLnNtY3ALRWFjdXRlLnNtY3AQRWNpcmN1bWZsZXguc21jcA5FZGllcmVzaXMuc21jcAtJZ3JhdmUuc21jcAtJYWN1dGUuc21jcBBJY2lyY3VtZmxleC5zbWNwDklkaWVyZXNpcy5zbWNwC050aWxkZS5zbWNwC09ncmF2ZS5zbWNwC09hY3V0ZS5zbWNwEE9jaXJjdW1mbGV4LnNtY3ALT3RpbGRlLnNtY3AOT2RpZXJlc2lzLnNtY3ALVWdyYXZlLnNtY3ALVWFjdXRlLnNtY3AQVWNpcmN1bWZsZXguc21jcA5VZGllcmVzaXMuc21jcAtZYWN1dGUuc21jcAxBbWFjcm9uLnNtY3ALQWJyZXZlLnNtY3AMQW9nb25lay5zbWNwC0NhY3V0ZS5zbWNwEENjaXJjdW1mbGV4LnNtY3AMdW5pMDEwQS5zbWNwC0NjYXJvbi5zbWNwC0RjYXJvbi5zbWNwDEVtYWNyb24uc21jcAtFYnJldmUuc21jcA9FZG90YWNjZW50LnNtY3AMRW9nb25lay5zbWNwC0VjYXJvbi5zbWNwEEdjaXJjdW1mbGV4LnNtY3ALR2JyZXZlLnNtY3AMdW5pMDEyMC5zbWNwEUdjb21tYWFjY2VudC5zbWNwEEhjaXJjdW1mbGV4LnNtY3ALSXRpbGRlLnNtY3AMSW1hY3Jvbi5zbWNwC0licmV2ZS5zbWNwDElvZ29uZWsuc21jcA9JZG90YWNjZW50LnNtY3AQSmNpcmN1bWZsZXguc21jcBFLY29tbWFhY2NlbnQuc21jcAtMYWN1dGUuc21jcBFMY29tbWFhY2NlbnQuc21jcAtMY2Fyb24uc21jcAlMZG90LnNtY3ALTmFjdXRlLnNtY3ARTmNvbW1hYWNjZW50LnNtY3ALTmNhcm9uLnNtY3AMT21hY3Jvbi5zbWNwC09icmV2ZS5zbWNwEk9odW5nYXJ1bWxhdXQuc21jcAtSYWN1dGUuc21jcBFSY29tbWFhY2NlbnQuc21jcAtSY2Fyb24uc21jcAtTYWN1dGUuc21jcBBTY2lyY3VtZmxleC5zbWNwDVNjZWRpbGxhLnNtY3ALU2Nhcm9uLnNtY3ARVGNvbW1hYWNjZW50LnNtY3ALVGNhcm9uLnNtY3ALVXRpbGRlLnNtY3AMVW1hY3Jvbi5zbWNwC1VicmV2ZS5zbWNwClVyaW5nLnNtY3ASVWh1bmdhcnVtbGF1dC5zbWNwDFVvZ29uZWsuc21jcBBXY2lyY3VtZmxleC5zbWNwEFljaXJjdW1mbGV4LnNtY3AOWWRpZXJlc2lzLnNtY3ALWmFjdXRlLnNtY3APWmRvdGFjY2VudC5zbWNwC1pjYXJvbi5zbWNwD2dlcm1hbmRibHMuc21jcApBbHBoYXRvbm9zDEVwc2lsb250b25vcwhFdGF0b25vcwlJb3RhdG9ub3MMT21pY3JvbnRvbm9zDFVwc2lsb250b25vcwpPbWVnYXRvbm9zEWlvdGFkaWVyZXNpc3Rvbm9zBUFscGhhBEJldGEHRXBzaWxvbgRaZXRhA0V0YQRJb3RhBUthcHBhAk11Ak51B09taWNyb24DUmhvA1RhdQdVcHNpbG9uA0NoaQxJb3RhZGllcmVzaXMPVXBzaWxvbmRpZXJlc2lzCmFscGhhdG9ub3MMZXBzaWxvbnRvbm9zCGV0YXRvbm9zCWlvdGF0b25vcxR1cHNpbG9uZGllcmVzaXN0b25vcwVrYXBwYQdvbWljcm9uB3VuaTAzQkMCbnUDY2hpDGlvdGFkaWVyZXNpcw91cHNpbG9uZGllcmVzaXMMb21pY3JvbnRvbm9zDHVwc2lsb250b25vcwpvbWVnYXRvbm9zB3VuaTA0MDEHdW5pMDQwMwd1bmkwNDA1B3VuaTA0MDYHdW5pMDQwNwd1bmkwNDA4B3VuaTA0MUEHdW5pMDQwQwd1bmkwNDBFB3VuaTA0MTAHdW5pMDQxMgd1bmkwNDEzB3VuaTA0MTUHdW5pMDQxOQd1bmkwNDFDB3VuaTA0MUQHdW5pMDQxRQd1bmkwNDFGB3VuaTA0MjAHdW5pMDQyMQd1bmkwNDIyB3VuaTA0MjUHdW5pMDQzMAd1bmkwNDM1B3VuaTA0MzkHdW5pMDQzRQd1bmkwNDQwB3VuaTA0NDEHdW5pMDQ0Mwd1bmkwNDQ1B3VuaTA0NTEHdW5pMDQ1Mwd1bmkwNDU1B3VuaTA0NTYHdW5pMDQ1Nwd1bmkwNDU4B3VuaTA0NUMHdW5pMDQ1RQZXZ3JhdmUGd2dyYXZlBldhY3V0ZQZ3YWN1dGUJV2RpZXJlc2lzCXdkaWVyZXNpcwZZZ3JhdmUGeWdyYXZlBm1pbnV0ZQZzZWNvbmQJZXhjbGFtZGJsB3VuaUZCMDIHdW5pMDFGMAd1bmkwMkJDB3VuaTFFM0UHdW5pMUUzRgd1bmkxRTAwB3VuaTFFMDEHdW5pMUY0RAd1bmlGQjAzB3VuaUZCMDQHdW5pMDQwMAd1bmkwNDBEB3VuaTA0NTAHdW5pMDQ1RAd1bmkwNDcwB3VuaTA0NzEHdW5pMDQ3Ngd1bmkwNDc3B3VuaTA0NzkHdW5pMDQ3OAd1bmkwNDk4B3VuaTA0OTkHdW5pMDRBQQd1bmkwNEFCB3VuaTA0QUUHdW5pMDRBRgd1bmkwNEMwB3VuaTA0QzEHdW5pMDRDMgd1bmkwNENGB3VuaTA0RDAHdW5pMDREMQd1bmkwNEQyB3VuaTA0RDMHdW5pMDRENAd1bmkwNEQ1B3VuaTA0RDYHdW5pMDRENwd1bmkwNERBB3VuaTA0RDkHdW5pMDREQgd1bmkwNERDB3VuaTA0REQHdW5pMDRERQd1bmkwNERGB3VuaTA0RTIHdW5pMDRFMwd1bmkwNEU0B3VuaTA0RTUHdW5pMDRFNgd1bmkwNEU3B3VuaTA0RTgHdW5pMDRFOQd1bmkwNEVBB3VuaTA0RUIHdW5pMDRFQwd1bmkwNEVEB3VuaTA0RUUHdW5pMDRFRgd1bmkwNEYwB3VuaTA0RjEHdW5pMDRGMgd1bmkwNEYzB3VuaTA0RjQHdW5pMDRGNQd1bmkwNEY4B3VuaTA0RjkHdW5pMDRGQwd1bmkwNEZEB3VuaTA1MDEHdW5pMDUxMgd1bmkwNTEzB3VuaTFFQTAHdW5pMUVBMQd1bmkxRUEyB3VuaTFFQTMHdW5pMUVBNAd1bmkxRUE1B3VuaTFFQTYHdW5pMUVBNwd1bmkxRUE4B3VuaTFFQTkHdW5pMUVBQQd1bmkxRUFCB3VuaTFFQUMHdW5pMUVBRAd1bmkxRUFFB3VuaTFFQUYHdW5pMUVCMAd1bmkxRUIxB3VuaTFFQjIHdW5pMUVCMwd1bmkxRUI0B3VuaTFFQjUHdW5pMUVCNgd1bmkxRUI3B3VuaTFFQjgHdW5pMUVCOQd1bmkxRUJBB3VuaTFFQkIHdW5pMUVCQwd1bmkxRUJEB3VuaTFFQkUHdW5pMUVCRgd1bmkxRUMwB3VuaTFFQzEHdW5pMUVDMgd1bmkxRUMzB3VuaTFFQzQHdW5pMUVDNQd1bmkxRUM2B3VuaTFFQzcHdW5pMUVDOAd1bmkxRUM5B3VuaTFFQ0EHdW5pMUVDQgd1bmkxRUNDB3VuaTFFQ0QHdW5pMUVDRQd1bmkxRUNGB3VuaTFFRDAHdW5pMUVEMQd1bmkxRUQyB3VuaTFFRDMHdW5pMUVENAd1bmkxRUQ1B3VuaTFFRDYHdW5pMUVENwd1bmkxRUQ4B3VuaTFFRDkHdW5pMUVEQQd1bmkxRURCB3VuaTFFREMHdW5pMUVERAd1bmkxRURFB3VuaTFFREYHdW5pMUVFMAd1bmkxRUUxB3VuaTFFRTIHdW5pMUVFMwd1bmkxRUU0B3VuaTFFRTUHdW5pMUVFNgd1bmkxRUU3B3VuaTFFRTgHdW5pMUVFOQd1bmkxRUVBB3VuaTFFRUIHdW5pMUVFQwd1bmkxRUVEB3VuaTFFRUUHdW5pMUVFRgd1bmkxRUYwB3VuaTFFRjEHdW5pMUVGNAd1bmkxRUY1B3VuaTFFRjYHdW5pMUVGNwd1bmkxRUY4B3VuaTFFRjkGZGNyb2F0B3VuaTIwQUIHdW5pMDQ5QQd1bmkwNDlCB3VuaTA0QTIHdW5pMDRBMwd1bmkwNEFDB3VuaTA0QUQHdW5pMDRCMgd1bmkwNEIzB3VuaTA0QjYHdW5pMDRCNwd1bmkwNENCB3VuaTA0Q0MHdW5pMDRGNgd1bmkwNEY3B3VuaTA0OTYHdW5pMDQ5Nwd1bmkwNEJFB3VuaTA0QkYHdW5pMDRC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/+AA6AATATj/4QE5/+ABPP/hAUH/6QFJ/98BS//eAVP/3wFV//IAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AAFABn/8gDh//EBSf/yAUv/8gFT//IACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QADADUABMA4f/mAOL/9ADoABIA8f/nAS//5wE4/+UBOf/oAUn/5gFL/+YBU//mAVT/5wAJAOH/wwDx/88BL//OATj/5wE7/98BSf/RAUv/7AFT/6ABVP/RAAkA4f/DAPH/zwEv/84BOP/nATv/3wFJ/9EBS//sAVP/oAFU/9EAAgDU/+IBU//kAAIA1P/hAOj/5AAGAOj/7gDx/+4BBP/0ARv/8QEv/+8BVP/vAAQA8f/0AQT/9QEv//UBVP/1AAIA6P/JARf/7gAGAOgAFADx/+0A9//iAS//7QE5/+0BVP/tAAEBF//xAAUBF//rAan/6wGt/+kBtf/rAbb/6wATAEgADQDC/6sAw//AAMf/1QDo/6oBF//iARsADAFKAAsBTAALAaf/vwGp/+4Brf/sAbX/7QG2/+wBuP/1AbkADgG7AA0BvgANAd//sAAGAMX/6gDo/+4A8f+wAS//7AFU/+wB3P/oAAYA6AAUAPH/8AD8AAwBL//wATn/5gFU//AABQDoADoA8f/jAS//4gE5/+MBVP/jAAgA8f+6AQT/zwEb/9sBL/9QATn/nQFK//ABTP/yAVT/TAAIAPH/ugEE/88BG//bAS//UAE5/50BSv/wAUz/8gFU/0wABgDF/+oA6P/uAPH/sAEv/+wBVP/sAdz/6AABAOj/7wAIAPH/ugEE/88BG//bAS//UAE5/50BSv/wAUz/8gFU/0wACADx/7oBBP/PARv/2wEv/1ABOf+dAUr/8AFM//IBVP9MAAgA8f+6AQT/zwEb/9sBL/9QATn/nQFK//ABTP/yAVT/TAAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkACwAUAD8AEQBU/+IAXwATAaf/tAGp/9kBrf/ZAbX/2QG2/9kABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UABgDF/+oA6P/uAPH/sAEv/+wBVP/sAdz/6AAwAFT/bQBZ/4wAa/2/AHr+fQB//rwAhP8rAIf/SwCz/2EAuv8PAL7+6ADB/x8Awv7lAMX/RgDH/u0AyP79AMn+2QDU/1IA4QAFAOX/vQDm/0kA6P7+AOr/EwDx/2gA+P8OAPr/EwD8/wcBAv8OAQT/EQEX/zwBG/+sASf/FQEp/zwBLf8OAS//agEz/0kBOf8MATv/PwE8/vEBQf/AAUb+7wFK/zEBTP9fAVD/CgFTAAUBVP8wAVX/1QHc/1kB3/+PAAIA6P/JARf/7gATAFn/wQCz/8UAxf+0AOX/1wDx/7kBBP+yARf/0gEb/8gBL/+gATn/xQFB/+QBSv/MAUz/zAFU/8sBVf/vAan/6AGt/+YBtf/nAbb/5wATAFn/wQCz/8UAxf+0AOX/1wDx/7kBBP+yARf/0gEb/8gBL/+gATn/xQFB/+QBSv/MAUz/zAFU/8sBVf/vAan/6AGt/+YBtf/nAbb/5wACAOj/yQEX/+4AAQBZAAsAAQBZAAsAAQBZAAsAAQBZAAsAAQBZAAsACQGp//IBrf/yAbX/8gG2//IBuf/AAbr/7AG7/8cBvP/YAb7/vwACAbv/7gG8//UAAQGn/9IABAGp/+sBrf/pAbX/6wG2/+sACgGnABEBqf/wAa3/7gG1/+8Btv/wAbn/uwG6/+wBu/+3Abz/1QG+/7QABQGn//MBuf/uAbv/8QG9/+wBvv/qAAQBuf/pAbv/6wG8//EBvv/lAAQBuf/yAbv/8QG8//UBvv/uAAkBp/+/Aan/7gGt/+wBtf/tAbb/7AG4//UBuQAOAbsADQG+AA0AAQGn/+8ABQGn/8cBqf/yAa3/8AG1//ABtv/wAAIBp//cAbkADgAEAan/7QGt/+sBtf/rAbb/6wAJAaf/wAGp/+0Brf/rAbX/6wG2/+sBuQAPAbsAEAG8AA0BvgAQAAUBpwAMAan/8AGt//ABtf/wAbb/8AABAdf/agABAdf/FQAGAEgACwC6//IAx//xAMn/7wHcAA8B3//uAAEBp//VAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QA5AFT/tQBZ/8cAa/64AHr/KAB//00AhP+OAIf/oQCz/64Auv9+AL7/ZwDB/4cAwv9lAMX/ngDH/2oAyP9zAMn/XgDU/6UA4QAPAOX/5ADm/6AA6P90AOr/gADx/7IA+P99APr/gAD8/3kBAv99AQT/fwEX/5gBG//aASf/gQEp/5gBLf99AS//swEz/6ABOf98ATv/mgE8/2wBQf/mAUb/awFK/5IBTP+tAVD/ewFTAA8BVP+RAVX/8gGn/68Bqf+5Aa3/uQG1/7kBtv+5Abj/vAG5//EBvP/xAb3/7QHc/6kB3//JABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAQAC//mAD//9ABf/+8BPP/tAAUASP/uAFn/6gG7//ABvP/tAb7/8AAFAEj/7gBZ/+oBu//wAbz/7QG+//AABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAUASP/uAFn/6gG7//ABvP/tAb7/8AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QABAaf/6wABAaf/6wABAaf/6wABAaf/6wAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAEA8f/1AAEA8f/1AAEA8f/1AAEA8f/1AAEA8f/AAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAEAAv/5gA///QAX//vATz/7QAEAAv/5gA///QAX//vATz/7QAEAAv/5gA///QAX//vATz/7QAEAAv/5gA///QAX//vATz/7QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEA8f/AAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQGn/+sAEwBZ/8EAs//FAMX/tADl/9cA8f+5AQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGp/+gBrf/mAbX/5wG2/+cACwBZ/6QBpwATAan/8wGt//EBtf/yAbb/8QG5/zsBuv/aAbv/VAG8/5EBvv8/AAsAWf+kAacAEwGp//MBrf/xAbX/8gG2//EBuf87Abr/2gG7/1QBvP+RAb7/PwALAFn/pAGnABMBqf/zAa3/8QG1//IBtv/xAbn/OwG6/9oBu/9UAbz/kQG+/z8ACwBZ/6QBpwATAan/8wGt//EBtf/yAbb/8QG5/zsBuv/aAbv/VAG8/5EBvv8/AAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAPH/wAAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQDx/8AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEA8f/AAAEA8f/AAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAMASAAPAFYAIABZABEAAwBIAA8AVgAgAFkAEQADAEgADwBWACAAWQARADkAVP+1AFn/xwBr/rgAev8oAH//TQCE/44Ah/+hALP/rgC6/34Avv9nAMH/hwDC/2UAxf+eAMf/agDI/3MAyf9eANT/pQDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+v+AAPz/eQEC/30BBP9/ARf/mAEb/9oBJ/+BASn/mAEt/30BL/+zATP/oAE5/3wBO/+aATz/bAFB/+YBRv9rAUr/kgFM/60BUP97AVMADwFU/5EBVf/yAaf/rwGp/7kBrf+5AbX/uQG2/7kBuP+8Abn/8QG8//EBvf/tAdz/qQHf/8kAOQBU/7UAWf/HAGv+uAB6/ygAf/9NAIT/jgCH/6EAs/+uALr/fgC+/2cAwf+HAML/ZQDF/54Ax/9qAMj/cwDJ/14A1P+lAOEADwDl/+QA5v+gAOj/dADq/4AA8f+yAPj/fQD6/4AA/P95AQL/fQEE/38BF/+YARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBp/+vAan/uQGt/7kBtf+5Abb/uQG4/7wBuf/xAbz/8QG9/+0B3P+pAd//yQA5AFT/tQBZ/8cAa/64AHr/KAB//00AhP+OAIf/oQCz/64Auv9+AL7/ZwDB/4cAwv9lAMX/ngDH/2oAyP9zAMn/XgDU/6UA4QAPAOX/5ADm/6AA6P90AOr/gADx/7IA+P99APr/gAD8/3kBAv99AQT/fwEX/5gBG//aASf/gQEp/5gBLf99AS//swEz/6ABOf98ATv/mgE8/2wBQf/mAUb/awFK/5IBTP+tAVD/ewFTAA8BVP+RAVX/8gGn/68Bqf+5Aa3/uQG1/7kBtv+5Abj/vAG5//EBvP/xAb3/7QHc/6kB3//JAAEBp//rAAEBp//rAAEBp//rAAEBp//rAAEBp//rAAEBp//rAAkACwAPAD8ADABU/+sAXwAOAaf/ywGp/+kBrf/nAbX/5wG2/+cAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAgAWf/lALP/ywDI/+QBpwANAan/7QGt/+sBtf/sAbb/7AAIAFn/5QCz/8sAyP/kAacADQGp/+0Brf/rAbX/7AG2/+wACABZ/+UAs//LAMj/5AGnAA0Bqf/tAa3/6wG1/+wBtv/sABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAUASP/uAFn/6gG7//ABvP/tAb7/8AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAACAQwACwFT/+YABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAgAWf/lALP/ywDI/+QBpwANAan/7QGt/+sBtf/sAbb/7AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kABMAWf/BALP/xQDF/7QA5f/XAPH/uQEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8Bqf/oAa3/5gG1/+cBtv/nAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAFYADgB//58Av//eAML/5QDU/6gA6P/KAUb/4wGn/8YB3//1ADkAVP+1AFn/xwBr/rgAev8oAH//TQCE/44Ah/+hALP/rgC6/34Avv9nAMH/hwDC/2UAxf+eAMf/agDI/3MAyf9eANT/pQDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+v+AAPz/eQEC/30BBP9/ARf/mAEb/9oBJ/+BASn/mAEt/30BL/+zATP/oAE5/3wBO/+aATz/bAFB/+YBRv9rAUr/kgFM/60BUP97AVMADwFU/5EBVf/yAaf/rwGp/7kBrf+5AbX/uQG2/7kBuP+8Abn/8QG8//EBvf/tAdz/qQHf/8kAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAEA8f/AAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAFAEj/7gBZ/+oBu//wAbz/7QG+//AAMABU/20AWf+MAGv9vwB6/n0Af/68AIT/KwCH/0sAs/9hALr/DwC+/ugAwf8fAML+5QDF/0YAx/7tAMj+/QDJ/tkA1P9SAOEABQDl/70A5v9JAOj+/gDq/xMA8f9oAPj/DgD6/xMA/P8HAQL/DgEE/xEBF/88ARv/rAEn/xUBKf88AS3/DgEv/2oBM/9JATn/DAE7/z8BPP7xAUH/wAFG/u8BSv8xAUz/XwFQ/woBUwAFAVT/MAFV/9UB3P9ZAd//jwAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEBp//rABMAWf/BALP/xQDF/7QA5f/XAPH/uQEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8Bqf/oAa3/5gG1/+cBtv/nABMAWf/BALP/xQDF/7QA5f/XAPH/uQEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8Bqf/oAa3/5gG1/+cBtv/nABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAAgEMAAsBU//mADAAVP9tAFn/jABr/b8Aev59AH/+vACE/ysAh/9LALP/YQC6/w8Avv7oAMH/HwDC/uUAxf9GAMf+7QDI/v0Ayf7ZANT/UgDhAAUA5f+9AOb/SQDo/v4A6v8TAPH/aAD4/w4A+v8TAPz/BwEC/w4BBP8RARf/PAEb/6wBJ/8VASn/PAEt/w4BL/9qATP/SQE5/wwBO/8/ATz+8QFB/8ABRv7vAUr/MQFM/18BUP8KAVMABQFU/zABVf/VAdz/WQHf/48ABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAFYADgB//58Av//eAML/5QDU/6gA6P/KAUb/4wGn/8YB3//1AAQAC//mAD//9ABf/+8BPP/tADkAVP+1AFn/xwBr/rgAev8oAH//TQCE/44Ah/+hALP/rgC6/34Avv9nAMH/hwDC/2UAxf+eAMf/agDI/3MAyf9eANT/pQDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+v+AAPz/eQEC/30BBP9/ARf/mAEb/9oBJ/+BASn/mAEt/30BL/+zATP/oAE5/3wBO/+aATz/bAFB/+YBRv9rAUr/kgFM/60BUP97AVMADwFU/5EBVf/yAaf/rwGp/7kBrf+5AbX/uQG2/7kBuP+8Abn/8QG8//EBvf/tAdz/qQHf/8kAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wABAPH/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAYAxf/qAOj/7gDx/7ABL//sAVT/7AHc/+gABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAAQEX//EAAQDx//UAAgDo/8kBF//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAkACwAPAD8ADABU/+sAXwAOAaf/ywGp/+kBrf/nAbX/5wG2/+cACQALAA8APwAMAFT/6wBfAA4Bp//LAan/6QGt/+cBtf/nAbb/5wAJAAsADwA/AAwAVP/rAF8ADgGn/8sBqf/pAa3/5wG1/+cBtv/nACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAAQBZAAsAAQBZAAsAAQBZAAsACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEA8f/AABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAkACwAUAD8AEQBU/+IAXwATAaf/tAGp/9kBrf/ZAbX/2QG2/9kABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UABAAL/+YAP//0AF//7wE8/+0AJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AABARf/8QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAEA8f/1AAEA8f/1ABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAan/6QGt/+cBtf/nAbb/6QHf//AAAQEX//EACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oABgDF/+oA6P/uAPH/sAEv/+wBVP/sAdz/6AASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAEgDU/64A4QASAOb/4ADo/60A6v/WAPj/3wD8/9IBAv/gARf/zgEn/90BKf/iAS3/4AEz/+ABOf/pATz/2gFG/70BUP/fAVMAEQAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wAAEBF//xABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gABAaf/6wABAaf/6wAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QATAFn/wQCz/8UAxf+0AOX/1wDx/7kBBP+yARf/0gEb/8gBL/+gATn/xQFB/+QBSv/MAUz/zAFU/8sBVf/vAan/6AGt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/+oDJP74Ayj/VgMzABQDNf/eAzb/6wM4/+sDOv/rAzv/6AM9/+sDRP/oA0z/6ANV/1YDVv/eA1z/6wNh/+gDYv/rA2f/6wNp/+gDbv9WA2//3gNw/1YDcf/eA3X/6wN3/+sDeP/rA4L/6wOE/+sDhv/rA4r/6AOM/+gDjv/oA5X/6wOY/1YDmf/eA5r/VgOb/94DnP9WA53/3gOe/1YDn//eA6D/VgOh/94Dov9WA6P/3gOk/1YDpf/eA6b/VgOn/94DqP9WA6n/3gOq/1YDq//eA6z/VgOt/94Drv9WA6//3gOx/+sDs//rA7X/6wO3/+sDuf/rA7v/6wO9/+sDv//rA8X/6wPH/+sDyf/rA8v/6wPN/+sDz//rA9H/6wPT/+sD1f/rA9f/6wPZ/+sD2//rA93/6gPf/+oD4f/qA+P/6gPl/+oD5//qA+n/6gPr/+gD7f/oA+//6AP2ABQAHwA2/9UAOP/kADn/7AA7/90Azf/VANH/1QEU/+QBLv/VATb/1QIL/90CgP/VAoL/1QKE/9UCkv/sApT/3QKW/90C/f/dAwz/3QMP/90DM//VA0X/7ANH/+wDSf/sA0v/3QNg/+QDaP/dA+r/3QPs/90D7v/dA/b/1QQT/90AGgA2/7AAOP/tADv/0ADN/7AA0f+wART/7QEu/7ABNv+wAgv/0AKA/7ACgv+wAoT/sAKU/9AClv/QAv3/0AMM/9ADD//QAzP/sANL/9ADYP/tA2j/0APq/9AD7P/QA+7/0AP2/7AEE//QABAALP/uADf/7gIH/+4CCP/uAgn/7gIK/+4CV//uAob/7gKI/+4Civ/uAoz/7gKO/+4CkP/uAyT/7gPc/+4D3v/uAEcABAAQAAkAEABF/+gARv/oAEf/6ABJ/+gAU//oAJH/6ACV/+gAtv/oAMP/6ADE/+gA8v/oAP7/6AEZ/+gBHf/oATX/6AFH/+gBSP/oAVL/6AFlABABZgAQAWgAEAFpABABagAQAhP/6AIU/+gCFf/oAhb/6AIX/+gCL//oAjH/6AIz/+gCNf/oAjf/6AI5/+gCO//oAj3/6AI//+gCQf/oAkP/6AJF/+gCR//oAkn/6AMQ/+gDNv/oAzr/6AM9/+gDTQAQA04AEANSABADXP/oA2L/6ANn/+gDdf/oA3f/6AN4/+gDhP/oA5X/6AOx/+gDs//oA7X/6AO3/+gDuf/oA7v/6AO9/+gDv//oA9P/6APV/+gD1//oA9v/6AA9AEX/7ABG/+wAR//sAEn/7ABT/+wAkf/sAJX/7AC2/+wAw//sAMT/7ADy/+wA/v/sARn/7AEd/+wBNf/sAUf/7AFI/+wBUv/sAhP/7AIU/+wCFf/sAhb/7AIX/+wCL//sAjH/7AIz/+wCNf/sAjf/7AI5/+wCO//sAj3/7AI//+wCQf/sAkP/7AJF/+wCR//sAkn/7AMQ/+wDNv/sAzr/7AM9/+wDXP/sA2L/7ANn/+wDdf/sA3f/7AN4/+wDhP/sA5X/7AOx/+wDs//sA7X/7AO3/+wDuf/sA7v/7AO9/+wDv//sA9P/7APV/+wD1//sA9v/7AAXAFH/7AET/+wCHf/sAh7/7AIf/+wCIP/sAiH/7AJr/+wCbf/sAm//7AMW/+wDHP/sAzj/7AOC/+wDhv/sA8X/7APH/+wDyf/sA8v/7APN/+wDz//sA9H/7APZ/+wABgAO/4QAEP+EAWf/hAFr/4QBb/+EAXD/hAAQACz/7AA3/+wCB//sAgj/7AIJ/+wCCv/sAlf/7AKG/+wCiP/sAor/7AKM/+wCjv/sApD/7AMk/+wD3P/sA97/7AABKSwABAAAACIATgDEAaoCkANqBAQGnghkCTYKLAvyDCQMVgzUDroPMBACEhQSyhQwFOoVcBXOFpAXBhcYF0IYlBrSGvQcChyIHLIc3AAdAAT/8gAJ//IAWP/zAFv/8wC4//MBFf/zAWX/8gFm//IBaP/yAWn/8gFq//ICJv/zAif/8wKV//MDGP/zAzv/8wNE//MDTP/zA03/8gNO//IDUv/yA2H/8wNp//MDiv/zA4z/8wOO//MD6//zA+3/8wPv//MAOQAl//MAKf/zADH/8wAz//MAgf/zAJD/8wCU//MArv/zAM7/8wED//MBEv/zARb/8wEY//MBGv/zARz/8wE0//MBUf/zAfj/8wIC//MCA//zAgT/8wIF//MCBv/zAi7/8wIw//MCMv/zAjT/8wJC//MCRP/zAkb/8wJI//MCav/zAmz/8wJu//MCn//zAvz/8wMJ//MDL//zAzL/8wNX//MDY//zA2b/8wOB//MDg//zA4X/8wPE//MDxv/zA8j/8wPK//MDzP/zA87/8wPQ//MD0v/zA9T/8wPW//MD2P/zA9r/8wA5ACX/5gAp/+YAMf/mADP/5gCB/+YAkP/mAJT/5gCu/+YAzv/mAQP/5gES/+YBFv/mARj/5gEa/+YBHP/mATT/5gFR/+YB+P/mAgL/5gID/+YCBP/mAgX/5gIG/+YCLv/mAjD/5gIy/+YCNP/mAkL/5gJE/+YCRv/mAkj/5gJq/+YCbP/mAm7/5gKf/+YC/P/mAwn/5gMv/+YDMv/mA1f/5gNj/+YDZv/mA4H/5gOD/+YDhf/mA8T/5gPG/+YDyP/mA8r/5gPM/+YDzv/mA9D/5gPS/+YD1P/mA9b/5gPY/+YD2v/mADYAI//kADr/0gA7/9MArf/kAK//5ADV/9IBCP/kAfH/5AHy/+QB8//kAfT/5AH1/+QB9v/kAff/5AIL/9MCKP/kAir/5AIs/+QClP/TApb/0wL4/+QC/f/TAwD/5AMM/9MDDf/SAw//0wMo/+QDNP/SA0v/0wNV/+QDaP/TA2v/0gNu/+QDcP/kA3n/0gOT/9IDmP/kA5r/5AOc/+QDnv/kA6D/5AOi/+QDpP/kA6b/5AOo/+QDqv/kA6z/5AOu/+QD6v/TA+z/0wPu/9MD+P/SBAD/0gQT/9MAJgAO/x4AEP8eACP/zQCt/80Ar//NAQj/zQFn/x4Ba/8eAW//HgFw/x4B8f/NAfL/zQHz/80B9P/NAfX/zQH2/80B9//NAij/zQIq/80CLP/NAvj/zQMA/80DKP/NA1X/zQNu/80DcP/NA5j/zQOa/80DnP/NA57/zQOg/80Dov/NA6T/zQOm/80DqP/NA6r/zQOs/80Drv/NAKYARf/cAEb/3ABH/9wASf/cAE//8wBQ//MAUf/WAFL/8wBT/9wAV//dAFj/4QBb/+EAkf/cAJX/3ACX/90Atv/cALj/4QC8//MAw//cAMT/3ADG/90A5//zAOv/8wDs//MA7v/zAO//8wDw//MA8v/cAPP/8wD1//MA9v/zAPn/8wD7//MA/v/cAQD/8wET/9YBFf/hARn/3AEd/9wBMf/zATX/3AFA//MBRf/zAUf/3AFI/9wBUv/cAhP/3AIU/9wCFf/cAhb/3AIX/9wCHP/zAh3/1gIe/9YCH//WAiD/1gIh/9YCIv/dAiP/3QIk/90CJf/dAib/4QIn/+ECL//cAjH/3AIz/9wCNf/cAjf/3AI5/9wCO//cAj3/3AI//9wCQf/cAkP/3AJF/9wCR//cAkn/3AJk//MCZv/zAmj/8wJp//MCa//WAm3/1gJv/9YCh//dAon/3QKL/90Cjf/dAo//3QKR/90Clf/hAxD/3AMS//MDFP/dAxb/1gMY/+EDG//dAxz/1gMd/90DNv/cAzf/8wM4/9YDOf/zAzr/3AM7/+EDPf/cAz7/8wND//MDRP/hA0z/4QNU//MDXP/cA13/8wNh/+EDYv/cA2f/3ANp/+EDdf/cA3f/3AN4/9wDfv/zA4D/8wOC/9YDhP/cA4b/1gOK/+EDjP/hA47/4QOS//MDlf/cA7H/3AOz/9wDtf/cA7f/3AO5/9wDu//cA73/3AO//9wDxf/WA8f/1gPJ/9YDy//WA83/1gPP/9YD0f/WA9P/3APV/9wD1//cA9n/1gPb/9wD3f/dA9//3QPh/90D4//dA+X/3QPn/90D6f/dA+v/4QPt/+ED7//hA/P/8wP1//MD///zBAz/8wQO//MEEP/zAHEABP/aAAn/2gBF//AARv/wAEf/8ABJ//AAU//wAFf/7wBY/9wAW//cAJH/8ACV//AAl//vALb/8AC4/9wAw//wAMT/8ADG/+8A8v/wAP7/8AEV/9wBGf/wAR3/8AE1//ABR//wAUj/8AFS//ABZf/aAWb/2gFo/9oBaf/aAWr/2gIT//ACFP/wAhX/8AIW//ACF//wAiL/7wIj/+8CJP/vAiX/7wIm/9wCJ//cAi//8AIx//ACM//wAjX/8AI3//ACOf/wAjv/8AI9//ACP//wAkH/8AJD//ACRf/wAkf/8AJJ//ACh//vAon/7wKL/+8Cjf/vAo//7wKR/+8Clf/cAxD/8AMU/+8DGP/cAxv/7wMd/+8DNv/wAzr/8AM7/9wDPf/wA0T/3ANM/9wDTf/aA07/2gNS/9oDXP/wA2H/3ANi//ADZ//wA2n/3AN1//ADd//wA3j/8AOE//ADiv/cA4z/3AOO/9wDlf/wA7H/8AOz//ADtf/wA7f/8AO5//ADu//wA73/8AO///AD0//wA9X/8APX//AD2//wA93/7wPf/+8D4f/vA+P/7wPl/+8D5//vA+n/7wPr/9wD7f/cA+//3AA0AAT/oAAJ/6AAV//xAFj/xQBb/8UAl//xALj/xQDG//EBFf/FAWX/oAFm/6ABaP+gAWn/oAFq/6ACIv/xAiP/8QIk//ECJf/xAib/xQIn/8UCh//xAon/8QKL//ECjf/xAo//8QKR//EClf/FAxT/8QMY/8UDG//xAx3/8QM7/8UDRP/FA0z/xQNN/6ADTv+gA1L/oANh/8UDaf/FA4r/xQOM/8UDjv/FA93/8QPf//ED4f/xA+P/8QPl//ED5//xA+n/8QPr/8UD7f/FA+//xQA9AEX/5wBG/+cAR//nAEn/5wBT/+cAkf/nAJX/5wC2/+cAw//nAMT/5wDy/+cA/v/nARn/5wEd/+cBNf/nAUf/5wFI/+cBUv/nAhP/5wIU/+cCFf/nAhb/5wIX/+cCL//nAjH/5wIz/+cCNf/nAjf/5wI5/+cCO//nAj3/5wI//+cCQf/nAkP/5wJF/+cCR//nAkn/5wMQ/+cDNv/nAzr/5wM9/+cDXP/nA2L/5wNn/+cDdf/nA3f/5wN4/+cDhP/nA5X/5wOx/+cDs//nA7X/5wO3/+cDuf/nA7v/5wO9/+cDv//nA9P/5wPV/+cD1//nA9v/5wBxAAQADAAJAAwARf/oAEb/6ABH/+gASf/oAFH/6gBT/+gAWAALAFsACwCR/+gAlf/oALb/6AC4AAsAw//oAMT/6ADy/+gA/v/oARP/6gEVAAsBGf/oAR3/6AE1/+gBR//oAUj/6AFS/+gBZQAMAWYADAFoAAwBaQAMAWoADAIT/+gCFP/oAhX/6AIW/+gCF//oAh3/6gIe/+oCH//qAiD/6gIh/+oCJgALAicACwIv/+gCMf/oAjP/6AI1/+gCN//oAjn/6AI7/+gCPf/oAj//6AJB/+gCQ//oAkX/6AJH/+gCSf/oAmv/6gJt/+oCb//qApUACwMQ/+gDFv/qAxgACwMc/+oDNv/oAzj/6gM6/+gDOwALAz3/6ANEAAsDTAALA00ADANOAAwDUgAMA1z/6ANhAAsDYv/oA2f/6ANpAAsDdf/oA3f/6AN4/+gDgv/qA4T/6AOG/+oDigALA4wACwOOAAsDlf/oA7H/6AOz/+gDtf/oA7f/6AO5/+gDu//oA73/6AO//+gDxf/qA8f/6gPJ/+oDy//qA83/6gPP/+oD0f/qA9P/6APV/+gD1//oA9n/6gPb/+gD6wALA+0ACwPvAAsADABa/+0AXP/tAOn/7QKY/+0Cmv/tApz/7QM8/+0DbP/tA3r/7QOU/+0D+f/tBAH/7QAMAFr/8gBc//IA6f/yApj/8gKa//ICnP/yAzz/8gNs//IDev/yA5T/8gP5//IEAf/yAB8AWP/0AFr/8gBb//QAXP/zALj/9ADp//IBFf/0Aib/9AIn//QClf/0Apj/8wKa//MCnP/zAxj/9AM7//QDPP/yA0T/9ANM//QDYf/0A2n/9ANs//IDev/yA4r/9AOM//QDjv/0A5T/8gPr//QD7f/0A+//9AP5//IEAf/yAHkABP/KAAn/ygA2/9IAOP/UADr/9AA7/9MAT//RAFD/0QBS/9EAWP/mAFr/7wBb/+YAuP/mALz/0QDN/9IA0f/SANX/9ADZ/+0A3P/hAOf/0QDp/+8A6//RAOz/0QDu/9EA7//RAPD/0QDz/9EA9f/RAPb/0QD5/9EA+//RAQD/0QEU/9QBFf/mAS7/0gEx/9EBNv/SAUD/0QFF/9EBZf/KAWb/ygFo/8oBaf/KAWr/ygIL/9MCHP/RAib/5gIn/+YCZP/RAmb/0QJo/9ECaf/RAoD/0gKC/9IChP/SApT/0wKV/+YClv/TAv3/0wMM/9MDDf/0Aw//0wMS/9EDGP/mAyf/7QMz/9IDNP/0Azf/0QM5/9EDO//mAzz/7wM+/9EDQ//RA0T/5gNL/9MDTP/mA03/ygNO/8oDUv/KA1T/0QNd/9EDYP/UA2H/5gNo/9MDaf/mA2v/9ANs/+8Def/0A3r/7wN+/9EDgP/RA4n/7QOK/+YDi//tA4z/5gON/+0Djv/mA4//4QOS/9EDk//0A5T/7wPq/9MD6//mA+z/0wPt/+YD7v/TA+//5gPz/9ED9f/RA/b/0gP4//QD+f/vA/r/4QP8/+ED///RBAD/9AQB/+8EDP/RBA7/0QQQ/9EEE//TAB0ANv++AFj/7wBb/+8AuP/vAM3/vgDR/74BFf/vAS7/vgE2/74CJv/vAif/7wKA/74Cgv++AoT/vgKV/+8DGP/vAzP/vgM7/+8DRP/vA0z/7wNh/+8Daf/vA4r/7wOM/+8Djv/vA+v/7wPt/+8D7//vA/b/vgA0ADb/5gA4/+cAOv/yADv/5wBa//EAzf/mANH/5gDV//IA2f/uANz/6ADp//EBFP/nAS7/5gE2/+YCC//nAoD/5gKC/+YChP/mApT/5wKW/+cC/f/nAwz/5wMN//IDD//nAyf/7gMz/+YDNP/yAzz/8QNL/+cDYP/nA2j/5wNr//IDbP/xA3n/8gN6//EDif/uA4v/7gON/+4Dj//oA5P/8gOU//ED6v/nA+z/5wPu/+cD9v/mA/j/8gP5//ED+v/oA/z/6AQA//IEAf/xBBP/5wCEACMAEAAl/+gAKf/oADH/6AAz/+gANv/gADj/4AA7/98Agf/oAJD/6ACU/+gArQAQAK7/6ACvABAAzf/gAM7/6ADPABAA0f/gANgAEADc/+EA7QAQAPT/4AD/ABABA//oAQgAEAES/+gBFP/gARb/6AEY/+gBGv/oARz/6AEu/+ABNP/oATb/4AFNABABUf/oAfEAEAHyABAB8wAQAfQAEAH1ABAB9gAQAfcAEAH4/+gCAv/oAgP/6AIE/+gCBf/oAgb/6AIL/98CKAAQAioAEAIsABACLv/oAjD/6AIy/+gCNP/oAkL/6AJE/+gCRv/oAkj/6AJq/+gCbP/oAm7/6AKA/+ACgv/gAoT/4AKU/98Clv/fAp//6AL4ABAC/P/oAv3/3wMAABADCf/oAwz/3wMP/98DKAAQAy//6AMy/+gDM//gA0v/3wNVABADV//oA2D/4ANj/+gDZv/oA2j/3wNuABADcAAQA4H/6AOD/+gDhf/oA4//4QOQ/+ADlgAQA5cAEAOYABADmgAQA5wAEAOeABADoAAQA6IAEAOkABADpgAQA6gAEAOqABADrAAQA64AEAPE/+gDxv/oA8j/6APK/+gDzP/oA87/6APQ/+gD0v/oA9T/6APW/+gD2P/oA9r/6APq/98D7P/fA+7/3wP2/+AD+v/hA/v/4AP8/+ED/f/gBBEAEAQSABAEE//fAC0ANv/xADj/9AA6//QAO//wAM3/8QDP//UA0f/xANX/9ADY//UA2f/zART/9AEu//EBNv/xAU3/9QIL//ACgP/xAoL/8QKE//EClP/wApb/8AL9//ADDP/wAw3/9AMP//ADJ//zAzP/8QM0//QDS//wA2D/9ANo//ADa//0A3n/9AOJ//MDi//zA43/8wOT//QDlv/1A+r/8APs//AD7v/wA/b/8QP4//QEAP/0BBH/9QQT//AAWQAjAA8ANv/mADj/5gA6AA4AO//mAK0ADwCvAA8Azf/mAM8ADgDR/+YA1QAOANgADgDZAAsA3P/lAO0ADwD0/+gA/wAPAQgADwEU/+YBLv/mATb/5gFNAA4B8QAPAfIADwHzAA8B9AAPAfUADwH2AA8B9wAPAgv/5gIoAA8CKgAPAiwADwKA/+YCgv/mAoT/5gKU/+YClv/mAvgADwL9/+YDAAAPAwz/5gMNAA4DD//mAycACwMoAA8DM//mAzQADgNL/+YDVQAPA2D/5gNo/+YDawAOA24ADwNwAA8DeQAOA4kACwOLAAsDjQALA4//5QOQ/+gDkwAOA5YADgOXAA8DmAAPA5oADwOcAA8DngAPA6AADwOiAA8DpAAPA6YADwOoAA8DqgAPA6wADwOuAA8D6v/mA+z/5gPu/+YD9v/mA/gADgP6/+UD+//oA/z/5QP9/+gEAAAOBBEADgQSAA8EE//mAC4ANv/jADr/5QA7/+QAzf/jAM//5QDR/+MA1f/lANj/5QDZ/+kA7f/qAP//6gEu/+MBNv/jAU3/5QIL/+QCgP/jAoL/4wKE/+MClP/kApb/5AL9/+QDDP/kAw3/5QMP/+QDJ//pAzP/4wM0/+UDS//kA2j/5ANr/+UDef/lA4n/6QOL/+kDjf/pA5P/5QOW/+UDl//qA+r/5APs/+QD7v/kA/b/4wP4/+UEAP/lBBH/5QQS/+oEE//kACEANv/iADr/5ADN/+IAz//kANH/4gDV/+QA2P/kANn/6QDt/+sA///rAS7/4gE2/+IBTf/kAoD/4gKC/+IChP/iAw3/5AMn/+kDM//iAzT/5ANr/+QDef/kA4n/6QOL/+kDjf/pA5P/5AOW/+QDl//rA/b/4gP4/+QEAP/kBBH/5AQS/+sAFwA2/+sAO//zAM3/6wDR/+sBLv/rATb/6wIL//MCgP/rAoL/6wKE/+sClP/zApb/8wL9//MDDP/zAw//8wMz/+sDS//zA2j/8wPq//MD7P/zA+7/8wP2/+sEE//zADAAT//vAFD/7wBS/+8AWv/wALz/7wDn/+8A6f/wAOv/7wDs/+8A7v/vAO//7wDw/+8A8//vAPX/7wD2/+8A+f/vAPv/7wEA/+8BMf/vAUD/7wFF/+8CHP/vAmT/7wJm/+8CaP/vAmn/7wMS/+8DN//vAzn/7wM8//ADPv/vA0P/7wNU/+8DXf/vA2z/8AN6//ADfv/vA4D/7wOS/+8DlP/wA/P/7wP1/+8D+f/wA///7wQB//AEDP/vBA7/7wQQ/+8AHQAE//IACf/yAFj/9QBb//UAuP/1ARX/9QFl//IBZv/yAWj/8gFp//IBav/yAib/9QIn//UClf/1Axj/9QM7//UDRP/1A0z/9QNN//IDTv/yA1L/8gNh//UDaf/1A4r/9QOM//UDjv/1A+v/9QPt//UD7//1AAQA9P/tA5D/7QP7/+0D/f/tAAoABP/1AAn/9QFl//UBZv/1AWj/9QFp//UBav/1A03/9QNO//UDUv/1AFQARf/wAEb/8ABH//AASf/wAFH/6wBT//AAkf/wAJX/8AC2//AAw//wAMT/8ADy//AA/v/wARP/6wEZ//ABHf/wATX/8AFH//ABSP/wAVL/8AIT//ACFP/wAhX/8AIW//ACF//wAh3/6wIe/+sCH//rAiD/6wIh/+sCL//wAjH/8AIz//ACNf/wAjf/8AI5//ACO//wAj3/8AI///ACQf/wAkP/8AJF//ACR//wAkn/8AJr/+sCbf/rAm//6wMQ//ADFv/rAxz/6wM2//ADOP/rAzr/8AM9//ADXP/wA2L/8ANn//ADdf/wA3f/8AN4//ADgv/rA4T/8AOG/+sDlf/wA7H/8AOz//ADtf/wA7f/8AO5//ADu//wA73/8AO///ADxf/rA8f/6wPJ/+sDy//rA83/6wPP/+sD0f/rA9P/8APV//AD1//wA9n/6wPb//AAjwAEAA0ACQANAEP/8ABF/7AARv+wAEf/sABJ/7AAUf/WAFP/sABYAAsAWwALAJH/sACV/7AAtv+wALgACwDE/7AA7f+vAPL/sAD+/7AA//+vARP/1gEVAAsBGf+wAR3/sAE1/7ABR/+wAUj/sAFS/7ABZQANAWYADQFoAA0BaQANAWoADQIM//ACDf/wAg7/8AIP//ACEP/wAhH/8AIS//ACE/+wAhT/sAIV/7ACFv+wAhf/sAId/9YCHv/WAh//1gIg/9YCIf/WAiYACwInAAsCKf/wAiv/8AIt//ACL/+wAjH/sAIz/7ACNf+wAjf/sAI5/7ACO/+wAj3/sAI//7ACQf+wAkP/sAJF/7ACR/+wAkn/sAJr/9YCbf/WAm//1gKVAAsDEP+wAxb/1gMYAAsDHP/WAzX/8AM2/7ADOP/WAzr/sAM7AAsDPf+wA0QACwNMAAsDTQANA04ADQNSAA0DVv/wA1z/sANhAAsDYv+wA2f/sANpAAsDb//wA3H/8AN1/7ADd/+wA3j/sAOC/9YDhP+wA4b/1gOKAAsDjAALA44ACwOV/7ADl/+vA5n/8AOb//ADnf/wA5//8AOh//ADo//wA6X/8AOn//ADqf/wA6v/8AOt//ADr//wA7H/sAOz/7ADtf+wA7f/sAO5/7ADu/+wA73/sAO//7ADxf/WA8f/1gPJ/9YDy//WA83/1gPP/9YD0f/WA9P/sAPV/7AD1/+wA9n/1gPb/7AD6wALA+0ACwPvAAsEEv+vAAgA7QAQAPT/8AD/ABADkP/wA5cAEAP7//AD/f/wBBIAEABFAEUADABGAAwARwAMAEkADABTAAwAkQAMAJUADAC2AAwAwwAMAMQADADtABgA8gAMAPT/9wD+AAwA/wAYARkADAEdAAwBNQAMAUcADAFIAAwBUgAMAhMADAIUAAwCFQAMAhYADAIXAAwCLwAMAjEADAIzAAwCNQAMAjcADAI5AAwCOwAMAj0ADAI/AAwCQQAMAkMADAJFAAwCRwAMAkkADAMQAAwDNgAMAzoADAM9AAwDXAAMA2IADANnAAwDdQAMA3cADAN4AAwDhAAMA5D/9wOVAAwDlwAYA7EADAOzAAwDtQAMA7cADAO5AAwDuwAMA70ADAO/AAwD0wAMA9UADAPXAAwD2wAMA/v/9wP9//cEEgAYAB8AWP/0AFr/8ABb//QAuP/0AOn/8ADt//MA///zARX/9AIm//QCJ//0ApX/9AMY//QDO//0Azz/8ANE//QDTP/0A2H/9ANp//QDbP/wA3r/8AOK//QDjP/0A47/9AOU//ADl//zA+v/9APt//QD7//0A/n/8AQB//AEEv/zAAoABP/WAAn/1gFl/9YBZv/WAWj/1gFp/9YBav/WA03/1gNO/9YDUv/WAAoABP/1AAn/9QFl//UBZv/1AWj/9QFp//UBav/1A03/9QNO//UDUv/1AF4ABAALAAkACwBF/+sARv/rAEf/6wBJ/+sAUf/pAFP/6wCR/+sAlf/rALb/6wDD/+sAxP/rAPL/6wD+/+sBE//pARn/6wEd/+sBNf/rAUf/6wFI/+sBUv/rAWUACwFmAAsBaAALAWkACwFqAAsCE//rAhT/6wIV/+sCFv/rAhf/6wId/+kCHv/pAh//6QIg/+kCIf/pAi//6wIx/+sCM//rAjX/6wI3/+sCOf/rAjv/6wI9/+sCP//rAkH/6wJD/+sCRf/rAkf/6wJJ/+sCa//pAm3/6QJv/+kDEP/rAxb/6QMc/+kDNv/rAzj/6QM6/+sDPf/rA00ACwNOAAsDUgALA1z/6wNi/+sDZ//rA3X/6wN3/+sDeP/rA4L/6QOE/+sDhv/pA5X/6wOx/+sDs//rA7X/6wO3/+sDuf/rA7v/6wO9/+sDv//rA8X/6QPH/+kDyf/pA8v/6QPN/+kDz//pA9H/6QPT/+sD1f/rA9f/6wPZ/+kD2//rAAILHgAEAAAN5hU6ACEAHQAAABH/zv+PABL/9f/v/4j/9P+7/3//9QAM/6n/ov/JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/lAAAAAP/o/8kAAP/zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAA/+UAEQAAAAAAAAAAAAD/4wAAAAAAAP/k/+QAAAASABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+EAAAAAAAAAAAAAAAAAAAAA/+UAAAAA/+r/1QAAAAD/6//q/5r/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/mAAAAAAAAAAAAAP/tAAAAFP/vAAAAAAAAAAAAAAAAAAAAAAAA/+0AAAAAAAAAAAAAAAAAAAAA/8v/uP98/37/5AAAAAD/nQAPABD/of/EABAAEAAAAAD/sQAA/yYAAP+d/7P/GP+T//D/j/+M/xAAAP+S/3L/DP8P/70AAAAA/0QABQAH/0v/hgAHAAcAAAAA/z4AAP56AAD/RP9q/mL/M//R/yz/JwAAAAAAAAAAAAD/2AAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAD/2P+jAAD/4QAAAAD/5QAAAAD/6QAAAAAAAAAAAAAAAAAAAAAAAP/mAAD/wP/pAAAAAAAAAAAAAAAA/3sAAAAA/7//yv92AAD/cf7t/9QAAP9R/xEAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yQAPAAD/2QAAAAAAAP/zAAAAAAAAAAAAAAAAAAAAAP92/+H+vP/m//MAAAAAAAAAAP/1AAD/OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//UAAAAA//MAAAAA/9IAAAAA/+QAAAAAAAAAAAAA/7UAAP8fAAD/1AAA/9sAAAAA/9IAAAAAAAAAEf/h/9EAEf/nAAAAAP/rAAAAAP/rAAAADgAAAAAAAAAAAAAAAAAA/+YAAP/SAAAAAAAAAAAAAAAAAAD/7AAAAAD/4/+gAAD/vwARABH/2f/iABIAEgAAAAD/ogAN/y0AAP+//+n/zP/Y//D/t//G/6AAAAAAAAAAAAAAAAAAAAAA/+EAAAAO/+0AAAAAAAAAAAAA/9UAAP+FAAD/4QAA/8QAAAAA/98AAAAAAAAAAP/lAAAAAP/mAAAAAP/rAAAAAP/tAAAAAAAAAAAAAAANAAAAAAAA/+sAAAAAAAAAAAAAAAAAAAAA/8oAAP/p/7v/6QAAAAD/vQAAABIAAAAAAAAAEgAAAAD/pQAA/m0AAP+9AAD/if+aAAD/kf/SAAAAAAAA//EAAAAAAAAAAP+9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAA//IAAAAA/+MAAAAAAAAAAP/xAAAAAAAAAAAAAAAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAA//MAAAAAAAAAAP/yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAA//AAAAAA/+wAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAA/+sAAAAAAAAAAAAAAAAAAAAAAAAAAP/XAAAAAAAP//EAAAAAAAAAAAAAAAAAAAAAAAAAAP+VAAD/8wAAAAAAAAAA//EAAAAAAAAAAAASAAAAAAAAAAAAEP/sAAAAAAAAAAAAAAAAAAAAAAAAAAD/hQAA/+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/lf/DAAAAAAAAAAAAAAAAAAAAAP+IAAAAAAAA/8UAAAAA/+wAAP/O/7AAAAAAAAAAAAAAAAAAAAAA/1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/1AAAAAAAAAAAAAP/AAAAAAP71AAAAAP/I/63/5//rAAD/8AAAAAAAAP/JAAAAAAAAAAAAAAAAAAAAAP/d/9kAAAAAAAD/eQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAAAAAAAAAAACAIgABAAEAAAACQAJAAEAEQARAAIAIwAoAAMAKgAzAAkANgA8ABMAQwBEABoARwBIABwASgBKAB4ATwBSAB8AVABUACMAWABYACQAWgBbACUAiACIACcAmQCZACgArACwACkAsgC0AC4AtgC2ADEAuAC5ADIAuwC8ADQAvgDAADYAwgDHADkAzQDNAD8AzwDZAEAA2wDbAEsA3QDfAEwA4QDjAE8A5QDpAFIA7ADsAFcA8QDzAFgA9gD3AFsA+QD7AF0A/wEAAGABBQEFAGIBCAEIAGMBEwEVAGQBJwEpAGcBLAEsAGoBLgEuAGsBRQFFAGwBZQFmAG0BaAFqAG8BpgGmAHIBqQGpAHMBqwGrAHQBsAGxAHUBtAG2AHcBuAG+AHoBxAHEAIEB2wHcAIIB6AHoAIQB7AHtAIUB7wHvAIcB8QISAIgCFAIXAKoCHAIhAK4CJgIuALQCMAIwAL0CMgIyAL4CNAI0AL8CNgI2AMACOAJBAMECSgJMAMsCTgJOAM4CUAJQAM8CUgJSANACVAJUANECVwJXANICWQJZANMCWwJbANQCXQJdANUCXwJfANYCYQJhANcCYwJvANgCcQJxAOUCcwJzAOYCdQJ1AOcCgAKAAOgCggKCAOkChAKEAOoChgKGAOsCiAKIAOwCigKKAO0CjAKMAO4CjgKOAO8CkAKQAPACkgKSAPEClAKXAPICmQKZAPYCmwKbAPcC+AL9APgDAAMPAP4DEgMSAQ4DFgMWAQ8DGAMYARADHAMcAREDHwMgARIDIgMrARQDLQMvAR4DMQM2ASEDOAM5AScDOwM+ASkDRANFAS0DRwNHAS8DSQNJATADSwNOATEDUgNXATUDWgNaATsDXANcATwDYANhAT0DZgNmAT8DaANxAUADdAN1AUoDdwN6AUwDgQOCAVADhgOGAVIDiAOOAVMDkwOUAVoDmAPAAVwDwgPCAYUDxAPRAYYD2QPZAZQD3APcAZUD3gPeAZYD6gPvAZcD8gPyAZ0D9AP0AZ4D9gP2AZ8D+AP5AaAD/gQBAaIEBAQEAaYEBgQHAacECQQJAakEDQQNAaoEDwQPAasEEwQTAawAAQAKAAoAKAAzADQAPQBIAE0AVgBZAF0AAQAiAJkAsACyALMAtAC7AL4AvwDAAMUAxwDIAMkAzQDRANMA1ADWAN4A4gDjAOQA5QDmAOgA6gDsAPEA8wD2APsA/gEdAdwAAgB2AAQABAAAAAkACQABAA4ADgACABAAEAADACMAJwAEACoAMgAJADYAPAASAEMARQAZAEcARwAcAEoASgAdAE8AUgAeAFQAVAAiAFgAWAAjAFoAXAAkAIgAiAAnAKwArwAoALgAuAAsALwAvAAtAMIAwgAuAM8A0AAvANIA0gAxANUA1QAyANcA2QAzANsA2wA2AN0A3QA3AN8A3wA4AOEA4QA5AOcA5wA6AOkA6QA7APIA8gA8APcA9wA9APkA+gA+AP8BAABAAQUBBQBCAQgBCABDARMBFQBEAScBKQBHASwBLABKAS4BLgBLAUUBRQBMAWUBawBNAW8BcABUAewB7QBWAe8B7wBYAfECFwBZAhwCIQCAAiYCNgCGAjgCQQCXAkoCTAChAk4CTgCkAlACUAClAlICUgCmAlQCVACnAlcCVwCoAlkCWQCpAlsCWwCqAl0CXQCrAl8CXwCsAmECYQCtAmMCbwCuAnECcQC7AnMCcwC8AnUCdQC9AoACgAC+AoICggC/AoQChADAAoYChgDBAogCiADCAooCigDDAowCjADEAo4CjgDFApACkADGApICkgDHApQCnADIAvgC/QDRAwADDwDXAxIDEgDnAxYDFgDoAxgDGADpAxwDHADqAx8DIADrAyIDKwDtAy0DLwD3AzEDNgD6AzgDPgEAA0QDRQEHA0cDRwEJA0kDSQEKA0sDTgELA1IDVwEPA1oDWgEVA1wDXAEWA2ADYQEXA2YDcQEZA3QDdQElA3cDegEnA4EDggErA4YDhgEtA4gDjgEuA5MDlAE1A5gDwAE3A8IDwgFgA8QD0QFh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ABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAABEAEQARABEAEQARABEABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABgAGAAYABgAOABoAGgAaABoAGgAaABoAFQAVABUAFQAVAAAAAAAAAAAAGAAIAAgACAAIAAgACwALAAsACwACAAIAEQAaABEAGgARABoABQAVAAUAFQAFABUABQAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAUAFQAFABUABQAVAAUAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAYABgABQAIAAUACAAFAAgAAAAAAAAAAAAAAAAAGQAbABkAGwAZABsAGQAbABkAGwAKAAAACgAAAAoAAAAGAAsABgALAAYACwAGAAsABgALAAYACwAJAAAADgACAA4AFAAMABQADAAUAAwAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAUADgAAAAAAEQAAAAAAFAAAAAAAAAAAAAAABQAAAAAADgASAAAADgAVAAAAGAAAAAsAAAAIAAAAAgAAAAAACwAIAAsAAAAAAAAAAAAAAAAAHAAAAAAAEAARAAAAAAAAAAAAAAAAAAUAAAAAAAUACgASABoAFQAYAAgAGAAVAAIAFgAVABgAGwAAAAAAAAAYAAIACQAAAAkAAAAJAAAADgACAAcABwAAAAAAAAAHAAAAGAARABoABQAAAAAAAAAAABUAGAAAAAAADQACABUABQAAAAAABQAVAA4AAgAAABIAFgAAABEAGgARABoAAAAAAAAAFQAAABUAFQASABYAAAAAAAAAGAAAABgABQAIAAUAFQAFAAgAAAAAABAAAgAQAAIAEAACAA8AAwAAABgAEgAWABUAAQAEABEAGgARABoAEQAaABEAGgARABoAEQAaABEAGgARABoAEQAaABEAGgARABoAEQAaAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAAAAAAAAAFAAgABQAIAAUACAAFAAgABQAIAAUACAAFAAgABQAVAAUAFQAFABUABQAIAAUAFQAGAAsABgALAAAACwAAAAsAAAALAAAACwAAAAsADgACAA4AAgAOAAIAAAAAAAAAGAAAABgACgAAABIAFgAPAAMADwADAAAAGAASABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAGAAAABgAAQAEAA4AAAAAAAAAAAAAABcAAQAAAAoALACOAAFERkxUAAgABAAAAAD//wAIAAAAAQACAAMABAAFAAYABwAIbGlnYQAybG51bQA4c21jcAA+c3MwMQBEc3MwMgBKc3MwMwBQc3MwNABWc3MwNQBcAAAAAQABAAAAAQACAAAAAQAAAAAAAQADAAAAAQAEAAAAAQAFAAAAAQAGAAAAAQAHAAgAEgAaACIAKgAyADoAQgBKAAEAAAABAEAABAAAAAEB9gABAAAAAQIAAAEAAAABAhIAAQAAAAECEAABAAAAAQIOAAEAAAABAgwAAQAAAAECDgACAhAA3AGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAHoAbUBtgG3AbgBuQG6AbsBvAG9Ab4BpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQB6AG1AbYBtwG4AbkBugG7AbwBvQG+AvcCogKhAqICowKjAqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+AqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+AvMCvwK/AsACwALBAsECwgLCAsMCwwLFAsUCxgLGAscCxwLIAsgCyQLJAsoCygLLAssCzALMAs0CzQLPAs8C0ALQAtEC0QLSAtIC0wLTAtQC1ALVAtYC1gLXAtcC2ALYAtkC2QLaAtoC2wLbAtwC3ALdAt0C3gLeAt8C3wLgAuAC4QLhAuIC4gLjAuMC5ALkAuUC5QLmAuYC5wLnAugC6P////8C6gLqAusC6wLsAuwC7QLtAu4C7gLvAu8C8ALwAvEC8QLyAvIC8wL0AvQC9QL1AvYC9gKhAAEApAABAAgAAQAEAZIAAgBLAAIAmAAKAZgBzAHEAdYB1wHYAdkB2wHdAecAAQCIAZEAAQCIASgAAQCIAa4AAgCIAAIB4wHkAAIAfgACAeUB5gACAA0AIwA8AAAAQwBcABoAgwCDADQAhQCFADUB7AHtADYB7wIxADgCNAJFAHsCSAJUAI0CVwJoAJoCagJ7AKwCfgJ/AL4CggKcAMAD8APwANsAAQABAEgAAgABABIAGwAAAAEAAQBJAAEAAQC2AAEAAQA0AAEAAgAtAE0=", -"Roboto-Medium.ttf":"AAEAAAAOAIAAAwBgR0RFRgsuCy8AASxgAAAASEdQT1OQeyOPAAEsqAAAl/pHU1VCeolvLwABxKQAAANsT1MvMrkTKcoAAAFoAAAAYFZETVhu6nZPAAASOAAABeBjbWFwf76BZgAAGBgAAA7iZ2x5Zm8zqQ4AACb8AADUQGhlYWT1Pw7VAAAA7AAAADZoaGVhCx4JIwAAASQAAAAkaG10eLpNNCcAAAHIAAAQcGxvY2EEms7QAAD7PAAACDptYXhwBDsA9gAAAUgAAAAgbmFtZb10XwMAAQN4AAAEn3Bvc3Tfb5xiAAEIGAAAJEYAAQAAAAEAAF5SMstfDzz1AAkIAAAAAADE8BEuAAAAAM2CsnL6JP3VCYsIYgAAAAkAAgAAAAAAAAABAAAHbP4MAAAJnfok/V0JiwABAAAAAAAAAAAAAAAAAAAEHAABAAAEHACXABYAXQAFAAEAAAAAAAAAAAAAAAAAAwABAAME3gH0AAUAAAWaBTMAAAEfBZoFMwAAA9EAZgIAAAAAAAAAAAAAAAAA4AAC/1AAIFsAAAAgAAAAAHB5cnMAAAAA//0GAP4AAGYHmgIAIAABn08BAAAEOgWwAAAAIAACAf4AAAAAAAAB/gAAAf4AAAKYAFIE4gA8BIwAZAXgAGQFHQA+AVoAUgK3AIACvAARA38AGwR1AEQBwgAnAqAARwI8AJkDKgACBIwAaASMAMoEjABRBIwATwSMADgEjACBBIwAdASMAEUEjABhBIwAUgIlAJkCIABRBBEAPwSOAJEEKgCAA+QAKQchAEoFQgAaBSAAnwUgAHQFYgCfBKMAnwShAJ8FbQB0BbAAnwJNAK0EfAA6BSgAnwRkAJ8HAgCfBbAAnwWPAHQFKwCfBZAAdAVFAJ8E8wBTBOoANQV0AIYFKwAaBwIARAUUAC8FAwATBMAAWAIxAIQDVwAVAjEADANrADUDnAADApQASgRaAF4EiACABDMAUQSIAFMEPABZAs8AMQSIAFQEiAB9AhMAkAIZ/7AEMACBAhMAkAb1AIAEiAB+BIgAUwSIAIAEiABTAtoAgAQpAFECnQAZBIgAewQOACAF+gAlBA4AIQQOABAEDgBVAq8AOAICAK4CrwAbBVEAdQIeAI8EfQBoBLUAUQWdAF0E4AAaAfwAiAT4AFoEHgCkBkQAVwORAHQD4gBUBG0AfwZEAFcD2wCHAwoAfwRLAF8DYQBtA2MAYQKxAHgEuwCSBBAAPgJCAKACEABtAjUAZAOnAHcD4gBcBgwAmwZmAJMG0wBmBAEAYAeF//YERABNBXoAaQTKAJQE5wCIBsEANAS6ADwEkQBDBIkAUwSXAIcFogAYAhoAjwSYAI4EJAAbAj8AGwWSAJMEiAB+B7QAZQc6AFsCDACLAtD/3QWJAGYEnwBSBaUAhgTyAHsCJv+1BDwAWQPmAJsDsAB5A3wAdQJPAJoCsgCCAk0AKQPYAIADLwB6ApwAqwAA/NsAAP02AAD8eQAA/T4AAPwMAAD9IgJdANcEPACdAkIAoAR1AJ8FvQAaBXsAZgU5ACMEkQBwBbEAnwSRAEcF6wBLBacASAVbAGwEhABWBMYAlgQOACAEiABUBGAAYAQaAGEEiAB+BKIAcwKmAKkEagAWBBMAZAT3AE8EiACABDcAUgSQAFIELgBABGAAgAXQAEQFyQBPBpQAZgUuAHUEdf/uBnEAMwX/ACQFPgByCIoALgiRAJ8GXwA1BasAmQUIAJQGBwAmB5oAGATTAEoFqgCaBakALgUKAD8GYABPBfYAmQWIAI8HmgCeB/oAngYaABgG+QCfBQcAlAU8AIgHVACqBPsALQR9AFsEjwCPA1oAhQT2ACcGdgAXBBYATQSYAIYEbgCPBJoAHwYDAI8ElwCGBJgAhgP1ACMF0wBUBNMAhgRmAF8GjgCGBuwAfgUYAB8GbwCPBGgAjwQ8AFEGhACQBHAAJwSJ/+EEPQBYBtEAHwbkAIYEif/1BJgAhgdDAI0GTwBwBGf/4AcpAKIGAQCGBQcAIARgAAoHQgC2BjYAnQbtAIQF5gCCCTIArQf5AI8EIQApA/AAMwV7AGoEiQBSBRkAEQQOACAFewBqBIkAUwc+AI0GRAB0B0MAjQZQAHAFHQBqBEoAXAT/AG0AAPxmAAD8cwAA/XsAAP2lAAD6JP7p+k0EZ//gBRQAnwSHAIAEagCUA6IAfgS3AJ8EIAB+BSoAlASrAI4GlgA0BaQAPgfRAJ8FqwB+CEcAnwb1AH4GJQBpBP8AYQcyAC4FcQAmBXUAggRzAHQFhwCKBiYAIATE/84FHwCUBHgAjgWwAJ8EiAB+BYgAUwSmAF0EpgBdBMcAOwNTADQFBwBUBusAZgbdAF4GUwA7BSgALwR7AEkEPwB1B74AQwadAD8H/gCYBp4AdwUDAGIELABVBaoAIgUdAEQFVwCHBBQAAAgpAAAEFAAACCkAAAK5AAACCgAAAVwAAAR/AAACMAAAAaIAAADRAAAAAAAABYcArQaBALIDnQAEAcAAYAG8ADMBzgAyAagARwMUAGIDGwBAAwgAMgRdAEAEmQBcAssAiAP6AJwFpgCcB6gASwJyAGwCaQBUA5wALQOpAD8DXABpBLUATwa4AJkETQBLBeUAcQPiAEUIyACYBQkAZAUUAJYGyQBpB2EAageRAGoG7wBqBLsAQwWWAKYE2QBABIMAngSyADsIRQBkAiH/sgSOAGUETACYBEYAqgRLAKAEGgAkAlsAswKYAGMB8QBFBKgAGAAAAAAIMABZCDUAXAQyAE0DiwBNBJMAbAMn/58CEP+wAk0AGAGzAFwDoQB1A6EAdQOhAHUECwB5BAsAdQQL/0wECwB6A6EAWwIFAJAEyAAcBIwAjgSUAGgErwCOBEcAjgQqAI4E2wBoBRIAjgIVAI4EFwAuBHcAjgO9AI4GBgCOBSEAjgTKAGYE3QBoBKgAjgRwAE8EMgA8BQAAfgSxABwGDgA0BIwALARVABMETQBKBIYAbQKFAD4D/wBSBCIATQRlADkEfABRBD0AbQOvADwEQwBSBCoAPwIzAFcDVQBrA2YAYAL9ADgDdgBoA3YAcAMAAFIDgwBoA2YAYAOfAHADuQCXArIAlgNCAGwEjABPBIwAOASMAIEEmAB0BDsACgQ0ADIEYgA+BIwAYQS7AFYEiABTBUkAnwRaAGAFMgCfBSgAnwQwAIEFOgCfBC0AgQSNAFIEjACOA3wAdQH+AAACoABHBYAAJAWAACQEpv/9BOoANQKd/+cFQgAaBUIAGgVCABoFQgAaBUIAGgVCABoFQgAaBSAAdASjAJ8EowCfBKMAnwSjAJ8CTf/MAk0ArQJN/9gCTf+9BbAAnwWPAHQFjwB0BY8AdAWPAHQFjwB0BXQAhgV0AIYFdACGBXQAhgUDABMEWgBeBFoAXgRaAF4EWgBeBFoAXgRaAF4EWgBeBDMAUQQ8AFkEPABZBDwAWQQ8AFkCGv+vAhoAjwIa/7sCGv+gBIgAfgSIAFMEiABTBIgAUwSIAFMEiABTBIgAewSIAHsEiAB7BIgAewQOABAEDgAQBUIAGgRaAF4FQgAaBFoAXgVCABoEWgBeBSAAdAQzAFEFIAB0BDMAUQUgAHQEMwBRBSAAdAQzAFEFYgCfBR4AUwSjAJ8EPABZBKMAnwQ8AFkEowCfBDwAWQSjAJ8EPABZBKMAnwQ8AFkFbQB0BIgAVAVtAHQEiABUBW0AdASIAFQFbQB0BIgAVAWwAJ8EiAB9Ak3/vwIa/6ICTf+/Ahr/ogJN/+UCGv/IAk0AHAIT//4CTQCjBskArQQsAJAEfAA6Aib/tQUoAJ8EMACBBGQAnwITAJAEZACfAhMAWARkAJ8CqQCQBGQAnwLvAJAFsACfBIgAfgWwAJ8EiAB+BbAAnwSIAH4EiP/VBY8AdASIAFMFjwB0BIgAUwWPAHQEiABTBUUAnwLaAIAFRQCfAtoAVgVFAJ8C2gBDBPMAUwQpAFEE8wBTBCkAUQTzAFMEKQBRBPMAUwQpAFEE8wBTBCkAUQTqADUCnQAZBOoANQKdABkE6gA1AsUAGQV0AIYEiAB7BXQAhgSIAHsFdACGBIgAewV0AIYEiAB7BXQAhgSIAHsFdACGBIgAewcCAEQF+gAlBQMAEwQOABAFAwATBMAAWAQOAFUEwABYBA4AVQTAAFgEDgBVB4X/9gbBADQFegBpBIkAUwSv/+oEr//qBDIAPATIABwEyAAcBMgAHATIABwEyAAcBMgAHATIABwElABoBEcAjgRHAI4ERwCOBEcAjgIV/6wCFQCOAhX/uAIV/50FIQCOBMoAZgTKAGYEygBmBMoAZgTKAGYFAAB+BQAAfgUAAH4FAAB+BFUAEwTIABwEyAAcBMgAHASUAGgElABoBJQAaASUAGgErwCOBEcAjgRHAI4ERwCOBEcAjgRHAI4E2wBoBNsAaATbAGgE2wBoBRIAjgIV/58CFf+fAhX/xQIV//kCFQCEBBcALgR3AI4DvQCOA70AjgO9AI4DvQCOBSEAjgUhAI4FIQCOBMoAZgTKAGYEygBmBKgAjgSoAI4EqACOBHAATwRwAE8EcABPBHAATwQyADwEMgA8BQAAfgUAAH4FAAB+BQAAfgUAAH4FAAB+Bg4ANARVABMEVQATBE0ASgRNAEoETQBKCOAATwVCABoFB/+vBhT/3AKx/+MFowAqBWf/ZwVvABMCpv+wBUIAGgUgAJ8EowCfBMAAWAWwAJ8CTQCtBSgAnwcCAJ8FsACfBY8AdAUrAJ8E6gA1BQMAEwUUAC8CTf+9BQMAEwSEAFYEYABgBIgAfgKmAKkEYACABJgAjgSIAFMEuwCSBA4AIAQOACECpv/EBGAAgASIAFMEYACABpQAZgSjAJ8EdQCfBPMAUwJNAK0CTf+9BHwAOgUoAJ8FKACfBQoAPwVCABoFIACfBHUAnwSjAJ8FqgCaBwIAnwWwAJ8FjwB0BbEAnwUrAJ8FIAB0BOoANQUUAC8EWgBeBDwAWQSYAIYEiABTBIgAgAQzAFEEDgAQBA4AIQQ8AFkDWgCFBCkAUQITAJACGv+gAhn/sARuAI8EDgAQBwIARAX6ACUHAgBEBfoAJQcCAEQF+gAlBQMAEwQOABABWgBSApgAUgRKAJoE4gAxAib/tQG8ADMHAgCfBvUAgAVCABoEWgBeBY//PQd3ADEHsQAxBKMAnwWqAJoEPABZBJgAhgWnAEgFyQBPBRkAEQQO/+MIlgBTCZ0AdATTAEoEFgBNBSAAdAQzAFEFAwATBA4AIAJNAK0HmgAYBnYAFwJNAK0FQgAaBFoAXgVCABoEWgBeB4X/9gbBADQEowCfBDwAWQWIAFMEPABZBDwAWQeaABgGdgAXBNMASgQWAE0FqgCaBJgAhgWqAJoEmACGBY8AdASIAFMFewBqBIkAUgV7AGoEiQBSBTwAiAQ8AFEFCgA/BA4AEAUKAD8EDgAQBQoAPwQOABAFiACPBGYAXwb5AJ8GbwCPBRQALwQOACEEiABTBakALgSaAB8FQgAaBFoAXgVCABoEWgBeBUIAGgRaAF4FQgAEBFr/iQVCABoEWgBeBUIAGgRaAF4FQgAaBFoAXgVCABoEWgBeBUIAGgRaAF4FQgAaBFoAXgVCABoEWgBeBUIAGgRaAF4EowCfBDwAWQSjAJ8EPABZBKMAnwQ8AFkEowCfBDwAWQSj/8wEPP+LBKMAnwQ8AFkEowCfBDwAWQSjAJ8EPABZAk0ArQIaAI8CTQCfAhMAggWPAHQEiABTBY8AdASIAFMFjwB0BIgAUwWPACsEiP+mBY8AdASIAFMFjwB0BIgAUwWPAHQEiABTBYkAZgSfAFIFiQBmBJ8AUgWJAGYEnwBSBYkAZgSfAFIFiQBmBJ8AUgV0AIYEiAB7BXQAhgSIAHsFpQCGBPIAewWlAIYE8gB7BaUAhgTyAHsFpQCGBPIAewWlAIYE8gB7BQMAEwQOABAFAwATBA4AEAUDABMEDgAQBKYAUwSmAFMFKACf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w83m/k4AAAAAAf/9AAAEKgYYABwAAAEjERc+ATMyFhURIxE0JiMiBgcRIxEjNTM1MxUzAoz+AzWXYLC982RoSW4m856e8/4Ex/7sAUtR1Of9bQKVgnA6NfzoBMeqp6cAAAEANQAABLUFsAAPAAABIxEjESM1MxEhNSEVIREzA73P883N/joEgP45zwMS/O4DEqoBMcPD/s8AAf/n/+wCdgVBAB8AAAERMxUjFTMVIxEUFjMyNjcXDgEjIiY1ESM1MzUjNTMRAaHDw9XVMSsZLBQaIV4xg4/Hx5WVBUH++bSlqv75RTYHBrIQFJmrAQeqpbQBB///ABoAAAUoByICJgAjAAAABwBCAPwBXP//ABoAAAUoByECJgAjAAAABwBzAbMBW///ABoAAAUoB0cCJgAjAAAABwCaALcBWf//ABoAAAUoB2MCJgAjAAAABwCgALkBbP//ABoAAAUoBw0CJgAjAAAABwBoAJMBXf//ABoAAAUoB48CJgAjAAAABwCeAUwBs///ABoAAAUoB70CJgAjAAAABwHUAVIBKP//AHT+PATYBcUCJgAlAAAABwB3Acb/+///AJ8AAAR1ByICJgAnAAAABwBCAMQBXP//AJ8AAAR1ByECJgAnAAAABwBzAXsBW///AJ8AAAR1B0cCJgAnAAAABwCaAH8BWf//AJ8AAAR1Bw0CJgAnAAAABwBoAFsBXf///8wAAAGgByICJgArAAAABwBC/4IBXP//AK0AAAKEByECJgArAAAABwBzADgBW////9gAAAJ5B0cCJgArAAAABwCa/z0BWf///70AAAKSBw0CJgArAAAABwBo/xkBXf//AJ8AAAUQB2MCJgAwAAAABwCgAO4BbP//AHT/6wUbBzcCJgAxAAAABwBCASMBcf//AHT/6wUbBzYCJgAxAAAABwBzAdoBcP//AHT/6wUbB1wCJgAxAAAABwCaAN4Bbv//AHT/6wUbB3gCJgAxAAAABwCgAOABgf//AHT/6wUbByICJgAxAAAABwBoALoBcv//AIb/6wTxByICJgA3AAAABwBCARcBXP//AIb/6wTxByECJgA3AAAABwBzAc4BW///AIb/6wTxB0cCJgA3AAAABwCaANIBWf//AIb/6wTxBw0CJgA3AAAABwBoAK4BXf//ABMAAATvByECJgA7AAAABwBzAZYBW///AF7/7AQB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AAcAnADtAcH//wBU/kwECAYaAiYASQAAAAYAnHlqAAD//wB0/+sE4gc2AiYAKQAAAAcAnQGHAYD//wBU/kwECAXfAiYASQAAAAcAnQETACn//wB0/eIE4gXFAiYAKQAAAAcBkQG2/qv//wBU/kwECAaKAiYASQAAAAcBpQEtAH7//wCfAAAFEAdHAiYAKgAAAAcAmgDoAVn//wB9AAAEDAdiAiYASgAAAAcAmgAbAXT///+/AAACkAdjAiYAKwAAAAcAoP8/AWz///+iAAACcwYMAiYAigAAAAcAoP8iABX///+/AAAClgb2AiYAKwAAAAcAbv84AUb///+iAAACeQWgAiYAigAAAAcAbv8b//D////lAAACawdcAiYAKwAAAAcAnP9wAaz////IAAACTgYFAiYAigAAAAcAnP9TAFX//wAc/lwBoAWwAiYAKwAAAAYAn/MKAAD////+/lIBgwYYAiYASwAAAAYAn9UAAAD//wCjAAABpgchAiYAKwAAAAcAnQAJAWv//wCt/+sGMwWwACYAKwAAAAcALAJNAAD//wCQ/ksDoQYYACYASwAAAAcATAITAAD//wA6/+sEsgc/AiYALAAAAAcAmgF2AVH///+1/ksCZAXjAiYAmAAAAAcAmv8o//X//wCf/fAFLwWwAiYALQAAAAcBkQGK/rn//wCB/fIENQYYAiYATQAAAAcBkQEv/rv//wCfAAAELwb4AiYALgAAAAcAcwAqATL//wCQAAACZwdfAiYATgAAAAcAcwAbAZn//wCf/fIELwWwAiYALgAAAAcBkQF1/rv//wBY/fIBgwYYAiYATgAAAAcBkQAT/rv//wCfAAAELwWyAiYALgAAAAcBkQIEBKz//wCQAAAC6AYYACYATgAAAAcBkQGOBRL//wCfAAAELwWwAiYALgAAAAcAnQG7/dT//wCQAAAC9wYYACYATgAAAAcAnQFa/a///wCfAAAFEAchAiYAMAAAAAcAcwHoAVv//wB+AAAECwXfAiYAUAAAAAcAcwFTABn//wCf/fIFEAWwAiYAMAAAAAcBkQHg/rv//wB+/fIECwROAiYAUAAAAAcBkQFL/rv//wCfAAAFEAdOAiYAMAAAAAcAmwEDAV3//wB+AAAECwYMAiYAUAAAAAYAm24bAAD////VAAAECwYYAiYAUAAAAAcBkf+QBRL//wB0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aAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcABhAGMAaABlAC4AbwByAGcALwBsAGkAYwBlAG4AcwBlAHMALwBMAEkAQwBFAE4AUwBFAC0AMgAuADAAUgBvAGIAbwB0AG8ATQBlAGQAaQB1AG0AAAIAAAAAAAD/agBkAAAAAAAAAAAAAAAAAAAAAAAAAAAEHAAAAQIAAgADAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAKMAhACFAL0AlgDoAIYAjgCLAJ0AqQCkAIoBAwCDAJMA8gDzAI0AlwCIAQQA3gDxAJ4AqgD1APQA9gCiAJAA8ACRAO0AiQCgAOoAuAChAO4BBQDXAQYA4gDjAQcBCACwALEBCQCmAQoBCwEMAQ0BDgEPANgA4QDbANwA3QDgANkA3wEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiAJ8BIwEkASUBJgEnASgBKQEqASsBLAEtAJsBLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQCyALMBzgC2ALcAxAHPALQAtQDFAIIAwgCHAdAAqwDGAL4AvwC8AdEB0gHTAdQB1QHWAdcB2ACMAdkB2gHbAdwB3QCYAJoAmQDvAKUAkgCcAKcAjwCUAJUAuQHeAd8B4ADAAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+Af8CAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgITAhQCFQIWAhcCGAIZAhoCGwIcAh0CHgIfAiACIQIiAiMCJAIlAiYCJwIoAikCKgIrAiwCLQIuAi8CMAIxAjICMwI0AjUCNgI3AKwCOAI5AOkCOgI7AjwArQDJAMcArgBiAGMCPQBkAMsAZQDIAMoAzwDMAM0AzgBmANMA0ADRAK8AZwDWANQA1QBoAOsAagBpAGsAbQBsAG4CPgBvAHEAcAByAHMAdQB0AHYAdwB4AHoAeQB7AH0AfAB/AH4AgACBAOwAugI/AkACQQJCAkMCRAD9AP4CRQJGAkcCSAD/AQACSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAPgA+QJXAlgCWQJaAlsCXAJdAl4CXwJgAmECYgJjAmQCZQJmAmcCaAJpAmoCawJsAm0CbgJvAnACcQJyAnMCdAJ1AnYCdwJ4AnkCegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUChgKHAogCiQKKAPsA/AKLAowA5ADlAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqIAuwKjAqQCpQKmAOYA5wKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygLLAswCzQLOAs8C0ALRAtIC0wLUAtUC1gLXAtgC2QLaAtsC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gLvAvAC8QLyAvMC9AL1AvYC9wL4AvkC+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyADIQMiAyMDJAMlAyYDJwMoAykDKgMrAywDLQMuAy8DMAMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A3oDewN8A30DfgN/A4ADgQOCA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DkAORA5IDkwOUA5UDlgOXA5gDmQOaA5sDnAOdA54DnwOgA6EDogOjA6QDpQOmA6cDqAOpA6oDqwOsA60DrgOvA7ADsQOyA7MDtAO1A7YDtwO4A7kDugO7A7wDvQO+A78DwAPBA8IDwwPEA8UDxgPHA8gDyQPKA8sDzAPNA84DzwPQA9ED0gPTA9QD1QPWA9cD2APZA9oD2wPcA90D3gPfA+AD4QPiA+MD5APlA+YD5wPoA+kD6gPrA+wD7QPuA+8D8APxA/ID8wP0A/UD9gP3A/gD+QP6A/sD/AP9A/4D/wQABAEEAgQDBAQEBQQGBAcECAQJBAoECwQMBA0EDgQPBBAEEQQSBBMEFAQVBBYEFwQYBBkEGgQbBBwEHQQeBB8EIAQhAPcEIgQjAAQHdW5pMDAwOQZtYWNyb24OcGVyaW9kY2VudGVyZWQESGJhcgxrZ3JlZW5sYW5kaWMDRW5nA2VuZwVsb25ncwVPaG9ybgVvaG9ybgVVaG9ybgV1aG9ybgd1bmkwMjM3BXNjaHdhB3VuaTAyRjMJZ3JhdmVjb21iCWFjdXRlY29tYgl0aWxkZWNvbWIEaG9vawd1bmkwMzBGCGRvdGJlbG93BXRvbm9zDWRpZXJlc2lzdG9ub3MJYW5vdGVsZWlhBUdhbW1hBURlbHRhBVRoZXRhBkxhbWJkYQJYaQJQaQVTaWdtYQNQaGkDUHNpBWFscGhhBGJldGEFZ2FtbWEFZGVsdGEHZXBzaWxvbgR6ZXRhA2V0YQV0aGV0YQRpb3RhBmxhbWJkYQJ4aQNyaG8Gc2lnbWExBXNpZ21hA3RhdQd1cHNpbG9uA3BoaQNwc2kFb21lZ2EHdW5pMDNEMQd1bmkwM0QyB3VuaTAzRDYHdW5pMDQwMgd1bmkwNDA0B3VuaTA0MDkHdW5pMDQwQQd1bmkwNDBCB3VuaTA0MEYHdW5pMDQxMQd1bmkwNDE0B3VuaTA0MTYHdW5pMDQxNwd1bmkwNDE4B3VuaTA0MUIHdW5pMDQyMwd1bmkwNDI0B3VuaTA0MjYHdW5pMDQyNwd1bmkwNDI4B3VuaTA0MjkHdW5pMDQyQQd1bmkwNDJCB3VuaTA0MkMHdW5pMDQyRAd1bmkwNDJFB3VuaTA0MkYHdW5pMDQzMQd1bmkwNDMyB3VuaTA0MzMHdW5pMDQzNAd1bmkwNDM2B3VuaTA0MzcHdW5pMDQzOAd1bmkwNDNBB3VuaTA0M0IHdW5pMDQzQwd1bmkwNDNEB3VuaTA0M0YHdW5pMDQ0Mgd1bmkwNDQ0B3VuaTA0NDYHdW5pMDQ0Nwd1bmkwNDQ4B3VuaTA0NDkHdW5pMDQ0QQd1bmkwNDRCB3VuaTA0NEMHdW5pMDQ0RAd1bmkwNDRFB3VuaTA0NEYHdW5pMDQ1Mgd1bmkwNDU0B3VuaTA0NTkHdW5pMDQ1QQd1bmkwNDVCB3VuaTA0NUYHdW5pMDQ2MAd1bmkwNDYxB3VuaTA0NjMHdW5pMDQ2NAd1bmkwNDY1B3VuaTA0NjYHdW5pMDQ2Nwd1bmkwNDY4B3VuaTA0NjkHdW5pMDQ2QQd1bmkwNDZCB3VuaTA0NkMHdW5pMDQ2RAd1bmkwNDZFB3VuaTA0NkYHdW5pMDQ3Mgd1bmkwNDczB3VuaTA0NzQHdW5pMDQ3NQd1bmkwNDdBB3VuaTA0N0IHdW5pMDQ3Qwd1bmkwNDdEB3VuaTA0N0UHdW5pMDQ3Rgd1bmkwNDgwB3VuaTA0ODEHdW5pMDQ4Mgd1bmkwNDgzB3VuaTA0ODQHdW5pMDQ4NQd1bmkwNDg2B3VuaTA0ODgHdW5pMDQ4OQd1bmkwNDhEB3VuaTA0OEUHdW5pMDQ4Rgd1bmkwNDkwB3VuaTA0OTEHdW5pMDQ5NAd1bmkwNDk1B3VuaTA0OUMHdW5pMDQ5RAd1bmkwNEEwB3VuaTA0QTEHdW5pMDRBNAd1bmkwNEE1B3VuaTA0QTYHdW5pMDRBNwd1bmkwNEE4B3VuaTA0QTkHdW5pMDRCNAd1bmkwNEI1B3VuaTA0QjgHdW5pMDRCOQd1bmkwNEJBB3VuaTA0QkMHdW5pMDRCRAd1bmkwNEMzB3VuaTA0QzQHdW5pMDRDNwd1bmkwNEM4B3VuaTA0RDgHdW5pMDRFMAd1bmkwNEUxB3VuaTA0RkEHdW5pMDRGQgd1bmkwNTAwB3VuaTA1MDIHdW5pMDUwMwd1bmkwNTA0B3VuaTA1MDUHdW5pMDUwNgd1bmkwNTA3B3VuaTA1MDgHdW5pMDUwOQd1bmkwNTBBB3VuaTA1MEIHdW5pMDUwQwd1bmkwNTBEB3VuaTA1MEUHdW5pMDUwRgd1bmkwNTEwB3VuaTIwMDAHdW5pMjAwMQd1bmkyMDAyB3VuaTIwMDMHdW5pMjAwNAd1bmkyMDA1B3VuaTIwMDYHdW5pMjAwNwd1bmkyMDA4B3VuaTIwMDkHdW5pMjAwQQd1bmkyMDBCDXVuZGVyc2NvcmVkYmwNcXVvdGVyZXZlcnNlZAd1bmkyMDI1B3VuaTIwNzQJbnN1cGVyaW9yBGxpcmEGcGVzZXRhBEV1cm8HdW5pMjEwNQd1bmkyMTEzB3VuaTIxMTYJZXN0aW1hdGVkCW9uZWVpZ2h0aAx0aHJlZWVpZ2h0aHMLZml2ZWVpZ2h0aHMMc2V2ZW5laWdodGhzCmNvbG9uLmxudW0JcXVvdGVkYmx4C2NvbW1hYWNjZW50B3VuaUZFRkYHdW5pRkZGQwd1bmlGRkZECWZpdmUuc21jcAhmb3VyLnN1cAl6ZXJvLmxudW0ObGFyZ2VyaWdodGhvb2sMY3lyaWxsaWNob29rEGN5cmlsbGljaG9va2xlZnQLY3lyaWxsaWN0aWMOYnJldmV0aWxkZWNvbWINYnJldmVob29rY29tYg5icmV2ZWFjdXRlY29tYhNjaXJjdW1mbGV4dGlsZGVjb21iEmNpcmN1bWZsZXhob29rY29tYhNjaXJjdW1mbGV4Z3JhdmVjb21iE2NpcmN1bWZsZXhhY3V0ZWNvbWIOYnJldmVncmF2ZWNvbWIRY29tbWFhY2NlbnRyb3RhdGUGQS5zbWNwBkIuc21jcAZDLnNtY3AGRC5zbWNwBkUuc21jcAZGLnNtY3AGRy5zbWNwBkguc21jcAZJLnNtY3AGSi5zbWNwBksuc21jcAZMLnNtY3AGTS5zbWNwBk4uc21jcAZPLnNtY3AGUS5zbWNwBlIuc21jcAZTLnNtY3AGVC5zbWNwBlUuc21jcAZWLnNtY3AGVy5zbWNwBlguc21jcAZZLnNtY3AGWi5zbWNwCXplcm8uc21jcAhvbmUuc21jcAh0d28uc21jcAp0aHJlZS5zbWNwCWZvdXIuc21jcAh0d28ubG51bQhzaXguc21jcApzZXZlbi5zbWNwCmVpZ2h0LnNtY3AJbmluZS5zbWNwB29uZS5zdXAHdHdvLnN1cAl0aHJlZS5zdXAIb25lLmxudW0IZml2ZS5zdXAHc2l4LnN1cAlzZXZlbi5zdXAJZWlnaHQuc3VwCG5pbmUuc3VwCHplcm8uc3VwCGNyb3NzYmFyCXJpbmdhY3V0ZQlkYXNpYW94aWEKdGhyZWUubG51bQlmb3VyLmxudW0JZml2ZS5sbnVtCHNpeC5sbnVtBWcuYWx0CnNldmVuLmxudW0HY2hpLmFsdAplaWdodC5sbnVtCWFscGhhLmFsdAlkZWx0YS5hbHQERC5jbgRhLmNuBVIuYWx0BUsuYWx0BWsuYWx0BksuYWx0MgZrLmFsdDIJbmluZS5sbnVtBlAuc21jcA1jeXJpbGxpY2JyZXZlB3VuaTAwQUQGRGNyb2F0BGhiYXIEVGJhcgR0YmFyCkFyaW5nYWN1dGUKYXJpbmdhY3V0ZQdBbWFjcm9uB2FtYWNyb24GQWJyZXZlBmFicmV2ZQdBb2dvbmVrB2FvZ29uZWsLQ2NpcmN1bWZsZXgLY2NpcmN1bWZsZXgHdW5pMDEwQQd1bmkwMTBCBkRjYXJvbgZkY2Fyb24HRW1hY3JvbgdlbWFjcm9uBkVicmV2ZQZlYnJldmUKRWRvdGFjY2VudAplZG90YWNjZW50B0VvZ29uZWsHZW9nb25lawZFY2Fyb24GZWNhcm9uC0djaXJjdW1mbGV4C2djaXJjdW1mbGV4B3VuaTAxMjAHdW5pMDEyMQxHY29tbWFhY2NlbnQMZ2NvbW1hYWNjZW50C0hjaXJjdW1mbGV4C2hjaXJjdW1mbGV4Bkl0aWxkZQZpdGlsZGUHSW1hY3JvbgdpbWFjcm9uBklicmV2ZQZpYnJldmUHSW9nb25lawdpb2dvbmVrCklkb3RhY2NlbnQCSUoCaWoLSmNpcmN1bWZsZXgLamNpcmN1bWZsZXgMS2NvbW1hYWNjZW50DGtjb21tYWFjY2VudAZMYWN1dGUGbGFjdXRlDExjb21tYWFjY2VudAxsY29tbWFhY2NlbnQGTGNhcm9uBmxjYXJvbgRMZG90BGxkb3QGTmFjdXRlBm5hY3V0ZQxOY29tbWFhY2NlbnQMbmNvbW1hYWNjZW50Bk5jYXJvbgZuY2Fyb24LbmFwb3N0cm9waGUHT21hY3JvbgdvbWFjcm9uBk9icmV2ZQZvYnJldmUNT2h1bmdhcnVtbGF1dA1vaHVuZ2FydW1sYXV0BlJhY3V0ZQZyYWN1dGUMUmNvbW1hYWNjZW50DHJjb21tYWFjY2VudAZSY2Fyb24GcmNhcm9uBlNhY3V0ZQZzYWN1dGULU2NpcmN1bWZsZXgLc2NpcmN1bWZsZXgHdW5pMDIxOAd1bmkwMjE5B3VuaTAyMUEHdW5pMDIxQgd1bmkwMTYyB3VuaTAxNjMGVGNhcm9uBnRjYXJvbgZVdGlsZGUGdXRpbGRlB1VtYWNyb24HdW1hY3JvbgZVYnJldmUGdWJyZXZlBVVyaW5nBXVyaW5nDVVodW5nYXJ1bWxhdXQNdWh1bmdhcnVtbGF1dAdVb2dvbmVrB3VvZ29uZWsLV2NpcmN1bWZsZXgLd2NpcmN1bWZsZXgLWWNpcmN1bWZsZXgLeWNpcmN1bWZsZXgGWmFjdXRlBnphY3V0ZQpaZG90YWNjZW50Cnpkb3RhY2NlbnQHQUVhY3V0ZQdhZWFjdXRlC09zbGFzaGFjdXRlC29zbGFzaGFjdXRlC0Rjcm9hdC5zbWNwCEV0aC5zbWNwCVRiYXIuc21jcAtBZ3JhdmUuc21jcAtBYWN1dGUuc21jcBBBY2lyY3VtZmxleC5zbWNwC0F0aWxkZS5zbWNwDkFkaWVyZXNpcy5zbWNwCkFyaW5nLnNtY3APQXJpbmdhY3V0ZS5zbWNwDUNjZWRpbGxhLnNtY3ALRWdyYXZlLnNtY3ALRWFjdXRlLnNtY3AQRWNpcmN1bWZsZXguc21jcA5FZGllcmVzaXMuc21jcAtJZ3JhdmUuc21jcAtJYWN1dGUuc21jcBBJY2lyY3VtZmxleC5zbWNwDklkaWVyZXNpcy5zbWNwC050aWxkZS5zbWNwC09ncmF2ZS5zbWNwC09hY3V0ZS5zbWNwEE9jaXJjdW1mbGV4LnNtY3ALT3RpbGRlLnNtY3AOT2RpZXJlc2lzLnNtY3ALVWdyYXZlLnNtY3ALVWFjdXRlLnNtY3AQVWNpcmN1bWZsZXguc21jcA5VZGllcmVzaXMuc21jcAtZYWN1dGUuc21jcAxBbWFjcm9uLnNtY3ALQWJyZXZlLnNtY3AMQW9nb25lay5zbWNwC0NhY3V0ZS5zbWNwEENjaXJjdW1mbGV4LnNtY3AMdW5pMDEwQS5zbWNwC0NjYXJvbi5zbWNwC0RjYXJvbi5zbWNwDEVtYWNyb24uc21jcAtFYnJldmUuc21jcA9FZG90YWNjZW50LnNtY3AMRW9nb25lay5zbWNwC0VjYXJvbi5zbWNwEEdjaXJjdW1mbGV4LnNtY3ALR2JyZXZlLnNtY3AMdW5pMDEyMC5zbWNwEUdjb21tYWFjY2VudC5zbWNwEEhjaXJjdW1mbGV4LnNtY3ALSXRpbGRlLnNtY3AMSW1hY3Jvbi5zbWNwC0licmV2ZS5zbWNwDElvZ29uZWsuc21jcA9JZG90YWNjZW50LnNtY3AQSmNpcmN1bWZsZXguc21jcBFLY29tbWFhY2NlbnQuc21jcAtMYWN1dGUuc21jcBFMY29tbWFhY2NlbnQuc21jcAtMY2Fyb24uc21jcAlMZG90LnNtY3ALTmFjdXRlLnNtY3ARTmNvbW1hYWNjZW50LnNtY3ALTmNhcm9uLnNtY3AMT21hY3Jvbi5zbWNwC09icmV2ZS5zbWNwEk9odW5nYXJ1bWxhdXQuc21jcAtSYWN1dGUuc21jcBFSY29tbWFhY2NlbnQuc21jcAtSY2Fyb24uc21jcAtTYWN1dGUuc21jcBBTY2lyY3VtZmxleC5zbWNwDVNjZWRpbGxhLnNtY3ALU2Nhcm9uLnNtY3ARVGNvbW1hYWNjZW50LnNtY3ALVGNhcm9uLnNtY3ALVXRpbGRlLnNtY3AMVW1hY3Jvbi5zbWNwC1VicmV2ZS5zbWNwClVyaW5nLnNtY3ASVWh1bmdhcnVtbGF1dC5zbWNwDFVvZ29uZWsuc21jcBBXY2lyY3VtZmxleC5zbWNwEFljaXJjdW1mbGV4LnNtY3AOWWRpZXJlc2lzLnNtY3ALWmFjdXRlLnNtY3APWmRvdGFjY2VudC5zbWNwC1pjYXJvbi5zbWNwD2dlcm1hbmRibHMuc21jcApBbHBoYXRvbm9zDEVwc2lsb250b25vcwhFdGF0b25vcwlJb3RhdG9ub3MMT21pY3JvbnRvbm9zDFVwc2lsb250b25vcwpPbWVnYXRvbm9zEWlvdGFkaWVyZXNpc3Rvbm9zBUFscGhhBEJldGEHRXBzaWxvbgRaZXRhA0V0YQRJb3RhBUthcHBhAk11Ak51B09taWNyb24DUmhvA1RhdQdVcHNpbG9uA0NoaQxJb3RhZGllcmVzaXMPVXBzaWxvbmRpZXJlc2lzCmFscGhhdG9ub3MMZXBzaWxvbnRvbm9zCGV0YXRvbm9zCWlvdGF0b25vcxR1cHNpbG9uZGllcmVzaXN0b25vcwVrYXBwYQdvbWljcm9uB3VuaTAzQkMCbnUDY2hpDGlvdGFkaWVyZXNpcw91cHNpbG9uZGllcmVzaXMMb21pY3JvbnRvbm9zDHVwc2lsb250b25vcwpvbWVnYXRvbm9zB3VuaTA0MDEHdW5pMDQwMwd1bmkwNDA1B3VuaTA0MDYHdW5pMDQwNwd1bmkwNDA4B3VuaTA0MUEHdW5pMDQwQwd1bmkwNDBFB3VuaTA0MTAHdW5pMDQxMgd1bmkwNDEzB3VuaTA0MTUHdW5pMDQxOQd1bmkwNDFDB3VuaTA0MUQHdW5pMDQxRQd1bmkwNDFGB3VuaTA0MjAHdW5pMDQyMQd1bmkwNDIyB3VuaTA0MjUHdW5pMDQzMAd1bmkwNDM1B3VuaTA0MzkHdW5pMDQzRQd1bmkwNDQwB3VuaTA0NDEHdW5pMDQ0Mwd1bmkwNDQ1B3VuaTA0NTEHdW5pMDQ1Mwd1bmkwNDU1B3VuaTA0NTYHdW5pMDQ1Nwd1bmkwNDU4B3VuaTA0NUMHdW5pMDQ1RQZXZ3JhdmUGd2dyYXZlBldhY3V0ZQZ3YWN1dGUJV2RpZXJlc2lzCXdkaWVyZXNpcwZZZ3JhdmUGeWdyYXZlBm1pbnV0ZQZzZWNvbmQJZXhjbGFtZGJsB3VuaUZCMDIHdW5pMDFGMAd1bmkwMkJDB3VuaTFFM0UHdW5pMUUzRgd1bmkxRTAwB3VuaTFFMDEHdW5pMUY0RAd1bmlGQjAzB3VuaUZCMDQHdW5pMDQwMAd1bmkwNDBEB3VuaTA0NTAHdW5pMDQ1RAd1bmkwNDcwB3VuaTA0NzEHdW5pMDQ3Ngd1bmkwNDc3B3VuaTA0NzkHdW5pMDQ3OAd1bmkwNDk4B3VuaTA0OTkHdW5pMDRBQQd1bmkwNEFCB3VuaTA0QUUHdW5pMDRBRgd1bmkwNEMwB3VuaTA0QzEHdW5pMDRDMgd1bmkwNENGB3VuaTA0RDAHdW5pMDREMQd1bmkwNEQyB3VuaTA0RDMHdW5pMDRENAd1bmkwNEQ1B3VuaTA0RDYHdW5pMDRENwd1bmkwNERBB3VuaTA0RDkHdW5pMDREQgd1bmkwNERDB3VuaTA0REQHdW5pMDRERQd1bmkwNERGB3VuaTA0RTIHdW5pMDRFMwd1bmkwNEU0B3VuaTA0RTUHdW5pMDRFNgd1bmkwNEU3B3VuaTA0RTgHdW5pMDRFOQd1bmkwNEVBB3VuaTA0RUIHdW5pMDRFQwd1bmkwNEVEB3VuaTA0RUUHdW5pMDRFRgd1bmkwNEYwB3VuaTA0RjEHdW5pMDRGMgd1bmkwNEYzB3VuaTA0RjQHdW5pMDRGNQd1bmkwNEY4B3VuaTA0RjkHdW5pMDRGQwd1bmkwNEZEB3VuaTA1MDEHdW5pMDUxMgd1bmkwNTEzB3VuaTFFQTAHdW5pMUVBMQd1bmkxRUEyB3VuaTFFQTMHdW5pMUVBNAd1bmkxRUE1B3VuaTFFQTYHdW5pMUVBNwd1bmkxRUE4B3VuaTFFQTkHdW5pMUVBQQd1bmkxRUFCB3VuaTFFQUMHdW5pMUVBRAd1bmkxRUFFB3VuaTFFQUYHdW5pMUVCMAd1bmkxRUIxB3VuaTFFQjIHdW5pMUVCMwd1bmkxRUI0B3VuaTFFQjUHdW5pMUVCNgd1bmkxRUI3B3VuaTFFQjgHdW5pMUVCOQd1bmkxRUJBB3VuaTFFQkIHdW5pMUVCQwd1bmkxRUJEB3VuaTFFQkUHdW5pMUVCRgd1bmkxRUMwB3VuaTFFQzEHdW5pMUVDMgd1bmkxRUMzB3VuaTFFQzQHdW5pMUVDNQd1bmkxRUM2B3VuaTFFQzcHdW5pMUVDOAd1bmkxRUM5B3VuaTFFQ0EHdW5pMUVDQgd1bmkxRUNDB3VuaTFFQ0QHdW5pMUVDRQd1bmkxRUNGB3VuaTFFRDAHdW5pMUVEMQd1bmkxRUQyB3VuaTFFRDMHdW5pMUVENAd1bmkxRUQ1B3VuaTFFRDYHdW5pMUVENwd1bmkxRUQ4B3VuaTFFRDkHdW5pMUVEQQd1bmkxRURCB3VuaTFFREMHdW5pMUVERAd1bmkxRURFB3VuaTFFREYHdW5pMUVFMAd1bmkxRUUxB3VuaTFFRTIHdW5pMUVFMwd1bmkxRUU0B3VuaTFFRTUHdW5pMUVFNgd1bmkxRUU3B3VuaTFFRTgHdW5pMUVFOQd1bmkxRUVBB3VuaTFFRUIHdW5pMUVFQwd1bmkxRUVEB3VuaTFFRUUHdW5pMUVFRgd1bmkx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AAwA4f/UAPH/yQD5/9EBBP/lARv/4wEv/8QBOP/hAUn/1AFK//UBS//nAVP/ZAFU/8kACgDh/8EA8f/NAPn/0gEv/8wBOP/lATv/3wFJ/84BS//qAVP/ngFU/84ACgDh/8IA8f/GAPn/zwEv/8ABOP/hATv/3wFJ/80BS//oAVP/nwFU/8YACQDh/8kA8f/fAPn/4QEE/+0BG//rAS//3wE7/+kBSv/1AVT/4AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQDh/+YA8f/QAPn/1gEv/84BOP/oAUn/5wFL/+0BU//mAVT/0AALANQAFADh/+AA6AATATj/4QE5/+ABPP/hAUH/6QFJ/98BS//eAVP/3wFV//IAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqP/pAaz/5wG0/+cBtf/pAd//8AAFABn/8gDh//EBSf/yAUv/8gFT//IACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QADQDUABMA4f/mAOL/9ADoABIA8f/nAPn/5wEv/+cBOP/lATn/6AFJ/+YBS//mAVP/5gFU/+cACgDh/8QA8f/NAPn/1QEv/8wBOP/mATv/3wFJ/9EBS//sAVP/oQFU/88ACgDh/8MA8f/PAPn/1AEv/84BOP/nATv/3wFJ/9EBS//sAVP/oAFU/9EAAgDU/+IBU//kAAIA1P/hAOj/5AAHAOj/7gDx/+4A+f/vAQT/9AEb//EBL//vAVT/7wAFAPH/9AD5//QBBP/1AS//9QFU//UAAgDo/2gBF//uAAcA6AAUAPH/7QD3/9AA+f/uAS//7QE5/+0BVP/tAAEBF//xAAUBF//rAaj/6wGs/+kBtP/rAbX/6wAT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//AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UAAQGm/+sAAQGm/+sAAQGm/+sAAQGm/+sAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAab/qwGo/80BrP/LAbT/ywG1/8sBuP/zAbv/8wG8/+8B3P/AAd//7gAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAAQDx//UAAQDx//UAAQDx//UAAQDx//UAAQDx/9YACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAxf/qAOj/uADx/+IBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAFAEj/7gBZ/+oBuv/wAbv/7QG9//AAAQDx//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQDx/9YACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAab/6wAUAFn/wQCz/8UAxf+0AOX/1wDx/7kA+f/pAQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGo/+gBrP/mAbT/5wG1/+cACwBZ/8wBpgATAaj/8wGs//EBtP/yAbX/8gG4/70Buf/uAbr/uAG7/9cBvf+3AAsAWf/MAaYAEwGo//MBrP/xAbT/8gG1//IBuP+9Abn/7gG6/7gBu//XAb3/twALAFn/zAGmABMBqP/zAaz/8QG0//IBtf/yAbj/vQG5/+4Buv+4Abv/1wG9/7cACwBZ/8wBpgATAaj/8wGs//EBtP/yAbX/8gG4/70Buf/uAbr/uAG7/9cBvf+3AAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAPH/1gAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQDx/9YACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEA8f/WAAEA8f/WAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAxf/qAOj/uADx/+IBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAMASAAUAFYAGABZABEAAwBIABQAVgAYAFkAEQADAEgAFABWABgAWQARADsAVP+/AFn/0QBr/2wAev9uAH//QwCE/6wAh/+hALP/uAC6/34Avv97AMH/mwDC/3kAxf+yAMf/fgDI/30Ayf98ANT/rwDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+f+yAPr/gAD8/3kA/QAoAQL/fQEE/38BF/9mARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBpv+vAaj/uQGs/7kBtP+5AbX/uQG3/7wBuP/xAbv/8QG8/+0B3P+zAd//8QA7AFT/vwBZ/9EAa/9sAHr/bgB//0MAhP+sAIf/oQCz/7gAuv9+AL7/ewDB/5sAwv95AMX/sgDH/34AyP99AMn/fADU/68A4QAPAOX/5ADm/6AA6P90AOr/gADx/7IA+P99APn/sgD6/4AA/P95AP0AKAEC/30BBP9/ARf/ZgEb/9oBJ/+BASn/mAEt/30BL/+zATP/oAE5/3wBO/+aATz/bAFB/+YBRv9rAUr/kgFM/60BUP97AVMADwFU/5EBVf/yAab/rwGo/7kBrP+5AbT/uQG1/7kBt/+8Abj/8QG7//EBvP/tAdz/swHf//EAOwBU/78AWf/RAGv/bAB6/24Af/9DAIT/rACH/6EAs/+4ALr/fgC+/3sAwf+bAML/eQDF/7IAx/9+AMj/fQDJ/3wA1P+vAOEADwDl/+QA5v+gAOj/dADq/4AA8f+yAPj/fQD5/7IA+v+AAPz/eQD9ACgBAv99AQT/fwEX/2YBG//aASf/gQEp/5gBLf99AS//swEz/6ABOf98ATv/mgE8/2wBQf/mAUb/awFK/5IBTP+tAVD/ewFTAA8BVP+RAVX/8gGm/68BqP+5Aaz/uQG0/7kBtf+5Abf/vAG4//EBu//xAbz/7QHc/7MB3//xAAEBpv/rAAEBpv/rAAEBpv/rAAEBpv/rAAEBpv/rAAEBpv/rAAkACwAPAD8ADABU/+sAXwAOAab/ywGo/+kBrP/nAbT/5wG1/+cAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAab/qwGo/80BrP/LAbT/ywG1/8sBuP/zAbv/8wG8/+8B3P/AAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBpv+rAaj/zQGs/8sBtP/LAbX/ywG4//MBu//zAbz/7wHc/8AB3//uAAgAWf/lALP/ywDI/+QBpgANAaj/7QGs/+sBtP/sAbX/7AAIAFn/5QCz/8sAyP/kAaYADQGo/+0BrP/rAbT/7AG1/+wACABZ/+UAs//LAMj/5AGmAA0BqP/tAaz/6wG0/+wBtf/sAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAFAEj/7gBZ/+oBuv/wAbv/7QG9//AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1ACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGm/6sBqP/NAaz/ywG0/8sBtf/LAbj/8wG7//MBvP/vAdz/wAHf/+4AHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAIBDAALAVP/5gAFAEj/7gBZ/+oBuv/wAbv/7QG9//AACABZ/+UAs//LAMj/5AGmAA0BqP/tAaz/6wG0/+wBtf/sAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAFABZ/8EAs//FAMX/tADl/9cA8f+5APn/6QEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8BqP/oAaz/5gG0/+cBtf/nAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAFYADgB//tcAv/+YAML/xwDU/xIA6P9SAUb/zwGm/4AB3//XADsAVP+/AFn/0QBr/2wAev9uAH//QwCE/6wAh/+hALP/uAC6/34Avv97AMH/mwDC/3kAxf+yAMf/fgDI/30Ayf98ANT/rwDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+f+yAPr/gAD8/3kA/QAoAQL/fQEE/38BF/9mARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBpv+vAaj/uQGs/7kBtP+5AbX/uQG3/7wBuP/xAbv/8QG8/+0B3P+zAd//8QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBpv+rAaj/zQGs/8sBtP/LAbX/ywG4//MBu//zAbz/7wHc/8AB3//uABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAaj/6QGs/+cBtP/nAbX/6QHf//AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGm/6sBqP/NAaz/ywG0/8sBtf/LAbj/8wG7//MBvP/vAdz/wAHf/+4AAQDx/9YACQDF/+oA6P+4APH/4gEE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/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBpv+rAaj/zQGs/8sBtP/LAbX/ywG4//MBu//zAbz/7wHc/8AB3//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAEAWQALAAEAWQALAAEAWQALAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAPH/1gAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAkACwAUAD8AEQBU/+IAXwATAab/tAGo/9kBrP/ZAbT/2QG1/9kABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UABAAL/+YAP//0AF//7wE8/+0AJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAab/qwGo/80BrP/LAbT/ywG1/8sBuP/zAbv/8wG8/+8B3P/AAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqP/pAaz/5wG0/+cBtf/pAd//8AABARf/8QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QABAPH/9QABAPH/9QAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGo/+kBrP/nAbT/5wG1/+kB3//wAAEBF//xAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAcAxf/qAOj/7gDx/9YA+f/tAS//7AFU/+wB3P/oABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAEgDU/64A4QASAOb/4ADo/60A6v/WAPj/3wD8/9IBAv/gARf/zgEn/90BKf/iAS3/4AEz/+ABOf/pATz/2gFG/70BUP/fAVMAEQAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAaj/6QGs/+cBtP/nAbX/6QHf//AAAQEX//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAFAEj/7gBZ/+oBuv/wAbv/7QG9//AAAQDx//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAFAEj/7gBZ/+oBuv/wAbv/7QG9//AAAQDx//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAxf/qAOj/uADx/+IBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAxf/qAOj/uADx/+IBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE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AFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBpv+rAaj/zQGs/8sBtP/LAbX/ywG4//MBu//zAbz/7wHc/8AB3//uAAE1wAAEAAAABgAWAGwDngQcBIYEyAAVADgAFAA5ACYAOwAWARQAFAILABYCkgAmApQAFgKWABYC/QAWAwwAFgMPABYDRQAmA0cAJgNJACYDSwAWA2AAFANoABYD6gAWA+wAFgPuABYEEwAWAMwADv7uABD+7gAj/0AALP8wADYAFABD/94ARf/rAEb/6wBH/+sASf/rAFH/6wBT/+sAV//qAFj/6ABb/+gAkf/rAJX/6wCX/+oArf9AAK//QAC2/+sAuP/oAMP/6wDE/+sAxv/qAM0AFADRABQA8v/rAP7/6wEI/0ABE//rARX/6AEZ/+sBHf/rAS4AFAE1/+sBNgAUAUf/6wFI/+sBUv/rAWf+7gFr/u4Bb/7uAXD+7gHx/0AB8v9AAfP/QAH0/0AB9f9AAfb/QAH3/0ACDP/eAg3/3gIO/94CD//eAhD/3gIR/94CEv/eAhP/6wIU/+sCFf/rAhb/6wIX/+sCHf/rAh7/6wIf/+sCIP/rAiH/6wIi/+oCI//qAiT/6gIl/+oCJv/oAif/6AIo/0ACKf/eAir/QAIr/94CLP9AAi3/3gIv/+sCMf/rAjP/6wI1/+sCN//rAjn/6wI7/+sCPf/rAj//6wJB/+sCQ//rAkX/6wJH/+sCSf/rAlf/MAJr/+sCbf/rAm//6wKAABQCggAUAoQAFAKH/+oCif/qAov/6gKN/+oCj//qApH/6gKV/+gC+P9AAwD/QAMQ/+sDFP/qAxb/6wMY/+gDG//qAxz/6wMd/+oDJP8wAyj/QAMzABQDNf/eAzb/6wM4/+sDOv/rAzv/6AM9/+sDRP/oA0z/6ANV/0ADVv/eA1z/6wNh/+gDYv/rA2f/6wNp/+gDbv9AA2//3gNw/0ADcf/eA3X/6wN3/+sDeP/rA4L/6wOE/+sDhv/rA4r/6AOM/+gDjv/oA5X/6wOY/0ADmf/eA5r/QAOb/94DnP9AA53/3gOe/0ADn//eA6D/QAOh/94Dov9AA6P/3gOk/0ADpf/eA6b/QAOn/94DqP9AA6n/3gOq/0ADq//eA6z/QAOt/94Drv9AA6//3gOx/+sDs//rA7X/6wO3/+sDuf/rA7v/6wO9/+sDv//rA8X/6wPH/+sDyf/rA8v/6wPN/+sDz//rA9H/6wPT/+sD1f/rA9f/6wPZ/+sD2//rA93/6gPf/+oD4f/qA+P/6gPl/+oD5//qA+n/6gPr/+gD7f/oA+//6AP2ABQAHwA2/98AOP/kADn/7AA7/90Azf/fANH/3wEU/+QBLv/fATb/3wIL/90CgP/fAoL/3wKE/98Ckv/sApT/3QKW/90C/f/dAwz/3QMP/90DM//fA0X/7ANH/+wDSf/sA0v/3QNg/+QDaP/dA+r/3QPs/90D7v/dA/b/3wQT/90AGgA2/84AOP/tADv/0ADN/84A0f/OART/7QEu/84BNv/OAgv/0AKA/84Cgv/OAoT/zgKU/9AClv/QAv3/0AMM/9ADD//QAzP/zgNL/9ADYP/tA2j/0APq/9AD7P/QA+7/0AP2/84EE//QABAALP/uADf/7gIH/+4CCP/uAgn/7gIK/+4CV//uAob/7gKI/+4Civ/uAoz/7gKO/+4CkP/uAyT/7gPc/+4D3v/uAD0ARf/oAEb/6ABH/+gASf/oAFP/6ACR/+gAlf/oALb/6ADD/+gAxP/oAPL/6AD+/+gBGf/oAR3/6AE1/+gBR//oAUj/6AFS/+gCE//oAhT/6AIV/+gCFv/oAhf/6AIv/+gCMf/oAjP/6AI1/+gCN//oAjn/6AI7/+gCPf/oAj//6AJB/+gCQ//oAkX/6AJH/+gCSf/oAxD/6AM2/+gDOv/oAz3/6ANc/+gDYv/oA2f/6AN1/+gDd//oA3j/6AOE/+gDlf/oA7H/6AOz/+gDtf/oA7f/6AO5/+gDu//oA73/6AO//+gD0//oA9X/6APX/+gD2//oAAEwEgAEAAAALABiAIwBggHgAfoCPAKyA5gEfgVYBfIIjApSC2ANJg1YDYoOCA9OENgSbhOAFO4XABe2GRwZ0hqMGxIbcBwuHKQdUh18Hs4hDCEuIkQioiMgI0ojfCOOI7gACgAEABAACQAQAWUAEAFmABABaAAQAWkAEAFqABADTQAQA04AEANSABAAPQBF/+wARv/sAEf/7ABJ/+wAU//sAJH/7ACV/+wAtv/sAMP/7ADE/+wA8v/sAP7/7AEZ/+wBHf/sATX/7AFH/+wBSP/sAVL/7AIT/+wCFP/sAhX/7AIW/+wCF//sAi//7AIx/+wCM//sAjX/7AI3/+wCOf/sAjv/7AI9/+wCP//sAkH/7AJD/+wCRf/sAkf/7AJJ/+wDEP/sAzb/7AM6/+wDPf/sA1z/7ANi/+wDZ//sA3X/7AN3/+wDeP/sA4T/7AOV/+wDsf/sA7P/7AO1/+wDt//sA7n/7AO7/+wDvf/sA7//7APT/+wD1f/sA9f/7APb/+wAFwBR/+IBE//iAh3/4gIe/+ICH//iAiD/4gIh/+ICa//iAm3/4gJv/+IDFv/iAxz/4gM4/+IDgv/iA4b/4gPF/+IDx//iA8n/4gPL/+IDzf/iA8//4gPR/+ID2f/iAAYADv+EABD/hAFn/4QBa/+EAW//hAFw/4QAEAAs/+wAN//sAgf/7AII/+wCCf/sAgr/7AJX/+wChv/sAoj/7AKK/+wCjP/sAo7/7AKQ/+wDJP/sA9z/7APe/+wAHQAE//IACf/yAFj/8wBb//MAuP/zARX/8wFl//IBZv/yAWj/8gFp//IBav/yAib/8wIn//MClf/zAxj/8wM7//MDRP/zA0z/8wNN//IDTv/yA1L/8gNh//MDaf/zA4r/8wOM//MDjv/zA+v/8wPt//MD7//zADkAJf/zACn/8wAx//MAM//zAIH/8wCQ//MAlP/zAK7/8wDO//MBA//zARL/8wEW//MBGP/zARr/8wEc//MBNP/zAVH/8wH4//MCAv/zAgP/8wIE//MCBf/zAgb/8wIu//MCMP/zAjL/8wI0//MCQv/zAkT/8wJG//MCSP/zAmr/8wJs//MCbv/zAp//8wL8//MDCf/zAy//8wMy//MDV//zA2P/8wNm//MDgf/zA4P/8wOF//MDxP/zA8b/8wPI//MDyv/zA8z/8wPO//MD0P/zA9L/8wPU//MD1v/zA9j/8wPa//MAOQAl/+YAKf/mADH/5gAz/+YAgf/mAJD/5gCU/+YArv/mAM7/5gED/+YBEv/mARb/5gEY/+YBGv/mARz/5gE0/+YBUf/mAfj/5gIC/+YCA//mAgT/5gIF/+YCBv/mAi7/5gIw/+YCMv/mAjT/5gJC/+YCRP/mAkb/5gJI/+YCav/mAmz/5gJu/+YCn//mAvz/5gMJ/+YDL//mAzL/5gNX/+YDY//mA2b/5gOB/+YDg//mA4X/5gPE/+YDxv/mA8j/5gPK/+YDzP/mA87/5gPQ/+YD0v/mA9T/5gPW/+YD2P/mA9r/5gA2ACP/5AA6/9IAO//TAK3/5ACv/+QA1f/SAQj/5AHx/+QB8v/kAfP/5AH0/+QB9f/kAfb/5AH3/+QCC//TAij/5AIq/+QCLP/kApT/0wKW/9MC+P/kAv3/0wMA/+QDDP/TAw3/0gMP/9MDKP/kAzT/0gNL/9MDVf/kA2j/0wNr/9IDbv/kA3D/5AN5/9IDk//SA5j/5AOa/+QDnP/kA57/5AOg/+QDov/kA6T/5AOm/+QDqP/kA6r/5AOs/+QDrv/kA+r/0wPs/9MD7v/TA/j/0gQA/9IEE//TACYADv9GABD/RgAj/80Arf/NAK//zQEI/80BZ/9GAWv/RgFv/0YBcP9GAfH/zQHy/80B8//NAfT/zQH1/80B9v/NAff/zQIo/80CKv/NAiz/zQL4/80DAP/NAyj/zQNV/80Dbv/NA3D/zQOY/80Dmv/NA5z/zQOe/80DoP/NA6L/zQOk/80Dpv/NA6j/zQOq/80DrP/NA67/zQCmAEX/3ABG/9wAR//cAEn/3ABP/8EAUP/BAFH/1gBS/8EAU//cAFf/3QBY/+EAW//hAJH/3ACV/9wAl//dALb/3AC4/+EAvP/BAMP/3ADE/9wAxv/dAOf/wQDr/8EA7P/BAO7/wQDv/8EA8P/BAPL/3ADz/8EA9f/BAPb/wQD5/8EA+//BAP7/3AEA/8EBE//WARX/4QEZ/9wBHf/cATH/wQE1/9wBQP/BAUX/wQFH/9wBSP/cAVL/3AIT/9wCFP/cAhX/3AIW/9wCF//cAhz/wQId/9YCHv/WAh//1gIg/9YCIf/WAiL/3QIj/90CJP/dAiX/3QIm/+ECJ//hAi//3AIx/9wCM//cAjX/3AI3/9wCOf/cAjv/3AI9/9wCP//cAkH/3AJD/9wCRf/cAkf/3AJJ/9wCZP/BAmb/wQJo/8ECaf/BAmv/1gJt/9YCb//WAof/3QKJ/90Ci//dAo3/3QKP/90Ckf/dApX/4QMQ/9wDEv/BAxT/3QMW/9YDGP/hAxv/3QMc/9YDHf/dAzb/3AM3/8EDOP/WAzn/wQM6/9wDO//hAz3/3AM+/8EDQ//BA0T/4QNM/+EDVP/BA1z/3ANd/8EDYf/hA2L/3ANn/9wDaf/hA3X/3AN3/9wDeP/cA37/wQOA/8EDgv/WA4T/3AOG/9YDiv/hA4z/4QOO/+EDkv/BA5X/3AOx/9wDs//cA7X/3AO3/9wDuf/cA7v/3AO9/9wDv//cA8X/1gPH/9YDyf/WA8v/1gPN/9YDz//WA9H/1gPT/9wD1f/cA9f/3APZ/9YD2//cA93/3QPf/90D4f/dA+P/3QPl/90D5//dA+n/3QPr/+ED7f/hA+//4QPz/8ED9f/BA///wQQM/8EEDv/BBBD/wQBxAAT/2gAJ/9oARf/wAEb/8ABH//AASf/wAFP/8ABX/+8AWP/cAFv/3ACR//AAlf/wAJf/7wC2//AAuP/cAMP/8ADE//AAxv/vAPL/8AD+//ABFf/cARn/8AEd//ABNf/wAUf/8AFI//ABUv/wAWX/2gFm/9oBaP/aAWn/2gFq/9oCE//wAhT/8AIV//ACFv/wAhf/8AIi/+8CI//vAiT/7wIl/+8CJv/cAif/3AIv//ACMf/wAjP/8AI1//ACN//wAjn/8AI7//ACPf/wAj//8AJB//ACQ//wAkX/8AJH//ACSf/wAof/7wKJ/+8Ci//vAo3/7wKP/+8Ckf/vApX/3AMQ//ADFP/vAxj/3AMb/+8DHf/vAzb/8AM6//ADO//cAz3/8ANE/9wDTP/cA03/2gNO/9oDUv/aA1z/8ANh/9wDYv/wA2f/8ANp/9wDdf/wA3f/8AN4//ADhP/wA4r/3AOM/9wDjv/cA5X/8AOx//ADs//wA7X/8AO3//ADuf/wA7v/8AO9//ADv//wA9P/8APV//AD1//wA9v/8APd/+8D3//vA+H/7wPj/+8D5f/vA+f/7wPp/+8D6//cA+3/3APv/9wAQwAOAAwAEAAMAEX/5wBG/+cAR//nAEn/5wBT/+cAkf/nAJX/5wC2/+cAw//nAMT/5wDy/+cA/v/nARn/5wEd/+cBNf/nAUf/5wFI/+cBUv/nAWcADAFrAAwBbwAMAXAADAIT/+cCFP/nAhX/5wIW/+cCF//nAi//5wIx/+cCM//nAjX/5wI3/+cCOf/nAjv/5wI9/+cCP//nAkH/5wJD/+cCRf/nAkf/5wJJ/+cDEP/nAzb/5wM6/+cDPf/nA1z/5wNi/+cDZ//nA3X/5wN3/+cDeP/nA4T/5wOV/+cDsf/nA7P/5wO1/+cDt//nA7n/5wO7/+cDvf/nA7//5wPT/+cD1f/nA9f/5wPb/+cAcQAEAAwACQAMAEX/6ABG/+gAR//oAEn/6ABR/+oAU//oAFgACwBbAAsAkf/oAJX/6AC2/+gAuAALAMP/6ADE/+gA8v/oAP7/6AET/+oBFQALARn/6AEd/+gBNf/oAUf/6AFI/+gBUv/oAWUADAFmAAwBaAAMAWkADAFqAAwCE//oAhT/6AIV/+gCFv/oAhf/6AId/+oCHv/qAh//6gIg/+oCIf/qAiYACwInAAsCL//oAjH/6AIz/+gCNf/oAjf/6AI5/+gCO//oAj3/6AI//+gCQf/oAkP/6AJF/+gCR//oAkn/6AJr/+oCbf/qAm//6gKVAAsDEP/oAxb/6gMYAAsDHP/qAzb/6AM4/+oDOv/oAzsACwM9/+gDRAALA0wACwNNAAwDTgAMA1IADANc/+gDYQALA2L/6ANn/+gDaQALA3X/6AN3/+gDeP/oA4L/6gOE/+gDhv/qA4oACwOMAAsDjgALA5X/6AOx/+gDs//oA7X/6AO3/+gDuf/oA7v/6AO9/+gDv//oA8X/6gPH/+oDyf/qA8v/6gPN/+oDz//qA9H/6gPT/+gD1f/oA9f/6APZ/+oD2//oA+sACwPtAAsD7wALAAwAWv/tAFz/7QDp/+0CmP/tApr/7QKc/+0DPP/tA2z/7QN6/+0DlP/tA/n/7QQB/+0ADABa//IAXP/yAOn/8gKY//ICmv/yApz/8gM8//IDbP/yA3r/8gOU//ID+f/yBAH/8gAfAFj/9ABa//IAW//0AFz/8wC4//QA6f/yARX/9AIm//QCJ//0ApX/9AKY//MCmv/zApz/8wMY//QDO//0Azz/8gNE//QDTP/0A2H/9ANp//QDbP/yA3r/8gOK//QDjP/0A47/9AOU//ID6//0A+3/9APv//QD+f/yBAH/8gBRAAT/ygAJ/8oANv/SADj/1AA6//QAO//TAFj/5gBa/+8AW//mALj/5gDN/9IA0f/SANX/9ADZ/+0A3P/hAOn/7wEU/9QBFf/mAS7/0gE2/9IBZf/KAWb/ygFo/8oBaf/KAWr/ygIL/9MCJv/mAif/5gKA/9ICgv/SAoT/0gKU/9MClf/mApb/0wL9/9MDDP/TAw3/9AMP/9MDGP/mAyf/7QMz/9IDNP/0Azv/5gM8/+8DRP/mA0v/0wNM/+YDTf/KA07/ygNS/8oDYP/UA2H/5gNo/9MDaf/mA2v/9ANs/+8Def/0A3r/7wOJ/+0Div/mA4v/7QOM/+YDjf/tA47/5gOP/+EDk//0A5T/7wPq/9MD6//mA+z/0wPt/+YD7v/TA+//5gP2/9ID+P/0A/n/7wP6/+ED/P/hBAD/9AQB/+8EE//TAGIABP/AAAn/wAA2/50AOP/HADr/8AA7/6sAT//SAFD/0gBS/9IAvP/SAM3/nQDP//UA0f+dANX/8ADY//UA2f/qANz/5QDn/9IA6//SAOz/0gDu/9IA7//SAPD/0gDz/9IA9f/SAPb/0gD7/9IBAP/SART/xwEu/50BMf/SATb/nQFA/9IBRf/SAU3/9QFl/8ABZv/AAWj/wAFp/8ABav/AAgv/qwIc/9ICZP/SAmb/0gJo/9ICaf/SAoD/nQKC/50ChP+dApT/qwKW/6sC/f+rAwz/qwMN//ADD/+rAxL/0gMn/+oDM/+dAzT/8AM3/9IDOf/SAz7/0gND/9IDS/+rA03/wANO/8ADUv/AA1T/0gNd/9IDYP/HA2j/qwNr//ADef/wA37/0gOA/9IDif/qA4v/6gON/+oDj//lA5L/0gOT//ADlv/1A+r/qwPs/6sD7v+rA/P/0gP1/9ID9v+dA/j/8AP6/+UD/P/lA///0gQA//AEDP/SBA7/0gQQ/9IEEf/1BBP/qwBlAAT/sQAJ/7EANv+eADj/xQA6//IAO/+oAE//zwBQ/88AUv/PAFr/7wC8/88Azf+eANH/ngDV//IA2f/sANz/4QDn/88A6f/vAOv/zwDs/88A7v/PAO//zwDw/88A8//PAPX/zwD2/88A+//PAQD/zwEU/8UBLv+eATH/zwE2/54BQP/PAUX/zwFl/7EBZv+xAWj/sQFp/7EBav+xAgv/qAIc/88CZP/PAmb/zwJo/88Caf/PAoD/ngKC/54ChP+eApT/qAKW/6gC/f+oAwz/qAMN//IDD/+oAxL/zwMn/+wDM/+eAzT/8gM3/88DOf/PAzz/7wM+/88DQ//PA0v/qANN/7EDTv+xA1L/sQNU/88DXf/PA2D/xQNo/6gDa//yA2z/7wN5//IDev/vA37/zwOA/88Dif/sA4v/7AON/+wDj//hA5L/zwOT//IDlP/vA+r/qAPs/6gD7v+oA/P/zwP1/88D9v+eA/j/8gP5/+8D+v/hA/z/4QP//88EAP/yBAH/7wQM/88EDv/PBBD/zwQT/6gARAA2/74AT//hAFD/4QBS/+EAWP/vAFv/7wC4/+8AvP/hAM3/vgDR/74A5//hAOv/4QDs/+EA7v/hAO//4QDw/+EA8//hAPX/4QD2/+EA+//hAQD/4QEV/+8BLv++ATH/4QE2/74BQP/hAUX/4QIc/+ECJv/vAif/7wJk/+ECZv/hAmj/4QJp/+ECgP++AoL/vgKE/74Clf/vAxL/4QMY/+8DM/++Azf/4QM5/+EDO//vAz7/4QND/+EDRP/vA0z/7wNU/+EDXf/hA2H/7wNp/+8Dfv/hA4D/4QOK/+8DjP/vA47/7wOS/+ED6//vA+3/7wPv/+8D8//hA/X/4QP2/74D///hBAz/4QQO/+EEEP/hAFsANv/mADj/5wA6//IAO//nAE//1gBQ/9YAUv/WAFr/8QC8/9YAzf/mANH/5gDV//IA2f/uANz/6ADn/9YA6f/xAOv/1gDs/9YA7v/WAO//1gDw/9YA8//WAPX/1gD2/9YA+//WAQD/1gEU/+cBLv/mATH/1gE2/+YBQP/WAUX/1gIL/+cCHP/WAmT/1gJm/9YCaP/WAmn/1gKA/+YCgv/mAoT/5gKU/+cClv/nAv3/5wMM/+cDDf/yAw//5wMS/9YDJ//uAzP/5gM0//IDN//WAzn/1gM8//EDPv/WA0P/1gNL/+cDVP/WA13/1gNg/+cDaP/nA2v/8gNs//EDef/yA3r/8QN+/9YDgP/WA4n/7gOL/+4Djf/uA4//6AOS/9YDk//yA5T/8QPq/+cD7P/nA+7/5wPz/9YD9f/WA/b/5gP4//ID+f/xA/r/6AP8/+gD///WBAD/8gQB//EEDP/WBA7/1gQQ/9YEE//nAIQAIwAQACX/6AAp/+gAMf/oADP/6AA2/+AAOP/gADv/3wCB/+gAkP/oAJT/6ACtABAArv/oAK8AEADN/+AAzv/oAM8AEADR/+AA2AAQANz/4QDtABAA9P/gAP8AEAED/+gBCAAQARL/6AEU/+ABFv/oARj/6AEa/+gBHP/oAS7/4AE0/+gBNv/gAU0AEAFR/+gB8QAQAfIAEAHzABAB9AAQAfUAEAH2ABAB9wAQAfj/6AIC/+gCA//oAgT/6AIF/+gCBv/oAgv/3wIoABACKgAQAiwAEAIu/+gCMP/oAjL/6AI0/+gCQv/oAkT/6AJG/+gCSP/oAmr/6AJs/+gCbv/oAoD/4AKC/+AChP/gApT/3wKW/98Cn//oAvgAEAL8/+gC/f/fAwAAEAMJ/+gDDP/fAw//3wMoABADL//oAzL/6AMz/+ADS//fA1UAEANX/+gDYP/gA2P/6ANm/+gDaP/fA24AEANwABADgf/oA4P/6AOF/+gDj//hA5D/4AOWABADlwAQA5gAEAOaABADnAAQA54AEAOgABADogAQA6QAEAOmABADqAAQA6oAEAOsABADrgAQA8T/6APG/+gDyP/oA8r/6APM/+gDzv/oA9D/6APS/+gD1P/oA9b/6APY/+gD2v/oA+r/3wPs/98D7v/fA/b/4AP6/+ED+//gA/z/4QP9/+AEEQAQBBIAEAQT/98ALQA2//EAOP/0ADr/9AA7//AAzf/xAM//9QDR//EA1f/0ANj/9QDZ//MBFP/0AS7/8QE2//EBTf/1Agv/8AKA//ECgv/xAoT/8QKU//AClv/wAv3/8AMM//ADDf/0Aw//8AMn//MDM//xAzT/9ANL//ADYP/0A2j/8ANr//QDef/0A4n/8wOL//MDjf/zA5P/9AOW//UD6v/wA+z/8APu//AD9v/xA/j/9AQA//QEEf/1BBP/8ABZACMADwA2/+YAOP/mADoADgA7/+YArQAPAK8ADwDN/+YAzwAOANH/5gDVAA4A2AAOANkACwDc/+UA7QAPAPT/6AD/AA8BCAAPART/5gEu/+YBNv/mAU0ADgHxAA8B8gAPAfMADwH0AA8B9QAPAfYADwH3AA8CC//mAigADwIqAA8CLAAPAoD/5gKC/+YChP/mApT/5gKW/+YC+AAPAv3/5gMAAA8DDP/mAw0ADgMP/+YDJwALAygADwMz/+YDNAAOA0v/5gNVAA8DYP/mA2j/5gNrAA4DbgAPA3AADwN5AA4DiQALA4sACwONAAsDj//lA5D/6AOTAA4DlgAOA5cADwOYAA8DmgAPA5wADwOeAA8DoAAPA6IADwOkAA8DpgAPA6gADwOqAA8DrAAPA64ADwPq/+YD7P/mA+7/5gP2/+YD+AAOA/r/5QP7/+gD/P/lA/3/6AQAAA4EEQAOBBIADwQT/+YALQAE/78ACf+/ADb/nwA4/8kAO/+tAM3/nwDR/58A2f/sANz/5gEU/8kBLv+fATb/nwFl/78BZv+/AWj/vwFp/78Bav+/Agv/rQKA/58Cgv+fAoT/nwKU/60Clv+tAv3/rQMM/60DD/+tAyf/7AMz/58DS/+tA03/vwNO/78DUv+/A2D/yQNo/60Dif/sA4v/7AON/+wDj//mA+r/rQPs/60D7v+tA/b/nwP6/+YD/P/mBBP/rQAuADb/4wA6/+UAO//kAM3/4wDP/+UA0f/jANX/5QDY/+UA2f/pAO3/6gD//+oBLv/jATb/4wFN/+UCC//kAoD/4wKC/+MChP/jApT/5AKW/+QC/f/kAwz/5AMN/+UDD//kAyf/6QMz/+MDNP/lA0v/5ANo/+QDa//lA3n/5QOJ/+kDi//pA43/6QOT/+UDlv/lA5f/6gPq/+QD7P/kA+7/5AP2/+MD+P/lBAD/5QQR/+UEEv/qBBP/5AAhADb/4gA6/+QAzf/iAM//5ADR/+IA1f/kANj/5ADZ/+kA7f/rAP//6wEu/+IBNv/iAU3/5AKA/+ICgv/iAoT/4gMN/+QDJ//pAzP/4gM0/+QDa//kA3n/5AOJ/+kDi//pA43/6QOT/+QDlv/kA5f/6wP2/+ID+P/kBAD/5AQR/+QEEv/rABcANv/rADv/8wDN/+sA0f/rAS7/6wE2/+sCC//zAoD/6wKC/+sChP/rApT/8wKW//MC/f/zAwz/8wMP//MDM//rA0v/8wNo//MD6v/zA+z/8wPu//MD9v/rBBP/8wAvAE//7wBQ/+8AUv/vAFr/8AC8/+8A5//vAOn/8ADr/+8A7P/vAO7/7wDv/+8A8P/vAPP/7wD1/+8A9v/vAPv/7wEA/+8BMf/vAUD/7wFF/+8CHP/vAmT/7wJm/+8CaP/vAmn/7wMS/+8DN//vAzn/7wM8//ADPv/vA0P/7wNU/+8DXf/vA2z/8AN6//ADfv/vA4D/7wOS/+8DlP/wA/P/7wP1/+8D+f/wA///7wQB//AEDP/vBA7/7wQQ/+8AHQAE//IACf/yAFj/9QBb//UAuP/1ARX/9QFl//IBZv/yAWj/8gFp//IBav/yAib/9QIn//UClf/1Axj/9QM7//UDRP/1A0z/9QNN//IDTv/yA1L/8gNh//UDaf/1A4r/9QOM//UDjv/1A+v/9QPt//UD7//1ACsAT//uAFD/7gBS/+4AvP/uAOf/7gDr/+4A7P/uAO7/7gDv/+4A8P/uAPP/7gD0/+0A9f/uAPb/7gD7/+4BAP/uATH/7gFA/+4BRf/uAhz/7gJk/+4CZv/uAmj/7gJp/+4DEv/uAzf/7gM5/+4DPv/uA0P/7gNU/+4DXf/uA37/7gOA/+4DkP/tA5L/7gPz/+4D9f/uA/v/7QP9/+0D///uBAz/7gQO/+4EEP/uAAoABP/1AAn/9QFl//UBZv/1AWj/9QFp//UBav/1A03/9QNO//UDUv/1AFQARf/wAEb/8ABH//AASf/wAFH/xwBT//AAkf/wAJX/8AC2//AAw//wAMT/8ADy//AA/v/wARP/xwEZ//ABHf/wATX/8AFH//ABSP/wAVL/8AIT//ACFP/wAhX/8AIW//ACF//wAh3/xwIe/8cCH//HAiD/xwIh/8cCL//wAjH/8AIz//ACNf/wAjf/8AI5//ACO//wAj3/8AI///ACQf/wAkP/8AJF//ACR//wAkn/8AJr/8cCbf/HAm//xwMQ//ADFv/HAxz/xwM2//ADOP/HAzr/8AM9//ADXP/wA2L/8ANn//ADdf/wA3f/8AN4//ADgv/HA4T/8AOG/8cDlf/wA7H/8AOz//ADtf/wA7f/8AO5//ADu//wA73/8AO///ADxf/HA8f/xwPJ/8cDy//HA83/xwPP/8cD0f/HA9P/8APV//AD1//wA9n/xwPb//AAjwAEAA0ACQANAEP/8ABF/8AARv/AAEf/wABJ/8AAUf/iAFP/wABYAAsAWwALAJH/wACV/8AAtv/AALgACwDE/8AA7f/XAPL/wAD+/8AA///XARP/4gEVAAsBGf/AAR3/wAE1/8ABR//AAUj/wAFS/8ABZQANAWYADQFoAA0BaQANAWoADQIM//ACDf/wAg7/8AIP//ACEP/wAhH/8AIS//ACE//AAhT/wAIV/8ACFv/AAhf/wAId/+ICHv/iAh//4gIg/+ICIf/iAiYACwInAAsCKf/wAiv/8AIt//ACL//AAjH/wAIz/8ACNf/AAjf/wAI5/8ACO//AAj3/wAI//8ACQf/AAkP/wAJF/8ACR//AAkn/wAJr/+ICbf/iAm//4gKVAAsDEP/AAxb/4gMYAAsDHP/iAzX/8AM2/8ADOP/iAzr/wAM7AAsDPf/AA0QACwNMAAsDTQANA04ADQNSAA0DVv/wA1z/wANhAAsDYv/AA2f/wANpAAsDb//wA3H/8AN1/8ADd//AA3j/wAOC/+IDhP/AA4b/4gOKAAsDjAALA44ACwOV/8ADl//XA5n/8AOb//ADnf/wA5//8AOh//ADo//wA6X/8AOn//ADqf/wA6v/8AOt//ADr//wA7H/wAOz/8ADtf/AA7f/wAO5/8ADu//AA73/wAO//8ADxf/iA8f/4gPJ/+IDy//iA83/4gPP/+ID0f/iA9P/wAPV/8AD1//AA9n/4gPb/8AD6wALA+0ACwPvAAsEEv/XAAgA7QAQAPT/8AD/ABADkP/wA5cAEAP7//AD/f/wBBIAEABFAEX/7gBG/+4AR//uAEn/7gBT/+4Akf/uAJX/7gC2/+4Aw//uAMT/7gDtAA4A8v/uAPT/4wD+/+4A/wAOARn/7gEd/+4BNf/uAUf/7gFI/+4BUv/uAhP/7gIU/+4CFf/uAhb/7gIX/+4CL//uAjH/7gIz/+4CNf/uAjf/7gI5/+4CO//uAj3/7gI//+4CQf/uAkP/7gJF/+4CR//uAkn/7gMQ/+4DNv/uAzr/7gM9/+4DXP/uA2L/7gNn/+4Ddf/uA3f/7gN4/+4DhP/uA5D/4wOV/+4DlwAOA7H/7gOz/+4Dtf/uA7f/7gO5/+4Du//uA73/7gO//+4D0//uA9X/7gPX/+4D2//uA/v/4wP9/+MEEgAOABcAWP/AAFv/wAC4/8AA9P/uARX/wAIm/8ACJ//AApX/wAMY/8ADO//AA0T/wANM/8ADYf/AA2n/wAOK/8ADjP/AA47/wAOQ/+4D6//AA+3/wAPv/8AD+//uA/3/7gAfAFj/9ABa//AAW//0ALj/9ADp//AA7f/zAP//8wEV//QCJv/0Aif/9AKV//QDGP/0Azv/9AM8//ADRP/0A0z/9ANh//QDaf/0A2z/8AN6//ADiv/0A4z/9AOO//QDlP/wA5f/8wPr//QD7f/0A+//9AP5//AEAf/wBBL/8wAKAAT/1gAJ/9YBZf/WAWb/1gFo/9YBaf/WAWr/1gNN/9YDTv/WA1L/1gAMAFr/4ADp/+AA9P/CAzz/4ANs/+ADev/gA5D/wgOU/+AD+f/gA/v/wgP9/8IEAf/gAAQA9P/SA5D/0gP7/9ID/f/SAAoABP/XAAn/1wFl/9cBZv/XAWj/1wFp/9cBav/XA03/1wNO/9cDUv/XAF4ABAALAAkACwBF/+sARv/rAEf/6wBJ/+sAUf/pAFP/6wCR/+sAlf/rALb/6wDD/+sAxP/rAPL/6wD+/+sBE//p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ANcCYwJvANgCcQJxAOUCcwJzAOYCdQJ1AOcCgAKAAOgCggKCAOkChAKEAOoChgKGAOsCiAKIAOwCigKKAO0CjAKMAO4CjgKOAO8CkAKQAPACkgKSAPEClAKXAPICmQKZAPYCmwKbAPcC+AL9APgDAAMPAP4DEgMSAQ4DFgMWAQ8DGAMYARADHAMcAREDHwMgARIDIgMrARQDLQMvAR4DMQM2ASEDOAM5AScDOwM+ASkDRANFAS0DRwNHAS8DSQNJATADSwNOATEDUgNXATUDWgNaATsDXANcATwDYANhAT0DZgNmAT8DaANxAUADdAN1AUoDdwN6AUwDgQOCAVADhgOGAVIDiAOOAVMDkwOUAVoDmAPAAVwDwgPCAYUDxAPRAYYD2QPZAZQD3APcAZUD3gPeAZYD6gPvAZcD8gPyAZ0D9AP0AZ4D9gP2AZ8D+AP5AaAD/gQBAaIEBAQEAaYEBgQHAacECQQJAakEDQQNAaoEDwQPAasEEwQTAawAAQAGAAoAKAAzADQAPQBIAAEALABIAE0AVgBZAF0AmQCwALIAswC0ALsAvgDAAMUAxwDIAMkAzQDPANAA0QDTANQA1gDeAN8A4gDjAOQA5QDmAOgA6gDsAPEA8wD2APcA+wD+AP8BAAEdAdwAAgB2AAQABAAAAAkACQABAA4ADgACABAAEAADACMAJwAEACoAMgAJADYAPAASAEMARQAZAEcARwAcAEoASgAdAE8AUgAeAFQAVAAiAFgAWAAjAFoAXAAkAIgAiAAnAKwArwAoALgAuAAsALwAvAAtAMIAwgAuAM8A0AAvANIA0gAxANUA1QAyANcA2QAzANsA2wA2AN0A3QA3AN8A3wA4AOEA4QA5AOcA5wA6AOkA6QA7APIA8gA8APcA9wA9APkA+gA+AP8BAABAAQUBBQBCAQgBCABDARMBFQBEAScBKQBHASwBLABKAS4BLgBLAUUBRQBMAWUBawBNAW8BcABUAewB7QBWAe8B7wBYAfECFwBZAhwCIQCAAiYCNgCGAjgCQQCXAkoCTAChAk4CTgCkAlACUAClAlICUgCmAlQCVACnAlcCVwCoAlkCWQCpAlsCWwCqAl0CXQCrAl8CXwCsAmECYQCtAmMCbwCuAnECcQC7AnMCcwC8AnUCdQC9AoACgAC+AoICggC/AoQChADAAoYChgDBAogCiADCAooCigDDAowCjADEAo4CjgDFApACkADGApICkgDHApQCnADIAvgC/QDRAwADDwDXAxIDEgDnAxYDFgDoAxgDGADpAxwDHADqAx8DIADrAyIDKwDtAy0DLwD3AzEDNgD6AzgDPgEAA0QDRQEHA0cDRwEJA0kDSQEKA0sDTgELA1IDVwEPA1oDWgEVA1wDXAEWA2ADYQEXA2YDcQEZA3QDdQElA3cDegEnA4EDggErA4YDhgEtA4gDjgEuA5MDlAE1A5gDwAE3A8IDwgFgA8QD0QFhA9kD2QFvA9wD3AFwA94D3gFxA+oD7wFyA/ID8gF4A/QD9AF5A/YD9gF6A/gD+QF7A/4EAQF9BAQEBAGBBAYEBwGCBAkECQGEBA0EDQGFBA8EDwGGBBMEEwGHAAIBOAAEAAQAHQAJAAkAHQAOAA4AHgAQABAAHgAkACQAAQAlACUABAAmACYAAwAnACcABQAqACsAAgAsACwADAAtAC0ACQAuAC4ACgAvADAAAgAxADEAAwAyADIACwA2ADYABgA3ADcADAA4ADgADQA5ADkAEAA6ADoADgA7ADsADwA8ADwAEQBDAEMAEwBEAEQAFQBFAEUAFABHAEcAFgBKAEoAFwBPAFAAFwBRAFEAGABSAFIAFQBUAFQAGgBYAFgAGQBaAFoAGwBbAFsAGQBcAFwAHACIAIgAFQCsAKwABwCuAK4AAwC4ALgAGQC8ALwAFwDCAMIAFQDPANAAHwDSANIAAgDVANUADgDXANgAAgDZANkAEgDbANsAAgDdAN0AAgDfAN8AHwDhAOEAHwDnAOcACADpAOkAGwDyAPIAFQD3APcAIAD5APkAIAD6APoAFQD/AQAAIAEFAQUAIAETARMAGAEUARQADQEVARUAGQEnAScAFQEoASgABwEpASkACAEsASwACQEuAS4ACQFFAUUACAFlAWYAHQFnAWcAHgFoAWoAHQFrAWsAHgFvAXAAHgHsAe0AAwHvAe8ABgH4AfgABAH5AfwABQH9AgEAAgICAgYAAwIHAgoADAILAgsADwIMAhIAEwITAhMAFAIUAhcAFgIcAhwAFwIdAiEAGAImAicAGQIpAikAEwIrAisAEwItAi0AEwIuAi4ABAIvAi8AFAIwAjAABAIxAjEAFAIyAjIABAIzAjMAFAI0AjQABAI1AjUAFAI2AjYAAwI4AjgABQI5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AAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAGAAQABwAFAAYAAAAGABYABgAAAAYAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAkAAAAAAAYAFgAMAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAJAAAAFgAWAAAAAAAAAAAAAgAAAAAAAAAGABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAZAAAACwALABUACwALAAsAFQAAAAAAAAAVABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAABIAEgASABIAEgASABIABgAAAAAAAAAAAAAAAAAAAAAAAAAGAAYABgAGAAYACAAIAAgACAAKABsAGwAbABsAGwAbABsAFgAWABYAFgAWAAAAAAAAAAAACQAEAAQABAAEAAQADQANAA0ADQAFAAUAEgAbABIAGwASABsABgAWAAYAFgAGABYABgAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAYAFgAGABYABgAWAAYAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAkAAAAJAAkABgAEAAYABAAGAAQAAAAAAAAAAAAAAAAAGgAYABoAGAAaABgAGgAYABoAGAAMAAAADAAAAAwAAAAIAA0ACAANAAgADQAIAA0ACAANAAgADQAPAAAACgAFAAoAFAABABQAAQAUAAEAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAYACgAAAAAAEgAAAAAAFAAAAAAAAAAAAAAABgAAAAAACgATAAAACgAWAAAACQAAAA0AAAAEAAAABQAAAAAADQAEAA0AAAAAAAAAAAAAAAAAHAAAAAAAEQASAAAAAAAAAAAAAAAAAAYAAAAAAAYADAATABsAFgAJAAQACQAWAAUAFwAWAAkAGAAAAAAAAAAJAAUADwAAAA8AAAAPAAAACgAFAAsACwAAAAAAAAALAAAACQASABsABgAAAAAAAAAAABYACQAAAAAABwAFABYABgAAAAAABgAWAAoABQAAABMAFwAAABIAGwASABsAAAAAAAAAFgAAABYAFgATABcAAAAAAAAACQAAAAkABgAEAAYAFgAGAAQAAAAAABEABQARAAUAEQAFAA4AAwAAAAkAEwAXABYAAgAQABIAGwASABsAEgAbABIAGwASABsAEgAbABIAGwASABsAEgAbABIAGwASABsAEgAbAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAAAAAAAAAGAAQABgAEAAYABAAGAAQABgAEAAYABAAGAAQABgAWAAYAFgAGABYABgAEAAYAFgAIAA0ACAANAAAADQAAAA0AAAANAAAADQAAAA0ACgAFAAoABQAKAAUAAAAAAAAACQAAAAkADAAAABMAFwAOAAMADgADAAAACQATABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAACQAAAAkAAgAQAAoAAAAAAAAAAAAAABkAAAABAAAACgAsAI4AAURGTFQACAAEAAAAAP//AAgAAAABAAIAAwAEAAUABgAHAAhsaWdhADJsbnVtADhzbWNwAD5zczAxAERzczAyAEpzczAzAFBzczA0AFZzczA1AFwAAAABAAEAAAABAAIAAAABAAAAAAABAAMAAAABAAQAAAABAAUAAAABAAYAAAABAAcACAASABoAIgAqADIAOgBCAEoAAQAAAAEAQAAEAAAAAQH2AAEAAAABAgAAAQAAAAECEgABAAAAAQIQAAEAAAABAg4AAQAAAAECDAABAAAAAQIOAAICEADcAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AegBtQG2AbcBuAG5AboBuwG8Ab0BvgGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAHoAbUBtgG3AbgBuQG6AbsBvAG9Ab4C9wKiAqECogKjAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4C8wK/Ar8CwALAAsECwQLCAsICwwLDAsUCxQLGAsYCxwLHAsgCyALJAskCygLKAssCywLMAswCzQLNAs8CzwLQAtAC0QLRAtIC0gLTAtMC1ALUAtUC1gLWAtcC1wLYAtgC2QLZAtoC2gLbAtsC3ALcAt0C3QLeAt4C3wLfAuAC4ALhAuEC4gLiAuMC4wLkAuQC5QLlAuYC5gLnAucC6ALo/////wLqAuoC6wLrAuwC7ALtAu0C7gLuAu8C7wLwAvAC8QLxAvIC8gLzAvQC9AL1AvUC9gL2AqEAAQCkAAEACAABAAQBkgACAEsAAgCYAAoBmAHMAcQB1gHXAdgB2QHbAd0B5wABAIgBkQABAIgBKAABAIgBrgACAIgAAgHjAeQAAgB+AAIB5QHmAAIADQAjADwAAABDAFwAGgCDAIMANACFAIUANQHsAe0ANgHvAjEAOAI0AkUAewJIAlQAjQJXAmgAmgJqAnsArAJ+An8AvgKCApwAwAPwA/AA2wABAAEASAACAAEAEgAbAAAAAQABAEkAAQABALYAAQABADQAAQACAC0ATQ==", -"Roboto-Regular.ttf":"AAEAAAAOAIAAAwBgR0RFRgsuCy8AASx0AAAASEdQT1OC3T4oAAEsvAAAkPhHU1VCeolvLwABvbQAAANsT1MvMrivKcMAAAFoAAAAYFZETVhu6nZPAAASOAAABeBjbWFwf76BZgAAGBgAAA7iZ2x5ZusE9WMAACb8AADUeGhlYWT1kQ7EAAAA7AAAADZoaGVhC3AJkwAAASQAAAAkaG10eJaDaacAAAHIAAAQcGxvY2EvrvnGAAD7dAAACDptYXhwBDsA9gAAAUgAAAAgbmFtZbs83bQAAQOwAAAEeXBvc3Tfb5xiAAEILAAAJEYAAQAAAAEAAHdFsyVfDzz1AAkIAAAAAADE8BEuAAAAAM2CsmH6jf3VCXQIYgAAAAkAAgAAAAAAAAABAAAHbP4MAAAJkvqN/dgJdAABAAAAAAAAAAAAAAAAAAAEHAABAAAEHACXABYAXQAFAAEAAAAAAAAAAAAAAAAAAwABAAMElwGQAAUAAAWaBTMAAAEfBZoFMwAAA9EAZgIAAAAAAAAAAAAAAAAA4AAC/1AAIFsAAAAgAAAAAHB5cnMAQAAA//0GAP4AAGYHmgIAIAABn08BAAAEOgWwAAAAIAACAfsAAAAAAAAB+wAAAfsAAAKPAGkE+wBGBH4AbgXcAGkE+QBEAWUAZwKhAIUCqgAIA3IAHASJAE4BkgAdAjUAJQIbAKIDTAASBH4AcgR+ANcEfgBdBH4AXgR+ADkEfgCaBH4AhwR+AE0EfgBmBH4AVAH4AKACAABKBBEASASAAJgELgCGA8cAOgcvAGEFSgAnBRcAtgUeAIMFaQC2BKoAtgSnALYFfgCFBbMAtgI/AMMEagA/BSQAtgRgALYHAwC2BbQAtgWQAIIFGQC2BZAAggVMALUE4wBaBMYAOwVoAJYFKQAnBw0ASAUJAEEE8gAeBMkAYQIfAJIDSAAoAh8ACQNYAEADnAAEAnkATwRiAHIEiACRBDsAYQSIAGQENwBiAr4AQgSIAGYEiACRAfwAoQIL/7YEEwCSAfwAoQcCAJAEiACRBIgAYASIAJEEiABkAsoAkQQrAGYCjAAdBIgAjQQCAC4GDgAwBAIALgQCABsEAgBeArUAQAHzAK8CtQATBXEAggHzAJAEYQBuBKYARgW0AGkE2AAgAesAkwToAFoD9ACpBkkAWwOTAHoDwQBmBG4AfwZKAFoDqgB4Av0AggRHAGEDXwBxA2gAaQKCAIEEiACaA+kAQgIWAKIB+wB0AiYAXgOjAHoDwABvBjYAtAaWALQG6wB7A+0AcQd6//IERABZBXIAcwS6AKYEwgCLBsEAPQSwAEwEkQBHBIkAYAScAJoFmwAeAfoAmwRzAJoEMwAmAioAIwWLAKQEiACRB6EAaQdEAGEB/ACgArn/5AV/AHEEkwBgBZAAlgTzAI0CA/+0BDcAYgPEAKkDjQCMA2oAgQIhAKACtQCLAioAMgPGAIIC/ABoAp0AtgAA/NoAAP13AAD8kwAA/V4AAPwnAAD9QwINAMMECwChAhcAogRzALUFpAAgBXIAcwU+ADQEkQB6BbUAtgSRAEUFuwBOBYkAXQVSAHIEhQBkBL0AoAQCAC4EiABgBFAAYwQlAG0EiACRBI8AegKXAMMEbgAlA+wAZQTFAE8EiACRBE0AZQSIAGAELABRBF0AjwWjAFcFmgBfBpcAegTwAHQEQv/nBkgASgX/ACsFZQCHCJkAMgikALUGggBABbQAtQULAKYGBAA0B0MAGwS/AFEFtAC2BakAMAUHAFEGLQBTBdkAtAV6AJcHhwC0B8AAtAYSABEG6wC1BQUApgVkALEHJwDDBRgAYwRsAGEEkgCdA1sAmgTUAC4GIAAVBBAAWASeAJwEUgCcBKAAKAXvAJ0EnQCcBJ4AnAPYACgFzQBkBL0AnARZAGcGeACcBp8AkQT3AB4GNgCdBFgAnQRNAGQGiACdBGQALwSJ/+cETgBsBskAJwbkAJwEif/9BJ4AnAcIAJ8GKwCBBFb/3AcsAMQF+QCZBNIAKgRGAA8HDADWBgwAvAbRAJYF4QCWCQUAwwfRAJsEJABQA9sATAVyAHMEjABgBQoAFwQDAC4FcgBzBIkAYAcBAJ8GJAB+BwkAnwYsAIEFMgB4BEcAZAT9AHQAAPxnAAD8cQAA/WYAAP2kAAD6jQAA+qQEVv/cBRsAtQSKAJEEZACmA5AAkQTbALUEBgCRBQkApgR+AJoGjABFBYQAPgfPALUFtACRCDEAtAb0AJEF7gBzBNMAbQctADQFXAAfBXAAlwRrAIMFcACOBi8ARwS+/+MFCQCmBFoAmgWyALUEiACRBYcAXwSoAGkEqABpBLcAOgNJADsE9gBZBpQAWQbkAGQGVgA2BSsAMQRKAFMECAB5B8EARQZ1AD8H+wCtBqEAkAT2AHkEHQBlBa0AJAUgAEYFZACbBBQAAAgpAAAEFAAACCkAAAK5AAACCgAAAVwAAAR/AAACMAAAAaIAAADRAAAAAAAABYgAswZ9ALsDpgANAZkAYAGZADABlwAkAZoAUALUAGAC2wA8AsEAJARpAEYEjwBXArIAigPEAKYFWgCmB6oARAJmAGwCZgBZA6MAOwOrAEgDYAB6BKYARgaRAKcEPgBPBegAewPOAGgIywCrBQEAZgUXAJgGuwBvB1AAawd/AGwG2wBrBKIATAWOAKkErwBFBJIAqATFAD8IOgBrAgz/tASCAGUELQCYBDYAngQ8AJkECAArAkwAxwKPAG4CAwBcBG4AHwAAAAAIMwBbCDUAXAQcAFwDjQBXBIAAcwML/6IB/P+2AiUAGwGRAGcDpACDA54AgQOfAIED9ABtBA4AaQPz/14D7wBuA6QAWwH9AJ8EtQApBHUAmwSPAHIEpgCbBEMAmwQdAJsEzwByBPYAmwH6AJsECwBBBF0AmwO5AJsF9ACbBRkAmwTLAHIE4QByBKkAmwRvAF0ELABHBQIAjAS4ACoGBQBBBIQAOAReACAEPgBOBHcAewJpAEID4QBaBBIAWQRkAEcEaQBdBC0AegO5AEcELQBcBCcASwInAF4DVQBxA2gAaQL8AEoDeQByA3oAewMMAF4DggByA2sAaQOkAHwDlgCPArUAngNHAG8EfgBeBH4AOQR+AJoEjwCHBDoAHgRCADsEbwBaBH4AZgTDAGQEiABgBUQAtgRiAHIFLwC1BSQAtgQTAJIFPQC2BA8AkgR+AFQEdQCbA2oAgQH7AAACNQAlBYcALgWHAC4EpgAGBMYAOwKM/+MFSgAnBUoAJwVKACcFSgAnBUoAJwVKACcFSgAnBR4AgwSqALYEqgC2BKoAtgSqALYCP//cAj8AwwI///ICP//MBbQAtgWQAIIFkACCBZAAggWQAIIFkACCBWgAlgVoAJYFaACWBWgAlgTyAB4EYgByBGIAcgRiAHIEYgByBGIAcgRiAHIEYgByBDsAYQQ3AGIENwBiBDcAYgQ3AGIB+v+1AfoAmwH6/8sB+v+lBIgAkQSIAGAEiABgBIgAYASIAGAEiABgBIgAjQSIAI0EiACNBIgAjQQCABsEAgAbBUoAJwRiAHIFSgAnBGIAcgVKACcEYgByBR4AgwQ7AGEFHgCDBDsAYQUeAIMEOwBhBR4AgwQ7AGEFaQC2BR4AZASqALYENwBiBKoAtgQ3AGIEqgC2BDcAYgSqALYENwBiBKoAtgQ3AGIFfgCFBIgAZgV+AIUEiABmBX4AhQSIAGYFfgCFBIgAZgWzALYEiACRAj//xQH6/54CP/+/Afr/mAI///UB+v/OAj8AIQH8AAACPwC3BqkAwwQHAKEEagA/AgP/tAUkALYEEwCSBGAAtgH8AKEEYAC2AfwAWwRgALYCkgChBGAAtgLYAKEFtAC2BIgAkQW0ALYEiACRBbQAtgSIAJEEiP/SBZAAggSIAGAFkACCBIgAYAWQAIIEiABgBUwAtQLKAJEFTAC1AsoAWAVMALUCygBpBOMAWgQrAGYE4wBaBCsAZgTjAFoEKwBmBOMAWgQrAGYE4wBaBCsAZgTGADsCjAAdBMYAOwKMAB0ExgA7ArQAHQVoAJYEiACNBWgAlgSIAI0FaACWBIgAjQVoAJYEiACNBWgAlgSIAI0FaACWBIgAjQcNAEgGDgAwBPIAHgQCABsE8gAeBMkAYQQCAF4EyQBhBAIAXgTJAGEEAgBeB3r/8gbBAD0FcgBzBIkAYASm//MEpv/zBCwARwS1ACkEtQApBLUAKQS1ACkEtQApBLUAKQS1ACkEjwByBEMAmwRDAJsEQwCbBEMAmwH6/7MB+gCbAfr/yQH6/6MFGQCbBMsAcgTLAHIEywByBMsAcgTLAHIFAgCMBQIAjAUCAIwFAgCMBF4AIAS1ACkEtQApBLUAKQSPAHIEjwByBI8AcgSPAHIEpgCbBEMAmwRDAJsEQwCbBEMAmwRDAJsEzwByBM8AcgTPAHIEzwByBPYAmwH6/5wB+v+WAfr/zAH6//cB+gCPBAsAQQRdAJsDuQCbA7kAmwO5AJsDuQCbBRkAmwUZAJsFGQCbBMsAcgTLAHIEywByBKkAmwSpAJsEqQCbBG8AXQRvAF0EbwBdBG8AXQQsAEcELABHBQIAjAUCAIwFAgCMBQIAjAUCAIwFAgCMBgUAQQReACAEXgAgBD4ATgQ+AE4EPgBOCN4AXQVKACcFDv/mBhcAEwKjABkFpABSBVb/jQVmAD8Cl//IBUoAJwUXALYEqgC2BMkAYQWzALYCPwDDBSQAtgcDALYFtAC2BZAAggUZALYExgA7BPIAHgUJAEECP//MBPIAHgSFAGQEUABjBIgAkQKXAMMEXQCPBHMAmgSIAGAEiACaBAIALgQCAC4Cl//TBF0AjwSIAGAEXQCPBpcAegSqALYEcwC1BOMAWgI/AMMCP//MBGoAPwUkALYFJAC2BQcAUQVKACcFFwC2BHMAtQSqALYFtAC2BwMAtgWzALYFkACCBbUAtgUZALYFHgCDBMYAOwUJAEEEYgByBDcAYgSeAJwEiABgBIgAkQQ7AGEEAgAbBAIALgQ3AGIDWwCaBCsAZgH8AKEB+v+lAgv/tgRSAJwEAgAbBw0ASAYOADAHDQBIBg4AMAcNAEgGDgAwBPIAHgQCABsBZQBnAo8AaQQeAKkEugBCAgP/tAGZADAHAwC2BwIAkAVKACcEYgByBZD/PgcsAEIHeABCBKoAtgW0ALYENwBiBJ4AnAWJAF0FmgBfBQoAFwQD//kIigBgCZIAggS/AFEEEABYBR4AgwQ7AGEE8gAeBAIALgI/AMMHQwAbBiAAFQI/AMMFSgAnBGIAcgVKACcEYgByB3r/8gbBAD0EqgC2BDcAYgWHAF8ENwBiBDcAYgdDABsGIAAVBL8AUQQQAFgFtAC2BJ4AnAW0ALYEngCcBZAAggSIAGAFcgBzBIwAYAVyAHMEjABgBWQAsQRNAGQFBwBRBAIAGwUHAFEEAgAbBQcAUQQCABsFegCXBFkAZwbrALUGNgCdBQkAQQQCAC4EiABkBakAMASgACgFSgAnBGIAcgVKACcEYgByBUoAJwRiAHIFSgAnBGL/rgVKACcEYgByBUoAJwRiAHIFSgAnBGIAcgVKACcEYgByBUoAJwRiAHIFSgAnBGIAcgVKACcEYgByBUoAJwRiAHIEqgC2BDcAYgSqALYENwBiBKoAtgQ3AGIEqgC2BDcAYgSq//gEN/+zBKoAtgQ3AGIEqgC2BDcAYgSqALYENwBiAj8AwwH6AJsCPwC3AfwAlgWQAIIEiABgBZAAggSIAGAFkACCBIgAYAWQAEwEiP/LBZAAggSIAGAFkACCBIgAYAWQAIIEiABgBX8AcQSTAGAFfwBxBJMAYAV/AHEEkwBgBX8AcQSTAGAFfwBxBJMAYAVoAJYEiACNBWgAlgSIAI0FkACWBPMAjQWQAJYE8wCNBZAAlgTzAI0FkACWBPMAjQWQAJYE8wCNBPIAHgQCABsE8gAeBAIAGwTyAB4EAgAbBKYAZASmAGQFJAC2BFIAnAWzALYEnQCcBMYAOwPYACgFCQBBBAIALgV6AJcEWQBnBXoAlwRZAGcEcwC1A1sAmgdDABsGIAAVBi8ARwS+/+MEiACRBQX/1AUF/9QEcwADA1v//AU4//UEJ//YBbQAtgSeAJwFswC2BJ0AnAcDALYF7wCdBakAMASgACgE8gAeBAIALgUJAEEEAgAuBFAAYwSnABsGfQC7AAAAAAIPAKkAAAABAAEBAQEBAAwA+Aj/AAgACP/+AAkACf/9AAoACv/9AAsAC//9AAwADP/9AA0ADf/8AA4ADv/8AA8AD//8ABAAEP/8ABEAEf/7ABIAEv/7ABMAE//7ABQAFP/7ABUAFP/6ABYAFf/6ABcAFv/6ABgAF//6ABkAGP/5ABoAGf/5ABsAGv/5ABwAG//5AB0AHP/4AB4AHf/4AB8AHv/4ACAAH//4ACEAIP/3ACIAIf/3ACMAIv/3ACQAI//3ACUAJP/2ACYAJf/2ACcAJv/2ACgAJ//2ACkAJ//1ACoAKP/1ACsAKf/1ACwAKv/1AC0AK//0AC4ALP/0AC8ALf/0ADAALv/0ADEAL//zADIAMP/zADMAMf/zADQAMv/zADUAM//yADYANP/yADcANf/yADgANv/yADkAN//xADoAOP/xADsAOf/xADwAOv/xAD0AOv/wAD4AO//wAD8APP/wAEAAPf/wAEEAPv/vAEIAP//vAEMAQP/vAEQAQf/vAEUAQv/uAEYAQ//uAEcARP/uAEgARf/uAEkARv/tAEoAR//tAEsASP/tAEwASf/tAE0ASv/sAE4AS//sAE8ATP/sAFAATf/sAFEATf/rAFIATv/rAFMAT//rAFQAUP/rAFUAUf/qAFYAUv/qAFcAU//qAFgAVP/qAFkAVf/pAFoAVv/pAFsAV//pAFwAWP/pAF0AWf/oAF4AWv/oAF8AW//oAGAAXP/oAGEAXf/nAGIAXv/nAGMAX//nAGQAYP/nAGUAYP/mAGYAYf/mAGcAYv/mAGgAY//mAGkAZP/lAGoAZf/lAGsAZv/lAGwAZ//lAG0AaP/kAG4Aaf/kAG8Aav/kAHAAa//kAHEAbP/jAHIAbf/jAHMAbv/jAHQAb//jAHUAcP/iAHYAcf/iAHcAcv/iAHgAc//iAHkAc//hAHoAdP/hAHsAdf/hAHwAdv/hAH0Ad//gAH4AeP/gAH8Aef/gAIAAev/gAIEAe//fAIIAfP/fAIMAff/fAIQAfv/fAIUAf//eAIYAgP/eAIcAgf/eAIgAgv/eAIkAg//dAIoAhP/dAIsAhf/dAIwAhv/dAI0Ahv/cAI4Ah//cAI8AiP/cAJAAif/cAJEAiv/bAJIAi//bAJMAjP/bAJQAjf/bAJUAjv/aAJYAj//aAJcAkP/aAJgAkf/aAJkAkv/ZAJoAk//ZAJsAlP/ZAJwAlf/ZAJ0Alv/YAJ4Al//YAJ8AmP/YAKAAmf/YAKEAmf/XAKIAmv/XAKMAm//XAKQAnP/XAKUAnf/WAKYAnv/WAKcAn//WAKgAoP/WAKkAof/VAKoAov/VAKsAo//VAKwApP/VAK0Apf/UAK4Apv/UAK8Ap//UALAAqP/UALEAqf/TALIAqv/TALMAq//TALQArP/TALUArP/SALYArf/SALcArv/SALgAr//SALkAsP/RALoAsf/RALsAsv/RALwAs//RAL0AtP/QAL4Atf/QAL8Atv/QAMAAt//QAMEAuP/PAMIAuf/PAMMAuv/PAMQAu//PAMUAvP/OAMYAvf/OAMcAvv/OAMgAv//OAMkAv//NAMoAwP/NAMsAwf/NAMwAwv/NAM0Aw//MAM4AxP/MAM8Axf/MANAAxv/MANEAx//LANIAyP/LANMAyf/LANQAyv/LANUAy//KANYAzP/KANcAzf/KANgAzv/KANkAz//JANoA0P/JANsA0f/JANwA0v/JAN0A0v/IAN4A0//IAN8A1P/IAOAA1f/IAOEA1v/HAOIA1//HAOMA2P/HAOQA2f/HAOUA2v/GAOYA2//GAOcA3P/GAOgA3f/GAOkA3v/FAOoA3//FAOsA4P/FAOwA4f/FAO0A4v/EAO4A4//EAO8A5P/EAPAA5f/EAPEA5f/DAPIA5v/DAPMA5//DAPQA6P/DAPUA6f/CAPYA6v/CAPcA6//CAPgA7P/CAPkA7f/BAPoA7v/BAPsA7//BAPwA8P/BAP0A8f/AAP4A8v/AAP8A8//AAAAAAwAAAAMAAAiEAAEAAAAAABwAAwABAAACJgAGAgoAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAEAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAMEGwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYAAAAfUB9gH4AfoCAQIGAgoCDQIMAg4CEAIPAhECEwIVAhQCFgIXAhkCGAIaAhsCHAIeAh0CHwIhAiACIwIiAiQCJQFsAG8AYgBjAGcBbgB1AIMAbQBpAX0AcwBoAYsAfwCBAYgAcAGMAY0AZQB0AYMBhQGEAMEBiQBqAHkAtQCEAIcAfgBhAGwBhwCTAYoArQBrAHoBcAADAfEB9AIFAJAAkQFiAWMBaQFqAWUBZgCGAY4CJwKWAXQBeQFyAXMBkgNQAW0AdgFnAWsBcQHzAfsB8gH8AfkB/gH/AgAB/QIDAgQAAAICAggCCQIHAIoAmgCgAG4AnACdAJ4AdwChAJ8AmwAEBl4AAADqAIAABgBqAAAAAgANACEAfgCgAKwArQC/AMYAzwDmAO8A/gEPAREBJQEnATABOAFAAVMBXwFnAX4BfwGSAaEBsAHwAfsB/wIZAhsCNwJZArwCxwLJAt0C8wMBAwMDCQMPAyMDigOMA5IDoQOwA7kDyQPOA9ID1gQlBC8ERQRPBGIEbwR5BIYEzgTXBOEE9QUBBRAFEx4BHj8ehR7xHvMe+R9NIAsgFSAeICIgJiAwIDMgOiA8IEQgdCB/IKQgpyCsIQUhEyEWISIhJiEuIV4iAiIGIg8iEiIaIh4iKyJIImAiZSXK7gL2w/sE/v///f//AAAAAAACAA0AIAAiAKAAoQCtAK4AwADHANAA5wDwAP8BEAESASYBKAExATkBQQFUAWABaAF/AZIBoAGvAfAB+gH8AhgCGgI3AlkCvALGAskC2ALzAwADAwMJAw8DIwOEA4wDjgOTA6MDsQO6A8oD0QPWBAAEJgQwBEYEUARjBHAEegSIBM8E2ATiBPYFAgURHgAePh6AHqAe8h70H00gACATIBcgICAlIDAgMiA5IDwgRCB0IH8goyCnIKshBSETIRYhIiEmIS4hWyICIgYiDyIRIhoiHiIrIkgiYCJkJcruAfbD+wH+///8//8AAQQY//UAAP/iAAD/wAAA/78AAAExAAABLAAAASgAAAEmAAABJAAAASIAAAEcAAABHgAA/wH+9P7nAWEAAAChAGQAZv5h/kAAlv3U/aX9xP2v/aP9ov2d/Zj9hQAA/3D/bwAAAAD9BQAA/1D8+fz2AAD8tQAA/K0AAPyiAAD8nAAA/p4AAP6bAAD8RQAA5VXlFeTF5PjkWeT25ArhVgAA4U3hTOFK4UHjG+E54xPhMOEB4PcAAODRAADgdeBo4GbgW9+P4FDgJN+B3qffdd90323fat9e30LfK98o28QTjgrOAAAClAGYAAEAAAAAAAAA5AAAAOQAAADiAAAA4AAAAOoAAAEUAAABLgAAAS4AAAEuAAABOgAAAVwAAAFoAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAFMAWgAAAGAAAAAAAAAAZgAAAHgAAACCAAAAioAAAI6AAACxAAAAtQAAALoAAAAAAAAAAAAAAAAAAAAAALcAAAAAAAAAAAAAAAAAAAAAAAAAAACzAAAAswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqYAAAAAAAAAAwQbAeoB6wHxAfIB8wH0AfUB9gB/Ae0CAQICAgMCBAIFAgYAgACBAgcCCAIJAgoCCwCCAIMCDAINAg4CDwIQAhEAhACFAhwCHQIeAh8CIAIhAIYAhwIiAiMCJAIlAiYAiAHsA/AAiQHuAIoCVQJWAlcCWAJZAloAiwCMAI0CYwJkAmUCZgJnAmgCaQCOAI8CagJrAmwCbQJuAm8AkACRAn4CfwKCAoMChAKFAe8B8ACSAfcCEgCpAKoC+ACrAvkC+gL7AKwArQMCAwMDBACuAwUDBgCvAwcDCACwAwkAsQMKALIDCwMMALMDDQC0ALUDDgMPAxADEQMSAxMDFAMVAL8DFwMYAMADFgDBAMIAwwDEAMUAxgDHAxkAyADJA1oDHwDNAyAAzgMhAyIDIwMkAM8A0ADRAyYDWwMnANIDKADTAykDKgDUAysA1QDWANcDLAMlANgDLQMuAy8DMAMxAzIDMwDZANoDNAM1AOUA5gDnAOgDNgDpAOoA6wM3AOwA7QDuAO8DOADwAzkDOgDxAzsA8gM8A1wDPQD9Az4A/gM/A0ADQQNCAP8BAAEBA0MDXQNEAQIBAwEEBAYDXgNfARIBEwEUARUDYANhA2MDYgEjASQECwQMBAUBJQEmAScBKAEpBAcECAEqASsEAAQBA2QDZQPyA/MBLAEtBAkECgEuAS8D9AP1ATABMQEyATMBNAE1A2YDZwP2A/cDaANpBBMEFAP4A/kBNgE3A/oD+wE4ATkBOgQEATsBPAQCBAMDagNrA2wBPQE+BBEEEgE/AUAEDQQOA/wD/QQPBBABQQN3A3YDeAN5A3oDewN8AUIBQwP+A/8DkQOSAUQBRQOTA5QEFQQWAUYDlQQXA5YDlwFiAWMEGQQYAXcD8QF5AZIDUANYA1kABAZeAAAA6gCAAAYAagAAAAIADQAhAH4AoACsAK0AvwDGAM8A5gDvAP4BDwERASUBJwEwATgBQAFTAV8BZwF+AX8BkgGhAbAB8AH7Af8CGQIbAjcCWQK8AscCyQLdAvMDAQMDAwkDDwMjA4oDjAOSA6EDsAO5A8kDzgPSA9YEJQQvBEUETwRiBG8EeQSGBM4E1wThBPUFAQUQBRMeAR4/HoUe8R7zHvkfTSALIBUgHiAiICYgMCAzIDogPCBEIHQgfyCkIKcgrCEFIRMhFiEiISYhLiFeIgIiBiIPIhIiGiIeIisiSCJgImUlyu4C9sP7BP7///3//wAAAAAAAgANACAAIgCgAKEArQCuAMAAxwDQAOcA8AD/ARABEgEmASgBMQE5AUEBVAFgAWgBfwGSAaABrwHwAfoB/AIYAhoCNwJZArwCxgLJAtgC8wMAAwMDCQMPAyMDhAOMA44DkwOjA7EDugPKA9ED1gQABCYEMARGBFAEYwRwBHoEiATPBNgE4gT2BQIFER4AHj4egB6gHvIe9B9NIAAgEyAXICAgJSAwIDIgOSA8IEQgdCB/IKMgpyCrIQUhEyEWISIhJiEuIVsiAiIGIg8iESIaIh4iKyJIImAiZCXK7gH2w/sB/v///P//AAEEGP/1AAD/4gAA/8AAAP+/AAABMQAAASwAAAEoAAABJgAAASQAAAEiAAABHAAAAR4AAP8B/vT+5wFhAAAAoQBkAGb+Yf5AAJb91P2l/cT9r/2j/aL9nf2Y/YUAAP9w/28AAAAA/QUAAP9Q/Pn89gAA/LUAAPytAAD8ogAA/JwAAP6eAAD+mwAA/EUAAOVV5RXkxeT45Fnk9uQK4VYAAOFN4UzhSuFB4xvhOeMT4TDhAeD3AADg0QAA4HXgaOBm4Fvfj+BQ4CTfgd6n33XfdN9t32rfXt9C3yvfKNvEE44KzgAAApQBmAABAAAAAAAAAOQAAADkAAAA4gAAAOAAAADqAAABFAAAAS4AAAEuAAABLgAAAToAAAFcAAABaAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAAAABTAFoAAABgAAAAAAAAAGYAAAB4AAAAggAAAIqAAACOgAAAsQAAALUAAAC6AAAAAAAAAAAAAAAAAAAAAAC3AAAAAAAAAAAAAAAAAAAAAAAAAAAAswAAALMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKmAAAAAAAAAAMEGwHqAesB8QHyAfMB9AH1AfYAfwHtAgECAgIDAgQCBQIGAIAAgQIHAggCCQIKAgsAggCDAgwCDQIOAg8CEAIRAIQAhQIcAh0CHgIfAiACIQCGAIcCIgIjAiQCJQImAIgB7APwAIkB7gCKAlUCVgJXAlgCWQJaAIsAjACNAmMCZAJlAmYCZwJoAmkAjgCPAmoCawJsAm0CbgJvAJAAkQJ+An8CggKDAoQChQHvAfAAkgH3AhIAqQCqAvgAqwL5AvoC+wCsAK0DAgMDAwQArgMFAwYArwMHAwgAsAMJALEDCgCyAwsDDACzAw0AtAC1Aw4DDwMQAxEDEgMTAxQDFQC/AxcDGADAAxYAwQDCAMMAxADFAMYAxwMZAMgAyQNaAx8AzQMgAM4DIQMiAyMDJADPANAA0QMmA1sDJwDSAygA0wMpAyoA1AMrANUA1gDXAywDJQDYAy0DLgMvAzADMQMyAzMA2QDaAzQDNQDlAOYA5wDoAzYA6QDqAOsDNwDsAO0A7gDvAzgA8AM5AzoA8QM7APIDPANcAz0A/QM+AP4DPwNAA0EDQgD/AQABAQNDA10DRAECAQMBBAQGA14DXwESARMBFAEVA2ADYQNjA2IBIwEkBAsEDAQFASUBJgEnASgBKQQHBAgBKgErBAAEAQNkA2UD8gPzASwBLQQJBAoBLgEvA/QD9QEwATEBMgEzATQBNQNmA2cD9gP3A2gDaQQTBBQD+AP5ATYBNwP6A/sBOAE5AToEBAE7ATwEAgQDA2oDawNsAT0BPgQRBBIBPwFABA0EDgP8A/0EDwQQAUEDdwN2A3gDeQN6A3sDfAFCAUMD/gP/A5EDkgFEAUUDkwOUBBUEFgFGA5UEFwOWA5cBYgFjBBkEGAF3A/EBeQGSA1ADWANZAAAAAgBpBBQCHwYYAAUACgAAAQMjEzUzBQMjETMCHy9eAYz+1i9djAWN/ocBd42L/ocCBAAAAAIARgAABKIFsAAbAB8AAAEhAyMTIzUhEyE1IRMzAyETMwMzFSMDMxUjAyMDIRMhAsz++FCPUO8BCUb+/QEeUY9RAQhRkFHL5kbh+1CQngEIRv74AZr+ZgGahwFmiQGg/mABoP5gif6ah/5mAiEBZgABAG7/MAQRBpsAKwAAATQmJy4BNTQ2NzUzFR4BFSM0JiMiBhUUFhceARUUBgcVIzUuATUzFBYzMjYDWH+bz8m8qpWst7iAeHx5eabRwsu3lLDduaB4hpMBdl1/ND/GrajMFdrbGOnOjKh8bmV3OES/rK/IEr+/EdPZoIJ8AAAAAAUAaf/rBYMFxQANABsAKQA3ADsAABM0NjMyFh0BFAYjIiY1MxQWMzI2PQE0JiMiBhUBNDYzMhYdARQGIyImNTMUFjMyNj0BNCYjIgYVBScBF2mgioqhoImLoYtST01RUk5OUQI6oIqKoaCJi6GLUk9OUVJPTlH+EmgCx2gEmIKrq4JNgaqqgU1nZ01NTWlpTfzNgaurgU6CqqqCTWhnTk5NaGhN9kEEckEAAAADAET/6wTRBcUAIAArADgAABM0NjcuATU0NjMyFhUUBg8BAT4BNTMUBgcXIycOASMiJgUyNjcBBw4BFRQWAxQWFzc+ATU0JiMiBkSMj1BKvayfvmVmcwFcLC+mTEu+3VtTv2zc+wHXTI5A/o8qYTyQDzc4kDopYFJXWQGGfLRgYptUq7OxgmOLS1X+XkSdXIXcW+NsQEHgSzIyAbofSXw0dJID6Td0R2QnWTdAXXAAAAEAZwQjAP0GGAAFAAATAyMTNTP9OV0BlQWo/nsBdYAAAQCF/ioClQZqAA8AABMQADcXBgIRFRASFwcmABGFATW1Jo3KyY4mtv7MAk8BjwInZXhs/iz+nw7+n/4sdW9mAiQBkQABAAj+KgIYBmoADwAAARAAByc2EhE1EAInNxYAEQIY/su0J4vM0oUntAE1AkX+b/3cZm9rAd0BYg4BXAHfb29m/dn+cgAAAAABABwCYgNVBbAADgAAASU3BQMzAyUXBRMHCwEnAUr+0i4BLgmZCgEpLv7Nxny6tH0D2FuUcAFZ/qFwllz+8F0BIf7mWgAAAAABAE4AkgQ0BLYACwAAASEVIREjESE1IREzAp4Blv5quv5qAZa6Awus/jMBzawBqwABAB3+zAE0ANoACQAAJRQGByc+AT0BMwE0XFJpMC65RmTPR0hJkVWXAAAAAAEAJQIhAg0CtgADAAABITUhAg3+GAHoAiGVAAABAKIAAAFeAMUAAwAAISM1MwFevLzFAAABABL/gwMQBbAAAwAAFyMBM7GfAmCefQYtAAAAAgBy/+sEDAXFAA0AGwAAARACIyICGQEQEjMyEhEnNCYjIgYVERQWMzI2NQQM8dva9PLa2/O5i4qJioyJiokCLP7j/twBJQEcAVcBHAEm/tr+5CjEwMDE/lvEwsDGAAAAAQDXAAACuQWwAAUAACEjEQU1JQK5uf7XAeIE3Ah3ZQABAF0AAAQjBcUAGAAAKQE1AT4BNTQmIyIGFSM0NjMyFhUUBgcBIQQj/FYB3YRagXCckbn+6MbljIP+eQLLgwITkqdacpSakcP+4LV56ZD+VwAAAAABAF7/6wP6BcUAKAAAATMyNjU0JiMiBhUjNDYzMhYVFAYHHgEVFAQjIiQ1MxQWMzI2NTQmKwEBhqeKc36BeY659srO6m5wh27/AM7K/vy6koKFkISQpwMwhHiBgoh0reXTyl2wMCu2dcvf1cF3ioeKi4AAAAIAOQAABFEFsAAKAA8AAAEzFSMRIxEhNQEzASERIwcDhM3NuP1tAofE/X0BywMbAeiV/q0BU2sD8vw4AslGAAABAJr/6wQRBbAAHgAAGwEhFSEDPgE3NhIVFAIjIiY1MxQWMzI2NTQmIyIGB7FUAtX9xzAwclHK4+TlvPKvi3SEjI2AemwaApEDH6n+XCUtAgL+++Tg/vvHzXyDr5+Rs0ZMAAAAAgCH/+sEMwXFABoAJwAAATIWFwcuASMiBh0BPgEzMhIVFAIjIgAZARAAEyIGBxUUFjMyNjU0JgKfTJEyKDRpSqC/QaVjx+Pz0Nj+7wEwqWqRJaqGgIqSBcUiG5EaHvXOIjtB/vfV5f7oAS8BHgEfARsBU/1zVUpzztjMnJa6AAABAE0AAAQiBbAADAAAAQACAwcjNxoBEyE1IQQi/ve+KQ+6Dyvw2PziA9UFGv7B/hv+o5mZAWICFwEIlgADAGb/6wQYBcUAGAAkADAAAAEUBgceARUUBCMiJDU0Njc1LgE1NDYzMhYDNCYjIgYVFBYzMjYDNCYjIgYVFBYzMjYD8H9vgZX+/tba/wCRf2166cbD75Gif4Kdm4aBnimKbnCGh3FvhwQ1dakrLbh+zdHQzn65LAMpqXTEzM38lXuamXyAjY4DI3COiXVzhoYAAAAAAgBU/+sD/QXFABsAKAAAJTI2PQEnDgEjIgI1NAAzMgAZARAAIyImJzceARMyNjc1NCYjIgYVFBYB/5auAzCWXtfxAQLA5gEB/uroT5tCHT9+b3KUIZWSdJqOgNbaLAFJSgED8egBH/7q/uf+nP7g/tkcH5AeGAHfYE2cxcLMpaG+AAD//wCgAAABXQQ6ACYAEP4AAAcAEP//A3X//wBK/swBYQQ6ACcAEAAAA3UABgAOLQAAAQBIAMUDegRJAAkAAAEHFRcFFQE1ARUBQk9PAjj8zgMyApsUBBTpwQF7jwF6wQAAAgCYAZAD2gPNAAMABwAAASE1IREhNSED2vy+A0L8vgNCAy+e/cOeAAEAhgDGA9wESgAJAAATNQEVATUlNzUnhgNW/KoCXFJSA4+7/oaP/oW88hUDFgAAAAIAOgAAA28FxQAZAB0AAAE+ATc+ATU0JiMiBhUjPgEzMhYVFAYHDgEVEyM1MwFnAS1mZlRybmGAugLjtsbUiXg4FgjExAGZk2pddn5db3JlZKnAxbeE0HQ2VF7+Z8sAAAIAYf47BtgFlgAzAEMAAAEGAiMiJicOASMiJjcaATMyFhcHMwMGFjMyNjcSACEgAAMCACEyNjcXDgEjIAATEgAhIAABBhYzMjY3PAE3Ey4BIyIGBscJ2d9LaRY0jmKBhxIY4qhqekwEBjMJPzSAlAkR/sP+pv7E/ogQEgFOAURasUAlRctk/n3+aBITAcYBfAGEAYz78AxDT0RuLgIvGzwigYgB99r+zlROU0/tyAEIATMzNwT9uHJT4rUBhwGj/jj+hf6A/lAqJGgrLgHqAbkBrwIJ/hf985KVNUYQFQwCGg0Q2QAAAAACACcAAAUiBbAABwAKAAABIQMjATMBIwEhAwPY/ZuPvQIyoAIpvf1FAfj6AYT+fAWw+lACGQKyAAMAtgAABKkFsAAPABgAIQAAMxEhMhYVFAYHFR4BFRQGIwERITI2NTQmIyUhPgE1NCYjIbYB0+j9eWODlP7h/qUBW42ZgYn+iQFMc4eXlf7mBbDByGSYJAMbx4jLzwKt/eiFfoOSlQN3b3p1AAEAg//rBMkFxQAbAAABBgAjIgAZARAAMzIEFyMuASMiAhURFBIzMjY3BMkY/u/x/P7QATD89QENGLkZo6Wsx8espqIZAc3c/voBWAEUAQEBEwFa/eimqf73zP79zv73pKkAAAACALYAAATnBbAACQATAAAzESEgABEVEAAhAxEzMhI9ATQmI7YBuwEiAVT+qP7Q8PDo5uLaBbD+pv7kxf7i/qkFGvt7AQXbx9//AAAAAQC2AAAEdQWwAAsAAAEhESEVIREhFSERIQQP/WADBvxBA7X9BAKgAqb975UFsJb+IgAAAAEAtgAABHMFsAAJAAABIREjESEVIREhBA39YrkDvfz8Ap4CiP14BbCW/gQAAQCF/+sE2wXFAB8AACUOASMgABkBEAAhMgQXIy4BIyIGFREUFjMyNjcRITUhBNs0/c/+9/6zATcBAPgBCB+5GqOpr87kuIKiI/62AgO/UIQBSgEPASkBDwFJ7c6HnvnH/tXJ+0IsAVCVAAAAAQC2AAAE/QWwAAsAACEjESERIxEzESERMwT9uf0rubkC1bkChv16BbD9awKVAAAAAQDDAAABfAWwAAMAACEjETMBfLm5BbAAAQA//+sDwAWwAA8AAAEzERQGIyImNTMUFjMyNjUDB7nyx9XzuYqFco4FsPvkyOHS1IyFlIAAAAABALYAAAUcBbAADAAAASMRIxEzETMBMwkBIwIfsLm5nwIR1P3DAmbjApT9bAWw/XkCh/0+/RIAAAEAtgAABCUFsAAFAAAlIRUhETMBbwK2/JG5lZUFsAAAAQC2AAAGTQWwABAAAAkCMxEjERMjASMBIxMRIxEBpAHdAd7uuRMD/ht8/hwDE7kFsPtPBLH6UAJHAmP7VgSo/Z/9uQWwAAAAAQC2AAAE/gWwAAsAACEjASMRIxEzATMRMwT+uf0tA7m5AtMDuQR7+4UFsPuGBHoAAgCC/+sFDQXFAA0AGwAAARAAISAAGQEQACEgABEnNAIjIgIVERQSMzISNQUN/rv+9v7+/sYBOgECAQoBRbnavLTPz7S92QJX/vT+oAFgAQwBAQELAWL+nv71AskBBv76yf79y/76AQXMAAAAAgC2AAAExAWwAAoAEwAAAREjESEyFhUUBiMlITI2NTQmIyEBb7kCJO39/e3+lQFrnJWVnP6VAkr9tgWw68jK6ZWffX6hAAAAAgCC/wwFDQXFABMAIQAAARQCBxcHJQ4BIyAAGQEQACEgABEnNAIjIgIVERQSMzISNQUNfHPuf/7yL18z/v7+xgE6AQIBCgFFudq8tM/PtL3ZAleh/vtW3HP9DhABYAEMAQEBCwFi/p7+9QLJAQb++sn+/cv++gEFzAAAAAIAtQAABOIFrwAaACMAAAERIxEhMhYVFAYHHgEdARQWFxUjLgE9ATQmIyUhMjY1NCYjIQFuuQIK8/d5dXtpHiW/KBaMfP6RAT6vlZKf/q8Cev2GBa/PznKkMiirhIlGaSMYI4NGhXqPlYCFf4cAAAABAFr/6wSKBcUAJQAAATQmJy4BNTQkMzIAFSM0JiMiBhUUFhceARUUBCMiJDUzFBYzMjYD0JbH7P4BE+HxARi5rKSboKnI6u3+5evf/rW5056csAFuaIUxONClrd/+/raEnoVuYn8xO9ins9Loz5GRfgAAAAEAOwAABIoFsAAHAAABIREjESE1IQSK/jW5/jUETwUa+uYFGpYAAAABAJb/6wTXBbAAEQAAAREUBCMiJDURMxEUFjMyNjURBNf+0vv0/ty6vaGpxwWw/CXy+PjyA9v8JauqqqsD2wAAAQAnAAAFAgWwAAkAAAEXMzcBMwEjATMCciEEIQGCyP3jof3jyQFednYEUvpQBbAAAQBIAAAGwgWwABUAAAEXMzcBMwEXMzcTMwEjAScjBwEjATMB0x8DLAERpQETKwMhz7r+rqb+2x0DHf7Xpv6vuQHvysoDwfw/zMwDwfpQA/2RkfwDBbAAAAEAQQAABNAFsAALAAAJATMJASMJASMJATMChgFg3/4vAdzc/pb+l+AB3P4v3gNzAj39Lv0iAkj9uALeAtIAAAABAB4AAATTBbAACAAACQEzAREjEQEzAngBh9T9/rj+BdQCvgLy/FL9/gIPA6EAAAABAGEAAARtBbAACQAAJSEVITUBITUhFQE1Azj79AMU/PkD3pWVjQSNlogAAAEAkv7IAgsGgAAHAAABIxEzFSERIQILv7/+hwF5Ber5dJYHuAAAAAABACj/gwM4BbAAAwAAEzMBIyiwAmCwBbD50wAAAQAJ/sgBgwaAAAcAABMhESE1MxEjCQF6/obBwQaA+EiWBowAAQBAAtkDFAWwAAkAABMjATMBIwMnIwfsrAErfwEqq6sTBBMC2QLX/SkBqlVVAAAAAQAE/2sDmAAAAAMAAAUhNSEDmPxsA5SVlQAAAAEATwS7AeQFxQADAAABIwMzAeSY/eIEuwEKAAACAHL/7APsBE4AHwAqAAAhLgEnDgEjIiY1NDY7ATU0JiMiBhUjNDYzMhYVERQWFyUyNjc1IyIGFRQWAy0KCgI6rGerrfjc0XpxaYG57r+73wwQ/flopSXXgZRdM0IkTGGpmZ6sbmNvY0d9w7iy/fY6ajaLYEbHeVVLVAAAAgCR/+wEJQYYABIAIAAAARQCIyImJwcjETMRFz4BMzISESM0JiMiBgcRHgEzMjY1BCXbyW2cNRKgugMylmnL27mKkWF/Jid/YpGIAfXw/udSUpAGGP2gAUpN/sb+9sDqWk/+JVBaxqkAAAAAAQBh/+wD8gROABsAACUyNjczDgEjIgI9ATQSMzIWFyMuASMiBh0BFBYCQ2eXAbAB/6/u9PTuv+8BsAGOcKGHhoF4XJTVAS/tKuwBMNysaIrfpyqr3AAAAAIAZP/sA/AGGAASACAAABMQEjMyFhc3ETMRIycOASMiAjUzFBYzMjY3ES4BIyIGFWTazGSSNAO5oRA2mGnJ27mHkl56KSh8W5OIAgoBCgE6SEYBAlf56IdOTQEa76rFUkwB9khS6sAAAgBi/+wD6QROABUAHQAABSIAPQE0ADMyEh0BIR4BMzI2NxcOAQMiBgchNTQmAk7k/vgBD7/c3f0zBJ2RZZM7STu5pmmRFAIOgBQBJ/Qt7AEu/v7geabMODN7OksDzKmHGnmdAAEAQgAAAs4GLQAXAAAzESM1MzU0NjMyFhcHLgEjIgYdATMVIxHsqqqvoyJDKxcTMh1aVebmA62Ni6+5CwqRBQZoZYuN/FMAAAIAZv5MA/cETgAeACwAABMQEjMyFhc3MxEUBiMiJic3HgEzMjY9AScOASMiAjUzFBYzMjY3ES4BIyIGFWbezWqYNhKc8uRUs00vQpVMk4wDNJRkyt+5ipNeeyknfF2TjAIKAQoBOlJRj/vU1uwsKoohKZ2PaQFGRgEa76nGU04B8EpT678AAAABAJEAAAP6BhgAFAAAARc+ATMyFhURIxE0JiMiBgcRIxEzAUsDN6Jnsbu5dHdXiCy6ugOnAVBYzN39WwKnjYBSSPzmBhgAAAACAKEAAAFaBhgAAwAHAAAhIxEzESM1MwFaubm5uQQ6ARjGAAAC/7b+SwFnBhgADwATAAABERQGIyImJzceATMyNjUREyM1MwFnp5sgMh0ODzURRk+zubkEOvttqrIJCZYFCFpnBJMBHMIAAAABAJIAAAQUBhgADAAAASMRIxEzETMBMwkBIwHNgbq6fgE72/6GAa7bAfb+CgYY/HUBrf4T/bMAAAEAoQAAAVoGGAADAAAhIxEzAVq5uQYYAAEAkAAABnIETgAkAAABHwE+ATMyFhc+ATMyFhURIxE0JiMOAQcVESMRNCYjIgYHESMRATcNAzShcHGaJzSndam7um9xb4ALunJwYXcgugQ6kAFPVmVqYW7c6P12AoulhAGSbwH9TwKNnYpQSvzmBDoAAAAAAQCRAAAD+AROABQAAAEfAT4BMzIWFREjETQmIyIGBxEjEQE4DQM1o2uxvLpxeVuFKboEOqIBV2DI2/1VAqeVeFZN/O8EOgAAAgBg/+wEJwROAA0AGwAAEzQAMzIAHQEUACMiADUzFBYzMjY9ATQmIyIGFWABAOLkAQH/AOPk/wC6lJaUlpeVlJQCKPUBMf7P9Rj2/tIBLvax3t+wGK7i4q4AAAACAJH+YAQkBE4AEgAgAAABFAIjIiYnBxEjETMXPgEzMhIRIzQmIyIGBxEeATMyNjUEJNvJZ5Y1A7qfEjaaa8zbupCTW3smKHldko8B9fD+50NDAf3vBdqKTlD+x/71v+tQRv32R0zLqQAAAAACAGT+YAPmBE4AEgAgAAATEBIzMhYXNzMRIxEnDgEjIgI1MxQWMzI2NxEuASMiBhVk2sxkkzYPoLkDNI5gydu5h5JYdikpd1WTiAIKAQoBOklIffomAgoBQD8BGu+qykpGAhpCS+3BAAEAkQAAArEETgAQAAABJyIGBxEjETMfAT4BMzIWFwKYbFVuHrqmEgMtiFwYLw0DkwZOSfz+BDqdAVReBwQAAAABAGb/7APCBE4AJQAAATQmJy4BNTQ2MzIWFSM0JiMiBhUUFhceARUUBiMiJjUzHgEzMjYDCWSRyMHatsDcuXppbmlaks/D47/R6bkGlGdweQEeRFUfK5CBhra/kkpxXUNDSR8tlIGSrc2TbV5VAAAAAQAd/+wCTgVBABcAAAERMxUjERQWMzI2NxcOASMiJjURIzUzEQFy0NA2LxgxFRkaXS5xgJubBUH++Y39alA/BwaDERWNngKWjQEHAAEAjf/sA/YEOgAUAAAlJw4BIyImNREzERQWMzI2NxEzESMDQwMynm20wrpocXCJJLmmngFXXN30An39gbKDV1MDCvvGAAAAAAEALgAAA98EOgAJAAABFzM3ATMBIwEzAfIWAxcBAL3+cI3+bL0BOl1dAwD7xgQ6AAEAMAAABdgEOgAVAAABHwE3EzMTFzM3EzMBIwMnIwcDIwEzAaAbAyHaltojAyKvuP7GltYvAy3Sl/7GuQGGlgGXArT9TKSkArT7xgKbwcH9ZQQ6AAEALgAAA88EOgALAAABEzMJASMLASMJATMB/PDY/p8BbNX6+tgBbf6e1gKnAZP96f3dAZ7+YgIjAhcAAAEAG/5LA+QEOgAVAAABFzMBMwEOASMiJic3JhYzMjY/AQEzAdkmAwETz/42KZSEGEYUEwNOC0M+LjH+a88BhpADRPsfb58LBZUBBktrdQQkAAAAAAEAXgAAA7gEOgAJAAAlIRUhNQEhNSEVAT4CevymAlH9twMulZWFAx6XgQAAAQBA/pACngY9AB4AAAEuAT0BNCYjNTI2PQE0NjcXDgEdARQGBx4BHQEUFhcCeMSgZm5uZp/FJnNeUldXUl5z/pA4667Pc3yPenTQrus4cSWziNBrni0unmrPh7MlAAAAAQCv/vIBRAWwAAMAAAEjETMBRJWV/vIGvgAAAAEAE/6QAnIGPQAeAAAXPgE9ATQ2Ny4BPQE0Jic3HgEdARQWMxUiBh0BFAYHE3JgV19fV19yJsSgZW9vZaDE/iWzh89unCsqnm/QiLMlcTjqr9B0eo98c8+u6zgAAQCCAZME7wMhABkAAAEUBiMiJicuASMiBhUnNDYzMhYXHgEzMjY1BO+qg1uOWjxhNEZfh6eFWpJXPGA1RWEC5IvGQUsyMGpPEoq9REg1LXJRAAAAAgCQ/ooBTQQ6AAMABwAAASMRMxMjNTMBS7m5Ar29/ooD0gESzAAAAAEAbv8LA/8FJgAhAAAlMjY3Mw4BBxUjNSYCPQE0Ejc1MxUeARcjLgEjIgYdARQWAlBnlwGwAcqWurq8vLq6oMABsAGOcKGHhoF4XILIGOjsIwEfzyrNAR8l494Y0phoit+nKqvcAAAAAQBGAAAEUQXFACEAAAEXFAYHIQchNTM+ATUnIzUzAzQ2MzIWFSM0JiMiBhUTIRUBqQYhIALjAfw2CjQyBqqkCtu+ytW6fWhpdgoBpwJqmF2jPZWVDcVrmJUBEdDlz7R8cZSL/u+VAAACAGn/5QVbBPEAIwAvAAAlDgEjIiYnByc3LgE1NDY3JzcXPgEzMhYXNxcHHgEVFAYHFwcBFBIzMhI1NAIjIgIET0+5aGm3ToaCjDQ1OTiUgpNMsWRksU6VhJg2OTUxj4T8YPS0svT0srT0cEFDQkCIhY5Os2ZpuVGXhpY7PT47mIebULdoZLJOkYYCe8P++AEIw8EBB/75AAEAIAAABKsFsAAWAAAJATMBIRUhFSEVIREjESE1ITUhNSEBMwJmAXHU/loBP/57AYX+e7n+gwF9/oMBPv5Z1QMNAqP9L3irdv66AUZ2q3gC0QAAAAIAk/7yAU0FsAADAAcAABMRMxkBIxEzk7q6uv7yAxb86gPIAvYAAAACAFr+EQR4BcUAMQBDAAABFAYHHgEVFAQjIiQ1NxQWMzI2NTQmJy4BNTQ2Ny4BNTQkMzIEFSM0JiMiBhUUFhceASUuAScOARUUFhceARc+ATU0JgR4YFtJRv785OH+17rDjY+fjdL13l5aR0QBBuPsAQC5oZKZloPa+dv94jROIlBMh9sxTCNPVJIBr2CJKTSFZa7Ay+QClYZ3X19jQEGztF2LKjOHZKjG3dJ7nndfZ2E8Ra9UDRgOE2NJaGU9DhgMFGNIXmoAAAIAqQTsA1IFsAADAAcAAAEjNTMFIzUzA1LT0/4r1NQE7MTExAAAAAADAFv/6wXmBcQAGwAnADMAAAEUBiMiJj0BNDYzMhYVIzQmIyIGHQEUFjMyNjUlEAAzMgAREAAjIgADEAAhIAAREAAhIAAEX62eori4op6ukltfY2dnY19a/QEBVv37AVf+qfv9/qpzAZgBLgEsAZn+Z/7U/tL+aAJUnpzRsnew052cY1eNdnh5jFZmhf7w/pcBaQEQAQ4BZ/6Z/vIBQQGq/lb+v/6+/lQBqwAAAgB6ArQDDwXFAB8AKgAAAS4BJw4BIyImNTQ2OwE1NCYjIgYVJzQ2MzIWFREUFhclMjY3NSMiBhUUFgJqCAoDInBQeYCko5E9P0hMoaeOh5gMDv6LN24TkE9WPALCFTAaMTx4bG92NUNFNzUOaIGMiP7GM1creTsmckIwMDEAAP//AGYAdwNkA5EAJgFy+t0ABwFyAUT/3QABAH8BeAO+Ax8ABQAAASMRITUhA766/XsDPwF4AQifAAQAWv/rBeUFxAALABcAMgA7AAATEAAhIAAREAAhIAATEAAzMgAREAAjIgABESMRITIWFRQGBx4BHQEUFhcVIy4BPQE0JiMnMz4BNTQmKwFaAZgBLgEsAZn+Z/7U/tL+aHMBVv38AVb+qvz9/qoBwI0BFJqoQkBDOgcKkQoEQ1CjnEVbTmeHAtkBQQGq/lb+v/6+/lQBqwFD/vD+lwFpARABDgFn/pn+qf6sA1KAgD9dIBtoTDgqQBUQFk8rNktDfgE/O0w7AAAAAQB4BSMDQgWwAAMAAAEhNSEDQv02AsoFI40AAAIAggPBAnwFxQALABcAABM0NjMyFhUUBiMiJjcUFjMyNjU0JiMiBoKUa2mSkmlrlH1KODdJSTc3SwTBbJiYbG2Tk205SUg6OktMAAACAGEACQP1BPMACwAPAAABIRUhESMRITUhETMBITUhAooBa/6Vp/5+AYKnAUz8vQNDA1aW/mEBn5YBnfsWlQAAAQBxApsCxgXHABgAAAEhNQE+ATU0JiMiBhUjNDYzMhYVFAYPASECxv20AS9ILDo/SEqhpI+IlFd1qAF6Apt+AQg+Siw0P0E1aYx9dlBtbJIAAAAAAQBpAo8C4AXGACgAAAEyNjU0JiMiBhUjNDYzMhYVFAYHHgEVFAYjIiY1MxQWMzI2NTQmKwE1AadIQUlKO0qip4CSo0U/SEqwk4C0o01ETVRKTYMEbzo2LjoyKmV2dXA4WhoYXUZxenR1MTo7M0E5egAAAAABAIEEvAIeBcYAAwAAATMBIwE94f7wjQXG/vYAAQCa/mAD7gQ6ABYAAAERFBYzMjY3ETMRIy8BDgEjIiYnESMRAVNxa2p7ILqmCgMrgVhMbiq5BDr9kcOITUwDIfvGbgFBQyIo/isF2gAAAAABAEIAAAM/BbAACgAAIREjIiY1NBIzIREChVfu/v/tARECCP/V0wEB+lAAAAEAogJwAWEDQQADAAABIzUzAWG/vwJw0QAAAAABAHT+TQGqAAAADwAAIQceARUUBiMnMjY1NCYnNwEdDENWm5QHSlxIWiA1C1BSYXBqMTMyJgeGAAEAXgKZAYQFxQAFAAABIxEHNSUBhKSCASYCmQKUAYIXAAAAAAIAegKzAycFxQANABsAABM0NjMyFh0BFAYjIiY1MxQWMzI2PQE0JiMiBhV6t5+gt7afoLijWltYWltZWVoEdpa5uJd1mLa3l1tra1t1WGxsWAAA//8AbwCZA3gDtAAmAXMWAAAHAXMBagAA//8AtAAABdwFxAAnAckAVgKYACcBdAEVAAgABwGXArgAAAAA//8AtAAABe4FxAAnAXQBIgAIACcByQBWApgABwHKAygAAAAA//8AewAABp0FxwAnAXQB0QAIACcBlwN5AAAABwHLABICmwAAAAIAcf52A6YEOwAZAB0AAAEOAQcOARUUFjMyNjczDgEjIiY1NDY3PgE1AzMVIwJ6Ai1mZ1Nxb2CBAbkD47XH04h5NxcIxMQCoZRpXXd9XG9yZWSpwMW3gtB1NVRfAZrMAAL/8gAAB1cFsAAPABMAACkBAyEDIwEhFSETIRUhEyEBIQMjB1f8jQ/9zM3iA3ADt/1NFAJO/bgXAsD6rQHKHwMBYv6eBbCW/iaV/eoBeQLcAAAAAAEAWQDiA90EdgALAAATCQE3CQEXCQEHCQFZAUr+uHcBSQFJd/63AUt3/rX+tQFcAVEBT3r+sQFPev6x/q96AVH+rwAAAwBz/6ME/gXsABkAJAAvAAABEAAhIiYnByM3LgE1ERAAITIWFzczBx4BFQEUFhcBLgEjIgIVITQmJwEeATMyEjUE/v67/vZWlUJdj4xWWQE6AQJip0lUj4ZOUvwuKSoCLDR9S7TPAxkkIv3XLmtAvdkCV/70/qAqKpzqV+iLAQEBCwFiNTKO4Ffcgf7/WJg9A6UsLv76yU2JO/xhIyMBBcwAAAACAKYAAARdBbAADAAVAAABESEyFhUUBiMhESMRExEhMjY1NCYjAWABFer+/ur+67q6ARWZlZWZBbD+2ujAwef+xgWw/kX92px1dp8AAQCL/+wEagYPACcAACEjETQ2MzIWFRQGFRQAFRQGIyImJzceATMyNjU0ADU0NjU0JiMiBhUBRLniuqHEgAFez7JTsSgrKoNAcmr+oopnRW5/BDrh9Kiod9g8VP7ojqmlKx2ZHS9eUlcBGpRT2U5fa6ScAAADAD3/6wZ8BE4ALAA3AD8AAAUiJicOASMiJjU0NjsBNTQmIyIGFSc0NjMyFhc+ATMyFh0BIR4BMzI2NxcOASUyNjc1IyIGFRQWASIGByE1NCYE7ovKQznao6224d/qaWdvfbjiwnWsMkGuadji/S4EnaNqhkxAObX8SFCnLOiAiWcDZXeNEAIVexVhXVJsq5miqlVweG5SEpC0UlJQVP/ndarJODOFL0yVWDrfcVVOXQM4q40ffpsAAgBM/+sELQXtACAAMAAAARYSHQEUACMiADU0ADMyFhc3LgEnBSc3LgEnNx4BFzcXAzQmNS4BIyIGFRQWMzI2NQNTanD+59rd/u8BDtpXlzkDF1Y+/utJ+iZPKzlMhj3sSbgBJKB7jKOnkoyqBQd8/rvOYfr+zgET0+oBFkA3AWqmQZ5jjxgnEJ4XRTGHY/z2CCIJPVHPm4jJ47QAAwBHALcELQSvAAMABwALAAABITUhJSM1MxEjNTMELfwaA+b+bb29vb0CWrTax/wIxwAAAAMAYP95BCcEuQAZACQALwAAEzQAMzIWFzczBx4BHQEUACMiJicHIzcuATUzFBYXAS4BIyIGFSE0JicBHgEzMjY1YAEA4jpmMEp7aFpe/wDjNVsrSXtkZGW6LC8BVx9EJ5SUAlQnJ/6uGjkjlJYCKPUBMRcVl9JL5JAY9v7SERGVy0nqmWCbNwK3ERLirlaROP1SDQvfsAAAAgCa/mAELQYYABMAIQAAARQCIyImJwcRIxEzERc+ATMyEhEjNCYjIgYHER4BMzI2NQQt28lnljUDurkDNJZmzNu6kJNbeicoeV2SjwH18P7nQ0MB/e8HuP2oAUZJ/sf+9b/rUEb99kdMy6kAAgAeAAAFiQWwABMAFwAAATMVIxEjESERIxEjNTMRMxEhETMBITUhBPeSkrn9K7mSkrkC1bn8cgLV/SsEjY38AAKG/XoEAI0BI/7dASP9a+UAAAAAAQCbAAABVQQ6AAMAACEjETMBVbq6BDoAAQCaAAAEPwQ6AAwAAAEjESMRMxEzATMJASMBvmq6ulsBjd/+NwHt6QHP/jEEOv41Acv9+P3OAAABACYAAAQVBbAADQAAASUVBREhFSERBzU3ETMBXwEU/uwCtvyRgIC5A0dYn1j97ZUCbSifKAKkAAEAIwAAAgsGGAALAAABNxUHESMRBzU3ETMBcZqauZWVuQNnO6A7/TkCgDmgOQL4AAEApP5LBO0FsAAYAAABERQGIyImJzceATMyNj0BASMRIxEzATMRBO2omyAzHQ4OQhJCSP0tA7q6AtMDBbD596qyCQmRBQhnX1kEb/uRBbD7kQRvAAEAkf5LA/AETgAgAAABHwE+ATMyFhURFAYjIiYnNx4BMzI2NRE0JiMiBgcRIxEBNw0DNZ5psbynmyA1Hg4OQxRCR3N5XH0nugQ6lQFRWcnc/P6qsgkJmgUHX10C/pZ5RkH80wQ6AAAAAgBp/+sHOAXFABcAJQAAKQEOASMiABkBEAAzMhYXIRUhESEVIREhBTI2NxEuASMiBhURFBYHOPyCXoFF/f7QAS79R45RA3T9BAKg/WADBvteOHE6OnE6scHDCgsBRgEPATABDgFHDAmW/iKW/e8VCAkEjQgK49v+ztzkAAMAYf/rBwAETgAhAC8ANwAAEzQSMzIWFz4BMzISHQEhHgEzMjY3Fw4BIyImJw4BIyIANTMUFjMyNj0BNCYjIgYVASIGByE1NCZh/+OHyEBCwnHc3f0yBJ2QZ5U4Sjy6iIfMQEHFheT/ALmVlpSVlpWVlAQtapEUAg6AAij1ATFxaGdy/v3feabNOTN7O0ttZ2dtAS/2sd/fsRiv4eKuAZCphxp5nQAAAAEAoAAAAoIGLQAPAAAzETQ2MzIWFwcuASMiBhURoLCjIkMqFxUsGltcBMWwuAsKjAUGbWX7OwAAAf/k/ksCvAYtACMAAAEjERQGIyImJzceATMyNjURIzUzNTQ2MzIWFwcuASMiBh0BMwJgy6ebIDMcDg5AE0FHq6uvoyJDKhYUMhxaVcsDrfv6qrIJCZEFCGdfBAaNi6+5CwqRBQZoZYsAAAAAAgBx/+sFnQY2ABcAJQAAARAAISAAGQEQACEyFhc+ATUzFAYHHgEVJzQCIyICFREUEjMyEjUE/P67/vb+/v7GAToBAnrKUGFUp32ALS+52ry0z8+0vdkCV/70/qABYAEMAQEBCwFiUUwKhn6jwyBMrGACyQEG/vrJ/v3L/voBBcwAAAAAAgBg/+wEugSwABcAJQAAEzQAMzIWFz4BNTMUBgceAR0BFAAjIgA1MxQWMzI2PQE0JiMiBhVgAQDia6hBVziVZHUjI/8A4+T/ALqUlpSWl5WUlAIo9QExR0QIcnOUqRpCmFcY9v7SAS72sd7fsBiu4uKuAAABAJb/6wYmBg0AGQAAARU+ATUzFAYHERQEIyIkNREzERQWMzI2NREE115Kp5+w/tL79P7cur2hqccFsM0WkITG1xb9e/L4+PID2/wlq6qqqwPbAAABAI3/7AUQBJEAHAAAARQGBxEjLwEOASMiJjURMxEUFjMyNjcRMxU+ATUFEHqgpg0DMp5ttMK6aHFwiSS5YDUEkaWbCfy4ngFXXN30An39gbKDV1MDCooJYnYAAAH/tP5LAWUEOgAPAAABERQGIyImJzceATMyNjURAWWnmx8yHg4OQBNBSAQ6+22qsgkJkQUIaF4EkwAAAAIAYv/sA+kETwAVAB0AAAEyAB0BFAAnIgI9ASEuASMiBgcnPgETMjY3IRUUFgH/4gEI/vG/3dwCzQWdjmmUOEk7uqVpkBX9838ET/7X8y3t/tMBAQHgeaXOOjN8Okz8M6eIGXqcAAAAAQCpBOQDBgXpAAgAAAEVIycHIzU3MwMGmZaVmfR0BPwYlpYZ7AAAAAEAjATkAvcF6QAIAAABNzMVByMnNTMBwJWi/nP6ngVTlhLz8RQAAAABAIEEpQLYBbAADQAAARQGIyImNTMUFjMyNjUC2KCLjKCXRk9NSAWwepGRekRSU0MAAAAAAQCgBOoBbwWwAAMAAAEjNTMBb8/PBOrGAAAAAAIAiwRfAhwF4AALABcAABM0NjMyFhUUBiMiJjcUFjMyNjU0JiMiBot0VlRzclVXc2M8Kys5OSsrPAUeVG5uVFZpaVYsOzotLTw8AAABADL+UAGSADcAEwAAIQ4BFRQWMzI2NxcOASMiJjU0NjcBflNYIysdLxgNIEo2V2mAhz1lPCQmEAx4ExliW1aYPAAAAAEAggTiAzQF8QATAAABFAYjIiYjIgYVJzQ2MzIWMzI2NQM0dFtJlzUsOmhyXDukNis8BdJff19BMBpehWBBMQACAGgE5ANIBe4AAwAHAAABMwEjAzMDIwJn4f7OqUfO9pYF7v72AQr+9gAAAAIAtv6HAen/qwALABcAABc0NjMyFhUUBiMiJjcUFjMyNjU0JiMiBrZZQ0BXV0BDWVcnHhsmJhseJ+lBU1NBQFBQQBslJBweJiYAAAAB/NoEuv4HBhMAAwAAASMDM/4HfbCxBLoBWQAAAf13BLv+pAYUAAMAAAEzAyP99625dAYU/qcA///8kwTi/0UF8QAHAKD8EQAAAAAAAf1eBNn+lAZzAA8AAAEnPgE1NCYjNzIWFRQGDwH9dAFQQVpMB5SbVkUBBNmXBR8nKSZpZFdISAlGAAAAAvwnBOT/BwXuAAMABwAAASMBMwEjAzP+Aqn+zuEB/5b2zgTkAQr+9gEKAAAB/UP+sf4S/3YAAwAAASM1M/4Sz8/+scUAAAAAAQDDBPgBygZ4AAMAAAEzAyMBAsitWgZ4/oAAAAMAoQTtA1wGiAADAAcACwAAASM1MwUjNTM3MwMjA1zAwP4GwcF/036FBO3Dw8PY/vgAAP//AKICcAFhA0EABgB2AAAAAQC1AAAEMAWwAAUAAAEhESMRIQQw/T65A3sFGvrmBbAAAAAAAgAgAAAFbQWwAAMABgAAATMBITchAQKJoQJD+rP7A1v+YQWw+lCVBDcAAAADAHP/6wT+BcUAAwARAB8AAAEhNSEFEAAhIAAZARAAISAAESc0AiMiAhURFBIzMhI1A8D9/AIEAT7+u/72/v7+xgE6AQIBCgFFudq8tM/PtL3ZApSW0/70/qABYAEMAQEBCwFi/p7+9QLJAQb++sn+/cv++gEFzAABADQAAAUCBbAABwAAASMBIwEzASMCnQT+Wb4CFqICFr4EqPtYBbD6UAAAAAMAegAABCAFsAADAAcACwAANyEVIRMhFSEDIRUhegOm/FpVAvP9DVMDlvxqlZUDPJYDCpYAAAAAAQC2AAAE/wWwAAcAACEjESERIxEhBP+5/Sm5BEkFGvrmBbAAAQBFAAAERAWwAAwAAAkBIRUhNQkBNSEVIQEC7v46Axz8AQHl/hsDzf0XAcUCzv3Ilo4CTQJHjpb9zQAAAwBOAAAFbAWwABUAHgAnAAABMzIAFRQAKwEVIzUjIgA1NAA7ATUzAyIGFRQWOwERMxEzMjY1NCYjAzoF9AE5/sbzBboH9P7JATf0B7rBtL++tQe6B7LAwLIE9v7T9PX+0bGxAS319AEvuv6x1Lq70gMb/OXUu7nTAAAAAAEAXQAABRgFsAAXAAABPgE1ETMRFAAHESMRJgA1ETMRFBYXETMDD52zuf7n8Lrp/vG4qpa6AgEX1LICEv3u+v7dF/6WAWoYASL6AhL97rHTGQOvAAEAcgAABM0FxQAjAAAlNhIRNTQmIyIGHQEQEhcVITUzJgI9ARAAMzIAERUUAgczFSEC4ZCfw7CxwaOT/hXwc4EBLv38ATGBcvb+FJsbARwBAXbu+Pjudv7//uMam5VjAS+sdAEhAV3+o/7fdKz+0WOVAAAAAgBk/+sEdwROABwAKgAAAREUFjMyNjcXDgEjIiYnDgEjIgI9ARASMzIWFzcBFBYzMjY3ES4BIyIGFQPuKiYJEgcXHTkkSlsUNppsydvazGiYNhH9zIeSXXkpKXlbk4gEOvzsV0EDA4gTDkxYUlIBG+8VAQoBOlFPjP27qstgWgHBWmPtwQAAAAIAoP5/BE0FxAAUACoAAAEyFhUUBgceARUUBiMiJicRIxE0JBMyNjU0JiMiBhURHgEzMjY1NCYrATUCXcXnYll7hPjOVps8ugEDtoF2f3Rxki2QXYmXiHiPBcTXsV2XLyzChNTnLjH+NAWxqur9lHpuYoyPb/zENzydhXWrlQAAAQAu/mAD3wQ6AAsAAAEzAREjEQEzARczNwMivf6Fuv6EvQEHFgMXBDr7//4nAeAD+v0AXV0AAAACAGD/7AQnBhwAIQAvAAATNDYzMhYXBy4BIyIGFRQWFxYSHQEUACMiAD0BNDY/AS4BExQWMzI2PQE0JiciBhXdxrRNm1ApPYxKWGNihdjQ/wDi5f8Au4wEZWk+lJaTlaODlZcE9oqcLSiAGCNIQDNdLEv+7s4X7f7dASPtF7D4Igsni/1iqNTUqBeH3BrXpgABAGP/7QPsBEwAKQAAASIGFRQWMzI2NTMUBCMiJjU0Njc1LgE1NDYzMhYVIzQmIyIGFRQWOwEVAhuBfIx9eJS5/va7zfdlZFdf5M26+bmPa3x7cHvNAeBVW01kcFCpqamaXn0gAyN3S5mgrZJKYmBGTVaQAAEAbf6BA8MFsAAgAAABFQEOARUUFh8BHgEVDgEHJz4BNTQmLwEuATU0EjcBITUDw/6igm5HWYGXbAJvQGIzL0dSWrKHhZIBGf2BBbB2/lKa4JFkYRMmLENtSqg0UzpRLCQyFhcvn6B6ATisAUCWAAABAJH+YQPwBE4AFAAAAR8BPgEzMhYVESMRNCYjIgYHESMRATcNAzWeabS5uXR4XH0nugQ6lQFRWcDl+7gERJd8SEL80gQ6AAADAHr/6wQUBcUADQAWAB8AAAEQAiMiAhkBEBIzMhIRBSE1NCYjIgYVASEVFBYzMjY1BBTx29r08trb8/0fAiiLiomKAij92IyJiokCLP7j/twBJQEcAVcBHAEm/tr+5GOLxMDAxP7ghcTCwMYAAAAAAQDD/+sCawQ5AA8AAAERFBYzMjY3Fw4BIyImNREBfDcyGS4WKS1UNHt4BDn81E85DQyAHhWLoQMiAAAAAQAl//AEOwXuACEAADMjAScuASMiBiMnPgEzMhYXAR4BMzoBNxcOASMiJicDIwfzzgGKYBg0LQocCQERRhplXh0BsxQtJA0SBwYOKhZiZi/vAyAEBes6LgKMBAhQWPuoNSsClAQIT38CZ3wAAQBl/ncDqQXDADEAAAEuASMiBhUUFjsBFSMiBhUUFh8BHgEVDgEHJz4BNTQmLwEuATU0Nj8BLgE1NCQzMhYXA3I/azeal5qrjY3CxJ59a5B0AW9AYjkoRVY35N2hlQF2gAED50SIMQUKERNrUmpylp2mgJUcFyJLbUmkNlNCQTYrKxINNMDUlsYuAymWYaSyFhEAAAEAT//rBM4EOgAXAAABIxEUFjMyNjcXDgEjIiY1ESERIxEjNSEEXX43MhkuFiktVDR7eP5luoIEDgOk/WlPOQ0MgB4Vi6ECjfxcA6SWAAAAAgCR/mAEHwROABEAHwAAARQCIyImJxEjETMnNBIzMhIRIzQmIyIGFREeATMyNjUEH9fIZpc4ugEB+8Tl6rmFkYOCKHldkYwB9fD+5z0//fgD4gL7AQ/+yf7zwuzlkf7SR0zLqQAAAAABAGX+igPhBE4AIQAAATIWFSM0JiMiBh0BFBYXHgEVDgEHJz4BNTQmJy4BPQE0EgI9vuavfneQj661m3oCbj9iOChDWfTw+gROzrpshuWhKo23MCtObkinNFNBQTYtKhQ0/tYq6AE0AAIAYP/sBHkEOgARACAAAAEhBx4BHQEUACMiAD0BNAAzIQEUFjMyNj0BNCYrAQ4BFQR5/usBX2X+/N/k/wABAOICN/yhlJaUlpeVAZSTA6MDSNCFF9j+2AEu9hjsASb91rHe37AYpdYB1aUAAAEAUf/rA9kEOgATAAABIREUFjMyNjcXDgEjIiY1ESE1IQPZ/o03MhkuFiktVDR7eP6kA4gDpv1nTzkNDIAeFYuhAo+UAAAAAAEAj//rA/YEOgAVAAABERQWMzISNS4BJzMeARUUAiMiJjURAUlqX42eA0A4wzM+8OvBywQ6/W+djAEDroH8jG79nv3+t9fpAo8AAAACAFf+IgVMBDoAGQAjAAAFJAI1NBI3Fw4BBxQWFxE0NjMyABUUAAURIxM+ATUuASMiBhUCbP7p/n+BZVdQBKS3iHPMARn+9/7iubm9sQScjCAiERkBO/CsAQNYg0vIcaLwGwLSaHr+z+nn/s0X/jMCZBnnmqHiKRwAAAAAAQBf/ikFQwQ6ABsAAAERPgE1LgEnMx4BFRQABREjESYAGQEzERQWFxEDHL+vA0I6wjVB/vv+3rn8/vi6rZ0EOfxNGvOlgPmJbfmc9v7CFv47AccZASgBIwHm/hjZ2hgDsgAAAAEAev/rBhkEOgApAAABDgEHFBYzMjY1ETMRFBYzMjY1LgEnMx4BFRACIyImJyMOASMiAhE0NjcBxENLA2h0Z3a7dWhzaQRLQsM9SrzPeaIoAymieNC7ST4EOon/g8LtobYBK/7VtqHsw4P/iW/9n/7+/r51dXV1AUIBAp//bQAAAgB0/+sEqQXFABkAJAAAJTI2NyYkPQE0NjMyFhUREAAjIgAZATcRFBYTFBYXETQmIyIGFQKFrL4B3v76uJeesP7X+/D+37q24puPSktGT4br2An2xD6wy8e0/gL+5f66AVQBDQKYAv1mzfkDhH2hCAFmcW5ucQAAAf/nAAAEWQW7ACMAAAE+ATMyFhcHLgEjIgYHAREjEQEuASMiBgcnPgEzMhYXExczNwLsNHhTIjIaFwYXDyQ5FP7XuP7WFTkjEBYFFxgxI1N3NrQXAxcE139lCg6SAwUkLf18/bwCRAKELSQFA5IOCmV//mhUVAAAAgBK/+sGGwQ6ABcALQAAASMeARUQAiMiJicjDgEjIgIRNDY3IzUhAS4BJyEOAQcUFjMyNj0BMxUUFjMyNgYbiR8irLt5oicEKKF4vKshIHUF0f7+Aygk/LwlKAJYYGd1u3RpXlgDo1W1av7+/r52dXV2AUIBAmq1VZf99V23YGK2XMLtobb8/Lah7AABACv/9QWwBbAAGwAAASERPgEzMgQVFAYjJzI2NS4BIyIGBxEjESE1IQSV/fNSmTn4AQz49QKojgKkpUKaSLr+XQRqBRr+LBce7N/Z4o+Zk5aWGhf9VQUalgAAAAEAh//sBM0FxgAfAAABBgAjIgAZARAAMzIEFyMuASMiAh0BIRUhFRQSMzI2NwTNGP7v8fz+0AEw/PUBDRi5GaOlrMcCO/3Fx6ymohkBztz++gFYARQBAQETAVr96Kap/vfMMJU+zv73pKkAAAIAMgAACEUFsAAWAB8AAAERITIWFRQGIyERIQMKASsBNTMyEhsBAREhMjY1NCYjBPQBaOz9/ez93v3/AwTO/zMonIMEBANzAWialpaaBbD9xfLJyfEFGv3r/mP+mJUBFwFZAqv9MP21qH98qAAAAAACALUAAAhPBbAAEgAbAAABIREzESEyFhUUBiMhESERIxEzAREhMjY1NCYjAW4C17kBaO38/ez93/0pubkDkAFonJWVnAM3Ann9lt/AwOcCov1eBbD9Af3ulXV0lAAAAAABAEAAAAXWBbAAFwAAASERPgEzMhYVESMRNCYjIgYHESMRITUhBKv961CeavT0uY6hXKRYuf5jBGsFGv5DFRXP8f45AceqgBYV/ToFGpYAAAEAtf6aBP4FsAALAAATMxEhETMRIREjESG1uQLXuf4/uf4xBbD65QUb+lD+mgFmAAIApgAABLEFsAAMABUAAAEhESEyFhUUBiMhESEBESEyNjU0JiMEIf0+AWju/P3t/d8De/0+AWiclJScBRr+PuHHyOgFsP0T/dKffnmYAAAAAgA0/poFyQWwAA4AFQAAJTMRIxEhESMRMzYSGwEhAQYCByERIQUIwbn73bl5T4MIIANh/ToJaFQC0v4Jlf4GAWX+mgH7WgFOAS0CRv269/6WdASFAAAAAAEAGwAABygFsAAVAAABIxEjESMBIwkBMwEzETMRMwEzCQEjBJ2buaL+XOgB7v472QGGprmfAYbZ/joB7ucCn/1hAp/9YQMAArD9hAJ8/YQCfP1R/P8AAAABAFH/6wRnBcUAKAAAATI2NTQmIyIGFSM0JDMyBBUUBgceARUUBCMiJDUzFBYzMjY1NCYrATUCXqSWoqWErrkBGNPyAQ58coGD/t3z1f7VubOUprenqaUDMYN3dJCObrja08topDArqoHM3tTVd52VfIqAlgAAAAABALYAAAT+BbAACwAAATMRIxEjASMRMxEzBEW5uQP9Lbm5AwWw+lAEb/uRBbD7kgABADAAAAT0BbAADwAAAREjESEDCgErATUzMhIbAQT0uv3xEQ677jMojHEMFgWw+lAFGv3r/l3+npUBEQFfAqsAAQBR/+sEyAWwABQAAAEXATMBDgEjIiYnNx4BMzI2PwEBMwJOSwFY1/38PIiaGUEKBgpAEktCKCr+DtAC+8MDePtAhIEGA5ACAkpSVgQ+AAADAFP/xAXjBewAFQAeACcAAAEzIAAREAAhIxUjNSMgABEQACEzNTMDIgYVFBY7AREzETMyNjU0JiMDeBsBAgFO/rL+/hu5Hf79/rQBTAEDHbnWxtHRxh25HcTS0sQFHv69/vv++f67xsYBQwEHAQUBRc7+nenMzucDavyW6c7L6AAAAAABALT+oQWSBbAACwAAEzMRIREzETMDIxEhtLkC17mVEqX72QWw+uUFG/rp/ggBXwABAJcAAATEBbAAEwAAAREjEQ4BIyImNREzERQWMzI2NxEExLlhsHv187qMomm8ZwWw+lACYR0azvIBxv46q38cHAK4AAEAtAAABtIFsAALAAABESERMxEhETMRIREBbgH6uQH4ufniBbD65QUb+uUFG/pQBbAAAAABALT+oQdrBbAADwAAAREhETMRIREzETMDIxEhEQFuAfq5Afi5mRKm+gEFsPrlBRv65QUb+uX+DAFfBbAAAAAAAgARAAAFuAWwAAwAFQAAEyERITIWFRQGIyERIQERITI2NTQmIxECVQFo7vz97f3f/mQCVQFonJSUnAWw/ajhx8joBRv9qP3Sn355mAAAAAADALUAAAY1BbAACgATABcAAAEhMhYVFAYjIREzGQEhMjY1NCYjASMRMwFuAWju/P3t/d+5AWiclJScA1+5uQNY4cfI6AWw/RP90p9+eZj9PQWwAAACAKYAAASxBbAACgATAAABITIWFRQGIyERMxkBITI2NTQmIwFfAWju/P3t/d+5AWiclJScA1jhx8joBbD9E/3Sn355mAAAAAABALH/7AT2BcYAHwAAEzQAMzIAGQEQACMiADUzFBYzMhI9ASE1ITU0AiMiBhWxAST2+wEw/tD7+/7hubWsq8f9uwJFx6ustQPf1QES/qb+7f7//uz+qAEB46CvAQjNOJU2zgEJsKEAAAIAw//rBt4FxQAVACMAAAEQACEgABE1IxEjETMRMzUQACEgABEnNAIjIgIVERQSMzISNQbe/rv+9v7+/sbXubnXAToBAgEKAUW52ry0z8+0vdkCV/70/qABYAEMKP2BBbD9ZEQBCwFi/p7+9QLJAQb++sn+/cv++gEFzAACAGMAAARnBbAADQAWAAAhIwEuATU0JDMhESMRIQEhIgYVFBYzIQEoxQFVkJABC/UBz7r+qwFV/uujpKSdARsCbzbDktTi+lACPALeloiHowAAAAACAGH/6wQoBhEAGwApAAABMhId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ACkAAAAHAJoA0QFy//8AZv5MA/cGBAImAEkAAAAGAJpdGwAA//8Ahf/rBNsHYQImACkAAAAHAJwA/AGx//8AZv5MA/cGCgImAEkAAAAHAJwAiABa//8Ahf/rBNsHIgImACkAAAAHAJ0BoAFy//8AZv5MA/cFywImAEkAAAAHAJ0BLAAb//8Ahf3lBNsFxQImACkAAAAHAZEBq/62//8AZv5MA/cGbQImAEkAAAAHAaUBMwBW//8AtgAABP0HRgImACoAAAAHAJoA+gFd//8AkQAAA/oHRQImAEoAAAAHAJoAIwFc////xQAAAncHUQImACsAAAAHAKD/QwFg////ngAAAlAF+gImAIoAAAAHAKD/HAAJ////vwAAAokG+gImACsAAAAHAG7/RwFK////mAAAAmIFpAImAIoAAAAHAG7/IP/0////9QAAAkwHTAImACsAAAAHAJz/dAGc////zgAAAiUF9QImAIoAAAAHAJz/TQBF//8AIf5YAYEFsAImACsAAAAGAJ/vCAAA//8AAP5QAWAGGAImAEsAAAAGAJ/OAAAA//8AtwAAAYYHDQImACsAAAAHAJ0AFwFd//8Aw//rBf8FsAAmACsAAAAHACwCPwAA//8Aof5LA2MGGAAmAEsAAAAHAEwB/AAA//8AP//rBIsHOQImACwAAAAHAJoBhQFQ////tP5LAjkF3AImAJgAAAAHAJr/M//z//8Atv31BRwFsAImAC0AAAAHAZEBev7G//8Akv33BBQGGAImAE0AAAAHAZEBGP7I//8AtgAABCUG4AImAC4AAAAHAHMANwEa//8AoQAAAkMHXAImAE4AAAAHAHMAJQGW//8Atv33BCUFsAImAC4AAAAHAZEBdP7I//8AW/33AVoGGAImAE4AAAAHAZH///7I//8AtgAABCUFsQImAC4AAAAHAZEB2QTF//8AoQAAAq0GGAAmAE4AAAAHAZEBVgUs//8AtgAABCUFsAImAC4AAAAHAJ0Bxf3F//8AoQAAAq0GGAAmAE4AAAAHAJ0BPv23//8AtgAABP4HHwImADAAAAAHAHMB/wFZ//8AkQAAA/gF3QImAFAAAAAHAHMBaQAX//8Atv33BP4FsAImADAAAAAHAZEB2P7I//8Akf33A/gETgImAFAAAAAHAZEBQv7I//8AtgAABP4HRwImADAAAAAHAJsBFwFe//8AkQAAA/gGBQImAFAAAAAHAJsAgQAc////0gAAA/gGGAImAFAAAAAHAZH/dgUs//8Agv/rBQ0HDwImADEAAAAHAG4A7gFf//8AYP/sBCcFuAImAFEAAAAGAG5tCAAA//8Agv/rBQ0HYQImADEAAAAHAJwBGwGx//8AYP/sBCcGCgImAFEAAAAHAJwAmgBa//8Agv/rBQ0HYAImADEAAAAHAKEBdwFy//8AYP/sBD4GCQImAFEAAAAHAKEA9gAb//8AtQAABOIHHwImADQAAAAHAHMBkgFZ//8AkQAAAuIF3QImAFQAAAAHAHMAxAAX//8Atf33BOIFrwImADQAAAAHAZEBa/7I//8AWP33ArEETgImAFQAAAAHAZH//P7I//8AtQAABOIHRwImADQAAAAHAJsAqgFe//8AaQAAAtQGBQImAFQAAAAGAJvdHAAA//8AWv/rBIoHNAImADUAAAAHAHMBiQFu//8AZv/sA8IF3QImAFUAAAAHAHMBPAAX//8AWv/rBIoHWwImADUAAAAHAJoAiwFy//8AZv/sA8IGBAImAFUAAAAGAJo+GwAA//8AWv5EBIoFxQImADUAAAAHAHcBjf/3//8AZv5FA8IETgImAFUAAAAHAHcBQP/4//8AWv3jBIoFxQImADUAAAAHAZEBYv60//8AZv3kA8IETgImAFUAAAAHAZEBFf61//8AWv/rBIoHXAImADUAAAAHAJsAoQFz//8AZv/sA8IGBQImAFUAAAAGAJtUHAAA//8AO/31BIoFsAImADYAAAAHAZEBZf7G//8AHf3tAk4FQQImAFYAAAAHAZEArP6+//8AO/5VBIoFsAImADYAAAAHAHcBkAAI//8AHf5NAoEFQQImAFYAAAAHAHcA1wAA//8AOwAABIoHRgImADYAAAAHAJsApAFd//8AHf/sAuwGMQAmAFYAAAAHAZEBlQVF//8Alv/rBNcHUQImADcAAAAHAKAA3AFg//8Ajf/sA/YF+gImAFcAAAAGAKBnCQAA//8Alv/rBNcG+gImADcAAAAHAG4A4AFK//8Ajf/sA/YFpAImAFcAAAAGAG5r9AAA//8Alv/rBNcHTAImADcAAAAHAJwBDQGc//8Ajf/sA/YF9QImAFcAAAAHAJwAmABF//8Alv/rBNcHiAImADcAAAAHAJ4BYwGo//8Ajf/sA/YGMQImAFcAAAAHAJ4A7gBR//8Alv/rBNcHSwImADcAAAAHAKEBaQFd//8Ajf/sBDwF9AImAFcAAAAHAKEA9AAGAAEAlv5uBNcFsAAnAAABERQGBw4BFRQWMzI2NxcOASMiJjU0NjciBiMiJDURMxEUFjMyNjURBNeRhFNYIysdLxgNIEo2V2kuMgcbBvT+3Lq9oanHBbD8JaXaOD1lPCQmEAx4ExliWzRhLAH48gPb/CWrqqqrA9sAAAEAjf5QBAkEOgAnAAAhDgEVFBYzMjY3Fw4BIyImNTQ2Ny8BDgEjIiY1ETMRFBYzMjY3ETMRA/VTWCMrHS8YDSBKNldpUFYMAzKebbTCumhxcIkkuT1lPCQmEAx4ExliW0R8NpsBV1zd9AJ9/YGyg1dTAwr7xgAA//8ASAAABsIHRgImADkAAAAHAJoBrQFd//8AMAAABdgF7wImAFkAAAAHAJoBLgAG//8AHgAABNMHRAImADsAAAAHAJoAogFb//8AG/5LA+QF7wImAFsAAAAGAJorBgAA//8AHgAABNMHCgImADsAAAAHAGgAfAFa//8AYQAABG0HHwImADwAAAAHAHMBiAFZ//8AXgAAA7gFyAImAFwAAAAHAHMBMwAC//8AYQAABG0HDQImADwAAAAHAJ0BWQFd//8AXgAAA7gFtgImAFwAAAAHAJ0BBAAG//8AYQAABG0HRwImADwAAAAHAJsAoAFe//8AXgAAA7gF8AImAFwAAAAGAJtLBwAA////8gAAB1cHHwImAH8AAAAHAHMC0QFZ//8APf/rBnwF3gImAIQAAAAHAHMCggAY//8Ac/+jBP4HXQImAIEAAAAHAHMB4gGX//8AYP95BCcF3AImAIcAAAAHAHMBQAAW////8wAABC0EjQImAakAAAAHAdP/ZP97////8wAABC0EjQImAakAAAAHAdP/ZP97//8ARwAAA88EjQImAbgAAAAGAdMx9wAA//8AKQAABIMF3wImAaYAAAAHAEIAvwAa//8AKQAABIMF3AImAaYAAAAHAHMBeQAW//8AKQAABIMGAwImAaYAAAAGAJp7GgAA//8AKQAABIMGDgImAaYAAAAGAKB1HQAA//8AKQAABIMFyQImAaYAAAAGAGhVGQAA//8AKQAABIMGRQImAaYAAAAHAJ4A/ABl//8AKQAABIMGXQImAaYAAAAHAdQBDP/q//8Acv5HBCQEnQImAagAAAAHAHcBb//6//8AmwAAA8cF3wImAaoAAAAHAEIAjgAa//8AmwAAA8cF3AImAaoAAAAHAHMBSAAW//8AmwAAA8cGAwImAaoAAAAGAJpKGgAA//8AmwAAA8cFyQImAaoAAAAGAGgkGQAA////swAAAVQF3wImAa4AAAAHAEL/ZAAa//8AmwAAAjsF3AImAa4AAAAGAHMdFgAA////yQAAAiYGAwImAa4AAAAHAJr/IAAa////owAAAkwFyQImAa4AAAAHAGj++gAZ//8AmwAABHIGDgImAbMAAAAHAKAAlgAd//8Acv/vBFcF7wImAbQAAAAHAEIAwAAq//8Acv/vBFcF7AImAbQAAAAHAHMBegAm//8Acv/vBFcGEwImAbQAAAAGAJp8KgAA//8Acv/vBFcGHgImAbQAAAAGAKB2LQAA//8Acv/vBFcF2QImAbQAAAAGAGhWKQAA//8AjP/vBHAF4AImAbkAAAAHAEIA4AAb//8AjP/vBHAF3QImAbkAAAAHAHMBmgAX//8AjP/vBHAGBAImAbkAAAAHAJoAnAAb//8AjP/vBHAFygImAbkAAAAGAGh2GgAA//8AIAAABDAF2wImAb0AAAAHAHMBSQAV//8AKQAABIMFtwImAaYAAAAGAG55BwAA//8AKQAABIMGCQImAaYAAAAHAJwApgBZAAIAKf5QBIMEjQAaAB0AAAEzASMOARUUFjMyNjcXDgEjIiY1NDY3JyEDIwEhAwH/rwHVN1NYIysdLxgNIEo2V2lcYWP9+GnAAWIBlswEjftzPWU8JCYQDHgTGWJbSYM4//7wAaQCDQD//wBy/+8EJAXsAiYBqAAAAAcAcwFrACb//wBy/+8EJAYTAiYBqAAAAAYAmm0qAAD//wBy/+8EJAXaAiYBqAAAAAcAnQE8ACr//wBy/+8EJAYUAiYBqAAAAAcAmwCDACv//wCbAAAELQYEAiYBqQAAAAYAmy8bAAD//wCbAAADxwW3AiYBqgAAAAYAbkgHAAD//wCbAAADxwYJAiYBqgAAAAYAnHVZAAD//wCbAAADxwXKAiYBqgAAAAcAnQEZABoAAQCb/lADxwSNACAAAAEhESEVIw4BFRQWMzI2NxcOASMiJjU0NjcnIREhFSERIQNw/eUCckhTWCMrHS8YDSBKNldpTVAB/cwDLP2OAhsCFf5+kz1lPCQmEAx4ExliW0N6MwMEjZT+sP//AJsAAAPHBgQCJgGqAAAABgCbYBsAAP//AHL/7wRHBhMCJgGsAAAABgCadSoAAP//AHL/7wRHBhkCJgGsAAAABwCcAKAAaf//AHL/7wRHBdoCJgGsAAAABwCdAUQAKv//AHL95wRHBJ0CJgGsAAAABwGRAVL+uP//AJsAAARVBgMCJgGtAAAABwCaAIMAGv///5wAAAJOBg4CJgGuAAAABwCg/xoAHf///5YAAAJgBbcCJgGuAAAABwBu/x4AB////8wAAAIjBgkCJgGuAAAABwCc/0sAWf////f+UAFXBI0CJgGuAAAABgCfxQAAAP//AI8AAAFeBcoCJgGuAAAABgCd7xoAAP//AEH/7wQ9BfkCJgGvAAAABwCaATcAEP//AJv98wRABI0CJgGwAAAABwGRAP/+xP//AJsAAANqBcECJgGxAAAABgBzI/sAAP//AJv99QNqBI0CJgGxAAAABwGRANz+xv//AJsAAANqBI4CJgGxAAAABwGRAUUDov//AJsAAANqBI0CJgGxAAAABwCdATH9Jv//AJsAAARyBdwCJgGzAAAABwBzAZoAFv//AJv99QRyBI0CJgGzAAAABwGRAXP+xv//AJsAAARyBgQCJgGzAAAABwCbALIAG///AHL/7wRXBccCJgG0AAAABgBuehcAAP//AHL/7wRXBhkCJgG0AAAABwCcAKcAaf//AHL/7wRXBhgCJgG0AAAABwChAQMAKv//AJsAAAQ6BdwCJgG2AAAABwBzASYAFv//AJv99QQ6BI0CJgG2AAAABwGRAP/+xv//AJsAAAQ6BgQCJgG2AAAABgCbPhsAAP//AF3/7wQNBewCJgG3AAAABwBzAVQAJv//AF3/7wQNBhMCJgG3AAAABgCaVioAAP//AF3+RwQNBJ0CJgG3AAAABwB3AVj/+v//AF3/7wQNBhQCJgG3AAAABgCbbCsAAP//AEf99QPPBI0CJgG4AAAABwGRAQP+xv//AEcAAAPPBgMCJgG4AAAABgCbQhoAAP//AIz/7wRwBg8CJgG5AAAABwCgAJYAHv//AIz/7wRwBbgCJgG5AAAABwBuAJoACP//AIz/7wRwBgoCJgG5AAAABwCcAMcAWv//AIz/7wRwBkYCJgG5AAAABwCeAR0AZv//AIz/7wRwBgkCJgG5AAAABwChASMAGwABAIz+ewRwBI0AJwAAAREUBgcOARUUFjMyNjcXDgEjIiY1NDY3IgYjIiQ1ETMRFBYzMjY1EQRwcGhTWCMrHS8YDSBKNldpKi0HGAbh/u+4rI6QqgSN/QF9sjQ9ZTwkJhAMeBMZYlsyWysB2McC//0BgIyMgAL/AP//AEEAAAXABgMCJgG7AAAABwCaASEAGv//ACAAAAQwBgICJgG9AAAABgCaSxkAAP//ACAAAAQwBcgCJgG9AAAABgBoJRgAAP//AE4AAAPYBdwCJgG+AAAABwBzAScAFv//AE4AAAPYBcoCJgG+AAAABwCdAPgAGv//AE4AAAPYBgQCJgG+AAAABgCbPxsAAP//AF3/7wh8BJ0AJgG3AAAABwG3BG8AAP//ACcAAAUiBngCJgAjAAAABgCpOgAAAP///+YAAATZBnoAJgAnZAAABwCp/yMAAv//ABMAAAVhBnoAJgAqZAAABwCp/1AAAv//ABkAAAHgBnkAJgArZAAABwCp/1YAAf//AFL/6wUhBngAJgAxFAAABgCpjwAAAP///40AAAU3BngAJgA7ZAAABwCp/soAAP//AD8AAAThBngAJgC1FAAABwCp/3wAAP///8j/6wKDBj8CJgC+AAAABwCq/yf/t///ACcAAAUiBbACBgAjAAD//wC2AAAEqQWwAgYAJAAA//8AtgAABHUFsAIGACcAAP//AGEAAARtBbACBgA8AAD//wC2AAAE/QWwAgYAKgAA//8AwwAAAXwFsAIGACsAAP//ALYAAAUcBbACBgAtAAD//wC2AAAGTQWwAgYALwAA//8AtgAABP4FsAIGADAAAP//AIL/6wUNBcUCBgAxAAD//wC2AAAExAWwAgYAMgAA//8AOwAABIoFsAIGADYAAP//AB4AAATTBbACBgA7AAD//wBBAAAE0AWwAgYAOgAA////zAAAAnUHDAImACsAAAAHAGj/IwFc//8AHgAABNMHCgImADsAAAAHAGgAfAFa//8AZP/rBHcGegImALYAAAAHAKkBdQAC//8AY//tA+wGeQImALoAAAAHAKkBKwAB//8Akf5hA/AGegImALwAAAAHAKkBRgAC//8Aw//rAmsGZgImAL4AAAAGAKkq7gAA//8Aj//rA/YGPwImAMYAAAAGAKoetwAA//8AmgAABD8EOgIGAIsAAP//AGD/7AQnBE4CBgBRAAD//wCa/mAD7gQ6AgYAdAAA//8ALgAAA98EOgIGAFgAAP//AC4AAAPPBDoCBgBaAAD////T/+sCfAW1AiYAvgAAAAcAaP8qAAX//wCP/+sD9gW1AiYAxgAAAAYAaCEFAAD//wBg/+wEJwZ6AiYAUQAAAAcAqQFKAAL//wCP/+sD9gZmAiYAxgAAAAcAqQEi/+7//wB6/+sGGQZjAiYAyQAAAAcAqQJT/+v//wC2AAAEdQcMAiYAJwAAAAcAaAB2AVz//wC1AAAEMAcfAiYArAAAAAcAcwGYAVkAAQBa/+sEigXFACUAAAE0JicuATU0JDMyABUjNCYjIgYVFBYXHgEVFAQjIiQ1MxQWMzI2A9CWx+z+ARPh8QEYuaykm6CpyOrt/uXr3/61udOenLABbmiFMTjQpa3f/v62hJ6FbmJ/MTvYp7PS6M+RkX4AAP//AMMAAAF8BbACBgArAAD////MAAACdQcMAiYAKwAAAAcAaP8jAVz//wA//+sDwAWwAgYALAAA//8AtgAABRwFsAIGAC0AAP//ALYAAAUcBscCJgAtAAAABwBzAYwBAf//AFH/6wTIB0wCJgDZAAAABwCcANoBnP//ACcAAAUiBbACBgAjAAD//wC2AAAEqQWwAgYAJAAA//8AtQAABDAFsAIGAKwAAP//ALYAAAR1BbACBgAnAAD//wC2AAAE/gdMAiYA1wAAAAcAnAExAZz//wC2AAAGTQWwAgYALwAA//8AtgAABP0FsAIGACoAAP//AIL/6wUNBcUCBgAxAAD//wC2AAAE/wWwAgYAsQAA//8AtgAABMQFsAIGADIAAP//AIP/6wTJBcUCBgAlAAD//wA7AAAEigWwAgYANgAA//8AQQAABNAFsAIGADoAAP//AHL/7APsBE4CBgBDAAD//wBi/+wD6QROAgYARwAA//8AnAAABAEF9QImAOsAAAAHAJwAogBF//8AYP/sBCcETgIGAFEAAP//AJH+YAQkBE4CBgBSAAAAAQBh/+wD8gROABsAACUyNjczDgEjIgI9ATQSMzIWFyMuASMiBh0BFBYCQ2eXAbAB/6/u9PTuv+8BsAGOcKGHhoF4XJTVAS/tKuwBMNysaIrfpyqr3AAA//8AG/5LA+QEOgIGAFsAAP//AC4AAAPPBDoCBgBaAAD//wBi/+wD6QXLAiYARwAAAAYAaDEbAAD//wCaAAADRwXIAiYA5wAAAAcAcwDVAAL//wBm/+wDwgROAgYAVQAA//8AoQAAAVoGGAIGAEsAAP///6UAAAJOBbUCJgCKAAAABwBo/vwABf///7b+SwFnBhgCBgBMAAD//wCcAAAEPwXHAiYA7AAAAAcAcwFDAAH//wAb/ksD5AX1AiYAWwAAAAYAnFZFAAD//wBIAAAGwgciAiYAOQAAAAcAQgHxAV3//wAwAAAF2AXLAiYAWQAAAAcAQgFyAAb//wBIAAAGwgcfAiYAOQAAAAcAcwKrAVn//wAwAAAF2AXIAiYAWQAAAAcAcwIsAAL//wBIAAAGwgcMAiYAOQAAAAcAaAGHAVz//wAwAAAF2AW1AiYAWQAAAAcAaAEIAAX//wAeAAAE0wcgAiYAOwAAAAcAQgDmAVv//wAb/ksD5AXLAiYAWwAAAAYAQm8GAAD//wBnBCMA/QYYAgYACQAA//8AaQQUAh8GGAIGAAQAAP//AKkAAAN1BbAAJgQbAAAABwQbAg8AAP//AEIAAAQYBi0AJgBIAAAABwBOAr4AAP///7T+SwJABd0CJgCYAAAABwCb/0n/9P//ADAD5wFHBhgCBgFmAAD//wC2AAAGTQcfAiYALwAAAAcAcwKpAVn//wCQAAAGcgXdAiYATwAAAAcAcwK7ABf//wAn/ocFIgWwAiYAIwAAAAcAogFPAAD//wBy/ocD7AROAiYAQwAAAAcAogCeAAD///8+/+sFDQaiAiYAMQAAAAcB1f7PAMz//wBCAAAGiwYtACYASAAAAAcBkgK+AAD//wBCAAAG1gYtACYASAAAACcASAK+AAAABwBOBXwAAP//ALYAAAR1ByICJgAnAAAABwBCAOABXf//ALYAAAT+ByICJgDXAAAABwBCAUoBXf//AGL/7APpBeECJgBHAAAABwBCAJsAHP//AJwAAAQBBcsCJgDrAAAABwBCALsABv//AF0AAAUYBbACBgC0AAD//wBf/ikFQwQ6AgYAyAAA//8AFwAABNoHRwImARQAAAAHAKcENwFZ////+QAABAsGHwImARUAAAAHAKcD0gAx//8AYP5LCGwETgAmAFEAAAAHAFsEiAAA//8Agv5LCXQFxQAmADEAAAAHAFsFkAAA//8AUf5RBGcFxQImANYAAAAHAZwBnP+4//8AWP5SA6wETAImAOoAAAAHAZwBQ/+5//8Ag/5RBMkFxQImACUAAAAHAZwB7v+4//8AYf5RA/IETgImAEUAAAAHAZwBWP+4//8AHgAABNMFsAIGADsAAP//AC7+YAPfBDoCBgC4AAD//wDDAAABfAWwAgYAKwAA//8AGwAABygHTAImANUAAAAHAJwB+AGc//8AFQAABgQF9QImAOkAAAAHAJwBjQBF//8AwwAAAXwFsAIGACsAAP//ACcAAAUiB0wCJgAjAAAABwCcAPsBnP//AHL/7APsBgoCJgBDAAAABgCcfVoAAP//ACcAAAUiBwwCJgAjAAAABwBoAKoBXP//AHL/7APsBcoCJgBDAAAABgBoLBoAAP////IAAAdXBbACBgB/AAD//wA9/+sGfAROAgYAhAAA//8AtgAABHUHTAImACcAAAAHAJwAxwGc//8AYv/sA+kGCwImAEcAAAAHAJwAggBb//8AX//rBRAG3gImAUEAAAAHAGgAfQEu//8AYv/sA+kETwIGAJkAAP//AGL/7APpBcsCJgCZAAAABgBoMRsAAP//ABsAAAcoBwwCJgDVAAAABwBoAacBXP//ABUAAAYEBbUCJgDpAAAABwBoATwABf//AFH/6wRnByECJgDWAAAABwBoAGEBcf//AFj/7QOsBckCJgDqAAAABgBoCBkAAP//ALYAAAT+BvoCJgDXAAAABwBuAQQBSv//AJwAAAQBBaQCJgDrAAAABgBudfQAAP//ALYAAAT+BwwCJgDXAAAABwBoAOABXP//AJwAAAQBBbUCJgDrAAAABgBoUQUAAP//AIL/6wUNByECJgAxAAAABwBoAMoBcf//AGD/7AQnBcoCJgBRAAAABgBoSRoAAP//AHP/6wT+BcUCBgESAAD//wBg/+wEJwROAgYBEwAA//8Ac//rBP4HBwImARIAAAAHAGgA0gFX//8AYP/sBCcF5gImARMAAAAGAGgyNgAA//8Asf/sBPYHIgImAOIAAAAHAGgAtwFy//8AZP/rA+AFygImAPoAAAAGAGgmGgAA//8AUf/rBMgG+gImANkAAAAHAG4ArQFK//8AG/5LA+QFpAImAFsAAAAGAG4p9AAA//8AUf/rBMgHDAImANkAAAAHAGgAiQFc//8AG/5LA+QFtQImAFsAAAAGAGgFBQAA//8AUf/rBMgHSwIm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IABMAGkAYwBlAG4AcwBlACwAIABWAGUAcgBzAGkAbwBuACAAMgAuADAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcABhAGMAaABlAC4AbwByAGcALwBsAGkAYwBlAG4AcwBlAHMALwBMAEkAQwBFAE4AUwBFAC0AMgAuADAAAAAAAgAAAAAAAP9qAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAQcAAABAgACAAMABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAowCEAIUAvQCWAOgAhgCOAIsAnQCpAKQAigEDAIMAkwDyAPMAjQCXAIgBBADeAPEAngCqAPUA9AD2AKIAkADwAJEA7QCJAKAA6gC4AKEA7gEFANcBBgDiAOMBBwEIALAAsQEJAKYBCgELAQwBDQEOAQ8A2ADhANsA3ADdAOAA2QDfARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIAnwEjASQBJQEmAScBKAEpASoBKwEsAS0AmwEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNALIAswHOALYAtwDEAc8AtAC1AMUAggDCAIcB0ACrAMYAvgC/ALwB0QHSAdMB1AHVAdYB1wHYAIwB2QHaAdsB3AHdAJgAmgCZAO8ApQCSAJwApwCPAJQAlQC5Ad4B3wHgAMAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcArAI4AjkA6QI6AjsCPACtAMkAxwCuAGIAYwI9AGQAywBlAMgAygDPAMwAzQDOAGYA0wDQANEArwBnANYA1ADVAGgA6wBqAGkAawBtAGwAbgI+AG8AcQBwAHIAcwB1AHQAdgB3AHgAegB5AHsAfQB8AH8AfgCAAIEA7AC6Aj8CQAJBAkICQwJEAP0A/gJFAkYCRwJIAP8BAAJJAkoCSwJMAk0CTgJPAlACUQJSAlMCVAJVAlYA+AD5AlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooA+wD8AosCjADkAOUCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQKaApsCnAKdAp4CnwKgAqECogC7AqMCpAKlAqYA5gDnAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+Ar8CwALBAsICwwLEAsUCxgLHAsgCyQLKAssCzALNAs4CzwLQAtEC0gLTAtQC1QLWAtcC2ALZAtoC2wLcAt0C3gLfAuAC4QLiAuMC5ALlAuYC5wLoAukC6gLrAuwC7QLuAu8C8ALxAvIC8wL0AvUC9gL3AvgC+QL6AvsC/AL9Av4C/wMAAwEDAgMDAwQDBQMGAwcDCAMJAwoDCwMMAw0DDgMPAxADEQMSAxMDFAMVAxYDFwMYAxkDGgMbAxwDHQMeAx8DIAMhAyIDIwMkAyUDJgMnAygDKQMqAysDLAMtAy4DLwMwAzEDMgMzAzQDNQM2AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgNjA2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1A3YDdwN4A3kDegN7A3wDfQN+A38DgAOBA4IDgwOEA4UDhgOHA4gDiQOKA4sDjAONA44DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DngOfA6ADoQOiA6MDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgPPA9AD0QPSA9MD1APVA9YD1wPYA9kD2gPbA9wD3QPeA98D4APhA+ID4wPkA+UD5gPnA+gD6QPqA+sD7APtA+4D7wPwA/ED8gPzA/QD9QP2A/cD+AP5A/oD+wP8A/0D/gP/BAAEAQQCBAMEBAQFBAYEBwQIBAkECgQLBAwEDQQOBA8EEAQRBBIEEwQUBBUEFgQXBBgEGQQaBBsEHAQdBB4EHwQgBCEA9wQiBCMABAd1bmkwMDA5Bm1hY3Jvbg5wZXJpb2RjZW50ZXJlZARIYmFyDGtncmVlbmxhbmRpYwNFbmcDZW5nBWxvbmdzBU9ob3JuBW9ob3JuBVVob3JuBXVob3JuB3VuaTAyMzcFc2Nod2EHdW5pMDJGMwlncmF2ZWNvbWIJYWN1dGVjb21iCXRpbGRlY29tYgRob29rB3VuaTAzMEYIZG90YmVsb3cFdG9ub3MNZGllcmVzaXN0b25vcwlhbm90ZWxlaWEFR2FtbWEFRGVsdGEFVGhldGEGTGFtYmRhAlhpAlBpBVNpZ21hA1BoaQNQc2kFYWxwaGEEYmV0YQVnYW1tYQVkZWx0YQdlcHNpbG9uBHpldGEDZXRhBXRoZXRhBGlvdGEGbGFtYmRhAnhpA3JobwZzaWdtYTEFc2lnbWEDdGF1B3Vwc2lsb24DcGhpA3BzaQVvbWVnYQd1bmkwM0QxB3VuaTAzRDIHdW5pMDNENgd1bmkwNDAyB3VuaTA0MDQHdW5pMDQwOQd1bmkwNDBBB3VuaTA0MEIHdW5pMDQwRgd1bmkwNDExB3VuaTA0MTQHdW5pMDQxNgd1bmkwNDE3B3VuaTA0MTgHdW5pMDQxQgd1bmkwNDIzB3VuaTA0MjQHdW5pMDQyNgd1bmkwNDI3B3VuaTA0MjgHdW5pMDQyOQd1bmkwNDJBB3VuaTA0MkIHdW5pMDQyQwd1bmkwNDJEB3VuaTA0MkUHdW5pMDQyRgd1bmkwNDMxB3VuaTA0MzIHdW5pMDQzMwd1bmkwNDM0B3VuaTA0MzYHdW5pMDQzNwd1bmkwNDM4B3VuaTA0M0EHdW5pMDQzQgd1bmkwNDNDB3VuaTA0M0QHdW5pMDQzRgd1bmkwNDQyB3VuaTA0NDQHdW5pMDQ0Ngd1bmkwNDQ3B3VuaTA0NDgHdW5pMDQ0OQd1bmkwNDRBB3VuaTA0NEIHdW5pMDQ0Qwd1bmkwNDREB3VuaTA0NEUHdW5pMDQ0Rgd1bmkwNDUyB3VuaTA0NTQHdW5pMDQ1OQd1bmkwNDVBB3VuaTA0NUIHdW5pMDQ1Rgd1bmkwNDYwB3VuaTA0NjEHdW5pMDQ2Mwd1bmkwNDY0B3VuaTA0NjUHdW5pMDQ2Ngd1bmkwNDY3B3VuaTA0NjgHdW5pMDQ2OQd1bmkwNDZBB3VuaTA0NkIHdW5pMDQ2Qwd1bmkwNDZEB3VuaTA0NkUHdW5pMDQ2Rgd1bmkwNDcyB3VuaTA0NzMHdW5pMDQ3NAd1bmkwNDc1B3VuaTA0N0EHdW5pMDQ3Qgd1bmkwNDdDB3VuaTA0N0QHdW5pMDQ3RQd1bmkwNDdGB3VuaTA0ODAHdW5pMDQ4MQd1bmkwNDgyB3VuaTA0ODMHdW5pMDQ4NAd1bmkwNDg1B3VuaTA0ODYHdW5pMDQ4OAd1bmkwNDg5B3VuaTA0OEQHdW5pMDQ4RQd1bmkwNDhGB3VuaTA0OTAHdW5pMDQ5MQd1bmkwNDk0B3VuaTA0OTUHdW5pMDQ5Qwd1bmkwNDlEB3VuaTA0QTAHdW5pMDRBMQd1bmkwNEE0B3VuaTA0QTUHdW5pMDRBNgd1bmkwNEE3B3VuaTA0QTgHdW5pMDRBOQd1bmkwNEI0B3VuaTA0QjUHdW5pMDRCOAd1bmkwNEI5B3VuaTA0QkEHdW5pMDRCQwd1bmkwNEJEB3VuaTA0QzMHdW5pMDRDNAd1bmkwNEM3B3VuaTA0QzgHdW5pMDREOAd1bmkwNEUwB3VuaTA0RTEHdW5pMDRGQQd1bmkwNEZCB3VuaTA1MDAHdW5pMDUwMgd1bmkwNTAzB3VuaTA1MDQHdW5pMDUwNQd1bmkwNTA2B3VuaTA1MDcHdW5pMDUwOAd1bmkwNTA5B3VuaTA1MEEHdW5pMDUwQgd1bmkwNTBDB3VuaTA1MEQHdW5pMDUwRQd1bmkwNTBGB3VuaTA1MTAHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMEINdW5kZXJzY29yZWRibA1xdW90ZXJldmVyc2VkB3VuaTIwMjUHdW5pMjA3NAluc3VwZXJpb3IEbGlyYQZwZXNldGEERXVybwd1bmkyMTA1B3VuaTIxMTMHdW5pMjExNgllc3RpbWF0ZWQJb25lZWlnaHRoDHRocmVlZWlnaHRocwtmaXZlZWlnaHRocwxzZXZlbmVpZ2h0aHMKY29sb24ubG51bQlxdW90ZWRibHgLY29tbWFhY2NlbnQHdW5pRkVGRgd1bmlGRkZDB3VuaUZGRkQJZml2ZS5zbWNwCGZvdXIuc3VwCXplcm8ubG51bQ5sYXJnZXJpZ2h0aG9vawxjeXJpbGxpY2hvb2sQY3lyaWxsaWNob29rbGVmdAtjeXJpbGxpY3RpYw5icmV2ZXRpbGRlY29tYg1icmV2ZWhvb2tjb21iDmJyZXZlYWN1dGVjb21iE2NpcmN1bWZsZXh0aWxkZWNvbWISY2lyY3VtZmxleGhvb2tjb21iE2NpcmN1bWZsZXhncmF2ZWNvbWITY2lyY3VtZmxleGFjdXRlY29tYg5icmV2ZWdyYXZlY29tYhFjb21tYWFjY2VudHJvdGF0ZQZBLnNtY3AGQi5zbWNwBkMuc21jcAZELnNtY3AGRS5zbWNwBkYuc21jcAZHLnNtY3AGSC5zbWNwBkkuc21jcAZKLnNtY3AGSy5zbWNwBkwuc21jcAZNLnNtY3AGTi5zbWNwBk8uc21jcAZRLnNtY3AGUi5zbWNwBlMuc21jcAZULnNtY3AGVS5zbWNwBlYuc21jcAZXLnNtY3AGWC5zbWNwBlkuc21jcAZaLnNtY3AJemVyby5zbWNwCG9uZS5zbWNwCHR3by5zbWNwCnRocmVlLnNtY3AJZm91ci5zbWNwCHR3by5sbnVtCHNpeC5zbWNwCnNldmVuLnNtY3AKZWlnaHQuc21jcAluaW5lLnNtY3AHb25lLnN1cAd0d28uc3VwCXRocmVlLnN1cAhvbmUubG51bQhmaXZlLnN1cAdzaXguc3VwCXNldmVuLnN1cAllaWdodC5zdXAIbmluZS5zdXAIemVyby5zdXAIY3Jvc3NiYXIJcmluZ2FjdXRlCWRhc2lhb3hpYQp0aHJlZS5sbnVtCWZvdXIubG51bQlmaXZlLmxudW0Ic2l4LmxudW0FZy5hbHQKc2V2ZW4ubG51bQdjaGkuYWx0CmVpZ2h0LmxudW0JYWxwaGEuYWx0CWRlbHRhLmFsdARELmNuBGEuY24FUi5hbHQFSy5hbHQFay5hbHQGSy5hbHQyBmsuYWx0MgluaW5lLmxudW0GUC5zbWNwDWN5cmlsbGljYnJldmUHdW5pMDBBRAZEY3JvYXQEaGJhcgRUYmFyBHRiYXIKQXJpbmdhY3V0ZQphcmluZ2FjdXRlB0FtYWNyb24HYW1hY3JvbgZBYnJldmUGYWJyZXZlB0FvZ29uZWsHYW9nb25lawtDY2lyY3VtZmxleAtjY2lyY3VtZmxleAd1bmkwMTBBB3VuaTAxMEIGRGNhcm9uBmRjYXJvbgdFbWFjcm9uB2VtYWNyb24GRWJyZXZlBmVicmV2ZQpFZG90YWNjZW50CmVkb3RhY2NlbnQHRW9nb25lawdlb2dvbmVrBkVjYXJvbgZlY2Fyb24LR2NpcmN1bWZsZXgLZ2NpcmN1bWZsZXgHdW5pMDEyMAd1bmkwMTIxDEdjb21tYWFjY2VudAxnY29tbWFhY2NlbnQLSGNpcmN1bWZsZXgLaGNpcmN1bWZsZXgGSXRpbGRlBml0aWxkZQdJbWFjcm9uB2ltYWNyb24GSWJyZXZlBmlicmV2ZQdJb2dvbmVrB2lvZ29uZWsKSWRvdGFjY2VudAJJSgJpagtKY2lyY3VtZmxleAtqY2lyY3VtZmxleAxLY29tbWFhY2NlbnQMa2NvbW1hYWNjZW50BkxhY3V0ZQZsYWN1dGUMTGNvbW1hYWNjZW50DGxjb21tYWFjY2VudAZMY2Fyb24GbGNhcm9uBExkb3QEbGRvdAZOYWN1dGUGbmFjdXRlDE5jb21tYWFjY2VudAxuY29tbWFhY2NlbnQGTmNhcm9uBm5jYXJvbgtuYXBvc3Ryb3BoZQdPbWFjcm9uB29tYWNyb24GT2JyZXZlBm9icmV2ZQ1PaHVuZ2FydW1sYXV0DW9odW5nYXJ1bWxhdXQGUmFjdXRlBnJhY3V0ZQxSY29tbWFhY2NlbnQMcmNvbW1hYWNjZW50BlJjYXJvbgZyY2Fyb24GU2FjdXRlBnNhY3V0ZQtTY2lyY3VtZmxleAtzY2lyY3VtZmxleAd1bmkwMjE4B3VuaTAyMTkHdW5pMDIxQQd1bmkwMjFCB3VuaTAxNjIHdW5pMDE2MwZUY2Fyb24GdGNhcm9uBlV0aWxkZQZ1dGlsZGUHVW1hY3Jvbgd1bWFjcm9uBlVicmV2ZQZ1YnJldmUFVXJpbmcFdXJpbmcNVWh1bmdhcnVtbGF1dA11aHVuZ2FydW1sYXV0B1VvZ29uZWsHdW9nb25lawtXY2lyY3VtZmxleAt3Y2lyY3VtZmxleAtZY2lyY3VtZmxleAt5Y2lyY3VtZmxleAZaYWN1dGUGemFjdXRlClpkb3RhY2NlbnQKemRvdGFjY2VudAdBRWFjdXRlB2FlYWN1dGULT3NsYXNoYWN1dGULb3NsYXNoYWN1dGULRGNyb2F0LnNtY3AIRXRoLnNtY3AJVGJhci5zbWNwC0FncmF2ZS5zbWNwC0FhY3V0ZS5zbWNwEEFjaXJjdW1mbGV4LnNtY3ALQXRpbGRlLnNtY3AOQWRpZXJlc2lzLnNtY3AKQXJpbmcuc21jcA9BcmluZ2FjdXRlLnNtY3ANQ2NlZGlsbGEuc21jcAtFZ3JhdmUuc21jcAtFYWN1dGUuc21jcBBFY2lyY3VtZmxleC5zbWNwDkVkaWVyZXNpcy5zbWNwC0lncmF2ZS5zbWNwC0lhY3V0ZS5zbWNwEEljaXJjdW1mbGV4LnNtY3AOSWRpZXJlc2lzLnNtY3ALTnRpbGRlLnNtY3ALT2dyYXZlLnNtY3ALT2FjdXRlLnNtY3AQT2NpcmN1bWZsZXguc21jcAtPdGlsZGUuc21jcA5PZGllcmVzaXMuc21jcAtVZ3JhdmUuc21jcAtVYWN1dGUuc21jcBBVY2lyY3VtZmxleC5zbWNwDlVkaWVyZXNpcy5zbWNwC1lhY3V0ZS5zbWNwDEFtYWNyb24uc21jcAtBYnJldmUuc21jcAxBb2dvbmVrLnNtY3ALQ2FjdXRlLnNtY3AQQ2NpcmN1bWZsZXguc21jcAx1bmkwMTBBLnNtY3ALQ2Nhcm9uLnNtY3ALRGNhcm9uLnNtY3AMRW1hY3Jvbi5zbWNwC0VicmV2ZS5zbWNwD0Vkb3RhY2NlbnQuc21jcAxFb2dvbmVrLnNtY3ALRWNhcm9uLnNtY3AQR2NpcmN1bWZsZXguc21jcAtHYnJldmUuc21jcAx1bmkwMTIwLnNtY3ARR2NvbW1hYWNjZW50LnNtY3AQSGNpcmN1bWZsZXguc21jcAtJdGlsZGUuc21jcAxJbWFjcm9uLnNtY3ALSWJyZXZlLnNtY3AMSW9nb25lay5zbWNwD0lkb3RhY2NlbnQuc21jcBBKY2lyY3VtZmxleC5zbWNwEUtjb21tYWFjY2VudC5zbWNwC0xhY3V0ZS5zbWNwEUxjb21tYWFjY2VudC5zbWNwC0xjYXJvbi5zbWNwCUxkb3Quc21jcAtOYWN1dGUuc21jcBFOY29tbWFhY2NlbnQuc21jcAtOY2Fyb24uc21jcAxPbWFjcm9uLnNtY3ALT2JyZXZlLnNtY3AST2h1bmdhcnVtbGF1dC5zbWNwC1JhY3V0ZS5zbWNwEVJjb21tYWFjY2VudC5zbWNwC1JjYXJvbi5zbWNwC1NhY3V0ZS5zbWNwEFNjaXJjdW1mbGV4LnNtY3ANU2NlZGlsbGEuc21jcAtTY2Fyb24uc21jcBFUY29tbWFhY2NlbnQuc21jcAtUY2Fyb24uc21jcAtVdGlsZGUuc21jcAxVbWFjcm9uLnNtY3ALVWJyZXZlLnNtY3AKVXJpbmcuc21jcBJVaHVuZ2FydW1sYXV0LnNtY3AMVW9nb25lay5zbWNwEFdjaXJjdW1mbGV4LnNtY3AQWWNpcmN1bWZsZXguc21jcA5ZZGllcmVzaXMuc21jcAtaYWN1dGUuc21jcA9aZG90YWNjZW50LnNtY3ALWmNhcm9uLnNtY3APZ2VybWFuZGJscy5zbWNwCkFscGhhdG9ub3MMRXBzaWxvbnRvbm9zCEV0YXRvbm9zCUlvdGF0b25vcwxPbWljcm9udG9ub3MMVXBzaWxvbnRvbm9zCk9tZWdhdG9ub3MRaW90YWRpZXJlc2lzdG9ub3MFQWxwaGEEQmV0YQdFcHNpbG9uBFpldGEDRXRhBElvdGEFS2FwcGECTXUCTnUHT21pY3JvbgNSaG8DVGF1B1Vwc2lsb24DQ2hpDElvdGFkaWVyZXNpcw9VcHNpbG9uZGllcmVzaXMKYWxwaGF0b25vcwxlcHNpbG9udG9ub3MIZXRhdG9ub3MJaW90YXRvbm9zFHVwc2lsb25kaWVyZXNpc3Rvbm9zBWthcHBhB29taWNyb24HdW5pMDNCQwJudQNjaGkMaW90YWRpZXJlc2lzD3Vwc2lsb25kaWVyZXNpcwxvbWljcm9udG9ub3MMdXBzaWxvbnRvbm9zCm9tZWdhdG9ub3MHdW5pMDQwMQd1bmkwNDAzB3VuaTA0MDUHdW5pMDQwNgd1bmkwNDA3B3VuaTA0MDgHdW5pMDQxQQd1bmkwNDBDB3VuaTA0MEUHdW5pMDQxMAd1bmkwNDEyB3VuaTA0MTMHdW5pMDQxNQd1bmkwNDE5B3VuaTA0MUMHdW5pMDQxRAd1bmkwNDFFB3VuaTA0MUYHdW5pMDQyMAd1bmkwNDIxB3VuaTA0MjIHdW5pMDQyNQd1bmkwNDMwB3VuaTA0MzUHdW5pMDQzOQd1bmkwNDNFB3VuaTA0NDAHdW5pMDQ0MQd1bmkwNDQzB3VuaTA0NDUHdW5pMDQ1MQd1bmkwNDUzB3VuaTA0NTUHdW5pMDQ1Ngd1bmkwNDU3B3VuaTA0NTgHdW5pMDQ1Qwd1bmkwNDVFBldncmF2ZQZ3Z3JhdmUGV2FjdXRlBndhY3V0ZQlXZGllcmVzaXMJd2RpZXJlc2lzBllncmF2ZQZ5Z3JhdmUGbWludXRlBnNlY29uZAlleGNsYW1kYmwHdW5pRkIwMgd1bmkwMUYwB3VuaTAyQkMHdW5pMUUzRQd1bmkxRTNGB3VuaTFFMDAHdW5pMUUwMQd1bmkxRjREB3VuaUZCMDMHdW5pRkIwNAd1bmkwNDAwB3VuaTA0MEQHdW5pMDQ1MAd1bmkwNDVEB3VuaTA0NzAHdW5pMDQ3MQd1bmkwNDc2B3VuaTA0NzcHdW5pMDQ3OQd1bmkwNDc4B3VuaTA0OTgHdW5pMDQ5OQd1bmkwNEFBB3VuaTA0QUIHdW5pMDRBRQd1bmkwNEFGB3VuaTA0QzAHdW5pMDRDMQd1bmkwNEMyB3VuaTA0Q0YHdW5pMDREMAd1bmkwNEQxB3VuaTA0RDIHdW5pMDREMwd1bmkwNEQ0B3VuaTA0RDUHdW5pMDRENgd1bmkwNEQ3B3VuaTA0REEHdW5pMDREOQd1bmkwNERCB3VuaTA0REMHdW5pMDRERAd1bmkwNERFB3VuaTA0REYHdW5pMDRFMgd1bmkwNEUzB3VuaTA0RTQHdW5pMDRFNQd1bmkwNEU2B3VuaTA0RTcHdW5pMDRFOAd1bmkwNEU5B3VuaTA0RUEHdW5pMDRFQgd1bmkwNEVDB3VuaTA0RUQHdW5pMDRFRQd1bmkwNEVGB3VuaTA0RjAHdW5pMDRGMQd1bmkwNEYyB3VuaTA0RjMHdW5pMDRGNAd1bmkwNEY1B3VuaTA0RjgHdW5pMDRGOQd1bmkwNEZDB3VuaTA0RkQHdW5pMDUwMQd1bmkwNTEyB3VuaTA1MTMHdW5pMUVBMAd1bmkxRUExB3VuaTFFQTIHdW5pMUVBMwd1bmkxRUE0B3VuaTFFQTUHdW5pMUVBNgd1bmkxRUE3B3VuaTFFQTgHdW5pMUVBOQd1bmkxRUFBB3VuaTFFQUIHdW5pMUVBQwd1bmkxRUFEB3VuaTFFQUUHdW5pMUVBRgd1bmkxRUIwB3VuaTFFQjEHdW5pMUVCMgd1bmkxRUIzB3VuaTFFQjQHdW5pMUVCNQd1bmkxRUI2B3VuaTFFQjcHdW5pMUVCOAd1bmkxRUI5B3VuaTFFQkEHdW5pMUVCQgd1bmkxRUJDB3VuaTFFQkQHdW5pMUVCRQd1bmkxRUJGB3VuaTFFQzAHdW5pMUVDMQd1bmkxRUMyB3VuaTFFQzMHdW5pMUVDNAd1bmkxRUM1B3VuaTFFQzYHdW5pMUVDNwd1bmkxRUM4B3VuaTFFQzkHdW5pMUVDQQd1bmkxRUNCB3VuaTFFQ0MHdW5pMUVDRAd1bmkxRUNFB3VuaTFFQ0YHdW5pMUVEMAd1bmkxRUQxB3VuaTFFRDIHdW5pMUVEMwd1bmkxRUQ0B3VuaTFFRDUHdW5pMUVENgd1bmkxRUQ3B3VuaTFFRDgHdW5pMUVEOQd1bmkxRURBB3VuaTFFREIHdW5pMUVEQwd1bmkxRUREB3VuaTFFREUHdW5pMUVERgd1bmkxRUUwB3VuaTFFRTEHdW5pMUVFMgd1bmkxRUUzB3VuaTFFRTQHdW5pMUVFNQd1bmkxRUU2B3VuaTFFRTcHdW5pMUVFOAd1bmkxRUU5B3VuaTFFRUEHdW5pMUVFQgd1bmkxRUVDB3VuaTFFRUQH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Adz/4QALAOH/1ADx/8kBBP/lARv/4wEv/8QBOP/hAUn/1AFK//UBS//nAVP/0gFU/8kACQDh/8MA8f/PAS//zgE4/+cBO//fAUn/0QFL/+wBU/+gAVT/0QAJAOH/wwDx/88BL//OATj/5wE7/98BSf/RAUv/7AFT/6ABVP/RAAgA4f/JAPH/3wEE/+0BG//rAS//3wE7/+kBSv/1AVT/4AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADh/+YA8f/QAS//zgE4/+gBSf/nAUv/7QFT/+YBVP/QAAsA1AAUAOH/4ADoABMBOP/hATn/4AE8/+EBQf/pAUn/3wFL/94BU//fAVX/8gAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wAAUAGf/yAOH/8QFJ//IBS//yAVP/8gAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAMANQAEwDh/+YA4v/0AOgAEgDx/+cBL//nATj/5QE5/+gBSf/mAUv/5gFT/+YBVP/nAAkA4f/DAPH/zwEv/84BOP/nATv/3wFJ/9EBS//sAVP/oAFU/9EACQDh/8MA8f/PAS//zgE4/+cBO//fAUn/0QFL/+wBU/+gAVT/0QACANT/4gFT/+QAAgDU/+EA6P/kAAYA6P/uAPH/7gEE//QBG//xAS//7wFU/+8ABADx//QBBP/1AS//9QFU//UAAgDo/8kBF//uAAYA6AAUAPH/7QD3/+IBL//tATn/7QFU/+0AAQEX//EABQEX/+sBqf/rAa3/6QG1/+sBtv/rABMASAANAML/qwDD/8AAx//VAOj/qgEX/+IBGwAMAUoACwFMAAsBp/+/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/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABAAL/+YAP//0AF//7wE8/+0ABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAUASP/uAFn/6gG7//ABvP/tAb7/8AAFAEj/7gBZ/+oBu//wAbz/7QG+//AABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAEBp//rAAEBp//rAAEBp//rAAEBp//rACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAAQDx//UAAQDx//UAAQDx//UAAQDx//UAAQDx/8AACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQDx/8AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAaf/6wATAFn/wQCz/8UAxf+0AOX/1wDx/7kBBP+yARf/0gEb/8gBL/+gATn/xQFB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/+wAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAIBDAALAVP/5gAFAEj/7gBZ/+oBu//wAbz/7QG+//AACABZ/+UAs//LAMj/5AGnAA0Bqf/tAa3/6wG1/+wBtv/sAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAEwBZ/8EAs//FAMX/tADl/9cA8f+5AQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGp/+gBrf/mAbX/5wG2/+cACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAVgAOAH//nwC//94Awv/lANT/qADo/8oBRv/jAaf/xgHf//UAOQBU/7UAWf/HAGv+uAB6/ygAf/9NAIT/jgCH/6EAs/+uALr/fgC+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Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UACQALABQAPwARAFT/4gBfABMBp/+0Aan/2QGt/9kBtf/ZAbb/2QAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAEAAv/5gA///QAX//vATz/7QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wAAEBF//xAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UAAQDx//UAAQDx//UAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AABARf/8QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAGAMX/6gDo/+4A8f+wAS//7AFU/+wB3P/oABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAEgDU/64A4QASAOb/4ADo/60A6v/WAPj/3wD8/9IBAv/gARf/zgEn/90BKf/iAS3/4AEz/+ABOf/pATz/2gFG/70BUP/fAVMAEQAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAan/6QGt/+cBtf/nAbb/6QHf//AAAQEX//EAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAEBp//rAAEBp//rACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAkAAj/4gAL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/94CE//rAhT/6wIV/+sCFv/rAhf/6wId/+sCHv/rAh//6wIg/+sCIf/rAiL/6gIj/+oCJP/qAiX/6gIm/+gCJ//oAij/VgIp/94CKv9WAiv/3gIs/1YCLf/eAi//6wIx/+sCM//rAjX/6wI3/+sCOf/rAjv/6wI9/+sCP//rAkH/6wJD/+sCRf/rAkf/6wJJ/+sCV/74Amv/6wJt/+sCb//rAoAAFAKCABQChAAUAof/6gKJ/+oCi//qAo3/6gKP/+oCkf/qApX/6AL4/1YDAP9WAxD/6wMU/+oDFv/rAxj/6AMb/+oDHP/rAx3/6gMk/vgDKP9WAzMAFAM1/94DNv/rAzj/6wM6/+sDO//oAz3/6wNE/+gDTP/oA1X/VgNW/94DXP/rA2H/6ANi/+sDZ//rA2n/6ANu/1YDb//eA3D/VgNx/94Ddf/rA3f/6wN4/+sDgv/rA4T/6wOG/+sDiv/oA4z/6AOO/+gDlf/rA5j/VgOZ/94Dmv9WA5v/3gOc/1YDnf/eA57/VgOf/94DoP9WA6H/3gOi/1YDo//eA6T/VgOl/94Dpv9WA6f/3gOo/1YDqf/eA6r/VgOr/94DrP9WA63/3gOu/1YDr//eA7H/6wOz/+sDtf/rA7f/6wO5/+sDu//rA73/6wO//+sDxf/rA8f/6wPJ/+sDy//rA83/6wPP/+sD0f/rA9P/6wPV/+sD1//rA9n/6wPb/+sD3f/qA9//6gPh/+oD4//qA+X/6gPn/+oD6f/qA+v/6APt/+gD7//oA/YAFAAfADb/1QA4/+QAOf/sADv/3QDN/9UA0f/VART/5AEu/9UBNv/VAgv/3QKA/9UCgv/VAoT/1QKS/+wClP/dApb/3QL9/90DDP/dAw//3QMz/9UDRf/sA0f/7ANJ/+wDS//dA2D/5ANo/90D6v/dA+z/3QPu/90D9v/VBBP/3QAaADb/sAA4/+0AO//QAM3/sADR/7ABFP/tAS7/sAE2/7ACC//QAoD/sAKC/7AChP+wApT/0AKW/9AC/f/QAwz/0AMP/9ADM/+wA0v/0ANg/+0DaP/QA+r/0APs/9AD7v/QA/b/sAQT/9AAEAAs/+4AN//uAgf/7gII/+4CCf/uAgr/7gJX/+4Chv/uAoj/7gKK/+4CjP/uAo7/7gKQ/+4DJP/uA9z/7gPe/+4ARwAEABAACQAQAEX/6ABG/+gAR//oAEn/6ABT/+gAkf/oAJX/6AC2/+gAw//oAMT/6ADy/+gA/v/oARn/6AEd/+gBNf/oAUf/6AFI/+gBUv/oAWUAEAFmABABaAAQAWkAEAFqABACE//oAhT/6AIV/+gCFv/oAhf/6AIv/+gCMf/oAjP/6AI1/+gCN//oAjn/6AI7/+gCPf/oAj//6AJB/+gCQ//oAkX/6AJH/+gCSf/oAxD/6AM2/+gDOv/oAz3/6ANNABADTgAQA1IAEANc/+gDYv/oA2f/6AN1/+gDd//oA3j/6AOE/+gDlf/oA7H/6AOz/+gDtf/oA7f/6AO5/+gDu//oA73/6AO//+gD0//oA9X/6APX/+gD2//oAD0ARf/sAEb/7ABH/+wASf/sAFP/7ACR/+wAlf/sALb/7ADD/+wAxP/sAPL/7AD+/+wBGf/sAR3/7AE1/+wBR//sAUj/7AFS/+wCE//sAhT/7AIV/+wCFv/sAhf/7AIv/+wCMf/sAjP/7AI1/+wCN//sAjn/7AI7/+wCPf/sAj//7AJB/+wCQ//sAkX/7AJH/+wCSf/sAxD/7AM2/+wDOv/sAz3/7ANc/+wDYv/sA2f/7AN1/+wDd//sA3j/7AOE/+wDlf/sA7H/7AOz/+wDtf/sA7f/7AO5/+wDu//sA73/7AO//+wD0//sA9X/7APX/+wD2//sABcAUf/sARP/7AId/+wCHv/sAh//7AIg/+wCIf/sAmv/7AJt/+wCb//sAxb/7AMc/+wDOP/sA4L/7AOG/+wDxf/sA8f/7APJ/+wDy//sA83/7APP/+wD0f/sA9n/7AAGAA7/hAAQ/4QBZ/+EAWv/hAFv/4QBcP+EABAALP/sADf/7AIH/+wCCP/sAgn/7AIK/+wCV//sAob/7AKI/+wCiv/sAoz/7AKO/+wCkP/sAyT/7APc/+wD3v/sAAEpLAAEAAAAIgBOAMQBqgKQA2oEBAaeCGQJNgosC/IMJAxWDNQOug8wEAISFBLKFDAU6hVwFc4WkBcGFxgXQhiUGtIa9BwKHIgcshzcAB0ABP/yAAn/8gBY//MAW//zALj/8wEV//MBZf/yAWb/8gFo//IBaf/yAWr/8gIm//MCJ//zApX/8wMY//MDO//zA0T/8wNM//MDTf/yA07/8gNS//IDYf/zA2n/8wOK//MDjP/zA47/8wPr//MD7f/zA+//8wA5ACX/8wAp//MAMf/zADP/8wCB//MAkP/zAJT/8wCu//MAzv/zAQP/8wES//MBFv/zARj/8wEa//MBHP/zATT/8wFR//MB+P/zAgL/8wID//MCBP/zAgX/8wIG//MCLv/zAjD/8wIy//MCNP/zAkL/8wJE//MCRv/zAkj/8wJq//MCbP/zAm7/8wKf//MC/P/zAwn/8wMv//MDMv/zA1f/8wNj//MDZv/zA4H/8wOD//MDhf/zA8T/8wPG//MDyP/zA8r/8wPM//MDzv/zA9D/8wPS//MD1P/zA9b/8wPY//MD2v/zADkAJf/mACn/5gAx/+YAM//mAIH/5gCQ/+YAlP/mAK7/5gDO/+YBA//mARL/5gEW/+YBGP/mARr/5gEc/+YBNP/mAVH/5gH4/+YCAv/mAgP/5gIE/+YCBf/mAgb/5gIu/+YCMP/mAjL/5gI0/+YCQv/mAkT/5gJG/+YCSP/mAmr/5gJs/+YCbv/mAp//5gL8/+YDCf/mAy//5gMy/+YDV//mA2P/5gNm/+YDgf/mA4P/5gOF/+YDxP/mA8b/5gPI/+YDyv/mA8z/5gPO/+YD0P/mA9L/5gPU/+YD1v/mA9j/5gPa/+YANgAj/+QAOv/SADv/0wCt/+QAr//kANX/0gEI/+QB8f/kAfL/5AHz/+QB9P/kAfX/5AH2/+QB9//kAgv/0wIo/+QCKv/kAiz/5AKU/9MClv/TAvj/5AL9/9MDAP/kAwz/0wMN/9IDD//TAyj/5AM0/9IDS//TA1X/5ANo/9MDa//SA27/5ANw/+QDef/SA5P/0gOY/+QDmv/kA5z/5AOe/+QDoP/kA6L/5AOk/+QDpv/kA6j/5AOq/+QDrP/kA67/5APq/9MD7P/TA+7/0wP4/9IEAP/SBBP/0wAmAA7/HgAQ/x4AI//NAK3/zQCv/80BCP/NAWf/HgFr/x4Bb/8eAXD/HgHx/80B8v/NAfP/zQH0/80B9f/NAfb/zQH3/80CKP/NAir/zQIs/80C+P/NAwD/zQMo/80DVf/NA27/zQNw/80DmP/NA5r/zQOc/80Dnv/NA6D/zQOi/80DpP/NA6b/zQOo/80Dqv/NA6z/zQOu/80ApgBF/9wARv/cAEf/3ABJ/9wAT//zAFD/8wBR/9YAUv/zAFP/3ABX/90AWP/hAFv/4QCR/9wAlf/cAJf/3QC2/9wAuP/hALz/8wDD/9wAxP/cAMb/3QDn//MA6//zAOz/8wDu//MA7//zAPD/8wDy/9wA8//zAPX/8wD2//MA+f/zAPv/8wD+/9wBAP/zARP/1gEV/+EBGf/cAR3/3AEx//MBNf/cAUD/8wFF//MBR//cAUj/3AFS/9wCE//cAhT/3AIV/9wCFv/cAhf/3AIc//MCHf/WAh7/1gIf/9YCIP/WAiH/1gIi/90CI//dAiT/3QIl/90CJv/hAif/4QIv/9wCMf/cAjP/3AI1/9wCN//cAjn/3AI7/9wCPf/cAj//3AJB/9wCQ//cAkX/3AJH/9wCSf/cAmT/8wJm//MCaP/zAmn/8wJr/9YCbf/WAm//1gKH/90Cif/dAov/3QKN/90Cj//dApH/3QKV/+EDEP/cAxL/8wMU/90DFv/WAxj/4QMb/90DHP/WAx3/3QM2/9wDN//zAzj/1gM5//MDOv/cAzv/4QM9/9wDPv/zA0P/8wNE/+EDTP/hA1T/8wNc/9wDXf/zA2H/4QNi/9wDZ//cA2n/4QN1/9wDd//cA3j/3AN+//MDgP/zA4L/1gOE/9wDhv/WA4r/4QOM/+EDjv/hA5L/8wOV/9wDsf/cA7P/3AO1/9wDt//cA7n/3AO7/9wDvf/cA7//3APF/9YDx//WA8n/1gPL/9YDzf/WA8//1gPR/9YD0//cA9X/3APX/9wD2f/WA9v/3APd/90D3//dA+H/3QPj/90D5f/dA+f/3QPp/90D6//hA+3/4QPv/+ED8//zA/X/8wP///MEDP/zBA7/8wQQ//MAcQAE/9oACf/aAEX/8ABG//AAR//wAEn/8ABT//AAV//vAFj/3ABb/9wAkf/wAJX/8ACX/+8Atv/wALj/3ADD//AAxP/wAMb/7wDy//AA/v/wARX/3AEZ//ABHf/wATX/8AFH//ABSP/wAVL/8AFl/9oBZv/aAWj/2gFp/9oBav/aAhP/8AIU//ACFf/wAhb/8AIX//ACIv/vAiP/7wIk/+8CJf/vAib/3AIn/9wCL//wAjH/8AIz//ACNf/wAjf/8AI5//ACO//wAj3/8AI///ACQf/wAkP/8AJF//ACR//wAkn/8AKH/+8Cif/vAov/7wKN/+8Cj//vApH/7wKV/9wDEP/wAxT/7wMY/9wDG//vAx3/7wM2//ADOv/wAzv/3AM9//ADRP/cA0z/3ANN/9oDTv/aA1L/2gNc//ADYf/cA2L/8ANn//ADaf/cA3X/8AN3//ADeP/wA4T/8AOK/9wDjP/cA47/3AOV//ADsf/wA7P/8AO1//ADt//wA7n/8AO7//ADvf/wA7//8APT//AD1f/wA9f/8APb//AD3f/vA9//7wPh/+8D4//vA+X/7wPn/+8D6f/vA+v/3APt/9wD7//cADQABP+gAAn/oABX//EAWP/FAFv/xQCX//EAuP/FAMb/8QEV/8UBZf+gAWb/oAFo/6ABaf+gAWr/oAIi//ECI//xAiT/8QIl//ECJv/FAif/xQKH//ECif/xAov/8QKN//ECj//xApH/8QKV/8UDFP/xAxj/xQMb//EDHf/xAzv/xQNE/8UDTP/FA03/oANO/6ADUv+gA2H/xQNp/8UDiv/FA4z/xQOO/8UD3f/xA9//8QPh//ED4//xA+X/8QPn//ED6f/xA+v/xQPt/8UD7//FAD0ARf/nAEb/5wBH/+cASf/nAFP/5wCR/+cAlf/nALb/5wDD/+cAxP/nAPL/5wD+/+cBGf/nAR3/5wE1/+cBR//nAUj/5wFS/+cCE//nAhT/5wIV/+cCFv/nAhf/5wIv/+cCMf/nAjP/5wI1/+cCN//nAjn/5wI7/+cCPf/nAj//5wJB/+cCQ//nAkX/5wJH/+cCSf/nAxD/5wM2/+cDOv/nAz3/5wNc/+cDYv/nA2f/5wN1/+cDd//nA3j/5wOE/+cDlf/nA7H/5wOz/+cDtf/nA7f/5wO5/+cDu//nA73/5wO//+cD0//nA9X/5wPX/+cD2//nAHEABAAMAAkADABF/+gARv/oAEf/6ABJ/+gAUf/qAFP/6ABYAAsAWwALAJH/6ACV/+gAtv/oALgACwDD/+gAxP/oAPL/6AD+/+gBE//qARUACwEZ/+gBHf/oATX/6AFH/+gBSP/oAVL/6AFlAAwBZgAMAWgADAFpAAwBagAMAhP/6AIU/+gCFf/oAhb/6AIX/+gCHf/qAh7/6gIf/+oCIP/qAiH/6gImAAsCJwALAi//6AIx/+gCM//oAjX/6AI3/+gCOf/oAjv/6AI9/+gCP//oAkH/6AJD/+gCRf/oAkf/6AJJ/+gCa//qAm3/6gJv/+oClQALAxD/6AMW/+oDGAALAxz/6gM2/+gDOP/qAzr/6AM7AAsDPf/oA0QACwNMAAsDTQAMA04ADANSAAwDXP/oA2EACwNi/+gDZ//oA2kACwN1/+gDd//oA3j/6AOC/+oDhP/oA4b/6gOKAAsDjAALA44ACwOV/+gDsf/oA7P/6AO1/+gDt//oA7n/6AO7/+gDvf/oA7//6APF/+oDx//qA8n/6gPL/+oDzf/qA8//6gPR/+oD0//oA9X/6APX/+gD2f/qA9v/6APrAAsD7QALA+8ACwAMAFr/7QBc/+0A6f/tApj/7QKa/+0CnP/tAzz/7QNs/+0Dev/tA5T/7QP5/+0EAf/tAAwAWv/yAFz/8gDp//ICmP/yApr/8gKc//IDPP/yA2z/8gN6//IDlP/yA/n/8gQB//IAHwBY//QAWv/yAFv/9ABc//MAuP/0AOn/8gEV//QCJv/0Aif/9AKV//QCmP/zApr/8wKc//MDGP/0Azv/9AM8//IDRP/0A0z/9ANh//QDaf/0A2z/8gN6//IDiv/0A4z/9AOO//QDlP/yA+v/9APt//QD7//0A/n/8gQB//IAeQAE/8oACf/KADb/0gA4/9QAOv/0ADv/0wBP/9EAUP/RAFL/0QBY/+YAWv/vAFv/5gC4/+YAvP/RAM3/0gDR/9IA1f/0ANn/7QDc/+EA5//RAOn/7wDr/9EA7P/RAO7/0QDv/9EA8P/RAPP/0QD1/9EA9v/RAPn/0QD7/9EBAP/RART/1AEV/+YBLv/SATH/0QE2/9IBQP/RAUX/0QFl/8oBZv/KAWj/ygFp/8oBav/KAgv/0wIc/9ECJv/mAif/5gJk/9ECZv/RAmj/0QJp/9ECgP/SAoL/0gKE/9IClP/TApX/5gKW/9MC/f/TAwz/0wMN//QDD//TAxL/0QMY/+YDJ//tAzP/0gM0//QDN//RAzn/0QM7/+YDPP/vAz7/0QND/9EDRP/mA0v/0wNM/+YDTf/KA07/ygNS/8oDVP/RA13/0QNg/9QDYf/mA2j/0wNp/+YDa//0A2z/7wN5//QDev/vA37/0QOA/9EDif/tA4r/5gOL/+0DjP/mA43/7QOO/+YDj//hA5L/0QOT//QDlP/vA+r/0wPr/+YD7P/TA+3/5gPu/9MD7//mA/P/0QP1/9ED9v/SA/j/9AP5/+8D+v/hA/z/4QP//9EEAP/0BAH/7wQM/9EEDv/RBBD/0QQT/9MAHQA2/74AWP/vAFv/7wC4/+8Azf++ANH/vgEV/+8BLv++ATb/vgIm/+8CJ//vAoD/vgKC/74ChP++ApX/7wMY/+8DM/++Azv/7wNE/+8DTP/vA2H/7wNp/+8Div/vA4z/7wOO/+8D6//vA+3/7wPv/+8D9v++ADQANv/mADj/5wA6//IAO//nAFr/8QDN/+YA0f/mANX/8gDZ/+4A3P/oAOn/8QEU/+cBLv/mATb/5gIL/+cCgP/mAoL/5gKE/+YClP/nApb/5wL9/+cDDP/nAw3/8gMP/+cDJ//uAzP/5gM0//IDPP/xA0v/5wNg/+cDaP/nA2v/8gNs//EDef/yA3r/8QOJ/+4Di//uA43/7gOP/+gDk//yA5T/8QPq/+cD7P/nA+7/5wP2/+YD+P/yA/n/8QP6/+gD/P/oBAD/8gQB//EEE//nAIQAIwAQACX/6AAp/+gAMf/oADP/6AA2/+AAOP/gADv/3wCB/+gAkP/oAJT/6ACtABAArv/oAK8AEADN/+AAzv/oAM8AEADR/+AA2AAQANz/4QDtABAA9P/gAP8AEAED/+gBCAAQARL/6AEU/+ABFv/oARj/6AEa/+gBHP/oAS7/4AE0/+gBNv/gAU0AEAFR/+gB8QAQAfIAEAHzABAB9AAQAfUAEAH2ABAB9wAQAfj/6AIC/+gCA//oAgT/6AIF/+gCBv/oAgv/3wIoABACKgAQAiwAEAIu/+gCMP/oAjL/6AI0/+gCQv/oAkT/6AJG/+gCSP/oAmr/6AJs/+gCbv/oAoD/4AKC/+AChP/gApT/3wKW/98Cn//oAvgAEAL8/+gC/f/fAwAAEAMJ/+gDDP/fAw//3wMoABADL//oAzL/6AMz/+ADS//fA1UAEANX/+gDYP/gA2P/6ANm/+gDaP/fA24AEANwABADgf/oA4P/6AOF/+gDj//hA5D/4AOWABADlwAQA5gAEAOaABADnAAQA54AEAOgABADogAQA6QAEAOmABADqAAQA6oAEAOsABADrgAQA8T/6APG/+gDyP/oA8r/6APM/+gDzv/oA9D/6APS/+gD1P/oA9b/6APY/+gD2v/oA+r/3wPs/98D7v/fA/b/4AP6/+ED+//gA/z/4QP9/+AEEQAQBBIAEAQT/98ALQA2//EAOP/0ADr/9AA7//AAzf/xAM//9QDR//EA1f/0ANj/9QDZ//MBFP/0AS7/8QE2//EBTf/1Agv/8AKA//ECgv/xAoT/8QKU//AClv/wAv3/8AMM//ADDf/0Aw//8AMn//MDM//xAzT/9ANL//ADYP/0A2j/8ANr//QDef/0A4n/8wOL//MDjf/zA5P/9AOW//UD6v/wA+z/8APu//AD9v/xA/j/9AQA//QEEf/1BBP/8ABZACMADwA2/+YAOP/mADoADgA7/+YArQAPAK8ADwDN/+YAzwAOANH/5gDVAA4A2AAOANkACwDc/+UA7QAPAPT/6AD/AA8BCAAPART/5gEu/+YBNv/mAU0ADgHxAA8B8gAPAfMADwH0AA8B9QAPAfYADwH3AA8CC//mAigADwIqAA8CLAAPAoD/5gKC/+YChP/mApT/5gKW/+YC+AAPAv3/5gMAAA8DDP/mAw0ADgMP/+YDJwALAygADwMz/+YDNAAOA0v/5gNVAA8DYP/mA2j/5gNrAA4DbgAPA3AADwN5AA4DiQALA4sACwONAAsDj//lA5D/6AOTAA4DlgAOA5cADwOYAA8DmgAPA5wADwOeAA8DoAAPA6IADwOkAA8DpgAPA6gADwOqAA8DrAAPA64ADwPq/+YD7P/mA+7/5gP2/+YD+AAOA/r/5QP7/+gD/P/lA/3/6AQAAA4EEQAOBBIADwQT/+YALgA2/+MAOv/lADv/5ADN/+MAz//lANH/4wDV/+UA2P/lANn/6QDt/+oA///qAS7/4wE2/+MBTf/lAgv/5AKA/+MCgv/jAoT/4wKU/+QClv/kAv3/5AMM/+QDDf/lAw//5AMn/+kDM//jAzT/5QNL/+QDaP/kA2v/5QN5/+UDif/pA4v/6QON/+kDk//lA5b/5QOX/+oD6v/kA+z/5APu/+QD9v/jA/j/5QQA/+UEEf/lBBL/6gQT/+QAIQA2/+IAOv/kAM3/4gDP/+QA0f/iANX/5ADY/+QA2f/pAO3/6wD//+sBLv/iATb/4gFN/+QCgP/iAoL/4gKE/+IDDf/kAyf/6QMz/+IDNP/kA2v/5AN5/+QDif/pA4v/6QON/+kDk//kA5b/5AOX/+sD9v/iA/j/5AQA/+QEEf/kBBL/6wAXADb/6wA7//MAzf/rANH/6wEu/+sBNv/rAgv/8wKA/+sCgv/rAoT/6wKU//MClv/zAv3/8wMM//MDD//zAzP/6wNL//MDaP/zA+r/8wPs//MD7v/zA/b/6wQT//MAMABP/+8AUP/vAFL/7wBa//AAvP/vAOf/7wDp//AA6//vAOz/7wDu/+8A7//vAPD/7wDz/+8A9f/vAPb/7wD5/+8A+//vAQD/7wEx/+8BQP/vAUX/7wIc/+8CZP/vAmb/7wJo/+8Caf/vAxL/7wM3/+8DOf/vAzz/8AM+/+8DQ//vA1T/7wNd/+8DbP/wA3r/8AN+/+8DgP/vA5L/7wOU//AD8//vA/X/7wP5//AD///vBAH/8AQM/+8EDv/vBBD/7wAdAAT/8gAJ//IAWP/1AFv/9QC4//UBFf/1AWX/8gFm//IBaP/yAWn/8gFq//ICJv/1Aif/9QKV//UDGP/1Azv/9QNE//UDTP/1A03/8gNO//IDUv/yA2H/9QNp//UDiv/1A4z/9QOO//UD6//1A+3/9QPv//UABAD0/+0DkP/tA/v/7QP9/+0ACgAE//UACf/1AWX/9QFm//UBaP/1AWn/9QFq//UDTf/1A07/9QNS//UAVABF//AARv/wAEf/8ABJ//AAUf/rAFP/8ACR//AAlf/wALb/8ADD//AAxP/wAPL/8AD+//ABE//rARn/8AEd//ABNf/wAUf/8AFI//ABUv/wAhP/8AIU//ACFf/wAhb/8AIX//ACHf/rAh7/6wIf/+sCIP/rAiH/6wIv//ACMf/wAjP/8AI1//ACN//wAjn/8AI7//ACPf/wAj//8AJB//ACQ//wAkX/8AJH//ACSf/wAmv/6wJt/+sCb//rAxD/8AMW/+sDHP/rAzb/8AM4/+sDOv/wAz3/8ANc//ADYv/wA2f/8AN1//ADd//wA3j/8AOC/+sDhP/wA4b/6wOV//ADsf/wA7P/8AO1//ADt//wA7n/8AO7//ADvf/wA7//8APF/+sDx//rA8n/6wPL/+sDzf/rA8//6wPR/+sD0//wA9X/8APX//AD2f/rA9v/8ACPAAQADQAJAA0AQ//wAEX/sABG/7AAR/+wAEn/sABR/9YAU/+wAFgACwBbAAsAkf+wAJX/sAC2/7AAuAALAMT/sADt/68A8v+wAP7/sAD//68BE//WARUACwEZ/7ABHf+wATX/sAFH/7ABSP+wAVL/sAFlAA0BZgANAWgADQFpAA0BagANAgz/8AIN//ACDv/wAg//8AIQ//ACEf/wAhL/8AIT/7ACFP+wAhX/sAIW/7ACF/+wAh3/1gIe/9YCH//WAiD/1gIh/9YCJgAL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AlQA0QJXAlcA0gJZAlkA0wJbAlsA1AJdAl0A1QJfAl8A1gJhAmEA1wJjAm8A2AJxAnEA5QJzAnMA5gJ1AnUA5wKAAoAA6AKCAoIA6QKEAoQA6gKGAoYA6wKIAogA7AKKAooA7QKMAowA7gKOAo4A7wKQApAA8AKSApIA8QKUApcA8gKZApkA9gKbApsA9wL4Av0A+AMAAw8A/gMSAxIBDgMWAxYBDwMYAxgBEAMcAxwBEQMfAyABEgMiAysBFAMtAy8BHgMxAzYBIQM4AzkBJwM7Az4BKQNEA0UBLQNHA0cBLwNJA0kBMANLA04BMQNSA1cBNQNaA1oBOwNcA1wBPANgA2EBPQNmA2YBPwNoA3EBQAN0A3UBSgN3A3oBTAOBA4IBUAOGA4YBUgOIA44BUwOTA5QBWgOYA8ABXAPCA8IBhQPEA9EBhgPZA9kBlAPcA9wBlQPeA94BlgPqA+8BlwPyA/IBnQP0A/QBngP2A/YBnwP4A/kBoAP+BAEBogQEBAQBpgQGBAcBpwQJBAkBqQQNBA0BqgQPBA8BqwQTBBMBrAABAAoACgAoADMANAA9AEgATQBWAFkAXQABACIAmQCwALIAswC0ALsAvgC/AMAAxQDHAMgAyQDNANEA0wDUANYA3gDiAOMA5ADlAOYA6ADqAOwA8QDzAPYA+wD+AR0B3AACAHYABAAEAAAACQAJAAEADgAOAAIAEAAQAAMAIwAnAAQAKgAyAAkANgA8ABIAQwBFABkARwBHABwASgBKAB0ATwBSAB4AVABUACIAWABYACMAWgBcACQAiACIACcArACvACgAuAC4ACwAvAC8AC0AwgDCAC4AzwDQAC8A0gDSADEA1QDVADIA1wDZADMA2wDbADYA3QDdADcA3wDfADgA4QDhADkA5wDnADoA6QDpADsA8gDyADwA9wD3AD0A+QD6AD4A/wEAAEABBQEFAEIBCAEIAEMBEwEVAEQBJwEpAEcBLAEsAEoBLgEuAEsBRQFFAEwBZQFrAE0BbwFwAFQB7AHtAFYB7wHvAFgB8QIXAFkCHAIhAIACJgI2AIYCOAJBAJcCSgJMAKECTgJOAKQCUAJQAKUCUgJSAKYCVAJUAKcCVwJXAKgCWQJZAKkCWwJbAKoCXQJdAKsCXwJfAKwCYQJhAK0CYwJvAK4CcQJxALsCcwJzALwCdQJ1AL0CgAKAAL4CggKCAL8ChAKEAMAChgKGAMECiAKIAMICigKKAMMCjAKMAMQCjgKOAMUCkAKQAMYCkgKSAMcClAKcAMgC+AL9ANEDAAMPANcDEgMSAOcDFgMWAOgDGAMYAOkDHAMcAOoDHwMgAOsDIgMrAO0DLQMvAPcDMQM2APoDOAM+AQADRANFAQcDRwNHAQkDSQNJAQoDSwNOAQsDUgNXAQ8DWgNaARUDXANcARYDYANhARcDZgNxARkDdAN1ASUDdwN6AScDgQOCASsDhgOGAS0DiAOOAS4DkwOUATUDmAPAATcDwgPCAWADxAPRAWED2QPZAW8D3APcAXAD3gPeAXED6gPvAXID8gPyAXgD9AP0AXkD9gP2AXoD+AP5AXsD/gQBAX0EBAQEAYEEBgQHAYIECQQJAYQEDQQNAYUEDwQPAYYEEwQTAYcAAgE4AAQABAAdAAkACQAdAA4ADgAeABAAEAAeACQAJAABACUAJQAEACYAJgADACcAJwAFACoAKwACACwALAAMAC0ALQAJAC4ALgAKAC8AMAACADEAMQADADIAMgALADYANgAGADcANwAMADgAOAANADkAOQAQADoAOgAOADsAOwAPADwAPAARAEMAQwATAEQARAAVAEUARQAUAEcARwAWAEoASgAXAE8AUAAXAFEAUQAYAFIAUgAVAFQAVAAaAFgAWAAZAFoAWgAbAFsAWwAZAFwAXAAcAIgAiAAVAKwArAAHAK4ArgADALgAuAAZALwAvAAXAMIAwgAVAM8A0AAfANIA0gACANUA1QAOANcA2AACANkA2QASANsA2wACAN0A3QACAN8A3wAfAOEA4QAfAOcA5wAIAOkA6QAbAPIA8gAVAPcA9wAgAPkA+QAgAPoA+gAVAP8BAAAgAQUBBQAgARMBEwAYARQBFAANARUBFQAZAScBJwAVASgBKAAHASkBKQAIASwBLAAJAS4BLgAJAUUBRQAIAWUBZgAdAWcBZwAeAWgBagAdAWsBawAeAW8BcAAeAewB7QADAe8B7wAGAfgB+AAEAfkB/AAFAf0CAQACAgICBgADAgcCCgAMAgsCCwAPAgwCEgATAhMCEwAUAhQCFwAWAhwCHAAXAh0CIQAYAiYCJwAZAikCKQATAisCKwATAi0CLQATAi4CLgAEAi8CLwAUAjACMAAEAjECMQAUAjICMgAEAjMCMwAU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AAAAGAAAAAAAFQAEABgAAAAAAAUAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAUACAANAAIABQAAAAUAFQAFAAAABQAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAGAAAAAAABQAVAAoAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAABgAAAAVABUAAAAAAAAAAAABAAAAAAAAAAUAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXABcAAAAHAAcAEwAHAAcABwATAAAAAAAAABMAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAEQARABEAEQARABEAEQAFAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAGAAYABgAGAA4AGgAaABoAGgAaABoAGgAVABUAFQAVABUAAAAAAAAAAAAYAAgACAAIAAgACAALAAsACwALAAIAAgARABoAEQAaABEAGgAFABUABQAVAAUAFQAFABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUABQAVAAUAFQAFABUABQAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAGAAAABgAGAAFAAgABQAIAAUACAAAAAAAAAAAAAAAAAAZABsAGQAbABkAGwAZABsAGQAbAAoAAAAKAAAACgAAAAYACwAGAAsABgALAAYACwAGAAsABgALAAkAAAAOAAIADgAUAAwAFAAMABQADAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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", -"sampleImage.jpg":"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AAGyAAAAEAAAAAEAAAAAABJwcmludE91dHB1dE9wdGlvbnMAAAASAAAAAENwdG5ib29sAAAAAABDbGJyYm9vbAAAAAAAUmdzTWJvb2wAAAAAAENybkNib29sAAAAAABDbnRDYm9vbAAAAAAATGJsc2Jvb2wAAAAAAE5ndHZib29sAAAAAABFbWxEYm9vbAAAAAAASW50cmJvb2wAAAAAAEJja2dPYmpjAAAAAQAAAAAAAFJHQkMAAAADAAAAAFJkICBkb3ViQG/gAAAAAAAAAAAAR3JuIGRvdWJAb+AAAAAAAAAAAABCbCAgZG91YkBv4AAAAAAAAAAAAEJyZFRVbnRGI1JsdAAAAAAAAAAAAAAAAEJsZCBVbnRGI1JsdAAAAAAAAAAAAAAAAFJzbHRVbnRGI1B4bEBSAAAAAAAAAAAACnZlY3RvckRhdGFib29sAQAAAABQZ1BzZW51bQAAAABQZ1BzAAAAAFBnUEMAAAAATGVmdFVudEYjUmx0AAAAAAAAAAAAAAAAVG9wIFVudEYjUmx0AAAAAAAAAAAAAAAAU2NsIFVudEYjUHJjQFkAAAAAAAA4QklNA+0AAAAAABAASAAAAAEAAgBIAAAAAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0EAAAAAAAAAgABOEJJTQQCAAAAAAAEAAAAADhCSU0EMAAAAAAAAgEBOEJJTQQtAAAAAAAGAAEAAAACOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA0sAAAAGAAAAAAAAAAAAAAE2AAACtwAAAAsAQgBlAHoAIABuAGEAegB3AHkALQAxAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAK3AAABNgAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAABNgAAAABSZ2h0bG9uZwAAArcAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAATYAAAAAUmdodGxvbmcAAAK3AAAAA3VybFRFWFQAAAABAAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVYVAAAAAEAAAAAAA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxpZ25lbnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGlnbmVudW0AAAAPRVNsaWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVlbnVtAAAAEUVTbGljZUJHQ29sb3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0bG9uZwAAAAAAAAAKbGVmdE91dHNldGxvbmcAAAAAAAAADGJvdHRvbU91dHNldGxvbmcAAAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAAAAAAOEJJTQQoAAAAAAAMAAAAAj/wAAAAAAAAOEJJTQQUAAAAAAAEAAAAAjhCSU0EDAAAAAAPmwAAAAEAAACgAAAARwAAAeAAAIUgAAAPfwAYAAH/2P/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgARwCgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A72Alt81KEoVq2mx9w81El3fVEhMQlakYfYDoTHgok+SKWptqNhGqKSmI8tfFELE21OtSMg/7VIbxwE8FPt08/FK0JWuyWtDmN3MHPDoUftVodIgjvA4UJcBEkDwUSJTREdQFxkehKf7W89h8z/eoWZb3iIj4IW3t2SaGgjdq3uByiIRHRXHI9WbLawJfJPhrCkb2uPteWjuFCWfmjaPE6qLjXEtkkdzx+VHhF9VcWm4XD3aue7T80f3oZufu7JHceSnbS94kRHmnUBuiydmDrXn/AHIZJPKKWQeZ+CaE4ELTfV//0PRfQf4H8FE1PHZW4kaJtfBP9wsRxBp7XDsmI8Qr0E8hMa5KPueCPa7NLRIDcYHKtsNdu70y2zY4tftMw4fSY/b+f/JTlgPZH3PBHteLShNsk8K26hs6aJCkTPJR9wI9stZgZBDmbj2P8FEtjloVza0DUfxTbK5mJnuEuPzTwaNEj5JoV51NU6Dt4n+9QNQHAlOGQLTiLU2pi1WvTE+HxS2J3Gt9stPb5JbVbLXNHbXyUCw+A+SImgwa235pw09p+9GNZ8Ewpd4I8QVwnsxFeoJg+Sc44MlsHyCIK3gcD704bHKHF4rhHuH/0fSg6snQGSsq361/VqqR+0qXuEjbW/fqNPzfb/0lcx8mq/Gry2hxotqbdxrse31Id+77V5tX0r68QA7PwyNAIro0+/C/cRMq7fVaB/IPWdR+uXT7sO/Hw7i222tzWXm6ussJ0FjCx1tntXLu6jnW+3J6p67AZa05cQY27v5v971P/Pf/AAiJg9L+s++w9RzKXVek40jHZjB/raeh6jrcH+Y+l6v+EVrqGD1d2Nt6ddVj5ReNr7a6Lay3ad9Tmuxz6fv9/re//R/4RDi8Y/y/wVGN9Jfy/wAJpHKfBa3MhpcXhoywPeRt9R+2r32fy0RnVOvbg5nWdr2ua5pdd6rYBbLbKdrG2MfttZ9L8/8A4JX68DODKRa5jrAKheWigBzg39Z9P9W9vqWfzax/rC9vT62HPNv6xjXV4H2dzWFuY0teb8j7N9j/AFX0X4/6Oz1/f6n6BOBJIFx17f8AoqKA1qWnf/0Z6fB+srse6+22+u5uQd7q7LIax/tbuodtd6dXps91H0P8N9P1vVtu+umEx+x7sdr9NPVeZkhrYc2hzXbnOavKB1HLDSXZFxaBJix8x/nLWzurfWfoNGHTkW4zHXsLqm001lvohrPS3ubtq9X3e9no+p/pbbf8EZYzEgXfF9P++UJggmqr6voA+u/TSN3q45BiD6r+52N/wH7/ALUh9d+lkF3rY8aSfVf3mP8AAfyHLm+jdV6nm0iz1W5zHMqc++uo1trtfpkdPcK27bbsRmy6y3/hVdZmdYNdbvsdm9zq2vZ+klge7ZdZPp+5uOz9K799NII/9Gj/AN6mx/KMnXb9delujbbjuniLXHs53+g/drein604Y59GRyBdr+NSw7bvrE8CrEwvUusLWiy2fTrDvU9bIt9ZrK3txWVss9Ox/wCk9T/rN2Hn0dRs6rdWy69lYDDY6ptj2VONTLG1OGEHMc6z6f6Fn+ESjZNXX1iUTkALq/8ABk9B1Tr3Ucm5rsTOqxKg0tFbLYlx/OcYfu93/QVQdU6yC4jqfud39ccD6HNP7v7qyOju6jZkjHa61ufXYHXV32AsGO3b9tx3syHWV/atp/RP9Pez/TVrbfV1eXFoqDQHgAmgmd4Nf+D936DcxO20uP8Ahf8AoqzfWpf4P/oyH9p9ZY5xq6kGF53PJuBkwxgcf0P+ir2f6+/V6b9Y7qMYV5t9WVb6hcbTaJLDH6L6DPoqgKepCq4WOqFr33jGcDQWgOH+T2WRX9Kt/wDO7v8AwZI09TN1cekKw8m1u7Hl1ZqLWtY41/S+17LP+L/7bSv+tD+X+CkCukvr/wCjO8PrT008yweO+k/gLkQfWDAcAWkkHUEGr/0uudrq6gCw2hhaCz1AHUA8EW/mNc39JscuG6ljdKr6pl0dRpfb1CsPuyrKrqmsdZ6ZyrfSZVjNZtd/wbUL7GJ8tUjxEh5vsVXUqrww1gkWEhp9vbd+49/7iKbT4LiPqj1Cmiqvp9I9PBwrL2h9jtzxD36eytjHMfba9zfp2Lov2308ucwWOLmgE+xw0cXBvueGt/MclCeh4q0P4JlE2K7P/9Kj0/q32XK9Vlh3NbDt99bqwcgDGrvstrbvcyn7R9pe/Y+v9H/LrWtb1Sh/S7serrXT6eouDhVksyQ6th37mO3XusyP5j9G72fTXIegHOud9oc77TaW2MezcXVVMPou0r2b7b/T/R0t2V/olnuwrG1F9eO51hY8S1pP0vZO5rfd7XKGOSMom5R4hrWnqW+4B4/V7y3qLXXWPq+sGCyp1uW+thyGe2q6ltXS6v8A2n5m7Js/6HrJU9QDbKnW/WDBsrZZgutaMivVlFbmdXb+b/ynf+kr/wDBPQXAVdGzNzbqsW97WODyW0OcIHu+m0Oa1Fx+nZ/oP/yY97vTeS402Eu9R1bHSR9L7N9Or9xScIuuIbb3FPH4F7P7XmtxBUfrP0/7T9l9P1TeyDkfaftP2vVu7Z+y/wBR+j9P/B7P0yz/APGD1LAyh04YV9GUA/JJ9KxtvpgjH2/zL3bX/wBdcvj49rn1EYXrVPtb6dz6nO3tY30XtDhsa6v/AAmxBdhZzWMudjXV47AGsf6bgx3dw3xt+mUoVxRJIH1iiU7BFJmvkEbS8QZaOSAJctH61WZP2TpYyuo4/U7Wi6Lsaxrwxm3G9PHsFTWenZXH5yptwshmJblPLanUEg0WkNs9oGpre5ln52xu1n01pn6o9Ptx9teVY1zR6pL/AExBe2txbbuNfp+xn+FdWpMmbHYlxgiF3SMcDRFfNVN36nZmTX0h4w7cakm7JNrcq2sONv2egdPfU23Z+h+1/wA//wAGuit6j1HcfQyunhv6fbuuqn+Yr/Z35/8A5Zev9p/7rbFx9P1O6W8v35j5qEua52NW8fS27qrL3erurrfb+ifZ/wAUi2/Unp3oONd2Tu2E1ucyoNJ9xY5zt30FEZwl6hIES1BZACNK2evq6pksy2u+2YDKd9vvN9Q2s9Kv7K93vO7ZmfanXf8ABekuT6u57+oPc++vJcW1zfQ/fW47GjdXawMa/wBvs+ih4n1Rpxcmu224FglpGwOc6RbTFdMW+s97vT/Re+z3+n/OK+3onTG1+3KvFVQiRjvc1rZJgvZVtb7js96MJQB3H2LJgy0r8Wf1Xy+nYmbuy9lLyLC3MttFbGNNZHpPbZ+jc6135633dW6ccjc3q+EKjbU8V/aWT6bWuF9ezX+ds2u+l/1ytc/T03puH1Gm8ZtpyKgTXjPxnWNeSHMk45pf630/3Pp/8IsfO+q72dUya8P7RdiUFzKb2gvc4gN/PpZs936Tds2em/6aJnEk0dxWyACBVbG/m/S/d9L2Y6rgta1tnWcIvaKg8/amn3Ns3ZDvo/4Sj9F/58/0iDd1St1T21df6cyw12NrebQQLHXi7HsIH5leBuxH/wDC+9Yh6L03H6djuOPdZkPL25NhZcXNY20b6XtpHp+o7Cdtf7ff+n9P9IhZOL0mu/HZi9Ftyqbv523bltNQmPU2ub+nZsdv/RppyRJ18/liE1Wnh1kXo39ZwzZYW9a6eK3PyDW31iCGPDP2ewn3e/Gc237Q7/thclmV9bf1DPcy63MrsstdTk0lxZY2ym70jTZ7d9bbPRY3/hUmtrIE/Va0PL9pbuySQ3/SfRV+3o3Qfte/9mWuxTW8OnHzA5129ux8mPZ6Pqe399IziP8Aein7PtWwLL+n4ebk5lDjtfdd6b9vuDg12/8ASC1jv0jnWfpK7P5pBd9csICGYTGw3c5/6MFzXD0/8HjM9P32Nd+jT5NXTsJzDi4LhjPpuq+y2V3M9W95r9NnqWbb2+rTu/wn83Vaq1A6absU5HRm0Yz6y7IcPWeJ9/oVDdYd9O9tFjbK0PciNTrr3UT4gfV//9PmW/t39IWnIkgDUOjT6Mta3b9H6Hp/mKQt62Pa0XiyJcS2TEd/YuOSWWfa68H/ADWpr4vXOv6nJ3Nft13S2DJ01/R/up6HdTLnuLrGFxEhrSdB9HQs9ti5BJA+1Rrh/wCajV7Wy3qjg8WusA4durAP/Uf9/U6j1N1h9N1gP8kEGf7DGtXDpKM+3WnD/wA1Wvi9uLeqktA9YSIb7TMePta72IRyc8TDXEAkOPpwOPd6ns/6pcaknD2utf8ANVq9mLs5rpYPdGoYwF0H6O72f+YJ25Fxa1zht0IDX1s8vBn/AJguLSS9Hhf0Vq9vXdmOZtr+iXH6DANe8OFe3ck+65utrWOa2NwewbPLdptXEJJp4b6f2q1e+ozsSWi3HZJ4hrNTptiG7m/yFaZZiP3QysAfSEAH+1t/O2rzdJRzr9FcL8H0kPxw+am0usH0gI3En96NqcOa5m7Y1gIGgPtAHaGl7e681STFavpbnDeG2Bm+PpEdvm7cokWOESxoEemWeH5n0fp/nfSXmySIU+iPFW4k3VCxztG+lI4/6LvTURXjBzw2xhsO3d5Cf0cbQ1/9VeepJ2qPsf/ZADhCSU0EIQAAAAAAWQAAAAEBAAAADwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAAABUAQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAIABDAFMANQAuADEAAAABADhCSU0EBgAAAAAABwAEAAAAAQEA/+EN3Gh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjEgNjQuMTQwOTQ5LCAyMDEwLzEyLzA3LTEwOjU3OjAxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgTWFjaW50b3NoIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxNC0wMy0xOVQwMzowMjoyNiswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxNC0wMy0xOVQwMzowMjoyNiswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTQtMDMtMTlUMDM6MDI6MjYrMDE6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDI4MDExNzQwNzIwNjgxMTg3MUY4MTMxRkI2RTY4OTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTg3MUY4MTMxRkI2RTY4OTgiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowMTgwMTE3NDA3MjA2ODExODcxRjgxMzFGQjZFNjg5OCIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjAxODAxMTc0MDcyMDY4MTE4NzFGODEzMUZCNkU2ODk4IiBzdEV2dDp3aGVuPSIyMDE0LTAzLTE5VDAzOjAyOjI2KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgTWFjaW50b3NoIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowMjgwMTE3NDA3MjA2ODExODcxRjgxMzFGQjZFNjg5OCIgc3RFdnQ6d2hlbj0iMjAxNC0wMy0xOVQwMzowMjoyNiswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/iDFhJQ0NfUFJPRklMRQABAQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAABAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////uAA5BZG9iZQBkAAAAAAH/2wCEAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDAwMDAwMEAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBwcHDQwNGBAQGBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIATYCtwMBEQACEQEDEQH/3QAEAFf/xAGiAAAABwEBAQEBAAAAAAAAAAAEBQMCBgEABwgJCgsBAAICAwEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAgEDAwIEAgYHAwQCBgJzAQIDEQQABSESMUFRBhNhInGBFDKRoQcVsUIjwVLR4TMWYvAkcoLxJUM0U5KismNzwjVEJ5OjszYXVGR0w9LiCCaDCQoYGYSURUaktFbTVSga8uPzxNTk9GV1hZWltcXV5fVmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6PgpOUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6EQACAgECAwUFBAUGBAgDA20BAAIRAwQhEjFBBVETYSIGcYGRMqGx8BTB0eEjQhVSYnLxMyQ0Q4IWklMlomOywgdz0jXiRIMXVJMICQoYGSY2RRonZHRVN/Kjs8MoKdPj84SUpLTE1OT0ZXWFlaW1xdXl9UZWZnaGlqa2xtbm9kdXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6Pg5SVlpeYmZqbnJ2en5KjpKWmp6ipqqusra6vr/2gAMAwEAAhEDEQA/AO70YnNo6pqrA9cUO5v440rfPxrjSthwdq40l3IdK4KYku2wq0GI2rUYquDKDQgfPpkSGVr/AFSo+EkU+nBwp4nC6lIoW/DHgC8ZaMs/XkTjwhPEWxcSeJ+WPAF4y5rhidjQ48ATxFct01NzjwBeNY0rnrXCIhBkSpcpB+0flkqYEtCWQHrvjwhIkvFzIOorg4AjxFVL4jvTInG2DKrJqFRQ7jIeEy8VSlmDbBvoOSEUEoUlgadMtpoNtFm+nFRa0pKN6U8MKaLvjpu2+FC0hgRU7eIxVsueWxNMSFbaRya128MeFbcxFQRUDwGNJta5NTSowhCwnxJwsbW716nCriD44otbVgeu2KLXiaQH4TTBQTxFxdmNSanCAkEtFqeOKbXLJseu+DhW2jQ9zXwwsVypX9v78BLKlQRU/bGRJZBVBoKc8jTYHDlWof8AHBSEVbyUPxNlUotsSjVMTD7X0ZSQWwFr0oi1akHDbKlX01A61yNp4VJyiHfpkhugrFcNuv3YSGJXiQjtgISCqpNQg1+jIEM7VTdDtvkOBeJYZmY0yQim1prkqQSpujE9SMQqqkZHU4kpc23fAgqbSUB3yQDEyQ8lwQNjXJiLAyQb3NTlwi1GakZ98mIo4mjcLTY48LHiaWSp2bDS2rJKa7A5AhkCUQCxHSn05W2ArubKOv0YKTbYuvfHgRxLXuQcPAvGFM3A8foyXAjjUzOPfJCK8Sm0+S4WBkt9Qk0JJrhpFr1B71wJtplXxxWljcQP44QghT9Q9B0yVKvV/bAQtrmYH2xCkqbsabH78IDFYQw75JBCw07E4UKbuw6ZIBiSos57k5OmNrPWp4n6cNMeJYZHPenthpbcCfHFFv8A/9DvlM2Vuoa4jG1aKjG1aKA4bVaY/DDabdwNcVbo3hjYVaSRvhQ1WvXFXUxQ4DfFbVFlK9hkSGXE2bg9wMeBPGptID+yMIixMlnIV2JB+/JUxBbWVsFJ4my9R0xRxLSRhW1pY0w0qznvhAQ2j0PTAQm0QNxUb+2RLO2mZlWpG2IUlTaSuGmNtCVqUGGk2VpY4aQt5YVaL+2KLdyxRbdcNLa5pKjBS2tWjHfFQqmOMLWtTkbLKgosB2ybArMUOpirsVaIOFWhyGKrgTWmBVwG9anFILjTxwMrXKB3NcSoVUWMAb0r2yBZhUG26iv05Flbfr0Fa0OPDa8Tk1BlIqa4DiXxkYmo7eOVHE2jKpzXyuDko46RLIoJeLHuD9OTOO2HGu/SW/Xrg8JfFVorlm3B28ciYU2CdqyzHvue2Q4WQk01w6ipoBiIp410dyCK8qHEwTxhprhxvXbAIIMm0vPHpicaibbXKkbmnhgEEmaHeVSeuWCLAyCGmmNevXLYxapSUOa+OTphbXMN0/HDS2qJBy3ArXIkqIoqGxjG8n3DKpTLdGPeiQsXRRldkswtZB44VUJ+QHw5OLCSDkkl7jLgGokuSOVxUniMTSAFxQgGprgZUhZZWDEA7ZaItRkpCSU7DfDQRxFF20bFg7E/LK5FsjurTzKppWmRiGZlSibqOnX6clwMTNRe7FdhkhBici360D028cnwLxuW5IwcCOJxuiemPAjiWGZ69cPCjiWNK56tkuFBkVplbxw8K2saUnvkgEWsZmOLElrCxbG+K22KdPngSH//0e+ZsXUF2Kuwq1iyb3xRTsCHYq0Vr1w2q1o6kU2w8SrSrDCtNYUU7FDRAOKKa44qtpvhV2FLqnwxpacKU6Y0tLSBiq0rhtacBTClcrsp2ORpVxkLbNjSrMKrab1wq1Uk+2KGgN8VXFcVdTFFLSMKKdvihoYq3VqdcUupirZFDimnMvh0xQVmKHYq7FXYq3U4q6u+KurTFIK4N41wEJ4lVJlXod8iYshJbI3IeJwgKSohd/bvkmCKV4SoHceGVkFtBDYjhY05EYLKdkPPEUOxqMsibYSipZJrVlmYDbI8IZcS4XEnY4OAMxIrjPUUclsHCvEt9Q9jTwx4Vtf6zUoTtjwp4it9cjv9+PCgyd9ZenWmPAjjWtOfGuHhXiWGUEb7nJAMSVMk+OFja5AOtcBSEwsyOJPanXKJuRjXyTx9iT75ERbDIOW5Aw8CONv6yp2rjwJ4nGQHauPCtrCFPXphtiQGtgaYUFRmYAZKIYSOyAarHbvl4aVa2XiQSMhIsohG8lVdsrbkLMpkNa75OOzXIIWRQvf6MtBaypE5NDqjFFuBwLbeK24nCqw1rhQ1irRG+KrcKtjFFN7YFcOv0Ypf/9LvZzZOqcMUOGKurXFadXFabocCHYq7FXYq7DatUxtVpj8MNopaVIG+FaaoMUU7iMbQ0Vw2rXE4VaK064q1TDaXccVaoMVa474UtFSMbV2KtYVaIPyxVunviinUwWtOGKXUxtXUxtFO4DDaKWkUxtS6hwsab+KmBk0Sx64oa413GFFOKgDrv4YqtxVUCVHbBbKlvpv2GG0UuEZB+Ibd8BKRFeEtyNyQcjZZcIXxwoP2tsBkyEQi4ILd6cqHKZSIbYwCIbSLd0PD4a98h4xDPwgUJNo8iNVDVO/zy0ZwWqWCkIYHjNHUjLRIFrMCGmoPsj78IQs5k98ICCWuKnen04bRTXAYopw2xUFUDLTcYCyC5Xj/AJQcibZWF1YD7e2O62FkypQEEYRaJKDEZNrW7Yq3irRxVsf5jFVT15AKA8R4YOEMhIrDM/c4aRZa9ZvHGk24TNWuNKJLvXf6MeFPEV63L136ZHhCRIr/AKxQeOPCy4lJ5FfxrhApBWoorhRSulAMgWQWNLxrUYRFSaUHnZthsMsEWsyUyK9ckwU2rkgrsKtrgKG8CCtO/wBGSCQ3QnFVpBGKtYq7jXFWiKYq6mK04Yq//9PvebJ1JbwIdTFWqDCm26eBpitu59sCG8CuIGG1dTbFXUxVrFXYq7CrRUHG1Wem3jhVogjqPpxRTqfdhRTVBihxAw2rRG2Nq1TCrRAxVxXFNtU36Y2rRXDaWihGNqtySuwFXYFdireKt4q0cVb3xRTWK03itNbfLDaWiBhtFNcRja03tTpgSvWQjbrgIVt5amoFMFKsDkUwqCuaQt1A+jDSqkOzA7/LISDKKaQXDBQAajwzFlByoyakv6NxphGNZZEHNKHHX7sujGmmUrQcgoeuWtJWqVB3GGkWuafaijGlMlPl49ckAi1nNGYhSCV+0B2xYt1xV1cVtxbFVpJPfbwwrbWKuocVdirvbFXcW8MU0uCeJ3wWkBv0icbTwt/Vx442y4Vph8DhBRTRjUDrhRS0ca9cbTS4CppgSvWIVrgJSAvoAcFq1z7Y0tqErA98mAwkVLJsG8WK0qDhBVopQbYbVobYlW8CuxV2KupjatcRhtWivhjauIrhS1T78VcBvir/AP/U75mxdQ7FXYq4A98VbpgtNOp7YbQ44Fa3FMVbxV2KupXCrqYq1Q4q7FXYq7FVpAwppor4YUUtp9+FiQ7AimsKuIxtWqYbVrCrsVapim3UBxtK3hjatFThVricVdQ4q6uKt4q7FXYq0TirWKuxVvFWsVXBCae+NquaFgadcFppaSw2O4wodyH8owq1yatRtgpVwlevU4KTZbeQt418caW1nI1rhQ0aHrvXCEFYyjsa5IMGqYq7FVqRRoXZFCtIeUhH7RoBU/QMVtdirsVdscVaphVrFXYq2Kk4qiI7UlCT17ZWZtwxu9B++PEogvWBh+z9OAyTwuZHxtNKThhkgxJWUrtXrkmKrLYsq1D8iciJs+BDiFgx5ZLiY0qVAPTfFVrTN0AxAUyU2kbxyVNZKmzMd65IBbW4UN4ot2KHYq7FWqDG1dxxVog4VaOKuxV2KuxVsUxV1BhtXBN8bS//1e+ZsXUOpthTTYHvgWm6YFDgcUu2xV1MUU1XFadihvFLWKHYq7FNOIrhtDqYq1TFWqYUuxV3zxVoouG0U1wxtBC0imKKdhQ1scVdxxtLuGG1pbSmFDsVdtitupittU9sWTVBjatcffG1aIIwq1uMVaxVv3xVrFW6Yq6hwq2CVOBV4farYFWMRTbocKrcVdirsVbxV2KuIw2gtGv3YQxpojFadxHH3wrS2hxQ7FWn5BCVXkwGy1pU+FTirogWUErwYjdSQSD4VG2KaXEUPjihor37Yq4rthTSIt0RSGbK5lsjQR63MAHyyjhLkcYUXuY6/CPpyQgWJyBDtcsx75PhazkUmlJP8MnTHiaRHlNANvHtiTSx3REdooHvkDNsEUR6aEAM4FPHK7LZspSRwAGkgJycSWBpASEA0DZcGklTyTBawrhQt4nCrsKl2BFOwrTsVpviSKjBaadwOC1pv0277Y2tOKEY2tLaZJFNUGK07jitNEYVp1DitOrimm98Uv8A/9bvtN82NuqdvjauwK4HfClvfpgQ1vhV2BV3emKlxGBi0a4Vd9GKXYq7FDWKuxV2KuoMVdTDau4jxxtNraHCtu6Yq7bvitOoMUU1wHbG0ENcSMNrTVDirsVaoMKu4jG0U1xOG1pbQ4UU6mKtUxW3UxTbqYrbuIxRbRQY2tuCjFkuFKdMCLdhtDRFcVdTFXEA42q3ga7YU2tIOKWsVbGKt4q7FXYq7CimjitNcR9GFjS2mKKdTFXCoxV3XFWwK7V38MVDuIp1wsmq++NItqpxRbsVcS3Y4rblIHXFKpHMU6dMBDKMqae5lJNDQYBAJM1Lmx2Jrk6YEtHFCw1PXCrsKuxVsYpapvitN7YFcAtaHG1pWitufQH3yJlSRG0Utivfp4HKzkbBBd9Vjr8I+/BxsuAKTxKu5O2TEmBCHkK7gZMMSpGlDkrYLCD4YbVo18MVdhV2Nq1xGNpbAxV//9f0BTM91Tq0xQ11xV3HG1brih2K21QYrbqDFFu2xV1MUu3xV1MVtojFW6DFVprkgyC0++GkU2DvgpaXYEOocVdirVBhtXUGNq7iMbVojwxS1vhV2KuIU9cUU1xGK01xPbDa00a+GKGiaYVdsfnja0sOFi7CrhXFW+JwLTVMU07FaditOpitOpitOwrTsVp2KHYqt4DG1top4Y2m2uDY2tuoa0wpdvirqbYq7FXYq6gw2inUGNo4XYrwrSCR4YUUs3BwocScVdirWKt4q7FWjvirRGKtYVdirsVcRirXHDauK+GNq1QjemKXYVdQ4FVo1G1QMiSkIiN+PemVkMxsrLLXr08cjTO2nc9sQFtCylyp7DLAGuRQ9NjTc5YwLVKe2Nq6o7b42hxHjjaXbdKYUONAPDFVhpXDauGKv//Q9A75nurprFDsVdirqYrTsVpo4op1DiimqnCtN1ONLTt/DAtO3xWnYrTsU04rXDaQsK4bVuhxtVwpTIodTFFOxV2KupirqYq4jauFWqE9NxjaXe2KGiuG1a442lxBGKtVOFXYq0VBHTFVpSnvkrRS3jhRTfyGBacDU79MLKlSK2eVwqVNfuyEpgM447XvaSxvx6++AZAQyOIhs2rkUNB74PER4ZUzbSg79clxsTByW0jKWHQdceNfDLvQiD7knHiK8Kn6bA7KfbJWjhb9JiPi2xtBisK0+jDbAhrCh2KuxV2KuxW1pB+jG1tor4YbSC4An/PwxTbVD4b4q6h8MVt2KuxVqmG0ENcR4Y2imioxtadww2tNFcNop3A42imuJ8MVp1DitOKkdsbVqmKuC42rXE4q7Crq4q6mKtcRirXD3xtVy1HfAtrubdsaTbfqP44KXiLvWbGk8TYLNtTrhUFxiFTQ/RgtNLTFvvvhtaXJEa7dMBKiKobf+bBxJ4VKSIDY7eGSEkGKlxbwyVop3pt4Y2tO4GvTG1p//9H0MY2rmbbrStMXjjaCFpj98NrTfpjxxtaaKGu2K01Q4UNYq7FaaoMUN4q7FXYq7FXYq7FXYq1TFWxtirq4q7bFXCgxVvbFadTFaaIxWmt8WLqYq4jFXbYq4jw2xtNtFcIK2tIGFXYVpqoxVxI8MVpv0mIqBXHiZcLQA+kYsSitPl4ScSNj0yrKLDdikjXCOzVpXtlI2cjYqErcSVGWRYFCO78wT36jLAGqRc9x8HFdq9TiIsTNQ50NMmwtWBRAD1ORLMELZZgRsPnhEUSkoU2ybSWuOG0OpirWFXYq7FXYq7FXYq7FXVxVriuKtFfDDa2tNRim2q4pdXFXVxV2Ku2xRTqe+G0U1xHXvjau+P54ULa06jFXEjww0hscT3p88CuIGG0reIxWnccUO44VdirYXfwwFQGygAr1xZUtoPDFDa8DtT6cSoX7L075EslhDHocISuVXP0d8BKgKqCh75EskSSpTbqMiyUWUbmlThCCFIxnwpkrRSzgR0GESQQ4K3hhtD//0vRW+ZVuuouKnuMbC8Ja2HbDaaLVBXbG0UXcd/fG1orTGd8NppoIDjxKWim+2StFLTGcbWmiMKKaocUU6mK07FDsUOxV2KuxV2KuxV2KuxV2KuxV2KuxV1CADTY9DgtPCXYUO2xWnUGK01iimqYUuIxBVbxwpb442q6N+PIeORIZiWywg1675NrpyllNQd8BSFVJjy+I9e4yBizjNt2Zj12xASSpMHrU5MMStoK7jDbWQ4KOvTG0NcduuG0hZwamEFWqkYUU4EYKY03itNUxtDVMNq4jG1apirqHFXYVdirsVdirsVcd8VWlFxTbXp4bW3FKdMbW1mKXYq7FWwcVdih1PEYbRTRQYbWncBja06m42xtNONMUFrFDsNrTRUHG0U1xOBNLgMUrginrjaaaZD4fTjaeFeqFhv8ARkSUgKyxADYb5G2XC7hJX2wWmm+mNrTccbkkgYkpiFZYRWhGQMmdNvAOgxEl4VJ4CoyQkgwUinxDbJWw4X//0/TKop6CmWEtFNlBTxyNp4Wgu5/VhtFOMMZ+0BXHiKRAFY0KdsIkgwWG3WlRucPEx4VMwSdKD55LiDHhWm2lUVp065ITDEwKz02PbDbHgbFuxHQU8ceJeBY0TDthEl4Vvpt4YeJFNGJvDDxLwtGI+GNhHCtETnoK4bC8DjGw6g42EGJW/hhRwl1DiinUOKuxV2K06mK06mK06mK07fFI5owEulCKjwHbKXI5oedVVqAUp1yyJtomKU8kxccVcKk7Yq2QQd8bWmiMbWnYq4D2xWl6qgUnjvgtnSwr9+EFjTXAnpvhtNN+i3hg4k8KosRO1RgJZU36Mf7Tfdg4lpaRD0GIJQYhYUU9MmCx4Qs9L4tj9GNrwtFaHbDbExW0PhhtFNFARhtaWhD44bY01uO2K02AT2xRTqHwxWnUPhja06h8MFrTXH2w2inccbWncR44bWnca42tNcDja07icbWncTitNYULtiBgVaUr2w2lrgMUOMftjad1vpnxxtLuB9sNq7ia42i2qHwxtNthSTTpirRFD44q1htXUGNoprjhtadx98bWmwMFrTeKWwCTgVU3GBkFwpTAleCQP14CkFdyr8sDINV3xVf6tBQCmClBWCY8t9wMeFPEiFlDbnbI0ziWyVI64KZWsKpUYbYv/9T0wtRXw98mWndUqDkWVtcPc4qQt4gNuaYSUALqL41yLJsBSNsbQspvQ4rTiCVI8clFiVojWvSpw2ilxjU7FdsFp4VrRLt2w8SOFvglOmG08KlWgPw4bYkOEXJSTsMeJHCpj4PnkrRS5pqihGIVYFVmqV2w2il4gjJoB88TJPCHLbRk1pUYONeANGONagIB74gqYhSdI+pJH0ZMFgYhr6sp+yTiZrwKq20NNwa5HjLIYwse2i5UrQ+GHjKDjC2S2jH2WwiZRwNrG4Witt4YCUiNKbwyHrkhJgYkrDA4FcnxMTBaUI642jhbSoOKgKwNRXjUnIM1jCpJbt0GEFipld+mStFKiRilTvgJZCKoANi3TrTIkswKcyKy1ApgBVuOJQWI6jpiZJAXJFUEtgtIis9Msx8cNopzxKF64iS8KgyEdAcmJMCHem9RtthtABXeltv18MHEnhU2+E0OSYlaXjPVakYQq0lfDCxaoK7Y2vC2VPhjaDF3E1xtFO4Y2oDYjwWy4Xelja8LvTOG14Wiu+NseF3EV/hja03QY2kh1B442xpoqK42kBsqtK0xtaW+mnhhtHC2I17Y2vC16Nehx4k8Nti3wcSRBVEIYU7jBbLgWmzFNsRNeAKMluyioyYk1ygp8WHY/PJWx4XHG0NYq0VBw2rRVRtTG0tEJhtVtBXFXfPFXbYq7FXcj22xVcHPfAq/4O4wMlwKjrX2GKVQfhkWYab2xtBWqW79MKHbV6YqqI4p0yJDYCu5kmgwUydU1rTFX//V9OEE9BiwaCV69sNrwl32Qe+BaaLVyVILW2AoC4FR0xoptx4k74EtgDFQFoWh64qV1AtTihaaHFLioqPDFW+FenTFacVoMILEhaUFKU2yVopZ6APsMPEjhXegtOmDiTTloCRvv3xRTgAuwwEshFzKCNxjxLTXBOvHEyKeELgo8AMILGlwA47AVwFkpmNC3IjfHiY8IaaJD02OESUhrgAaGmStjTRjLDYAe+G00ta3NOuIkxMVH0SOvXwyfExMVhFDuuStgQ4EV6GnyxULvgPiD3wJpaAK7YSildFFNup6nIEtkQvKAilBkbLLhcsagHpiSoC4QioPTAZJ4W2jalB0xtPCp+mVJJ6HDaKX8ErvgtVjqrbDYeOEWghUCxKKAVIwWUgKbx8vDDaCFwtIK147+JwHIUjGFzwQ03UDBGRUwCg8EfbY5aJFgYLFgUGvUfjjxI4XNGKeGESUxUmgr0yXEwMGjEqmhOHiXhbACntjaab4BgSMFrS0xN4bYbQQpvGR16+GEFjS0Jt4ZK0U6gG1cUEN+mp3BwErTYjXxONp4W/RT+bBxJ4Q4hR3xVaWQDwwgK0HOGkO9VhjS8TfrsR0x4V43eu2NI42jMx7bd8NLxLeYJ3xpi3RfDbFVpCfy4bRQWmNCfDCCtLTHTDbGlhQHww2tNemO+Nopb6a+Jw2rvTHjjauCb742rYUdsVdTFkAuBGApVBTrtkWQVFZQCQBXwwUya9TfoMaUFolSOgxCdmggrXavjhJQAvAU5Hdku4qNxjuydXAh//W9OBx2NMNNdrga98DMFo4qWiAaY2xU2AXYfCPHrkgWBDlJ7MGGEoHNsUrkC2NsjHZfvwimJU6srfEemSACLXgqR12wUkF1U6Vx4U2vFKbZFVwOLIFpqHFStKjthtjTRBxWm+LHAmmgp77YbRwt8aYFWk7dMmi2lNe2K8S7I2l2JKttTjgVbXY4QgrCDIcmxXqhUUwWycVr1OIKFJkNaAVOStFLghpja070z36YLQQsENRU98lxIoLvq0fQCmPGU8LvQoaqcHEngWksDTCFLW1cJYhes3I8enuciQyBX8qbE4E2uBU9KHBRStKVOG0LTEw6HHiWm0U/tfRiim+C1674pAXgVyBZguZRhDEhRZAP2voyYKC4RFtxSnjhtDfpIDVjXBakKbIO2StBCm0ZO9ATkrY8KwxnuKZIFHCp8itRTChcHNRttjSuKqevjgQQtEan3w2jhd6KHxx4ikRbMFB8OG08LRRu+/vjaCGuB8MbRwrSntXDaOFaYmOEFFFr0Gr1pjxI4XeicbXhWshGEFBitNfDCx4S754UU4jFVtPfFLRLYULanGlbq3jhCtYVaqBihojFWgDirdMVp1Dilvgx74rTXpsMbTTY5dCMUN74pdyI7VwJbDOdgN8BSF4DE0pgtmAuMeC002kZPUYLSA36e+Npp//1/ThRD1yTCg7ilKdsBSuAFMCWipPQkYqQt4t41+eKKaoR2+7DaKcFB6jAtrq70ofnihorXvhtat3DtXG08LXoDxw8S8K4R075FPC3w98VpumKadQYrTXHeuK07FIbxUhaQT2xYOKjFFO4g4bWmqHCpao3bpkUt8SepxVpkNCMIQXIpB6YSVC/IqspQ5IFXVI7bYkpa3yNrTitevTCCxpb6fauStFLgtNq1OKQ4A1yDJxWo3yQLEhaIkrk7RTjFTpucbWmgxA+JcCFM0rsTkgFbSdgadcTFQVQyq+335GqTamVABwqtHINWu2SKFQF6+I98iWQVRWm/4ZFko8QzkE7VybFc4VRQbnAtKYAJ3JwoXMi02NcbVbwP8ANjaKWtEx/bwiSCFpi+HZt8lbHhWenJXDa8LXFgdzja8LZ8fxwsXAqTscUhs08d8AZW1vSuFebt8UELeGLGm6HtitOp44q7FCw9emSBStNPDCCgtcVPUYbY0704/vxteELTGnhjaCGjEpxteF3pJh4l4GjEPCuIkpgpmHfJcTHhb9Hxx4l4WvRYdseNeFv0tsHEyEWxATsMeJPA36DDtjxLwLvQb6cjxLwLhEwFKY8SRFv0h4YOJPC70RjxMuFxQDalcHEjha4ivSmPEinBRhtk3t0xVokdsVaB3rhV//0PSxcVpTbLGq2hKFGwpjwoBXLMO+AxSCvEynvTHhZW36ifzYOFHE7mvjgpbb5CmCltvDS26oxpILq40m3V9sC26vtim2wCdwDituofA4rbdG8MUWlPmO/wDqukXUkdwIZ0C8SCvIEsB0PzwgIJSZfzJ0c/8AHtcj5hP8nwb/ACsPCkFd/wArH0jvbXP/AAKf5X+V/k48KeJ53aT+Zh+e9zGJ71dNe8RBCJHMHpekWYcalQhPtk5DZqxmyXtGo3sdhYzXkykxwIZGVaciFFaLWm+V022x3/lYujVA9C5qTTZU/m4/zYeFbCYaL5r0/V7praCKWORY/UrIFAI+HYUJ3+LAQtpyQfDAxbofDFDqHwxVrFWmdVUsxAVRVidgAO+KoWy1jSb8stjeQXTJ9oRSK5H3HGlRVSain04q1xxVdiq1hvilbUA0yYVeK0yJQtNe+EBXChNe+FLTmgwsStCVFSTja0taPfbCCpDvRPj9GNsaa4EbHG0tqi1rU42mlxVR742mlveo2xVvk3TApWFO+G0U7iR0NcNoWkPXbDau+OtMdkN/Ecdktd8VdhVpq9sUO+E9RihaeBxBQt+DwyatHjirTNGiszGigVJ8AMBTEXyUbO9s763W5s5kuLd68JomDKaGhoR4HG2UokGir9MbY01yxtBCncXcFvbyTysEjjUu7HYAAV74krAGRpLvLfmfSvMOkrqencxbPJJFSQcWDRNxYEVOIDPNjOOXCU09SKngThprJWkJ442imiF8cIKKa4EnbfDYWm/TfwwcQXhbCHHiWm+D+GDiTTQVxsRXHiWnen3OPGvC2IxgM08LZT2wcS8LqbYeJIi1THiWm8HEmnDDa07Da00dsUU0WAGKrSzeOJKGjkUU7DaKaJqMbULcmCloncZJX//R9KmJvCuW21Ut9GSvTDxLS703Hvgtaa4N4Y2rRjbrTG0UtKMD0Iw7Ip1XHjirhz8ThoK7kw/aI+eCkrg7DviQm16zEHepwGKgrvXXwyPCtvD/AM3PMF/ZecjDbahcWq/VoiIYp3jU1rVuKsB/ssnRaZTNlg7efLtaq3mCUMmxBvnBJ8P7zHhLHjK0efL4gf8AOwTUPU/Xn29v7zBwpEyh7rzLHflhPqf1l5RxIkui9VHahfHhWyprd6epqXXbZf3rbn3+LBwlfEXC904bmdTTc/vm8On2seBj4hRMfmIR3hu49QaO5O7Ti5YP4btyr9nDw2mOSl195vmvIPRutWlmhYgmKS6crUdCQWw+GviFAfpHTBubhNj19c+P+tkfDUzKIttct7WYT218YJlFUljuCrAkEbENjwJGQo7/AB1qtR/ueuCT4Xj0/wCJ4eBPEWv8dasAD+nrkEGh/wBMf/mvBwrxFtvPWtcSRr1yPA/W36f8Fh4UHIzj8sPzssEkbQvM2oAAMfqGpzEmvf0pX35f8VSftfYbIyjTdGVvRb78wvJK2cx/S0MgZGWkQaRviFNlA98AZEGnjH5X3+k+ULrVdSlmBufqbrZRmFvjlqCqnhU9viyRkCURBAe8eU/M1l5i0SDUbd09R1UXUCtyMMvEFo27qd/2v2cr6sqTmorTJUha1K9cFK19O2GkuPHvhVwdR3wEFXcgTirRemGlWE1ySLXK60pvgIW1xYUqN/bGlWl2+WKrTyJxUhrcYUgNlvHAlbXCxJdUDFi2DXFmGicCC1yOLG3V3xQ6rHvhtVtCOuStLXIg79MbVsMuRtUu1nWYbFRGgEl44+CPsB/M/gv/ABLAZKA8nvfOXmmK/njXV3ASVlVOMWw5dKccnHcW0TO6kfO/mwhv9yz+3wRf805JjxIe380eYbaQNFqsoJBJ5cWqfpBxXiXXPnPzRNbmCXVn9OUFZAFiWqmoIqFr0xSMpBsIbRvMes6Hpy6dpeoGC0iZnjiCxsAXPJt2Bb7RxTPNKRs80ePzB82cj/uWqKd44a/8RxphxlY3n3zY6qDqxHLrSOIH7wMFLxlTufOXma5sZLW41ATQP8LBo460rt8VK1wkWoyEGwh9H8za3osEtrpt4sEDu0pj4K9ZH+03xct2xplLNKRs80dF5983pTjqfLkKnlFG2/tUYsfEK7/lYPnUCv6STc0AMEX9MFJ4y4/mF51PKmoq3EV2gip0+WFfELKPy+8069qusTW+p3azQrbmSOMRpH8QcCtVFehwFMZG3oBcUyNtyFs7uWa4u45AFEEiqg6mjRq25Hu2ElF7oqoyKXVGKuLDFVpbCrRceOHhVrkMaW2ua48K27muPCtuDjGkN8gemHdNtVrjurXLbtjZVpmxCreWSVrkcUFrFDVcQruW+HiV/9L05y9sm1u5eIwFXGhxVbTGldQYVd8sKuIJ69MC0tKeGG0UtMbeGG1poxnDa0tKcRVjQeJ2GNoSy98yeX7JS1zqMC8dioYOa+FE5HGwrx/8wPO1tP5wgu7HTry7t4LFreRxGqUb1udR6jLVSoy7HkiBu42XFKRNPOtJ1+Wzso7ebyWt5KXlcXDiDnJzkZ6nkjHYN/NkjniowSoBCW+rSx+ZbrVm8nK9tNbx2qWdIOKSI9S4+DiS32dlweMEjBIAphda8Z7i09Pyd+jzZ3MVzNcQi3LhI6kj4VT7X+tiM0UHBJkX+NlJVf0NfcmFQPTi6D/Z5MZ4NfgSKyy85QpbKraNfkl3AYRxEEs5O3x4DmjaRp5UoXvm23dpz+h76noNExMcWzFgez+GP5iLE6aRVv8AFmnFuJ0W/rQmhhj6f8HkhqAv5WSna+brKNX/ANw99SaQvFSGPcFR/l+2A6iKjTSCWeY/MlteSadLH5fubuKzuWkuLeeKJUflE0YHxFwSGcHpg8eLKOCQKW6zrEF5pd5aQeSfq08sLIswS3rGWBAf4UB29sHjQT4E12laxbwWFpayeR/XmjhRWkKWxLlFAL/Eld/fEZoMjgnfNUh1T/cFrtpF5fubaXU3m+qwQxRGNDJEsaryUqPtKa0XD40GB08zTHNC8u+YtP1fTJUsZv0fzBlBFTbuq1NaVojncA5hznYc7HGnr9hqUtOJJBWnXrmPbkBN4b3kBU7+NcKkK3lbWJ9E8w3l81lPcWtyhT9xJGOTVHEujsu6Ubif8rJxlQYcLMP+VlQU/wCOPe7f5Vv/ANVMPiBh4Tv+Vl25/wClRfD6YP8Aqpj4oXwnD8yLev8AxyL6n/PD/qpj4oXwy5vzItyf+ORe/wDJD/qpkvEivAWx+ZFt30m+H0Qf9VMfEivAVw/Me17aVffdD/1UweJFeErh+Ylt30q++6D/AKq4+JFeAt/8rEsx/wBKq++6H/qrg8QI8Mt/8rEs/wDq13w/2MP/AFVx8QJ4C2PzCs/+rbe/8DD/ANVMPiRXhLh+YNmf+lbe/wDAw/8AVTB4kV4C2PzAsq/8c69/4GL/AKqY+KF4S3/j+w/6t97/AMDF/wBVMfFCeBo+fbE/8eF5/wABH/1Ux8QLwFr/AB7YjpYXn/ARf9VMfECPDLv8fWB62F5/wEf/ADXj4oTwF3+P9PA/3gvf+Aj/AOqmPiBPAWv8f6dXewvvn6af814+IGPAW/8AH2mn/jxvf+Raf814+IF8Mtp570ok1trxKeMa/wAGOHjCOArj520kn+5ut/8Air/m7HxAjhLX+NtKB2iuf+RX9uHxYo4Sv/xxpQG8Nz/yK/tx8SKeEpXL+YF0LidUsZDAVAt3KioavxFhXf4dxlZyMhFh3mTzLczapHaQLPZ2twvK91RlVpgBUFYkr/eN/vw/DH+yuRjKymQoPL79fL6ReZ7eDS7hzcyTHTJJLSWVyrQhVPqlSwPqAmpb/KzaYZxEaLrs0JGdhFQ3fkQRxiTy5NzCryP6NY7gUPbxyZnBr8KSD0qfyZCl0Lvy/M7PdTPATp7vSF2rGvTbiP2f2ceOCnFJfb3Pk9de+sJo0sNn9UMbK2nyAGX1QwPEI37H7WEZIsTjmmF3qHk028ippjcyPhpp0o7+Pp5LxYI8OaodW8iVr+jyP+3dL/1SweLBBxzQkeo+ShOhfTyFBmLE2EvRmBT/AHX4Y+LBfDmvvNU8jNbSrHYnmV+ECwlG/wDyLw+JBPhzVf0p5BJr9S2r/wAsEv8A1Tx8SCBjmk1ld+RkmvzeaVLL6l1I9vILKYj0SF4gUUUoeXw5EzgyMMim9z5F/TaSfoiYWP1ZlkT6nPT1ualTxp/Jy+LETgvBkXajdeSZI7b9H6TNFKl1A7t9TnUeksgMoJI3HD9n9rESxqY5KZ9+WvmfQtL8wawtjp7kX0NsLd1iNvvH6nqAGRV8UJplGfJHo3aeEhzelN59pT/cbKT3BkQZjeKHM4Cg4POZivLq4OmyN67IygTJsFjCGo6dsfFCPDkzGxujdWcNzwMZmRX9M7leQrSoyfNirBxTqMaUF3PDSkrSxxpBaLYVWlziq3kcKu5+OKHcjgS7mfHCttFz4/RirXP54q7meldsaRbRfDS2t9UdsICLd6mPCtteoRh4Vtwkx4Uv/9P0h9YfLaaW/Xf5YeFXeu3jjwq16z+ONJbErHvh4UW4zsoqx4jxOw/HBSbS+880aLZsEuNQhRz0jDhnNP8AJWpxoMeJJbv8y9DiD+iJ7gJsWVOC18AXKk/QuOzLdJ7n80dSccLOxjhciv75zJwX+ZuPAf7GuAkLwlJ7vz75nuWBF4YYifgSBFRpDTsSCwT6cjaQEnu7+9uWdrm6llb/AHdK7syr/kICftYCWQih1DLxVECsBWKM9EH87/5WKUNNHGwqQXjJ6/tTP/zT/n9nBa0oPaqWerAOBW4lGwUdQi/5/wCVgQpfVB8BVAGpS3j/AJR3dsUtfVIgu45Qqdz1Mslf6/58VxQu+pkllLAMRWdx0VR0QH/P+bFQG1tmqhVeLH4YEp9lf5iP8/5cUrGtUAO1YYjuepeSv47/APD4sW/qRPJD9t/inYdFX+UYUgNfViT6oFGk+CBT2X+b+P8AwOBabNogHSsUHTxZ/wDM/wDBYopv6hUiJ92f95cEeHYfLt/qriq9Laqc12eY8IvZfH9bYCkBVEEMdWUfu7cUA8WIw2mkRbRMgSIn4z+8lPvXp9+ApRHMsvJqO0r0jBFaDx+4VwUm1dXhXm1Cqx9SN96VpQ5HhZAoqKVKhQwLEV49DSuKbRMcjDr9GAhKus46UyBCCvV1PhjSrgwHhjSF1Vr2xS3QE1xpWyfAY0ri46HbBS24v02xVxcg0AxV3InxwK3ybrTfvgVcCepHXCq0nsBuMbS2Q1B1wq6jdxirhy32xV1SNqbnFDRJA36eOKtqCy1p1wrS4J4jFFBTkuLSI0eQBv5Qan7hiIkoNBDvqQp+6iJ3pyf4R925yYxljxISa5upK8m4Ab8UFNvmd8sGMMeJDyW6nelSw2Y7n7zkqDElDGI0qdwdmwoIWG3alPD7J8R4Y2ilv1XwNFY1+nG1pY1qxPIncfCflimm/qrmq19x742tNC2NN+/68Fopr6sw69R1wgrTTWxI2O3bCSimvq7bD7t8bWnLCwqKVJO4ONqu9HerD4um/fBa0u+rg9uhw2mkTbx8eYPtWmC1CKDSrTix+/Y/24KDO1wnJJDAH36ffTHgTxKbPqFWEV/cRRtsIlIYKPatNssEyOTUcYJUVtb5hQ6nJU9mUD8emPjS7gvgjvRFuuv24b6vqc6q3XhSn4HIHNLuSMI70Rb6n5mt5RJ+lppOP7EoV16d1ORGUsvCCL/xR5oPW8i9v3CYfFK+EHf4n8z/APLXF9MC/wBcHilPghr/ABP5or/vXFT/AIwL/XHxSjwR3t/4m8zf8tUR/wCeC/1x8Yr4I72v8SeZv+WqE/OBf4HD4xXwR3tHzL5prtdQ/wDIgf8ANWDxivgjvTmy1TVZrWN5blfUI+IrGoB++uUS1EmccIVWub1lNbtx/qhB/wAa5H8xLvZ+DFU0Kad5r9ZZnm4SqI+ZrxUoDQbDvmdpshlHdxM0QJUE155ktTueKtcjhVqpxVsE4LW3/9T0VRa7A5bbU2DthtDq1xtW6YLV5V+c/mfXNMS3j0fW4raK4SSOe2REkkDJSp58uSHfpTAS1E+p5W3nDWpggur95SCSQ5LAkbAnkx6DI0WziUh5r1GkgFx9pvjbiAaV6LQ7bY8PmnjLl84aly5GZQQv7peI4j3pXrjwp8Qr28z6gvGM3FVryc8RVjT9rfBwr4hbXzRqTiQi54yN8NeO6rWnw77YOBfE8lx80agsvH1xxiX4F4ClT3Pxb48HmnxPJYnmrUWVUNz/AHh5THgKnatK8unbHg80eIe5z+adTAlmFyOQHFBwFAKdhyw8PmnxFh803XKNBdDgoLEGMVZtqcvi38ceHzR4nk1/im+KPW7XnI3xsEFQtaUHxbbYBDzXxT3NjzXe8uXrp8C0iX09hXvSuHh80DI2vmi9CIhuFKk8pSU3JpWh3wcA71OU9yofNF+VaQXK+o5IrwFVUDbjvjwp8Qt/4oulkUfWF9OMVUcBu3TffHgXxT3NL5ovDGAbhayNWWiCtK9OvTHhXxGx5pvCZpBcJyA4xDhsBStevjjwr4ionmG6rEhuVKKCx+AVLCnXf3x4V8XyXJ5gvJI243K85Xp/djYVpTr4YOFHiFuXXtbE5EMkDFCkSh1IHxhmJ25fyYCyEyrx3XmMxxj6zaUryaquST1328cCnIvN75jHqn61acjt9l9hTttjunxAq/W/MYkX/SbMBFoq8JKdvpx3XxFovPM3pgG7tKM/I/u5Kn4sd18QLjf+ZQ8h+tWgJUAfBIaUrgT4gcupeaF9JVvbYBVNBwkp0774r4qFbz1q+j30Lau0M+nyzenPLEHDxq2/JVPw8V/a/wAnHhtMc1ml+s2MVxr2oXtx5dudZt7j0TZ3UBRk4LEAwFZU/a/ycyMU4gbtWWEidkjvdBebVtOntvKN/FYQmU30Pwgy8lpGKetvxbfMjxcbQcWVV1bQPW0u6hsPKOowX0kbC2mPEBHI2NRMenywHLjQMORFW2jWyWsKS+TdQedUUSybfE4UBj/fdzg8bGpxZUJpOhTW8moHUPKeo3CTXLSWQG/pwFQAn98OjcsfExp8LIjbfTHTUTJb+W7+zg+pzxMHQvymcqY2A9R/sgN8WHxcaDiyLNN0eIWdvFd+UdSa4SJFnlox5SKoDN/fD7RwHLjTHFl6lB6fod5Deag115V1KWCWcPYp8X7uLiBw/vdvi3wjLjQcWVu90K/k1Owlt/K+px2MRkN7B8Q9QMlE29X9lsfFxKMebvVdT0a7l025isfKuqQXbxsLeX4gFemzf3x6HD4uJRjzd6KttKpawJN5T1Z51jUTOeW7hQGP993OQGTEnw8vehLrQNYk0xIV0PUwv195WgTmkotiDxX1BJ2NPh55bHNhHNicea9ig77ytqTaZOln5f1yPUGU+hK9xMURuxI9Y1/4HDLLg6Moxz9SmcGlzJDEsvlbVmkVFEjAyGrBRyP993OV+JhYnHn70Ho+lX8UNwuo+W9Xmla4leFlMh4wMR6aH96PsjHxMTLw83eqw6Lz18y3nlzXf0P9W4pbwSTRuLnnXmaTD4eG32sicmLozjDL1TVdL0lLzT5NN8u+YLaSK5Vrp7t55oTBxYMpjaaQMeRX9jBx42RhMhNtTLTzejp8EltJEgZ/rCSRKpDBh8NRXkBgOaPINZxz5lDwzeYImXi9uaDYt6h+ffKyLT4pCoup+ZlVTztRU/ytjwr4pd+lfNPxnnbH+UcW8K48JZeN5O/Sfmv4avbe+z74DEo8YNHVPNXpseVtsaDZ/ltjwp8Zr6/5oJofq3TcUbHhScvksi1PzMXX1mtxGepUMWr1HWm2SEGJzeSJ+v6uWaksR8AUPWnzw8CPFLX17WQF/ewmn2vgP9cBgvilo6hrQr8cNR0+A9PvxGNfGLf6Q1jkKyQhT/kHr9+PAvilr9Iazx3khqPtEqen34eBHilpr/WKmkkQP7HwH+uPAnxStbUNX2PqQ8f2vgPX78Hhr4pa/Ses0PxQ1rt8B6ffh4F8UtnU9XqPigp1Hwt1HXvg4EeM1+k9a415wV/a+Bv64eBfG8m11jW15ANBUfZHFv648C+KVzazrpK8Wh413qrf1wcC+M3+mNc6MYOVd/hbp9+HgXxW/wBL64K0MHT4fhb+uPAnxXfpnWqDeGnfZuv348C+K4azrgqawV6nZumDw18Yrhr+v1+1ER+zUMa/fg8IJ8cqcmueZA0ZjitnRfthi61PgaA4DiXxykt7+dXl/S7mWx1a2uRfW7mOcwRhouVK/AzOCdjkfDLkRnYUP+hgPJH++L7/AJFJ/wA14PDLLicP+cgfJHUwX3/IpP8AmvHwyvE3/wBDBeSP98X1P+MSf814fDK8Tv8AoYHyOTX0L7/kUn/NeDwyvEHqnk/zBZa75cs9WsuYtbpS0YkAVwFYqagE9xmHkiQWyErCecvDwytmraEQLvUVP88TfembLSfS4Gp+tOPh8czQ0tbeOFWiQO+BLXIU642hoEeOBX//1fRu3t92WNK2q16YFd8PvirvhrtiryPztqHkzSdfuRrklnZXFwxlQ3KorOh25gkfF0zGyA23YyDskI82/lV/1dNL++L+mV7ttBcPNX5WOKDU9LPtWP8Apg3TQcfMn5XGn+5DTPpMX9MbK8IcPMX5WHf9JaV/wUWG14Wj5h/K7/q46UK9+UWNp4F36e/Kv/q4aV/wUWNlHC79N/lZT4dQ0o/7KLBa8DY1n8rKf73aUT/rRY8S8K4av+Vlf97tJ/4KLDZXhC79LflbX/e3SfnyhxsoEQ2NX/K3/lu0n/g4cbK0Hfpf8rDWt7pO/i0OC14Q1+k/yrp/vbpIH+vDhtPCHfpL8qD/AMfukf8ABw4bRwhv6/8AlVWv1zSNv8uH+uNleENi/wDypJr9c0in+vD/AFxJKOENfX/yqr/vZpFf9eH+uNrwho6h+Vf/AC2aSP8AZw/1xteENNfflXwbheaUTSnwyRV/XiCVlEU8R/x1f2d7dWlusMlrDcSpCx5t8CuQu4bcUzYwxAh18juiofPupPyHpRHl12f5eOW/lwWHEih501djX0IunQCT+uH8sE8a5fOepHb6vHtvWknjXxwHTBHEuPnHUSSfQj8NhJ/XB+V81E3DzfqWx9GPbYDjJ/XH8r5rxpp5VeDzHrcVjq9vG9pR5WUGRDyAAHxE++Y+oxcEbb8FEvVrfyxotnZiC0mnggiUrHGly4CjsAKnMK3M5KdjdSFzbXBrc29A7dOan7MgH+V3/wAvlhSmAlFD74oXrIcVXJP2IrgWmzcrUVNB74rTRv4lYBmAG/fFaXPfQ0DBxU/LAtLF1FQ9GIp0BwJpVW/hJpyH34rRWm/QkgMKAb74rTZvohvyArv1GC1pqTUYwh3BNN9xja06PUYyCAR7bjCtL0uot/iArhWl3rx1FWrXYU3JJ6AUwJR2r6BNaWlnNcyyRXFxzJiRuIRQAQD4vv8AFhDEsQ8y2sWn6Hf6hbScrqJDKObcwxqK1HU1GWwu2udU8wHnjWBT9xbmnT4ZP65ncDr7aPnbWCB+4t69fsyb/jjwIto+dtbqaRW4rt/dvt+OPAkFy+dtaotYoHC9Ko/8Dg4Ftsed9YANYYADufhkH8ceBeJUj8+6lUco7Y0H+X/XAYM4m3p+n3HlWTyzod3fvZQXl5bvJMHlVWLGZwuzty+yNswjI3TmCMatUD+S6/70WX/I2P8A5qw3JeGHk4HyYynjcWTAbAiVKbbdmw+tHDDybY+TQByuLJSTQVmjFT4CrYCZJEYt8PKFP7+zr/xmT/mrD6kVB1PJxr/pNnXoaTJ1/wCCxuSeGPktc+TVoWu7JR2JnQfrbG5LwhsjyeaEXNmQe4mQj/iWNyTwx8myPKFafWLOvgJkrT/gsbkvDFaR5QA5NcWYVdyTMlPxbBckcEfJ1PJ53E9mQe4lTp/wWSuSKj5NV8oA0FxZhvD1krT/AILBck8MfJph5PVam4swOpJmQf8AG2NyXhj5NKfJzDktzZsOlVnQ/qbG5I4Yt08n/wDLRaVPQGZKn/hsfUtR8ncPKVf7+0r/AMZk/wCasfWvDHyaX/B53+sWZHSvrIf+NsfUioNcvJwIBuLIHsDMn4fFj6k1DyWtJ5NA3urMAf8AFyf81Y+peGLyr897TTb7TNH/AEE0N0yzSmdLWRHoGReLNxJ+/LMPFe6ZcIDx0aBrPT6nLt7Zk008QcPL+s9Pqclfl/biniDX+H9aPSzl+4f1wUvEHf4f1v8A5Ypfuw0vEH1J+SE4X8v9PsZCFvLT1RPb1HNA0rsvIDpyG4zW6kHibsB2Pvegh/vzHb1XRWA1C/Feqwt+DDNjpD6XB1P1BOua065l7tDRYUxStJHjitNcl8cVpoOK4Vf/1vRQ33ybS3hVrFWiK9emBXy1/wA5TRrP52tI2Ab09PjoG95HO2XCNhx4mpF4RNpkdSAAD7YPDb+IojR9Mpec6qypx/Fqd8HCAVMjSZzQr9SmAQE8P5R+zCxOW8IabNrorOGOwt1MSsWiRuVB14n/AJqyMQGUpG0MLW3bUg3pr8KoAOI7sckIhHEaU72K3GnykIvLiQCFAp8Z9sJiERkbZr+TP5d6N5lsdSur6KSVoZ0hhCMFH2eR6g+ODHp4S5ss2WUapm3nr8lfK2jeTb3V0SRZ7cwmNXdSvxzIhBHHwbI+BAHZgMuTa2Zw6PpCQLGtjbcVUKv7mPoPoywANc5G1HTtL0r6zqBNlb0+sAU9GPtEnthIDGJNMb/NzTtMh/L7VpYrOCOUCLi6RIrCsq9CBXISqimJPFH3vmPMN2bMfyxsre485aGssSSo9x8aOoZSArGhBqD0y2ADVM830suh6JX/AI51p7fuIv8AmnMkAODZS3Q9G0c6ajfULY8pJjUwxf7+f/Jw0EAlKta0bSW86+WkFlbhCt8zqIowDSFaVAXelcEwKZYzuWS/oHQyP+Oda/P0Iv8AmnHZBtL/AC5o2jfosN+j7U1nudzBGTT6xIB1XBQTZoMG/PjTdMh8v6Wbe0hgdrtwWijRCR6R2PEDIkAs8ciJPUPy6sLNfI2ggQRD/QoSfgXclak9O+V2me5YD+e8MEd/owjRErFOTxolfiTwzIwcmrq8yQkftCvs5y9krrNtvx/4M4oVFlQmnJQf+MhxSvDddx/yMOBUs8w3U1vZLPC/F4pAQQ5NdiKEZj6mNxbcBIkhbTzdVAXnKN0IJIp+OaiWEuzE2V65+ZQ1Xy5Y+ldtHrllN6UskTsrS27KaMeJFfiC8v8AK+LMrTQ33aM8ttkrh8z69IARqF1Sm/7yT/mrM/w49zh8cu9WTzJr/bULr5epJ/zVh8OPcx8SSw+bNaUkfpK5quxo8h3+hsHhx7k+LLvZh+WPnHQ/rupf4t1RFi9KP6mL6Rqcizc+HIntSuYmoiARQcjDO+b0NfMn5Skcvr1ga96n+mY9NtjvbHmX8om2Ooad4Ecjjw+Sb81w8x/k6SFOo6by7Ly3+7GvJbXjX/yhFSL/AE4e9SP4Y15LfmvXX/yiFf8AT9ONepqf6YDHyW3DzL+TXLidT0sOP2S4r9xwcB7k2u/xH+TxFf0nplPdxjwHuW/N36d/KCtf0hpn0OMeA9y35t/4j/KHtqWmmmxpJWlO2AxPcniRNn+Yf5PaJN+km1KxD2itJGkR5SswX7Manq57ZUQTyZgvNfMnnO48+al+m9Sv0t7aK4hj0jREY14GZd3Heo+1X7WZGCB4g1Zcg4SAyTzzpdjHoE0kMCROkikMihTtWoqMzzEOuhIvMiSd6/8AD4bQ7w/5ryQFoJA3LiCKkggePI4Tjl3NQzw7w6oAG/X/AC8g2orTArahaBgGQzxBlLcgQXHbvhgN0T5PTP0fp5be1goP+K0/pmSQHGsvGrG0toPzdkCRqqx6qojUAUUFjsB2GY0YjicycjwPfo0hNCVX7hlhaRLZjWjKiDUFAApqV6dgO87H+OWR5NUuaR/mIqGPy8xAPHWLc1oPfBLmzgTwy9zLSqVNVH3YXHtKdAWPlqo4j/jo3FRQdwh/jhplI7sY/OWCN/LNoSo2vB1A7xtleQCw5OCR3egeS7e3bydojcFJ+o2/Yf77GMhu1h0dpAPOUw4L8Wmx9h+zcP8A1xBSeiG/MG0hPkvW14L/ALySHoOwrjLkzhsUL5UWNvLOkniN7OHt/kDLSHHaWGP/ABXL8I+LT496fyzv/XAAk9EP57t4m8mawOA/3mY9B2IOQkNm3EfUEp/Je3ifyaw4D4buXt7KcIiAGOQ3Msi8xW0SS6O3EVGoRilB+1HIP45IDdhP6SmHopUfCPuGJRRpKfLUMY0114gcLq6XoP8AlofFTzK++ijHmDRDxG7XS1IHeGv/ABrgWXL4p20ERRgUXcEdB4ZA8myPMPGfK3kOTUdIS5SeONfUkUKykn4WI7HMSeYQNU5oxGScD8spa/71xD/Yn+uQ/NDuZ/lyv/5Vi9Km8j/4A/1wfmh3J/Lnvb/5VjMOl1HT/UP9cfzQ7kflz3tj8sZ+puo/+BP9cfzQ7kjTnvZZ5G0u68q/XOJjuvrfCu5Tj6fL2b+bMbNPjbcOMxNsqHmi9DA/VY9v+LD/AM05R4bkcTIfLFw1xczTOoRpYImKqagHkw6kDMzS7CnF1G5BZDTMu2imq74LSA1UY2mmiRjxIpwbfpthtaf/1+1eUvM2m6xYcbS/N/Na0S5laJoWqa8eSsOtB2xojmg0d0+EmHiY8LYYY8S8LjJtjxI4Xz/+a/lbWvNPmRtQ063jUIiwH60y1Kx16ca/tVxjnAKBhPMMHH5R+bCJfUgsieNI/iIo1R19qVwnUjzZeEVGL8n/ADetyjtb2LRApzCyMCVDVNN/DpjLURQMJ6q8/wCVfnNbcpb2tkSY5Iwsz8lUOpSg3b9lvtfzZH8xFgMBbl/KfzUVtVjtbQenCiTcpG+2Bvxofs5IZwEywm1Afk/5t5SSPaWXrMVCESPQIAa13+1yOD8yF8Eqbfk35se3eB7KyIKMFpM/2qfBU16cvtZL8yE+CWcflh5S1nypo9xaXtiv1ma4M1bOYemV4Kor6jcuWxycdUAiWEmk6882/mHXvK13o9nY/vZzHx+syII/3civ8XA8/wBnH8zFgcErCpBD5gFrGJbOk4QeoqshXnTfiSwNMrGoCZYCVK2tNeikuna0P72X1E4mPccVXer9dsl+YFsfyxpbqVhql9p8lnd6NDfQSEFre44MhANd6SDpTlkcmexszx4CDuwTzp+W195hgpp3lqwtb61EcCzRyfV4lCAExlI2HLirU5ZjRmerkmKC8pflN5v0XzBpt8+n2iW1qQ8zpK7yBjGQ3EM1D8TbVy8ZhTXLGS9VaHVhQi3JI9l/5qywagNEtOUHpuna3b2SQyW1JFLkhOJFWct3bwOH8zFj+WkgrzRvMM3mHStRSyDRWUdysjFlDqZlVV4jnRunxVxOpFUmGnkLTZItc5UNo3EHYnhX/iWR/MRX8tJAadp3mS1s0gayAIeVm4utPjldx1avRhXJDURU6aSQ/mL5R8xeY9KtbdbIE20jyuS6ghTGwqlG3blx+1+zg/MjkyjgI5oXyz+dPlfSdA0/Srqzvzd2ECW1x6cKsvqRDi9Dz3HIZZwEtcgxf8x/POl+bL2wl06G5hS0ikWT6zGEqzsCONGbsMyMII5tRjuxNWPv/wACMuQqAt/lU/1Bilurd+X/AAAxVeruPslv+AxVuTQtV19JbGwtHvbkL6ghXihPE/zE5j5yAN23EDa7Rvyc80HUoW1jy7eJpyuPrPpzR8vToalaBj8NMwDIU5gCb+Y4vykg0CCG30u4sLxhcmwnDytIZEbgwmDL8S+oPh5fs4cUpk7BjkApgdtJRRUD/gTmyi4ZR0UgPYf8CckinuH5VQo/k62NBvJcf8nmyiUmBG7zf894kHmu2XahsVP/AA74OY3bIbPX9KUfomyouwt4e3b01yQaSo6fEn+mniP96Zuw8RkmLHdQVP8AlZejMFApp11XYfzDIy3LZH6SyHWFB0e/qBvazdv8g4kMAmMdunox0UABV7e2R4k08hlhiH55MSopXwH/ACyDDQtmSeB6nqcEb6Rd/u1r6EvYf77OJaxyRMMEZtovhH2F6gfyjBxJILHvKiQx33mAlAeOrykrQb/uojTJEWE8iLeX/mymu3+ow3uqtEsPqSxWdlASyRIhFSSQtXb9psxI4qcvx+LkzDy9pWoSeS4Tb2M8xadJIzHEzchHMjNxNKGgGThkALVKEiz+7ez1S0khvbO9itQ6tIHhMRIFdvjpsfHI5M1cmzFgPV5x5hs/LFsI20a9uLlnPxpLHGQo/wBZKfRtk8eQnojJCIS7TfivowRUUOxSnQeObDSAGdOj7YNYPizrTfLVrf8AlrVdTkkdZbJW4RALxaicviqK98zNRnMZiFbSdJo9GMmKWS6ON5paO5hSprUDquaqQ3etx/SEdbXK288Uzq7JFIkjKiVYhWBPH32wA0WUhYZePP2jkk/Vr2n/ABg/5uy3xA0+DJj58gedv8ZDzNHo8p068uItQtVLxLK8DHkCVL/CzL+y2Yo1EQXLOCRi9EW719R/yj17/wAHbf8AVXLDqoFgNNJLLCDzLbteep5fuyJ7ue4Ti9uaLK3IA/vOvjiNXCkS0syUu816J5s1eLTkttBuUazvobpzJJbiqRVqBSQ/FvgOqgmOlkLTwjzEST+gLzc95Lb/AKq5L83BqOimg9MsfM9rJfM+g3JF1dPcR0lttldUWh/edarj+aik6OaWee/LHm7zFo0VjaaNLFLHOsvOaWALQKwI+F2P7WROpi249NKLJvLa+YtM8vadpk+hXDz2dvHDI6TWxUlBSorIDTInUxX8tJEWqan+n31O8064tLYWX1ZRWKVy/qmTlRHICqvi2RnqwOTIaU3u35pt7jU/LV7Y6dZ3VxdXlu8S81iijBdaKxZpPs/6obIx1gPMNn5WuqUaDY+Z9O0SxsJ9Dnaa1hSJ2Sa3KkqKVFZBmR+bg4v5Sdtmz8z/AKaF+NCuPS+q/VyvrW3Ll6nOv95SlMH5uCTpJ7Kev2fmjUdEvtPi0C4WW6heJHea24gsKAmkhOJ1UCyhppA2lv5f6B5x8s6HJp93ok08jztMHhmt+IDKop8Tqa/Dg/NRqkHSyMiU21WDzTe/U/T0C4U211HcNymtt1QMCBSTr8WI1UVOllSK9XzIP+meuv8Akda/9VMkdXBH5SaC0q380WcEsUnl64cyXE8y8Zrb7MshcA1k6iuP5uCPyk7XXlt5pmv9Nuo/L84WykkeQNPbVKvE0dB+88WyP5uNpOklSY/XfMnfy7cnx/f2v/VTAdVFI00nnlvoXnby15W1h75ZLNDKkli6PE4j5v8AH0r9quYs5RnJzIgxBYdqnm7zfb2plj1i45cgD9jof9jl3gxaoZ5Ero/NXm97NZf0zccmTl1TrT/VwHDEMfHlbI/MOu+YI9N0CaDUp4XubBJLhkKj1JNqu232sqxwBJbckyIilkHmDzGfIOo3g1Sb9IwagkSXLcWZYiq/BuKU3wHGOKmeOZIJWfl5feZ/MMV5cat5omtLeEtHEsSxPLzUA82T4f3QrTr8TZXlAi2RlZZUuk3qSqI/Nl5eEipj9H0h16c1ZxlPEGb1vyfG0EixFi5FpHyZjVieR3JPzzI00ubj5hyZOzgfaIHzzKtrpRe9sozR541PuwGC000t7aMKrOhWvUMMbC0tfUbFPtXEY/2QyJkGQionXdLBA9cGvcA0/Vg8QJ8Mv//QmH5GSrLZ60yspKXEcb8TWh4E0Pgd8nlNljEVB6ZLdQQ8PWlWP1GCR82C8mPRRXvldItV5b4aW3F9sC2wMsDK/jyb9ZzHPNyI8lC5llELmAKZuJ9PlXjyptypvTIsqXws/pL6oAfiOdNxWm9MWJC31Lj6yAFQ23Dc1PPnXw6caYpAVWc0biByp8IbpXCqy2knMCG5VVm4gyiMkrX/ACa/FTArriS4AQ26o5ZwJOZIAT9oigPxeGKq3MbV2p92KqSS3H1mUMqfVwq+m4J5E/tVHT5YrS6aWQQyGAKZgpMavUKWptWm9MNquSRzEpkAV6AsF3ANN8UUseW59UCNUMHpklyTy512FP5ae+BNJd5e+vC2uTqDRfWzcymT0QQnYDjy36YpTK3luWVhOioQzcOB5ApX4Sagb0+1htBbuZJ0t3a2VZJgP3auSqk17kAn8MbULxJQb7V64oKmJLj6068F+rcAUcN8Zap5AilKdKb4FCozkK3HdwDxU7AntXG1pq3lkaBDOgSUqDIqnkoam9DQVGFVt44FjOQK/A2/0YRzRLk+OppgdSuzUCs8p+0e7nNxjOzrZBExyjxX58jltsCrowPQrt35nCqopFeq/wDBnFVQMKj4l/4M4quDA919vjOFWdfk7v5qlNQaW7dGJ6svjmDreQcrS8y9ydgIm3oaZrnLfOn53WaS3dnfRQC2gRmhC9DI0lZHcqN0YMOLA5l6Y9GjOHnULgU6f8NmcC4pCLjmA+XzOTtFMl0L8zPNWg6cmnWCWb2sTO0ZlSQv+8YuakMB1OUyxpFMp8s+X7380UvdZ1W++oXNoyWSLZxjgYwvqVPqEnlV8x8kzE03Qx29Tg8q3EVtHAt5URoqBim5CgCvX2yPjlfy4ag8pTx+rS85eq7SGq9OXYb4+OUflx3oK4/LyabWLfVBqbJJbwvAIhGChEhqWNTWuPjFPgbVaLm8j3U0EkTakQsqMjER7gMKVHxYnOWI0w70bH5UugKfXaigH934f7LKjmLMacJH/wAqiQ+ZG199Wl9diG9ARrwFI/ToDXl03yQ1BZeAKpPpfJskts8BvSFkRkLBKkcl4169sTqCxGmConlKVEVBefZAFSvWm3jkfHKfy470BbflvLBLePHqj/6bO1ywMYPFmVVotCPh+Dvh/NFZaUHqvtfyR0vWtatJdYvpbqxtmklkswqosnKnws1S3HKpamRZx08YvRPNFna2a6fa2sKwW0ELJFDGAqKqkUAAyHVu5MT13iNKum41ohNB128MbV4JoWktq93NbRs4aO3muFCVct6QqFpVePKv2v2c2IlQdaRck9H5bayHCjUrCO6ST6v6QujzF2U9T6t9n++9M8+P8uShmo2GGXSicakLCvD5d/MBtGbTLfV4qXSwyXekJLGtysd03CN5SIw3Fjt9v7OSnnMpWWOLRQhAxiKBQS+Q7W2076w+swP6dzJaObblPEHiRWKhlo3ME8XXj8OWYRxk006zMMEQSxiGYOgI29i5yqQot+M2AUfAVIG46fznKZt0eb6IglQ6RotSBXTLXv8A8V5g3u7ADZvlFTqPwwrSFSKVbqaT6wGjfjwhNKLQUND742ghE+rGKVIH0jFab9WIioZfvGBaQgjmF1LN9YDRSABYTSikdSD/AJWG1IV1mjpQkD6RgtivEsRH2l+8YbZUg72Jnk9ZLgqixurQAgq3IdT7jtgtQFPRr+K60u2n4tGrIAFkHBvh+GvE70NKr/k4QWJG6O9SA7h1+8Y2mkPdxtK0LR3HpCNuTKpWjilOJr2wcS0qrKFFGZT7gjCChsTwH9tfvGBKneKs9s8Mdx6DuKCVGHJfcYpdHIEQB5VcgUJqKnFivNxCR9tQfcjCqjehbi3aKO5ELNSkiMvIUNdsFsgG45FVfikRqd+Q3xsIYh+b10ifl5q8kbq0kaIwWoPSRfDJwO6a2L5bfV7u6t3WXdCwNAo2p75nwlbhHGAUyt9YgWzSIxSFgnHYCnT54S1cG7I/Ot7Mvl7ylJCzqHsSDSn7PDxyjF9RciQ9Kpol2W/LTXHlDsY72Fm6Fjy4DBI+sJxjYqf5WIksusA/AGib7XYHft8shqAyx83puhKhhRgCobcBhQj5jMVvZ4muNauktqw5NAEd9vhoa9DksVi2M43SBu9b1C4Yubg79CAAfwGWmSiIQ8V1O0oZpWJPXc9MFppjOi3N23mCUSu7olxKFqWIC8TT22wsTzZb67Dv2wEsqXJOeJ3/AGT+rEckv//RZZajBbys+nXQtzIxJa3k9PkVNCTwI5EZXuyBFJxD5w80QlSmovKFPwiZUmFf9kpP44eIqYpvb/mf5hiUevDbXA7/AAtGfvUkf8Lh40GAZt5W8xvr2mS3bW4tjG5j4h+YNFBqDRfHDxMZQrdIdzU06nMY826PJSIo1D88DJeSB8+wxRTqCu3XEJXcT3G3uMJChoL1C4KRTqAHfqMUruJ8DTCtNItG2G5FcCuKbksOvTFVyqeNACRirVN6d8VQumgmO5YjY3M2/wAmpiVRaqewrTFXFfEb++KFyq3gd++JVpRuaDrirZUdwfbGlbHFQADsOgxKqOocf0fct4RtT7sYndjLk+NnZje3J33mkPQfznN1Dk6+SKiLbfaH0DJsCikLUp8X3DCxVlZuo5e2wyQVcGf/ACtvYYFVAXI/a+4Y2rOvyfD/AOJpia7W56gD9seGYWtOwcrS9XtkpPoNt2Oa4FzXhn598fR05qkNzAO5ApxY9OmZem5uPneRI3v/AMNmc4pV1kPY/wDDZJWpJjTc/L4sBQ9w/wCceJD/AId1Y13N6vev+6lzB1HNysXJ60rimUtjreL0lKh2epLVcliORrTft4YqvaPlIj8mBSvwg0U1/mHfFVcgMhBJFRSo64CUNwj041jBLBQAGY1Y08T3yBZAtlf3wl5tUKV41+Hehrx8cDJc8nKMrUgEUqNiPkcVWRt6cax8i/ABeTGrGm1ST1OKto3GZpBI3xADgT8IpXoO3XfIkJCKg1y4syDbRLLMxCIHNF37k9aDK2SaebNMQ2lrLdSNPcyMQ0lSoA414ooNFXJgMSWF6xp0CWMzJX4RUAs3Y/PJhiXheiatd6VeS3NrIkcrQyQVliLrxkoG2UrvTfNgRs4ANFGt5y1lbtrz17czvqC6xx+ryBfrKwi34/a+xwH/ADdgpkZL/wDHWtvBGGltPrkHpiC/NkfrAELc4/j5U+D7Iqv2ceFPGoap5u1fUo0tzJZ2Nssjy8La0MQaWUfvJXAZvjPjl+HLLGbHVw9XpYZwBLlEpHbqyIBUmnfiMgTe7dGAiKCYQepT9r/gRlM2yPN7t5StLefyLoDzRiSQpdAu4BY8bhgKk+A6ZhEbubA7I86XZnpEn/AjFO639F21aCBT8lGNIsuOmWw2MCj/AGIxpbLf6Mt6f7zr/wACMNLa39G2h/3Qp/2IxpbcdMtB1gUD3UY0vEXfou0O4t1p/qjBS8RabTbUVpAgIr+yKjbGlsqNnptsbG3ZoFqY0JJUd1GGltVGmWpG0Cf8CP6Y0ttnTLXb9wg/2I/pgpC06bbAVMCf8CP6YeFNuGm2h6QIf9iMeFFtHTbTp6CV8OIwUm2jptoKfuE3/wAkf0w0i1w0+zPSFPoUY0rv0ba/74T/AIEYgJtx0+1H+6E2/wAkY0EML/NePRIPK7RX06afb3sn1c3PEGhZS2wp/k4YjfZIGzxRfLvkS59O3/xOGdiEjVI1BJY7dBmSMsnHGMI6fQPJ2mTPYXXmYwTW54PE0Sll2rQ/CcfGkQnwBaa6va+UX8vaIk+vG3sYopIrO44BvXVSFYkFTTiRlcJkFJhYpAtaeXbfyBr9voepnUl5wSzMVK8G9RQB0XqFw2TIJjEAFL/yp2vdWRqb27Hb/UY5LUBhi+p6fpbHitcxHKKbSve+mq2drJdzHb0ohU08T7ZOLFDxWPnebj6fl2ZVYAN6ksScfHqd8bC279Ged6MphsbWVdv3tyHoQDWoQV2OFFqUPl7zcsnNtT06FWHJ0ijmkatNyGJp9qv7OSQbRsehawwQS60OQ6tFbjfan7bEdemNBO6ne6TLaTWrjUbmT6xN6ZSkQReS0+zxrt1+3hCv/9KJR6TfxPbepAT6Aui5FD8UzMVp7/FiJBrMT9iGEV7bWQHGWKWOwKCnKvrVBAFOr4dkm0xgv74amsHrOYjNFGVbccfRZn6+LAZGQFMok29y/LCg8usR+1cv+AUZGLLLyYD5S8v6BqEes32qW0c8tzrGocZZdyI0nMaqCTsq8egzN4A4IkeEbovydZeXojPdaRIhW4MnOJKHgqysF6VbttyzD1EKczTyJG7Ja7e/jmM5CQfmDcNB5I1idWo6W5I3I/aHcZPGLk15pVHZ5h+Umt3F75yihkjRFSCZyV512BH7TMMv1GMAbNemkSTar+fl/d2+u6YLeaSP/Q5HYI7KD+98AfbDp4AjdrzTILOPyemkl8jwzSuXeSedqseRALdKnwynMPW5Y+gPEdM1HU5PNNrEbqYxy36gqZHIobhduvgcy5QAg4eGZ4w9e/PvUbiw8kLPbyNHIbyJeSMVNCHJFRmFjG7fmJY9/wA496vd6lcas9zK0gihhVOTFty7VO/yxzABlivhNpP+Z+qahF5+1BY7mWOBBCvEOwUViWtADQZkYwOFxpzIL0+SeVPyle4Dt6q6OX9Wp5cvQJry61zGPNy8h2eZ+StVvZ/zcsrRruUwRpVoS7FWP1SpLCtPtb4yGzVhJMym3/ORWo39o2gG0uZLfl9Y5+k7JWnCleJFcMeTHLMgp9+QN3c3nk24nuZnuJDfSKrysWNFjj2qcjPYt0CTAPHdf8269H521K1iunWAX0qBSxNB6pFBvl3CKaYzNvefzavp7DyHcXMTFXjmtgCCR1kAIqKdcqxCy2aiRA2Yf+Seu3epa9eJcSFhHakgVJFTIviTlmUU16eRkDb2UEUym3ICG1IkaZdf8YziBuiXJ8qpfaFFIVk0WOZuTepM0jjkanfNgLp10uaFvZ9PlugbO2S2hVACgZjViSaktXMjET1YkNLwA/Y+85axIVFK1pRPvPXCELgy7fZp/rHCqorL1+GnzOKrG1m/0u8tp7G4e2dmZXMMjKWXj0PEjauY+eII3bMUiLIZBpHnLzJfarYW0mo3Qje5QMVmk3XeqnfcHMGWIByceYkpv+e8oa308GvMTNUjYUCsBk9NzZZ3kaknep29xma4xCsGNB1+VRk0IyDRtWurcXFvAXhatH5oOhodjlEswBpbe1/kJYXlnoOpRXKcGkvFYCobb0gO2YuWVlysXJOrD83NButbi0dLS5FxJMLdXb0+HItwr9quQMSoyRJpOPOX5gaV5SFob6CaYXnqemYApp6fGteTL15YxiSspiPNHeXPNtjr+gHW7SKWO2BlBjk48/3P2vskjftvgIo0yiQRaSeXPzf0DXtYtdLtbS6jnuuXpvKI+I4oXNeLE9BkpYyBbCOQE0jvNn5l6L5Xv4LG/imeS4j9VHj4cQORXcswPUZAQJZmQB3TKDzZYTeVv8SKkn1L0WuPTPHnxQlT349vHI8JumfEEq8rfmdonmXU206yt54pkieYtLw4cUKgj4WY1+LJzxGIssIZRI0FLzJ+aOj6Dqs2mXNrPJNAiSO8ZTjSQVFOTA4I4jIWFllETum2q+abPT/LY16WKR7YxxSiJSvOk3HiNzx25ZARJNNnEKtbpfmaO9lXhCQ3pJcKC6t8LnYHj0OQMaKiVor80fM948/lqOG6khilnmjnjhdo0Yek3GpG54kDLcO53a88iI7ML+u3/wBbSNr25uIncIUedmWhPUiv68yJQAi4kMsjJ5kwHI7gePxnMiPJiebR4EUPH2+M5IIdSIbfD/wZyNq2qpTenv8AGcbVE2MNvLeQRyAGOSVFdQ7VKs4BAp7YQN0E7PUh5F8qh/hsmArQfvpv+a8yTCNNMZS72daFZQ2PlbTbWAFYYpb0RKSWopuWIFWJbvmklzLuIfSiajIpY551iWWztlYtxExNFZl/YP8AKRmx7NhGWSpC3A7RyGGOwa3QnkSJYbrUgrMYyLcqrOzgH94CRyJpWgyztTFGEgIjha+zsspxPEbY95ttl+satKEmkmrLxEUjq1aUHEclUcczdNhgcHFW7ianPMZ64qDMdVUy+VlRyWDRQczUgn7Pcb5qNNEHKAXZ55EYiQd6STyraLD5gUpyCNayhl5sVJEkZFQSRXrmf2jijGIoOD2fllKR4jav5gsbKfXJWnj5twjA+JgKcelARh0GKMsdkdWWuzSjMAGhSYeXkdPJ1vGzMWSFlDMSW2ZgNzU9BmszxAyEOwwm4gsU0Syij8w6TPEGVvXkEtGahDQSdQTT7VM2mqxQGAEB1elzSOYglMPzE1zTdIurRryJ5VlhYpwptxbvUr1rmv0kbJdhqiQBSafl/qMGo+XDcwK0cUk8wRH3IoQPE5XnjUqTpzcWBaN5q0641qws/SmjlkuYkVzQiocdaNmXKI4HHBkJsq/NPW4NG0/T7mWAzJJM8ZVG4kHgGruPbMTT1e7kZ74Nl/5X61ZatZX9zaKyRpOiFXpUN6YJpQnDqKvZjpZGt2O6nrWiJqV3DJeQrcLPIhjLUfmHIpTrWuZEAOBoyykMnNmnna4tLXRklupFii+sIhdzReTBgAcxcAHG5WckY7CX+Rbm1nurxraWOVPTh5GNgw+0/hlmpABFNOmkTaA1GKE6tdclBPrPX/gjmVhgDDk055kTO7wv82iy32nxBiIxA6lamhaOeRA1OnKnfK5xADk4CTe7DNHkKatZVOwuIiT8nGUW3S5Mh8/ov+OtV5iqtIhpudii4cPJE+ibaqts/kHy00ilwpuFUBS1Pj9vlgh9TX/Cfev8q/Vj5R82x8SsfpQMQQQaA/f2wS5hljH3L/ypkj/TOpLGfhNtJTr/ACN445zYTj2kHp2myfCuYhchmXk+X/cqBXqjA+PbD0YHmxOL80/NkmneY5p7uC3bSdRgtYZY4V+GGRpVfkG58m+Bfiy44hswyZCDID+EMot7n6xGl0W5tOiSmSlORdQ1ae9cBDKEuIAlWVwFB8K4GSS6h5hmtbyyt4Y0Kz8+TsTVeJUUAFK154bWWwRusbtYH+W6T8QcIQeT/9OJR+do3jSSSNPitzduqlqheVEFKH7dcrIpPH0R9t5ktbmSVHiZGtYkmuQp5FPVHwpSn28x8+YQiDamYHNfb61YTXQt1D+pz9NSQCKqvPrXwy6O8QVjIHkjI/OV7pt7HpdpcMkkkiiOFX41eSlNvfMjHQjbVI8RpJE8lfmBHbmB9L9RjPLNJJ9aQBzLMZOh+eSGpDX4BqmTflP5X1ny+dV/SloLV7t0ePg6yAkci32enXMfPkEuTl4o8MaL0LkP7cptmkHn7T9Q1LyfqWn6dD9YvLmNUii5KtfjUndiB0GSxmjbDLGwwD8r/JPmnRPNRvtW0/6ta/V5Y/UEiP8AG/Ggopr/ADZdmzCQoMMEDG7VPzg8meaPMWu2tzpFkbm2htDC8nqIlHZmNKMQe+OHKIjdhmxmUmY/lppeoaN5Ot7DUIDb3sTTF4aqxozErQqabjKckgZW5I+mnk+iflp56t/Mdjd3WllbaK7jmlf1ojRBKGY0DeAzJnnBjTjYsRErL0f85/LeseZfK8Gm6Rbm4nF2ksihlSiKrCvxEd2zGxEDm25QSdko/JHyZ5i8rS6qNZtvq6XKwC1+JXqEL8vsk0+1jkILLH9O6UfmJ5I856t5o1K703S2kt5mT6vciWJeQWNV3BYGlR3yYls488ZJehXem6k35Zy6PFCzao2lC0W3qoJmMQQrUnj9r3ymPNyZ7jZ5/wCTfInmS0/M+PzBcWbJpSCSP1uSHcQ+l9kHl9sUyyRBDDFGibTP88PJnmfzRNpI0SyNzHapN6780QKZGXiPiI/lxxkUwyRJNp5+S/lzV/LXlJ9O1eD6vd/XJJuFQwKsqAEFSR+zkMhst4+mnkurflJ+YF15rudTXTG+rS3zzqfUiqYzMWBpy/ly7iFNEYkF7J+a+j6rrvkmfTdKt2uLySeBhECq/Cj8mNWIG2VY5cJZ5o8Q2Yl+THk7zH5d1m/n1ize2Se2EcTsyMCwcEj4WJyzNMS5McEDEG3sINem+UFuCH1ZuOl3R/4rOGPNE+T4zmuJprmR0jk4Emg28fnmyjE068x81exLqXLq6liOoHauXwBDAhMFfru33DLEFesj1J3+dBixXiQ9at9wwqqLK5Famg67DCq+HQtX1u8ghsLWa6MPKSZYghZVIoDRmUdffMfUSADZjiTbIdI8i+cLTW7O5bRLmKygmSR2JjdgADU0VqnMIzFN2PCQUT+eMyvHp5U1/et28FINQffDpebbleUpXao27bDM0OOV9T4f8KMkxpF2WrXsUYhW4dIlLUVWKgVNemUSiDugh7n+RF3JcaFqDO5creKoLGp/u1OY2QUdnJwj0vNPLsyH8xLEhhy/SgBFRWvrnLSPS48B62df85AMjNoQcgLW5Jqabfu8hhbdQNmQ/lRMrflpIy0C8r2gHQUByE/qbMX0vKfyem5fmLpAr09bv/xS+ZGWuBoxD1Mk/wCcgh/ud06U0IFpwpUAgmRjWnhkcDLUR3Zfpcn/ACAQGv8A0qpt/wDZPlUvrboj0MG/Iadn86XHL/lhl71/3ZHl2oPpaMA9SH/Ou4KeebxAwUSW1uCe+yHI4JVFdQLls9I84Sov5Ro7fZW0sSd6ftRd8oiam5BHoSj8q9SWeWdTOsi29lCteQPEeq3XDm5oxcmTfmBY6tqFrodxpdlNfpa3EjzGAKaAoy9WKjIYjRZZomQoJBaW3mP9IWpm0a6t7cSqZp5RHxVQOp4uT+GZE5iqcXFhkDZYGeVd+R/2Iy8HZgebjyp0P/AjDaG6tTowI/yRgVsBv8r/AIEYqqwTtDIk/B3MTLJxULVuJBoPuwg0UU9Aj/NfSWbfSNQ3/wAmH/mvJzzLHE9J8u6pFqnlHTL+GGS3jllvAsU1OYpN34kjNXI7uyjyRg3FcCUg85QapLY2/wCjbI30yS1eESJEQpUjlyfbrmXo84xysuJrMByQoITyZBq8Ut2dS05rDmIxGDLHKH48q/Y6Urk9dqY5SCGvRYDiBBSfX7DzS+q3zWujG5tpHYxTi5hTkrDrwPxL9OZWn18YY+EuPqNCZ5OIMn1FL9vLPpW1t618sUIFqXVCWUryXmar2O+a7Fk4cnF0c+eMygYpP5ag8wpqqyahpZsoBE6+r68cvxMVovFNx9nrmVq9XHKKDjaXSnHK3eZ4PMR1cyadpX122MaVl+sRw0YVBXiwr9OHR6wYo0QjWaM5JWE20SG8Xy/HBcwfV7vg4eAurhSzMQA4+E9euYWbIJTJDmaeBjEAsZ0Sy8xjV7WabSxHYJIzC6FwjHhxZVb06cvir/sczsutjLFwU4GPRyjl47VfzI8va5rItBpdotyFjdJS0qxcCWDLswPLpmHgy8Dm5ocQTT8vtP1XTNCFrq0CW90J5H4RsrrxYgihWmRzZOI2uCBiKLzfR/y086WPmG0v5bSI28F4s70uVb92JOVQvEb8e1ct8YGNNZxHitm/5peWNU8yaPZWunRLNLDcGV1eUQgKUK1qVavyynHLhO7dOPFGlD8qPK2seWrHULbVIViNzOk0PpyCUUCcTUgL3GOWYkww4zHmwnzL+VHnG+8z6hqdrBAbee7eeBmnAPEvyFV47fflsMoAphlwkyt6J+Y+gan5k8pSabp6R/XJJoZQkz8FAQkt8QB33ymMwJW3mNxpIvyl8leYfK9xqX6WjhCXaw+m8MnOhiL1BFF/nyeXJxNWHEYm0TfaD5zTWNQmtrO2urSe5ea2eS6MbBGp8JX02pvX9rLsep4Y015tOZTsPJ/zc8kearbTYtc1KK3htrY+gyRTGVi00ryA0KJ/NTE5hIU24sRjby2xbjfW7ntKh+5hlbOXIsm/MdjH50vpBvyELU9zGvXHGdlIsBN5ZkP5eaCzUH+kXKD/AIInDD6muQqJVPJ8iHR/NkddvqkbV7bVwT5hOIb/AAU/yqkDeZL1VNQ9vLQ+PwNgzckw5h6dpkg4rTMQuQmdz5ll8t2E2sRQi4eCg9JmKAhzT7Qrk8cbNMSWNwfm9aJHP6XlfTUFywkuAan1HBJDP8PxNueuZPg+bV4m/Jbcfm3cegLpdNhVXPEwq7KqcTxotB0xGNfErkhz+bt8UamnwjsP3j9PfbHw0+Ig9U88NObC6Foi+kpZRzbcyUqDUdAUxjjRKeyvdfmdql2YS1tBGIZVnUIX3Me/Fia/Cf2skMdI8R//1I1/hfy0kjTSKURI0RyHYj04mDItByP7I7Zg6zNwQJ6lGQiItj2t3mg20sjSTTI17MJrr02CsKDilahabbrH/wALmrxXkIveMXDJEjRKdaT5btbO5t7yK7lmVS8oEgB5euoG/f4QM3GGQMduTmwjQS+X0m/MXTg7KALu3G7U7KfD+OZY+hpgf3r3trq2rT1U/wCCX+uYbmqZubYmolTw+0P64opoTQmo9RP+CGK0uEsAIPqJ/wAEP64lNLnuoCP7xf8Agh/XHmrS3EIG0i0rueQxC00J4t/3iGv+UP64qAv9eLjTmte+4xpSHLLEK/Gv0EY0u7jMh/aB+kYVpeJYgteQ+8YFpaHjJX4huR3GJRVITSZR9RSpH25D18ZGxCaRquo3qPfcY0tO5qd6g777480U2WQLQnfGkUt5D+hwUtODL0xpabDDFO6X6/dJHpVwjGjSRvw360FTjGVSDGfJ8dwSAlqkdT3Pjm6iXXyCLj4+x+k5YGKJUpt9n/gjhpBVFC+K0PucCheOHio2/mOKCqR8OI+zT/WOFD0f8lFB1++IA2t16En9vMHW8g5mm6vbGU8DscwLDl08K/5yMgt47mxZEAdpnBanZYkIH3scyNMd2jKHjKsPD7wcz3HpeGHh+BwhClJHGaniK/I5ExDISL3L/nHo8fLOqAbf6cP+TS5hZebkQeiReXPLkdwtxHpdolwjc1mWGMOGrXkGpWte+Qsp4AjL7StK1H0zf2cN36dfT9eNZOPLrTkDStMbIUi1W0sdPs7Y2tpbRW9seVYI0CoeX2vhApvgSBSlaaBoNpMk9rp1tBNH9iWOFFZaimxABGSJNIEQFW90bRr+RZb6xt7qRRxV5o0dgvgCwO2RshJAKqljYJZfUEt4lsuJT6sEURcTuV4U40yHVQNqULTRNEsZvXsrC2tp6FfUhiRG4nqKqBthJJURAWXmh6HezGe80+3uJyADLLEjtQdBVgTiCQnhCtNZ2Etn9Slt45LOgX6syKY6L0HEim1NsimlGx0bQ7OQm0sbeBpKB/TiReQBqA1AK0OA2tAMuWp09QBsJB0/1TiqW6stNPnPHoh/Vh6q+cWMZ/lJ/wBY5shydcebiV22X/gjihw4Gmyj/ZHFWwY+4X/gjiq5WQHcLv7nBaomGSIdePXxOVzZh7n5EngHkDSOUiKPWvAAWA/3aPHMI83NhyTf6xbV/vo/+CX+uKXGe3p/eoP9kv8AXFId9Yt6U9aP/g1/rirX1m17zRg/66/1wq19as+88X/Br/XAVWteWHVrmEHtWRB/HFaUzqOnjrdwf8jU/rimmhqel1A+uW9f+Msf9cbWkLp+p6YlhAkl5bqyqAwaaMEEbdCcWFK51jRx11C1A954/wDmrJIorTreiA76jaf8j4v+asFlFNPr2hbD9J2n/SRF/wA1YppZ/iDy+Kg6pZ/9JEX/ADViVAK0+ZfLqmn6Wsh/0cRf81YsqWnzN5Zp/wAdayH/AEcw/wDNWKrR5q8rr11ix/6SYf8AmrFNNHzZ5W3/ANzNiP8Ao5h/5qxtSHf4w8ojrrdh/wBJUP8AzVjSKYR+c13p2vfl9d22j3cGo3P1i3dYraVJGoH32Untk4c90XzD53Xyl5hV1YadOKEHcDxy0yDUbIZN578taxqHmGS5tLKaaOSKIc048SyoAepyMJAJN0Fa48s63L5B07T/AKjI13b3ksjwDiGVGBoxqab1xEgJLRVPJ/lXX7XTvMcFxYyQtfWRitVYpV33ouxp374JyCY81b8tvKXmbTPMJnvrF4YGidC5ZD1U/wArHHJKwgDdnlhb3iqoeMgUBrtmOQ3Wo+cz/wA6pqRYGiRq1KVOzDLMWxQXjsWt2yxiscvh9j+3MzicWkUt4j6JNOA3BZCQKfF1HbACit0F+m7cKB6Uu/8Akj+uSJDKkc98F0WG4ZWZeQotKtQse2RBYgWhk1y36enLQgkfCPA++TteF//V5noWm6la6xqd3LE0UCW9nArSKaFQiiULuKEcT8WabtbIOAR6yacxqO/exq8lt18wTuGE1vM5khfkFMQ6kKK9V/ZwYwTjH8JH1OJEWGWeU2vWv7JZDOYRFctIHJ4luSBa/s+JXM3T7Rc/Cdku8z6gLbzBclnPpq1AtW2/dp2HfM6MbDROQEixS6ZhcSXHpCcyAqBMvNaH2Pf3wnE2Qy7JA1lcKe9MBgz41Nobhf5seBImjtB0q41DU4YKkRg85mqQAg65javKMUCUHI7Xw7arOyNUMa1Umnh3w6UXjDHHPZL+MvicyeBnxu4zeJx8NeN37/8Amb7zjwJ40fo1lNe3yxO7iJfikIJGw98x9TPw42xlkoKN9bXlrcNE7k03BVuQofcHJYpCYsLHJYQ4e5/nf7zl3AWXEujN20iIJHBZgAanqTgMF4k082PdjzLqYMjFhcOCQT1BpjwIE0BaJdz3EcfOQhmAbiSSBXfbIZPTG0HImvmc3H1xXilcKqhCoLAgLsCfmMxNEbjRa8eW7tJfVvP9+v8A8Ef65n+G28bvWvP9/Sf8E2Phrxt+te/7+k/4Jv64+GvGqW/6SnlWKKWQuxoByb+uRmBEWUHJTI7ljZWEdikrNcSR0uXLNUtXkB1245rMcjknxdAfS4xyklKbeGQdj9wzoYjZEkZGJRtQ/cMsYKwSTwb7hhtSqqrDqH+4YFCotRuQ4+gYrSZaVe3NstzHHDC4mhdGkmjDuAVpRDWi1/mpkZRtkCkd7NqkHD6rO8UpBBdWaOvw+MZB265RnjYbcMqSs+Z/NMMhX9LXisp/5aJevX+bMThDlCZTfzpr2uX9roialePd8rJbnlLu5kkd0JLfab4I0XLMUaYSNsaV/wDPfMkFrIXhzT28N8LEhosaYCkBN/L/AJ781eXLeW20e9+rQTP6sienG9XoFrV1Y9BmPOLbEpr/AMrn/Mb/AKug/wCREH/NGV8IZWvH51/mQOmpr/yIg/5ox4Qtt/8AK7fzI/6ua/8ASPB/zRg4AttH87PzJ/6ugH/PCD/mjDwrbv8Aldn5lf8AV2H/ACIg/wCaMHAFtr/ldf5l/wDV3/5IQf8AVPHgCeJw/On8y2NP0v1/4og/6p4+GEGbZ/OT8yz/ANLb/khB/wBU8fCC+Itb84/zK76sf+RMH/VPD4ajIjtA/NL8x9Q1WK1/Sx+MMT+5gH2VJ7JkTjCTlKprHmvzu96EudevWod1EroA3YBUAHfI8DA5SifIWseZLzzHDZ3l1c3P+kGVZJJ5TQQox9PiW4MjftDjkjBfFRYZt68q9vs5mDk4Z5uJYn9r7lxQ1WTanP8A4XFW6sBSj/8AC4q4Ox2+P/hcFJDbGanRx92R2ZLLKz1ea6NzY2Ul7LAKbw/WFTl0PGhCtt8JymeIFsjlI2SfUtF1bT7cLqcEtrayTtKZbiJlLSOKEcmoaU/ZyHAs8prZBTTWp5IJVeMfDGWc7Cle4x4GvxSltxRTJwkhaIoaoWq9adtgPlkuAMhlKto0zTR27SyRn06JSQnkd9utdt8jKCZTlacQrpRMhJX1FB22NGHTt0yowYHKUn1axN3cqxoaRqCU6dT45Zig2RmaQ99aPdNH6iIghjEUaRqEUKvsO5O5OXDEg5SoRaQgmSo2DLX78lwI8Qpx5x8u+n5i1SUFWR7uaig1YDmacsx8WSMpcPUMpZKKR/ogV6ZkcCPELX6JHhjwL4hd+iB4fjjwL4pd+iB4Y8CPFLv0QD2pjwL4hd+iF8Pxw8CfFLf6IXw/HBwI8QoqO3jRET0FJReNeRAPXcinvgOK0+KVBNIjruB9+SGNj4hTrS/McXllGAtPXFzQij8ePD6G68shlgzwmzaOb82EJB/Rh2/4u/5syrgcgFVH5wAKB+iqkd/X/wCvePAtrl/OQhq/ogEeHrn/AKp4PCW1Vfzmfto9G8fXr/xoMIwljab+XvzUn1TWLbT49MELXD8BJ6vKhIp04jBLFSRMWmMXne/NoZUsIyEb00VpSCxHUj4cxJZwJiPUsiQDSrrd9d6j5M1aS4gWB/qzURGLbAj2GZEeaebwfk/Dv198yWqhafWLE+WLsDYgn9YOHow/iSIySFVrWm9OuNllwhPpef8AhNCQRQjiaEbc6YOIHkiI3KRo78ht+w3j4HDxMqD/AP/W5Xc+dL6+0DUo54IYJHYRR8GZudTUjce2arWYbyQN7BxtTKwGCSlklinvVWX1FqI42ClT0oRQjtmTGiCIsYgcg9C0jzTNZeX4pUtykK7r8ZkcmvRqgUGa/URkJCMSylkpDG90TVoob68kuI7meQiVIZOKg0p04nwXNhizyiOE7lrlEFIZ4oTK3HjQMePIkmldq++bYbhkAttYYkuY3KI/E1p16DwyMhsyBUbqzgM8tFQDk1APngA2W0XodmFNwIgpd1FSCRQdeozV9pigCeTGRsJJcPAsjpLGrOK8mA3Jr/TMnSHZEOSEuIxHPEvENyQVG/Wv68yJ30bQdlVLZPrLDgFoSKV2yrFIkreylG1qsSlwpbiC1RU19Tp/wOZYpBtNtAljSN6KKymgoDuB1WmaztCNxBYZDtSB1NuUsCFArcgtAKbf5WDS80YeRZD5W0HTLy2unurdZmWXjG5LbAKppsR45dqJEFM5GkJrWl2NrrMMFrCIk/dGgLE8mk9ycniJMSnHIksw1Lyrot1e3lxNaAyM8sjyBn3NSa7EZSJm6RKRBed2Ui213BIQAjLRm+IgciNyBvXwyesiZQpJ3CLvXVb2TmC877AgkjrT4q+2YOG+EVyaoJ7o/lXTJ9Btrqe25zS8mL8mFRX2PhlmXNIGgW2UklXSbR/MC2YjAga4KekGboFJpWtczeM+FdrE2U51vy1pNrp1zJHbBZokUo4ZtizUrucpw5ZGkGSSaXCkLSTBV5RAMr1Pw12yztA+mu9hI7KepSQzTBlkcsoJYnpyNBUd8wcAMQxhySSW7mSXiNuO1Kk/xzYxma5uXGAITXTnZoS70BqKAkjala5lYCSN2mYRYYDf4SfDkcyGtWDJ/k+3xHFK7klADTf/ACjiqtBKoqBxpSg+I4QhK9eNLXkhCsCB8LEnfKc3Jsxc2NkkmpNTmE5bIPNVeGiDw0q3/F5DlmNBSRf898vYFeKf5nFCpGoI32rWm58cxJ5SCxJamWP1GVegA3r3+nJ4iZDdMSaUfTH+ZyzhZ8SvbRQsGDx8+hDciKe22VT2LCcyGpYIhKAoovw8gSe5wRlsVjM0ip7Oz+ru0ScWQDcsSTvTplcZm6YDJK1GCKzCVmWpBINCQfwycpG2UpS6Ie6SNXb09krRR9GSvZnA2ttByuEB9/1YxO7KfJM0toPRDOWLOdqHYbnKpZKLimRtqztIpnkV6mkbstD3DAA/dlhkQLbAU/8AIllF/iu1RSTyjuK8TVtoj098jjJkWMp1ElmR+o3ttLNE84aI8ZoW3lQk03UA5dLEQ0w1MZBJvLssml+Zprjd2tmm4oxNCeJXelPHAI9HJtGGNASKp18DlsRs0nm16ajuv3HDSuVE7so/2JxpDYjTfdf+BOKqdzGos5zUV9J9+Br9k98B5JDEhuoqWpTxP9cxLLa9a/JjWdP0rTNVju5mie6KcGCNJspYN0I/m23zKwYpTGzg6rWY8J9f8Sl+dutabe+ULG1tbl5ZbafkG9No6JxCgVYsa/M5LPp5QFldHr8WU8MOjym65t5Y0mMeoeV1cBTXdyeApWnbMWR9Ic7vSuKAFpBK7oyg9+hHY5T4hBYmS2GEGKMxs4csAxBoOvbCch4me9rri1mhvZIiZFCnduRrxO4JP+UMMp7KU/0a3BZohx+JY+L/ABEsWJFWqTQ5PHmsbhhRZrJ+VWuj/d0G4DUHLuK5MaiLI4ZKL/ljrMKiSW4t0TkBU1G56DIz1MQGPhSQ+p6Feav511OziuI0k9eXjG4PRW6mma/T5AJ3SJxJlSNH5Ua1Wn1mDf8AyWzY/mYpGGS4flNrJ/4+4B/sD/XH81FPgSXj8pdR9Ir9ai9UsCrcTTiBuONetcfzMU+BJaPyj1cj/e2Ef7A/1x/NRXwJO/5VHqx2F5D/AMAf64fzMV8CTv8AlUerkf72Q0Hbgf64PzI7l8CTh+UerHf65EKf5B/rj+ZHcvgSXf8AKo9SrT67Hv8A5H9uP5kdy+BJev5S6hT/AHuT2/d/24fzQ7l8AobUfyWvb1YwdRRClTX069f9l7ZGWpB6MoYpRSu8/JL6hbvdXmrqtvFvIREa0/4LMfNrBGNgM5CQChpX5SWesBn0/VgAv2opI/jXtvRsGDWiQ3G7CMpFMf8AlQ1yDtqaU7Vj/wCbsv8AzA7mRhNsfkXdV31FNv8Aiv8A5ux/MDuR4ck48r/lZFoGsQ6xd6grR2aySrVKAOqMUr1qOVNsyNMRllwkNWWMo0brdi19rrW2qepLxaFwskEEI+AGejOafzb0zQTw+s1zElnM8VvR5PLM13o81qLhFivYSnIVJUOAfppmfCXVyokkWwtvyDQf9LY0J2/db0/4LLvFCKkjbb8mVg0+az/SJZJiavwAIr7Vx8byY+GbtDL+Q1iFHPVJCQasQgG3y3yE8/CLZUVOz8nWGuTS6J9ZkS2tkVIGUhmCqT9o0KjcfZzXaPUEmz/E0gESpMIfyH0RUbnfXDuVZVcFFAJBFSOBr9+bLxW/gL//1+e6loWjaHpd24qbllMkUcnJqGuwFDszdf8AU/181GsyGRjEd7TqgAGHeWNGbW9UntXZlnkjcrKVJTqAd9+gqP2ctnsBTDFh4gnvmPR5dK0KK2nHpdIxFGSVfh0etT1/lbMW5HKCWOWFEKPk7y9puoWU6yyfv4HJ4LIwNGH2iAR+rMsT9TdHEJC0rOzELzABIFAOx983cOTSURp8fqahbRsHIeVFYUWhDMAa4Zckx5rb9FF5cBVdVErhQAtKcjTEDZiCrRXS2WmyyxR8pn+Es5AAqaDbbNF2hEzyCJ+ljM9GKRNNdzyJxqQKFhT6My8MKIpsiKCLudPnnkSSjKY1CkEDsa5nmNqDTcNnOshdgxDVqBTrkceERKTLZBPot2Budv8AVyzhXjCZ6Z6ljaOQvJ4xuzbKKnb8c12vgSAC1ZJWl7SvcXbgMKqQZDQktQ1NK46XGAQyiKCb6frusabDLBaGP0ZXMjepHVqkAda+2ZmTT8RUkHm5Lm/1LVrZ7rjzeSGNSi8RQSDr9+Sji4YllEAHZMtV80a/HqN5DE0XorNKiAx1PHkR1yEcHVZSBKSadBS8jmdeSQJuDUb9jtmP2hA+GxJ2UtTvXF8REoVpwAO9ATU/TmDgxXHfoxhG90bbeY/MdtaR2cEsXoRCiAxVNK13Nc2P5EHdsMgg1utQS5W8Vl+urKZeXD4KkEdPpzI8H08KBIApte6nq915fM9w0fOe5+ryBUI/dxoJBSp+1ybIQwCMlJFJabgQWjs0lK/ZQjr2Ncx9aOKQDXVpMZBIHkA4moAp45VVbNojWyu9i7SrI0cTEdRxcBtu9Dmbjw7JGShSKgWVC9VVATXjGCFFBT9ok5k448LXI2rcm267ewyy2K+rnryNOmww2raliKfER40GDiCd1USkAAV+4YgqnHl7y3a+Y5prW8keOONVcFKA1rTwOY2py8LfhhafH8lvLldrq4/4NP8AmnMHx/JyfDPeitW/K7QrqS2WaeYLa20NrEQwFQicv5TU1b9nJRz10QcZ70sv/wAmbR7crp80sVwSCHmKsvHv8IoanJ/mwx8MpJYflTe3xnEN6I2tpDFIrJUlh1YfENjlePXA82IxkoxfyY1gUI1CP4agfuq7H/Z4yyxO7M4Cibf8orSxheTVriSfnIio1vxjCg1BLAl65IZ65L4JTWL8oPK8oqLm5FfF1/5pw/mivg+aqv5N+XVrxuLk12+2B/xrkJZr6IOFsfkt5cbrLcknYjmP+acRl25MhhV/+VL6F6fEvdcTTo3gf9XB4nkx8ALf+VJ+Xjtyu/EktQb+9MJy+SfB80Drv5QaRZ6bLc2sVxcSoQeDvVd9qkAxk/8ABrko5L2Xw63YfZ+S9Z9cyLoUZWJS7n1iKKNixrPt1ywNMiT0TLT/ACPqF5M0U9hBDCkcsgKyPIRxVm7TjIGIu0RhZ5LbHyXrDzpBbWunrM6soDy3BqtOR/b2+z45MkVSeE9yY+S/Jltd+YYIr1rMI6ScRbPOsvLgaULtQCvX4WxjMQ3DCen448JZxpPkCCxme6Dl7lk4qpclAWALV2BbfJ5NYDs0YOzzDe2rX8u4E1K5vJHHG5SYSqrEkepGeXGop1+zlEsoOznDG0vkIOQ3qmjb7seh38MkNQx8G1w/L9OVWlPGvZ2rTH8ynwHJ+Xyb8pKjvR2x/Mr4Dl/L+Po0p37Bn69u+D8yvgOb8vIpIpIzIaOpXZ377b7+GJ1CjAla/k5ZEGtwa7cd3p71+LK/GCfBKd6H+X40jg1vMheNw6Fw7Lsa7gt45kYdd4YIrYuDrey/GMTdGKd6f+Wuj67qYi11RdW0vqSNCheNeRoQdmrschqe0vEiIhjouxximZk/U8p/NHQLOwlttH0mAwW9neyC1iTlIazJG7k1LM24zGhM9XOyjh2YXPY3MkIkmdJATSOSu1KGvbESDQCKTbyr5bgvtA+tx7X3rmKJxJTiQocVQ/DRt0/2WGc92+BBBRvlfQrG81+5XVYGuIprd5oFYFQxDcV4kUPUcciZsOZpHWfly1tdflt4yUjNzFEqjoq+qRtUnplgl6S2Sju9+13SbSy00yoCbiJxHIxJowC7GnaoGYgkbcrhFMI128jTTGJoEqPVL7KBUHc/s4zFhhPkxvRLa2b8ydamb966kvEFFVQualmJ7/srTBAbtHD6rZ3z+nLm9dyVasa8QKnv74Cl5+Pzh8v2M9zBqQuDKs0gjMMYZfTr8O7Mpw4oGTWJC3H88PJY29O99v3Kf9VMt8KTLjCZ6p+YWm6TZxarepOdPvVgazWONTIPVjMnxAsvYfzZCMLNMrCUf8rz8oCn7m+6/wC+o/8Aqrk/BkjiCbab+aOgX1lc3kMNysNvBLcssiIHZIqcuIDsO/dspP1cKBkBNJL/AMr58qA7WV+R/qQ/9VctGEp4gnflH8ytG80X01jY29zDJDEZmecRheIYLT4XY1q2CeMgLxBlYY1rWop1yq2VMf8AP15Ja+VruRI1kXjSQNXZT+1sD3yjMCaDXk+lhf5Lw3Us9/eyrIIwAiSk0jJO/EDuRl5gAdnGxDfZ6qX3G/ti5q0t1xWleyuXgukkjCFjVKOodfiFPsnJRkQdmMogvnHWrMpeFUjeVg/wotAVVCRTj9qtB/xtlMTubcLJHcl623mkaV5OOrtbCWC1iiEcMTgcgSqH4iDxoxyzELcnDyYkfz8tf2dGk+m4H/VPMjwmfEGUeSfzCTzPBqMqWJtv0eqtRpA5fmGNPsrT7GQnClErlTGIPztt9QkNo2mNbCccPW9cNx96emMp1mnJxmmM8lBE+QPMMUnmg2MMXITRSSGUEV+DcGlK7jr8WY+nwGMbLVH6renpfXSo8SFQj0DbAmg3oD75lW5L/9DnPm689SF42q/rOBcTqQZAvKu3Tb5fs5zkZCWSx0aNSQSmHlKbQrOyS3troPdMOUykmg+g/CoFcyBl6lycU4gKnnO3lv7NYIZF2q5U7V2oCDXvlOXUQEwXH1MwSFHyxYWGjaPcTSNH9auXPqPGakqB8Ip269Ms/NCrZjLGMPexO4j05maCyt55JxyPqsxKmlOR4qOm+Z2n1uQyBkYxi4USTuu0y0uE1K3keOkcE8fqtyPw8WBNc2GTWY4jctgmAVC9hBuJSjK7c2JCuf2jX+OHDq4yYiVoK4/3kmViF5KampYmngMp1Y4qI6FmRaX2UkFqFidxzlqSaHev2d8qxTPFfRv4dkdX4qDifH4jm0EgQ0UV427Lt0+M4bVaSQegP+zONopZPMY7GcIgLOADRiTQZg6zGZEHoGJCV6fCziSYheTbLvQgDrlmniA2SG1IplYdVHv8RzLtrITPysofzLpSMAytdRAqSSD8YyOQjhbMY9SG1Y11W7IAoZ5P2j/McMDswI3XWRSGJp3ViK0UAkj7huc1+vPEKbYQsJM0DPfFnqygFgxBWtTUdcjpwDQU7BEVJ6j/AIY5sxINJDdQN6bd9zhsKmcjD/DEB7G+lpue0Mf9ch/EylyCU3SvLAVWlRvuScpzQ4t0RO6XxAySqiqBwNS3T78xowstpGyZc6UFNvZjmyFAU0t8q9t/mcbC0vDk7fxOFU+8l6MNY1yO34rII19X0iwAkIICx/EQvxMcxNXqI44WeTk6XTyyE0PpZ9qGn+eouIhgmRYzSKOK4gQL/sQyrmrhqMBFm24xyeTFdb0jzBIxj1eH/csE9eICSMlrcGhZirUqpFOuXYNXjB9J9Ky08zGyu/Lm5CahcsaCsa96nqfHMvVmwGvTino6yyyVBPFOzMBX6F/5q/4HMLipyqVuMYvJl7qIlUmlaeih6/TkJzVFAUPJRUjp06+GAmgkCylc9trunzxLp1rBDp8pZ5uL2omckVLVcklgx6H7K/Dmrhk00pESMuNyJ4ssNgNkubV/Ni6grTx8tOd1+rIfQEoK9Vf0zv6i8v8AJRuGXRzYBKsZN/xIhiyyB4hsnGsqbuwihQrFLNJGEEh6tvRfh5fEx+Ff8rNhA2ebRLZMbfSvzFsVa307ywJrLjtcOiNKz1B+Lk47bcczY4hXNwpZZdAsaPz5EJJ9X0oaZAv2JioEYA/35xZyrb9hjkgANizx5T1UJvMV0lrbyxSUZ1Ik27g7VzFFuS3/AIjuZNMmeQqZVniC1H7LJJWgH+qMd1pu3165ayvea/GgiaKgP89Gp9Bw2UUpxajdXFleo8Hqsbd2hjJKgyIQy1NNsQd1IQGiR3Ut1LDeaascNzBLGxWYtU8eSjZVoOS9ckSx4WtB0tFv4zc6fHGkwaGVo5C54yqUOxA8cFhab07y7Y2d/HPFbKpRyCw68SCpoa+B8MBK8KItPK9hp2p+vbjg0DkRkU3A23PywWKRwbp/SO3At05MsSKoYncjiKYgsyrSfCHANQYXYH5o2EHdBCnaF3tYGP2mjQkj3UYCkK4U7bYUu4niaDAinEe22JVwU+GQJK0W+QFCcCRErw4rQkVyMmQiU58tMp1SMBhXi3f2yktjx38zB6Xmb61HP6UttfCRQYfVUkQigPxLtTM/DEVbh5QOJgkegpMfh1MhRWi/VwAP+Hy3gHc0HHae+UNPt9MElj9aNxC9X4vEqjl8NKHkTtxyE4DmzhFuJLldRgv4NSVHtkeGGMWqlAju0hrWT4jykb4sTEMyASnvleeGw1K6v9QlGpvclCsbRJEEKuXJXd+tcryQsbNkeb1TWtbttU8nvq6MIlNRMhI+AryPxHb7OY1UWy9nl1xrGjXMbwTT280Eg4vG8kZDA9tzTLhEtct1CC6tbHzxrsTXSWyrLSkjooZQBQb77ZXwniaSKkyAeYtH6fX7ce5lT+uXcJbbVR5j0RQWOoW3/I5NvxwGJRYeBfmKLceY5vqrpJAatzi+JCzMdw29aimW6YUGFC2M7nxrmUVeiee9Qs7jyZo8UVxG8yRWPOJWBYFbZ1aoG+x65jQB4iz6POt6DMlgzTy0sEnljUZZpY4mt4LlI1aXg7F4tgEG71Y5hTx/vLawPVbCwD4ZmNls+/JzU7DTtfvJL6dLaJ7MqryHiC3qoaD3plWYEjZQd3r/APjTysKf7lIK9/iP9MxeCXc3cQQ175t8oXdpNbTalC0UylGALdCPYZDJiMhTEyCVeUte8r6Ho/1GXULZZFd2bgZD1O3LkPtU8PhyUMUq3a8YEU3bz/5SqK6jF7UD/wDNOTOOXc28YWN+YPlOgrqMfXeiv/zTg4Jdy8YVtO88+WLnVLa2ivlaSaVERQripcgAfZ98RjlfJEph5p5n1HTF80W7x0Yqvp6gGDcao3Fq06/Z3yqUDu4+Y7p35182+W7zypqGnWM4Z3iVYYUidFqsimgHEAdMyMeOQPJuhKIDxf0Zv5G+45lEFjxB6D+VPmDTtFh1hNSkaBbpIhDRGbkVEgboD/MMqyQJTGQBtg9i13bXIkSN67qRQjZtuuHJDijRYSILNPJmu2Ol+a7W8uTILeO1mhkkCl/jZSFUADpyzHxYzwn3oga5vSE/MzytQgyz1od/RfrQ4fBk3cYf/9HnIjiuozOk/CJCysJECkGuwIbbf55yEiYmiN3WHvXW+lTyyOZoViUx1VYmHJviqORUjb/JxnmobFIulIaPrhDPIeMs6kcQxaNAppRqj2/ZwnPj5DlH/TINr7Hy7cfDFNJ6rSHnOkfKgGwpvt2+LI5dUOYQSqyeW9ThuWNhDJC7A1kd0kSn7IAUAhf8nEamBFS3WJIUj5evLkq2rK0yo3P04gUSneo35fZyf5kR+j/ZKAoL5SsrfT5beBGa4lLSNdyVLJGCCFQUpy36Yfz0pSBPIfwqSSiz5E09baKO4iN08Q5RSuzKwr8R4hR3/lIwDtKXEa2BbIyIQB8oaULeJTachGS1xIVcyeKqv7PxH/J+zlo1875szmJKrH5b8h3jRNf6VdW8zNRmgdkQitCWBVu/XMjFrskNieINkcw6o+y/Lz8sZ3Ag+tSBjuWnICgEg1rCOmZMu1Ijns2eJE9Uav5P/lw7sPXuFp1/0pQKnpSsOTHaUO9mJx70Dffll+W9oDxe9lboQLlAFPcn9yP9jlcu1O7dEpjogpvy78ievboi3vpuObH105Ffpj6H9n4crHa1bkNfigFHxfld+XcsBuFW/CKxT0zOnInxA9L+OTPa8atn4sau0R5b/L7yUmtx3VpFfJdWMomiMsqehVDVeRWIH8f9ljh7TE+ey4coJVdR/KXyT6nqXMt291dSHk0My8fUY8jsI24j5nLJ9p4xte4ZGosQ17yPPa3QtdOWRNKXZpiwkIBFSealfir+zxXKf5Qxne7LCWUBf5e8k+WbmQWeqSXLzN0ZJFjRqUrQGNun+thPaNeqlhO+eyZ6v+XPkjTGg+rrc3NzIQ6RNOjJQGlG/drjPtK43EscuSuRSpPKvkuGVo9Rsr6GZQCfQuIilG8VdGYUG5w4+0CRfNhDMOqY3nlDyhBZR2EKXdzbxObpwZQ0itMip+xGg40QHIZO0p36aWeU9EPZfl75RupZK22pJBGGFVmh5M6j9nlH92VnteUa4q3QM+6c235QeRLpG9G7vOYA5xtPCHWvSoMfXtmZj7RhIXbkRMSLBQGo/lf5QsZPhN7cKOXMepETUDelFXpmLPte5VFoyZaOzHl8nyXfBotHeC0LkrIGKTcAftsH5Gn8u2TOvEDvPf8A2LXHIb5siv8A8vvL9m6CGO6uWFGVX9P06gUUuVXfp45Tk7TN1EimWXIRsF2l2V7o7y6lDZlTwWN47RkEpHMMv2K0qe3/AAWY+TUDIOAy5/zmzS6k4jt1ZCdc8wtJwYSrECoaYojAMTv8KjmeP81MojIiNCX+a5w1uM7lj2u3+vXjTyrYzTekvBpn2Do5IqFHGo3PLfLtPwRq5bycTNrJHaPJBeTvL9kmpNeXcVzpptvTlijh4LHKUapDeqwqB/rZszrQBRILHBk7yzfVvNFjBbj6h6ks/Hm8ZVD8INKfC56775RLUg/S2S1A6Iuy1WO8WO9ZWSGVEYFVRiP3YWp+Jd6r/wADkZ5RCV2zGQc0xhv7WOSG4ZnaNGDt8EdGANaU9T9qmVZtWDEi22OYA30QLec/0heSyRaE9hal3KSSegoFDQ8Y4jX4v9X4s5+eilH1eJxSP83ic6famKuqGvtWjkhkdbEtMi1jnAjY1Y8f3dasG4j/ACclhwyEgeL72ufakeAgBIk/MKzstV0r6/aO0Npdwzcq/tQmoBA6jxXOk08snOxQdWNQSd2b3/50SXTo8Gm6t6EqP6UsF3LErAGtQgdaDj+3T/VzPGugOZptOWPehtb893MltBZQ/XjLexBFnaSS8FueaszS+seLEIXIZv8AUymHasJiX8PD/skSlEb2t0zXNLmn+oveNcXKkKJzAilix7qpCrTMUdodTsEwzxJpOJTpiRK55SHoUWNSwPiVrk4doQJq24yAQslzpBcDgVr1aWICn3HBk18Qdi1HPFQvb7SbSBneJnKgFQsZQUI926fRhlrQB5rPOAoQa95daISyTGCXosXxVr23B74jXCrKBqIoix1LQ7uYxxXbRuo5KAGBHHr32OAdoDqmOYFbqFzDZSK1JzCVL+uR8NQeg3O+HNrxHkLTKdJdrvmOOwEbRLNcyzfEVZQDQ7k7A/ZGUfn5TlUaoNGTUUdm5fIujeYI31y5uLqKS5VWYGaSEmi8QFRXC9F8MzRrOGO9NwlYu0ss7HSm8xJdyy3kJ0iIJC/NzFIUUokcimoP2qu2YuPtMg3KqaBmPFudkFF+X3k2eX975l1WG4YqXh5gIGc9E+A/DX7OZmPtTHIcmQzDvTmT8j/LiCsnmbVl+c0f/NOXHXYwN6bfixu/8l/l/Z3aWzeYtalLEKWSSMgE/Ne3fKP5TBO0dmk5hdWn3l3y15Ei0fWbS31+/kS/iSC4a4kjEkXFiwMfw9/5viwz7QiBZDYJiuaUp5D8jRaWdUj1fULuZAQbCSccC4rsSqq/Qcspy9oE49vTMtU5+nYsee30q6QR3Ma2qmhMcTlZFQn4fjJYKxHxfFmPHPkibszcOOeYN2Uw0vyn+W+o6tHpsNzrTSSKWXncQhiAKkhQn2f9lmd+dlz4fS5sNRxHmz3yt5T8k+S9ci1uyn1K4vLdHQQTuGWko4NVQg8f5sjk1sSHIGQDqlGuan5Z1jXLiPUp59Pkeb1FZVSRdl40IahAp3ODFr6jdbOPPODJEaf5U8lXY52+uPISPiXjGCO2+2ZA7QiWUeE9UXF5O8rI7MmpyxmM0JVYt6j3BOR/PRPNmCO9Yvkvyd6iIuqTfF8TOBEKClRuFyGTtGEVuPK1O6tPLeiE2yzT3EbOqvOyxOSJKABW4028PtZg5dZHJMEEsZZRHZOtPTyxLol/o6ajcyWl4CtxG/ANGxUq3E8QOVP9bMyGrgd+TOGUEc2G3P5OeW4KPbX1z6DEHlOi9zRfiXY5LJqJDlIU0yxHnxIjXfImlapqWo6xLLJ6kshYwooLcafDWu1SMxc2vlEcUSEZO+0ptPJHlSURrJNLHI5+GBl+Kv0ZVHtHLL+Joib6psv5UaCyclvXow+IcU798vGsyfz4tvhf0kFcflr5ei4SNdTSRluEnFI34b9wK/qyEtfOJu4rKB70Qn5X+VPS5reM4NKkJH1+Vcme0p19QUQ80Qn5S6BLG00dxL6Y2qVi2p2oT1yyGsyEXxRZeGe9TH5S6IYg31xkUn4eSQb/APDDJR10qsyijwfNRh/LPQZWpFqMzjcOqJBRSDTerrlf5+zdhRDzXp+W3lj1nie7nBipyJWFd2NOPXrjDtCZJFxCBAXzRiflV5aozrPO/HdgphBFfpyz81kP8cWYxX1Xn8tPLYm9JnnLjb7cY7dPtZV+anf1xXwvNGH8ofLhZY0uVdyoYxGYK4r2NaD8cP5jJ/PCfB81Gb8rtGhLyvbTuBUyN6sTj/hWyuepyjnJEsKg3kTyq3BFtpz4jYNQ9xR/iysarJ0kw4AojyN5S9T0nt5lB2H7xamm5254/nMt7yTwea6z8u+RbPV7d42dbu3kSVYmlUHlGwYVBb2yX56Y34jXuYmIvcpZq/ljywsF3qM0LvdBmdmEgCksxbpyrx37ZGWslI7FZ0WIQX+nXssQTTolsjxS4lDFXVq0opqN6DLzLJHnM8TikkJvqI8jWcqJBp17OgAZ5SzKFB7bAr18TkBqc8jtIU2mYTTTdD8lT6WLue0lVpB6kSiQ0ZD0+02xyk9o5I3En1LCYPNA+j5IaV4xZO/w1jdJmA8KMev3Lhjq84FkoEwFkmmeWYFkaa3JC0KLykB+I9BuOW+QGuznYFBmpWVz5cla5A0zi0a86MWIKUIqK5bPPmFermg5N3//0ohF5k0QTOj+msPIsIwlRyG34++cRPS5C67ZJ9W833McxFo8cdsjkh2QK4BoCAcysOjBjUhugSTODzlYXFujSOtOQFFqtQNq+GY89FIGmRkETL5k0y3jWITlvVryCCpUEfD/AC7f8NlcdJM7p2QqeZtNZuEUsqLsGY1FPl1yw6SQQaVTqtk7/urksNquSVIApkPBkOiLCutxYLRri8ZkmBY7gAVNRypkeE8gE2FZNc0aFEj9SrVqKVJqe9TXbB4EzuzEgqNrFojcjcCpHVQSfwGA4ZMCQhH1K1lVjE7STqwI59K9+oOS4JCkGQVIr+2YhXYRPwPNAQVFO1fnjKBKbBWRXfrtVJYwYqGjPQE08R/L2wiBioUdRv4Y4SEMUkrU5RMQVZt8ljgSfJBk5NSt5oGEsKLMq8YyOh4/ZB26YmBCJbpNe6/eRXKtIVZIyGXkKb0oVWh2GZWPAJBjuE80/WLCezWVmRHHwmMcjSgoKMeu5zFyYCDTMSVP0tZD4kuuRX4eDdd/Db9nrkfAPcvErWWp2F0hVp4wsbmiMRUkmtatSpOQlhI6JRlxdWSxhy684x/d7FgB4Gm3+VkBGXQMiVOSTTZAqoOUvLirKwBqu/w164RGTEgLL+XT4UHAxer6n963E9FoadetaZKEZBEqStbu4a/VkCURgBCGCihJHKtcu4BW6IojUrmaG4t04RxggtHKzjiWqOQO+Qx4QQUl1xf3FsAEECBqFmUrXia7mp98MYdEA1yVJPMcENVKxc2FCQQahd6jr8siNMSpLcfmKzPSaOJW+EF6/E/dq/yjE6YrHZx1nTDO0clws5koPT/ZJO1RU8cIwT5opfJqGnszLBwElAFAKgVB3I99sfCkyruUWuIkYMJoEaRQSjOOQC9aVB7nDHEUCJVJtXX0Vhlkio5IYMygU38OnjgGA9Ay5NJqllcK4j9Jo6HkC3Y9qdcJxkLYaWz00uWkto25jisiGjCg+yDXGJlytIIDoZbNbcJCiLDHReIfYAfT4YzEiWRkF9vqMV1KsaMskYFREXBJG/7O32chPEQGHFeylLp+ntLLPMvosikIoYhdzxPQjxwwkaphS1Y7Q8lt26kry9WrUU0DfENuuSkDbIkdFGLSbdKTGKB5BVJHkIZgvTam3tXJnJKqsqEXyQFzI0TBFJWE0VVX+VaeIyoxKbRcj28loqSBY4pR8ILca0HQg77ZAYyDakghDC0sOScE4SkghwNzvsK/LLakgABEfVLz1PVe+V0pu3EKaUIXp/LXBKI7mRsdUKdLnuJ5FF2si9OK7Ny2NOVckDQ5MS4abfqOSz+oI19Liep4n4uW56eGRkR3JJXrpSQ0J4KC3Op4n4m/a3+ziZEsCFCy0xIfVnjuYgi19Z1Cs5HXenv1yUiTzZAJvaxlbeONJSUjHw0+yK7vtvlcgbbRM8rU2jpEGEwJHx/F14/LpXBwMeEIJrjmWjjulAbf0033Pf38ct4O9BKq1u7WpE85WNalkAAb6e/yyG3cxMtqQ0iaZxXmr8IwVAC70O/I/wA3TJAFja0rplxGsYvJY+TVUftDlseu/TJDbdIk5vLUE0Txw3isJqci6BjUEGoZgG7YRmo8mQpExaDb2kkxSdQ0lOcQQ8dhTr8WQlk4uaCFi+WtKuIQzMzKx+LiSA1du3h44RlIRGKx/KumOxlMIaUsBU0AIXalKfZwjUSqrTQKIHlq1EkdwlYp+ZLzKQGNRTiG/ZFP5cAzSqk8KI/RnwBC7NMBTm9CwoKV5EU2yviJK0Vp8u+uknqAMz0HFgNjTryO9TkuMjkjgbstHhtnKC3C8T8NBsaihqNsEpE80xjTo7GSByTIuwJ5Ur8VdiOvviWYQ62gNw/qzmjkqqqdgPeg64CA0rp9HMoj/ec0iIZEZv2gO9Ou+Mdr82VWp/4agaC4nf4jLR5KfZXwIP2h0yfHLaujIQbtNNijRbT1CI670mJHjUchscZ2d2PRMYtHtY4puDMpkasgZi3IDY0PbIEX8GQipppUlamdI4geKqOtO1T1yPCGPCsuoJLOP1mq6R7VA5HhXeg2riMYUgrbA2U8jlJldD8XwbfH4GvxHp8WSMCEA7rrhGkT/RyFlRt1rtWoFSenemAQFsjy2XW8NyIF+syhXc/CoPICSm/TEgA7KCURJ6ckvppyUMo5CgAJ6daYBBPEUHc6Fp7RuJGdVcFTRiDXr277bZOM6Y8K2z0zTAX9ISersJXlJJLDw+jJSkSilZtJDSExTH1EWiKWoCdyK198rBSLX6XpBMjyXgkNSPVRZf5dqAjf/WyQEeZ6JiCTuiLrSLOSUXFm0qxk09NpCxSu25OSkRzDOYrkls0WmQJNHKGAl+Fzzbff26ZGywGQhuOWzhcsKVRaIF6U8BTr0wCJtESirawS6WqAPzX6zHI8gUcR136hqD7GWjGSmiUlNpost09wlvG0przahqq1rUnHjkBVtR5tx2WkSMfrFseAYiOnIg1BB5YiZHJmA1BovlzTrZoLKCWWIuXLAcveu+5AyWTLKZsndSBe26rNa6MYvTaoe54KkTfCWYdPh8aZGyOXRjYQ0h4l4QqBFQqqk7KWXbb/AGORqzaLpAWGk2Md16qWwSJCUkkib9nb7S16++ZE80iKJWUrKa3senmz9UQlkK9K8SeR23OY4Jtl0Q1vcaeySIbUC4RCU32LEfFvt8stIPexf//T4c8N4wAhIaQFuTtQUVT0BzS3Gzbqg208E8YWY0qN2OwJH68iIkHZCIttOWGMjmvE7py7D6PHK55rKktahJCnBSzPQUWnUU+eOIEoU7f0rklreVkII5I4oCPn7ZKdx+oJBKOMEsUikOSd/hB6/PKOIEKVdjMsZWRlao6eAyAq9kIWSS4knKwzKkMY3G1QewHfrloAA3G621ELppf70oVbchq7eIwnhA5LaMWahIDni1KmtTXKTFFqM96to6iSWryHYdqE+PbJxx8Q2DIFb6Uc10twZkZUaiVqRWnXam+GzGNUqJYoVFXVmBFDsd+mVC1Q99fi3RVkLHY0IPQV+eWY8XFyVAJJBeOv76h/Z2Jr/rHLyDAckkUmUMMsQFZeTrUKKUFKUzHlIHoxJU4X1ZJg0oR4qGiqK1Pv4ZKQxkbc1tXVZANlFD8XIdRXwrkLCQVkSgljyYAHjxqBv3O3z64ZFNr1imZQUkLAbFvn3yJkB0Y2oSM8TgOCwagZj238BlgohbXpC0klCxpu3cewyJlQTaIksTyD8i3Aj4Sdqg7ZAZEW2fUWQh4w22xpWlR1ONik8SoJFAP7sFjsRx32yO56otdIC1WQBD4dSPowA0xtqMqCRQlkGzUG5HSmJJTa2SYHZoeRJ2oOnfCB5ptZ6Cs/IghS3TtSlAN8lxGlte6gtyXjXo602P35G0ElTMkyPWKJA46PSlR4DJgDqyBX/WCUHqrwb9oE7V69Dg4d9kEro2Q0HU7swAFBkSEKX7uKUyQsQ5FGcHfr298luRRSNlX1nZgrNVCtfiNSfDY4OFNqhuIEDKQTXoB02yJiSUWoXLQvCCpIkDAluRpSn4ZKGyb2UbNzHC3ryBqUovsa06/LJzFnZFohmtpal5XfiKorN8IJpgG3RNr47ekgJuHCk/D3oeux7YDLyTaJqnGQCVyrCgofv+7Kvgi0uWC+iukk+s/A4JYn22HTLyYmNUto0SzxtyMjRMaV4EknbenzyvhC24zFpVdJnoB8VRTenXp1x4QE2px3MXqmNmARgeQHw15deWHh6qCiYpZoSF9ZUWhCAGhow6YDEdy2hJ0D1EkzMUY1WhNCdqHtvko0Oir44LYc5Y4zzABFKqdvlglM8mNoiK6EcBVnk4n9ksWFfp8KZWRaSV312cssbSSlwKBa7Lt4HAQi2zcIjlkpzSlGZqb9+njkeG02mEGrrEih4fVoAABThQnfc5A4mXEjYZ45i0LyTJb8aBAR33JDAg/DkOGkiaYWvG3URxytO0hBVn6KKjYLtlcrLKJ3Xp+kYbglY+SN4bAKTX33qd/8nEbMuqOhEzfFJwCrWqg7iuwPbGmQBdduEQsGPEnYBRWopvgpBQ8t1bKm8j+owqqg9TXr498kAjiCks6qysPWfkeIB6qDua+IxIRxK884oDHGvqtQoDsa0rucBDIleZFEYfgqt1Kgg9u1cCLCHjjij5tHGGB+MndTXw6nwxJKBSvJPGiFvUPpKRULtyI3IJxBLLjQd3fqkIaGBpTUBoH2NCRuKihyUR3sbCNGowFOYQs1K0rQ1H8cFrxhTGpxPGzxwMkgrVWIArsa8gTikzCg1xbXCFZLdmr1qSQK/I40UcS9LfR7dIwtuIubMW4A1JO5JpvhJJ5sdlGRIFldYRGqgByHFVJDU3yIJSCpGRY5VKNGF3JG5FKePbfDw2GNoqLVoQvPirlaF6LQ7ioFScQGQkF7XySLxEY226/FxHxGhGAimRLRu4yUaRY3G3JVBoK1r07j3xFptCpqpEoRYkElRymI+KhHw0rXvjwkMeKipT61dxrIqwJyWokPKoqaUO3jXfJCLEzWWt7LMgeWMAbVYCo3HYVNMapRO1Ux2MxWR2+JVoF6AbdvY4CuxQWoTCJFkiHJQQoVB9kE0I37UyUBbBfPdwxqqGYBuJqCVqO5FOm2JiSyHkgY9QtbeZXD8wlXMjfEQSOpNN8n4ZLGlzPN65nVSYACzlTRSdievWnIfDgrZatauvfU7tIooDHJJzDlgxqCKkKwpxqP8nJjESLXipWt7i3uTxmYnmOYrTlQDfcGvQf8DkOEhQXCysrluCylFVeK1ovKlRsD8Rw8VLzbtdJtbepS7k4yVEnwAmij4Sa4ZZCeieFEk2VqiqiMY2+Lc/CeWx6CmQJtlwoe3n08SPcCzZwY2JZzsOoqp8cs3Twh/9TjE9xxfglOVTSvY1365z4j3unIU59PjmZC9OJJb1FNOIpvhjlI5JulaGhkihDGRFFefjkJciVUp4GNweYNaGvZhy2GTjLZbULe1hgl9IMQ/E8anfrk5TMhaTJGLUgL6hpX4Sdvpyk+5i3MAkocyckHTcEUI6mmMdxVIU4GieYsK8SD2ou23X2yUgQEuiEVtI5L1JFQNyQD06YJXILTa8lj5UJHXY0NSe/XE81pDX1ks1JGanHvWgJO9OmW4slbJBIX2kBihI9QGIKabd/EYJys+a2rLb3HEOsgWMLyDEgUY5XxDuQh5bKa4hKLJ0apJqeR8N6Uy2OQRKYmm7fTLqKSMswFDxZa0HI9ME80SCtpwljVoy7F0pV9+3htmGcvNBVrWyS15py5jdgpNaZCeQy3VdIbUsYiCWf4hvTYd8A4uaLQ7R2bExrJxrsQepGWAy50i7X/AKNDjlDOYoqbgHxweNXMWUqkcQVqvKvEHiF9/p+WAm+QS2ArPzVixUcgB0I6VOR5BStSP4W9Q78eRHia4Se5gCpw2U4kr6xIO5Fex98lLIK5JJREelSTTLSRkrUniw3K7mhPU7fDkDmAHJlGNqk9vEkJaFJXl9YxCPYsUK15Gnh+1gjIk71w0yOPbZCvcRx8QwoDUKCaE9qjLBAlgApJcR3Sc4w2wpXwPyyRgYmikBpo3jcGKUhhRQO/LwyQLMSAV0g5o3xDkaV8fnlRnTGRtzQyqAoJO+/H2P34bQh7pY+aRzV5yklifs+HU5OBPMIUhHEpeTmxMg4Kp8BSmw22AyZkTspK2Cr1jU0Irx5V6de22Mtt1BXRJcMVJZeNfi5GlPvp4YnhSq/UtUcqAOAPau5H09sHFEKrfUrqCF2dA7V2X2pU5HjBKqRKqHEkXFqgsD0qdgu+Kr60CVhHMV4oKct/ngrzQQow6okhaNkCkA7FgK18NqZOWEjdbR9tJUclj4q3QVBp36DKJCkhWNy05ROAAjJVeIFdzyNfvxpLTq9RxoaA7npvgGyhTWB1lpUEkhSRuSaZK1LS28hYhCGUddh160rhBRTc1sSih6FlOx67Dp0xEkhyQMo+EkA1NRWgp12wcSktCZOfpF2DDcKAaH5k/PExNWhWiZWkT4nVBvQ7jfb6OuRspDkAkZjx5FWNGHcD3OE7MSpzRICOLBnBowpTYb1yQVtYkY8KsisteR78abADE7JC9JZo6ULbA9TsKfLI8KolNSdyGRwnbiDt92RliBZAo2HXXBCer+8I+yTQ+9MrliTxJkuqSoBRuRP7TEUP30yvgZcRVY9RcMxkYfF8Kim47+ODhY8TbXCcVeiPyYmoNCPAFjkSVtUM8pK+pHRmP2gQeK/TTIpVXt+CIyVYvX9qpHXwwkqXOJw/H0y0ZG7AhgdqmqjBYSQ0Udj6gjNWJ4AVIG3th4gilG4S4KenursdyegpWgp/NT/hsFpLUVtcA0kqPSoUY0J6b9NjhkGNFCSOAwtiGKUJ3B38STt3yKKQtlqkLyC2QOpWjKqrWnWtaVH35bKBAtCZFrQyPEJ2UqQZuW3EnfqRkK2Z7KohgRy8cvqCMlGWoruKH7hkaARThZvyUsw9MqSHFANz36kHESTW6mlpDydeXwVHwEbkmpAyQkEUqPaiFEZ1UF/gINKk/s+++DiZGFLf3Mboi/CCvIKOqnfx36YbWlryNIvJUBTmKuDUV67/ADxCOFFLbyrC7NErSAlwincAU8O3I1wlnGNoK6XVmWR4bWP4QzqqniCuyhAB8VeWGNXuWXh2FCwaeZmhngkSWhYuaFAan4UII6ZKUAORauEq9vp1y8TbhEIKsWrsQdqZAFeEr57C9MkTF1KKy+pCVNXTqTt/N/k5IEDmngV5dP0mdi8cC15VFasfs0wcfczq3W2nKLThBaxxpuHjAoCQd9vDBxEsQOiLaJ1Q/Z+GgCU34r/bTBaRCkNcafbytG71QqK812Ox6NhEypAQw0a19WirTaqsTxJPfcDvvhMkCCtJpnp/GT8Sg7nqB1+EZE2yMacbWJo1TmRI5+JjQe+StG6ndWc3oLCFUuzUKdQBSpYVwEqonT4vgdY2rxbmp2/ZPEUrTDxIf//V41erak/bVWq1D8RPXftmghxW6kqSxL6Kcphxp4NSn/A/fhJ3U0q2MUIuAI5izdSaMB8umRy3W6oq7U82KODJStKGlPDplOOuvJiUMyRNx5OiS9qVpX6A2+Wj7E0tuILf6tzW4T6wAtY1EnJg1e/EABP2slDn5JAU/SrabzKBtzIFfi+kYb9SNkRAjegvoSIU8AG+mldsrlV7pKnKqhjV1JpQg8qU7HcZKKlT/ecqbdNzU/0yVBi16bGZKSkEUryDcT49iMdqSLRTiMKKlSKHjXYdTlYClCy+tROdDBtWta09tq5ZER+KNmoUBZBG7CMyfaPLY9ui/qwy865Kio0b0pKutanmfiryrt1HhlRqwqvGs44+m4MfGg+1SvY9MrPD15pKJpcggEqZeI378a9tsrqPwQsCziVW5IdtlbrX22yXppQAl9xGhdDJIBRySo5b+I2HjmRDlsu1pnB6gtE9KhavxDfx98xpAcW5UqJEfKL1Ch3JWv8AN3G+SrnSUTb/AG3MfGtBQDpSuVyG26Gz6vqFmoQQeadgK+JwUKQVsoueElGBHfjXrUUpt4ZKIjswKMtzdiMEKC/da/xymQjfNsCtp3I3hEQIuOD/ABIRXhx+PYj+XI5AOHc7NkLSK7Nvyb1VWo+yVJqT7Uo2ZsAehauq/TBBWcxH9r94orTl33I/Vhy3taV05vQqmMIxB3Wu5+WRiI3uVU7UXRnJcqr7bDkTw964ZCNbIVbo3YRvQUMxIE1DSnv92RiI3uVS29BKL6xVQKemX5Enw7UpXMjGBeyqsZuDbgMAsXYgk99698gRG+e7EoaIXRIrQD4qA18evTLCIqEcIoyq85lWI/b4gkBvoGU382Saxq/KHi1RQUrWvT5eGYprdV1wLkSfaBXYsWr49MEQEoG/DmT4ywlPLdK1B9uIy/EGO6BCt9Xbmx6UTjy5cduR3HKuXbWhRjigBoJyzb8XIcHj32IyciUprpq0T4W5Kft0rQD35DMbKGYRh9WrelT1KniB14967dchtSDyUIHu6kGNTAAAhqKn3/mwkRrnuoVJOAjH2WqfiIJFKnalB9oZGIVZMGD1SjbjkDUCn3YYhSrW5uBCgRVLEncno307ZGQF81XWR1MMTOqMNgASeNd9xXb50xyCPQqi0KG4HIRqNqk+GVUaSW7kERngQ0lfg7b9qVwQG+6EucS8T6Z/eileFaH58RTMgAKW4OJHxgLJv4kV4nwxrfZQ2irQfEpNSDy5bbbnpgkqyWIs4ZJikatUoikhvauWROyUQFgFQrcpiBua0A9qjISu0Ier14qq0q3JifirXbtXGh3qEVMJTAPXZVkrRQvIj5nbIGrVHRc/QFOm9ORNOu/auVTAtUdBzMfwUXcGux7nZq9spoMgioyjbFeA3oQanpvkCEhMYTF6JCCjcqhiSTWmy0pgDPoheUnqEcD6nEfGD8+NQNsjIDvYm1WNnJUsoV6KCKkmm+5ptuOuNBLrh72gM8a8qqI1JNAOJ3/l6UyZA6JKnKlx6WzktyUyEV5V22+EZFibWP6ProDx4hPjZtiTTYEUOTUqGnRWIuC1rMGu6EBCCDuTxIJHQfF1yU7pApXZLAzH1pEW55Dn6oJOx2rUdz/wuV7suu7Xo2Zc/VrhlUMQCA/EtyBJ+z9GE2pV7mFeJZrj91yUhCrfaDCgqB0PfAqlCn72UTO3qjjzJrUgMePbuciQxHNq8jt3uSbmYQychRaM3xjoBtTfv/lYYhlNSmjsfUYCat2JCasG5FeO4oBk+it2KxDn8aMhPwCQNQGu/KoC1riyFplai7+sSm2P78bSg8iDsDVqjpTBRZxvoqrzCMGo0ZBoRUUT4eXvg2tMTKlBfWHIR8CA9eRrU7bgDqMQDbA23HwEu+9UcjqFHWoG3XCQjdDKl0ySESemwIIVwzArT4gNulf9jgARu1YgCesBJJQ8lFaA16EkdMK7rrd9a9N+UY5LUL9kclr1O5pkiB3qOJDRtraFlCiR1ZjzrTnUjYA0Aof9jgqPej1ISZvMPq/vkHpAjkFK/F8VNiP+CyYEK5o9SZqLtZ3qeabGIioPTpTpkJBI4lCdL43C/GFkK/FzDGg79skFNqEolChWYNIKVdeVCe9BTbHZiqypKQtXoApKkh6Up0ag6fPAeagd7cf1urFKenQhweXTx33/AONsI5p3f//Z" -},function(){function a(a,b){b=b||"";for(var c=1024,d=window.atob(a),e=[],f=0,g=d.length;g>f;f+=c){for(var h=d.slice(f,f+c),i=new Array(h.length),j=0;j=b.toIndex&&(b.toIndex+=1),e.$apply(function(){d.apply(i(),[b.fromIndex,b.toIndex])}),g.api.draggableRows.raise.rowDropped(b,this),void c.preventDefault())}};h.addEventListener("dragover",j.onDragOverEventListener,!1),h.addEventListener("dragstart",j.onDragStartEventListener,!1),h.addEventListener("dragleave",j.onDragLeaveEventListener,!1),h.addEventListener("dragenter",j.onDragEnterEventListener,!1),h.addEventListener("dragend",j.onDragEndEventListener,!1),h.addEventListener("drop",j.onDropEventListener)}}]).directive("uiGridDraggableRow",["uiGridDraggableRowService",function(a){return{restrict:"ACE",scope:{grid:"="},compile:function(){return{pre:function(b,c){a.prepareDraggableRow(b,c)}}}}}]).directive("uiGridDraggableRows",["uiGridDraggableRowsService",function(a){return{restrict:"A",replace:!0,priority:0,require:"uiGrid",scope:!1,compile:function(){return{pre:function(b,c,d,e){a.initializeGrid(e.grid,b,c)}}}}}])}(),function(a,b){"object"==typeof module&&module.exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return m[e]||(k.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",k.cssRules.length),m[e]=1),e}function d(a,b){var c,d,e=a.style;if(b=b.charAt(0).toUpperCase()+b.slice(1),void 0!==e[b])return b;for(d=0;d',c)}k.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.scale*d.width,left:d.scale*d.radius,top:-d.scale*d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.scale*(d.length+d.width),k=2*d.scale*j,l=-(d.width+d.length)*d.scale*2+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;ka&&(d="-",a=-a),a=""+a;a.lengtha;a++)if(m[a]===d){m.splice(a,1),h(-1,c,"");break}}return!e&&p&&p.then&&p.then(i),d}var t=new i,u=l[0],v=!1;if(u&&u.match(a,f)){if(!u.matchData(g))throw new Error("Expected "+u+" with different data\nEXPECTED: "+r(u.data)+"\nGOT: "+g);if(!u.matchHeaders(j))throw new Error("Expected "+u+" with different headers\nEXPECTED: "+r(u.headers)+"\nGOT: "+r(j));if(l.shift(),u.response)return void m.push(s(u));v=!0}for(var w,x=-1;w=k[++x];)if(w.match(a,f,g,j||{})){if(w.response)(e?e.defer:n)(s(w));else{if(!w.passThrough)throw new Error("No response defined !");d(a,f,g,h,j,p,q)}return}throw v?new Error("No response defined !"):new Error("Unexpected request: "+a+" "+f+"\n"+(u?"Expected "+u:"No more request expected"))}function j(a){b.forEach(["GET","DELETE","JSONP"],function(b){g[a+b]=function(d,e){return g[a](b,d,c,e)}}),b.forEach(["PUT","POST","PATCH"],function(b){g[a+b]=function(c,d,e){return g[a](b,c,d,e)}})}var k=[],l=[],m=[],n=b.bind(m,m.push),o=b.copy;return g.when=function(a,b,c,d){var g=new h(a,b,c,d),i={respond:function(a,b,c,d){g.response=f(a,b,c,d)}};return e&&(i.passThrough=function(){g.passThrough=!0}),k.push(g),i},j("when"),g.expect=function(a,b,c,d){var e=new h(a,b,c,d);return l.push(e),{respond:function(a,b,c,d){e.response=f(a,b,c,d)}}},j("expect"),g.flush=function(c){if(a.$digest(),!m.length)throw new Error("No pending request to flush !");if(b.isDefined(c))for(;c--;){if(!m.length)throw new Error("No more pending request to flush !");m.shift()()}else for(;m.length;)m.shift()();g.verifyNoOutstandingExpectation()},g.verifyNoOutstandingExpectation=function(){if(a.$digest(),l.length)throw new Error("Unsatisfied requests: "+l.join(", "))},g.verifyNoOutstandingRequest=function(){if(m.length)throw new Error("Unflushed requests: "+m.length)},g.resetExpectations=function(){l.length=0,m.length=0},g}function h(a,c,d,e){this.data=d,this.headers=e,this.match=function(c,d,e,f){return a!=c?!1:this.matchUrl(d)?b.isDefined(e)&&!this.matchData(e)?!1:!b.isDefined(f)||this.matchHeaders(f):!1},this.matchUrl=function(a){return c?b.isFunction(c.test)?c.test(a):c==a:!0},this.matchHeaders=function(a){return b.isUndefined(e)?!0:b.isFunction(e)?e(a):b.equals(e,a)},this.matchData=function(a){return b.isUndefined(d)?!0:d&&b.isFunction(d.test)?d.test(a):d&&b.isFunction(d)?d(a):d&&!b.isString(d)?b.equals(d,b.fromJson(a)):d==a},this.toString=function(){return a+" "+c}}function i(){i.$$lastInstance=this,this.open=function(a,b,c){this.$$method=a,this.$$url=b,this.$$async=c,this.$$reqHeaders={},this.$$respHeaders={}},this.send=function(a){this.$$data=a},this.setRequestHeader=function(a,b){this.$$reqHeaders[a]=b},this.getResponseHeader=function(a){var d=this.$$respHeaders[a];return d?d:(a=b.lowercase(a),(d=this.$$respHeaders[a])?d:(d=c,b.forEach(this.$$respHeaders,function(c,e){d||b.lowercase(e)!=a||(d=c)}),d))},this.getAllResponseHeaders=function(){var a=[];return b.forEach(this.$$respHeaders,function(b,c){a.push(c+": "+b)}),a.join("\n")},this.abort=b.noop}b.mock={},b.mock.$BrowserProvider=function(){this.$get=function(){return new b.mock.$Browser}},b.mock.$Browser=function(){var a=this;this.isMock=!0,a.$$url="http://server/",a.$$lastUrl=a.$$url,a.pollFns=[],a.$$completeOutstandingRequest=b.noop,a.$$incOutstandingRequestCount=b.noop,a.onUrlChange=function(b){return a.pollFns.push(function(){a.$$lastUrl!=a.$$url&&(a.$$lastUrl=a.$$url,b(a.$$url))}),b},a.cookieHash={},a.lastCookieHash={},a.deferredFns=[],a.deferredNextId=0,a.defer=function(b,c){return c=c||0,a.deferredFns.push({time:a.defer.now+c,fn:b,id:a.deferredNextId}),a.deferredFns.sort(function(a,b){return a.time-b.time}),a.deferredNextId++},a.defer.now=0,a.defer.cancel=function(d){var e;return b.forEach(a.deferredFns,function(a,b){a.id===d&&(e=b)}),e!==c?(a.deferredFns.splice(e,1),!0):!1},a.defer.flush=function(c){if(b.isDefined(c))a.defer.now+=c;else{if(!a.deferredFns.length)throw new Error("No deferred tasks to be flushed");a.defer.now=a.deferredFns[a.deferredFns.length-1].time}for(;a.deferredFns.length&&a.deferredFns[0].time<=a.defer.now;)a.deferredFns.shift().fn()},a.$$baseHref="",a.baseHref=function(){return this.$$baseHref}},b.mock.$Browser.prototype={poll:function(){b.forEach(this.pollFns,function(a){a()})},addPollFn:function(a){return this.pollFns.push(a),a},url:function(a,b){return a?(this.$$url=a,this):this.$$url},cookies:function(a,c){return a?void(b.isUndefined(c)?delete this.cookieHash[a]:b.isString(c)&&c.length<=4096&&(this.cookieHash[a]=c)):(b.equals(this.cookieHash,this.lastCookieHash)||(this.lastCookieHash=b.copy(this.cookieHash),this.cookieHash=b.copy(this.cookieHash)),this.cookieHash)},notifyWhenNoOutstandingRequests:function(a){a()}},b.mock.$ExceptionHandlerProvider=function(){var a;this.mode=function(b){switch(b){case"rethrow":a=function(a){throw a};break;case"log":var c=[];a=function(a){1==arguments.length?c.push(a):c.push([].slice.call(arguments,0))},a.errors=c;break;default:throw new Error("Unknown mode '"+b+"', only 'log'/'rethrow' modes are allowed!")}},this.$get=function(){return a},this.mode("rethrow")},b.mock.$LogProvider=function(){function a(a,b,c){return a.concat(Array.prototype.slice.call(b,c))}var c=!0;this.debugEnabled=function(a){return b.isDefined(a)?(c=a,this):c},this.$get=function(){var d={log:function(){d.log.logs.push(a([],arguments,0))},warn:function(){d.warn.logs.push(a([],arguments,0))},info:function(){d.info.logs.push(a([],arguments,0))},error:function(){d.error.logs.push(a([],arguments,0))},debug:function(){c&&d.debug.logs.push(a([],arguments,0))}};return d.reset=function(){d.log.logs=[],d.info.logs=[],d.warn.logs=[],d.error.logs=[],d.debug.logs=[]},d.assertEmpty=function(){var a=[];if(b.forEach(["error","warn","info","log","debug"],function(c){b.forEach(d[c].logs,function(d){b.forEach(d,function(b){a.push("MOCK $log ("+c+"): "+String(b)+"\n"+(b.stack||""))})})}),a.length)throw a.unshift("Expected $log to be empty! Either a message was logged unexpectedly, or an expected log message was not checked and removed:"),a.push(""),new Error(a.join("\n---------\n"))},d.reset(),d}},b.mock.$IntervalProvider=function(){this.$get=["$rootScope","$q",function(a,d){var e=[],f=0,g=0,h=function(h,i,j,k){function l(){if(m.notify(o++),j>0&&o>=j){var d;m.resolve(o),b.forEach(e,function(a,b){a.id===n.$$intervalId&&(d=b)}),d!==c&&e.splice(d,1)}p||a.$apply()}var m=d.defer(),n=m.promise,o=0,p=b.isDefined(k)&&!k;return j=b.isDefined(j)?j:0,n.then(null,null,h),n.$$intervalId=f,e.push({nextTime:g+i,delay:i,fn:l,id:f,deferred:m}),e.sort(function(a,b){return a.nextTime-b.nextTime}),f++,n};return h.cancel=function(a){if(!a)return!1;var d;return b.forEach(e,function(b,c){b.id===a.$$intervalId&&(d=c)}),d!==c?(e[d].deferred.reject("canceled"),e.splice(d,1),!0):!1},h.flush=function(a){for(g+=a;e.length&&e[0].nextTime<=g;){var b=e[0];b.fn(),b.nextTime+=b.delay,e.sort(function(a,b){return a.nextTime-b.nextTime})}return a},h}]};var j=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?:\:?(\d\d)(?:\:?(\d\d)(?:\.(\d{3}))?)?)?(Z|([+-])(\d\d):?(\d\d)))?$/;if(b.mock.TzDate=function(a,c){var e=new Date(0);if(b.isString(c)){var g=c;if(e.origDate=d(c),c=e.origDate.getTime(),isNaN(c))throw{name:"Illegal Argument",message:"Arg '"+g+"' passed into TzDate constructor is not a valid date string"}}else e.origDate=new Date(c);var h=new Date(c).getTimezoneOffset();e.offsetDiff=60*h*1e3-1e3*a*60*60,e.date=new Date(c+e.offsetDiff),e.getTime=function(){return e.date.getTime()-e.offsetDiff},e.toLocaleDateString=function(){return e.date.toLocaleDateString()},e.getFullYear=function(){return e.date.getFullYear()},e.getMonth=function(){return e.date.getMonth()},e.getDate=function(){return e.date.getDate()},e.getHours=function(){return e.date.getHours()},e.getMinutes=function(){return e.date.getMinutes()},e.getSeconds=function(){return e.date.getSeconds()},e.getMilliseconds=function(){return e.date.getMilliseconds()},e.getTimezoneOffset=function(){return 60*a},e.getUTCFullYear=function(){return e.origDate.getUTCFullYear()},e.getUTCMonth=function(){return e.origDate.getUTCMonth()},e.getUTCDate=function(){return e.origDate.getUTCDate()},e.getUTCHours=function(){return e.origDate.getUTCHours()},e.getUTCMinutes=function(){return e.origDate.getUTCMinutes()},e.getUTCSeconds=function(){return e.origDate.getUTCSeconds()},e.getUTCMilliseconds=function(){return e.origDate.getUTCMilliseconds()},e.getDay=function(){return e.date.getDay()},e.toISOString&&(e.toISOString=function(){return f(e.origDate.getUTCFullYear(),4)+"-"+f(e.origDate.getUTCMonth()+1,2)+"-"+f(e.origDate.getUTCDate(),2)+"T"+f(e.origDate.getUTCHours(),2)+":"+f(e.origDate.getUTCMinutes(),2)+":"+f(e.origDate.getUTCSeconds(),2)+"."+f(e.origDate.getUTCMilliseconds(),3)+"Z"});var i=["getUTCDay","getYear","setDate","setFullYear","setHours","setMilliseconds","setMinutes","setMonth","setSeconds","setTime","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCMonth","setUTCSeconds","setYear","toDateString","toGMTString","toJSON","toLocaleFormat","toLocaleString","toLocaleTimeString","toSource","toString","toTimeString","toUTCString","valueOf"];return b.forEach(i,function(a){e[a]=function(){throw new Error("Method '"+a+"' is not implemented in the TzDate mock")}}),e},b.mock.TzDate.prototype=Date.prototype,b.mock.animate=b.module("ngAnimateMock",["ng"]).config(["$provide",function(a){var c=[];a.value("$$animateReflow",function(a){var b=c.length;return c.push(a),function(){c.splice(b,1)}}),a.decorator("$animate",["$delegate","$$asyncCallback",function(a,d){var e={queue:[],enabled:a.enabled,triggerCallbacks:function(){d.flush()},triggerReflow:function(){b.forEach(c,function(a){a()}),c=[]}};return b.forEach(["enter","leave","move","addClass","removeClass","setClass"],function(b){e[b]=function(){e.queue.push({event:b,element:arguments[0],args:arguments}),a[b].apply(a,arguments)}}),e}])}]),b.mock.dump=function(a){function c(a){var e;return b.isElement(a)?(a=b.element(a),e=b.element("
        "),b.forEach(a,function(a){e.append(b.element(a).clone())}),e=e.html()):b.isArray(a)?(e=[],b.forEach(a,function(a){e.push(c(a))}),e="[ "+e.join(", ")+" ]"):e=b.isObject(a)?b.isFunction(a.$eval)&&b.isFunction(a.$apply)?d(a):a instanceof Error?a.stack||""+a.name+": "+a.message:b.toJson(a,!0):String(a),e}function d(a,c){c=c||" ";var e=[c+"Scope("+a.$id+"): {"];for(var f in a)Object.prototype.hasOwnProperty.call(a,f)&&!f.match(/^(\$|this)/)&&e.push(" "+f+": "+b.toJson(a[f]));for(var g=a.$$childHead;g;)e.push(d(g,c+" ")),g=g.$$nextSibling;return e.push("}"),e.join("\n"+c)}return c(a)},b.mock.$HttpBackendProvider=function(){this.$get=["$rootScope",g]},b.mock.$TimeoutDecorator=function(a,c){function d(a){var c=[];return b.forEach(a,function(a){c.push("{id: "+a.id+", time: "+a.time+"}")}),c.join(", ")}return a.flush=function(a){c.defer.flush(a)},a.verifyNoPendingTasks=function(){if(c.deferredFns.length)throw new Error("Deferred tasks to flush ("+c.deferredFns.length+"): "+d(c.deferredFns))},a},b.mock.$RAFDecorator=function(a){var b=[],c=function(a){var c=b.length;return b.push(a),function(){b.splice(c,1)}};return c.supported=a.supported,c.flush=function(){if(0===b.length)throw new Error("No rAF callbacks present");for(var a=b.length,c=0;a>c;c++)b[c]();b=[]},c},b.mock.$AsyncCallbackDecorator=function(a){var c=[],d=function(a){c.push(a)};return d.flush=function(){b.forEach(c,function(a){a()}),c=[]},d},b.mock.$RootElementProvider=function(){this.$get=function(){return b.element("
        ")}},b.module("ngMock",["ng"]).provider({$browser:b.mock.$BrowserProvider,$exceptionHandler:b.mock.$ExceptionHandlerProvider,$log:b.mock.$LogProvider,$interval:b.mock.$IntervalProvider,$httpBackend:b.mock.$HttpBackendProvider,$rootElement:b.mock.$RootElementProvider}).config(["$provide",function(a){a.decorator("$timeout",b.mock.$TimeoutDecorator),a.decorator("$$rAF",b.mock.$RAFDecorator),a.decorator("$$asyncCallback",b.mock.$AsyncCallbackDecorator)}]),b.module("ngMockE2E",["ng"]).config(["$provide",function(a){a.decorator("$httpBackend",b.mock.e2e.$httpBackendDecorator)}]),b.mock.e2e={},b.mock.e2e.$httpBackendDecorator=["$rootScope","$delegate","$browser",g],b.mock.clearDataCache=function(){var a,c=b.element.cache;for(a in c)if(Object.prototype.hasOwnProperty.call(c,a)){var d=c[a].handle;d&&b.element(d.elem).off(),delete c[a]}},a.jasmine||a.mocha){var k=null,l=function(){return!!k};(a.beforeEach||a.setup)(function(){k=this}),(a.afterEach||a.teardown)(function(){var a=k.$injector;k.$injector=null,k.$modules=null,k=null,a&&(a.get("$rootElement").off(),a.get("$browser").pollFns.length=0),b.mock.clearDataCache(),b.forEach(b.element.fragments,function(a,c){delete b.element.fragments[c]}),i.$$lastInstance=null,b.forEach(b.callbacks,function(a,c){delete b.callbacks[c]}),b.callbacks.counter=0}),a.module=b.mock.module=function(){function a(){if(k.$injector)throw new Error("Injector already created, can not register a module!");var a=k.$modules||(k.$modules=[]);b.forEach(c,function(c){b.isObject(c)&&!b.isArray(c)?a.push(function(a){b.forEach(c,function(b,c){a.value(c,b)})}):a.push(c)})}var c=Array.prototype.slice.call(arguments,0);return l()?a():a};var m=function(a,b){this.message=a.message,this.name=a.name,a.line&&(this.line=a.line),a.sourceId&&(this.sourceId=a.sourceId),a.stack&&b&&(this.stack=a.stack+"\n"+b.stack),a.stackArray&&(this.stackArray=a.stackArray)};m.prototype.toString=Error.prototype.toString,a.inject=b.mock.inject=function(){function a(){var a=k.$modules||[];a.unshift("ngMock"),a.unshift("ng");var e=k.$injector;e||(e=k.$injector=b.injector(a));for(var f=0,g=c.length;g>f;f++)try{e.invoke(c[f]||b.noop,this)}catch(h){if(h.stack&&d)throw new m(h,d);throw h}finally{d=null}}var c=Array.prototype.slice.call(arguments,0),d=new Error("Declaration Location");return l()?a.call(k):a}}}(window,window.angular),function(){var a;a=function(a,b){var c,d;for(c in a)d=a[c],"$$hashKey"!==c&&(b[c]=d)},angular.module("builder.controller",["builder.provider"]).controller("fbFormObjectEditableController",["$scope","$injector",function(b,c){var d;return d=c.get("$builder"),b.setupScope=function(c){var e;return a(c,b),b.optionsText=c.options.join("\n"),b.$watch("[label, description, placeholder, required, options, validation]",function(){return c.label=b.label,c.description=b.description,c.placeholder=b.placeholder,c.required=b.required,c.options=b.options,c.validation=b.validation},!0),b.$watch("optionsText",function(a){var c;return b.options=function(){var b,d,e,f;for(e=a.split("\n"),f=[],b=0,d=e.length;d>b;b++)c=e[b],c.length>0&&f.push(c);return f}(),b.inputText=b.options[0]}),e=d.components[c.component],b.validationOptions=e.validationOptions},b.data={model:null,backup:function(){return this.model={label:b.label,description:b.description,placeholder:b.placeholder,required:b.required,optionsText:b.optionsText,validation:b.validation}},rollback:function(){return this.model?(b.label=this.model.label,b.description=this.model.description,b.placeholder=this.model.placeholder,b.required=this.model.required,b.optionsText=this.model.optionsText,b.validation=this.model.validation):void 0}}}]).controller("fbComponentsController",["$scope","$injector",function(a,b){var c;return c=b.get("$builder"),a.selectGroup=function(b,d){var e,f,g,h;null!=b&&b.preventDefault(),a.activeGroup=d,a.components=[],g=c.components,h=[];for(f in g)e=g[f],e.group===d&&h.push(a.components.push(e));return h},a.groups=c.groups,a.activeGroup=a.groups[0],a.allComponents=c.components,a.$watch("allComponents",function(){return a.selectGroup(null,a.activeGroup)})}]).controller("fbComponentController",["$scope",function(b){return b.copyObjectToScope=function(c){return a(c,b)}}]).controller("fbFormController",["$scope","$injector",function(a,b){var c,d;return c=b.get("$builder"),d=b.get("$timeout"),null==a.input&&(a.input=[]),a.$watch("form",function(){return a.input.length>a.form.length&&a.input.splice(a.form.length),d(function(){return a.$broadcast(c.broadcastChannel.updateInput)})},!0)}]).controller("fbFormObjectController",["$scope","$injector",function(b,c){var d;return d=c.get("$builder"),b.copyObjectToScope=function(c){return a(c,b)},b.updateInput=function(a){var c;return c={id:b.formObject.id,label:b.formObject.label,value:null!=a?a:""},b.$parent.input.splice(b.$index,1,c)}}])}.call(this),function(){angular.module("builder.directive",["builder.provider","builder.controller","builder.drag","validator"]).directive("fbBuilder",["$injector",function(a){var b,c;return b=a.get("$builder"),c=a.get("$drag"),{restrict:"A",scope:{fbBuilder:"="},template:"
        \n
        \n
        ",link:function(a,d,e){var f,g,h;return a.formName=e.fbBuilder,null==(g=b.forms)[h=a.formName]&&(g[h]=[]),a.formObjects=b.forms[a.formName],f=!0,$(d).addClass("fb-builder"),c.droppable($(d),{move:function(a){var b,c,e,g,h,i,j,k,l,m,n;if(f&&($("div.fb-form-object-editable").popover("hide"),f=!1),e=$(d).find(".fb-form-object-editable:not(.empty,.dragging)"),0===e.length)return void(0===$(d).find(".fb-form-object-editable.empty").length&&$(d).find(">div:first").append($("
        ")));for(j=[],j.push(-1e3),h=k=0,m=e.length;m>k;h=k+=1)c=$(e[h]),i=c.offset(),g=c.height(),j.push(i.top+g/2);for(j.push(j[j.length-1]+1e3),h=l=1,n=j.length;n>l;h=l+=1)if(a.pageY>j[h-1]&&a.pageY<=j[h]){$(d).find(".empty").remove(),b=$("
        "),h-1l&&k--,b.updateFormObjectIndex(a.formName,l,k))):(j=i.object.formObject,j.editable&&b.removeFormObject(e.fbBuilder,j.index)),$(d).find(".empty").remove()):void $(d).find(".empty").remove()}})}}}]).directive("fbFormObjectEditable",["$injector",function(a){var b,c,d,e;return b=a.get("$builder"),d=a.get("$drag"),c=a.get("$compile"),e=a.get("$validator"),{restrict:"A",controller:"fbFormObjectEditableController",scope:{formObject:"=fbFormObjectEditable"},link:function(a,f){var g;return a.inputArray=[],a.$component=b.components[a.formObject.component],a.setupScope(a.formObject),a.$watch("$component.template",function(b){var d;if(b)return d=c(b)(a),$(f).html(d)}),$(f).on("click",function(){return!1}),d.draggable($(f),{object:{formObject:a.formObject}}),a.formObject.editable?(g={},a.$watch("$component.popoverTemplate",function(b){return b?($(f).removeClass(g.id),g={id:"fb-"+Math.random().toString().substr(2),isClickedSave:!1,view:null,html:b},g.html=$(g.html).addClass(g.id),g.view=c(g.html)(a),$(f).addClass(g.id),$(f).popover({html:!0,title:a.$component.label,content:g.view,container:"body"})):void 0}),a.popover={save:function(b){b.preventDefault(),e.validate(a).success(function(){return g.isClickedSave=!0,$(f).popover("hide")})},remove:function(c){c.preventDefault(),b.removeFormObject(a.$parent.formName,a.$parent.$index),$(f).popover("hide")},shown:function(){return a.data.backup(),g.isClickedSave=!1},cancel:function(b){a.data.rollback(),b&&(b.preventDefault(),$(f).popover("hide"))}},$(f).on("show.bs.popover",function(){var a,b,c;return d.isMouseMoved()?!1:($("div.fb-form-object-editable:not(."+g.id+")").popover("hide"),a=$("form."+g.id).closest(".popover"),a.length>0?(b=$(f).offset().top+$(f).height()/2,c=b-a.height()/2,a.css({position:"absolute",top:c}),a.show(),setTimeout(function(){return a.addClass("in"),$(f).triggerHandler("shown.bs.popover")},0),!1):void 0)}),$(f).on("shown.bs.popover",function(){$(".popover ."+g.id+" input:first").select(),a.$apply(function(){return a.popover.shown()})}),$(f).on("hide.bs.popover",function(){var b;return b=$("form."+g.id).closest(".popover"),g.isClickedSave||(a.$$phase||a.$root.$$phase?a.popover.cancel():a.$apply(function(){return a.popover.cancel()})),b.removeClass("in"),setTimeout(function(){return b.hide()},300),!1})):void 0}}}]).directive("fbComponents",function(){return{restrict:"A",template:'\n
        \n
        \n
        ',controller:"fbComponentsController"}}).directive("fbComponent",["$injector",function(a){var b,c,d;return b=a.get("$builder"),d=a.get("$drag"),c=a.get("$compile"),{restrict:"A",scope:{component:"=fbComponent"},controller:"fbComponentController",link:function(a,b){return a.copyObjectToScope(a.component),d.draggable($(b),{ -mode:"mirror",defer:!1,object:{componentName:a.component.name}}),a.$watch("component.template",function(d){var e;if(d)return e=c(d)(a),$(b).html(e)})}}}]).directive("fbForm",["$injector",function(a){return{restrict:"A",require:"ngModel",scope:{formName:"@fbForm",input:"=ngModel","default":"=fbDefault"},template:'
        ',controller:"fbFormController",link:function(b,c,d){var e,f,g;return e=a.get("$builder"),null==(f=e.forms)[g=b.formName]&&(f[g]=[]),b.form=e.forms[b.formName]}}}]).directive("fbFormObject",["$injector",function(a){var b,c,d;return b=a.get("$builder"),c=a.get("$compile"),d=a.get("$parse"),{restrict:"A",controller:"fbFormObjectController",link:function(a,e,f){return a.formObject=d(f.fbFormObject)(a),a.$component=b.components[a.formObject.component],a.$on(b.broadcastChannel.updateInput,function(){return a.updateInput(a.inputText)}),a.$component.arrayToText&&(a.inputArray=[],a.$watch("inputArray",function(b,c){var d,e;if(b!==c){d=[];for(e in a.inputArray)a.inputArray[e]&&d.push(a.options[e]);return a.inputText=d.join(", ")}},!0)),a.$watch("inputText",function(){return a.updateInput(a.inputText)}),a.$watch(f.fbFormObject,function(){return a.copyObjectToScope(a.formObject)},!0),a.$watch("$component.template",function(b){var d,f,g;if(b)return f=$(b),d=f.find("[ng-model='inputText']"),d.attr({validator:"{{validation}}"}),g=c(f)(a),$(e).html(g)}),!a.$component.arrayToText&&a.formObject.options.length>0&&(a.inputText=a.formObject.options[0]),a.$watch("default["+a.formObject.id+"]",function(b){return b?a.$component.arrayToText?a.inputArray=b:a.inputText=b:void 0})}}}])}.call(this),function(){angular.module("builder.drag",[]).provider("$drag",function(){var a,b,c;a=null,b=null,this.data={draggables:{},droppables:{}},this.mouseMoved=!1,this.isMouseMoved=function(a){return function(){return a.mouseMoved}}(this),this.hooks={down:{},move:{},up:{}},this.eventMouseMove=function(){},this.eventMouseUp=function(){},$(function(a){return function(){return $(document).on("mousedown",function(b){var c,d,e;a.mouseMoved=!1,e=a.hooks.down;for(d in e)(c=e[d])(b)}),$(document).on("mousemove",function(b){var c,d,e;a.mouseMoved=!0,e=a.hooks.move;for(d in e)(c=e[d])(b)}),$(document).on("mouseup",function(b){var c,d,e;e=a.hooks.up;for(d in e)(c=e[d])(b)})}}(this)),this.currentId=0,this.getNewId=function(a){return function(){return""+a.currentId++}}(this),this.setupEasing=function(){return jQuery.extend(jQuery.easing,{easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c}})},this.setupProviders=function(c){return a=c,b=a.get("$rootScope")},this.isHover=function(a){return function(a,b){var c,d,e,f,g;return d=a.offset(),e=b.offset(),f={width:a.width(),height:a.height()},g={width:b.width(),height:b.height()},c={x:!1,y:!1},c.x=d.left>e.left&&d.lefte.left&&d.left+f.widthe.top&&d.tope.top&&d.top+f.height$(window).innerHeight()-50))return a.autoScroll.up=!1,a.autoScroll.down=!1;if(a.autoScroll.up=!1,a.autoScroll.down=!0,!a.autoScroll.scrolling)return a.autoScroll.scroll()}}}(this),stop:function(a){return function(){return a.autoScroll.up=!1,a.autoScroll.down=!1}}(this)},this.dragMirrorMode=function(a){return function(b,c,d){var e;return null==c&&(c=!0),e={id:a.getNewId(),mode:"mirror",maternal:b[0],element:null,object:d},b.on("mousedown",function(d){var f;return d.preventDefault(),f=b.clone(),e.element=f[0],f.addClass("fb-draggable form-horizontal prepare-dragging"),a.hooks.move.drag=function(c,d){var g,h,i,j;if(!f.hasClass("prepare-dragging")||(f.css({width:b.width(),height:b.height()}),f.removeClass("prepare-dragging"),f.addClass("dragging"),!d)){f.offset({left:c.pageX-f.width()/2,top:c.pageY-f.height()/2}),a.autoScroll.start(c),i=a.data.droppables,j=[];for(h in i)g=i[h],a.isHover(f,$(g.element))?j.push(g.move(c,e)):j.push(g.out(c,e));return j}},a.hooks.up.drag=function(b){var c,d,g,h;h=a.data.droppables;for(d in h)c=h[d],g=a.isHover(f,$(c.element)),c.up(b,g,e);return delete a.hooks.move.drag,delete a.hooks.up.drag,e.element=null,f.remove(),a.autoScroll.stop()},$("body").append(f),c?void 0:a.hooks.move.drag(d,c)}),e}}(this),this.dragDragMode=function(a){return function(b,c,d){var e;return null==c&&(c=!0),e={id:a.getNewId(),mode:"drag",maternal:null,element:b[0],object:d},b.addClass("fb-draggable"),b.on("mousedown",function(d){return d.preventDefault(),b.hasClass("dragging")?void 0:(b.addClass("prepare-dragging"),a.hooks.move.drag=function(c,d){var f,g,h;if(!b.hasClass("prepare-dragging")||(b.css({width:b.width(),height:b.height()}),b.removeClass("prepare-dragging"),b.addClass("dragging"),!d)){b.offset({left:c.pageX-b.width()/2,top:c.pageY-b.height()/2}),a.autoScroll.start(c),h=a.data.droppables;for(g in h)f=h[g],a.isHover(b,$(f.element))?f.move(c,e):f.out(c,e)}},a.hooks.up.drag=function(c){var d,f,g,h;h=a.data.droppables;for(f in h)d=h[f],g=a.isHover(b,$(d.element)),d.up(c,g,e);return delete a.hooks.move.drag,delete a.hooks.up.drag,b.css({width:"",height:"",left:"",top:""}),b.removeClass("dragging defer-dragging"),a.autoScroll.stop()},c?void 0:a.hooks.move.drag(d,c))}),e}}(this),this.dropMode=function(a){return function(c,d){var e;return e={id:a.getNewId(),element:c[0],move:function(a,c){return b.$apply(function(){return"function"==typeof d.move?d.move(a,c):void 0})},up:function(a,c,e){return b.$apply(function(){return"function"==typeof d.up?d.up(a,c,e):void 0})},out:function(a,c){return b.$apply(function(){return"function"==typeof d.out?d.out(a,c):void 0})}}}}(this),this.draggable=function(a){return function(b,c){var d,e,f,g,h,i,j;if(null==c&&(c={}),f=[],"mirror"===c.mode)for(g=0,i=b.length;i>g;g++)e=b[g],d=a.dragMirrorMode($(e),c.defer,c.object),f.push(d.id),a.data.draggables[d.id]=d;else for(h=0,j=b.length;j>h;h++)e=b[h],d=a.dragDragMode($(e),c.defer,c.object),f.push(d.id),a.data.draggables[d.id]=d;return f}}(this),this.droppable=function(a){return function(b,c){var d,e,f,g,h;for(null==c&&(c={}),f=[],g=0,h=b.length;h>g;g++)e=b[g],d=a.dropMode($(e),c),f.push(d),a.data.droppables[d.id]=d;return f}}(this),this.get=function(a){return this.setupEasing(),this.setupProviders(a),{isMouseMoved:this.isMouseMoved,data:this.data,draggable:this.draggable,droppable:this.droppable}},this.get.$inject=["$injector"],this.$get=this.get})}.call(this),function(){angular.module("builder",["builder.directive"])}.call(this),function(){var a=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};angular.module("builder.provider",[]).provider("$builder",function(){var b,c,d;c=null,b=null,d=null,this.version="0.0.2",this.components={},this.groups=[],this.broadcastChannel={updateInput:"$updateInput"},this.forms={"default":[]},this.formsId={"default":0},this.convertComponent=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;return c={name:a,group:null!=(d=b.group)?d:"Default",label:null!=(e=b.label)?e:"",description:null!=(f=b.description)?f:"",placeholder:null!=(g=b.placeholder)?g:"",editable:null!=(h=b.editable)?h:!0,required:null!=(i=b.required)?i:!1,validation:null!=(j=b.validation)?j:"/.*/",validationOptions:null!=(k=b.validationOptions)?k:[],options:null!=(l=b.options)?l:[],arrayToText:null!=(m=b.arrayToText)?m:!1,template:b.template,templateUrl:b.templateUrl,popoverTemplate:b.popoverTemplate,popoverTemplateUrl:b.popoverTemplateUrl},c.template||c.templateUrl||console.error("The template is empty."),c.popoverTemplate||c.popoverTemplateUrl||console.error("The popoverTemplate is empty."),c},this.convertFormObject=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(null==b&&(b={}),c=this.components[b.component],null==c)throw"The component "+b.component+" was not registered.";if(b.id){for(d=!1,i=this.forms[a],g=0,h=i.length;h>g;g++)if(e=i[g],b.id<=e.id){b.id=this.formsId[a]++,d=!0;break}d||(this.formsId[a]=b.id+1)}return f={id:null!=(j=b.id)?j:this.formsId[a]++,component:b.component,editable:null!=(k=b.editable)?k:c.editable,index:null!=(l=b.index)?l:0,label:null!=(m=b.label)?m:c.label,description:null!=(n=b.description)?n:c.description,placeholder:null!=(o=b.placeholder)?o:c.placeholder,options:null!=(p=b.options)?p:c.options,required:null!=(q=b.required)?q:c.required,validation:null!=(r=b.validation)?r:c.validation}},this.reindexFormObject=function(a){return function(b){var c,d,e,f;for(c=a.forms[b],d=e=0,f=c.length;f>e;d=e+=1)c[d].index=d}}(this),this.setupProviders=function(a){return function(a){return c=a,b=c.get("$http"),d=c.get("$templateCache")}}(this),this.loadTemplate=function(a){return null==a.template&&b.get(a.templateUrl,{cache:d}).success(function(b){return a.template=b}),null==a.popoverTemplate?b.get(a.popoverTemplateUrl,{cache:d}).success(function(b){return a.popoverTemplate=b}):void 0},this.registerComponent=function(b){return function(d,e){var f,g;null==e&&(e={}),null==b.components[d]?(f=b.convertComponent(d,e),b.components[d]=f,null!=c&&b.loadTemplate(f),g=f.group,a.call(b.groups,g)<0&&b.groups.push(f.group)):console.error("The component "+d+" was registered.")}}(this),this.addFormObject=function(a){return function(b,c){var d;return null==c&&(c={}),null==(d=a.forms)[b]&&(d[b]=[]),a.insertFormObject(b,a.forms[b].length,c)}}(this),this.insertFormObject=function(a){return function(b,c,d){var e,f;return null==d&&(d={}),null==(e=a.forms)[b]&&(e[b]=[]),null==(f=a.formsId)[b]&&(f[b]=0),c>a.forms[b].length?c=a.forms[b].length:0>c&&(c=0),a.forms[b].splice(c,0,a.convertFormObject(b,d)),a.reindexFormObject(b),a.forms[b][c]}}(this),this.removeFormObject=function(a){return function(b,c){var d;return d=a.forms[b],d.splice(c,1),a.reindexFormObject(b)}}(this),this.updateFormObjectIndex=function(a){return function(b,c,d){var e,f;if(c!==d)return f=a.forms[b],e=f.splice(c,1)[0],f.splice(d,0,e),a.reindexFormObject(b)}}(this),this.$get=["$injector",function(a){return function(b){var c,d,e;a.setupProviders(b),e=a.components;for(d in e)c=e[d],a.loadTemplate(c);return{version:a.version,components:a.components,groups:a.groups,forms:a.forms,broadcastChannel:a.broadcastChannel,registerComponent:a.registerComponent,addFormObject:a.addFormObject,insertFormObject:a.insertFormObject,removeFormObject:a.removeFormObject,updateFormObjectIndex:a.updateFormObjectIndex}}}(this)]})}.call(this),function(){angular.module("builder.components",["builder","validator.rules"]).config(["$builderProvider",function(a){return a.registerComponent("textInput",{group:"Default",label:"Text Input",description:"description",placeholder:"placeholder",required:!1,validationOptions:[{label:"none",rule:"/.*/"},{label:"number",rule:"[number]"},{label:"email",rule:"[email]"},{label:"url",rule:"[url]"}],template:'
        \n \n
        \n \n

        {{description}}

        \n
        \n
        ',popoverTemplate:"
        \n
        \n \n \n
        \n
        \n \n \n
        \n
        \n \n \n
        \n
        \n \n
        \n
        0\">\n \n \n
        \n\n
        \n
        \n \n \n \n
        \n
        "}),a.registerComponent("textArea",{group:"Default",label:"Text Area",description:"description",placeholder:"placeholder",required:!1,template:'
        \n \n
        \n "),""+encodeURIComponent(a)+""})}function l(a){return a.replace(E,function(a,b){return decodeURIComponent(b)})}function m(a){return a.replace(/\x3c!--(?!{cke_protected})[\s\S]+?--\x3e/g,function(a){return""})}function n(a){return a.replace(/\x3c!--\{cke_protected\}\{C\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)})}function o(a,b){var c=b._.dataStore;return a.replace(/\x3c!--\{cke_protected\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return c&&c[b]||""})}function p(a,b){var c=[],d=b.config.protectedSource,e=b._.dataStore||(b._.dataStore={id:1}),f=/<\!--\{cke_temp(comment)?\}(\d*?)--\x3e/g,d=[/|$)/gi,//gi,//gi].concat(d);a=a.replace(/\x3c!--[\s\S]*?--\x3e/g,function(a){return""});for(var g=0;g"});return a=a.replace(f,function(a,b,d){return""}),a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g,function(a){return a.replace(/\x3c!--\{cke_protected\}([^>]*)--\x3e/g,function(a,b){return e[e.id]=decodeURIComponent(b),"{cke_protected_"+e.id++ +"}"})}),a=a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,c,d,e){return"<"+c+d+">"+o(n(e),b)+""})}CKEDITOR.htmlDataProcessor=function(c){var d,e,f=this;this.editor=c,this.dataFilter=d=new CKEDITOR.htmlParser.filter,this.htmlFilter=e=new CKEDITOR.htmlParser.filter,this.writer=new CKEDITOR.htmlParser.basicWriter,d.addRules(v),d.addRules(w,{applyToAll:!0}),d.addRules(a(c,"data"),{applyToAll:!0}),e.addRules(x),e.addRules(y,{applyToAll:!0}),e.addRules(a(c,"html"),{applyToAll:!0}),c.on("toHtml",function(a){a=a.data;var d,e=a.dataValue,e=p(e,c),e=k(e,D),e=j(e),e=k(e,C),e=e.replace(F,"$1cke:$2"),e=e.replace(H,""),e=e.replace(/(]*>)(\r\n|\n)/g,"$1$2$2"),e=e.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+CKEDITOR.rnd+"-$2");d=a.context||c.editable().getName();var f;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&"pre"==d&&(d="div",e="
        "+e+"
        ",f=1),d=c.document.createElement(d),d.setHtml("a"+e),e=d.getHtml().substr(1),e=e.replace(new RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),""),f&&(e=e.replace(/^
        |<\/pre>$/gi,"")),e=e.replace(G,"$1$2"),e=l(e),e=n(e),d=!1===a.fixForBody?!1:b(a.enterMode,c.config.autoParagraph),e=CKEDITOR.htmlParser.fragment.fromHtml(e,a.context,d),d&&(f=e,!f.children.length&&CKEDITOR.dtd[f.name][d]&&(d=new CKEDITOR.htmlParser.element(d),f.add(d))),a.dataValue=e},null,null,5),c.on("toHtml",function(a){a.data.filter.applyTo(a.data.dataValue,!0,a.data.dontFilter,a.data.enterMode)&&c.fire("dataFiltered")},null,null,6),c.on("toHtml",function(a){a.data.dataValue.filterChildren(f.dataFilter,!0)},null,null,10),c.on("toHtml",function(a){a=a.data;var b=a.dataValue,c=new CKEDITOR.htmlParser.basicWriter;b.writeChildrenHtml(c),b=c.getHtml(!0),a.dataValue=m(b)},null,null,15),c.on("toDataFormat",function(a){var d=a.data.dataValue;a.data.enterMode!=CKEDITOR.ENTER_BR&&(d=d.replace(/^
        /i,"")),a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(d,a.data.context,b(a.data.enterMode,c.config.autoParagraph))},null,null,5),c.on("toDataFormat",function(a){a.data.dataValue.filterChildren(f.htmlFilter,!0)},null,null,10),c.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,!1,!0)},null,null,11),c.on("toDataFormat",function(a){var b=a.data.dataValue,d=f.writer;d.reset(),b.writeChildrenHtml(d),b=d.getHtml(!0),b=n(b),b=o(b,c),a.data.dataValue=b},null,null,15)},CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,c,d){var e,f,g,h,i=this.editor;return b&&"object"==typeof b?(e=b.context,c=b.fixForBody,d=b.dontFilter,f=b.filter,g=b.enterMode,h=b.protectedWhitespaces):e=b,e||null===e||(e=i.editable().getName()),i.fire("toHtml",{dataValue:a,context:e,fixForBody:c,dontFilter:d,filter:f||i.filter,enterMode:g||i.enterMode,protectedWhitespaces:h}).dataValue},toDataFormat:function(a,b){var c,d,e;return b&&(c=b.context,d=b.filter,e=b.enterMode),c||null===c||(c=this.editor.editable().getName()),this.editor.fire("toDataFormat",{dataValue:a,filter:d||this.editor.filter,context:c,enterMode:e||this.editor.enterMode}).dataValue}};var q=/(?: |\xa0)$/,r="{cke_protected}",s=CKEDITOR.dtd,t="caption colgroup col thead tfoot tbody".split(" "),u=CKEDITOR.tools.extend({},s.$blockLimit,s.$block),v={elements:{input:h,textarea:h}},w={attributeNames:[[/^on/,"data-cke-pa-on"],[/^data-cke-expando$/,""]]},x={elements:{embed:function(a){var b=a.parent;if(b&&"object"==b.name){var c=b.attributes.width,b=b.attributes.height;c&&(a.attributes.width=c),b&&(a.attributes.height=b)}},a:function(a){var b=a.attributes;return a.children.length||b.name||b.id||a.attributes["data-cke-saved-name"]?void 0:!1}}},y={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return!1;for(var c,d=["name","href","src"],e=0;e-1&&d>-1&&c!=d||(c=a.parent?a.getIndex():-1,d=b.parent?b.getIndex():-1),c>d?1:-1})},param:function(a){return a.children=[],a.isEmpty=!0,a},span:function(a){"Apple-style-span"==a.attributes["class"]&&delete a.name},html:function(a){delete a.attributes.contenteditable,delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck,delete a.attributes.contenteditable},style:function(a){var b=a.children[0];b&&b.value&&(b.value=CKEDITOR.tools.trim(b.value)),a.attributes.type||(a.attributes.type="text/css")},title:function(a){var b=a.children[0];!b&&g(a,b=new CKEDITOR.htmlParser.text),b.value=a.attributes["data-cke-title"]||""},input:i,textarea:i},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||!1}}};CKEDITOR.env.ie&&(y.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})});var z=/<(a|area|img|input|source)\b([^>]*)>/gi,A=/([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,B=/^(href|src|name)$/i,C=/(?:])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,D=/(])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,E=/([^<]*)<\/cke:encoded>/gi,F=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,G=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,H=/]*?)\/?>(?!\s*<\/cke:\1)/gi}(),CKEDITOR.htmlParser.element=function(a,b){this.name=a,this.attributes=b||{},this.children=[];var c=a||"",d=c.match(/^cke:(.*)/);d&&(c=d[1]),c=!!(CKEDITOR.dtd.$nonBodyContent[c]||CKEDITOR.dtd.$block[c]||CKEDITOR.dtd.$listItem[c]||CKEDITOR.dtd.$tableContent[c]||CKEDITOR.dtd.$nonEditable[c]||"br"==c),this.isEmpty=!!CKEDITOR.dtd.$empty[a],this.isUnknown=!CKEDITOR.dtd[a],this._={isBlockLike:c,hasInlineStarted:this.isEmpty||!c}},CKEDITOR.htmlParser.cssStyle=function(a){var b={};return((a instanceof CKEDITOR.htmlParser.element?a.attributes.style:a)||"").replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,c,d){"font-family"==c&&(d=d.replace(/["']/g,"")),b[c.toLowerCase()]=d}),{rules:b,populate:function(a){var b=this.toString();b&&(a instanceof CKEDITOR.dom.element?a.setAttribute("style",b):a instanceof CKEDITOR.htmlParser.element?a.attributes.style=b:a.style=b)},toString:function(){var a,c=[];for(a in b)b[a]&&c.push(a,":",b[a],";");return c.join("")}}},function(){function a(a){return function(b){return b.type==CKEDITOR.NODE_ELEMENT&&("string"==typeof a?b.name==a:b.name in a)}}var b=function(a,b){return a=a[0],b=b[0],b>a?-1:a>b?1:0},c=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:c.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a,b){var c,d,e=this;if(b=e.getFilterContext(b),b.off)return!0;for(e.parent||a.onRoot(b,e);;){if(c=e.name,!(d=a.onElementName(b,c)))return this.remove(),!1;if(e.name=d,!(e=a.onElement(b,e)))return this.remove(),!1;if(e!==this)return this.replaceWith(e),!1;if(e.name==c)break;if(e.type!=CKEDITOR.NODE_ELEMENT)return this.replaceWith(e),!1;if(!e.name)return this.replaceWithChildren(),!1}c=e.attributes;var f,g;for(f in c){for(d=c[f];;){if(!(g=a.onAttributeName(b,f))){delete c[f];break}if(g==f)break;delete c[f],f=g}g&&(!1===(d=a.onAttribute(b,e,g,d))?delete c[g]:c[g]=d)}return e.isEmpty||this.filterChildren(a,!1,b),!0},filterChildren:c.filterChildren,writeHtml:function(a,c){c&&this.filter(c);var d,e,f=this.name,g=[],h=this.attributes;a.openTag(f,h);for(d in h)g.push([d,h[d]]);for(a.sortAttributes&&g.sort(b),d=0,e=g.length;e>d;d++)h=g[d],a.attribute(h[0],h[1]);a.openTagClose(f,this.isEmpty),this.writeChildrenHtml(a),this.isEmpty||a.closeTag(f)},writeChildrenHtml:c.writeChildrenHtml,replaceWithChildren:function(){for(var a=this.children,b=a.length;b;)a[--b].insertAfter(this);this.remove()},forEach:c.forEach,getFirst:function(b){if(!b)return this.children.length?this.children[0]:null;"function"!=typeof b&&(b=a(b));for(var c=0,d=this.children.length;d>c;++c)if(b(this.children[c]))return this.children[c];return null},getHtml:function(){var a=new CKEDITOR.htmlParser.basicWriter;return this.writeChildrenHtml(a),a.getHtml()},setHtml:function(a){a=this.children=CKEDITOR.htmlParser.fragment.fromHtml(a).children;for(var b=0,c=a.length;c>b;++b)a[b].parent=this},getOuterHtml:function(){var a=new CKEDITOR.htmlParser.basicWriter;return this.writeHtml(a),a.getHtml()},split:function(a){for(var b=this.children.splice(a,this.children.length-a),c=this.clone(),d=0;d0&&(this.children[a-1].next=null),this.parent.add(c,this.getIndex()+1),c},addClass:function(a){if(!this.hasClass(a)){var b=this.attributes["class"]||"";this.attributes["class"]=b+(b?" ":"")+a}},removeClass:function(a){var b=this.attributes["class"];b&&((b=CKEDITOR.tools.trim(b.replace(new RegExp("(?:\\s+|^)"+a+"(?:\\s+|$)")," ")))?this.attributes["class"]=b:delete this.attributes["class"])},hasClass:function(a){var b=this.attributes["class"];return b?new RegExp("(?:^|\\s)"+a+"(?=\\s|$)").test(b):!1},getFilterContext:function(a){var b=[];if(a||(a={off:!1,nonEditable:!1,nestedEditable:!1}),a.off||"off"!=this.attributes["data-cke-processor"]||b.push("off",!0),a.nonEditable||"false"!=this.attributes.contenteditable?a.nonEditable&&!a.nestedEditable&&"true"==this.attributes.contenteditable&&b.push("nestedEditable",!0):b.push("nonEditable",!0),b.length){a=CKEDITOR.tools.copy(a);for(var c=0;c'+d.getValue()+"
        ",CKEDITOR.document),a.insertAfter(d),d.hide(),d.$.form&&c._attachToForm()):c.setData(a.getHtml(),null,!0),c.on("loaded",function(){c.fire("uiReady"),c.editable(a),c.container=a,c.ui.contentsElement=a,c.setData(c.getData(1)),c.resetDirty(),c.fire("contentDom"),c.mode="wysiwyg",c.fire("mode"),c.status="ready",c.fireOnce("instanceReady"),CKEDITOR.fire("instanceReady",null,c)},null,null,1e4),c.on("destroy",function(){d&&(c.container.clearCustomData(),c.container.remove(),d.show()),c.element.clearCustomData(),delete c.element}),c},CKEDITOR.inlineAll=function(){var a,b,c;for(c in CKEDITOR.dtd.$editable)for(var d=CKEDITOR.document.getElementsByTag(c),e=0,f=d.count();f>e;e++)a=d.getItem(e),"true"==a.getAttribute("contenteditable")&&(b={element:a,config:{}},!1!==CKEDITOR.fire("inline",b)&&CKEDITOR.inline(a,b.config))},CKEDITOR.domReady(function(){!CKEDITOR.disableAutoInline&&CKEDITOR.inlineAll()})}(),CKEDITOR.replaceClass="ckeditor",function(){function a(a,d,e,f){if(!CKEDITOR.env.isCompatible)return null;if(a=CKEDITOR.dom.element.get(a),a.getEditor())throw'The editor instance "'+a.getEditor().name+'" is already attached to the provided element.';var g=new CKEDITOR.editor(d,a,f);return f==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.setStyle("visibility","hidden"), -g._.required=a.hasAttribute("required"),a.removeAttribute("required")),e&&g.setData(e,null,!0),g.on("loaded",function(){c(g),f==CKEDITOR.ELEMENT_MODE_REPLACE&&g.config.autoUpdateElement&&a.$.form&&g._attachToForm(),g.setMode(g.config.startupMode,function(){g.resetDirty(),g.status="ready",g.fireOnce("instanceReady"),CKEDITOR.fire("instanceReady",null,g)})}),g.on("destroy",b),g}function b(){var a=this.container,b=this.element;a&&(a.clearCustomData(),a.remove()),b&&(b.clearCustomData(),this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(b.show(),this._.required&&b.setAttribute("required","required")),delete this.element)}function c(a){var b=a.name,c=a.element,d=a.elementMode,e=a.fire("uiSpace",{space:"top",html:""}).html,f=a.fire("uiSpace",{space:"bottom",html:""}).html,g=new CKEDITOR.template('<{outerEl} id="cke_{name}" class="{id} cke cke_reset cke_chrome cke_editor_{name} cke_{langDir} '+CKEDITOR.env.cssClass+'" dir="{langDir}" lang="{langCode}" role="application"'+(a.title?' aria-labelledby="cke_{name}_arialbl"':"")+">"+(a.title?'{voiceLabel}':"")+'<{outerEl} class="cke_inner cke_reset" role="presentation">{topHtml}<{outerEl} id="{contentId}" class="cke_contents cke_reset" role="presentation">{bottomHtml}'),b=CKEDITOR.dom.element.createFromHtml(g.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:a.title,topHtml:e?''+e+"":"",contentId:a.ui.spaceId("contents"),bottomHtml:f?''+f+"":"",outerEl:CKEDITOR.env.ie?"span":"div"}));d==CKEDITOR.ELEMENT_MODE_REPLACE?(c.hide(),b.insertAfter(c)):c.append(b),a.container=b,a.ui.contentsElement=a.ui.space("contents"),e&&a.ui.space("top").unselectable(),f&&a.ui.space("bottom").unselectable(),c=a.config.width,d=a.config.height,c&&b.setStyle("width",CKEDITOR.tools.cssLength(c)),d&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(d)),b.disableContextMenu(),CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()}),a.fireOnce("uiReady")}CKEDITOR.replace=function(b,c){return a(b,c,null,CKEDITOR.ELEMENT_MODE_REPLACE)},CKEDITOR.appendTo=function(b,c,d){return a(b,c,d,CKEDITOR.ELEMENT_MODE_APPENDTO)},CKEDITOR.replaceAll=function(){for(var a=document.getElementsByTagName("textarea"),b=0;bCKEDITOR.env.version||CKEDITOR.env.quirks)?this.hasFocus&&(this.focus(),b()):this.hasFocus?(this.focus(),a()):this.once("focus",function(){a()},null,null,-999)},getHtmlFromRange:function(a){return a.collapsed?new CKEDITOR.dom.documentFragment(a.document):(a={doc:this.getDocument(),range:a.clone()},r.eol.detect(a,this),r.bogus.exclude(a),r.cell.shrink(a),a.fragment=a.range.cloneContents(),r.tree.rebuild(a,this),r.eol.fix(a,this),new CKEDITOR.dom.documentFragment(a.fragment.$))},extractHtmlFromRange:function(a,b){var c=s,d={range:a,doc:a.document},e=this.getHtmlFromRange(a);if(a.collapsed)return a.optimize(),e;a.enlarge(CKEDITOR.ENLARGE_INLINE,1),c.table.detectPurge(d),d.bookmark=a.createBookmark(),delete d.range;var f=this.editor.createRange();if(f.moveToPosition(d.bookmark.startNode,CKEDITOR.POSITION_BEFORE_START),d.targetBookmark=f.createBookmark(),c.list.detectMerge(d,this),c.table.detectRanges(d,this),c.block.detectMerge(d,this),d.tableContentsRanges?(c.table.deleteRanges(d),a.moveToBookmark(d.bookmark),d.range=a):(a.moveToBookmark(d.bookmark),d.range=a,a.extractContents(c.detectExtractMerge(d))),a.moveToBookmark(d.targetBookmark),a.optimize(),c.fixUneditableRangePosition(a),c.list.merge(d,this),c.table.purge(d,this),c.block.merge(d,this),b){if(c=a.startPath(),d=a.checkStartOfBlock()&&a.checkEndOfBlock()&&c.block&&!a.root.equals(c.block)){a:{var g,d=c.block.getElementsByTag("span"),f=0;if(d)for(;g=d.getItem(f++);)if(!l(g)){d=!0;break a}d=!1}d=!d}d&&(a.moveToPosition(c.block,CKEDITOR.POSITION_BEFORE_START),c.block.remove())}else c.autoParagraph(this.editor,a),m(a.startContainer)&&a.startContainer.appendBogus();return a.startContainer.mergeSiblings(),e},setup:function(){var a=this.editor;if(this.attachListener(a,"beforeGetData",function(){var b=this.getData();this.is("textarea")||!1!==a.config.ignoreEmptyParagraph&&(b=b.replace(o,function(a,b){return b})),a.setData(b,null,1)},this),this.attachListener(a,"getSnapshot",function(a){a.data=this.getData(1)},this),this.attachListener(a,"afterSetData",function(){this.setData(a.getData(1))},this),this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data,1)},this),this.attachListener(a,"beforeFocus",function(){var b=a.getSelection();(b=b&&b.getNative())&&"Control"==b.type||this.focus()},this),this.attachListener(a,"insertHtml",function(a){this.insertHtml(a.data.dataValue,a.data.mode,a.data.range)},this),this.attachListener(a,"insertElement",function(a){this.insertElement(a.data)},this),this.attachListener(a,"insertText",function(a){this.insertText(a.data)},this),this.setReadOnly(a.readOnly),this.attachClass("cke_editable"),a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?this.attachClass("cke_editable_inline"):a.elementMode!=CKEDITOR.ELEMENT_MODE_REPLACE&&a.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||this.attachClass("cke_editable_themed"),this.attachClass("cke_contents_"+a.config.contentsLangDirection),a.keystrokeHandler.blockedKeystrokes[8]=+a.readOnly,a.keystrokeHandler.attach(this),this.on("blur",function(){this.hasFocus=!1},null,null,-1),this.on("focus",function(){this.hasFocus=!0},null,null,-1),a.focusManager.add(this),this.equals(CKEDITOR.document.getActive())&&(this.hasFocus=!0,a.once("contentDom",function(){a.focusManager.focus(this)},this)),this.isInline()&&this.changeAttr("tabindex",a.tabIndex),!this.is("textarea")){a.document=this.getDocument(),a.window=this.getWindow();var b=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var e=a.config.contentsLangDirection;this.getDirection(1)!=e&&this.changeAttr("dir",e);var g=CKEDITOR.getCss();if(g){var e=b.getHead(),h=e.getCustomData("stylesheet");h?g!=h.getText()&&(CKEDITOR.env.ie&&9>CKEDITOR.env.version?h.$.styleSheet.cssText=g:h.setText(g)):(g=b.appendStyleText(g),g=new CKEDITOR.dom.element(g.ownerNode||g.owningElement),e.setCustomData("stylesheet",g),g.data("cke-temp",1))}e=b.getCustomData("stylesheet_ref")||0,b.setCustomData("stylesheet_ref",e+1),this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling),this.attachListener(this,"click",function(a){a=a.data;var b=new CKEDITOR.dom.elementPath(a.getTarget(),this).contains("a");b&&2!=a.$.button&&b.isReadOnly()&&a.preventDefault()});var i={8:1,46:1};this.attachListener(a,"key",function(b){if(a.readOnly)return!0;var c,d=b.data.domEvent.getKey();if(d in i){b=a.getSelection();var e,g,h,j,l=b.getRanges()[0],m=l.startPath(),d=8==d;CKEDITOR.env.ie&&11>CKEDITOR.env.version&&(e=b.getSelectedElement())||(e=f(b))?(a.fire("saveSnapshot"),l.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e.remove(),l.select(),a.fire("saveSnapshot"),c=1):l.collapsed&&((g=m.block)&&(j=g[d?"getPrevious":"getNext"](k))&&j.type==CKEDITOR.NODE_ELEMENT&&j.is("table")&&l[d?"checkStartOfBlock":"checkEndOfBlock"]()?(a.fire("saveSnapshot"),l[d?"checkEndOfBlock":"checkStartOfBlock"]()&&g.remove(),l["moveToElementEdit"+(d?"End":"Start")](j),l.select(),a.fire("saveSnapshot"),c=1):m.blockLimit&&m.blockLimit.is("td")&&(h=m.blockLimit.getAscendant("table"))&&l.checkBoundaryOfElement(h,d?CKEDITOR.START:CKEDITOR.END)&&(j=h[d?"getPrevious":"getNext"](k))?(a.fire("saveSnapshot"),l["moveToElementEdit"+(d?"End":"Start")](j),l.checkStartOfBlock()&&l.checkEndOfBlock()?j.remove():l.select(),a.fire("saveSnapshot"),c=1):(h=m.contains(["td","th","caption"]))&&l.checkBoundaryOfElement(h,d?CKEDITOR.START:CKEDITOR.END)&&(c=1))}return!c}),a.blockless&&CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller&&this.attachListener(this,"keyup",function(b){b.data.getKeystroke()in i&&!this.getFirst(d)&&(this.appendBogus(),b=a.createRange(),b.moveToPosition(this,CKEDITOR.POSITION_AFTER_START),b.select())}),this.attachListener(this,"dblclick",function(b){return a.readOnly?!1:(b={element:b.data.getTarget()},void a.fire("doubleclick",b))}),CKEDITOR.env.ie&&this.attachListener(this,"click",c),CKEDITOR.env.ie&&!CKEDITOR.env.edge||this.attachListener(this,"mousedown",function(b){var c=b.data.getTarget();c.is("img","hr","input","textarea","select")&&!c.isReadOnly()&&(a.getSelection().selectElement(c),c.is("input","textarea","select")&&b.data.preventDefault())}),CKEDITOR.env.edge&&this.attachListener(this,"mouseup",function(b){(b=b.data.getTarget())&&b.is("img")&&a.getSelection().selectElement(b)}),CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(2==b.data.$.button&&(b=b.data.getTarget(),!b.getOuterHtml().replace(o,""))){var c=a.createRange();c.moveToElementEditStart(b),c.select(!0)}}),CKEDITOR.env.webkit&&(this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()}),this.attachListener(this,"mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()})),CKEDITOR.env.webkit&&this.attachListener(a,"key",function(b){if(a.readOnly)return!0;if(b=b.data.domEvent.getKey(),b in i){var c=8==b,d=a.getSelection().getRanges()[0];if(b=d.startPath(),d.collapsed)a:{var e=b.block;if(e&&d[c?"checkStartOfBlock":"checkEndOfBlock"]()&&d.moveToClosestEditablePosition(e,!c)&&d.collapsed){if(d.startContainer.type==CKEDITOR.NODE_ELEMENT){var f=d.startContainer.getChild(d.startOffset-(c?1:0));if(f&&f.type==CKEDITOR.NODE_ELEMENT&&f.is("hr")){a.fire("saveSnapshot"),f.remove(),b=!0;break a}}if(d=d.startPath().block,!d||d&&d.contains(e))b=void 0;else{a.fire("saveSnapshot");var g;(g=(c?d:e).getBogus())&&g.remove(),g=a.getSelection(),f=g.createBookmarks(),(c?e:d).moveChildren(c?d:e,!1),b.lastElement.mergeSiblings(),j(e,d,!c),g.selectBookmarks(f),b=!0}}else b=!1}else c=d,g=b.block,d=c.endPath().block,g&&d&&!g.equals(d)?(a.fire("saveSnapshot"),(e=g.getBogus())&&e.remove(),c.enlarge(CKEDITOR.ENLARGE_INLINE),c.deleteContents(),d.getParent()&&(d.moveChildren(g,!1),b.lastElement.mergeSiblings(),j(g,d,!0)),c=a.getSelection().getRanges()[0],c.collapse(1),c.optimize(),""===c.startContainer.getHtml()&&c.startContainer.appendBogus(),c.select(),b=!0):b=!1;if(!b)return;return a.getSelection().scrollIntoView(),a.fire("saveSnapshot"),!1}},this,null,100)}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1),this.clearListeners(),this.restoreAttrs();var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());if(!this.is("textarea")){a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var c=a.getCustomData("stylesheet_ref");--c?a.setCustomData("stylesheet_ref",c):(a.removeCustomData("stylesheet_ref"),b.removeCustomData("stylesheet").remove())}}this.editor.fire("contentDomUnload"),delete this.editor}}}),CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;return b&&a?0:(arguments.length&&(b=this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null)),b)},CKEDITOR.on("instanceLoaded",function(b){var c=b.editor;c.on("insertElement",function(a){a=a.data,a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))&&("false"!=a.getAttribute("contentEditable")&&a.data("cke-editable",a.hasAttribute("contenteditable")?"true":"1"),a.setAttribute("contentEditable",!1))}),c.on("selectionChange",function(b){if(!c.readOnly){var d=c.getSelection();d&&!d.isLocked&&(d=c.checkDirty(),c.fire("lockSnapshot"),a(b),c.fire("unlockSnapshot"),!d&&c.resetDirty())}})}),CKEDITOR.on("instanceCreated",function(a){var b=a.editor;b.on("mode",function(){var a=b.editable();if(a&&a.isInline()){var c=b.title;a.changeAttr("role","textbox"),a.changeAttr("aria-label",c),c&&a.changeAttr("title",c);var d=b.fire("ariaEditorHelpLabel",{}).label;if(d&&(c=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents"))){var e=CKEDITOR.tools.getNextId(),d=CKEDITOR.dom.element.createFromHtml(''+d+"");c.append(d),a.changeAttr("aria-describedby",e)}}})}),CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}"),k=CKEDITOR.dom.walker.whitespaces(!0),l=CKEDITOR.dom.walker.bookmark(!1,!0),m=CKEDITOR.dom.walker.empty(),n=CKEDITOR.dom.walker.bogus(),o=/(^|]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,p=function(){function a(a){return a.type==CKEDITOR.NODE_ELEMENT}function b(c,d){var e,f,g,h,i=[],j=d.range.startContainer;e=d.range.startPath();for(var j=k[j.getName()],l=0,m=c.getChildren(),n=m.count(),o=-1,p=-1,q=0,r=e.contains(k.$list);n>l;++l)e=m.getItem(l),a(e)?(g=e.getName(),r&&g in CKEDITOR.dtd.$list?i=i.concat(b(e,d)):(h=!!j[g],"br"!=g||!e.data("cke-eol")||l&&l!=n-1||(q=(f=l?i[l-1].node:m.getItem(l+1))&&(!a(f)||!f.is("br")),f=f&&a(f)&&k.$block[f.getName()]),-1!=o||h||(o=l),h||(p=l),i.push({isElement:1,isLineBreak:q,isBlock:e.isBlockBoundary(),hasBlockSibling:f,node:e,name:g,allowed:h}),f=q=0)):i.push({isElement:0,node:e,allowed:1});return o>-1&&(i[o].firstNotAllowed=1),p>-1&&(i[p].lastNotAllowed=1),i}function c(b,d){var e,f=[],g=b.getChildren(),h=g.count(),i=0,j=k[d],l=!b.is(k.$inline)||b.is("br");for(l&&f.push(" ");h>i;i++)e=g.getItem(i),a(e)&&!e.is(j)?f=f.concat(c(e,d)):f.push(e);return l&&f.push(" "),f}function e(b){return a(b.startContainer)&&b.startContainer.getChild(b.startOffset-1)}function f(b){return b&&a(b)&&(b.is(k.$removeEmpty)||b.is("a")&&!b.isBlockBoundary())}function i(b,c,d,e){var f,g,h=b.clone();h.setEndAt(c,CKEDITOR.POSITION_BEFORE_END),(f=new CKEDITOR.dom.walker(h).next())&&a(f)&&l[f.getName()]&&(g=f.getPrevious())&&a(g)&&!g.getParent().equals(b.startContainer)&&d.contains(g)&&e.contains(f)&&f.isIdentical(g)&&(f.moveChildren(g),f.remove(),i(b,c,d,e))}function j(b,c){function d(b,c){return c.isBlock&&c.isElement&&!c.node.is("br")&&a(b)&&b.is("br")?(b.remove(),1):void 0}var e=c.endContainer.getChild(c.endOffset),f=c.endContainer.getChild(c.endOffset-1);e&&d(e,b[b.length-1]),f&&d(f,b[0])&&(c.setEnd(c.endContainer,c.endOffset-1),c.collapse())}var k=CKEDITOR.dtd,l={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1},m={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},n=CKEDITOR.tools.extend({},k.$inline);return delete n.br,function(l,o,p,q){var r=l.editor,s=!1;if("unfiltered_html"==o&&(o="html",s=!0),!q.checkReadOnly()){var t=new CKEDITOR.dom.elementPath(q.startContainer,q.root).blockLimit||q.root;l={type:o,dontFilter:s,editable:l,editor:r,range:q,blockLimit:t,mergeCandidates:[],zombies:[]},o=l.range,q=l.mergeCandidates;var u,v;if("text"==l.type&&o.shrink(CKEDITOR.SHRINK_ELEMENT,!0,!1)&&(u=CKEDITOR.dom.element.createFromHtml(" ",o.document),o.insertNode(u),o.setStartAfter(u)),s=new CKEDITOR.dom.elementPath(o.startContainer),l.endPath=t=new CKEDITOR.dom.elementPath(o.endContainer),!o.collapsed){var r=t.block||t.blockLimit,w=o.getCommonAncestor();r&&!r.equals(w)&&!r.contains(w)&&o.checkEndOfBlock()&&l.zombies.push(r),o.deleteContents()}for(;(v=e(o))&&a(v)&&v.isBlockBoundary()&&s.contains(v);)o.moveToPosition(v,CKEDITOR.POSITION_BEFORE_END);for(i(o,l.blockLimit,s,t),u&&(o.setEndBefore(u),o.collapse(),u.remove()),u=o.startPath(),(r=u.contains(f,!1,1))&&(o.splitElement(r),l.inlineStylesRoot=r,l.inlineStylesPeak=u.lastElement),u=o.createBookmark(),(r=u.startNode.getPrevious(d))&&a(r)&&f(r)&&q.push(r),(r=u.startNode.getNext(d))&&a(r)&&f(r)&&q.push(r),r=u.startNode;(r=r.getParent())&&f(r);)q.push(r);if(o.moveToBookmark(u),u=p){if(u=l.range,"text"==l.type&&l.inlineStylesRoot){for(v=l.inlineStylesPeak,o=v.getDocument().createText("{cke-peak}"),q=l.inlineStylesRoot.getParent();!v.equals(q);)o=o.appendTo(v.clone()),v=v.getParent();p=o.getOuterHtml().split("{cke-peak}").join(p)}if(v=l.blockLimit.getName(),/^\s+|\s+$/.test(p)&&"span"in CKEDITOR.dtd[v]){var x=' ';p=x+p+x}if(p=l.editor.dataProcessor.toHtml(p,{context:null,fixForBody:!1,protectedWhitespaces:!!x,dontFilter:l.dontFilter,filter:l.editor.activeFilter,enterMode:l.editor.activeEnterMode}),v=u.document.createElement("body"),v.setHtml(p),x&&(v.getFirst().remove(),v.getLast().remove()),(x=u.startPath().block)&&(1!=x.getChildCount()||!x.getBogus()))a:{var y;if(1==v.getChildCount()&&a(y=v.getFirst())&&y.is(m)&&!y.hasAttribute("contenteditable")){for(x=y.getElementsByTag("*"),u=0,q=x.count();q>u;u++)if(o=x.getItem(u),!o.is(n))break a;y.moveChildren(y.getParent(1)),y.remove()}}l.dataWrapper=v,u=p}if(u){y=l.range,u=y.document;var z;v=l.blockLimit,q=0;var A,B,C,x=[];p=r=0;var D,E;o=y.startContainer;var F,s=l.endPath.elements[0],t=s.getPosition(o),w=!(!s.getCommonAncestor(o)||t==CKEDITOR.POSITION_IDENTICAL||t&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED);for(o=b(l.dataWrapper,l),j(o,y);q0;else{if(z=y.startPath(),!t.isBlock&&g(l.editor,z.block,z.blockLimit)&&(C=h(l.editor))&&(C=u.createElement(C),C.appendBogus(),y.insertNode(C),CKEDITOR.env.needsBrFiller&&(A=C.getBogus())&&A.remove(),y.moveToPosition(C,CKEDITOR.POSITION_BEFORE_END)),(z=y.startPath().block)&&!z.equals(B)&&((A=z.getBogus())&&(A.remove(),x.push(z)),B=z),t.firstNotAllowed&&(r=1),r&&t.isElement){for(z=y.startContainer,D=null;z&&!k[z.getName()][t.name];){if(z.equals(v)){z=null;break}D=z,z=z.getParent()}if(z)D&&(E=y.splitElement(D),l.zombies.push(E),l.zombies.push(D));else{D=v.getName(),F=!q,z=q==o.length-1,D=c(t.node,D);for(var G=[],H=D.length,I=0,J=void 0,K=0,L=-1;H>I;I++)J=D[I]," "==J?(K||F&&!I||(G.push(new CKEDITOR.dom.text(" ")),L=G.length),K=1):(G.push(J),K=0);z&&L==G.length&&G.pop(),F=G}}if(F){for(;z=F.pop();)y.insertNode(z);F=0}else y.insertNode(t.node);t.lastNotAllowed&&qCKEDITOR.env.version&&b.getChildCount()&&b.getFirst().remove())}return function(d){var e=d.startContainer,f=e.getAscendant("table",1),g=!1;c(f.getElementsByTag("td")),c(f.getElementsByTag("th")),f=d.clone(),f.setStart(e,0),f=a(f).lastBackward(),f||(f=d.clone(),f.setEndAt(e,CKEDITOR.POSITION_BEFORE_END),f=a(f).lastForward(),g=!0),f||(f=e),f.is("table")?(d.setStartAt(f,CKEDITOR.POSITION_BEFORE_START),d.collapse(!0),f.remove()):(f.is({tbody:1,thead:1,tfoot:1})&&(f=b(f,"tr",g)),f.is("tr")&&(f=b(f,f.getParent().is("thead")?"th":"td",g)),(e=f.getBogus())&&e.remove(),d.moveToPosition(f,g?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END))}}(),r={eol:{detect:function(a,b){var c=a.range,d=c.clone(),e=c.clone(),f=new CKEDITOR.dom.elementPath(c.startContainer,b),g=new CKEDITOR.dom.elementPath(c.endContainer,b);d.collapse(1),e.collapse(),f.block&&d.checkBoundaryOfElement(f.block,CKEDITOR.END)&&(c.setStartAfter(f.block),a.prependEolBr=1),g.block&&e.checkBoundaryOfElement(g.block,CKEDITOR.START)&&(c.setEndBefore(g.block),a.appendEolBr=1)},fix:function(a,b){var c,d=b.getDocument();a.appendEolBr&&(c=this.createEolBr(d),a.fragment.append(c)),!a.prependEolBr||c&&!c.getPrevious()||a.fragment.append(this.createEolBr(d),1)},createEolBr:function(a){return a.createElement("br",{attributes:{"data-cke-eol":1}})}},bogus:{exclude:function(a){var b=a.range.getBoundaryNodes(),c=b.startNode,b=b.endNode;!b||!n(b)||c&&c.equals(b)||a.range.setEndBefore(b)}},tree:{rebuild:function(a,b){var c,d=a.range,e=d.getCommonAncestor(),f=new CKEDITOR.dom.elementPath(e,b),g=new CKEDITOR.dom.elementPath(d.startContainer,b),d=new CKEDITOR.dom.elementPath(d.endContainer,b);if(e.type==CKEDITOR.NODE_TEXT&&(e=e.getParent()),f.blockLimit.is({tr:1,table:1})){var h=f.contains("table").getParent();c=function(a){return!a.equals(h)}}else if(f.block&&f.block.is(CKEDITOR.dtd.$listItem)&&(g=g.contains(CKEDITOR.dtd.$list),d=d.contains(CKEDITOR.dtd.$list),!g.equals(d))){var i=f.contains(CKEDITOR.dtd.$list).getParent();c=function(a){return!a.equals(i)}}c||(c=function(a){return!a.equals(f.block)&&!a.equals(f.blockLimit)}),this.rebuildFragment(a,b,e,c)},rebuildFragment:function(a,b,c,d){for(var e;c&&!c.equals(b)&&d(c);)e=c.clone(0,1),a.fragment.appendTo(e),a.fragment=e,c=c.getParent()}},cell:{shrink:function(a){a=a.range;var b=a.startContainer,c=a.endContainer,d=a.startOffset,e=a.endOffset;b.type==CKEDITOR.NODE_ELEMENT&&b.equals(c)&&b.is("tr")&&++d==e&&a.shrink(CKEDITOR.SHRINK_TEXT)}}},s=function(){function a(a,b){var c=a.getParent();c.is(CKEDITOR.dtd.$inline)&&a[b?"insertBefore":"insertAfter"](c)}function b(b,c,d){a(c),a(d,1);for(var e;e=d.getNext();)e.insertAfter(c),c=e;m(b)&&b.remove()}function c(a,b){var c=new CKEDITOR.dom.range(a);return c.setStartAfter(b.startNode),c.setEndBefore(b.endNode),c}return{list:{detectMerge:function(a,b){var d=c(b,a.bookmark),e=d.startPath(),f=d.endPath(),g=e.contains(CKEDITOR.dtd.$list),h=f.contains(CKEDITOR.dtd.$list);a.mergeList=g&&h&&g.getParent().equals(h.getParent())&&!g.equals(h),a.mergeListItems=e.block&&f.block&&e.block.is(CKEDITOR.dtd.$listItem)&&f.block.is(CKEDITOR.dtd.$listItem),(a.mergeList||a.mergeListItems)&&(d=d.clone(),d.setStartBefore(a.bookmark.startNode),d.setEndAfter(a.bookmark.endNode),a.mergeListBookmark=d.createBookmark())},merge:function(a,c){if(a.mergeListBookmark){var d=a.mergeListBookmark.startNode,e=a.mergeListBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c); -if(a.mergeList){var h=f.contains(CKEDITOR.dtd.$list),i=g.contains(CKEDITOR.dtd.$list);h.equals(i)||(i.moveChildren(h),i.remove())}a.mergeListItems&&(f=f.contains(CKEDITOR.dtd.$listItem),g=g.contains(CKEDITOR.dtd.$listItem),f.equals(g)||b(g,d,e)),d.remove(),e.remove()}}},block:{detectMerge:function(a,b){if(!a.tableContentsRanges&&!a.mergeListBookmark){var c=new CKEDITOR.dom.range(b);c.setStartBefore(a.bookmark.startNode),c.setEndAfter(a.bookmark.endNode),a.mergeBlockBookmark=c.createBookmark()}},merge:function(a,c){if(a.mergeBlockBookmark&&!a.purgeTableBookmark){var d=a.mergeBlockBookmark.startNode,e=a.mergeBlockBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c),f=f.block,g=g.block;f&&g&&!f.equals(g)&&b(g,d,e),d.remove(),e.remove()}}},table:function(){function a(a){var c,e=[],f=new CKEDITOR.dom.walker(a),g=a.startPath().contains(d),h=a.endPath().contains(d),i={};return f.guard=function(f,j){if(f.type==CKEDITOR.NODE_ELEMENT){var k="visited_"+(j?"out":"in");if(f.getCustomData(k))return;CKEDITOR.dom.element.setMarker(i,f,k,1)}j&&g&&f.equals(g)?(c=a.clone(),c.setEndAt(g,CKEDITOR.POSITION_BEFORE_END),e.push(c)):!j&&h&&f.equals(h)?(c=a.clone(),c.setStartAt(h,CKEDITOR.POSITION_AFTER_START),e.push(c)):((k=!j)&&(k=f.type==CKEDITOR.NODE_ELEMENT&&f.is(d)&&(!g||b(f,g))&&(!h||b(f,h))),k&&(c=a.clone(),c.selectNodeContents(f),e.push(c)))},f.lastForward(),CKEDITOR.dom.element.clearAllMarkers(i),e}function b(a,b){var c=CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED,d=a.getPosition(b);return d===CKEDITOR.POSITION_IDENTICAL?!1:0===(d&c)}var d={td:1,th:1,caption:1};return{detectPurge:function(a){var b=a.range,c=b.clone();c.enlarge(CKEDITOR.ENLARGE_ELEMENT);var c=new CKEDITOR.dom.walker(c),e=0;if(c.evaluator=function(a){a.type==CKEDITOR.NODE_ELEMENT&&a.is(d)&&++e},c.checkForward(),e>1){var c=b.startPath().contains("table"),f=b.endPath().contains("table");c&&f&&b.checkBoundaryOfElement(c,CKEDITOR.START)&&b.checkBoundaryOfElement(f,CKEDITOR.END)&&(b=a.range.clone(),b.setStartBefore(c),b.setEndAfter(f),a.purgeTableBookmark=b.createBookmark())}},detectRanges:function(e,f){var g,h,i=c(f,e.bookmark),j=i.clone(),k=i.getCommonAncestor();k.is(CKEDITOR.dtd.$tableContent)&&!k.is(d)&&(k=k.getAscendant("table",!0)),h=k,k=new CKEDITOR.dom.elementPath(i.startContainer,h),h=new CKEDITOR.dom.elementPath(i.endContainer,h),k=k.contains("table"),h=h.contains("table"),(k||h)&&(k&&h&&b(k,h)?(e.tableSurroundingRange=j,j.setStartAt(k,CKEDITOR.POSITION_AFTER_END),j.setEndAt(h,CKEDITOR.POSITION_BEFORE_START),j=i.clone(),j.setEndAt(k,CKEDITOR.POSITION_AFTER_END),g=i.clone(),g.setStartAt(h,CKEDITOR.POSITION_BEFORE_START),g=a(j).concat(a(g))):k?h||(e.tableSurroundingRange=j,j.setStartAt(k,CKEDITOR.POSITION_AFTER_END),i.setEndAt(k,CKEDITOR.POSITION_AFTER_END)):(e.tableSurroundingRange=j,j.setEndAt(h,CKEDITOR.POSITION_BEFORE_START),i.setStartAt(h,CKEDITOR.POSITION_AFTER_START)),e.tableContentsRanges=g?g:a(i))},deleteRanges:function(a){for(var b;b=a.tableContentsRanges.pop();)b.extractContents(),m(b.startContainer)&&b.startContainer.appendBogus();a.tableSurroundingRange&&a.tableSurroundingRange.extractContents()},purge:function(a){if(a.purgeTableBookmark){var b=a.doc,c=a.range.clone(),b=b.createElement("p");b.insertBefore(a.purgeTableBookmark.startNode),c.moveToBookmark(a.purgeTableBookmark),c.deleteContents(),a.range.moveToPosition(b,CKEDITOR.POSITION_AFTER_START)}}}}(),detectExtractMerge:function(a){return!(a.range.startPath().contains(CKEDITOR.dtd.$listItem)&&a.range.endPath().contains(CKEDITOR.dtd.$listItem))},fixUneditableRangePosition:function(a){a.startContainer.getDtd()["#"]||a.moveToClosestEditablePosition(null,!0)},autoParagraph:function(a,b){var c,d=b.startPath();g(a,d.block,d.blockLimit)&&(c=h(a))&&(c=b.document.createElement(c),c.appendBogus(),b.insertNode(c),b.moveToPosition(c,CKEDITOR.POSITION_AFTER_START))}}}()}(),function(){function a(){var a,b=this._.fakeSelection;b&&(a=this.getSelection(1),a&&a.isHidden()||(b.reset(),b=0)),(b||(b=a||this.getSelection(1),b&&b.getType()!=CKEDITOR.SELECTION_NONE))&&(this.fire("selectionCheck",b),a=this.elementPath(),a.compare(this._.selectionPreviousPath)||(CKEDITOR.env.webkit&&(this._.previousActive=this.document.getActive()),this._.selectionPreviousPath=a,this.fire("selectionChange",{selection:b,path:a})))}function b(){m=!0,l||(c.call(this),l=CKEDITOR.tools.setTimeout(c,200,this))}function c(){l=null,m&&(CKEDITOR.tools.setTimeout(a,0,this),m=!1)}function d(a){return!(!n(a)&&(a.type!=CKEDITOR.NODE_ELEMENT||a.is(CKEDITOR.dtd.$empty)))}function e(a){function b(b,c){return b&&b.type!=CKEDITOR.NODE_TEXT?a.clone()["moveToElementEdit"+(c?"End":"Start")](b):!1}if(!(a.root instanceof CKEDITOR.editable))return!1;var c=a.startContainer,e=a.getPreviousNode(d,null,c),f=a.getNextNode(d,null,c);return!(!b(e)&&!b(f,1)&&(e||f||c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()&&c.getBogus()))}function f(a){g(a,!1);var b=a.getDocument().createText(s);return a.setCustomData("cke-fillingChar",b),b}function g(a,b){var c=a&&a.removeCustomData("cke-fillingChar");if(c){if(!1!==b){var d=a.getDocument().getSelection().getNative(),e=d&&"None"!=d.type&&d.getRangeAt(0),f=s.length;if(c.getLength()>f&&e&&e.intersectsNode(c.$)){var g=[{node:d.anchorNode,offset:d.anchorOffset},{node:d.focusNode,offset:d.focusOffset}];d.anchorNode==c.$&&d.anchorOffset>f&&(g[0].offset-=f),d.focusNode==c.$&&d.focusOffset>f&&(g[1].offset-=f)}}c.setText(h(c.getText(),1)),g&&(c=a.getDocument().$,d=c.getSelection(),c=c.createRange(),c.setStart(g[0].node,g[0].offset),c.collapse(!0),d.removeAllRanges(),d.addRange(c),d.extend(g[1].node,g[1].offset))}}function h(a,b){return b?a.replace(t,function(a,b){return b?" ":""}):a.replace(s,"")}function i(a){var b=CKEDITOR.dom.element.createFromHtml('
         
        ',a.document);a.fire("lockSnapshot"),a.editable().append(b);var c=a.getSelection(1),d=a.createRange(),e=c.root.on("selectionchange",function(a){a.cancel()},null,null,0);d.setStartAt(b,CKEDITOR.POSITION_AFTER_START),d.setEndAt(b,CKEDITOR.POSITION_BEFORE_END),c.selectRanges([d]),e.removeListener(),a.fire("unlockSnapshot"),a._.hiddenSelectionContainer=b}function j(a){var b={37:1,39:1,8:1,46:1};return function(c){var d=c.data.getKeystroke();if(b[d]){var e=a.getSelection().getRanges(),f=e[0];1==e.length&&f.collapsed&&(d=f[38>d?"getPreviousEditableNode":"getNextEditableNode"]())&&d.type==CKEDITOR.NODE_ELEMENT&&"false"==d.getAttribute("contenteditable")&&(a.getSelection().fake(d),c.data.preventDefault(),c.cancel())}}}function k(a){for(var b=0;b=e.getLength()?h.setStartAfter(e):h.setStartBefore(e)),d&&d.type==CKEDITOR.NODE_TEXT&&(g?h.setEndAfter(d):h.setEndBefore(d)),e=new CKEDITOR.dom.walker(h),e.evaluator=function(d){if(d.type==CKEDITOR.NODE_ELEMENT&&d.isReadOnly()){var e=c.clone();return c.setEndBefore(d),c.collapsed&&a.splice(b--,1),d.getPosition(h.endContainer)&CKEDITOR.POSITION_CONTAINS||(e.setStartAfter(d),e.collapsed||a.splice(b+1,0,e)),!0}return!1},e.next()}}return a}var l,m,n=CKEDITOR.dom.walker.invisible(1),o=function(){function a(a){return function(b){var c=b.editor.createRange();return c.moveToClosestEditablePosition(b.selected,a)&&b.editor.getSelection().selectRanges([c]),!1}}function b(a){return function(b){var c,d=b.editor,e=d.createRange();return(c=e.moveToClosestEditablePosition(b.selected,a))||(c=e.moveToClosestEditablePosition(b.selected,!a)),c&&d.getSelection().selectRanges([e]),d.fire("saveSnapshot"),b.selected.remove(),c||(e.moveToElementEditablePosition(d.editable()),d.getSelection().selectRanges([e])),d.fire("saveSnapshot"),!1}}var c=a(),d=a(1);return{37:c,38:c,39:d,40:d,8:b(),46:b(1)}}();CKEDITOR.on("instanceCreated",function(c){function d(){var a=e.getSelection();a&&a.removeAllRanges()}var e=c.editor;e.on("contentDom",function(){function c(){h=new CKEDITOR.dom.selection(e.getSelection()),h.lock()}function d(){k.removeListener("mouseup",d),n.removeListener("mouseup",d);var a=CKEDITOR.document.$.selection,b=a.createRange();"None"!=a.type&&b.parentElement().ownerDocument==i.$&&b.select()}var f,h,i=e.document,k=CKEDITOR.document,l=e.editable(),m=i.getBody(),n=i.getDocumentElement(),o=l.isInline();if(CKEDITOR.env.gecko&&l.attachListener(l,"focus",function(a){a.removeListener(),0!==f&&(a=e.getSelection().getNative())&&a.isCollapsed&&a.anchorNode==l.$&&(a=e.createRange(),a.moveToElementEditStart(l),a.select())},null,null,-2),l.attachListener(l,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){f&&CKEDITOR.env.webkit&&(f=e._.previousActive&&e._.previousActive.equals(i.getActive())),e.unlockSelection(f),f=0},null,null,-1),l.attachListener(l,"mousedown",function(){f=0}),(CKEDITOR.env.ie||o)&&(p?l.attachListener(l,"beforedeactivate",c,null,null,-1):l.attachListener(e,"selectionCheck",c,null,null,-1),l.attachListener(l,CKEDITOR.env.webkit?"DOMFocusOut":"blur",function(){e.lockSelection(h),f=1},null,null,-1),l.attachListener(l,"mousedown",function(){f=0})),CKEDITOR.env.ie&&!o){var q;l.attachListener(l,"mousedown",function(a){2==a.data.$.button&&((a=e.document.getSelection())&&a.getType()!=CKEDITOR.SELECTION_NONE||(q=e.window.getScrollPosition()))}),l.attachListener(l,"mouseup",function(a){2==a.data.$.button&&q&&(e.document.$.documentElement.scrollLeft=q.x,e.document.$.documentElement.scrollTop=q.y),q=null}),"BackCompat"!=i.$.compatMode&&((CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&n.on("mousedown",function(a){function b(a){if(a=a.data.$,d){var b=m.$.createTextRange();try{b.moveToPoint(a.clientX,a.clientY)}catch(c){}d.setEndPoint(0>f.compareEndPoints("StartToStart",b)?"EndToEnd":"StartToStart",b),d.select()}}function c(){n.removeListener("mousemove",b),k.removeListener("mouseup",c),n.removeListener("mouseup",c),d.select()}if(a=a.data,a.getTarget().is("html")&&a.$.yCKEDITOR.env.version&&n.on("mousedown",function(a){a.data.getTarget().is("html")&&(k.on("mouseup",d),n.on("mouseup",d))}))}if(l.attachListener(l,"selectionchange",a,e),l.attachListener(l,"keyup",b,e),l.attachListener(l,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){e.forceNextSelectionCheck(),e.selectionChange(1)}),o&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var r;l.attachListener(l,"mousedown",function(){r=1}),l.attachListener(i.getDocumentElement(),"mouseup",function(){r&&b.call(e),r=0})}else l.attachListener(CKEDITOR.env.ie?l:i.getDocumentElement(),"mouseup",b,e);CKEDITOR.env.webkit&&l.attachListener(i,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:g(l)}},null,null,-1),l.attachListener(l,"keydown",j(e),null,null,-1)}),e.on("setData",function(){e.unlockSelection(),CKEDITOR.env.webkit&&d()}),e.on("contentDomUnload",function(){e.unlockSelection()}),CKEDITOR.env.ie9Compat&&e.on("beforeDestroy",d,null,null,9),e.on("dataReady",function(){delete e._.fakeSelection,delete e._.hiddenSelectionContainer,e.selectionChange(1)}),e.on("loadSnapshot",function(){var a=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT),b=e.editable().getLast(a);b&&b.hasAttribute("data-cke-hidden-sel")&&(b.remove(),CKEDITOR.env.gecko&&(a=e.editable().getFirst(a))&&a.is("br")&&a.getAttribute("_moz_editor_bogus_node")&&a.remove())},null,null,100),e.on("key",function(a){if("wysiwyg"==e.mode){var b=e.getSelection();if(b.isFake){var c=o[a.data.keyCode];if(c)return c({editor:e,selected:b.getSelectedElement(),selection:b,keyEvent:a})}}})}),CKEDITOR.env.webkit&&CKEDITOR.on("instanceReady",function(a){var b=a.editor;b.on("selectionChange",function(){var a=b.editable(),c=a.getCustomData("cke-fillingChar");c&&(c.getCustomData("ready")?g(a):c.setCustomData("ready",1))},null,null,-1),b.on("beforeSetMode",function(){g(b.editable())},null,null,-1),b.on("getSnapshot",function(a){a.data&&(a.data=h(a.data))},b,null,20),b.on("toDataFormat",function(a){a.data.dataValue=h(a.data.dataValue)},null,null,0)}),CKEDITOR.editor.prototype.selectionChange=function(c){(c?a:b).call(this)},CKEDITOR.editor.prototype.getSelection=function(a){return!this._.savedSelection&&!this._.fakeSelection||a?(a=this.editable())&&"wysiwyg"==this.mode?new CKEDITOR.dom.selection(a):null:this._.savedSelection||this._.fakeSelection},CKEDITOR.editor.prototype.lockSelection=function(a){return a=a||this.getSelection(1),a.getType()!=CKEDITOR.SELECTION_NONE?(!a.isLocked&&a.lock(),this._.savedSelection=a,!0):!1},CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;return b?(b.unlock(a),delete this._.savedSelection,!0):!1},CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath},CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)},CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection():new CKEDITOR.dom.selection(this.root);return a.selectRanges([this]),a},CKEDITOR.SELECTION_NONE=1,CKEDITOR.SELECTION_TEXT=2,CKEDITOR.SELECTION_ELEMENT=3;var p="function"!=typeof window.getSelection,q=1;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection){var b=a;a=a.root}var c=a instanceof CKEDITOR.dom.element;if(this.rev=b?b.rev:q++,this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument(),this.root=c?a:this.document.getBody(),this.isLocked=0,this._={cache:{}},b)return CKEDITOR.tools.extend(this._.cache,b._.cache),this.isFake=b.isFake,this.isLocked=b.isLocked,this;a=this.getNative();var d,e;if(a)if(a.getRangeAt)d=(e=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(e.commonAncestorContainer);else{try{e=a.createRange()}catch(f){}d=e&&CKEDITOR.dom.element.get(e.item&&e.item(0)||e.parentElement())}return(!d||d.type!=CKEDITOR.NODE_ELEMENT&&d.type!=CKEDITOR.NODE_TEXT||!this.root.equals(d)&&!this.root.contains(d))&&(this._.cache.type=CKEDITOR.SELECTION_NONE,this._.cache.startElement=null,this._.cache.selectedElement=null,this._.cache.selectedText="",this._.cache.ranges=new CKEDITOR.dom.rangeList),this};var r={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1},s=CKEDITOR.tools.repeat("​",7),t=new RegExp(s+"( )?","g");CKEDITOR.tools.extend(CKEDITOR.dom.selection,{_removeFillingCharSequenceString:h,_createFillingCharSequenceNode:f,FILLING_CHAR_SEQUENCE:s}),CKEDITOR.dom.selection.prototype={getNative:function(){return void 0!==this._.cache.nativeSel?this._.cache.nativeSel:this._.cache.nativeSel=p?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:p?function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_NONE;try{var c=this.getNative(),d=c.type;"Text"==d&&(b=CKEDITOR.SELECTION_TEXT),"Control"==d&&(b=CKEDITOR.SELECTION_ELEMENT),c.createRange().parentElement()&&(b=CKEDITOR.SELECTION_TEXT)}catch(e){}return a.type=b}:function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_TEXT,c=this.getNative();if(c&&c.rangeCount){if(1==c.rangeCount){var c=c.getRangeAt(0),d=c.startContainer;d==c.endContainer&&1==d.nodeType&&1==c.endOffset-c.startOffset&&r[d.childNodes[c.startOffset].nodeName.toLowerCase()]&&(b=CKEDITOR.SELECTION_ELEMENT)}}else b=CKEDITOR.SELECTION_NONE;return a.type=b},getRanges:function(){var a=p?function(){function a(a){return new CKEDITOR.dom.node(a).getIndex()}var b=function(b,c){b=b.duplicate(),b.collapse(c);var d=b.parentElement();if(!d.hasChildNodes())return{container:d,offset:0};for(var e,f,g,h,i=d.children,j=b.duplicate(),k=0,l=i.length-1,m=-1;l>=k;)if(m=Math.floor((k+l)/2),e=i[m],j.moveToElementText(e),g=j.compareEndPoints("StartToStart",b),g>0)l=m-1;else{if(!(0>g))return{container:d,offset:a(e)};k=m+1}if(-1==m||m==i.length-1&&0>g){if(j.moveToElementText(d),j.setEndPoint("StartToStart",b),j=j.text.replace(/(\r\n|\r)/g,"\n").length,i=d.childNodes,!j)return e=i[i.length-1],e.nodeType!=CKEDITOR.NODE_TEXT?{container:d,offset:i.length}:{container:e,offset:e.nodeValue.length};for(d=i.length;j>0&&d>0;)f=i[--d],f.nodeType==CKEDITOR.NODE_TEXT&&(h=f,j-=f.nodeValue.length);return{container:h,offset:-j}}if(j.collapse(g>0),j.setEndPoint(g>0?"StartToStart":"EndToStart",b),j=j.text.replace(/(\r\n|\r)/g,"\n").length,!j)return{container:d,offset:a(e)+(g>0?0:1)};for(;j>0;)try{f=e[g>0?"previousSibling":"nextSibling"],f.nodeType==CKEDITOR.NODE_TEXT&&(j-=f.nodeValue.length,h=f),e=f}catch(n){return{container:d,offset:a(e)}}return{container:h,offset:g>0?-j:h.nodeValue.length+j}};return function(){var a=this.getNative(),c=a&&a.createRange(),d=this.getType();if(!a)return[];if(d==CKEDITOR.SELECTION_TEXT)return a=new CKEDITOR.dom.range(this.root),d=b(c,!0),a.setStart(new CKEDITOR.dom.node(d.container),d.offset),d=b(c),a.setEnd(new CKEDITOR.dom.node(d.container),d.offset),a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse(),[a];if(d==CKEDITOR.SELECTION_ELEMENT){for(var d=[],e=0;eA;++A){var y=x[A],C=CKEDITOR.filter.instances[y.data("cke-filter")];(C?C.check(this):1)&&(w.selectNodeContents(y),c.call(this,w))}if(x=u?!l[u]||v?0:t&&!k?0:b(s,q,i,D):1){if(y=s.getParent(),x=i,z=h,A=g,!y||!(y.getDtd()||CKEDITOR.dtd.span)[z]&&!A||x.parentRule&&!x.parentRule(y))j=!0;else if(m||u&&CKEDITOR.dtd.$removeEmpty[u]&&(s.getPosition(q)|D)!=D||(m=d.clone(),m.setStartBefore(s)),u=s.type,u==CKEDITOR.NODE_TEXT||t||u==CKEDITOR.NODE_ELEMENT&&!s.getChildCount()){for(var F,u=s;(j=!u.getNext(B))&&(F=u.getParent(),l[F.getName()])&&b(F,p,i,E);)u=F;m.setEndAfter(u)}}else j=!0;s=s.getNextSourceNode(v||t)}if(j&&m&&!m.collapsed){for(var G,H,I,j=r(this,f),t=j.hasAttributes(),v=m.getCommonAncestor(),u={},x={},y={},z={};j&&v;){if(v.getName()==h){for(G in i.attributes)!z[G]&&(I=v.getAttribute(H))&&(j.getAttribute(G)==I?x[G]=1:z[G]=1);for(H in i.styles)!y[H]&&(I=v.getStyle(H))&&(j.getStyle(H)==I?u[H]=1:y[H]=1)}v=v.getParent()}for(G in x)j.removeAttribute(G);for(H in u)j.removeStyle(H);t&&!j.hasAttributes()&&(j=null),j?(m.extractContents().appendTo(j),m.insertNode(j),o.call(this,j),j.mergeSiblings(),CKEDITOR.env.ie||j.$.normalize()):(j=new CKEDITOR.dom.element("span"),m.extractContents().appendTo(j),m.insertNode(j),o.call(this,j),j.remove(!0)),m=null}}d.moveToBookmark(n),d.shrink(CKEDITOR.SHRINK_TEXT),d.shrink(CKEDITOR.NODE_ELEMENT,!0)}}function d(a){function b(){for(var a=new CKEDITOR.dom.elementPath(d.getParent()),b=new CKEDITOR.dom.elementPath(j.getParent()),c=null,e=null,f=0;f]*>)[ \t\r\n]*/gi,"$1"),f=f.replace(/([ \t\n\r]+| )/g," "),f=f.replace(/]*>/gi,"\n"),CKEDITOR.env.ie){var g=a.getDocument().createElement("div");g.append(e),e.$.outerHTML="
        "+f+"
        ",e.copyAttributes(g.getFirst()),e=g.getFirst().remove()}else e.setHtml(f);b=e}else f?b=m(c?[a.getHtml()]:k(a),b):a.moveChildren(b);if(b.replace(a),d){var h,c=b;(h=c.getPrevious(C))&&h.type==CKEDITOR.NODE_ELEMENT&&h.is("pre")&&(d=l(h.getHtml(),/\n$/,"")+"\n\n"+l(c.getHtml(),/^\n/,""),CKEDITOR.env.ie?c.$.outerHTML="
        "+d+"
        ":c.setHtml(d),h.remove())}else c&&q(b)}function k(a){var b=[];return l(a.getOuterHtml(),/(\S\s*)\n(?:\s|(]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,c){return b+""+c+"
        "}).replace(/([\s\S]*?)<\/pre>/gi,function(a,c){b.push(c)}),b}function l(a,b,c){var d="",e="";return a=a.replace(/(^]+data-cke-bookmark.*?\/span>)|(]+data-cke-bookmark.*?\/span>$)/gi,function(a,b,c){return b&&(d=b),c&&(e=c),""}),d+a.replace(b,c)+e}function m(a,b){var c;1"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat(" ",a.length-1)+" "});if(c){var f=b.clone();f.setHtml(e),c.append(f)}else b.setHtml(e)}return c||b}function n(a,b){var c,d=this._.definition,e=d.attributes,d=d.styles,f=u(this)[a.getName()],g=CKEDITOR.tools.isEmpty(e)&&CKEDITOR.tools.isEmpty(d);for(c in e)("class"!=c&&!this._.definition.fullMatch||a.getAttribute(c)==v(c,e[c]))&&(b&&"data-"==c.slice(0,5)||(g=a.hasAttribute(c),a.removeAttribute(c)));for(var h in d)this._.definition.fullMatch&&a.getStyle(h)!=v(h,d[h],!0)||(g=g||!!a.getStyle(h),a.removeStyle(h));p(a,f,x[a.getName()]),g&&(this._.definition.alwaysRemoveElement?q(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?q(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function o(a){for(var b,c=u(this),d=a.getElementsByTag(this.element),e=d.count();0<=--e;)b=d.getItem(e),b.isReadOnly()||n.call(this,b,!0);for(var f in c)if(f!=this.element)for(d=a.getElementsByTag(f),e=d.count()-1;e>=0;e--)b=d.getItem(e),b.isReadOnly()||p(b,c[f])}function p(a,b,c){if(b=b&&b.attributes)for(var d=0;d",a||b.name,""),c.join("")},getDefinition:function(){return this._.definition}},CKEDITOR.style.getStyleText=function(a){var b=a._ST;if(b)return b;var b=a.styles,c=a.attributes&&a.attributes.style||"",d="";c.length&&(c=c.replace(z,";"));for(var e in b){var f=b[e],g=(e+":"+f).replace(z,";");"inherit"==f?d+=g:c+=g}return c.length&&(c=CKEDITOR.tools.normalizeCssText(c,!0)),a._ST=c+d},CKEDITOR.style.customHandlers={},CKEDITOR.style.addCustomHandler=function(a){var b=function(a){this._={definition:a},this.setup&&this.setup(a)};return b.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.style.prototype),{assignedTo:CKEDITOR.STYLE_OBJECT},a,!0),this.customHandlers[a.type]=b};var D=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,E=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED}(),CKEDITOR.styleCommand=function(a,b){this.requiredContent=this.allowedContent=this.style=a,CKEDITOR.tools.extend(this,b,!0)},CKEDITOR.styleCommand.prototype.exec=function(a){a.focus(),this.state==CKEDITOR.TRISTATE_OFF?a.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&a.removeStyle(this.style)},CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet"),CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet),CKEDITOR.loadStylesSet=function(a,b,c){CKEDITOR.stylesSet.addExternal(a,b,""),CKEDITOR.stylesSet.load(a,c)},CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(a,b){var c=this._.styleStateChangeCallbacks;c||(c=this._.styleStateChangeCallbacks=[],this.on("selectionChange",function(a){for(var b=0;b"}}),function(){var a,b={},c={};for(a in CKEDITOR.dtd.$blockLimit)a in CKEDITOR.dtd.$list||(b[a]=1);for(a in CKEDITOR.dtd.$block)a in CKEDITOR.dtd.$blockLimit||a in CKEDITOR.dtd.$empty||(c[a]=1);CKEDITOR.dom.elementPath=function(a,d){var e,f=null,g=null,h=[],i=a;d=d||a.getDocument().getBody();do if(i.type==CKEDITOR.NODE_ELEMENT){if(h.push(i),!this.lastElement&&(this.lastElement=i,i.is(CKEDITOR.dtd.$object)||"false"==i.getAttribute("contenteditable")))continue;if(i.equals(d))break;if(!g&&(e=i.getName(),"true"==i.getAttribute("contenteditable")?g=i:!f&&c[e]&&(f=i),b[e])){if(e=!f&&"div"==e){a:{e=i.getChildren();for(var j=0,k=e.count();k>j;j++){var l=e.getItem(j);if(l.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[l.getName()]){e=!0;break a}}e=!1}e=!e}e?f=i:g=i}}while(i=i.getParent());g||(g=d),this.block=f,this.blockLimit=g,this.root=d,this.elements=h}}(),CKEDITOR.dom.elementPath.prototype={compare:function(a){var b=this.elements;if(a=a&&a.elements,!a||b.length!=a.length)return!1;for(var c=0;cb;b++)if(d(e[b]))return e[b];return null},isContextFor:function(a){var b;return a in CKEDITOR.dtd.$block?(b=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit,!!b.getDtd()[a]):!0},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}},CKEDITOR.dom.text=function(a,b){"string"==typeof a&&(a=(b?b.$:document).createTextNode(a)),this.$=a},CKEDITOR.dom.text.prototype=new CKEDITOR.dom.node,CKEDITOR.tools.extend(CKEDITOR.dom.text.prototype,{type:CKEDITOR.NODE_TEXT,getLength:function(){return this.$.nodeValue.length},getText:function(){return this.$.nodeValue},setText:function(a){this.$.nodeValue=a},split:function(a){var b=this.$.parentNode,c=b.childNodes.length,d=this.getLength(),e=this.getDocument(),f=new CKEDITOR.dom.text(this.$.splitText(a),e);return b.childNodes.length==c&&(a>=d?(f=e.createText(""),f.insertAfter(this)):(a=e.createText(""),a.insertAfter(f),a.remove())),f},substring:function(a,b){return"number"!=typeof b?this.$.nodeValue.substr(a):this.$.nodeValue.substring(a,b)}}),function(){function a(a,b,c){var d=a.serializable,e=b[c?"endContainer":"startContainer"],f=c?"endOffset":"startOffset",g=d?b.document.getById(a.startNode):a.startNode;return a=d?b.document.getById(a.endNode):a.endNode,e.equals(g.getPrevious())?(b.startOffset=b.startOffset-e.getLength()-a.getPrevious().getLength(),e=a.getNext()):e.equals(a.getPrevious())&&(b.startOffset-=e.getLength(),e=a.getNext()),e.equals(g.getParent())&&b[f]++,e.equals(a.getParent())&&b[f]++,b[c?"endContainer":"startContainer"]=e,b}CKEDITOR.dom.rangeList=function(a){return a instanceof CKEDITOR.dom.rangeList?a:(a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[],CKEDITOR.tools.extend(a,b))};var b={createIterator:function(){var a,b=this,c=CKEDITOR.dom.walker.bookmark(),d=[];return{getNextRange:function(e){a=void 0===a?0:a+1;var f=b[a];if(f&&1=0;g--)d.unshift(b[g].createBookmark(!0));if(e)for(var h=0;b[a+h+1];){var i=f.document;for(e=0,g=i.getById(d[h].endNode),i=i.getById(d[h+1].startNode);;){if(g=g.getNextSourceNode(!1),i.equals(g))e=1;else if(c(g)||g.type==CKEDITOR.NODE_ELEMENT&&g.isBlockBoundary())continue;break}if(!e)break;h++}for(f.moveToBookmark(d.shift());h--;)g=b[++a],g.moveToBookmark(d.shift()),f.setEnd(g.endContainer,g.endOffset)}return f}}},createBookmarks:function(b){for(var c,d=[],e=0;eb?-1:1}),f=0;fCKEDITOR.env.version?a[g].$.styleSheet.cssText+=f:a[g].$.innerHTML+=f}}var f={};CKEDITOR.skin={path:a,loadPart:function(b,d){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(a()+"skin.js"),function(){c(b,d)}):c(b,d)},getPath:function(a){return CKEDITOR.getUrl(b(a))},icons:{},addIcon:function(a,b,c,d){a=a.toLowerCase(),this.icons[a]||(this.icons[a]={path:b,offset:c||0,bgsize:d||"16px"})},getIconStyle:function(a,b,c,d,e){var f;return a&&(a=a.toLowerCase(),b&&(f=this.icons[a+"-rtl"]),f||(f=this.icons[a])),a=c||f&&f.path||"",d=d||f&&f.offset,e=e||f&&f.bgsize||"16px",a&&(a=a.replace(/'/g,"\\'")),a&&"background-image:url('"+CKEDITOR.getUrl(a)+"');background-position:0 "+d+"px;background-size:"+e+";"}},CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{getUiColor:function(){return this.uiColor},setUiColor:function(a){var b=d(CKEDITOR.document);return(this.setUiColor=function(a){this.uiColor=a;var c=CKEDITOR.skin.chameleon,d="",f="";"function"==typeof c&&(d=c(this,"editor"),f=c(this,"panel")),a=[[i,a]],e([b],d,a),e(h,f,a)}).call(this,a)}});var g="cke_ui_color",h=[],i=/\$color/g;CKEDITOR.on("instanceLoaded",function(a){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var b=a.editor;a=function(a){if(a=(a.data[0]||a.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument(),!a.getById("cke_ui_color")){a=d(a),h.push(a);var c=b.getUiColor();c&&e([a],CKEDITOR.skin.chameleon(b,"panel"),[[i,c]])}},b.on("panelShow",a),b.on("menuShow",a),b.config.uiColor&&b.setUiColor(b.config.uiColor)}})}(),function(){if(CKEDITOR.env.webkit)CKEDITOR.env.hc=!1;else{var a=CKEDITOR.dom.element.createFromHtml('
        ',CKEDITOR.document);a.appendTo(CKEDITOR.document.getHead());try{var b=a.getComputedStyle("border-top-color"),c=a.getComputedStyle("border-right-color");CKEDITOR.env.hc=!(!b||b!=c)}catch(d){CKEDITOR.env.hc=!1}a.remove()}if(CKEDITOR.env.hc&&(CKEDITOR.env.cssClass+=" cke_hc"),CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}"),CKEDITOR.status="loaded",CKEDITOR.fireOnce("loaded"),a=CKEDITOR._.pending)for(delete CKEDITOR._.pending,b=0;bd;d++){var e,f=d;e=parseInt(c[d],16),e=("0"+(0>b?0|e*(1+b):0|e+(255-e)*b).toString(16)).slice(-2),c[f]=e}return"#"+c.join("")}}(),b=function(){var a=new CKEDITOR.template("background:#{to};background-image:linear-gradient(to bottom,{from},{to});filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='{from}',endColorstr='{to}');");return function(b,c){return a.output({from:b,to:c})}}(),c={editor:new CKEDITOR.template("{id}.cke_chrome [border-color:{defaultBorder};] {id} .cke_top [ {defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_bottom [{defaultGradient}border-top-color:{defaultBorder};] {id} .cke_resizer [border-right-color:{ckeResizer}] {id} .cke_dialog_title [{defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_dialog_footer [{defaultGradient}outline-color:{defaultBorder};border-top-color:{defaultBorder};] {id} .cke_dialog_tab [{lightGradient}border-color:{defaultBorder};] {id} .cke_dialog_tab:hover [{mediumGradient}] {id} .cke_dialog_contents [border-top-color:{defaultBorder};] {id} .cke_dialog_tab_selected, {id} .cke_dialog_tab_selected:hover [background:{dialogTabSelected};border-bottom-color:{dialogTabSelectedBorder};] {id} .cke_dialog_body [background:{dialogBody};border-color:{defaultBorder};] {id} .cke_toolgroup [{lightGradient}border-color:{defaultBorder};] {id} a.cke_button_off:hover, {id} a.cke_button_off:focus, {id} a.cke_button_off:active [{mediumGradient}] {id} .cke_button_on [{ckeButtonOn}] {id} .cke_toolbar_separator [background-color: {ckeToolbarSeparator};] {id} .cke_combo_button [border-color:{defaultBorder};{lightGradient}] {id} a.cke_combo_button:hover, {id} a.cke_combo_button:focus, {id} .cke_combo_on a.cke_combo_button [border-color:{defaultBorder};{mediumGradient}] {id} .cke_path_item [color:{elementsPathColor};] {id} a.cke_path_item:hover, {id} a.cke_path_item:focus, {id} a.cke_path_item:active [background-color:{elementsPathBg};] {id}.cke_panel [border-color:{defaultBorder};] "),panel:new CKEDITOR.template(".cke_panel_grouptitle [{lightGradient}border-color:{defaultBorder};] .cke_menubutton_icon [background-color:{menubuttonIcon};] .cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon [background-color:{menubuttonIconHover};] .cke_menuseparator [background-color:{menubuttonIcon};] a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox [border-color:{defaultBorder};] a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore [background-color:{ckeColorauto};border-color:{defaultBorder};] ")};return function(d,e){var f=d.uiColor,f={id:"."+d.id,defaultBorder:a(f,-.1),defaultGradient:b(a(f,.9),f),lightGradient:b(a(f,1),a(f,.7)),mediumGradient:b(a(f,.8),a(f,.5)),ckeButtonOn:b(a(f,.6),a(f,.7)),ckeResizer:a(f,-.4),ckeToolbarSeparator:a(f,.5),ckeColorauto:a(f,.8),dialogBody:a(f,.7),dialogTabSelected:b("#FFFFFF","#FFFFFF"),dialogTabSelectedBorder:"#FFF",elementsPathColor:a(f,-.6),elementsPathBg:f,menubuttonIcon:a(f,.5),menubuttonIconHover:a(f,.3)};return c[e].output(f).replace(/\[/g,"{").replace(/\]/g,"}")}}(),CKEDITOR.plugins.add("dialogui",{onLoad:function(){var a=function(a){this._||(this._={}),this._["default"]=this._.initValue=a["default"]||"",this._.required=a.required||!1;for(var b=[this._],c=1;carguments.length)){var f=a.call(this,c);f.labelId=CKEDITOR.tools.getNextId()+"_label",this._.children=[];var g={role:c.role||"presentation"};c.includeLabel&&(g["aria-labelledby"]=f.labelId),CKEDITOR.ui.dialog.uiElement.call(this,b,c,d,"div",null,g,function(){var a=[],d=c.required?" cke_required":"";return"horizontal"!=c.labelLayout?a.push('",'"):(d={type:"hbox",widths:c.widths,padding:0,children:[{type:"html",html:'"},{type:"html",html:'"+e.call(this,b,c)+""}]},CKEDITOR.dialog._.uiElementBuilders.hbox.build(b,d,a)),a.join("")})}},textInput:function(b,c,d){if(!(3>arguments.length)){a.call(this,c);var e=this._.inputId=CKEDITOR.tools.getNextId()+"_textInput",f={"class":"cke_dialog_ui_input_"+c.type,id:e,type:c.type};c.validate&&(this.validate=c.validate),c.maxLength&&(f.maxlength=c.maxLength),c.size&&(f.size=c.size),c.inputStyle&&(f.style=c.inputStyle);var g=this,i=!1;b.on("load",function(){g.getInputElement().on("keydown",function(a){13==a.data.getKeystroke()&&(i=!0)}),g.getInputElement().on("keyup",function(a){13==a.data.getKeystroke()&&i&&(b.getButton("ok")&&setTimeout(function(){b.getButton("ok").click()},0),i=!1),g.bidi&&h.call(g,a)},null,null,1e3)}),CKEDITOR.ui.dialog.labeledElement.call(this,b,c,d,function(){var a=['"),a.join("")})}},textarea:function(b,c,d){if(!(3>arguments.length)){a.call(this,c);var e=this,f=this._.inputId=CKEDITOR.tools.getNextId()+"_textarea",g={};c.validate&&(this.validate=c.validate),g.rows=c.rows||5,g.cols=c.cols||20,g["class"]="cke_dialog_ui_input_textarea "+(c["class"]||""),"undefined"!=typeof c.inputStyle&&(g.style=c.inputStyle),c.dir&&(g.dir=c.dir),e.bidi&&b.on("load",function(){e.getInputElement().on("keyup",h)},e),CKEDITOR.ui.dialog.labeledElement.call(this,b,c,d,function(){g["aria-labelledby"]=this._.labelId,this._.required&&(g["aria-required"]=this._.required);var a,b=['"),b.join("")})}},checkbox:function(b,c,d){if(!(3>arguments.length)){var e=a.call(this,c,{"default":!!c["default"]});c.validate&&(this.validate=c.validate),CKEDITOR.ui.dialog.uiElement.call(this,b,c,d,"span",null,null,function(){var a=CKEDITOR.tools.extend({},c,{id:c.id?c.id+"_checkbox":CKEDITOR.tools.getNextId()+"_checkbox"},!0),d=[],f=CKEDITOR.tools.getNextId()+"_label",h={"class":"cke_dialog_ui_checkbox_input",type:"checkbox","aria-labelledby":f};return g(a),c["default"]&&(h.checked="checked"),"undefined"!=typeof a.inputStyle&&(a.style=a.inputStyle),e.checkbox=new CKEDITOR.ui.dialog.uiElement(b,a,d,"input",null,h),d.push(' "),d.join("")})}},radio:function(b,c,d){if(!(3>arguments.length)){a.call(this,c),this._["default"]||(this._["default"]=this._.initValue=c.items[0][1]),c.validate&&(this.validate=c.validate);var e=[],f=this;c.role="radiogroup",c.includeLabel=!0,CKEDITOR.ui.dialog.labeledElement.call(this,b,c,d,function(){for(var a=[],d=[],h=(c.id?c.id:CKEDITOR.tools.getNextId())+"_radio",i=0;i'+CKEDITOR.tools.htmlEncode(c.label)+"")}},select:function(b,c,d){if(!(3>arguments.length)){var e=a.call(this,c);c.validate&&(this.validate=c.validate),e.inputId=CKEDITOR.tools.getNextId()+"_select",CKEDITOR.ui.dialog.labeledElement.call(this,b,c,d,function(){var a=CKEDITOR.tools.extend({},c,{id:c.id?c.id+"_select":CKEDITOR.tools.getNextId()+"_select"},!0),d=[],f=[],h={id:e.inputId,"class":"cke_dialog_ui_input_select","aria-labelledby":this._.labelId};d.push('"),d.join("")})}},file:function(b,c,d){if(!(3>arguments.length)){void 0===c["default"]&&(c["default"]="");var e=CKEDITOR.tools.extend(a.call(this,c),{definition:c,buttons:[]});c.validate&&(this.validate=c.validate),b.on("load",function(){CKEDITOR.document.getById(e.frameId).getParent().addClass("cke_dialog_ui_input_file")}),CKEDITOR.ui.dialog.labeledElement.call(this,b,c,d,function(){e.frameId=CKEDITOR.tools.getNextId()+"_fileInput";var a=[''),a.join("")})}},fileButton:function(b,c,d){var e=this;if(!(3>arguments.length)){a.call(this,c),c.validate&&(this.validate=c.validate);var f=CKEDITOR.tools.extend({},c),g=f.onClick;f.className=(f.className?f.className+" ":"")+"cke_dialog_ui_button",f.onClick=function(a){var d=c["for"];g&&!1===g.call(this,a)||(b.getContentElement(d[0],d[1]).submit(),this.disable())},b.on("load",function(){b.getContentElement(c["for"][0],c["for"][1])._.buttons.push(e)}),CKEDITOR.ui.dialog.button.call(this,b,f,d)}},html:function(){var a=/^\s*<[\w:]+\s+([^>]*)?>/,b=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,c=/\/$/;return function(d,e,f){if(!(3>arguments.length)){var g=[],h=e.html;"<"!=h.charAt(0)&&(h=""+h+"");var i=e.focus;if(i){var j=this.focus;this.focus=function(){("function"==typeof i?i:j).call(this),this.fire("focus")},e.isFocusable&&(this.isFocusable=this.isFocusable),this.keyboardFocusable=!0}CKEDITOR.ui.dialog.uiElement.call(this,d,e,g,"span",null,null,""),g=g.join("").match(a),h=h.match(b)||["","",""],c.test(h[1])&&(h[1]=h[1].slice(0,-1),h[2]="/"+h[2]),f.push([h[1]," ",g[1]||"",h[2]].join(""))}}}(),fieldset:function(a,b,c,d,e){var f=e.label;this._={children:b},CKEDITOR.ui.dialog.uiElement.call(this,a,e,d,"fieldset",null,null,function(){var a=[];f&&a.push(""+f+"");for(var b=0;bb.getChildCount()?new CKEDITOR.dom.text(a,CKEDITOR.document).appendTo(b):b.getChild(0).$.nodeValue=a,this},getLabel:function(){var a=CKEDITOR.document.getById(this._.labelId);return!a||1>a.getChildCount()?"":a.getChild(0).getText()},eventProcessors:e},!0),CKEDITOR.ui.dialog.button.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{click:function(){return this._.disabled?!1:this.fire("click",{dialog:this._.dialog})},enable:function(){this._.disabled=!1;var a=this.getElement();a&&a.removeClass("cke_disabled")},disable:function(){this._.disabled=!0,this.getElement().addClass("cke_disabled")},isVisible:function(){return this.getElement().getFirst().isVisible()},isEnabled:function(){return!this._.disabled},eventProcessors:CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{ -onClick:function(a,b){this.on("click",function(){b.apply(this,arguments)})}},!0),accessKeyUp:function(){this.click()},accessKeyDown:function(){this.focus()},keyboardFocusable:!0},!0),CKEDITOR.ui.dialog.textInput.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return CKEDITOR.document.getById(this._.inputId)},focus:function(){var a=this.selectParentTab();setTimeout(function(){var b=a.getInputElement();b&&b.$.focus()},0)},select:function(){var a=this.selectParentTab();setTimeout(function(){var b=a.getInputElement();b&&(b.$.focus(),b.$.select())},0)},accessKeyUp:function(){this.select()},setValue:function(a){if(this.bidi){var b=a&&a.charAt(0);(b="‪"==b?"ltr":"‫"==b?"rtl":null)&&(a=a.slice(1)),this.setDirectionMarker(b)}return a||(a=""),CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply(this,arguments)},getValue:function(){var a=CKEDITOR.ui.dialog.uiElement.prototype.getValue.call(this);if(this.bidi&&a){var b=this.getDirectionMarker();b&&(a=("ltr"==b?"‪":"‫")+a)}return a},setDirectionMarker:function(a){var b=this.getInputElement();a?b.setAttributes({dir:a,"data-cke-dir-marker":a}):this.getDirectionMarker()&&b.removeAttributes(["dir","data-cke-dir-marker"])},getDirectionMarker:function(){return this.getInputElement().data("cke-dir-marker")},keyboardFocusable:!0},d,!0),CKEDITOR.ui.dialog.textarea.prototype=new CKEDITOR.ui.dialog.textInput,CKEDITOR.ui.dialog.select.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return this._.select.getElement()},add:function(a,b,c){var d=new CKEDITOR.dom.element("option",this.getDialog().getParentEditor().document),e=this.getInputElement().$;return d.$.text=a,d.$.value=void 0===b||null===b?a:b,void 0===c||null===c?CKEDITOR.env.ie?e.add(d.$):e.add(d.$,null):e.add(d.$,c),this},remove:function(a){return this.getInputElement().$.remove(a),this},clear:function(){for(var a=this.getInputElement().$;0','
        "].join("")),c.$.close(),a=0;ab-a;c--)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function b(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId),c=b+1;b+a>c;c++)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function c(a,b){for(var c=a.$.getElementsByTagName("input"),d=0,e=c.length;e>d;d++){var f=new CKEDITOR.dom.element(c[d]);"text"==f.getAttribute("type").toLowerCase()&&(b?(f.setAttribute("value",f.getCustomData("fake_value")||""),f.removeCustomData("fake_value")):(f.setCustomData("fake_value",f.getAttribute("value")),f.setAttribute("value","")))}}function d(a,b){var c=this.getInputElement();c&&(a?c.removeAttribute("aria-invalid"):c.setAttribute("aria-invalid",!0)),a||(this.select?this.select():this.focus()),b&&alert(b),this.fire("validated",{valid:a,msg:b})}function e(){var a=this.getInputElement();a&&a.removeAttribute("aria-invalid")}function f(a){var b=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",p).output({id:CKEDITOR.tools.getNextNumber(),editorId:a.id,langDir:a.lang.dir,langCode:a.langCode,editorDialogClass:"cke_editor_"+a.name.replace(/\./g,"\\.")+"_dialog",closeTitle:a.lang.common.close,hidpi:CKEDITOR.env.hidpi?"cke_hidpi":""})),c=b.getChild([0,0,0,0,0]),d=c.getChild(0),e=c.getChild(1);return a.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(c),!CKEDITOR.env.ie||CKEDITOR.env.quirks||CKEDITOR.env.edge||(a="javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())",CKEDITOR.dom.element.createFromHtml('').appendTo(c.getParent())),d.unselectable(),e.unselectable(),{element:b,parts:{dialog:b.getChild(0),title:d,close:e,tabs:c.getChild(2),contents:c.getChild([3,0,0,0]),footer:c.getChild([3,0,1,0])}}}function g(a,b,c){this.element=b,this.focusIndex=c,this.tabIndex=0,this.isFocusable=function(){return!b.getAttribute("disabled")&&b.isVisible()},this.focus=function(){a._.currentFocusIndex=this.focusIndex,this.element.focus()},b.on("keydown",function(a){a.data.getKeystroke()in{32:1,13:1}&&this.fire("click")}),b.on("focus",function(){this.fire("mouseover")}),b.on("blur",function(){this.fire("mouseout")})}function h(a){function b(){a.layout()}var c=CKEDITOR.document.getWindow();c.on("resize",b),a.on("hide",function(){c.removeListener("resize",b)})}function i(a,b){this._={dialog:a},CKEDITOR.tools.extend(this,b)}function j(a){function b(b){var c=a.getSize(),i=CKEDITOR.document.getWindow().getViewPaneSize(),j=b.data.$.screenX,k=b.data.$.screenY,l=j-d.x,m=k-d.y;d={x:j,y:k},e.x+=l,e.y+=m,a.move(e.x+h[3]i.width-c.width-g?i.width-c.width+("rtl"==f.lang.dir?0:h[1]):e.x,e.y+h[0]i.height-c.height-g?i.height-c.height+h[2]:e.y,1),b.data.preventDefault()}function c(){if(CKEDITOR.document.removeListener("mousemove",b),CKEDITOR.document.removeListener("mouseup",c),CKEDITOR.env.ie6Compat){var a=w.getChild(0).getFrameDocument();a.removeListener("mousemove",b),a.removeListener("mouseup",c)}}var d=null,e=null,f=a.getParentEditor(),g=f.config.dialog_magnetDistance,h=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof g&&(g=20),a.parts.title.on("mousedown",function(f){if(d={x:f.data.$.screenX,y:f.data.$.screenY},CKEDITOR.document.on("mousemove",b),CKEDITOR.document.on("mouseup",c),e=a.getPosition(),CKEDITOR.env.ie6Compat){var g=w.getChild(0).getFrameDocument();g.on("mousemove",b),g.on("mouseup",c)}f.data.preventDefault()},a)}function k(a){function b(b){var c="rtl"==l.lang.dir,k=j.width,m=j.height,n=k+(b.data.$.screenX-i.x)*(c?-1:1)*(a._.moved?1:2),o=m+(b.data.$.screenY-i.y)*(a._.moved?1:2),p=a._.element.getFirst(),p=c&&p.getComputedStyle("right"),q=a.getPosition();q.y+o>h.height&&(o=h.height-q.y),(c?p:q.x)+n>h.width&&(n=h.width-(c?p:q.x)),e!=CKEDITOR.DIALOG_RESIZE_WIDTH&&e!=CKEDITOR.DIALOG_RESIZE_BOTH||(k=Math.max(d.minWidth||0,n-f)),e!=CKEDITOR.DIALOG_RESIZE_HEIGHT&&e!=CKEDITOR.DIALOG_RESIZE_BOTH||(m=Math.max(d.minHeight||0,o-g)),a.resize(k,m),a._.moved||a.layout(),b.data.preventDefault()}function c(){if(CKEDITOR.document.removeListener("mouseup",c),CKEDITOR.document.removeListener("mousemove",b),k&&(k.remove(),k=null),CKEDITOR.env.ie6Compat){var a=w.getChild(0).getFrameDocument();a.removeListener("mouseup",c),a.removeListener("mousemove",b)}}var d=a.definition,e=d.resizable;if(e!=CKEDITOR.DIALOG_RESIZE_NONE){var f,g,h,i,j,k,l=a.getParentEditor(),m=CKEDITOR.tools.addFunction(function(d){j=a.getSize();var e=a.parts.contents;e.$.getElementsByTagName("iframe").length&&(k=CKEDITOR.dom.element.createFromHtml('
        '),e.append(k)),g=j.height-a.parts.contents.getSize("height",!(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.quirks)),f=j.width-a.parts.contents.getSize("width",1),i={x:d.screenX,y:d.screenY},h=CKEDITOR.document.getWindow().getViewPaneSize(),CKEDITOR.document.on("mousemove",b),CKEDITOR.document.on("mouseup",c),CKEDITOR.env.ie6Compat&&(e=w.getChild(0).getFrameDocument(),e.on("mousemove",b),e.on("mouseup",c)),d.preventDefault&&d.preventDefault()});a.on("load",function(){var b="";e==CKEDITOR.DIALOG_RESIZE_WIDTH?b=" cke_resizer_horizontal":e==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(b=" cke_resizer_vertical"),b=CKEDITOR.dom.element.createFromHtml('
        '+("ltr"==l.lang.dir?"◢":"◣")+"
        "),a.parts.footer.append(b,1)}),l.on("destroy",function(){CKEDITOR.tools.removeFunction(m)})}}function l(a){a.data.preventDefault(1)}function m(a){var b=CKEDITOR.document.getWindow(),c=a.config,d=c.dialog_backgroundCoverColor||"white",e=c.dialog_backgroundCoverOpacity,f=c.baseFloatZIndex,c=CKEDITOR.tools.genKey(d,e,f),g=x[c];g?g.show():(f=['
        '],CKEDITOR.env.ie6Compat&&(d="",f.push('')),f.push("
        "),g=CKEDITOR.dom.element.createFromHtml(f.join("")),g.setOpacity(void 0!==e?e:.5),g.on("keydown",l),g.on("keypress",l),g.on("keyup",l),g.appendTo(CKEDITOR.document.getBody()),x[c]=g),a.focusManager.add(g),w=g,a=function(){var a=b.getViewPaneSize();g.setStyles({width:a.width+"px",height:a.height+"px"})};var h=function(){var a=b.getScrollPosition(),c=CKEDITOR.dialog._.currentTop;if(g.setStyles({left:a.x+"px",top:a.y+"px"}),c)do a=c.getPosition(),c.move(a.x,a.y);while(c=c._.parentDialog)};if(v=a,b.on("resize",a),a(),CKEDITOR.env.mac&&CKEDITOR.env.webkit||g.focus(),CKEDITOR.env.ie6Compat){var i=function(){h(),arguments.callee.prevScrollHandler.apply(this,arguments)};b.$.setTimeout(function(){i.prevScrollHandler=window.onscroll||function(){},window.onscroll=i},0),h()}}function n(a){w&&(a.focusManager.remove(w),a=CKEDITOR.document.getWindow(),w.hide(),a.removeListener("resize",v),CKEDITOR.env.ie6Compat&&a.$.setTimeout(function(){window.onscroll=window.onscroll&&window.onscroll.prevScrollHandler||null},0),v=null)}var o=CKEDITOR.tools.cssLength,p='';CKEDITOR.dialog=function(c,g){function h(){var a=x._.focusList;a.sort(function(a,b){return a.tabIndex!=b.tabIndex?b.tabIndex-a.tabIndex:a.focusIndex-b.focusIndex});for(var b=a.length,c=0;b>c;c++)a[c].focusIndex=c}function i(a){var b=x._.focusList;if(a=a||0,!(1>b.length)){var c=x._.currentFocusIndex;x._.tabBarMode&&0>a&&(c=0);try{b[c].getInputElement().$.blur()}catch(d){}var e=c,f=10?b:0)+"px"},b[e?"right":"left"]=(a>0?a:0)+"px",d.setStyles(b),c&&(this._.moved=1))},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,b=this.definition;a.getParent()&&a.getParent().equals(CKEDITOR.document.getBody())?a.setStyle("display","block"):a.appendTo(CKEDITOR.document.getBody()),this.resize(this._.contentSize&&this._.contentSize.width||b.width||b.minWidth,this._.contentSize&&this._.contentSize.height||b.height||b.minHeight),this.reset(),this.selectPage(this.definition.contents[0].id),null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex),this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10),null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,m(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,this._.parentDialog.getElement().getFirst().$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2),CKEDITOR.dialog._.currentTop=this),a.on("keydown",z),a.on("keyup",A),this._.hasFocus=!1;for(var c in b.contents)if(b.contents[c]){var a=b.contents[c],d=this._.tabs[a.id],e=a.requiredContent,f=0;if(d){for(var g in this._.contents[a.id]){var i=this._.contents[a.id][g];"hbox"!=i.type&&"vbox"!=i.type&&i.getInputElement()&&(i.requiredContent&&!this._.editor.activeFilter.check(i.requiredContent)?i.disable():(i.enable(),f++))}!f||e&&!this._.editor.activeFilter.check(e)?d[0].addClass("cke_dialog_tab_disabled"):d[0].removeClass("cke_dialog_tab_disabled")}}CKEDITOR.tools.setTimeout(function(){this.layout(),h(this),this.parts.dialog.setStyle("visibility",""),this.fireOnce("load",{}),CKEDITOR.ui.fire("ready",this),this.fire("show",{}),this._.editor.fire("dialogShow",this),this._.parentDialog||this._.editor.focusManager.lock(),this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},layout:function(){var a=this.parts.dialog,b=this.getSize(),c=CKEDITOR.document.getWindow().getViewPaneSize(),d=(c.width-b.width)/2,e=(c.height-b.height)/2;CKEDITOR.env.ie6Compat||(b.height+(e>0?e:0)>c.height||b.width+(d>0?d:0)>c.width?a.setStyle("position","absolute"):a.setStyle("position","fixed")),this.move(this._.moved?this._.position.x:d,this._.moved?this._.position.y:e)},foreach:function(a){for(var b in this._.contents)for(var c in this._.contents[b])a.call(this,this._.contents[b][c]);return this},reset:function(){var a=function(a){a.reset&&a.reset(1)};return function(){return this.foreach(a),this}}(),setupContent:function(){var a=arguments;this.foreach(function(b){b.setup&&b.setup.apply(b,a)})},commitContent:function(){var a=arguments;this.foreach(function(b){CKEDITOR.env.ie&&this._.currentFocusIndex==b.focusIndex&&b.getInputElement().$.blur(),b.commit&&b.commit.apply(b,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{}),this._.editor.fire("dialogHide",this),this.selectPage(this._.tabIdList[0]);var a=this._.element;for(a.setStyle("display","none"),this.parts.dialog.setStyle("visibility","hidden"),C(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst();b.setStyle("z-index",parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else n(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=10;else{CKEDITOR.dialog._.currentZIndex=null,a.removeListener("keydown",z),a.removeListener("keyup",A);var c=this._.editor;c.focus(),setTimeout(function(){c.focusManager.unlock(),CKEDITOR.env.iOS&&c.window.focus()},0)}delete this._.parentDialog,this.foreach(function(a){a.resetInitValue&&a.resetInitValue()}),this.setState(CKEDITOR.DIALOG_STATE_IDLE)}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var b=[],c=a.label?' title="'+CKEDITOR.tools.htmlEncode(a.label)+'"':"",d=CKEDITOR.dialog._.uiElementBuilders.vbox.build(this,{type:"vbox",className:"cke_dialog_page_contents",children:a.elements,expand:!!a.expand,padding:a.padding,style:a.style||"width: 100%;"},b),e=this._.contents[a.id]={},f=d.getChild(),g=0;d=f.shift();)d.notAllowed||"hbox"==d.type||"vbox"==d.type||g++,e[d.id]=d,"function"==typeof d.getChild&&f.push.apply(f,d.getChild());g||(a.hidden=!0),b=CKEDITOR.dom.element.createFromHtml(b.join("")),b.setAttribute("role","tabpanel"),d=CKEDITOR.env,e="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber(),c=CKEDITOR.dom.element.createFromHtml(['"].join("")),b.setAttribute("aria-labelledby",e),this._.tabs[a.id]=[c,b],this._.tabIdList.push(a.id),!a.hidden&&this._.pageCount++,this._.lastTab=c,this.updateStyle(),b.setAttribute("name",a.id),b.appendTo(this.parts.contents),c.unselectable(),this.parts.tabs.append(c),a.accessKey&&(B(this,this,"CTRL+"+a.accessKey,E,D),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!this._.tabs[a][0].hasClass("cke_dialog_tab_disabled")&&!1!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var b in this._.tabs){var d=this._.tabs[b][0],e=this._.tabs[b][1];b!=a&&(d.removeClass("cke_dialog_tab_selected"),e.hide()),e.setAttribute("aria-hidden",b!=a)}var f=this._.tabs[a];f[0].addClass("cke_dialog_tab_selected"),CKEDITOR.env.ie6Compat||CKEDITOR.env.ie7Compat?(c(f[1]),f[1].show(),setTimeout(function(){c(f[1],1)},0)):f[1].show(),this._.currentTabId=a,this._.currentTabIndex=CKEDITOR.tools.indexOf(this._.tabIdList,a)}},updateStyle:function(){this.parts.dialog[(1===this._.pageCount?"add":"remove")+"Class"]("cke_single_page")},hidePage:function(b){var c=this._.tabs[b]&&this._.tabs[b][0];c&&1!=this._.pageCount&&c.isVisible()&&(b==this._.currentTabId&&this.selectPage(a.call(this)),c.hide(),this._.pageCount--,this.updateStyle())},showPage:function(a){(a=this._.tabs[a]&&this._.tabs[a][0])&&(a.show(),this._.pageCount++,this.updateStyle())},getElement:function(){return this._.element},getName:function(){return this._.name},getContentElement:function(a,b){var c=this._.contents[a];return c&&c[b]},getValueOf:function(a,b){return this.getContentElement(a,b).getValue()},setValueOf:function(a,b,c){return this.getContentElement(a,b).setValue(c)},getButton:function(a){return this._.buttons[a]},click:function(a){return this._.buttons[a].click()},disableButton:function(a){return this._.buttons[a].disable()},enableButton:function(a){return this._.buttons[a].enable()},getPageCount:function(){return this._.pageCount},getParentEditor:function(){return this._.editor},getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement()},addFocusable:function(a,b){if("undefined"==typeof b)b=this._.focusList.length,this._.focusList.push(new g(this,a,b));else{this._.focusList.splice(b,0,new g(this,a,b));for(var c=b+1;c=0;d--)c[d].dialog!=a&&c[d].uiElement!=a||c.splice(d,1);0===c.length&&delete y[b]}},D=function(a,b){a._.accessKeyMap[b]&&a.selectPage(a._.accessKeyMap[b])},E=function(){};!function(){CKEDITOR.ui.dialog={uiElement:function(a,b,c,d,e,f,g){if(!(4>arguments.length)){var h=(d.call?d(b):d)||"div",i=["<",h," "],j=(e&&e.call?e(b):e)||{},k=(f&&f.call?f(b):f)||{},l=(g&&g.call?g.call(this,a,b):g)||"",m=this.domId=k.id||CKEDITOR.tools.getNextId()+"_uiElement";b.requiredContent&&!a.getParentEditor().filter.check(b.requiredContent)&&(j.display="none",this.notAllowed=!0),k.id=m;var n={};b.type&&(n["cke_dialog_ui_"+b.type]=1),b.className&&(n[b.className]=1),b.disabled&&(n.cke_disabled=1);for(var o=k["class"]&&k["class"].split?k["class"].split(" "):[],m=0;m=0;m--)""===n[m]&&n.splice(m,1);0",l,""),c.push(i.join("")),(this._||(this._={})).dialog=a,"boolean"==typeof b.isChanged&&(this.isChanged=function(){return b.isChanged}),"function"==typeof b.isChanged&&(this.isChanged=b.isChanged),"function"==typeof b.setValue&&(this.setValue=CKEDITOR.tools.override(this.setValue,function(a){return function(c){a.call(this,b.setValue.call(this,c))}})),"function"==typeof b.getValue&&(this.getValue=CKEDITOR.tools.override(this.getValue,function(a){return function(){return b.getValue.call(this,a.call(this))}})),CKEDITOR.event.implementOn(this),this.registerEvents(b),this.accessKeyUp&&this.accessKeyDown&&b.accessKey&&B(this,a,"CTRL+"+b.accessKey);var p=this;a.on("load",function(){var b=p.getInputElement();if(b){var c=p.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?"cke_dialog_ui_focused":"";b.on("focus",function(){a._.tabBarMode=!1,a._.hasFocus=!0,p.fire("focus"),c&&this.addClass(c)}),b.on("blur",function(){p.fire("blur"),c&&this.removeClass(c)})}}),CKEDITOR.tools.extend(this,b),this.keyboardFocusable&&(this.tabIndex=b.tabIndex||0,this.focusIndex=a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=p.focusIndex}))}},hbox:function(a,b,c,d,e){if(!(4>arguments.length)){this._||(this._={});var f,g=this._.children=b,h=e&&e.widths||null,i=e&&e.height||null,j={role:"presentation"};e&&e.align&&(j.align=e.align),CKEDITOR.ui.dialog.uiElement.call(this,a,e||{type:"hbox"},d,"table",{},j,function(){var a=[''];for(f=0;f",c[f],"")}return a.push(""),a.join("")})}},vbox:function(a,b,c,d,e){if(!(3>arguments.length)){this._||(this._={});var f=this._.children=b,g=e&&e.width||null,h=e&&e.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,e||{type:"vbox"},d,"div",null,{role:"presentation"},function(){var b=['");for(var d=0;d")}return b.push("
        "),b.join("")})}}}}(),CKEDITOR.ui.dialog.uiElement.prototype={getElement:function(){return CKEDITOR.document.getById(this.domId)},getInputElement:function(){return this.getElement()},getDialog:function(){return this._.dialog},setValue:function(a,b){return this.getInputElement().setValue(a),!b&&this.fire("change",{value:a}),this},getValue:function(){return this.getInputElement().getValue()},isChanged:function(){return!1},selectParentTab:function(){for(var a=this.getInputElement();(a=a.getParent())&&-1==a.$.className.search("cke_dialog_page_contents"););return a?(a=a.getAttribute("name"),this._.dialog._.currentTabId!=a&&this._.dialog.selectPage(a),this):this},focus:function(){return this.selectParentTab().getInputElement().focus(),this},registerEvents:function(a){var b,c,d=/^on([A-Z]\w+)/,e=function(a,b,c,d){b.on("load",function(){a.getInputElement().on(c,d,a)})};for(c in a)(b=c.match(d))&&(this.eventProcessors[c]?this.eventProcessors[c].call(this,this._.dialog,a[c]):e(this,this._.dialog,b[1].toLowerCase(),a[c]));return this},eventProcessors:{onLoad:function(a,b){a.on("load",b,this)},onShow:function(a,b){a.on("show",b,this)},onHide:function(a,b){a.on("hide",b,this)}},accessKeyDown:function(){this.focus()},accessKeyUp:function(){},disable:function(){var a=this.getElement();this.getInputElement().setAttribute("disabled","true"),a.addClass("cke_disabled")},enable:function(){var a=this.getElement();this.getInputElement().removeAttribute("disabled"),a.removeClass("cke_disabled")},isEnabled:function(){return!this.getElement().hasClass("cke_disabled")},isVisible:function(){return this.getInputElement().isVisible()},isFocusable:function(){return!(!this.isEnabled()||!this.isVisible())}},CKEDITOR.ui.dialog.hbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getChild:function(a){return 1>arguments.length?this._.children.concat():(a.splice||(a=[a]),2>a.length?this._.children[a[0]]:this._.children[a[0]]&&this._.children[a[0]].getChild?this._.children[a[0]].getChild(a.slice(1,a.length)):null)}},!0),CKEDITOR.ui.dialog.vbox.prototype=new CKEDITOR.ui.dialog.hbox,function(){var a={build:function(a,b,c){for(var d,e=b.children,f=[],g=[],h=0;h=700}]],italic:["em","i",["span",function(a){return"italic"==a.styles["font-style"]}]],underline:["u",["span",function(a){return"underline"==a.styles["text-decoration"]}]],strike:["s","strike",["span",function(a){return"line-through"==a.styles["text-decoration"]}]],subscript:["sub"],superscript:["sup"]},e=a.config,f=a.lang.basicstyles;c("Bold",f.bold,"bold",e.coreStyles_bold),c("Italic",f.italic,"italic",e.coreStyles_italic),c("Underline",f.underline,"underline",e.coreStyles_underline),c("Strike",f.strike,"strike",e.coreStyles_strike),c("Subscript",f.subscript,"subscript",e.coreStyles_subscript),c("Superscript",f.superscript,"superscript",e.coreStyles_superscript),a.setKeystroke([[CKEDITOR.CTRL+66,"bold"],[CKEDITOR.CTRL+73,"italic"],[CKEDITOR.CTRL+85,"underline"]])}}),CKEDITOR.config.coreStyles_bold={element:"strong",overrides:"b"},CKEDITOR.config.coreStyles_italic={element:"em",overrides:"i"},CKEDITOR.config.coreStyles_underline={element:"u"},CKEDITOR.config.coreStyles_strike={element:"s",overrides:"strike"},CKEDITOR.config.coreStyles_subscript={element:"sub"},CKEDITOR.config.coreStyles_superscript={element:"sup"},function(){var a={exec:function(a){var b=a.getCommand("blockquote").state,c=a.getSelection(),d=c&&c.getRanges()[0];if(d){var e=c.createBookmarks();if(CKEDITOR.env.ie){var f,g=e[0].startNode,h=e[0].endNode;if(g&&"blockquote"==g.getParent().getName())for(f=g;f=f.getNext();)if(f.type==CKEDITOR.NODE_ELEMENT&&f.isBlockBoundary()){g.move(f,!0);break}if(h&&"blockquote"==h.getParent().getName())for(f=h;f=f.getPrevious();)if(f.type==CKEDITOR.NODE_ELEMENT&&f.isBlockBoundary()){h.move(f);break}}var i=d.createIterator();if(i.enlargeBr=a.config.enterMode!=CKEDITOR.ENTER_BR,b==CKEDITOR.TRISTATE_OFF){for(g=[];b=i.getNextParagraph();)g.push(b);for(1>g.length&&(b=a.document.createElement(a.config.enterMode==CKEDITOR.ENTER_P?"p":"div"),h=e.shift(),d.insertNode(b),b.append(new CKEDITOR.dom.text("\ufeff",a.document)),d.moveToBookmark(h),d.selectNodeContents(b),d.collapse(!0),h=d.createBookmark(),g.push(b),e.unshift(h)),f=g[0].getParent(),d=[],h=0;h=0;h--){d=g[h];a:{f=d;for(var i=0,j=f.getChildCount(),k=void 0;j>i&&(k=f.getChild(i));i++)if(k.type==CKEDITOR.NODE_ELEMENT&&k.isBlockBoundary()){f=!1;break a}f=!0}f&&d.remove()}if(a.config.enterMode==CKEDITOR.ENTER_BR)for(d=!0;b.length;)if(i=b.shift(),"div"==i.getName()){for(h=new CKEDITOR.dom.documentFragment(a.document),!d||!i.getPrevious()||i.getPrevious().type==CKEDITOR.NODE_ELEMENT&&i.getPrevious().isBlockBoundary()||h.append(a.document.createElement("br")),d=i.getNext()&&!(i.getNext().type==CKEDITOR.NODE_ELEMENT&&i.getNext().isBlockBoundary());i.getFirst();)i.getFirst().remove().appendTo(h);d&&h.append(a.document.createElement("br")),h.replace(i),d=!1}}c.selectBookmarks(e),a.focus()}},refresh:function(a,b){this.setState(a.elementPath(b.block||b.blockLimit).contains("blockquote",1)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)},context:"blockquote",allowedContent:"blockquote",requiredContent:"blockquote"};CKEDITOR.plugins.add("blockquote",{init:function(b){b.blockless||(b.addCommand("blockquote",a),b.ui.addButton&&b.ui.addButton("Blockquote",{label:b.lang.blockquote.toolbar,command:"blockquote",toolbar:"blocks,10"}))}})}(),function(){function a(a,b,c){return b.type||(b.type="auto"),c&&!1===a.fire("beforePaste",b)||!b.dataValue&&b.dataTransfer.isEmpty()?!1:(b.dataValue||(b.dataValue=""),CKEDITOR.env.gecko&&"drop"==b.method&&a.toolbox&&a.once("afterPaste",function(){a.toolbox.focus()}),a.fire("paste",b))}function b(b){function c(){var a=b.editable();if(CKEDITOR.plugins.clipboard.isCustomCopyCutSupported){var c=function(a){b.readOnly&&"cut"==a.name||p.initPasteDataTransfer(a,b),a.data.preventDefault()};a.on("copy",c),a.on("cut",c),a.on("cut",function(){b.readOnly||b.extractSelectedHtml()},null,null,999)}a.on(p.mainPasteEvent,function(a){"beforepaste"==p.mainPasteEvent&&q||m(a)}),"beforepaste"==p.mainPasteEvent&&(a.on("paste",function(a){r||(f(),a.data.preventDefault(),m(a),h("paste")||b.openDialog("paste"))}),a.on("contextmenu",g,null,null,0),a.on("beforepaste",function(a){!a.data||a.data.$.ctrlKey||a.data.$.shiftKey||g()},null,null,0)),a.on("beforecut",function(){!q&&i(b)});var d;a.attachListener(CKEDITOR.env.ie?a:b.document.getDocumentElement(),"mouseup",function(){d=setTimeout(function(){n()},0)}),b.on("destroy",function(){clearTimeout(d)}),a.on("keyup",n)}function d(a){return{type:a,canUndo:"cut"==a,startDisabled:!0,exec:function(){"cut"==this.type&&i();var a,c=this.type;if(CKEDITOR.env.ie)a=h(c);else try{a=b.document.$.execCommand(c,!1,null)}catch(d){a=!1}return a||b.showNotification(b.lang.clipboard[this.type+"Error"]),a}}}function e(){return{canUndo:!1,async:!0,exec:function(b,c){var d=this,e=function(c,e){c&&a(b,c,!!e),b.fire("afterCommandExec",{name:"paste",command:d,returnValue:!!c})};"string"==typeof c?e({dataValue:c,method:"paste",dataTransfer:p.initPasteDataTransfer()},1):b.getClipboardData(e)}}}function f(){r=1,setTimeout(function(){r=0},100)}function g(){q=1,setTimeout(function(){q=0},10)}function h(a){var c=b.document,d=c.getBody(),e=!1,f=function(){e=!0};return d.on(a,f),7]+data-cke-bookmark[^<]*?<\/span>/gi,""),e&&a(b,d)})}function n(){if("wysiwyg"==b.mode){var a=o("paste");b.getCommand("cut").setState(o("cut")),b.getCommand("copy").setState(o("copy")),b.getCommand("paste").setState(a),b.fire("pasteState",a)}}function o(a){if(s&&a in{paste:1,cut:1})return CKEDITOR.TRISTATE_DISABLED;if("paste"==a)return CKEDITOR.TRISTATE_OFF;a=b.getSelection();var c=a.getRanges();return a.getType()==CKEDITOR.SELECTION_NONE||1==c.length&&c[0].collapsed?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF}var p=CKEDITOR.plugins.clipboard,q=0,r=0,s=0;!function(){b.on("key",l),b.on("contentDom",c),b.on("selectionChange",function(a){s=a.data.selection.getRanges()[0].checkReadOnly(),n()}),b.contextMenu&&b.contextMenu.addListener(function(a,b){return s=b.getRanges()[0].checkReadOnly(),{cut:o("cut"),copy:o("copy"),paste:o("paste")}})}(),function(){function a(a,c,d,e,f){var g=b.lang.clipboard[c];b.addCommand(c,d),b.ui.addButton&&b.ui.addButton(a,{label:g,command:c,toolbar:"clipboard,"+e}),b.addMenuItems&&b.addMenuItem(c,{label:g,command:c,group:"clipboard",order:f})}a("Cut","cut",d("cut"),10,1),a("Copy","copy",d("copy"),20,4),a("Paste","paste",e(),30,8)}(),b.getClipboardData=function(a,c){function d(a){a.removeListener(),a.cancel(),c(a.data)}function e(a){a.removeListener(),a.cancel(),i=!0,c({type:h,dataValue:a.data.dataValue,dataTransfer:a.data.dataTransfer,method:"paste"})}function f(){this.customTitle=a&&a.title}var g=!1,h="auto",i=!1;c||(c=a,a=null),b.on("paste",d,null,null,0),b.on("beforePaste",function(a){a.removeListener(),g=!0,h=a.data.type},null,null,1e3),!1===k()&&(b.removeListener("paste",d),g&&b.fire("pasteDialog",f)?(b.on("pasteDialogCommit",e),b.on("dialogHide",function(a){a.removeListener(),a.data.removeListener("pasteDialogCommit",e),setTimeout(function(){i||c(null)},10)})):c(null))}}function c(a){if(CKEDITOR.env.webkit){if(!a.match(/^[^<]*$/g)&&!a.match(/^(
        <\/div>|
        [^<]*<\/div>)*$/gi))return"html"}else if(CKEDITOR.env.ie){if(!a.match(/^([^<]|)*$/gi)&&!a.match(/^(

        ([^<]|)*<\/p>|(\r\n))*$/gi))return"html"}else{if(!CKEDITOR.env.gecko)return"html";if(!a.match(/^([^<]|)*$/gi))return"html"}return"htmlifiedtext"}function d(a,b){function c(a){return CKEDITOR.tools.repeat("

        ",~~(a/2))+(1==a%2?"
        ":"")}return b=b.replace(/\s+/g," ").replace(/> +<").replace(/
        /gi,"
        "),b=b.replace(/<\/?[A-Z]+>/g,function(a){return a.toLowerCase()}),b.match(/^[^<]$/)?b:(CKEDITOR.env.webkit&&-1")&&(b=b.replace(/^(

        (
        |)<\/div>)(?!$|(
        (
        |)<\/div>))/g,"
        ").replace(/^(
        (
        |)<\/div>){2}(?!$)/g,"
        "),b.match(/
        (
        |)<\/div>/)&&(b="

        "+b.replace(/(

        (
        |)<\/div>)+/g,function(a){return c(a.split("
        ").length+1)})+"

        "),b=b.replace(/<\/div>
        /g,"
        "),b=b.replace(/<\/?div>/g,"")),CKEDITOR.env.gecko&&a.enterMode!=CKEDITOR.ENTER_BR&&(CKEDITOR.env.gecko&&(b=b.replace(/^

        $/,"
        ")),-1
        ")&&(b="

        "+b.replace(/(
        ){2,}/g,function(a){return c(a.length/4)})+"

        ")),g(a,b))}function e(){function a(){var a,b={};for(a in CKEDITOR.dtd)"$"!=a.charAt(0)&&"div"!=a&&"span"!=a&&(b[a]=1);return b}var b={};return{get:function(c){return"plain-text"==c?b.plainText||(b.plainText=new CKEDITOR.filter("br")):"semantic-content"==c?((c=b.semanticContent)||(c=new CKEDITOR.filter,c.allow({$1:{elements:a(),attributes:!0,styles:!1,classes:!1}}),c=b.semanticContent=c),c):c?new CKEDITOR.filter(c):null}}}function f(a,b,c){b=CKEDITOR.htmlParser.fragment.fromHtml(b);var d=new CKEDITOR.htmlParser.basicWriter;return c.applyTo(b,!0,!1,a.activeEnterMode),b.writeHtml(d),d.getHtml()}function g(a,b){return a.enterMode==CKEDITOR.ENTER_BR?b=b.replace(/(<\/p>

        )+/g,function(a){return CKEDITOR.tools.repeat("
        ",a.length/7*2)}).replace(/<\/?p>/g,""):a.enterMode==CKEDITOR.ENTER_DIV&&(b=b.replace(/<(\/)?p>/g,"<$1div>")),b}function h(a){a.data.preventDefault(),a.data.$.dataTransfer.dropEffect="none"}function i(b){var c=CKEDITOR.plugins.clipboard;b.on("contentDom",function(){function d(c,d,e){d.select(),a(b,{dataTransfer:e,method:"drop"},1),e.sourceEditor.fire("saveSnapshot"),e.sourceEditor.editable().extractHtmlFromRange(c),e.sourceEditor.getSelection().selectRanges([c]),e.sourceEditor.fire("saveSnapshot")}function e(d,e){d.select(),a(b,{dataTransfer:e,method:"drop"},1),c.resetDragDataTransfer()}function f(a,c,d){var e={$:a.data.$,target:a.data.getTarget()};c&&(e.dragRange=c),d&&(e.dropRange=d),!1===b.fire(a.name,e)&&a.data.preventDefault()}function g(a){return a.type!=CKEDITOR.NODE_ELEMENT&&(a=a.getParent()),a.getChildCount()}var h=b.editable(),i=CKEDITOR.plugins.clipboard.getDropTarget(b),j=b.ui.space("top"),k=b.ui.space("bottom");c.preventDefaultDropOnElement(j),c.preventDefaultDropOnElement(k),h.attachListener(i,"dragstart",f),h.attachListener(b,"dragstart",c.resetDragDataTransfer,c,null,1),h.attachListener(b,"dragstart",function(a){c.initDragDataTransfer(a,b)},null,null,2),h.attachListener(b,"dragstart",function(){var a=c.dragRange=b.getSelection().getRanges()[0];CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(c.dragStartContainerChildCount=a?g(a.startContainer):null,c.dragEndContainerChildCount=a?g(a.endContainer):null)},null,null,100),h.attachListener(i,"dragend",f),h.attachListener(b,"dragend",c.initDragDataTransfer,c,null,1),h.attachListener(b,"dragend",c.resetDragDataTransfer,c,null,100),h.attachListener(i,"dragover",function(a){var b=a.data.getTarget();b&&b.is&&b.is("html")?a.data.preventDefault():CKEDITOR.env.ie&&CKEDITOR.plugins.clipboard.isFileApiSupported&&a.data.$.dataTransfer.types.contains("Files")&&a.data.preventDefault()}),h.attachListener(i,"drop",function(a){if(!a.data.$.defaultPrevented){a.data.preventDefault();var d=a.data.getTarget();if(!d.isReadOnly()||d.type==CKEDITOR.NODE_ELEMENT&&d.is("html")){var d=c.getRangeAtDropPosition(a,b),e=c.dragRange;d&&f(a,e,d)}}},null,null,9999),h.attachListener(b,"drop",c.initDragDataTransfer,c,null,1),h.attachListener(b,"drop",function(a){if(a=a.data){var f=a.dropRange,g=a.dragRange,h=a.dataTransfer;h.getTransferType(b)==CKEDITOR.DATA_TRANSFER_INTERNAL?setTimeout(function(){c.internalDrop(g,f,h,b)},0):h.getTransferType(b)==CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?d(g,f,h):e(f,h)}},null,null,9999)})}CKEDITOR.plugins.add("clipboard",{requires:"dialog",init:function(a){var g,h=e();a.config.forcePasteAsPlainText?g="plain-text":a.config.pasteFilter?g=a.config.pasteFilter:!CKEDITOR.env.webkit||"pasteFilter"in a.config||(g="semantic-content"),a.pasteFilter=h.get(g),b(a),i(a),CKEDITOR.dialog.add("paste",CKEDITOR.getUrl(this.path+"dialogs/paste.js")),a.on("paste",function(b){if(b.data.dataTransfer||(b.data.dataTransfer=new CKEDITOR.plugins.clipboard.dataTransfer),!b.data.dataValue){var c=b.data.dataTransfer,d=c.getData("text/html");d?(b.data.dataValue=d,b.data.type="html"):(d=c.getData("text/plain"))&&(b.data.dataValue=a.editable().transformPlainTextToHtml(d),b.data.type="text")}},null,null,1),a.on("paste",function(a){var b=a.data.dataValue,c=CKEDITOR.dtd.$block;if(-1 <\/span>/gi," "),"html"!=a.data.type&&(b=b.replace(/]*>([^<]*)<\/span>/gi,function(a,b){return b.replace(/\t/g,"    ")})),-1')&&(a.data.startsWithEOL=1,a.data.preSniffing="html",b=b.replace(/
        /,"")),b=b.replace(/(<[^>]+) class="Apple-[^"]*"/gi,"$1")),b.match(/^<[^<]+cke_(editable|contents)/i)){var d,e,f=new CKEDITOR.dom.element("div");for(f.setHtml(b);1==f.getChildCount()&&(d=f.getFirst())&&d.type==CKEDITOR.NODE_ELEMENT&&(d.hasClass("cke_editable")||d.hasClass("cke_contents"));)f=e=d;e&&(b=e.getHtml().replace(/
        $/i,""))}CKEDITOR.env.ie?b=b.replace(/^ (?: |\r\n)?<(\w+)/g,function(b,d){return d.toLowerCase()in c?(a.data.preSniffing="html","<"+d):b}):CKEDITOR.env.webkit?b=b.replace(/<\/(\w+)>


        <\/div>$/,function(b,d){return d in c?(a.data.endsWithEOL=1,""):b}):CKEDITOR.env.gecko&&(b=b.replace(/(\s)
        $/,"$1")),a.data.dataValue=b},null,null,3),a.on("paste",function(b){b=b.data;var e,g=b.type,i=b.dataValue,j=a.config.clipboard_defaultContentType||"html",k=b.dataTransfer.getTransferType(a);e="html"==g||"html"==b.preSniffing?"html":c(i),"htmlifiedtext"==e&&(i=d(a.config,i)),"text"==g&&"html"==e?i=f(a,i,h.get("plain-text")):k==CKEDITOR.DATA_TRANSFER_EXTERNAL&&a.pasteFilter&&!b.dontFilter&&(i=f(a,i,a.pasteFilter)),b.startsWithEOL&&(i='
        '+i),b.endsWithEOL&&(i+='
        '),"auto"==g&&(g="html"==e||"html"==j?"html":"text"),b.type=g,b.dataValue=i,delete b.preSniffing,delete b.startsWithEOL,delete b.endsWithEOL},null,null,6),a.on("paste",function(b){b=b.data,b.dataValue&&(a.insertHtml(b.dataValue,b.type,b.range),setTimeout(function(){a.fire("afterPaste")},0))},null,null,1e3),a.on("pasteDialog",function(b){setTimeout(function(){a.openDialog("paste",b.data)},0)})}}),CKEDITOR.plugins.clipboard={isCustomCopyCutSupported:!CKEDITOR.env.ie&&!CKEDITOR.env.iOS,isCustomDataTypesSupported:!CKEDITOR.env.ie,isFileApiSupported:!CKEDITOR.env.ie||9CKEDITOR.env.version||b.isInline()?b:a.document},fixSplitNodesAfterDrop:function(a,b,c,d){function e(a,c,d){var e=a;return e.type==CKEDITOR.NODE_TEXT&&(e=a.getParent()),e.equals(c)&&d!=c.getChildCount()?(a=b.startContainer.getChild(b.startOffset-1),c=b.startContainer.getChild(b.startOffset),a&&a.type==CKEDITOR.NODE_TEXT&&c&&c.type==CKEDITOR.NODE_TEXT&&(d=a.getLength(),a.setText(a.getText()+c.getText()),c.remove(),b.setStart(a,d),b.collapse(!0)),!0):void 0}var f=b.startContainer;"number"==typeof d&&"number"==typeof c&&f.type==CKEDITOR.NODE_ELEMENT&&(e(a.startContainer,f,c)||e(a.endContainer,f,d))},isDropRangeAffectedByDragRange:function(a,b){var c=b.startContainer,d=b.endOffset;return!!(a.endContainer.equals(c)&&a.endOffset<=d||a.startContainer.getParent().equals(c)&&a.startContainer.getIndex()CKEDITOR.env.version&&this.fixSplitNodesAfterDrop(b,c,h.dragStartContainerChildCount,h.dragEndContainerChildCount),(g=this.isDropRangeAffectedByDragRange(b,c))||(f=b.createBookmark(!1)),h=c.clone().createBookmark(!1),g&&(f=b.createBookmark(!1)),b=f.startNode,c=f.endNode,g=h.startNode,c&&b.getPosition(g)&CKEDITOR.POSITION_PRECEDING&&c.getPosition(g)&CKEDITOR.POSITION_FOLLOWING&&g.insertBefore(b),b=e.createRange(),b.moveToBookmark(f),i.extractHtmlFromRange(b,1),c=e.createRange(),c.moveToBookmark(h),a(e,{dataTransfer:d,method:"drop",range:c},1),e.fire("unlockSnapshot")},getRangeAtDropPosition:function(a,b){var c=a.data.$,d=c.clientX,e=c.clientY,f=b.getSelection(!0).getRanges()[0],g=b.createRange();if(a.data.testRange)return a.data.testRange;if(document.caretRangeFromPoint)c=b.document.$.caretRangeFromPoint(d,e),g.setStart(CKEDITOR.dom.node(c.startContainer),c.startOffset),g.collapse(!0);else if(c.rangeParent)g.setStart(CKEDITOR.dom.node(c.rangeParent),c.rangeOffset),g.collapse(!0);else{if(CKEDITOR.env.ie&&8i&&!h;i++){if(!h)try{c.moveToPoint(d,e-i),h=!0}catch(j){}if(!h)try{c.moveToPoint(d,e+i),h=!0}catch(k){}}if(h){var l="cke-temp-"+(new Date).getTime();c.pasteHTML('​');var m=b.document.getById(l);g.moveToPosition(m,CKEDITOR.POSITION_BEFORE_START),m.remove()}else{var n,o=b.document.$.elementFromPoint(d,e),p=new CKEDITOR.dom.element(o);if(p.equals(b.editable())||"html"==p.getName())return f&&f.startContainer&&!f.startContainer.equals(b.editable())?f:null;n=p.getClientRect(),d/i,bodyRegExp:/([\s\S]*)<\/body>/i,fragmentRegExp:/\x3c!--(?:Start|End)Fragment--\x3e/g,data:{},files:[],normalizeType:function(a){return a=a.toLowerCase(),"text"==a||"text/plain"==a?"Text":"url"==a?"URL":a}},this.id=this.getData(j),this.id||(this.id="Text"==j?"":"cke-"+CKEDITOR.tools.getUniqueId()),"Text"!=j)try{this.$.setData(j,this.id)}catch(c){}b&&(this.sourceEditor=b,this.setData("text/html",b.getSelectedHtml(1)),"Text"==j||this.getData("text/plain")||this.setData("text/plain",b.getSelection().getSelectedText()))},CKEDITOR.DATA_TRANSFER_INTERNAL=1,CKEDITOR.DATA_TRANSFER_CROSS_EDITORS=2,CKEDITOR.DATA_TRANSFER_EXTERNAL=3,CKEDITOR.plugins.clipboard.dataTransfer.prototype={getData:function(a){a=this._.normalizeType(a);var b=this._.data[a];if(void 0===b||null===b||""===b)try{b=this.$.getData(a)}catch(c){}return void 0!==b&&null!==b&&""!==b||(b=""),"text/html"==a?(b=b.replace(this._.metaRegExp,""),(a=this._.bodyRegExp.exec(b))&&a.length&&(b=a[1],b=b.replace(this._.fragmentRegExp,""))):"Text"==a&&CKEDITOR.env.gecko&&this.getFilesCount()&&"file://"==b.substring(0,7)&&(b=""),b},setData:function(a,b){if(a=this._.normalizeType(a),this._.data[a]=b,CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||"URL"==a||"Text"==a){"Text"==j&&"Text"==a&&(this.id=b);try{this.$.setData(a,b)}catch(c){}}},getTransferType:function(a){return this.sourceEditor?this.sourceEditor==a?CKEDITOR.DATA_TRANSFER_INTERNAL:CKEDITOR.DATA_TRANSFER_CROSS_EDITORS:CKEDITOR.DATA_TRANSFER_EXTERNAL},cacheData:function(){function a(a){a=d._.normalizeType(a);var b=d.getData(a);b&&(d._.data[a]=b)}if(this.$){var b,c,d=this;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(b=0;b{frame}
        '),b=CKEDITOR.addTemplate("panel-frame",''),c=CKEDITOR.addTemplate("panel-frame-inner",'{css}');CKEDITOR.ui.panel.prototype={render:function(d,e){this.getHolderElement=function(){var a=this._.holder;if(!a){if(this.isFramed){var a=this.document.getById(this.id+"_frame"),b=a.getParent(),a=a.getFrameDocument();CKEDITOR.env.iOS&&b.setStyles({overflow:"scroll","-webkit-overflow-scrolling":"touch"}),b=CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function(){this.isLoaded=!0,this.onLoad&&this.onLoad()},this)),a.write(c.output(CKEDITOR.tools.extend({css:CKEDITOR.tools.buildStyleHtml(this.css),onload:"window.parent.CKEDITOR.tools.callFunction("+b+");"},f))),a.getWindow().$.CKEDITOR=CKEDITOR,a.on("keydown",function(a){var b=a.data.getKeystroke(),c=this.document.getById(this.id).getAttribute("dir");this._.onKeyDown&&!1===this._.onKeyDown(b)?a.data.preventDefault():(27==b||b==("rtl"==c?39:37))&&this.onEscape&&!1===this.onEscape(b)&&a.data.preventDefault()},this),a=a.getBody(),a.unselectable(),CKEDITOR.env.air&&CKEDITOR.tools.callFunction(b)}else a=this.document.getById(this.id);this._.holder=a}return a};var f={editorId:d.id,id:this.id,langCode:d.langCode,dir:d.lang.dir,cls:this.className,frame:"",env:CKEDITOR.env.cssClass,"z-index":d.config.baseFloatZIndex+1};if(this.isFramed){var g=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie?"javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())":"";f.frame=b.output({id:this.id+"_frame",src:g})}return g=a.output(f),e&&e.push(g),g},addBlock:function(a,b){return b=this._.blocks[a]=b instanceof CKEDITOR.ui.panel.block?b:new CKEDITOR.ui.panel.block(this.getHolderElement(),b),this._.currentBlock||this.showBlock(a),b},getBlock:function(a){return this._.blocks[a]},showBlock:function(a){a=this._.blocks[a];var b=this._.currentBlock,c=!this.forceIFrame||CKEDITOR.env.ie?this._.holder:this.document.getById(this.id+"_frame");return b&&b.hide(),this._.currentBlock=a,CKEDITOR.fire("ariaWidget",c),a._.focusIndex=-1,this._.onKeyDown=a.onKeyDown&&CKEDITOR.tools.bind(a.onKeyDown,a),a.show(),a},destroy:function(){this.element&&this.element.remove()}},CKEDITOR.ui.panel.block=CKEDITOR.tools.createClass({$:function(a,b){this.element=a.append(a.getDocument().createElement("div",{attributes:{tabindex:-1,"class":"cke_panel_block"},styles:{display:"none"}})),b&&CKEDITOR.tools.extend(this,b),this.element.setAttributes({role:this.attributes.role||"presentation","aria-label":this.attributes["aria-label"],title:this.attributes.title||this.attributes["aria-label"]}),this.keys={},this._.focusIndex=-1,this.element.disableContextMenu()},_:{markItem:function(a){-1!=a&&(a=this.element.getElementsByTag("a").getItem(this._.focusIndex=a),CKEDITOR.env.webkit&&a.getDocument().getWindow().focus(),a.focus(),this.onMark&&this.onMark(a))}},proto:{show:function(){this.element.setStyle("display","")},hide:function(){this.onHide&&!0===this.onHide.call(this)||this.element.setStyle("display","none")},onKeyDown:function(a,b){var c=this.keys[a];switch(c){case"next":for(var d,e=this._.focusIndex,c=this.element.getElementsByTag("a");d=c.getItem(++e);)if(d.getAttribute("_cke_focus")&&d.$.offsetWidth){this._.focusIndex=e,d.focus();break}return d||b?!1:(this._.focusIndex=-1,this.onKeyDown(a,1));case"prev":for(e=this._.focusIndex,c=this.element.getElementsByTag("a");e>0&&(d=c.getItem(--e));){if(d.getAttribute("_cke_focus")&&d.$.offsetWidth){this._.focusIndex=e,d.focus();break}d=null}return d||b?!1:(this._.focusIndex=c.count(),this.onKeyDown(a,1));case"click":case"mouseup":return e=this._.focusIndex,(d=e>=0&&this.element.getElementsByTag("a").getItem(e))&&(d.$[c]?d.$[c]():d.$["on"+c]()),!1}return!0}}})}(),CKEDITOR.plugins.add("floatpanel",{requires:"panel"}),function(){function a(a,c,d,e,f){f=CKEDITOR.tools.genKey(c.getUniqueId(),d.getUniqueId(),a.lang.dir,a.uiColor||"",e.css||"",f||"");var g=b[f];return g||(g=b[f]=new CKEDITOR.ui.panel(c,e),g.element=d.append(CKEDITOR.dom.element.createFromHtml(g.render(a),c)),g.element.setStyles({display:"none",position:"absolute"})),g}var b={};CKEDITOR.ui.floatPanel=CKEDITOR.tools.createClass({$:function(b,c,d,e){function f(){j.hide()}d.forceIFrame=1,d.toolbarRelated&&b.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&(c=CKEDITOR.document.getById("cke_"+b.name));var g=c.getDocument();e=a(b,g,c,d,e||0);var h=e.element,i=h.getFirst(),j=this;h.disableContextMenu(),this.element=h,this._={editor:b,panel:e,parentElement:c,definition:d,document:g,iframe:i,children:[],dir:b.lang.dir,showBlockParams:null},b.on("mode",f),b.on("resize",f),g.getWindow().on("resize",function(){this.reposition()},this)},proto:{addBlock:function(a,b){return this._.panel.addBlock(a,b)},addListBlock:function(a,b){return this._.panel.addListBlock(a,b)},getBlock:function(a){return this._.panel.getBlock(a)},showBlock:function(a,b,c,d,e,f){var g=this._.panel,h=g.showBlock(a);this._.showBlockParams=[].slice.call(arguments),this.allowBlur(!1);var i=this._.editor.editable();this._.returnFocus=i.hasFocus?i:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement),this._.hideTimeout=0;var j=this.element,i=this._.iframe,i=CKEDITOR.env.ie&&!CKEDITOR.env.edge?i:new CKEDITOR.dom.window(i.$.contentWindow),k=j.getDocument(),l=this._.parentElement.getPositionedAncestor(),m=b.getDocumentPosition(k),k=l?l.getDocumentPosition(k):{x:0,y:0},n="rtl"==this._.dir,o=m.x+(d||0)-k.x,p=m.y+(e||0)-k.y;!n||1!=c&&4!=c?n||2!=c&&3!=c||(o+=b.$.offsetWidth-1):o+=b.$.offsetWidth,3!=c&&4!=c||(p+=b.$.offsetHeight-1),this._.panel._.offsetParentId=b.getId(),j.setStyles({top:p+"px",left:0,display:""}),j.setOpacity(0),j.getFirst().removeStyle("width"),this._.editor.focusManager.add(i),this._.blurSet||(CKEDITOR.event.useCapture=!0,i.on("blur",function(a){function b(){delete this._.returnFocus,this.hide()}this.allowBlur()&&a.data.getPhase()==CKEDITOR.EVENT_PHASE_AT_TARGET&&this.visible&&!this._.activeChild&&(CKEDITOR.env.iOS?this._.hideTimeout||(this._.hideTimeout=CKEDITOR.tools.setTimeout(b,0,this)):b.call(this))},this),i.on("focus",function(){this._.focused=!0,this.hideChild(),this.allowBlur(!0)},this),CKEDITOR.env.iOS&&(i.on("touchstart",function(){clearTimeout(this._.hideTimeout)},this),i.on("touchend",function(){this._.hideTimeout=0,this.focus()},this)),CKEDITOR.event.useCapture=!1,this._.blurSet=1),g.onEscape=CKEDITOR.tools.bind(function(a){return this.onEscape&&!1===this.onEscape(a)?!1:void 0},this),CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.tools.bind(function(){var a=j;if(a.removeStyle("width"),h.autoSize){var b=h.element.getDocument(),b=(CKEDITOR.env.webkit||CKEDITOR.env.edge?h.element:b.getBody()).$.scrollWidth;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&b>0&&(b+=(a.$.offsetWidth||0)-(a.$.clientWidth||0)+3),a.setStyle("width",b+10+"px"),b=h.element.$.scrollHeight,CKEDITOR.env.ie&&CKEDITOR.env.quirks&&b>0&&(b+=(a.$.offsetHeight||0)-(a.$.clientHeight||0)+3),a.setStyle("height",b+"px"),g._.currentBlock.element.setStyle("display","none").removeStyle("display")}else a.removeStyle("height");n&&(o-=j.$.offsetWidth),j.setStyle("left",o+"px");var b=g.element.getWindow(),a=j.$.getBoundingClientRect(),b=b.getViewPaneSize(),c=a.width||a.right-a.left,d=a.height||a.bottom-a.top,e=n?a.right:b.width-a.left,i=n?b.width-a.right:a.left;n?c>e&&(o=i>c?o+c:b.width>c?o-a.left:o-a.right+b.width):c>e&&(o=i>c?o-c:b.width>c?o-a.right+b.width:o-a.left),c=a.top,b.height-a.topd?p-d:b.height>d?p-a.bottom+b.height:p-a.top),CKEDITOR.env.ie&&(b=a=new CKEDITOR.dom.element(j.$.offsetParent),"html"==b.getName()&&(b=b.getDocument().getBody()),"rtl"==b.getComputedStyle("direction")&&(o=CKEDITOR.env.ie8Compat?o-2*j.getDocument().getDocumentElement().$.scrollLeft:o-(a.$.scrollWidth-a.$.clientWidth)));var k,a=j.getFirst();(k=a.getCustomData("activePanel"))&&k.onHide&&k.onHide.call(this,1),a.setCustomData("activePanel",this),j.setStyles({top:p+"px",left:o+"px"}),j.setOpacity(1),f&&f()},this);g.isLoaded?a():g.onLoad=a,CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.env.webkit&&CKEDITOR.document.getWindow().getScrollPosition().y;this.focus(),h.element.focus(),CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=a),this.allowBlur(!0),this._.editor.fire("panelShow",this)},0,this)},CKEDITOR.env.air?200:0,this),this.visible=1,this.onShow&&this.onShow.call(this)},reposition:function(){var a=this._.showBlockParams;this.visible&&this._.showBlockParams&&(this.hide(),this.showBlock.apply(this,a))},focus:function(){if(CKEDITOR.env.webkit){var a=CKEDITOR.document.getActive();a&&!a.equals(this._.iframe)&&a.$.blur()}(this._.lastFocused||this._.iframe.getFrameDocument().getWindow()).focus()},blur:function(){var a=this._.iframe.getFrameDocument().getActive();a&&a.is("a")&&(this._.lastFocused=a)},hide:function(a){!this.visible||this.onHide&&!0===this.onHide.call(this)||(this.hideChild(),CKEDITOR.env.gecko&&this._.iframe.getFrameDocument().$.activeElement.blur(),this.element.setStyle("display","none"),this.visible=0,this.element.getFirst().removeCustomData("activePanel"),(a=a&&this._.returnFocus)&&(CKEDITOR.env.webkit&&a.type&&a.getWindow().$.focus(),a.focus()),delete this._.lastFocused,this._.showBlockParams=null,this._.editor.fire("panelHide",this))},allowBlur:function(a){var b=this._.panel;return void 0!==a&&(b.allowBlur=a),b.allowBlur},showAsChild:function(a,b,c,d,e,f){this._.activeChild==a&&a._.panel._.offsetParentId==c.getId()||(this.hideChild(),a.onHide=CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=a,this._.focused=!1,a.showBlock(b,c,d,e,f),this.blur(),(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&setTimeout(function(){a.element.getChild(0).$.style.cssText+=""},100))},hideChild:function(a){var b=this._.activeChild;b&&(delete b.onHide,delete this._.activeChild,b.hide(),a&&this.focus())}}}),CKEDITOR.on("instanceDestroyed",function(){var a,c=CKEDITOR.tools.isEmpty(CKEDITOR.instances);for(a in b){var d=b[a];c?d.destroy():d.element.hide()}c&&(b={})})}(),CKEDITOR.plugins.add("menu",{requires:"floatpanel",beforeInit:function(a){for(var b=a.config.menu_groups.split(","),c=a._.menuGroups={},d=a._.menuItems={},e=0;eb.group?1:a.orderb.order?1:0})}var b=''),c=CKEDITOR.addTemplate("menuItem",b+'{label}{arrowHtml}'),d=CKEDITOR.addTemplate("menuArrow",'{label}');CKEDITOR.menu=CKEDITOR.tools.createClass({$:function(a,b){b=this._.definition=b||{},this.id=CKEDITOR.tools.getNextId(),this.editor=a,this.items=[],this._.listeners=[],this._.level=b.level||1;var c=CKEDITOR.tools.extend({},b.panel,{css:[CKEDITOR.skin.getPath("editor")],level:this._.level-1,block:{}}),d=c.block.attributes=c.attributes||{};!d.role&&(d.role="menu"),this._.panelDefinition=c},_:{onShow:function(){var a=this.editor.getSelection(),b=a&&a.getStartElement(),c=this.editor.elementPath(),d=this._.listeners;this.removeAll();for(var e=0;e'],k=f.length,l=k&&f[0].group,m=0;k>m;m++){var n=f[m];l!=n.group&&(j.push(''),l=n.group),n.render(this,m,j)}j.push("
        "),i.setHtml(j.join("")),CKEDITOR.ui.fire("ready",this),this.parent?this.parent._.panel.showAsChild(h,this.id,b,c,d,e):h.showBlock(this.id,b,c,d,e),g.fire("menuShow",[h])}},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide(),this._.panel&&this._.panel.hide(a)}}}),CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,b,c){CKEDITOR.tools.extend(this,c,{order:0,className:"cke_menubutton__"+b}),this.group=a._.menuGroups[this.group],this.editor=a,this.name=b},proto:{render:function(a,b,e){var f=a.id+String(b),g="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,h="",i=g==CKEDITOR.TRISTATE_ON?"on":g==CKEDITOR.TRISTATE_DISABLED?"disabled":"off";this.role in{menuitemcheckbox:1,menuitemradio:1}&&(h=' aria-checked="'+(g==CKEDITOR.TRISTATE_ON?"true":"false")+'"');var j=this.getItems,k="&#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",l=this.name;this.icon&&!/\./.test(this.icon)&&(l=this.icon),a={id:f,name:this.name,iconName:l,label:this.label,cls:this.className||"",state:i,hasPopup:j?"true":"false",disabled:g==CKEDITOR.TRISTATE_DISABLED,title:this.label,href:"javascript:void('"+(this.label||"").replace("'")+"')",hoverFn:a._.itemOverFn,moveOutFn:a._.itemOutFn,clickFn:a._.itemClickFn,index:b,iconStyle:CKEDITOR.skin.getIconStyle(l,"rtl"==this.editor.lang.dir,l==this.icon?null:this.icon,this.iconOffset),arrowHtml:j?d.output({label:k}):"",role:this.role?this.role:"menuitem",ariaChecked:h},c.output(a,e)}}})}(),CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div",CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CKEDITOR.plugins.contextMenu=CKEDITOR.tools.createClass({base:CKEDITOR.menu,$:function(a){this.base.call(this,a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.contextmenu.options}}})},proto:{addTarget:function(a,b){if(a.on("contextmenu",function(a){a=a.data;var d=CKEDITOR.env.webkit?c:CKEDITOR.env.mac?a.$.metaKey:a.$.ctrlKey;if(!b||!d){if(a.preventDefault(),CKEDITOR.env.mac&&CKEDITOR.env.webkit){var d=this.editor,e=new CKEDITOR.dom.elementPath(a.getTarget(),d.editable()).contains(function(a){return a.hasAttribute("contenteditable")},!0);e&&"false"==e.getAttribute("contenteditable")&&d.getSelection().fake(e)}var e=a.getTarget().getDocument(),f=a.getTarget().getDocument().getDocumentElement(),d=!e.equals(CKEDITOR.document),e=e.getWindow().getScrollPosition(),g=d?a.$.clientX:a.$.pageX||e.x+a.$.clientX,h=d?a.$.clientY:a.$.pageY||e.y+a.$.clientY;CKEDITOR.tools.setTimeout(function(){this.open(f,null,g,h)},CKEDITOR.env.ie?200:0,this)}},this),CKEDITOR.env.webkit){var c,d=function(){c=0};a.on("keydown",function(a){c=CKEDITOR.env.mac?a.data.$.metaKey:a.data.$.ctrlKey}),a.on("keyup",d),a.on("contextmenu",d)}},open:function(a,b,c,d){this.editor.focus(),a=a||CKEDITOR.document.getDocumentElement(),this.editor.selectionChange(1),this.show(a,b,c,d)}}})},beforeInit:function(a){var b=a.contextMenu=new CKEDITOR.plugins.contextMenu(a);a.on("contentDom",function(){b.addTarget(a.editable(),!1!==a.config.browserContextMenuOnCtrl)}),a.addCommand("contextMenu",{exec:function(){a.contextMenu.open(a.document.getBody())}}),a.setKeystroke(CKEDITOR.SHIFT+121,"contextMenu"),a.setKeystroke(CKEDITOR.CTRL+CKEDITOR.SHIFT+121,"contextMenu")}}),function(){function a(a,c){function e(b){if(b=i.list[b],b.equals(a.editable())||"true"==b.getAttribute("contenteditable")){var c=a.createRange();c.selectNodeContents(b),c.select()}else a.getSelection().selectElement(b);a.focus()}function f(){g&&g.setHtml(' '),delete i.list}var g,h=a.ui.spaceId("path"),i=a._.elementsPath,j=i.idBase;c.html+=''+a.lang.elementspath.eleLabel+' ',a.on("uiReady",function(){var b=a.ui.space("path");b&&a.focusManager.add(b,1)}),i.onClick=e;var k=CKEDITOR.tools.addFunction(e),l=CKEDITOR.tools.addFunction(function(b,c){var d,f=i.idBase;switch(c=new CKEDITOR.dom.event(c),d="rtl"==a.lang.dir,c.getKeystroke()){case d?39:37:case 9:return(d=CKEDITOR.document.getById(f+(b+1)))||(d=CKEDITOR.document.getById(f+"0")),d.focus(),!1;case d?37:39:case CKEDITOR.SHIFT+9:return(d=CKEDITOR.document.getById(f+(b-1)))||(d=CKEDITOR.document.getById(f+(i.list.length-1))),d.focus(),!1;case 27:return a.focus(),!1;case 13:case 32:return e(b),!1}return!0});a.on("selectionChange",function(){for(var b,c=[],e=i.list=[],f=[],m=i.filters,n=!0,o=a.elementPath().elements,p=o.length;p--;){var q=o[p],r=0;b=q.data("cke-display-name")?q.data("cke-display-name"):q.data("cke-real-element-type")?q.data("cke-real-element-type"):q.getName(),(n=q.hasAttribute("contenteditable")?"true"==q.getAttribute("contenteditable"):n)||q.hasAttribute("contenteditable")||(r=1);for(var s=0;sm;m++)b=f[m],n=a.lang.elementspath.eleTitle.replace(/%1/,b),b=d.output({id:j+m,label:n,text:b,jsTitle:"javascript:void('"+b+"')",index:m,keyDownFn:l,clickFn:k}),c.unshift(b);g||(g=CKEDITOR.document.getById(h)),f=g,f.setHtml(c.join("")+' '),a.fire("elementsPathUpdate",{space:f})}),a.on("readOnly",f),a.on("contentDomUnload",f),a.addCommand("elementsPathFocus",b.toolbarFocus),a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}var b={toolbarFocus:{editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+"0"))&&a.focus(CKEDITOR.env.ie||CKEDITOR.env.air)}}},c="";CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(c+=' onkeypress="return false;"'),CKEDITOR.env.gecko&&(c+=' onblur="this.style.cssText = this.style.cssText;"');var d=CKEDITOR.addTemplate("pathItem",'{text}');CKEDITOR.plugins.add("elementspath",{init:function(b){b._.elementsPath={idBase:"cke_elementspath_"+CKEDITOR.tools.getNextNumber()+"_",filters:[]},b.on("uiSpace",function(c){"bottom"==c.data.space&&a(b,c.data)})}})}(),function(){function a(a,d){var e,f;d.on("refresh",function(a){var d,e=[b];for(d in a.data.states)e.push(a.data.states[d]);this.setState(CKEDITOR.tools.search(e,c)?c:b)},d,null,100),d.on("exec",function(b){e=a.getSelection(),f=e.createBookmarks(1),b.data||(b.data={}),b.data.done=!1},d,null,0),d.on("exec",function(){a.forceNextSelectionCheck(),e.selectBookmarks(f)},d,null,100)}var b=CKEDITOR.TRISTATE_DISABLED,c=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indent",{init:function(b){var c=CKEDITOR.plugins.indent.genericDefinition;a(b,b.addCommand("indent",new c(!0))),a(b,b.addCommand("outdent",new c)),b.ui.addButton&&(b.ui.addButton("Indent",{label:b.lang.indent.indent,command:"indent",directional:!0,toolbar:"indent,20"}),b.ui.addButton("Outdent",{label:b.lang.indent.outdent,command:"outdent",directional:!0,toolbar:"indent,10"})),b.on("dirChanged",function(a){var c=b.createRange(),d=a.data.node;c.setStartBefore(d),c.setEndAfter(d);for(var e,f=new CKEDITOR.dom.walker(c);e=f.next();)if(e.type==CKEDITOR.NODE_ELEMENT)if(!e.equals(d)&&e.getDirection())c.setStartAfter(e),f=new CKEDITOR.dom.walker(c);else{var g=b.config.indentClasses;if(g)for(var h="ltr"==a.data.dir?["_rtl",""]:["","_rtl"],i=0;id.length)return!1;for(j=b.getParents(!0),i=0;i0){var m=k[i].parent;k[i].parent=new CKEDITOR.dom.element(m.getName(),m.getDocument())}for(i=d.getCustomData("listarray_index")+1;il;i++)k[i].indent+=j;if(d=CKEDITOR.plugins.list.arrayToList(k,g,null,a.config.enterMode,b.getDirection()),!f.isIndent){var n;if((n=b.getParent())&&n.is("li"))for(var o,j=d.listNode.getChildren(),p=[],i=j.count()-1;i>=0;i--)(o=j.getItem(i))&&o.is&&o.is("li")&&p.push(o)}if(d&&d.listNode.replace(b),p&&p.length)for(i=0;ie[g-1].indent+1){for(f=e[g-1].indent+1-e[g].indent,h=e[g].indent;e[g]&&e[g].indent>=h;)e[g].indent+=f,g++;g--}var i,j,k=CKEDITOR.plugins.list.arrayToList(e,c,null,a.config.enterMode,b.root.getAttribute("dir")).listNode;d(!0),d(),k.replace(b.root),a.fire("contentDomInvalidated")}function b(a,b){this.name=a,this.context=this.type=b,this.allowedContent=b+" li",this.requiredContent=b}function c(a,b,c,d){for(var e,f;e=a[d?"getLast":"getFirst"](n);)(f=e.getDirection(1))!==b.getDirection(1)&&e.setAttribute("dir",f),e.remove(),c?e[d?"insertBefore":"insertAfter"](c):b.append(e,d)}function d(a){function b(b){var d=a[b?"getPrevious":"getNext"](k);d&&d.type==CKEDITOR.NODE_ELEMENT&&d.is(a.getName())&&(c(a,d,null,!b),a.remove(),a=d)}b(),b(1)}function e(a){return a.type==CKEDITOR.NODE_ELEMENT&&(a.getName()in CKEDITOR.dtd.$block||a.getName()in CKEDITOR.dtd.$listItem)&&CKEDITOR.dtd[a.getName()]["#"]}function f(a,b,e){a.fire("saveSnapshot"),e.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);var f=e.extractContents();b.trim(!1,!0);var h=b.createBookmark(),i=new CKEDITOR.dom.elementPath(b.startContainer),j=i.block,i=i.lastElement.getAscendant("li",1)||j,m=new CKEDITOR.dom.elementPath(e.startContainer),n=m.contains(CKEDITOR.dtd.$listItem),m=m.contains(CKEDITOR.dtd.$list);for(j?(j=j.getBogus())&&j.remove():m&&(j=m.getPrevious(k))&&l(j)&&j.remove(),(j=f.getLast())&&j.type==CKEDITOR.NODE_ELEMENT&&j.is("br")&&j.remove(),(j=b.startContainer.getChild(b.startOffset))?f.insertBefore(j):b.startContainer.append(f),n&&(f=g(n))&&(i.contains(n)?(c(f,n.getParent(),n),f.remove()):i.append(f));e.checkStartOfBlock()&&e.checkEndOfBlock()&&(m=e.startPath(),f=m.block,f);)f.is("li")&&(i=f.getParent(),f.equals(i.getLast(k))&&f.equals(i.getFirst(k))&&(f=i)),e.moveToPosition(f,CKEDITOR.POSITION_BEFORE_START),f.remove();e=e.clone(),f=a.editable(),e.setEndAt(f,CKEDITOR.POSITION_BEFORE_END),e=new CKEDITOR.dom.walker(e),e.evaluator=function(a){return k(a)&&!l(a)},(e=e.next())&&e.type==CKEDITOR.NODE_ELEMENT&&e.getName()in CKEDITOR.dtd.$list&&d(e),b.moveToBookmark(h),b.select(),a.fire("saveSnapshot")}function g(a){return(a=a.getLast(k))&&a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in h?a:null}var h={ol:1,ul:1},i=CKEDITOR.dom.walker.whitespaces(),j=CKEDITOR.dom.walker.bookmark(),k=function(a){return!(i(a)||j(a))},l=CKEDITOR.dom.walker.bogus();CKEDITOR.plugins.list={listToArray:function(a,b,c,d,e){if(!h[a.getName()])return[];d||(d=0),c||(c=[]);for(var f=0,g=a.getChildCount();g>f;f++){var i=a.getChild(f);if(i.type==CKEDITOR.NODE_ELEMENT&&i.getName()in CKEDITOR.dtd.$list&&CKEDITOR.plugins.list.listToArray(i,b,c,d+1),"li"==i.$.nodeName.toLowerCase()){var j={parent:a,indent:d,element:i,contents:[]};e?j.grandparent=e:(j.grandparent=a.getParent(),j.grandparent&&"li"==j.grandparent.$.nodeName.toLowerCase()&&(j.grandparent=j.grandparent.getParent())),b&&CKEDITOR.dom.element.setMarker(b,i,"listarray_index",c.length),c.push(j);for(var k,l=0,m=i.getChildCount();m>l;l++)k=i.getChild(l),k.type==CKEDITOR.NODE_ELEMENT&&h[k.getName()]?CKEDITOR.plugins.list.listToArray(k,b,c,d+1,j.grandparent):j.contents.push(k)}}return c},arrayToList:function(a,b,c,d,e){if(c||(c=0),!a||a.length=l.$.documentMode&&q.append(l.createText(" ")),q.append(o.listNode),o=o.nextIndex;else{if(-1!=s.indent||c||!f)return null;h[f.getName()]?(q=s.element.clone(!1,!0),g!=f.getDirection(1)&&q.setAttribute("dir",g)):q=new CKEDITOR.dom.documentFragment(l);var t,u,n=f.getDirection(1)!=g,v=s.element,w=v.getAttribute("class"),x=v.getAttribute("style"),y=q.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&(d!=CKEDITOR.ENTER_BR||n||x||w),z=s.contents.length;for(f=0;z>f;f++)if(t=s.contents[f],j(t)&&z>1)y?u=t.clone(1,1):q.append(t.clone(1,1));else if(t.type==CKEDITOR.NODE_ELEMENT&&t.isBlockBoundary()){n&&!t.getDirection()&&t.setAttribute("dir",g),i=t;var A=v.getAttribute("style");A&&i.setAttribute("style",A.replace(/([^;])$/,"$1;")+(i.getAttribute("style")||"")),w&&t.addClass(w),i=null,u&&(q.append(u),u=null),q.append(t.clone(1,1))}else y?(i||(i=l.createElement(r),q.append(i),n&&i.setAttribute("dir",g)),x&&i.setAttribute("style",x),w&&i.setAttribute("class",w),u&&(i.append(u),u=null),i.append(t.clone(1,1))):q.append(t.clone(1,1));u&&((i||q).append(u),u=null),q.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&o!=a.length-1&&(CKEDITOR.env.needsBrFiller&&(g=q.getLast())&&g.type==CKEDITOR.NODE_ELEMENT&&g.is("br")&&g.remove(),(g=q.getLast(k))&&g.type==CKEDITOR.NODE_ELEMENT&&g.is(CKEDITOR.dtd.$block)||q.append(l.createElement("br"))),g=q.$.nodeName.toLowerCase(),"div"!=g&&"p"!=g||q.appendBogus(),m.append(q),n=null,o++}if(i=null,a.length<=o||Math.max(a[o].indent,0)=0&&(q=o[s]);s--)if(h[q.getName()]&&r.contains(q)){r.removeCustomData("list_group_object_"+l),(o=q.getCustomData("list_group_object"))?o.contents.push(n):(o={root:q,contents:[n]},g.push(o),CKEDITOR.dom.element.setMarker(j,q,"list_group_object",o)),p=1;break}p||(p=r,p.getCustomData("list_group_object_"+l)?p.getCustomData("list_group_object_"+l).contents.push(n):(o={root:p,contents:[n]},CKEDITOR.dom.element.setMarker(j,p,"list_group_object_"+l,o),g.push(o)))}}for(q=[];0n&&(p=o.listNode.getChild(n));n++)p.getName()==this.type&&i.push(p);o.listNode.replace(l.root),f.fire("contentDomInvalidated")}else{for(p=b,i=o,n=q,r=i.contents,f=i.root.getDocument(),l=[],1==r.length&&r[0].equals(i.root)&&(o=f.createElement("div"),r[0].moveChildren&&r[0].moveChildren(o),r[0].append(o),r[0]=o),i=i.contents[0].getParent(),s=0;sl.length)){for(r=l[l.length-1].getNext(),s=f.createElement(this.type),n.push(s),t=n=void 0;l.length;)n=l.shift(),t=f.createElement("li"),u=n,u.is("pre")||m.test(u.getName())||"false"==u.getAttribute("contenteditable")?n.appendTo(t):(n.copyAttributes(t),o&&n.getDirection()&&(t.removeStyle("direction"),t.removeAttribute("dir")),n.moveChildren(t),n.remove()),t.appendTo(s);o&&p&&s.setAttribute("dir",o),r?s.insertBefore(r):s.appendTo(i)}}else this.state==CKEDITOR.TRISTATE_ON&&h[o.root.getName()]&&a.call(this,b,o,j);for(s=0;s0;b--)a[b].deleteContents();return a[0]}function c(a){var b=a.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable")},!0);return a.root.equals(b)?a:(b=new CKEDITOR.dom.range(b),b.moveToRange(a),b)}CKEDITOR.plugins.add("enterkey",{init:function(b){b.addCommand("enter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(b){a(b)}}),b.addCommand("shiftEnter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(b){a(b,b.activeShiftEnterMode,1)}}),b.setKeystroke([[13,"enter"],[CKEDITOR.SHIFT+13,"shiftEnter"]])}});var d=CKEDITOR.dom.walker.whitespaces(),e=CKEDITOR.dom.walker.bookmark();CKEDITOR.plugins.enterkey={enterBlock:function(a,f,h,j){if(h=h||b(a)){h=c(h);var k,l=h.document,m=h.checkStartOfBlock(),n=h.checkEndOfBlock(),o=a.elementPath(h.startContainer),p=o.block,q=f==CKEDITOR.ENTER_DIV?"div":"p";if(m&&n){if(p&&(p.is("li")||p.getParent().is("li"))){p.is("li")||(p=p.getParent()),h=p.getParent(),k=h.getParent(),j=!p.hasPrevious();var r=!p.hasNext(),q=a.getSelection(),s=q.createBookmarks(),m=p.getDirection(1),n=p.getAttribute("class"),t=p.getAttribute("style"),u=k.getDirection(1)!=m;if(a=a.enterMode!=CKEDITOR.ENTER_BR||u||t||n,k.is("li"))j||r?(j&&r&&h.remove(),p[r?"insertAfter":"insertBefore"](k)):p.breakParent(k);else{if(a)o.block.is("li")?(k=l.createElement(f==CKEDITOR.ENTER_P?"p":"div"),u&&k.setAttribute("dir",m),t&&k.setAttribute("style",t),n&&k.setAttribute("class",n),p.moveChildren(k)):k=o.block,j||r?k[j?"insertBefore":"insertAfter"](h):(p.breakParent(h),k.insertAfter(h));else if(p.appendBogus(!0),j||r)for(;l=p[j?"getFirst":"getLast"]();)l[j?"insertBefore":"insertAfter"](h);else for(p.breakParent(h);l=p.getLast();)l.insertAfter(h);p.remove()}return void q.selectBookmarks(s)}if(p&&p.getParent().is("blockquote"))return p.breakParent(p.getParent()),p.getPrevious().getFirst(CKEDITOR.dom.walker.invisible(1))||p.getPrevious().remove(),p.getNext().getFirst(CKEDITOR.dom.walker.invisible(1))||p.getNext().remove(),h.moveToElementEditStart(p),void h.select()}else if(p&&p.is("pre")&&!n)return void g(a,f,h,j);if(m=h.splitBlock(q)){if(f=m.previousBlock,p=m.nextBlock,o=m.wasStartOfBlock,a=m.wasEndOfBlock,p?(s=p.getParent(),s.is("li")&&(p.breakParent(s),p.move(p.getNext(),1))):f&&(s=f.getParent())&&s.is("li")&&(f.breakParent(s),s=f.getNext(),h.moveToElementEditStart(s),f.move(f.getPrevious())),o||a){if(f?(f.is("li")||!i.test(f.getName())&&!f.is("pre"))&&(k=f.clone()):p&&(k=p.clone()),k?j&&!k.is("li")&&k.renameNode(q):s&&s.is("li")?k=s:(k=l.createElement(q),f&&(r=f.getDirection())&&k.setAttribute("dir",r)),l=m.elementPath)for(j=0,q=l.elements.length;q>j&&(s=l.elements[j],!s.equals(l.block)&&!s.equals(l.blockLimit));j++)CKEDITOR.dtd.$removeEmpty[s.getName()]&&(s=s.clone(),k.moveChildren(s),k.append(s));k.appendBogus(),k.getParent()||h.insertNode(k),k.is("li")&&k.removeAttribute("value"),!CKEDITOR.env.ie||!o||a&&f.getChildCount()||(h.moveToElementEditStart(a?f:k),h.select()),h.moveToElementEditStart(o&&!a?p:k)}else p.is("li")&&(k=h.clone(),k.selectNodeContents(p),k=new CKEDITOR.dom.walker(k),k.evaluator=function(a){return!(e(a)||d(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in CKEDITOR.dtd.$inline&&!(a.getName()in CKEDITOR.dtd.$empty))},(s=k.next())&&s.type==CKEDITOR.NODE_ELEMENT&&s.is("ul","ol")&&(CKEDITOR.env.needsBrFiller?l.createElement("br"):l.createText(" ")).insertBefore(s)),p&&h.moveToElementEditStart(p);h.select(),h.scrollIntoView()}}},enterBr:function(a,c,d,e){if(d=d||b(a)){var f=d.document,g=d.checkEndOfBlock(),j=new CKEDITOR.dom.elementPath(a.getSelection().getStartElement()),k=j.block,l=k&&j.block.getName();e||"li"!=l?(!e&&g&&i.test(l)?(g=k.getDirection())?(f=f.createElement("div"),f.setAttribute("dir",g),f.insertAfter(k),d.setStart(f,0)):(f.createElement("br").insertAfter(k),CKEDITOR.env.gecko&&f.createText("").insertAfter(k),d.setStartAt(k.getNext(),CKEDITOR.env.ie?CKEDITOR.POSITION_BEFORE_START:CKEDITOR.POSITION_AFTER_START)):(a="pre"==l&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?f.createText("\r"):f.createElement("br"),d.deleteContents(),d.insertNode(a),CKEDITOR.env.needsBrFiller?(f.createText("\ufeff").insertAfter(a),g&&(k||j.blockLimit).appendBogus(),a.getNext().$.nodeValue="",d.setStartAt(a.getNext(),CKEDITOR.POSITION_AFTER_START)):d.setStartAt(a,CKEDITOR.POSITION_AFTER_END)),d.collapse(!0),d.select(),d.scrollIntoView()):h(a,c,d,e)}}};var f=CKEDITOR.plugins.enterkey,g=f.enterBr,h=f.enterBlock,i=/^h[1-6]$/}(),function(){function a(a,b){var c={},d=[],e={nbsp:" ",shy:"­",gt:">",lt:"<",amp:"&",apos:"'",quot:'"'};if(a=a.replace(/\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g,function(a,f){var g=b?"&"+f+";":e[f];return c[g]=b?e[f]:"&"+f+";",d.push(g),""}),!b&&a){a=a.split(",");var f,g=document.createElement("div");for(g.innerHTML="&"+a.join(";&")+";",f=g.innerHTML,g=null,g=0;gb&&(b=640),420>c&&(c=420);var e=parseInt((window.screen.height-c)/2,10),f=parseInt((window.screen.width-b)/2,10);d=(d||"location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes")+",width="+b+",height="+c+",top="+e+",left="+f;var g=window.open("",null,d,!0);if(!g)return!1;try{-1==navigator.userAgent.toLowerCase().indexOf(" chrome/")&&(g.moveTo(f,e),g.resizeTo(b,c)),g.focus(),g.location.href=a}catch(h){window.open(a,null,d,!0)}return!0}}),function(){function a(a,b){var c=[];if(!b)return a;for(var d in b)c.push(d+"="+encodeURIComponent(b[d]));return a+(-1!=a.indexOf("?")?"&":"?")+c.join("&")}function b(a){return a+="",a.charAt(0).toUpperCase()+a.substr(1)}function c(){var c=this.getDialog(),d=c.getParentEditor();d._.filebrowserSe=this;var e=d.config["filebrowser"+b(c.getName())+"WindowWidth"]||d.config.filebrowserWindowWidth||"80%",c=d.config["filebrowser"+b(c.getName())+"WindowHeight"]||d.config.filebrowserWindowHeight||"70%",f=this.filebrowser.params||{};f.CKEditor=d.name,f.CKEditorFuncNum=d._.filebrowserFn,f.langCode||(f.langCode=d.langCode),f=a(this.filebrowser.url,f),d.popup(f,e,c,d.config.filebrowserWindowFeatures||d.config.fileBrowserWindowFeatures)}function d(){var a=this.getDialog();return a.getParentEditor()._.filebrowserSe=this,!(!a.getContentElement(this["for"][0],this["for"][1]).getInputElement().$.value||!a.getContentElement(this["for"][0],this["for"][1]).getAction())}function e(b,c,d){var e=d.params||{};e.CKEditor=b.name,e.CKEditorFuncNum=b._.filebrowserFn,e.langCode||(e.langCode=b.langCode),c.action=a(d.url,e),c.filebrowser=d}function f(a,g,h,i){if(i&&i.length)for(var j,k=i.length;k--;)if(j=i[k],"hbox"!=j.type&&"vbox"!=j.type&&"fieldset"!=j.type||f(a,g,h,j.children),j.filebrowser)if("string"==typeof j.filebrowser&&(j.filebrowser={action:"fileButton"==j.type?"QuickUpload":"Browse",target:j.filebrowser}),"Browse"==j.filebrowser.action){var l=j.filebrowser.url;void 0===l&&(l=a.config["filebrowser"+b(g)+"BrowseUrl"],void 0===l&&(l=a.config.filebrowserBrowseUrl)),l&&(j.onClick=c,j.filebrowser.url=l,j.hidden=!1)}else if("QuickUpload"==j.filebrowser.action&&j["for"]&&(l=j.filebrowser.url,void 0===l&&(l=a.config["filebrowser"+b(g)+"UploadUrl"],void 0===l&&(l=a.config.filebrowserUploadUrl)),l)){var m=j.onClick;j.onClick=function(a){var b=a.sender;return m&&!1===m.call(b,a)?!1:d.call(b,a)?(a=b.getDialog().getContentElement(this["for"][0],this["for"][1]).getInputElement(),(b=new CKEDITOR.dom.element(a.$.form))&&((a=b.$.elements.ckCsrfToken)?a=new CKEDITOR.dom.element(a):(a=new CKEDITOR.dom.element("input"),a.setAttributes({name:"ckCsrfToken",type:"hidden"}),b.append(a)),a.setAttribute("value",CKEDITOR.tools.getCsrfToken())),!0):!1},j.filebrowser.url=l,j.hidden=!1,e(a,h.getContents(j["for"][0]).get(j["for"][1]),j.filebrowser)}}function g(a,b,c){if(-1!==c.indexOf(";")){c=c.split(";");for(var d=0;dm.height-l.bottom?"pin":"bottom"),e=m.width/2,e=d.floatSpacePreferRight?"right":0k.width?"rtl"==d.contentsLangDirection?"right":"left":e-l.left>l.right-e?"left":"right",k.width>m.width?(e="left",s=0):(s="left"==e?0m.width&&(e="left"==e?"right":"left",s=0)),h.setStyle(e,c(("pin"==i?r:p)+s+("pin"==i?0:"left"==e?o:-o)))):(i="pin",g("pin"),f(e))}}}();if(e){var g=new CKEDITOR.template('
        "+(a.title?'{voiceLabel}':" ")+'
        '),h=CKEDITOR.document.getBody().append(CKEDITOR.dom.element.createFromHtml(g.output({content:e,id:a.id,langDir:a.lang.dir,langCode:a.langCode,name:a.name,style:"display:none;z-index:"+(d.baseFloatZIndex-1),topId:a.ui.spaceId("top"),voiceLabel:a.title}))),i=CKEDITOR.tools.eventsBuffer(500,f),j=CKEDITOR.tools.eventsBuffer(100,f);h.unselectable(),h.on("mousedown",function(a){a=a.data,a.getTarget().hasAscendant("a",1)||a.preventDefault()}),a.on("focus",function(c){f(c),a.on("change",i.input),b.on("scroll",j.input),b.on("resize",j.input)}),a.on("blur",function(){h.hide(),a.removeListener("change",i.input),b.removeListener("scroll",j.input),b.removeListener("resize",j.input)}),a.on("destroy",function(){b.removeListener("scroll",j.input),b.removeListener("resize",j.input),h.clearCustomData(),h.remove()}),a.focusManager.hasFocus&&h.show(),a.focusManager.add(h,1)}}var b=CKEDITOR.document.getWindow(),c=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("floatingspace",{init:function(b){b.on("loaded",function(){a(this)},null,null,20)}})}(),CKEDITOR.plugins.add("listblock",{requires:"panel",onLoad:function(){var a=CKEDITOR.addTemplate("panel-list",''),b=CKEDITOR.addTemplate("panel-list-item",''),c=CKEDITOR.addTemplate("panel-list-group",'

        {label}

        '),d=/\'/g;CKEDITOR.ui.panel.prototype.addListBlock=function(a,b){return this.addBlock(a,new CKEDITOR.ui.listBlock(this.getHolderElement(),b))},CKEDITOR.ui.listBlock=CKEDITOR.tools.createClass({base:CKEDITOR.ui.panel.block,$:function(a,b){b=b||{};var c=b.attributes||(b.attributes={});(this.multiSelect=!!b.multiSelect)&&(c["aria-multiselectable"]=!0),!c.role&&(c.role="listbox"),this.base.apply(this,arguments),this.element.setAttribute("role",c.role),c=this.keys,c[40]="next",c[9]="next",c[38]="prev",c[CKEDITOR.SHIFT+9]="prev",c[32]=CKEDITOR.env.ie?"mouseup":"click",CKEDITOR.env.ie&&(c[13]="mouseup"),this._.pendingHtml=[],this._.pendingList=[], -this._.items={},this._.groups={}},_:{close:function(){if(this._.started){var b=a.output({items:this._.pendingList.join("")});this._.pendingList=[],this._.pendingHtml.push(b),delete this._.started}},getClick:function(){return this._.click||(this._.click=CKEDITOR.tools.addFunction(function(a){var b=this.toggle(a);this.onClick&&this.onClick(a,b)},this)),this._.click}},proto:{add:function(a,c,e){var f=CKEDITOR.tools.getNextId();this._.started||(this._.started=1,this._.size=this._.size||0),this._.items[a]=f;var g;g=CKEDITOR.tools.htmlEncodeAttr(a).replace(d,"\\'"),a={id:f,val:g,onclick:CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick",clickFn:this._.getClick(),title:CKEDITOR.tools.htmlEncodeAttr(e||a),text:c||a},this._.pendingList.push(b.output(a))},startGroup:function(a){this._.close();var b=CKEDITOR.tools.getNextId();this._.groups[a]=b,this._.pendingHtml.push(c.output({id:b,label:a}))},commit:function(){this._.close(),this.element.appendHtml(this._.pendingHtml.join("")),delete this._.size,this._.pendingHtml=[]},toggle:function(a){var b=this.isMarked(a);return b?this.unmark(a):this.mark(a),!b},hideGroup:function(a){var b=(a=this.element.getDocument().getById(this._.groups[a]))&&a.getNext();a&&(a.setStyle("display","none"),b&&"ul"==b.getName()&&b.setStyle("display","none"))},hideItem:function(a){this.element.getDocument().getById(this._.items[a]).setStyle("display","none")},showAll:function(){var a,b=this._.items,c=this._.groups,d=this.element.getDocument();for(a in b)d.getById(b[a]).setStyle("display","");for(var e in c)b=d.getById(c[e]),a=b.getNext(),b.setStyle("display",""),a&&"ul"==a.getName()&&a.setStyle("display","")},mark:function(a){this.multiSelect||this.unmarkAll(),a=this._.items[a];var b=this.element.getDocument().getById(a);b.addClass("cke_selected"),this.element.getDocument().getById(a+"_option").setAttribute("aria-selected",!0),this.onMark&&this.onMark(b)},unmark:function(a){var b=this.element.getDocument();a=this._.items[a];var c=b.getById(a);c.removeClass("cke_selected"),b.getById(a+"_option").removeAttribute("aria-selected"),this.onUnmark&&this.onUnmark(c)},unmarkAll:function(){var a,b=this._.items,c=this.element.getDocument();for(a in b){var d=b[a];c.getById(d).removeClass("cke_selected"),c.getById(d+"_option").removeAttribute("aria-selected")}this.onUnmark&&this.onUnmark()},isMarked:function(a){return this.element.getDocument().getById(this._.items[a]).hasClass("cke_selected")},focus:function(a){this._.focusIndex=-1;var b,c=this.element.getElementsByTag("a"),d=-1;if(a){for(b=this.element.getDocument().getById(this._.items[a]).getFirst();a=c.getItem(++d);)if(a.equals(b)){this._.focusIndex=d;break}}else this.element.focus();b&&setTimeout(function(){b.focus()},0)}}})}}),function(){var a=' {label}{arrowHtml}',b=CKEDITOR.addTemplate("buttonArrow",''+(CKEDITOR.env.hc?"▼":"")+""),c=CKEDITOR.addTemplate("button",a);CKEDITOR.plugins.add("button",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_BUTTON,CKEDITOR.ui.button.handler)}}),CKEDITOR.UI_BUTTON="button",CKEDITOR.ui.button=function(a){CKEDITOR.tools.extend(this,a,{title:a.label,click:a.click||function(b){b.execCommand(a.command)}}),this._={}},CKEDITOR.ui.button.handler={create:function(a){return new CKEDITOR.ui.button(a)}},CKEDITOR.ui.button.prototype={render:function(a,d){function e(){var b=a.mode;b&&(b=this.modes[b]?void 0!==o[b]?o[b]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,b=a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:b,this.setState(b),this.refresh&&this.refresh())}var f,g=CKEDITOR.env,h=this._.id=CKEDITOR.tools.getNextId(),i="",j=this.command;this._.editor=a;var k={id:h,button:this,editor:a,focus:function(){CKEDITOR.document.getById(h).focus()},execute:function(){this.button.click(a)},attach:function(a){this.button.attach(a)}},l=CKEDITOR.tools.addFunction(function(a){return k.onkey?(a=new CKEDITOR.dom.event(a),!1!==k.onkey(k,a.getKeystroke())):void 0}),m=CKEDITOR.tools.addFunction(function(a){var b;return k.onfocus&&(b=!1!==k.onfocus(k,new CKEDITOR.dom.event(a))),b}),n=0;if(k.clickFn=f=CKEDITOR.tools.addFunction(function(){n&&(a.unlockSelection(1),n=0),k.execute(),g.iOS&&a.focus()}),this.modes){var o={};a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(o[a.mode]=this._.state)},this),a.on("activeFilterChange",e,this),a.on("mode",e,this),!this.readOnly&&a.on("readOnly",e,this)}else j&&(j=a.getCommand(j))&&(j.on("state",function(){this.setState(j.state)},this),i+=j.state==CKEDITOR.TRISTATE_ON?"on":j.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off");this.directional&&a.on("contentDirChanged",function(b){var c=CKEDITOR.document.getById(this._.id),d=c.getFirst();b=b.data,b!=a.lang.dir?c.addClass("cke_"+b):c.removeClass("cke_ltr").removeClass("cke_rtl"),d.setAttribute("style",CKEDITOR.skin.getIconStyle(q,"rtl"==b,this.icon,this.iconOffset))},this),j||(i+="off");var p=this.name||this.command,q=p;return this.icon&&!/\./.test(this.icon)&&(q=this.icon,this.icon=null),i={id:h,name:p,iconName:q,label:this.label,cls:this.className||"",state:i,ariaDisabled:"disabled"==i?"true":"false",title:this.title,titleJs:g.gecko&&!g.hc?"":(this.title||"").replace("'",""),hasArrow:this.hasArrow?"true":"false",keydownFn:l,focusFn:m,clickFn:f,style:CKEDITOR.skin.getIconStyle(q,"rtl"==a.lang.dir,this.icon,this.iconOffset),arrowHtml:this.hasArrow?b.output():""},c.output(i,d),this.onRender&&this.onRender(),k},setState:function(a){if(this._.state==a)return!1;this._.state=a;var b=CKEDITOR.document.getById(this._.id);return b?(b.setState(a,"cke_button"),a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled"),this.hasArrow?(a=a==CKEDITOR.TRISTATE_ON?this._.editor.lang.button.selectedLabel.replace(/%1/g,this.label):this.label,CKEDITOR.document.getById(this._.id+"_label").setText(a)):a==CKEDITOR.TRISTATE_ON?b.setAttribute("aria-pressed",!0):b.removeAttribute("aria-pressed"),!0):!1},getState:function(){return this._.state},toFeature:function(a){if(this._.feature)return this._.feature;var b=this;return this.allowedContent||this.requiredContent||!this.command||(b=a.getCommand(this.command)||b),this._.feature=b}},CKEDITOR.ui.prototype.addButton=function(a,b){this.add(a,CKEDITOR.UI_BUTTON,b)}}(),CKEDITOR.plugins.add("richcombo",{requires:"floatpanel,listblock,button",beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_RICHCOMBO,CKEDITOR.ui.richCombo.handler)}}),function(){var a='{label}{label}'+(CKEDITOR.env.hc?"▼":CKEDITOR.env.air?" ":"")+""),b=CKEDITOR.addTemplate("combo",a);CKEDITOR.UI_RICHCOMBO="richcombo",CKEDITOR.ui.richCombo=CKEDITOR.tools.createClass({$:function(a){CKEDITOR.tools.extend(this,a,{canGroup:!1,title:a.label,modes:{wysiwyg:1},editorFocus:1}),a=this.panel||{},delete this.panel,this.id=CKEDITOR.tools.getNextNumber(),this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document,a.className="cke_combopanel",a.block={multiSelect:a.multiSelect,attributes:a.attributes},a.toolbarRelated=!0,this._={panelDefinition:a,items:{}}},proto:{renderHtml:function(a){var b=[];return this.render(a,b),b.join("")},render:function(a,c){function d(){if(this.getState()!=CKEDITOR.TRISTATE_ON){var b=this.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;a.readOnly&&!this.readOnly&&(b=CKEDITOR.TRISTATE_DISABLED),this.setState(b),this.setValue(""),b!=CKEDITOR.TRISTATE_DISABLED&&this.refresh&&this.refresh()}}var e=CKEDITOR.env,f="cke_"+this.id,g=CKEDITOR.tools.addFunction(function(b){l&&(a.unlockSelection(1),l=0),i.execute(b)},this),h=this,i={id:f,combo:this,focus:function(){CKEDITOR.document.getById(f).getChild(1).focus()},execute:function(b){var c=h._;if(c.state!=CKEDITOR.TRISTATE_DISABLED)if(h.createPanel(a),c.on)c.panel.hide();else{h.commit();var d=h.getValue();d?c.list.mark(d):c.list.unmarkAll(),c.panel.showBlock(h.id,new CKEDITOR.dom.element(b),4)}},clickFn:g};a.on("activeFilterChange",d,this),a.on("mode",d,this),a.on("selectionChange",d,this),!this.readOnly&&a.on("readOnly",d,this);var j=CKEDITOR.tools.addFunction(function(b,c){b=new CKEDITOR.dom.event(b);var d=b.getKeystroke();switch(40==d&&a.once("panelShow",function(a){a.data._.panel._.currentBlock.onKeyDown(40)}),d){case 13:case 32:case 40:CKEDITOR.tools.callFunction(g,c);break;default:i.onkey(i,d)}b.preventDefault()}),k=CKEDITOR.tools.addFunction(function(){i.onfocus&&i.onfocus()}),l=0;return i.keyDownFn=j,e={id:f,name:this.name||this.command,label:this.label,title:this.title,cls:this.className||"",titleJs:e.gecko&&!e.hc?"":(this.title||"").replace("'",""),keydownFn:j,focusFn:k,clickFn:g},b.output(e,c),this.onRender&&this.onRender(),i},createPanel:function(a){if(!this._.panel){var b=this._.panelDefinition,c=this._.panelDefinition.block,d=b.parent||CKEDITOR.document.getBody(),e="cke_combopanel__"+this.name,f=new CKEDITOR.ui.floatPanel(a,d,b),g=f.addListBlock(this.id,c),h=this;f.onShow=function(){this.element.addClass(e),h.setState(CKEDITOR.TRISTATE_ON),h._.on=1,h.editorFocus&&!a.focusManager.hasFocus&&a.focus(),h.onOpen&&h.onOpen(),a.once("panelShow",function(){g.focus(!g.multiSelect&&h.getValue())})},f.onHide=function(b){this.element.removeClass(e),h.setState(h.modes&&h.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),h._.on=0,!b&&h.onClose&&h.onClose()},f.onEscape=function(){f.hide(1)},g.onClick=function(a,b){h.onClick&&h.onClick.call(h,a,b),f.hide()},this._.panel=f,this._.list=g,f.getBlock(this.id).onHide=function(){h._.on=0,h.setState(CKEDITOR.TRISTATE_OFF)},this.init&&this.init()}},setValue:function(a,b){this._.value=a;var c=this.document.getById("cke_"+this.id+"_text");c&&(a||b?c.removeClass("cke_combo_inlinelabel"):(b=this.label,c.addClass("cke_combo_inlinelabel")),c.setText("undefined"!=typeof b?b:a))},getValue:function(){return this._.value||""},unmarkAll:function(){this._.list.unmarkAll()},mark:function(a){this._.list.mark(a)},hideItem:function(a){this._.list.hideItem(a)},hideGroup:function(a){this._.list.hideGroup(a)},showAll:function(){this._.list.showAll()},add:function(a,b,c){this._.items[a]=c||a,this._.list.add(a,b,c)},startGroup:function(a){this._.list.startGroup(a)},commit:function(){this._.committed||(this._.list.commit(),this._.committed=1,CKEDITOR.ui.fire("ready",this)),this._.committed=1},setState:function(a){if(this._.state!=a){var b=this.document.getById("cke_"+this.id);b.setState(a,"cke_combo"),a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled"),this._.state=a}},getState:function(){return this._.state},enable:function(){this._.state==CKEDITOR.TRISTATE_DISABLED&&this.setState(this._.lastState)},disable:function(){this._.state!=CKEDITOR.TRISTATE_DISABLED&&(this._.lastState=this._.state,this.setState(CKEDITOR.TRISTATE_DISABLED))}},statics:{handler:{create:function(a){return new CKEDITOR.ui.richCombo(a)}}}}),CKEDITOR.ui.prototype.addRichCombo=function(a,b){this.add(a,CKEDITOR.UI_RICHCOMBO,b)}}(),CKEDITOR.plugins.add("format",{requires:"richcombo",init:function(a){if(!a.blockless){for(var b=a.config,c=a.lang.format,d=b.format_tags.split(";"),e={},f=0,g=[],h=0;h"),c&&c.indent&&(this._.indentation+=this.indentationChars)),c&&c.breakAfterOpen&&this.lineBreak(),"pre"==a&&(this._.inPre=1)},attribute:function(a,b){"string"==typeof b&&(this.forceSimpleAmpersand&&(b=b.replace(/&/g,"&")),b=CKEDITOR.tools.htmlEncodeAttr(b)),this._.output.push(" ",a,'="',b,'"')},closeTag:function(a){var b=this._.rules[a];b&&b.indent&&(this._.indentation=this._.indentation.substr(this.indentationChars.length)),this._.indent?this.indentation():b&&b.breakBeforeClose&&(this.lineBreak(),this.indentation()),this._.output.push(""),"pre"==a&&(this._.inPre=0),b&&b.breakAfterClose&&(this.lineBreak(),this._.needsSpace=b.needsSpace),this._.afterCloser=1},text:function(a){this._.indent&&(this.indentation(),!this._.inPre&&(a=CKEDITOR.tools.ltrim(a))),this._.output.push(a)},comment:function(a){this._.indent&&this.indentation(),this._.output.push("")},lineBreak:function(){!this._.inPre&&0e;e++)b=a.charCodeAt(e),d.push(b);return"String.fromCharCode("+d.join(",")+")"}function c(b,c){var d,e,f=b.plugins.link,g=f.compiledProtectionFunction.params;e=[f.compiledProtectionFunction.name,"("];for(var h=0;h0&&e.push(","),e.push("'",d?a(encodeURIComponent(c[f])):"","'");return e.push(")"),e.join("")}function d(a){a=a.config.emailProtection||"";var b;return a&&"encode"!=a&&(b={},a.replace(/^([^(]+)\(([^)]+)\)$/,function(a,c,d){b.name=c,b.params=[],d.replace(/[^,\s]+/g,function(a){b.params.push(a)})})),b}CKEDITOR.plugins.add("link",{requires:"dialog,fakeobjects",onLoad:function(){function a(a){return c.replace(/%1/g,"rtl"==a?"right":"left").replace(/%2/g,"cke_contents_"+a)}var b="background:url("+CKEDITOR.getUrl(this.path+"images"+(CKEDITOR.env.hidpi?"/hidpi":"")+"/anchor.png")+") no-repeat %1 center;border:1px dotted #00f;background-size:16px;",c=".%2 a.cke_anchor,.%2 a.cke_anchor_empty,.cke_editable.%2 a[name],.cke_editable.%2 a[data-cke-saved-name]{"+b+"padding-%1:18px;cursor:auto;}.%2 img.cke_anchor{"+b+"width:16px;min-height:15px;height:1.15em;vertical-align:text-bottom;}";CKEDITOR.addCss(a("ltr")+a("rtl"))},init:function(a){var b="a[!href]";CKEDITOR.dialog.isTabEnabled(a,"link","advanced")&&(b=b.replace("]",",accesskey,charset,dir,id,lang,name,rel,tabindex,title,type]{*}(*)")),CKEDITOR.dialog.isTabEnabled(a,"link","target")&&(b=b.replace("]",",target,onclick]")),a.addCommand("link",new CKEDITOR.dialogCommand("link",{allowedContent:b,requiredContent:"a[href]"})),a.addCommand("anchor",new CKEDITOR.dialogCommand("anchor",{allowedContent:"a[!name,id]",requiredContent:"a[name]"})),a.addCommand("unlink",new CKEDITOR.unlinkCommand),a.addCommand("removeAnchor",new CKEDITOR.removeAnchorCommand),a.setKeystroke(CKEDITOR.CTRL+76,"link"),a.ui.addButton&&(a.ui.addButton("Link",{label:a.lang.link.toolbar,command:"link",toolbar:"links,10"}),a.ui.addButton("Unlink",{label:a.lang.link.unlink,command:"unlink",toolbar:"links,20"}),a.ui.addButton("Anchor",{label:a.lang.link.anchor.toolbar,command:"anchor",toolbar:"links,30"})),CKEDITOR.dialog.add("link",this.path+"dialogs/link.js"),CKEDITOR.dialog.add("anchor",this.path+"dialogs/anchor.js"),a.on("doubleclick",function(b){var c=CKEDITOR.plugins.link.getSelectedLink(a)||b.data.element;c.isReadOnly()||(c.is("a")?(b.data.dialog=!c.getAttribute("name")||c.getAttribute("href")&&c.getChildCount()?"link":"anchor",b.data.link=c):CKEDITOR.plugins.link.tryRestoreFakeAnchor(a,c)&&(b.data.dialog="anchor"))},null,null,0),a.on("doubleclick",function(b){b.data.dialog in{link:1,anchor:1}&&b.data.link&&a.getSelection().selectElement(b.data.link)},null,null,20),a.addMenuItems&&a.addMenuItems({anchor:{label:a.lang.link.anchor.menu,command:"anchor",group:"anchor",order:1},removeAnchor:{label:a.lang.link.anchor.remove,command:"removeAnchor",group:"anchor",order:5},link:{label:a.lang.link.menu,command:"link",group:"link",order:1},unlink:{label:a.lang.link.unlink,command:"unlink",group:"link",order:5}}),a.contextMenu&&a.contextMenu.addListener(function(b){if(!b||b.isReadOnly())return null;if(b=CKEDITOR.plugins.link.tryRestoreFakeAnchor(a,b),!b&&!(b=CKEDITOR.plugins.link.getSelectedLink(a)))return null;var c={};return b.getAttribute("href")&&b.getChildCount()&&(c={link:CKEDITOR.TRISTATE_OFF,unlink:CKEDITOR.TRISTATE_OFF}),b&&b.hasAttribute("name")&&(c.anchor=c.removeAnchor=CKEDITOR.TRISTATE_OFF),c}),this.compiledProtectionFunction=d(a)},afterInit:function(a){a.dataProcessor.dataFilter.addRules({elements:{a:function(b){return b.attributes.name?b.children.length?null:a.createFakeParserElement(b,"cke_anchor","anchor"):null}}});var b=a._.elementsPath&&a._.elementsPath.filters;b&&b.push(function(b,c){return"a"!=c||!CKEDITOR.plugins.link.tryRestoreFakeAnchor(a,b)&&(!b.getAttribute("name")||b.getAttribute("href")&&b.getChildCount())?void 0:"anchor"})}});var e=/^javascript:/,f=/^mailto:([^?]+)(?:\?(.+))?$/,g=/subject=([^;?:@&=$,\/]*)/i,h=/body=([^;?:@&=$,\/]*)/i,i=/^#(.*)$/,j=/^((?:http|https|ftp|news):\/\/)?(.*)$/,k=/^(_(?:self|top|parent|blank))$/,l=/^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/,m=/^javascript:([^(]+)\(([^)]+)\)$/,n=/\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/,o=/(?:^|,)([^=]+)=(\d+|yes|no)/gi,p={id:"advId",dir:"advLangDir",accessKey:"advAccessKey",name:"advName",lang:"advLangCode",tabindex:"advTabIndex",title:"advTitle",type:"advContentType","class":"advCSSClasses",charset:"advCharset",style:"advStyles",rel:"advRel"};CKEDITOR.plugins.link={getSelectedLink:function(a){var b=a.getSelection(),c=b.getSelectedElement();return c&&c.is("a")?c:(b=b.getRanges()[0])?(b.shrink(CKEDITOR.SHRINK_TEXT),a.elementPath(b.getCommonAncestor()).contains("a",1)):null},getEditorAnchors:function(a){for(var b,c=a.editable(),d=c.isInline()&&!a.plugins.divarea?a.document:c,c=d.getElementsByTag("a"),d=d.getElementsByTag("img"),e=[],f=0;b=c.getItem(f++);)(b.data("cke-saved-name")||b.hasAttribute("name"))&&e.push({name:b.data("cke-saved-name")||b.getAttribute("name"),id:b.getAttribute("id")});for(f=0;b=d.getItem(f++);)(b=this.tryRestoreFakeAnchor(a,b))&&e.push({name:b.getAttribute("name"),id:b.getAttribute("id")});return e},fakeAnchor:!0,tryRestoreFakeAnchor:function(a,b){if(b&&b.data("cke-real-element-type")&&"anchor"==b.data("cke-real-element-type")){var c=a.restoreRealElement(b);if(c.data("cke-saved-name"))return c}},parseLinkAttributes:function(a,b){var c,d=b&&(b.data("cke-saved-href")||b.getAttribute("href"))||"",q=a.plugins.link.compiledProtectionFunction,r=a.config.emailProtection,s={};if(d.match(e)&&("encode"==r?d=d.replace(l,function(a,b,c){return c=c||"","mailto:"+String.fromCharCode.apply(String,b.split(","))+c.replace(/\\'/g,"'")}):r&&d.replace(m,function(a,b,c){if(b==q.name){s.type="email",a=s.email={},b=/(^')|('$)/g,c=c.match(/[^,\s]+/g);for(var d,e,f=c.length,g=0;f>g;g++)d=decodeURIComponent,e=c[g].replace(b,"").replace(/\\'/g,"'"),e=d(e),d=q.params[g].toLowerCase(),a[d]=e;a.address=[a.name,a.domain].join("@")}})),!s.type)if(r=d.match(i))s.type="anchor",s.anchor={},s.anchor.name=s.anchor.id=r[1];else if(r=d.match(f)){c=d.match(g),d=d.match(h),s.type="email";var t=s.email={};t.address=r[1],c&&(t.subject=decodeURIComponent(c[1])),d&&(t.body=decodeURIComponent(d[1]))}else d&&(c=d.match(j))&&(s.type="url",s.url={},s.url.protocol=c[1],s.url.url=c[2]);if(b){if(d=b.getAttribute("target"))s.target={type:d.match(k)?d:"frame",name:d};else if(d=(d=b.data("cke-pa-onclick")||b.getAttribute("onclick"))&&d.match(n))for(s.target={type:"popup",name:d[1]};r=o.exec(d[2]);)"yes"!=r[2]&&"1"!=r[2]||r[1]in{height:1,width:1,top:1,left:1}?isFinite(r[2])&&(s.target[r[1]]=r[2]):s.target[r[1]]=!0;var u,d={};for(u in p)(r=b.getAttribute(u))&&(d[p[u]]=r);(u=b.data("cke-saved-name")||d.advName)&&(d.advName=u),CKEDITOR.tools.isEmpty(d)||(s.advanced=d)}return s},getLinkAttributes:function(d,e){var f=d.config.emailProtection||"",g={};switch(e.type){case"url":var f=e.url&&void 0!==e.url.protocol?e.url.protocol:"http://",h=e.url&&CKEDITOR.tools.trim(e.url.url)||"";g["data-cke-saved-href"]=0===h.indexOf("/")?h:f+h;break;case"anchor":f=e.anchor&&e.anchor.id,g["data-cke-saved-href"]="#"+(e.anchor&&e.anchor.name||f||"");break;case"email":var i=e.email,h=i.address;switch(f){case"":case"encode":var j=encodeURIComponent(i.subject||""),k=encodeURIComponent(i.body||""),i=[];j&&i.push("subject="+j),k&&i.push("body="+k),i=i.length?"?"+i.join("&"):"","encode"==f?(f=["javascript:void(location.href='mailto:'+",b(h)],i&&f.push("+'",a(i),"'"),f.push(")")):f=["mailto:",h,i];break;default:f=h.split("@",2),i.name=f[0],i.domain=f[1],f=["javascript:",c(d,i)]}g["data-cke-saved-href"]=f.join("")}if(e.target)if("popup"==e.target.type){for(var f=["window.open(this.href, '",e.target.name||"","', '"],l="resizable status location toolbar menubar fullscreen scrollbars dependent".split(" "),h=l.length,j=function(a){e.target[a]&&l.push(a+"="+e.target[a])},i=0;h>i;i++)l[i]+=e.target[l[i]]?"=yes":"=no";j("width"),j("left"),j("height"),j("top"),f.push(l.join(","),"'); return false;"),g["data-cke-pa-onclick"]=f.join("")}else"notSet"!=e.target.type&&e.target.name&&(g.target=e.target.name);if(e.advanced){for(var m in p)(f=e.advanced[p[m]])&&(g[m]=f);g.name&&(g["data-cke-saved-name"]=g.name)}g["data-cke-saved-href"]&&(g.href=g["data-cke-saved-href"]),m={target:1,onclick:1,"data-cke-pa-onclick":1,"data-cke-saved-name":1},e.advanced&&CKEDITOR.tools.extend(m,p);for(var n in g)delete m[n];return{set:g,removed:CKEDITOR.tools.objectKeys(m)}}},CKEDITOR.unlinkCommand=function(){},CKEDITOR.unlinkCommand.prototype={exec:function(a){var b=new CKEDITOR.style({element:"a",type:CKEDITOR.STYLE_INLINE,alwaysRemoveElement:1});a.removeStyle(b)},refresh:function(a,b){var c=b.lastElement&&b.lastElement.getAscendant("a",!0);c&&"a"==c.getName()&&c.getAttribute("href")&&c.getChildCount()?this.setState(CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)},contextSensitive:1,startDisabled:1,requiredContent:"a[href]"},CKEDITOR.removeAnchorCommand=function(){},CKEDITOR.removeAnchorCommand.prototype={exec:function(a){var b,c=a.getSelection(),d=c.createBookmarks();c&&(b=c.getSelectedElement())&&(b.getChildCount()?b.is("a"):CKEDITOR.plugins.link.tryRestoreFakeAnchor(a,b))?b.remove(1):(b=CKEDITOR.plugins.link.getSelectedLink(a))&&(b.hasAttribute("href")?(b.removeAttributes({name:1,"data-cke-saved-name":1}),b.removeClass("cke_anchor")):b.remove(1)),c.selectBookmarks(d)},requiredContent:"a[name]"},CKEDITOR.tools.extend(CKEDITOR.config,{linkShowAdvancedTab:!0,linkShowTargetTab:!0})}(),function(){function a(a,b,c){return l(b)&&l(c)&&c.equals(b.getNext(function(a){return!(W(a)||X(a)||m(a))}))}function b(a){this.upper=a[0],this.lower=a[1],this.set.apply(this,a.slice(2))}function c(a){var b=a.element; -if(b&&l(b)&&(b=b.getAscendant(a.triggers,!0))&&a.editable.contains(b)){var c=g(b);if("true"==c.getAttribute("contenteditable"))return b;if(c.is(a.triggers))return c}return null}function d(a,b,c){return u(a,b),u(a,c),a=b.size.bottom,c=c.size.top,a&&c?0|(a+c)/2:a||c}function e(a,b,c){return b=b[c?"getPrevious":"getNext"](function(b){return b&&b.type==CKEDITOR.NODE_TEXT&&!W(b)||l(b)&&!m(b)&&!k(a,b)})}function f(a,b,c){return a>b&&c>a}function g(a,b){if(a.data("cke-editable"))return null;for(b||(a=a.getParent());a&&!a.data("cke-editable");){if(a.hasAttribute("contenteditable"))return a;a=a.getParent()}return null}function h(a){var b=a.doc,c=A('',b),d=CKEDITOR.getUrl(this.path+"images/"+(B.hidpi?"hidpi/":"")+"icon"+(a.rtl?"-rtl":"")+".png");for(y(c,{attach:function(){return this.wrap.getParent()||this.wrap.appendTo(a.editable,!0),this},lineChildren:[y(A('',b),{base:S+"height:17px;width:17px;"+(a.rtl?"left":"right")+":17px;background:url("+d+") center no-repeat "+a.boxColor+";cursor:pointer;"+(B.hc?"font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;":"")+(B.hidpi?"background-size: 9px 10px;":""),looks:["top:-8px; border-radius: 2px;","top:-17px; border-radius: 2px 2px 0px 0px;","top:-1px; border-radius: 0px 0px 2px 2px;"]}),y(A(U,b),{base:T+"left:0px;border-left-color:"+a.boxColor+";",looks:["border-width:8px 0 8px 8px;top:-8px","border-width:8px 0 0 8px;top:-8px","border-width:0 0 8px 8px;top:0px"]}),y(A(U,b),{base:T+"right:0px;border-right-color:"+a.boxColor+";",looks:["border-width:8px 8px 8px 0;top:-8px","border-width:8px 8px 0 0;top:-8px","border-width:0 8px 8px 0;top:0px"]})],detach:function(){return this.wrap.getParent()&&this.wrap.remove(),this},mouseNear:function(){u(a,this);var b=a.holdDistance,c=this.size;return!!(c&&f(a.mouse.y,c.top-b,c.bottom+b)&&f(a.mouse.x,c.left-b,c.right+b))},place:function(){var b=a.view,c=a.editable,d=a.trigger,e=d.upper,g=d.lower,h=e||g,i=h.getParent(),j={};this.trigger=d,e&&u(a,e,!0),g&&u(a,g,!0),u(a,i,!0),a.inInlineMode&&v(a,!0),i.equals(c)?(j.left=b.scroll.x,j.right=-b.scroll.x,j.width=""):(j.left=h.size.left-h.size.margin.left+b.scroll.x-(a.inInlineMode?b.editable.left+b.editable.border.left:0),j.width=h.size.outerWidth+h.size.margin.left+h.size.margin.right+b.scroll.x,j.right=""),e&&g?j.top=e.size.margin.bottom===g.size.margin.top?0|e.size.bottom+e.size.margin.bottom/2:e.size.margin.bottomB.version?" ":M,e=a.hotNode&&a.hotNode.getText()==d&&a.element.equals(a.hotNode)&&a.lastCmdDirection===!!b;i(a,function(d){e&&a.hotNode&&a.hotNode.remove(),d[b?"insertAfter":"insertBefore"](c),d.setAttributes({"data-cke-magicline-hot":1,"data-cke-magicline-dir":!!b}),a.lastCmdDirection=!!b}),B.ie||a.enterMode==CKEDITOR.ENTER_BR||a.hotNode.scrollIntoView(),a.line.detach()}return function(f){f=f.getSelection().getStartElement();var h;if(f=f.getAscendant(Q,1),!p(a,f)&&f&&!f.equals(a.editable)&&!f.contains(a.editable)){(h=g(f))&&"false"==h.getAttribute("contenteditable")&&(f=h),a.element=f,h=e(a,f,!b);var i;l(h)&&h.is(a.triggers)&&h.is(P)&&(!e(a,h,!b)||(i=e(a,h,!b))&&l(i)&&i.is(a.triggers))?d(h):(i=c(a,f),l(i)&&(e(a,i,!b)?(f=e(a,i,!b))&&l(f)&&f.is(a.triggers)&&d(i):d(i)))}}}()}}function k(a,b){if(!b||b.type!=CKEDITOR.NODE_ELEMENT||!b.$)return!1;var c=a.line;return c.wrap.equals(b)||c.wrap.contains(b)}function l(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.$}function m(a){if(!l(a))return!1;var b;return(b=n(a))||(l(a)?(b={left:1,right:1,center:1},b=!(!b[a.getComputedStyle("float")]&&!b[a.getAttribute("align")])):b=!1),b}function n(a){return!!{absolute:1,fixed:1}[a.getComputedStyle("position")]}function o(a,b){return l(b)?b.is(a.triggers):null}function p(a,b){if(!b)return!1;for(var c=b.getParents(1),d=c.length;d--;)for(var e=a.tabuList.length;e--;)if(c[d].hasAttribute(a.tabuList[e]))return!0;return!1}function q(a,b,c){return(b=b[c?"getLast":"getFirst"](function(b){return a.isRelevant(b)&&!b.is(O)}))?(u(a,b),c?b.size.top>a.mouse.y:b.size.bottom(a.inInlineMode?e.editable.top+e.editable.height/2:Math.min(e.editable.height,e.pane.height)/2),c=c[h?"getLast":"getFirst"](function(a){return!(W(a)||X(a))});return c?(k(a,c)&&(c=a.line.wrap[h?"getPrevious":"getNext"](function(a){return!(W(a)||X(a))})),l(c)&&!m(c)&&o(a,c)?(u(a,c),!h&&0<=c.size.top&&f(d.y,0,c.size.top+g)?(a=a.inInlineMode||0===e.scroll.y?J:L,new b([null,c,F,I,a])):h&&c.size.bottom<=e.pane.height&&f(d.y,c.size.bottom-g,e.pane.height)?(a=a.inInlineMode||f(c.size.bottom,e.pane.height-g,e.pane.height)?K:L,new b([c,null,G,I,a])):null):null):null}function s(a){var d=a.mouse,g=a.view,h=a.triggerOffset,i=c(a);if(!i)return null;u(a,i);var j,k,h=Math.min(h,0|i.size.outerHeight/2),n=[];if(f(d.y,i.size.top-1,i.size.top+h))k=!1;else{if(!f(d.y,i.size.bottom-h,i.size.bottom+1))return null;k=!0}if(m(i)||q(a,i,k)||i.getParent().is(N))return null;var p=e(a,i,!k);if(p){if(p&&p.type==CKEDITOR.NODE_TEXT)return null;if(l(p)){if(m(p)||!o(a,p)||p.getParent().is(N))return null;n=[p,i][k?"reverse":"concat"]().concat([H,I])}}else i.equals(a.editable[k?"getLast":"getFirst"](a.isRelevant))?(v(a),k&&f(d.y,i.size.bottom-h,g.pane.height)&&f(i.size.bottom,g.pane.height-h,g.pane.height)?j=K:f(d.y,0,i.size.top+h)&&(j=J)):j=L,n=[null,i][k?"reverse":"concat"]().concat([k?G:F,I,j,i.equals(a.editable[k?"getLast":"getFirst"](a.isRelevant))?k?K:J:L]);return 0 in n?new b(n):null}function t(a,b,c,d){for(var e=b.getDocumentPosition(),f={},g={},h={},i={},j=Z.length;j--;)f[Z[j]]=parseInt(b.getComputedStyle.call(b,"border-"+Z[j]+"-width"),10)||0,h[Z[j]]=parseInt(b.getComputedStyle.call(b,"padding-"+Z[j]),10)||0,g[Z[j]]=parseInt(b.getComputedStyle.call(b,"margin-"+Z[j]),10)||0;return c&&!d||w(a,d),i.top=e.y-(c?0:a.view.scroll.y),i.left=e.x-(c?0:a.view.scroll.x),i.outerWidth=b.$.offsetWidth,i.outerHeight=b.$.offsetHeight,i.height=i.outerHeight-(h.top+h.bottom+f.top+f.bottom),i.width=i.outerWidth-(h.left+h.right+f.left+f.right),i.bottom=i.top+i.outerHeight,i.right=i.left+i.outerWidth,a.inInlineMode&&(i.scroll={top:b.$.scrollTop,left:b.$.scrollLeft}),y({border:f,padding:h,margin:g,ignoreScroll:c},i,!0)}function u(a,b,c){if(!l(b))return b.size=null;if(b.size){if(b.size.ignoreScroll==c&&b.size.date>new Date-R)return null}else b.size={};return y(b.size,t(a,b,c),{date:+new Date},!0)}function v(a,b){a.view.editable=t(a,a.editable,b,!0)}function w(a,b){a.view||(a.view={});var c=a.view;if(!(!b&&c&&c.date>new Date-R)){var d=a.win,c=d.getScrollPosition(),d=d.getViewPaneSize();y(a.view,{scroll:{x:c.x,y:c.y,width:a.doc.$.documentElement.scrollWidth-d.width,height:a.doc.$.documentElement.scrollHeight-d.height},pane:{width:d.width,height:d.height,bottom:d.height+c.y},date:+new Date},!0)}}function x(a,c,d,e){for(var f=e,g=e,h=0,i=!1,j=!1,k=a.view.pane.height,l=a.mouse;l.y+hd.left-e.x&&cd.top-e.y&&bCKEDITOR.env.version,D=CKEDITOR.dtd,E={},F=128,G=64,H=32,I=16,J=4,K=2,L=1,M=" ",N=D.$listItem,O=D.$tableContent,P=y({},D.$nonEditable,D.$empty),Q=D.$block,R=100,S="width:0px;height:0px;padding:0px;margin:0px;display:block;z-index:9999;color:#fff;position:absolute;font-size: 0px;line-height:0px;",T=S+"border-color:transparent;display:block;border-style:solid;",U=""+M+"";E[CKEDITOR.ENTER_BR]="br",E[CKEDITOR.ENTER_P]="p",E[CKEDITOR.ENTER_DIV]="div",b.prototype={set:function(a,b,c){return this.properties=a+b+(c||L),this},is:function(a){return(this.properties&a)==a}};var V=function(){function a(a,b){var c=a.$.elementFromPoint(b.x,b.y);return c&&c.nodeType?new CKEDITOR.dom.element(c):null}return function(b,c,d){if(!b.mouse)return null;var e=b.doc,f=b.line.wrap;d=d||b.mouse;var g=a(e,d);return c&&k(b,g)&&(f.hide(),g=a(e,d),f.show()),!g||g.type!=CKEDITOR.NODE_ELEMENT||!g.$||B.ie&&9>B.version&&!b.boundary.equals(g)&&!b.boundary.contains(g)?null:g}}(),W=CKEDITOR.dom.walker.whitespaces(),X=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_COMMENT),Y=function(){function b(b){var e,g,h,i=b.element;if(!l(i)||i.contains(b.editable)||i.isReadOnly())return null;if(h=x(b,function(a,b){return!b.equals(a)},function(a,b){return V(a,!0,b)},i),e=h.upper,g=h.lower,a(b,e,g))return h.set(H,8);if(e&&i.contains(e))for(;!e.getParent().equals(i);)e=e.getParent();else e=i.getFirst(function(a){return c(b,a)});if(g&&i.contains(g))for(;!g.getParent().equals(i);)g=g.getParent();else g=i.getLast(function(a){return c(b,a)});if(!e||!g)return null;if(u(b,e),u(b,g),!f(b.mouse.y,e.size.top,g.size.bottom))return null;for(var j,k,m,n,i=Number.MAX_VALUE;g&&!g.equals(e)&&(k=e.getNext(b.isRelevant));)j=Math.abs(d(b,e,k)-b.mouse.y),i>j&&(i=j,m=e,n=k),e=k,u(b,e);return m&&n&&f(b.mouse.y,m.size.top,n.size.bottom)?(h.upper=m,h.lower=n,h.set(H,8)):null}function c(a,b){return!(b&&b.type==CKEDITOR.NODE_TEXT||X(b)||m(b)||k(a,b)||b.type==CKEDITOR.NODE_ELEMENT&&b.$&&b.is("br"))}return function(c){var d,e=b(c);if(d=e){d=e.upper;var f=e.lower;d=!d||!f||m(f)||m(d)||f.equals(d)||d.equals(f)||f.contains(d)||d.contains(f)?!1:!!(o(c,d)&&o(c,f)&&a(c,d,f))}return d?e:null}}(),Z=["top","left","right","bottom"]}(),CKEDITOR.config.magicline_keystrokePrevious=CKEDITOR.CTRL+CKEDITOR.SHIFT+51,CKEDITOR.config.magicline_keystrokeNext=CKEDITOR.CTRL+CKEDITOR.SHIFT+52,function(){function a(a){if(!a||a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())return[];for(var b=[],c=["style","className"],d=0;d=0;c--){var d=b[c][0],e=b[c][1];e?d.insertBefore(e):d.appendTo(a)}}function c(c,d){var e=a(c),f={},g=c.$;return d||(f["class"]=g.className||"",g.className=""),f.inline=g.style.cssText||"",d||(g.style.cssText="position: static; overflow: visible"),b(e),f}function d(c,d){var e=a(c),f=c.$;"class"in d&&(f.className=d["class"]),"inline"in d&&(f.style.cssText=d.inline),b(e)}function e(a){if(!a.editable().isInline()){var b,c=CKEDITOR.instances;for(b in c){var d=c[b];"wysiwyg"!=d.mode||d.readOnly||(d=d.document.getBody(),d.setAttribute("contentEditable",!1),d.setAttribute("contentEditable",!0))}a.editable().hasFocus&&(a.toolbox.focus(),a.focus())}}CKEDITOR.plugins.add("maximize",{init:function(a){function b(){var b=k.getViewPaneSize();a.resize(b.width,b.height,null,!0)}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var f,g,h,i=a.lang,j=CKEDITOR.document,k=j.getWindow(),l=CKEDITOR.TRISTATE_OFF;a.addCommand("maximize",{modes:{wysiwyg:!CKEDITOR.env.iOS,source:!CKEDITOR.env.iOS},readOnly:1,editorFocus:!1,exec:function(){var m=a.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}),n=a.ui.space("contents");if("wysiwyg"==a.mode){var o=a.getSelection();f=o&&o.getRanges(),g=k.getScrollPosition()}else{var p=a.editable().$;f=!CKEDITOR.env.ie&&[p.selectionStart,p.selectionEnd],g=[p.scrollLeft,p.scrollTop]}if(this.state==CKEDITOR.TRISTATE_OFF){for(k.on("resize",b),h=k.getScrollPosition(),o=a.container;o=o.getParent();)o.setCustomData("maximize_saved_styles",c(o)),o.setStyle("z-index",a.config.baseFloatZIndex-5);n.setCustomData("maximize_saved_styles",c(n,!0)),m.setCustomData("maximize_saved_styles",c(m,!0)),n={overflow:CKEDITOR.env.webkit?"":"hidden",width:0,height:0},j.getDocumentElement().setStyles(n),!CKEDITOR.env.gecko&&j.getDocumentElement().setStyle("position","fixed"),CKEDITOR.env.gecko&&CKEDITOR.env.quirks||j.getBody().setStyles(n),CKEDITOR.env.ie?setTimeout(function(){k.$.scrollTo(0,0)},0):k.$.scrollTo(0,0),m.setStyle("position",CKEDITOR.env.gecko&&CKEDITOR.env.quirks?"fixed":"absolute"),m.$.offsetLeft,m.setStyles({"z-index":a.config.baseFloatZIndex-5,left:"0px",top:"0px"}),m.addClass("cke_maximized"),b(),n=m.getDocumentPosition(),m.setStyles({left:-1*n.x+"px",top:-1*n.y+"px"}),CKEDITOR.env.gecko&&e(a)}else if(this.state==CKEDITOR.TRISTATE_ON){k.removeListener("resize",b);for(var o=[n,m],q=0;qh.width&&(d.resize_minWidth=h.width),d.resize_minHeight>h.height&&(d.resize_minHeight=h.height),CKEDITOR.document.on("mousemove",b),CKEDITOR.document.on("mouseup",c),a.document&&(a.document.on("mousemove",b),a.document.on("mouseup",c)),e.preventDefault&&e.preventDefault()});a.on("destroy",function(){CKEDITOR.tools.removeFunction(l)}),a.on("uiSpace",function(b){if("bottom"==b.data.space){var c="";j&&!k&&(c=" cke_resizer_horizontal"),!j&&k&&(c=" cke_resizer_vertical");var d=''+("ltr"==f?"◢":"◣")+"";"ltr"==f&&"ltr"==c?b.data.html+=d:b.data.html=d+b.data.html}},a,null,100),a.on("maximize",function(b){a.ui.space("resizer")[b.data==CKEDITOR.TRISTATE_ON?"hide":"show"]()})}}}),CKEDITOR.plugins.add("menubutton",{requires:"button,menu",onLoad:function(){var a=function(a){var b=this._,c=b.menu;b.state!==CKEDITOR.TRISTATE_DISABLED&&(b.on&&c?c.hide():(b.previousState=b.state,c||(c=b.menu=new CKEDITOR.menu(a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.common.options}}}),c.onHide=CKEDITOR.tools.bind(function(){var c=this.command?a.getCommand(this.command).modes:this.modes;this.setState(!c||c[a.mode]?b.previousState:CKEDITOR.TRISTATE_DISABLED),b.on=0},this),this.onMenu&&c.addListener(this.onMenu)),this.setState(CKEDITOR.TRISTATE_ON),b.on=1,setTimeout(function(){c.show(CKEDITOR.document.getById(b.id),4)},0)))};CKEDITOR.ui.menuButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(b){delete b.panel,this.base(b),this.hasArrow=!0,this.click=a},statics:{handler:{create:function(a){return new CKEDITOR.ui.menuButton(a)}}}})},beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_MENUBUTTON,CKEDITOR.ui.menuButton.handler)}}),CKEDITOR.UI_MENUBUTTON="menubutton",CKEDITOR.plugins.add("scayt",{requires:"menubutton,dialog",tabToOpen:null,dialogName:"scaytDialog",init:function(a){var b=this,c=CKEDITOR.plugins.scayt;this.bindEvents(a),this.parseConfig(a),this.addRule(a),CKEDITOR.dialog.add(this.dialogName,CKEDITOR.getUrl(this.path+"dialogs/options.js")),this.addMenuItems(a);var d=a.lang.scayt,e=CKEDITOR.env;a.ui.add("Scayt",CKEDITOR.UI_MENUBUTTON,{label:d.text_title,title:a.plugins.wsc?a.lang.wsc.title:d.text_title,modes:{wysiwyg:!(e.ie&&(8>e.version||e.quirks))},toolbar:"spellchecker,20",refresh:function(){var b=a.ui.instances.Scayt.getState();a.scayt&&(b=c.state.scayt[a.name]?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),a.fire("scaytButtonState",b)},onRender:function(){var b=this;a.on("scaytButtonState",function(a){void 0!==typeof a.data&&b.setState(a.data)})},onMenu:function(){var b=a.scayt;return a.getMenuItem("scaytToggle").label=a.lang.scayt[b&&c.state.scayt[a.name]?"btn_disable":"btn_enable"],b={scaytToggle:CKEDITOR.TRISTATE_OFF,scaytOptions:b?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytLangs:b?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytDict:b?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytAbout:b?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,WSC:a.plugins.wsc?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED},a.config.scayt_uiTabs[0]||delete b.scaytOptions,a.config.scayt_uiTabs[1]||delete b.scaytLangs,a.config.scayt_uiTabs[2]||delete b.scaytDict,b}}),a.contextMenu&&a.addMenuItems&&(a.contextMenu.addListener(function(c,d){var e,f,g=a.scayt;return g&&(f=g.getSelectionNode())&&(e=b.menuGenerator(a,f),g.showBanner("."+a.contextMenu._.definition.panel.className.split(" ").join(" ."))),e}),a.contextMenu._.onHide=CKEDITOR.tools.override(a.contextMenu._.onHide,function(b){return function(){var c=a.scayt;return c&&c.hideBanner(),b.apply(this)}}))},addMenuItems:function(a){var b=this,c=CKEDITOR.plugins.scayt;a.addMenuGroup("scaytButton");for(var d=a.config.scayt_contextMenuItemsOrder.split("|"),e=0;ea.config.scayt_maxSuggestions)&&(a.config.scayt_maxSuggestions=5),(void 0===a.config.scayt_minWordLength||"number"!=typeof a.config.scayt_minWordLength||1>a.config.scayt_minWordLength)&&(a.config.scayt_minWordLength=4),void 0!==a.config.scayt_customDictionaryIds&&"string"==typeof a.config.scayt_customDictionaryIds||(a.config.scayt_customDictionaryIds=""),void 0!==a.config.scayt_userDictionaryName&&"string"==typeof a.config.scayt_userDictionaryName||(a.config.scayt_userDictionaryName=null),"string"==typeof a.config.scayt_uiTabs&&3===a.config.scayt_uiTabs.split(",").length){var c=[],d=[];a.config.scayt_uiTabs=a.config.scayt_uiTabs.split(","),CKEDITOR.tools.search(a.config.scayt_uiTabs,function(a){1===Number(a)||0===Number(a)?(d.push(!0),c.push(Number(a))):d.push(!1)}),null===CKEDITOR.tools.search(d,!1)?a.config.scayt_uiTabs=c:a.config.scayt_uiTabs=[1,1,1]}else a.config.scayt_uiTabs=[1,1,1];if("string"!=typeof a.config.scayt_serviceProtocol&&(a.config.scayt_serviceProtocol=null),"string"!=typeof a.config.scayt_serviceHost&&(a.config.scayt_serviceHost=null),"string"!=typeof a.config.scayt_servicePort&&(a.config.scayt_servicePort=null),"string"!=typeof a.config.scayt_servicePath&&(a.config.scayt_servicePath=null),a.config.scayt_moreSuggestions||(a.config.scayt_moreSuggestions="on"),"string"!=typeof a.config.scayt_customerId&&(a.config.scayt_customerId="1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2"),"string"!=typeof a.config.scayt_srcUrl&&(b=document.location.protocol,b=-1!=b.search(/https?:/)?b:"http:",a.config.scayt_srcUrl=b+"//svc.webspellchecker.net/spellcheck31/lf/scayt3/ckscayt/ckscayt.js"),"boolean"!=typeof CKEDITOR.config.scayt_handleCheckDirty&&(CKEDITOR.config.scayt_handleCheckDirty=!0),"boolean"!=typeof CKEDITOR.config.scayt_handleUndoRedo&&(CKEDITOR.config.scayt_handleUndoRedo=!0),CKEDITOR.config.scayt_handleUndoRedo=CKEDITOR.plugins.undo?CKEDITOR.config.scayt_handleUndoRedo:!1,"boolean"!=typeof a.config.scayt_multiLanguageMode&&(a.config.scayt_multiLanguageMode=!1),"object"!=typeof a.config.scayt_multiLanguageStyles&&(a.config.scayt_multiLanguageStyles={}),a.config.scayt_ignoreAllCapsWords&&"boolean"!=typeof a.config.scayt_ignoreAllCapsWords&&(a.config.scayt_ignoreAllCapsWords=!1),a.config.scayt_ignoreDomainNames&&"boolean"!=typeof a.config.scayt_ignoreDomainNames&&(a.config.scayt_ignoreDomainNames=!1),a.config.scayt_ignoreWordsWithMixedCases&&"boolean"!=typeof a.config.scayt_ignoreWordsWithMixedCases&&(a.config.scayt_ignoreWordsWithMixedCases=!1),a.config.scayt_ignoreWordsWithNumbers&&"boolean"!=typeof a.config.scayt_ignoreWordsWithNumbers&&(a.config.scayt_ignoreWordsWithNumbers=!1),a.config.scayt_disableOptionsStorage){var b=CKEDITOR.tools.isArray(a.config.scayt_disableOptionsStorage)?a.config.scayt_disableOptionsStorage:"string"==typeof a.config.scayt_disableOptionsStorage?[a.config.scayt_disableOptionsStorage]:void 0,e="all options lang ignore-all-caps-words ignore-domain-names ignore-words-with-mixed-cases ignore-words-with-numbers".split(" "),f=["lang","ignore-all-caps-words","ignore-domain-names","ignore-words-with-mixed-cases","ignore-words-with-numbers"],g=CKEDITOR.tools.search,h=CKEDITOR.tools.indexOf;a.config.scayt_disableOptionsStorage=function(a){for(var b=[],c=0;c tr > td, .%1 table.%2 > tr > th,;.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,;.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,;.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th;{;border : #d3d3d3 1px dotted;}".split(";")).join("").replace(/%2/g,"cke_show_border").replace(/%1/g,"cke_show_borders "),CKEDITOR.addCss(a)},init:function(b){var c=b.addCommand("showborders",a);c.canUndo=!1,!1!==b.config.startupShowBorders&&c.setState(CKEDITOR.TRISTATE_ON),b.on("mode",function(){c.state!=CKEDITOR.TRISTATE_DISABLED&&c.refresh(b)},null,null,100),b.on("contentDom",function(){c.state!=CKEDITOR.TRISTATE_DISABLED&&c.refresh(b)}),b.on("removeFormatCleanup",function(a){a=a.data,b.getCommand("showborders").state==CKEDITOR.TRISTATE_ON&&a.is("table")&&(!a.hasAttribute("border")||0>=parseInt(a.getAttribute("border"),10))&&a.addClass("cke_show_border")})},afterInit:function(a){var b=a.dataProcessor;a=b&&b.dataFilter,b=b&&b.htmlFilter,a&&a.addRules({elements:{table:function(a){a=a.attributes;var b=a["class"],c=parseInt(a.border,10);c&&!(0>=c)||b&&-1!=b.indexOf("cke_show_border")||(a["class"]=(b||"")+" cke_show_border")}}}),b&&b.addRules({elements:{table:function(a){a=a.attributes;var b=a["class"];b&&(a["class"]=b.replace("cke_show_border","").replace(/\s{2}/," ").replace(/^\s+|\s+$/,""))}}})}}),CKEDITOR.on("dialogDefinition",function(a){var b=a.data.name;"table"!=b&&"tableProperties"!=b||(a=a.data.definition,b=a.getContents("info").get("txtBorder"),b.commit=CKEDITOR.tools.override(b.commit,function(a){return function(b,c){a.apply(this,arguments);var d=parseInt(this.getValue(),10);c[!d||0>=d?"addClass":"removeClass"]("cke_show_border")}}),(a=(a=a.getContents("advanced"))&&a.get("advCSSClasses"))&&(a.setup=CKEDITOR.tools.override(a.setup,function(a){return function(){a.apply(this,arguments),this.setValue(this.getValue().replace(/cke_show_border/,""))}}),a.commit=CKEDITOR.tools.override(a.commit,function(a){return function(b,c){a.apply(this,arguments),parseInt(c.getAttribute("border"),10)||c.addClass("cke_show_border")}})))})}(),function(){CKEDITOR.plugins.add("sourcearea",{init:function(b){function c(){var a=e&&this.equals(CKEDITOR.document.getActive());this.hide(),this.setStyle("height",this.getParent().$.clientHeight+"px"),this.setStyle("width",this.getParent().$.clientWidth+"px"),this.show(),a&&this.focus()}if(b.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var d=CKEDITOR.plugins.sourcearea;b.addMode("source",function(d){var e=b.ui.space("contents").getDocument().createElement("textarea");e.setStyles(CKEDITOR.tools.extend({width:CKEDITOR.env.ie7Compat?"99%":"100%",height:"100%",resize:"none",outline:"none","text-align":"left"},CKEDITOR.tools.cssVendorPrefix("tab-size",b.config.sourceAreaTabSize||4))),e.setAttribute("dir","ltr"),e.addClass("cke_source").addClass("cke_reset").addClass("cke_enable_context_menu"),b.ui.space("contents").append(e),e=b.editable(new a(b,e)),e.setData(b.getData(1)),CKEDITOR.env.ie&&(e.attachListener(b,"resize",c,e),e.attachListener(CKEDITOR.document.getWindow(),"resize",c,e),CKEDITOR.tools.setTimeout(c,0,e)),b.fire("ariaWidget",this),d()}),b.addCommand("source",d.commands.source),b.ui.addButton&&b.ui.addButton("Source",{label:b.lang.sourcearea.toolbar,command:"source",toolbar:"mode,10"}),b.on("mode",function(){b.getCommand("source").setState("source"==b.mode?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)});var e=CKEDITOR.env.ie&&9==CKEDITOR.env.version}}});var a=CKEDITOR.tools.createClass({base:CKEDITOR.editable,proto:{setData:function(a){this.setValue(a),this.status="ready",this.editor.fire("dataReady")},getData:function(){return this.getValue()},insertHtml:function(){},insertElement:function(){},insertText:function(){},setReadOnly:function(a){this[(a?"set":"remove")+"Attribute"]("readOnly","readonly")},detach:function(){a.baseProto.detach.call(this),this.clearCustomData(),this.remove()}}})}(),CKEDITOR.plugins.sourcearea={commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:!1,readOnly:1,exec:function(a){"wysiwyg"==a.mode&&a.fire("saveSnapshot"),a.getCommand("source").setState(CKEDITOR.TRISTATE_DISABLED),a.setMode("source"==a.mode?"wysiwyg":"source")},canUndo:!1}}},CKEDITOR.plugins.add("specialchar",{availableLangs:{af:1,ar:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,en:1,"en-gb":1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fr:1,"fr-ca":1,gl:1,he:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,nb:1,nl:1,no:1,pl:1,pt:1,"pt-br":1,ru:1,si:1,sk:1,sl:1,sq:1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,"zh-cn":1},requires:"dialog",init:function(a){var b=this;CKEDITOR.dialog.add("specialchar",this.path+"dialogs/specialchar.js"),a.addCommand("specialchar",{exec:function(){var c=a.langCode,c=b.availableLangs[c]?c:b.availableLangs[c.replace(/-.*/,"")]?c.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(b.path+"dialogs/lang/"+c+".js"),function(){CKEDITOR.tools.extend(a.lang.specialchar,b.langEntries[c]),a.openDialog("specialchar")})},modes:{wysiwyg:1},canUndo:!1}),a.ui.addButton&&a.ui.addButton("SpecialChar",{label:a.lang.specialchar.toolbar,command:"specialchar",toolbar:"insert,50"})}}),CKEDITOR.config.specialChars="! " # $ % & ' ( ) * + - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ € ‘ ’ “ ” – — ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Œ œ Ŵ Ŷ ŵ ŷ ‚ ‛ „ … ™ ► • → ⇒ ⇔ ♦ ≈".split(" "),function(){CKEDITOR.plugins.add("stylescombo",{requires:"richcombo",init:function(a){var b=a.config,c=a.lang.stylescombo,d={},e=[],f=[];a.on("stylesSet",function(c){if(c=c.data.styles){for(var g,h,i,j=0,k=c.length;k>j;j++)g=c[j],a.blockless&&g.element in CKEDITOR.dtd.$block||(h=g.name,g=new CKEDITOR.style(g),a.filter.customConfig&&!a.filter.check(g))||(g._name=h,g._.enterMode=b.enterMode,g._.type=i=g.assignedTo||g.type,g._.weight=j+1e3*(i==CKEDITOR.STYLE_OBJECT?1:i==CKEDITOR.STYLE_BLOCK?2:3),d[h]=g,e.push(g),f.push(g));e.sort(function(a,b){return a._.weight-b._.weight})}}),a.ui.addRichCombo("Styles",{label:c.label,title:c.panelTitle,toolbar:"styles,10",allowedContent:f,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(b.contentsCss),multiSelect:!0,attributes:{"aria-label":c.panelTitle}},init:function(){var a,b,d,f,g,h;for(g=0,h=e.length;h>g;g++)a=e[g],b=a._name,f=a._.type,f!=d&&(this.startGroup(c["panelTitle"+String(f)]),d=f),this.add(b,a.type==CKEDITOR.STYLE_OBJECT?b:a.buildPreview(),b);this.commit()},onClick:function(b){a.focus(),a.fire("saveSnapshot"),b=d[b];var c=a.elementPath();a[b.checkActive(c,a)?"removeStyle":"applyStyle"](b),a.fire("saveSnapshot")},onRender:function(){a.on("selectionChange",function(b){var c=this.getValue();b=b.data.path.elements;for(var e,f=0,g=b.length;g>f;f++){e=b[f];for(var h in d)if(d[h].checkElementRemovable(e,!0,a))return void(h!=c&&this.setValue(h))}this.setValue("")},this)},onOpen:function(){var b=a.getSelection().getSelectedElement(),b=a.elementPath(b),e=[0,0,0,0];this.showAll(),this.unmarkAll();for(var f in d){var g=d[f],h=g._.type;g.checkApplicable(b,a,a.activeFilter)?e[h]++:this.hideItem(f),g.checkActive(b,a)&&this.mark(f)}e[CKEDITOR.STYLE_BLOCK]||this.hideGroup(c["panelTitle"+String(CKEDITOR.STYLE_BLOCK)]),e[CKEDITOR.STYLE_INLINE]||this.hideGroup(c["panelTitle"+String(CKEDITOR.STYLE_INLINE)]),e[CKEDITOR.STYLE_OBJECT]||this.hideGroup(c["panelTitle"+String(CKEDITOR.STYLE_OBJECT)])},refresh:function(){var b=a.elementPath();if(b){for(var c in d)if(d[c].checkApplicable(b,a,a.activeFilter))return;this.setState(CKEDITOR.TRISTATE_DISABLED)}},reset:function(){d={},e=[]}})}})}(),function(){function a(a){return{editorFocus:!1,canUndo:!1,modes:{wysiwyg:1},exec:function(b){if(b.editable().hasFocus){var c,d=b.getSelection();if(c=new CKEDITOR.dom.elementPath(d.getCommonAncestor(),d.root).contains({td:1,th:1},1)){var d=b.createRange(),e=CKEDITOR.tools.tryThese(function(){var b=c.getParent().$.cells[c.$.cellIndex+(a?-1:1)];return b.parentNode.parentNode,b},function(){var b=c.getParent(),b=b.getAscendant("table").$.rows[b.$.rowIndex+(a?-1:1)];return b.cells[a?b.cells.length-1:0]});if(e||a){if(!e)return!0;e=new CKEDITOR.dom.element(e),d.moveToElementEditStart(e),d.checkStartOfBlock()&&d.checkEndOfBlock()||d.selectNodeContents(e)}else{for(var f=c.getAscendant("table").$,e=c.getParent().$.cells,f=new CKEDITOR.dom.element(f.insertRow(-1),b.document),g=0,h=e.length;h>g;g++)f.append(new CKEDITOR.dom.element(e[g],b.document).clone(!1,!1)).appendBogus();d.moveToElementEditStart(f)}return d.select(!0),!0}}return!1}}}var b={editorFocus:!1,modes:{wysiwyg:1,source:1}},c={exec:function(a){a.container.focusNext(!0,a.tabIndex)}},d={exec:function(a){a.container.focusPrevious(!0,a.tabIndex)}};CKEDITOR.plugins.add("tab",{init:function(e){for(var f=!1!==e.config.enableTabKeyTools,g=e.config.tabSpaces||0,h="";g--;)h+=" ";h&&e.on("key",function(a){9==a.data.keyCode&&(e.insertText(h),a.cancel())}),f&&e.on("key",function(a){(9==a.data.keyCode&&e.execCommand("selectNextCell")||a.data.keyCode==CKEDITOR.SHIFT+9&&e.execCommand("selectPreviousCell"))&&a.cancel()}),e.addCommand("blur",CKEDITOR.tools.extend(c,b)),e.addCommand("blurBack",CKEDITOR.tools.extend(d,b)),e.addCommand("selectNextCell",a()),e.addCommand("selectPreviousCell",a(!0))}})}(),CKEDITOR.dom.element.prototype.focusNext=function(a,b){var c,d,e,f,g,h,i=void 0===b?this.getTabIndex():b;if(0>=i)for(g=this.getNextSourceNode(a,CKEDITOR.NODE_ELEMENT);g;){if(g.isVisible()&&0===g.getTabIndex()){e=g;break}g=g.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT)}else for(g=this.getDocument().getBody().getFirst();g=g.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!c)if(!d&&g.equals(this)){if(d=!0,a){if(!(g=g.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;c=1}}else d&&!this.contains(g)&&(c=1);if(g.isVisible()&&!(0>(h=g.getTabIndex()))){if(c&&h==i){e=g;break}h>i&&(!e||!f||f>h)?(e=g,f=h):e||0!==h||(e=g,f=h)}}e&&e.focus()},CKEDITOR.dom.element.prototype.focusPrevious=function(a,b){for(var c,d,e,f,g=void 0===b?this.getTabIndex():b,h=0,i=this.getDocument().getBody().getLast();i=i.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!c)if(!d&&i.equals(this)){if(d=!0,a){if(!(i=i.getPreviousSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;c=1}}else d&&!this.contains(i)&&(c=1);if(i.isVisible()&&!(0>(f=i.getTabIndex())))if(0>=g){if(c&&0===f){e=i;break}f>h&&(e=i,h=f)}else{if(c&&f==g){e=i;break}g>f&&(!e||f>h)&&(e=i,h=f)}}e&&e.focus()},CKEDITOR.plugins.add("table",{requires:"dialog",init:function(a){function b(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,refresh:function(a,b){this.setState(b.contains("table",1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}if(!a.blockless){var c=a.lang.table;a.addCommand("table",new CKEDITOR.dialogCommand("table",{context:"table",allowedContent:"table{width,height}[align,border,cellpadding,cellspacing,summary];caption tbody thead tfoot;th td tr[scope];"+(a.plugins.dialogadvtab?"table"+a.plugins.dialogadvtab.allowedContent():""),requiredContent:"table",contentTransformations:[["table{width}: sizeToStyle","table[width]: sizeToAttribute"]]})),a.addCommand("tableProperties",new CKEDITOR.dialogCommand("tableProperties",b())),a.addCommand("tableDelete",b({exec:function(a){var b=a.elementPath().contains("table",1);if(b){var c=b.getParent(),d=a.editable();1!=c.getChildCount()||c.is("td","th")||c.equals(d)||(b=c),a=a.createRange(),a.moveToPosition(b,CKEDITOR.POSITION_BEFORE_START),b.remove(),a.select()}}})),a.ui.addButton&&a.ui.addButton("Table",{label:c.toolbar,command:"table",toolbar:"insert,30"}),CKEDITOR.dialog.add("table",this.path+"dialogs/table.js"),CKEDITOR.dialog.add("tableProperties",this.path+"dialogs/table.js"),a.addMenuItems&&a.addMenuItems({table:{label:c.menu,command:"tableProperties",group:"table",order:5},tabledelete:{label:c.deleteTable,command:"tableDelete",group:"table",order:1}}),a.on("doubleclick",function(a){a.data.element.is("table")&&(a.data.dialog="tableProperties")}),a.contextMenu&&a.contextMenu.addListener(function(){return{tabledelete:CKEDITOR.TRISTATE_OFF,table:CKEDITOR.TRISTATE_OFF}})}}}),function(){function a(a){function b(a){0i;i++){var j;1=h;h++){for(var i=f[h],j=new CKEDITOR.dom.element(e.$.rows[h]),k=0;k0?f[b-1]:null)||e.$.parentNode),h=d.length;h>=0;h--)c(d[h]);return e}return b instanceof CKEDITOR.dom.element&&(e=b.getAscendant("table"),1==e.$.rows.length?e.remove():b.remove()),null}function d(a,b){for(var c=b?1/0:0,d=0;de:e>c)&&(c=e)}return c}function e(b,c){for(var e=a(b),f=e[0].getAscendant("table"),g=d(e,1),e=d(e),g=c?g:e,h=CKEDITOR.tools.buildTableMap(f),f=[],e=[],i=h.length,j=0;i>j;j++)f.push(h[j][g]),e.push(c?h[j][g-1]:h[j][g+1]);for(j=0;i>j;j++)f[j]&&(1=0;i--)g(b[i]);c?h(c,!0):d&&d.remove()}else b instanceof CKEDITOR.dom.element&&(d=b.getParent(),1==d.getChildCount()?d.remove():b.remove())}function h(a,b){var c=a.getDocument(),d=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(d.focus(),c.focus()),c=new CKEDITOR.dom.range(c),c["moveToElementEdit"+(b?"End":"Start")](a)||(c.selectNodeContents(a),c.collapse(!b)),c.select(!0)}function i(a,b,c){if(a=a[b],"undefined"==typeof c)return a;for(b=0;a&&bf.length)||(e=b.getCommonAncestor())&&e.type==CKEDITOR.NODE_ELEMENT&&e.is("table"))return!1;var g;b=f[0],e=b.getAscendant("table");var h=CKEDITOR.tools.buildTableMap(e),j=h.length,k=h[0].length,l=b.getParent().$.rowIndex,m=i(h,l,b);if(c){var n;try{var o=parseInt(b.getAttribute("rowspan"),10)||1;g=parseInt(b.getAttribute("colspan"),10)||1,n=h["up"==c?l-o:"down"==c?l+o:l]["left"==c?m-g:"right"==c?m+g:m]}catch(p){return!1}if(!n||b.$==n)return!1;f["up"==c||"left"==c?"unshift":"push"](new CKEDITOR.dom.element(n))}c=b.getDocument();var q=l,o=n=0,r=!d&&new CKEDITOR.dom.documentFragment(c),s=0;for(c=0;c=k?b.removeAttribute("rowSpan"):b.$.rowSpan=n,n>=j?b.removeAttribute("colSpan"):b.$.colSpan=o,d=new CKEDITOR.dom.nodeList(e.$.rows),f=d.count(),c=f-1;c>=0;c--)e=d.getItem(c),e.$.cells.length||(e.remove(),f++);return b}function k(b,c){var d=a(b);if(11){e=Math.ceil(l/2);for(var m,l=Math.floor(l/2),f=j+e,g=new CKEDITOR.dom.element(g.$.rows[f]),h=i(h,f),f=d.clone(),j=0;jk){f.insertBefore(new CKEDITOR.dom.element(m));break}m=null}m||g.append(f)}else for(l=e=1,g=f.clone(),g.insertAfter(f),g.append(f=d.clone()),m=i(h,j),k=0;k1)e=Math.ceil(h/2),h=Math.floor(h/2);else{for(var h=e=1,j=[],k=0;kj;j++)for(var l=0,m=g[j].length;m>l;l++)g[j][l]==c.$&&(e=l),g[j][l]==d.$&&(f=l);for(j=e;f>=j;j++)for(l=0;li;i++){c[b+i]||(c[b+i]=[]);for(var j=0;h>j;j++)c[b+i][e+j]=a[d].cells[f]}e+=h-1}}return c},function(){function a(a){function c(){for(var c=d(),f=CKEDITOR.tools.clone(a.config.toolbarGroups)||b(a),g=0;gb.order?-1:0>a.order?1:a.order',b.lang.toolbar.toolbars,"",''],h=!1!==b.config.toolbarStartupExpanded;b.config.toolbarCanCollapse&&b.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&i.push('":' style="display:none">'));for(var j=b.toolbox.toolbars,k=a(b),l=0;l"),g=e=0),"/"===q)i.push('');else{o=q.items||q;for(var r=0;r0&&(a.previous=p.items[v-1],a.previous.next=a),a.toolbar=p,a.onkey=f,a.onfocus=function(){b.toolbox.focusCommandExecuted||b.focus()}};if(t.type==CKEDITOR.UI_SEPARATOR)g=e&&t;else{if(s=!1!==t.canGroup,!p){m=CKEDITOR.tools.getNextId(),p={id:m,items:[]},n=q.name&&(b.lang.toolbar.toolbarGroups[q.name]||q.name),i.push(''),n&&i.push('',n,""),i.push('');var v=j.push(p)-1;v>0&&(p.previous=j[v-1],p.previous.next=p)}s?e||(i.push(''),e=1):e&&(i.push(""),e=0),g&&(u(g),g=0),u(t)}}}e&&(i.push(""),g=e=0),p&&i.push('')}}if(b.config.toolbarCanCollapse&&i.push(""),b.config.toolbarCanCollapse&&b.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var w=CKEDITOR.tools.addFunction(function(){b.execCommand("toolbarCollapse")});b.on("destroy",function(){CKEDITOR.tools.removeFunction(w)}),b.addCommand("toolbarCollapse",{readOnly:1,exec:function(a){var b=a.ui.space("toolbar_collapser"),c=b.getPrevious(),d=a.ui.space("contents"),e=c.getParent(),f=parseInt(d.$.style.height,10),g=e.$.offsetHeight,h=b.hasClass("cke_toolbox_collapser_min");h?(c.show(),b.removeClass("cke_toolbox_collapser_min"),b.setAttribute("title",a.lang.toolbar.toolbarCollapse)):(c.hide(),b.addClass("cke_toolbox_collapser_min"),b.setAttribute("title",a.lang.toolbar.toolbarExpand)),b.getFirst().setText(h?"▲":"◀"),d.setStyle("height",f-(e.$.offsetHeight-g)+"px"),a.fire("resize",{outerHeight:a.container.$.offsetHeight,contentsHeight:d.$.offsetHeight,outerWidth:a.container.$.offsetWidth})},modes:{wysiwyg:1,source:1}}),b.setKeystroke(CKEDITOR.ALT+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse"),i.push('','',"")}i.push(""),d.data.html+=i.join("")}}),b.on("destroy",function(){if(this.toolbox){var a,b,c,d,e=0;for(a=this.toolbox.toolbars;e'),{}}}}})}}),CKEDITOR.ui.prototype.addToolbarGroup=function(a,c,d){var e=b(this.editor),f=0===c,g={name:a};if(d){if(d=CKEDITOR.tools.search(e,function(a){return a.name==d}))return!d.groups&&(d.groups=[]),c&&(c=CKEDITOR.tools.indexOf(d.groups,c),c>=0)?void d.groups.splice(c+1,0,a):void(f?d.groups.splice(0,0,a):d.groups.push(a));c=null}c&&(c=CKEDITOR.tools.indexOf(e,function(a){return a.name==c})),f?e.splice(0,0,a):"number"==typeof c?e.splice(c+1,0,g):e.push(a)}}(),CKEDITOR.UI_SEPARATOR="separator",CKEDITOR.config.toolbarLocation="top",function(){var a=[CKEDITOR.CTRL+90,CKEDITOR.CTRL+89,CKEDITOR.CTRL+CKEDITOR.SHIFT+90],b={8:1,46:1};CKEDITOR.plugins.add("undo",{init:function(b){function d(a){g.enabled&&!1!==a.data.command.canUndo&&g.save()}function e(){g.enabled=b.readOnly?!1:"wysiwyg"==b.mode,g.onChange()}var g=b.undoManager=new c(b),h=g.editingHandler=new f(g),i=b.addCommand("undo",{exec:function(){g.undo()&&(b.selectionChange(),this.fire("afterUndo"))},startDisabled:!0,canUndo:!1}),j=b.addCommand("redo",{exec:function(){g.redo()&&(b.selectionChange(),this.fire("afterRedo"))},startDisabled:!0,canUndo:!1});b.setKeystroke([[a[0],"undo"],[a[1],"redo"],[a[2],"redo"]]),g.onChange=function(){i.setState(g.undoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),j.setState(g.redoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)},b.on("beforeCommandExec",d),b.on("afterCommandExec",d),b.on("saveSnapshot",function(a){g.save(a.data&&a.data.contentOnly)}),b.on("contentDom",h.attachListeners,h),b.on("instanceReady",function(){b.fire("saveSnapshot")}),b.on("beforeModeUnload",function(){"wysiwyg"==b.mode&&g.save(!0)}),b.on("mode",e),b.on("readOnly",e),b.ui.addButton&&(b.ui.addButton("Undo",{label:b.lang.undo.undo,command:"undo",toolbar:"undo,10"}),b.ui.addButton("Redo",{label:b.lang.undo.redo,command:"redo",toolbar:"undo,20"})),b.resetUndo=function(){g.reset(),b.fire("saveSnapshot")},b.on("updateSnapshot",function(){g.currentImage&&g.update()}),b.on("lockSnapshot",function(a){a=a.data,g.lock(a&&a.dontUpdate,a&&a.forceUpdate)}),b.on("unlockSnapshot",g.unlock,g)}}),CKEDITOR.plugins.undo={};var c=CKEDITOR.plugins.undo.UndoManager=function(a){this.strokesRecorded=[0,0],this.locked=null,this.previousKeyGroup=-1,this.limit=a.config.undoStackSize||20,this.strokesLimit=25,this.editor=a,this.reset()};c.prototype={type:function(a,b){var d=c.getKeyGroup(a),e=this.strokesRecorded[d]+1;b=b||e>=this.strokesLimit,this.typing||(this.hasUndo=this.typing=!0,this.hasRedo=!1,this.onChange()),b?(e=0,this.editor.fire("saveSnapshot")):this.editor.fire("change"),this.strokesRecorded[d]=e,this.previousKeyGroup=d},keyGroupChanged:function(a){return c.getKeyGroup(a)!=this.previousKeyGroup},reset:function(){this.snapshots=[],this.index=-1,this.currentImage=null,this.hasRedo=this.hasUndo=!1,this.locked=null,this.resetType()},resetType:function(){this.strokesRecorded=[0,0],this.typing=!1,this.previousKeyGroup=-1},refreshState:function(){this.hasUndo=!!this.getNextImage(!0),this.hasRedo=!!this.getNextImage(!1),this.resetType(),this.onChange()},save:function(a,b,c){var e=this.editor;if(this.locked||"ready"!=e.status||"wysiwyg"!=e.mode)return!1;var f=e.editable();if(!f||"ready"!=f.status)return!1;if(f=this.snapshots,b||(b=new d(e)),!1===b.contents)return!1;if(this.currentImage)if(b.equalsContent(this.currentImage)){if(a||b.equalsSelection(this.currentImage))return!1}else!1!==c&&e.fire("change");return f.splice(this.index+1,f.length-this.index-1),f.length==this.limit&&f.shift(),this.index=f.push(b)-1,this.currentImage=b,!1!==c&&this.refreshState(),!0},restoreImage:function(a){var b,c=this.editor;a.bookmarks&&(c.focus(),b=c.getSelection()),this.locked={level:999},this.editor.loadSnapshot(a.contents),a.bookmarks?b.selectBookmarks(a.bookmarks):CKEDITOR.env.ie&&(b=this.editor.document.getBody().$.createTextRange(),b.collapse(!0),b.select()),this.locked=null,this.index=a.index,this.currentImage=this.snapshots[this.index],this.update(),this.refreshState(),c.fire("change")},getNextImage:function(a){var b,c=this.snapshots,d=this.currentImage;if(d)if(a){for(b=this.index-1;b>=0;b--)if(a=c[b],!d.equalsContent(a))return a.index=b,a}else for(b=this.index+1;b0&&this.currentImage.equalsContent(c[b-1]);)--b;c.splice(b,this.index-b+1,a),this.index=b,this.currentImage=a}},updateSelection:function(a){if(!this.snapshots.length)return!1;var b=this.snapshots,c=b[b.length-1];return c.equalsContent(a)&&!c.equalsSelection(a)?(this.currentImage=b[b.length-1]=a,!0):!1},lock:function(a,b){if(this.locked)this.locked.level++;else if(a)this.locked={level:1};else{var c=null;if(b)c=!0;else{var e=new d(this.editor,!0);this.currentImage&&this.currentImage.equalsContent(e)&&(c=e)}this.locked={update:c,level:1}}},unlock:function(){if(this.locked&&!--this.locked.level){var a=this.locked.update;if(this.locked=null,!0===a)this.update();else if(a){var b=new d(this.editor,!0);a.equalsContent(b)||this.update()}}}},c.navigationKeyCodes={37:1,38:1,39:1,40:1,36:1,35:1,33:1,34:1},c.keyGroups={PRINTABLE:0,FUNCTIONAL:1},c.isNavigationKey=function(a){return!!c.navigationKeyCodes[a]},c.getKeyGroup=function(a){var d=c.keyGroups;return b[a]?d.FUNCTIONAL:d.PRINTABLE},c.getOppositeKeyGroup=function(a){var b=c.keyGroups;return a==b.FUNCTIONAL?b.PRINTABLE:b.FUNCTIONAL},c.ieFunctionalKeysBug=function(a){return CKEDITOR.env.ie&&c.getKeyGroup(a)==c.keyGroups.FUNCTIONAL};var d=CKEDITOR.plugins.undo.Image=function(a,b){this.editor=a,a.fire("beforeUndoImage");var c=a.getSnapshot();CKEDITOR.env.ie&&c&&(c=c.replace(/\s+data-cke-expando=".*?"/g,"")),this.contents=c,b||(this.bookmarks=(c=c&&a.getSelection())&&c.createBookmarks2(!0)),a.fire("afterUndoImage")},e=/\b(?:href|src|name)="[^"]*?"/gi;d.prototype={equalsContent:function(a){var b=this.contents;return a=a.contents,CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)&&(b=b.replace(e,""),a=a.replace(e,"")),b==a},equalsSelection:function(a){var b=this.bookmarks;if(a=a.bookmarks,b||a){if(!b||!a||b.length!=a.length)return!1;for(var c=0;c=this.undoManager.strokesLimit&&(this.undoManager.type(a.keyCode,!0),this.keyEventsStack.resetInputs())}},onKeyup:function(a){var b=this.undoManager;a=a.data.getKey();var e=this.keyEventsStack.getTotalInputs();this.keyEventsStack.remove(a),c.ieFunctionalKeysBug(a)&&this.lastKeydownImage&&this.lastKeydownImage.equalsContent(new d(b.editor,!0))||(e>0?b.type(a):c.isNavigationKey(a)&&this.onNavigationKey(!0))},onNavigationKey:function(a){var b=this.undoManager;!a&&b.save(!0,null,!1)||b.updateSelection(new d(b.editor)),b.resetType()},ignoreInputEventListener:function(){this.ignoreInputEvent=!0},attachListeners:function(){var a=this.undoManager.editor,b=a.editable(),d=this;b.attachListener(b,"keydown",function(a){d.onKeydown(a),c.ieFunctionalKeysBug(a.data.getKey())&&d.onInput()},null,null,999),b.attachListener(b,CKEDITOR.env.ie?"keypress":"input",d.onInput,d,null,999),b.attachListener(b,"keyup",d.onKeyup,d,null,999),b.attachListener(b,"paste",d.ignoreInputEventListener,d,null,999),b.attachListener(b,"drop",d.ignoreInputEventListener,d,null,999),b.attachListener(b.isInline()?b:a.document.getDocumentElement(),"click",function(){d.onNavigationKey()},null,null,999),b.attachListener(this.undoManager.editor,"blur",function(){d.keyEventsStack.remove(9)},null,null,999)}};var g=CKEDITOR.plugins.undo.KeyEventsStack=function(){this.stack=[]};g.prototype={push:function(a){return a=this.stack.push({keyCode:a,inputs:0}),this.stack[a-1]},getLastIndex:function(a){if("number"!=typeof a)return this.stack.length-1;for(var b=this.stack.length;b--;)if(this.stack[b].keyCode==a)return b;return-1},getLast:function(a){return a=this.getLastIndex(a),-1!=a?this.stack[a]:null},increment:function(a){this.getLast(a).inputs++},remove:function(a){a=this.getLastIndex(a),-1!=a&&this.stack.splice(a,1)},resetInputs:function(a){if("number"==typeof a)this.getLast(a).inputs=0;else for(a=this.stack.length;a--;)this.stack[a].inputs=0},getTotalInputs:function(){for(var a=this.stack.length,b=0;a--;)b+=this.stack[a].inputs;return b},cleanUp:function(a){a=a.data.$,a.ctrlKey||a.metaKey||this.remove(17),a.shiftKey||this.remove(16),a.altKey||this.remove(18)}}}(),CKEDITOR.plugins.add("wsc",{requires:"dialog",parseApi:function(a){a.config.wsc_onFinish="function"==typeof a.config.wsc_onFinish?a.config.wsc_onFinish:function(){},a.config.wsc_onClose="function"==typeof a.config.wsc_onClose?a.config.wsc_onClose:function(){}},parseConfig:function(a){a.config.wsc_customerId=a.config.wsc_customerId||CKEDITOR.config.wsc_customerId||"1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk",a.config.wsc_customDictionaryIds=a.config.wsc_customDictionaryIds||CKEDITOR.config.wsc_customDictionaryIds||"",a.config.wsc_userDictionaryName=a.config.wsc_userDictionaryName||CKEDITOR.config.wsc_userDictionaryName||"",a.config.wsc_customLoaderScript=a.config.wsc_customLoaderScript||CKEDITOR.config.wsc_customLoaderScript,CKEDITOR.config.wsc_cmd=a.config.wsc_cmd||CKEDITOR.config.wsc_cmd||"spell",CKEDITOR.config.wsc_version="v4.3.0-master-d769233",CKEDITOR.config.wsc_removeGlobalVariable=!0},init:function(a){var b=CKEDITOR.env;this.parseConfig(a),this.parseApi(a),a.addCommand("checkspell",new CKEDITOR.dialogCommand("checkspell")).modes={wysiwyg:!(CKEDITOR.env.opera||CKEDITOR.env.air||document.domain!=window.location.hostname||b.ie&&(8>b.version||b.quirks))},"undefined"==typeof a.plugins.scayt&&a.ui.addButton&&a.ui.addButton("SpellChecker",{label:a.lang.wsc.toolbar,click:function(a){var b=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.container.getText():a.document.getBody().getText();(b=b.replace(/\s/g,""))?a.execCommand("checkspell"):alert("Nothing to check!")},toolbar:"spellchecker,10"}),CKEDITOR.dialog.add("checkspell",this.path+(CKEDITOR.env.ie&&7>=CKEDITOR.env.version?"dialogs/wsc_ie.js":window.postMessage?"dialogs/wsc.js":"dialogs/wsc_ie.js"))}}),function(){function a(a){function c(a){var b=!1;h.attachListener(h,"keydown",function(){var c=e.getBody().getElementsByTag(a);if(!b){for(var d=0;dthis.$.offsetHeight){var c=d.createRange();c[33==b?"moveToElementEditStart":"moveToElementEditEnd"](this),c.select(),a.data.preventDefault()}}),CKEDITOR.env.ie&&this.attachListener(e,"blur",function(){try{e.$.selection.empty()}catch(a){}}),CKEDITOR.env.iOS&&this.attachListener(e,"touchend",function(){a.focus()}),f=d.document.getElementsByTag("title").getItem(0),f.data("cke-title",f.getText()),CKEDITOR.env.ie&&(d.document.$.title=this._.docTitle),CKEDITOR.tools.setTimeout(function(){"unloaded"==this.status&&(this.status="ready"),d.fire("contentDom"),this._.isPendingFocus&&(d.focus(),this._.isPendingFocus=!1),setTimeout(function(){d.fire("dataReady")},0)},0,this)}function b(a){function b(){var b;a.editable().attachListener(a,"selectionChange",function(){var d=a.getSelection().getSelectedElement();d&&(b&&(b.detachEvent("onresizestart",c),b=null),d.$.attachEvent("onresizestart",c),b=d.$)})}function c(a){a.returnValue=!1}if(CKEDITOR.env.gecko)try{var d=a.document.$;d.execCommand("enableObjectResizing",!1,!a.config.disableObjectResizing),d.execCommand("enableInlineTableEditing",!1,!a.config.disableNativeTableHandles)}catch(e){}else CKEDITOR.env.ie&&11>CKEDITOR.env.version&&a.config.disableObjectResizing&&b(a)}function c(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable=false]{min-height:0 !important}");var b,c=[];for(b in CKEDITOR.dtd.$removeEmpty)c.push("html.CSS1Compat "+b+"[contenteditable=false]");a.push(c.join(",")+"{display:inline-block}")}else CKEDITOR.env.gecko&&(a.push("html{height:100% !important}"),a.push("img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"));return a.push("html{cursor:text;*cursor:auto}"),a.push("img,input,textarea{cursor:default}"),a.join("\n")}CKEDITOR.plugins.add("wysiwygarea",{init:function(a){a.config.fullPage&&a.addFeature({allowedContent:"html head title; style [media,type]; body (*)[id]; meta link [*]",requiredContent:"body"}),a.addMode("wysiwyg",function(b){function c(c){c&&c.removeListener(),a.editable(new d(a,f.$.contentWindow.document.body)),a.setData(a.getData(1),b)}var e="document.open();"+(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+"document.close();",e=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void(function(){"+encodeURIComponent(e)+"}())":"",f=CKEDITOR.dom.element.createFromHtml(''); -f.setStyles({width:"100%",height:"100%"}),f.addClass("cke_wysiwyg_frame").addClass("cke_reset"),e=a.ui.space("contents"),e.append(f);var g=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.gecko;g&&f.on("load",c);var h=a.title,i=a.fire("ariaEditorHelpLabel",{}).label;if(h&&(CKEDITOR.env.ie&&i&&(h+=", "+i),f.setAttribute("title",h)),i){var h=CKEDITOR.tools.getNextId(),j=CKEDITOR.dom.element.createFromHtml(''+i+"");e.append(j,1),f.setAttribute("aria-describedby",h)}a.on("beforeModeUnload",function(a){a.removeListener(),j&&j.remove()}),f.setAttributes({tabIndex:a.tabIndex,allowTransparency:"true"}),!g&&c(),a.fire("ariaWidget",f)})}}),CKEDITOR.editor.prototype.addContentsCss=function(a){var b=this.config,c=b.contentsCss;CKEDITOR.tools.isArray(c)||(b.contentsCss=c?[c]:[]),b.contentsCss.push(a)};var d=CKEDITOR.tools.createClass({$:function(){this.base.apply(this,arguments),this._.frameLoadedHandler=CKEDITOR.tools.addFunction(function(b){CKEDITOR.tools.setTimeout(a,0,this,b)},this),this._.docTitle=this.getWindow().getFrame().getAttribute("title")},base:CKEDITOR.editable,proto:{setData:function(a,b){var d=this.editor;if(b)this.setHtml(a),this.fixInitialSelection(),d.fire("dataReady");else{this._.isLoadingData=!0,d._.dataStore={id:1};var e=d.config,f=e.fullPage,g=e.docType,h=CKEDITOR.tools.buildStyleHtml(c()).replace(/"):c.push(''));return c.join("")},htmlEncode:function(a){return void 0===a||null===a?"":String(a).replace(c,"&").replace(d,">").replace(e,"<")},htmlDecode:function(a){return a.replace(g,i)},htmlEncodeAttr:function(a){return CKEDITOR.tools.htmlEncode(a).replace(f,""")},htmlDecodeAttr:function(a){return CKEDITOR.tools.htmlDecode(a)},transformPlainTextToHtml:function(a,b){var c=b==CKEDITOR.ENTER_BR,d=this.htmlEncode(a.replace(/\r\n/g,"\n")),d=d.replace(/\t/g,"    "),e=b==CKEDITOR.ENTER_P?"p":"div";if(!c){var f=/\n{2}/g;if(f.test(d))var g="<"+e+">",h="",d=g+d.replace(f,function(){return h+g})+h}return d=d.replace(/\n/g,"
        "),c||(d=d.replace(new RegExp("
        (?=)"),function(a){return CKEDITOR.tools.repeat(a,2)})),d=d.replace(/^ | $/g," "),d=d.replace(/(>|\s) /g,function(a,b){return b+" "}).replace(/ (?=<)/g," ")},getNextNumber:function(){var a=0;return function(){return++a}}(),getNextId:function(){return"cke_"+this.getNextNumber()},getUniqueId:function(){for(var a="e",b=0;8>b;b++)a+=Math.floor(65536*(1+Math.random())).toString(16).substring(1);return a},override:function(a,b){var c=b(a);return c.prototype=a.prototype,c},setTimeout:function(a,b,c,d,e){return e||(e=window),c||(c=e),e.setTimeout(function(){d?a.apply(c,[].concat(d)):a.apply(c)},b||0)},trim:function(){var a=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(b){return b.replace(a,"")}}(),ltrim:function(){var a=/^[ \t\n\r]+/g;return function(b){return b.replace(a,"")}}(),rtrim:function(){var a=/[ \t\n\r]+$/g;return function(b){return b.replace(a,"")}}(),indexOf:function(a,b){if("function"==typeof b){for(var c=0,d=a.length;d>c;c++)if(b(a[c]))return c}else{if(a.indexOf)return a.indexOf(b);for(c=0,d=a.length;d>c;c++)if(a[c]===b)return c}return-1},search:function(a,b){var c=CKEDITOR.tools.indexOf(a,b);return c>=0?a[c]:null},bind:function(a,b){return function(){return a.apply(b,arguments)}},createClass:function(a){var b=a.$,c=a.base,d=a.privates||a._,e=a.proto;if(a=a.statics,!b&&(b=function(){c&&this.base.apply(this,arguments)}),d)var f=b,b=function(){var a,b=this._||(this._={});for(a in d){var c=d[a];b[a]="function"==typeof c?CKEDITOR.tools.bind(c,this):c}f.apply(this,arguments)};return c&&(b.prototype=this.prototypedCopy(c.prototype),b.prototype.constructor=b,b.base=c,b.baseProto=c.prototype,b.prototype.base=function(){this.base=c.prototype.base,c.apply(this,arguments),this.base=arguments.callee}),e&&this.extend(b.prototype,e,!0),a&&this.extend(b,a,!0),b},addFunction:function(b,c){return a.push(function(){return b.apply(c||this,arguments)})-1},removeFunction:function(b){a[b]=null},callFunction:function(b){var c=a[b];return c&&c.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var a,b=/^-?\d+\.?\d*px$/;return function(c){return a=CKEDITOR.tools.trim(c+"")+"px",b.test(a)?a:c||""}}(),convertToPx:function(){var a;return function(b){ +return a||(a=CKEDITOR.dom.element.createFromHtml('
        ',CKEDITOR.document),CKEDITOR.document.getBody().append(a)),/%$/.test(b)?b:(a.setStyle("width",b),a.$.clientWidth)}}(),repeat:function(a,b){return Array(b+1).join(a)},tryThese:function(){for(var a,b=0,c=arguments.length;c>b;b++){var d=arguments[b];try{a=d();break}catch(e){}}return a},genKey:function(){return Array.prototype.slice.call(arguments).join("-")},defer:function(a){return function(){var b=arguments,c=this;window.setTimeout(function(){a.apply(c,b)},0)}},normalizeCssText:function(a,b){var c,d=[],e=CKEDITOR.tools.parseCssText(a,!0,b);for(c in e)d.push(c+":"+e[c]);return d.sort(),d.length?d.join(";")+";":""},convertRgbToHex:function(a){return a.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi,function(a,b,c,d){for(a=[b,c,d],b=0;3>b;b++)a[b]=("0"+parseInt(a[b],10).toString(16)).slice(-2);return"#"+a.join("")})},parseCssText:function(a,b,c){var d={};return c&&(c=new CKEDITOR.dom.element("span"),c.setAttribute("style",a),a=CKEDITOR.tools.convertRgbToHex(c.getAttribute("style")||"")),a&&";"!=a?(a.replace(/"/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,c,e){b&&(c=c.toLowerCase(),"font-family"==c&&(e=e.toLowerCase().replace(/["']/g,"").replace(/\s*,\s*/g,",")),e=CKEDITOR.tools.trim(e)),d[c]=e}),d):d},writeCssText:function(a,b){var c,d=[];for(c in a)d.push(c+":"+a[c]);return b&&d.sort(),d.join("; ")},objectCompare:function(a,b,c){var d;if(!a&&!b)return!0;if(!a||!b)return!1;for(d in a)if(a[d]!=b[d])return!1;if(!c)for(d in b)if(a[d]!=b[d])return!1;return!0},objectKeys:function(a){var b,c=[];for(b in a)c.push(b);return c},convertArrayToObject:function(a,b){var c={};1==arguments.length&&(b=!0);for(var d=0,e=a.length;e>d;++d)c[a[d]]=b;return c},fixDomain:function(){for(var a;;)try{a=window.parent.document.domain;break}catch(b){if(a=a?a.replace(/.+?(?:\.|$)/,""):document.domain,!a)break;document.domain=a}return!!a},eventsBuffer:function(a,b,c){function d(){f=(new Date).getTime(),e=!1,c?b.call(c):b()}var e,f=0;return{input:function(){if(!e){var b=(new Date).getTime()-f;a>b?e=setTimeout(d,a-b):d()}},reset:function(){e&&clearTimeout(e),e=f=0}}},enableHtml5Elements:function(a,b){for(var c,d="abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video".split(" "),e=d.length;e--;)c=a.createElement(d[e]),b&&a.appendChild(c)},checkIfAnyArrayItemMatches:function(a,b){for(var c=0,d=a.length;d>c;++c)if(a[c].match(b))return!0;return!1},checkIfAnyObjectPropertyMatches:function(a,b){for(var c in a)if(c.match(b))return!0;return!1},transparentImageData:"data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==",getCookie:function(a){a=a.toLowerCase();for(var b,c,d=document.cookie.split(";"),e=0;ec;c++)a.push(Math.floor(256*Math.random()));for(c=0;cCKEDITOR.env.version&&(this.type==CKEDITOR.NODE_ELEMENT||this.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)&&d(e),e},hasPrevious:function(){return!!this.$.previousSibling},hasNext:function(){return!!this.$.nextSibling},insertAfter:function(a){return a.$.parentNode.insertBefore(this.$,a.$.nextSibling),a},insertBefore:function(a){return a.$.parentNode.insertBefore(this.$,a.$),a},insertBeforeMe:function(a){return this.$.parentNode.insertBefore(a.$,this.$),a},getAddress:function(a){for(var b=[],c=this.getDocument().$.documentElement,d=this.$;d&&d!=c;){var e=d.parentNode;e&&b.unshift(this.getIndex.call({$:d},a)),d=e}return b},getDocument:function(){return new CKEDITOR.dom.document(this.$.ownerDocument||this.$.parentNode.ownerDocument)},getIndex:function(a){function b(a,d){var e=d?a.nextSibling:a.previousSibling;return e&&e.nodeType==CKEDITOR.NODE_TEXT?c(e)?b(e,d):e:null}function c(a){return!a.nodeValue||a.nodeValue==CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE}var d,e=this.$,f=-1;if(!this.$.parentNode||a&&e.nodeType==CKEDITOR.NODE_TEXT&&c(e)&&!b(e)&&!b(e,!0))return-1;do a&&e!=this.$&&e.nodeType==CKEDITOR.NODE_TEXT&&(d||c(e))||(f++,d=e.nodeType==CKEDITOR.NODE_TEXT);while(e=e.previousSibling);return f},getNextSourceNode:function(a,b,c){if(c&&!c.call){var d=c;c=function(a){return!a.equals(d)}}a=!a&&this.getFirst&&this.getFirst();var e;if(!a){if(this.type==CKEDITOR.NODE_ELEMENT&&c&&!1===c(this,!0))return null;a=this.getNext()}for(;!a&&(e=(e||this).getParent());){if(c&&!1===c(e,!0))return null;a=e.getNext()}return!a||c&&!1===c(a)?null:b&&b!=a.type?a.getNextSourceNode(!1,b,c):a},getPreviousSourceNode:function(a,b,c){if(c&&!c.call){var d=c;c=function(a){return!a.equals(d)}}a=!a&&this.getLast&&this.getLast();var e;if(!a){if(this.type==CKEDITOR.NODE_ELEMENT&&c&&!1===c(this,!0))return null;a=this.getPrevious()}for(;!a&&(e=(e||this).getParent());){if(c&&!1===c(e,!0))return null;a=e.getPrevious()}return!a||c&&!1===c(a)?null:b&&a.type!=b?a.getPreviousSourceNode(!1,b,c):a},getPrevious:function(a){var b,c=this.$;do b=(c=c.previousSibling)&&10!=c.nodeType&&new CKEDITOR.dom.node(c);while(b&&a&&!a(b));return b},getNext:function(a){var b,c=this.$;do b=(c=c.nextSibling)&&new CKEDITOR.dom.node(c);while(b&&a&&!a(b));return b},getParent:function(a){var b=this.$.parentNode;return b&&(b.nodeType==CKEDITOR.NODE_ELEMENT||a&&b.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT)?new CKEDITOR.dom.node(b):null},getParents:function(a){var b=this,c=[];do c[a?"push":"unshift"](b);while(b=b.getParent());return c},getCommonAncestor:function(a){if(a.equals(this))return this;if(a.contains&&a.contains(this))return a;var b=this.contains?this:this.getParent();do if(b.contains(a))return b;while(b=b.getParent());return null},getPosition:function(a){var b=this.$,c=a.$;if(b.compareDocumentPosition)return b.compareDocumentPosition(c);if(b==c)return CKEDITOR.POSITION_IDENTICAL;if(this.type==CKEDITOR.NODE_ELEMENT&&a.type==CKEDITOR.NODE_ELEMENT){if(b.contains){if(b.contains(c))return CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_PRECEDING;if(c.contains(b))return CKEDITOR.POSITION_IS_CONTAINED+CKEDITOR.POSITION_FOLLOWING}if("sourceIndex"in b)return 0>b.sourceIndex||0>c.sourceIndex?CKEDITOR.POSITION_DISCONNECTED:b.sourceIndexd;d++)if(b[d]!=a[d])return b[d]=document.documentMode||!b||(a=b+":"+a),new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))},getHead:function(){var a=this.$.getElementsByTagName("head")[0];return a=a?new CKEDITOR.dom.element(a):this.getDocumentElement().append(new CKEDITOR.dom.element("head"),!0)},getBody:function(){return new CKEDITOR.dom.element(this.$.body)},getDocumentElement:function(){return new CKEDITOR.dom.element(this.$.documentElement)},getWindow:function(){return new CKEDITOR.dom.window(this.$.parentWindow||this.$.defaultView)},write:function(a){this.$.open("text/html","replace"),CKEDITOR.env.ie&&(a=a.replace(/(?:^\s*]*?>)|^/i,'$&\n")),this.$.write(a),this.$.close()},find:function(a){return new CKEDITOR.dom.nodeList(this.$.querySelectorAll(a))},findOne:function(a){return(a=this.$.querySelector(a))?new CKEDITOR.dom.element(a):null},_getHtml5ShivFrag:function(){var a=this.getCustomData("html5ShivFrag");return a||(a=this.$.createDocumentFragment(),CKEDITOR.tools.enableHtml5Elements(a,!0),this.setCustomData("html5ShivFrag",a)),a}}),CKEDITOR.dom.nodeList=function(a){this.$=a},CKEDITOR.dom.nodeList.prototype={count:function(){return this.$.length},getItem:function(a){return 0>a||a>=this.$.length?null:(a=this.$[a])?new CKEDITOR.dom.node(a):null}},CKEDITOR.dom.element=function(a,b){"string"==typeof a&&(a=(b?b.$:document).createElement(a)),CKEDITOR.dom.domObject.call(this,a)},CKEDITOR.dom.element.get=function(a){return(a="string"==typeof a?document.getElementById(a)||document.getElementsByName(a)[0]:a)&&(a.$?a:new CKEDITOR.dom.element(a))},CKEDITOR.dom.element.prototype=new CKEDITOR.dom.node,CKEDITOR.dom.element.createFromHtml=function(a,b){var c=new CKEDITOR.dom.element("div",b);return c.setHtml(a),c.getFirst().remove()},CKEDITOR.dom.element.setMarker=function(a,b,c,d){var e=b.getCustomData("list_marker_id")||b.setCustomData("list_marker_id",CKEDITOR.tools.getNextNumber()).getCustomData("list_marker_id"),f=b.getCustomData("list_marker_names")||b.setCustomData("list_marker_names",{}).getCustomData("list_marker_names");return a[e]=b,f[c]=1,b.setCustomData(c,d)},CKEDITOR.dom.element.clearAllMarkers=function(a){for(var b in a)CKEDITOR.dom.element.clearMarkers(a,a[b],1)},CKEDITOR.dom.element.clearMarkers=function(a,b,c){var d,e=b.getCustomData("list_marker_names"),f=b.getCustomData("list_marker_id");for(d in e)b.removeCustomData(d);b.removeCustomData("list_marker_names"),c&&(b.removeCustomData("list_marker_id"),delete a[f])},function(){function a(a,b){return-1<(" "+a+" ").replace(f," ").indexOf(" "+b+" ")}function b(a){var b=!0;return a.$.id||(a.$.id="cke_tmp_"+CKEDITOR.tools.getNextNumber(),b=!1),function(){b||a.removeAttribute("id")}}function c(a,b){return"#"+a.$.id+" "+b.split(/,\s*/).join(", #"+a.$.id+" ")}function d(a){for(var b=0,c=0,d=g[a].length;d>c;c++)b+=parseInt(this.getComputedStyle(g[a][c])||0,10)||0;return b}var e=document.createElement("_").classList,e="undefined"!=typeof e&&null!==String(e.add).match(/\[Native code\]/gi),f=/[\n\t\r]/g;CKEDITOR.tools.extend(CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_ELEMENT,addClass:e?function(a){return this.$.classList.add(a),this}:function(b){var c=this.$.className;return c&&(a(c,b)||(c+=" "+b)),this.$.className=c||b,this},removeClass:e?function(a){var b=this.$;return b.classList.remove(a),b.className||b.removeAttribute("class"),this}:function(b){var c=this.getAttribute("class");return c&&a(c,b)&&((c=c.replace(new RegExp("(?:^|\\s+)"+b+"(?=\\s|$)"),"").replace(/^\s+/,""))?this.setAttribute("class",c):this.removeAttribute("class")),this},hasClass:function(b){return a(this.$.className,b)},append:function(a,b){return"string"==typeof a&&(a=this.getDocument().createElement(a)),b?this.$.insertBefore(a.$,this.$.firstChild):this.$.appendChild(a.$),a},appendHtml:function(a){if(this.$.childNodes.length){var b=new CKEDITOR.dom.element("div",this.getDocument());b.setHtml(a),b.moveChildren(this)}else this.setHtml(a)},appendText:function(a){null!=this.$.text&&CKEDITOR.env.ie&&9>CKEDITOR.env.version?this.$.text+=a:this.append(new CKEDITOR.dom.text(a))},appendBogus:function(a){if(a||CKEDITOR.env.needsBrFiller){for(a=this.getLast();a&&a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.rtrim(a.getText());)a=a.getPrevious();a&&a.is&&a.is("br")||(a=this.getDocument().createElement("br"),CKEDITOR.env.gecko&&a.setAttribute("type","_moz"),this.append(a))}},breakParent:function(a,b){var c=new CKEDITOR.dom.range(this.getDocument());c.setStartAfter(this),c.setEndAfter(a);var d=c.extractContents(!1,b||!1);c.insertNode(this.remove()),d.insertAfterNode(this)},contains:document.compareDocumentPosition?function(a){return!!(16&this.$.compareDocumentPosition(a.$))}:function(a){var b=this.$;return a.type!=CKEDITOR.NODE_ELEMENT?b.contains(a.getParent().$):b!=a.$&&b.contains(a.$)},focus:function(){function a(){try{this.$.focus()}catch(a){}}return function(b){b?CKEDITOR.tools.setTimeout(a,100,this):a.call(this)}}(),getHtml:function(){var a=this.$.innerHTML;return CKEDITOR.env.ie?a.replace(/<\?[^>]*>/g,""):a},getOuterHtml:function(){if(this.$.outerHTML)return this.$.outerHTML.replace(/<\?[^>]*>/,"");var a=this.$.ownerDocument.createElement("div");return a.appendChild(this.$.cloneNode(!0)),a.innerHTML},getClientRect:function(){var a=CKEDITOR.tools.extend({},this.$.getBoundingClientRect());return!a.width&&(a.width=a.right-a.left),!a.height&&(a.height=a.bottom-a.top),a},setHtml:CKEDITOR.env.ie&&9>CKEDITOR.env.version?function(a){try{var b=this.$;if(this.getParent())return b.innerHTML=a;var c=this.getDocument()._getHtml5ShivFrag();return c.appendChild(b),b.innerHTML=a,c.removeChild(b),a}catch(d){for(this.$.innerHTML="",b=new CKEDITOR.dom.element("body",this.getDocument()),b.$.innerHTML=a,b=b.getChildren();b.count();)this.append(b.getItem(0));return a}}:function(a){return this.$.innerHTML=a},setText:function(){var a=document.createElement("p");return a.innerHTML="x",a=a.textContent,function(b){this.$[a?"textContent":"innerText"]=b}}(),getAttribute:function(){var a=function(a){return this.$.getAttribute(a,2)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){switch(a){case"class":a="className";break;case"http-equiv":a="httpEquiv";break;case"name":return this.$.name;case"tabindex":return a=this.$.getAttribute(a,2),0!==a&&0===this.$.tabIndex&&(a=null),a;case"checked":return a=this.$.attributes.getNamedItem(a),(a.specified?a.nodeValue:this.$.checked)?"checked":null;case"hspace":case"value":return this.$[a];case"style":return this.$.style.cssText;case"contenteditable":case"contentEditable":return this.$.attributes.getNamedItem("contentEditable").specified?this.$.getAttribute("contentEditable"):null}return this.$.getAttribute(a,2)}:a}(),getAttributes:function(a){var b,c={},d=this.$.attributes;for(a=CKEDITOR.tools.isArray(a)?a:[],b=0;b=document.documentMode){var b=this.$.scopeName;"HTML"!=b&&(a=b.toLowerCase()+":"+a)}return this.getName=function(){return a},this.getName()},getValue:function(){return this.$.value},getFirst:function(a){var b=this.$.firstChild;return(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getNext(a)),b},getLast:function(a){var b=this.$.lastChild;return(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getPrevious(a)),b},getStyle:function(a){return this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]},is:function(){var a=this.getName();if("object"==typeof arguments[0])return!!arguments[0][a];for(var b=0;bCKEDITOR.env.version&&this.is("a")){var c=this.getParent();c.type==CKEDITOR.NODE_ELEMENT&&(c=c.clone(),c.setHtml(b),b=c.getHtml(),c.setHtml(a),a=c.getHtml())}return b==a},isVisible:function(){var a,b,c=(this.$.offsetHeight||this.$.offsetWidth)&&"hidden"!=this.getComputedStyle("visibility");return c&&CKEDITOR.env.webkit&&(a=this.getWindow(),!a.equals(CKEDITOR.document.getWindow())&&(b=a.$.frameElement)&&(c=new CKEDITOR.dom.element(b).isVisible())),!!c},isEmptyInlineRemoveable:function(){if(!CKEDITOR.dtd.$removeEmpty[this.getName()])return!1;for(var a=this.getChildren(),b=0,c=a.count();c>b;b++){var d=a.getItem(b);if((d.type!=CKEDITOR.NODE_ELEMENT||!d.data("cke-bookmark"))&&(d.type==CKEDITOR.NODE_ELEMENT&&!d.isEmptyInlineRemoveable()||d.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(d.getText())))return!1}return!0},hasAttributes:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(){for(var a=this.$.attributes,b=0;b0&&(b>2||!c[a[0].nodeName]||2==b&&!c[a[1].nodeName])},hasAttribute:function(){function a(a){var b=this.$.attributes.getNamedItem(a);if("input"==this.getName())switch(a){case"class":return 0CKEDITOR.env.version?function(b){return"name"==b?!!this.$.name:a.call(this,b)}:a:function(a){return!!this.$.attributes.getNamedItem(a)}}(),hide:function(){this.setStyle("display","none")},moveChildren:function(a,b){var c=this.$;if(a=a.$,c!=a){var d;if(b)for(;d=c.lastChild;)a.insertBefore(c.removeChild(d),a.firstChild);else for(;d=c.firstChild;)a.appendChild(c.removeChild(d))}},mergeSiblings:function(){function a(a,b,c){if(b&&b.type==CKEDITOR.NODE_ELEMENT){for(var d=[];b.data("cke-bookmark")||b.isEmptyInlineRemoveable();)if(d.push(b),b=c?b.getNext():b.getPrevious(),!b||b.type!=CKEDITOR.NODE_ELEMENT)return;if(a.isIdentical(b)){for(var e=c?a.getLast():a.getFirst();d.length;)d.shift().move(a,!c);b.moveChildren(a,!c),b.remove(),e&&e.type==CKEDITOR.NODE_ELEMENT&&e.mergeSiblings()}}}return function(b){(!1===b||CKEDITOR.dtd.$removeEmpty[this.getName()]||this.is("a"))&&(a(this,this.getNext(),!0),a(this,this.getPrevious()))}}(),show:function(){this.setStyles({display:"",visibility:""})},setAttribute:function(){var a=function(a,b){return this.$.setAttribute(a,b),this};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(b,c){return"class"==b?this.$.className=c:"style"==b?this.$.style.cssText=c:"tabindex"==b?this.$.tabIndex=c:"checked"==b?this.$.checked=c:"contenteditable"==b?a.call(this,"contentEditable",c):a.apply(this,arguments), +this}:CKEDITOR.env.ie8Compat&&CKEDITOR.env.secure?function(b,c){if("src"==b&&c.match(/^http:\/\//))try{a.apply(this,arguments)}catch(d){}else a.apply(this,arguments);return this}:a}(),setAttributes:function(a){for(var b in a)this.setAttribute(b,a[b]);return this},setValue:function(a){return this.$.value=a,this},removeAttribute:function(){var a=function(a){this.$.removeAttribute(a)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){"class"==a?a="className":"tabindex"==a?a="tabIndex":"contenteditable"==a&&(a="contentEditable"),this.$.removeAttribute(a)}:a}(),removeAttributes:function(a){if(CKEDITOR.tools.isArray(a))for(var b=0;bCKEDITOR.env.version?(a=Math.round(100*a),this.setStyle("filter",a>=100?"":"progid:DXImageTransform.Microsoft.Alpha(opacity="+a+")")):this.setStyle("opacity",a)},unselectable:function(){if(this.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select","none")),CKEDITOR.env.ie){this.setAttribute("unselectable","on");for(var a,b=this.getElementsByTag("*"),c=0,d=b.count();d>c;c++)a=b.getItem(c),a.setAttribute("unselectable","on")}},getPositionedAncestor:function(){for(var a=this;"html"!=a.getName();){if("static"!=a.getComputedStyle("position"))return a;a=a.getParent()}return null},getDocumentPosition:function(a){var b=0,c=0,d=this.getDocument(),e=d.getBody(),f="BackCompat"==d.$.compatMode;if(document.documentElement.getBoundingClientRect){var g=this.$.getBoundingClientRect(),h=d.$.documentElement,i=h.clientTop||e.$.clientTop||0,j=h.clientLeft||e.$.clientLeft||0,k=!0;CKEDITOR.env.ie&&(k=d.getDocumentElement().contains(this),d=d.getBody().contains(this),k=f&&d||!f&&k),k&&(CKEDITOR.env.webkit||CKEDITOR.env.ie&&12<=CKEDITOR.env.version?(b=e.$.scrollLeft||h.scrollLeft,c=e.$.scrollTop||h.scrollTop):(c=f?e.$:h,b=c.scrollLeft,c=c.scrollTop),b=g.left+b-j,c=g.top+c-i)}else for(i=this,j=null;i&&"body"!=i.getName()&&"html"!=i.getName();){for(b+=i.$.offsetLeft-i.$.scrollLeft,c+=i.$.offsetTop-i.$.scrollTop,i.equals(this)||(b+=i.$.clientLeft||0,c+=i.$.clientTop||0);j&&!j.equals(i);)b-=j.$.scrollLeft,c-=j.$.scrollTop,j=j.getParent();j=i,i=(g=i.$.offsetParent)?new CKEDITOR.dom.element(g):null}return a&&(g=this.getWindow(),i=a.getWindow(),!g.equals(i)&&g.$.frameElement&&(a=new CKEDITOR.dom.element(g.$.frameElement).getDocumentPosition(a),b+=a.x,c+=a.y)),document.documentElement.getBoundingClientRect||!CKEDITOR.env.gecko||f||(b+=this.$.clientLeft?1:0,c+=this.$.clientTop?1:0),{x:b,y:c}},scrollIntoView:function(a){var b=this.getParent();if(b)do if((b.$.clientWidth&&b.$.clientWidthj||h>0)&&d(0,!0===b?j:!1===b?h:0>j?j:h),c&&(0>i||g>0)&&d(0>i?i:g,0)},setState:function(a,b,c){switch(b=b||"cke",a){case CKEDITOR.TRISTATE_ON:this.addClass(b+"_on"),this.removeClass(b+"_off"),this.removeClass(b+"_disabled"),c&&this.setAttribute("aria-pressed",!0),c&&this.removeAttribute("aria-disabled");break;case CKEDITOR.TRISTATE_DISABLED:this.addClass(b+"_disabled"),this.removeClass(b+"_off"),this.removeClass(b+"_on"),c&&this.setAttribute("aria-disabled",!0),c&&this.removeAttribute("aria-pressed");break;default:this.addClass(b+"_off"),this.removeClass(b+"_on"),this.removeClass(b+"_disabled"),c&&this.removeAttribute("aria-pressed"),c&&this.removeAttribute("aria-disabled")}},getFrameDocument:function(){var a=this.$;try{a.contentWindow.document}catch(b){a.src=a.src}return a&&new CKEDITOR.dom.document(a.contentWindow.document)},copyAttributes:function(a,b){var c=this.$.attributes;b=b||{};for(var d=0;d=0&&b0?d.getChild(h-1):!1===f(d,!0)?null:d.getPreviousSourceNode(!0,j,f)):(d=e,d.type==CKEDITOR.NODE_ELEMENT&&((d=d.getChild(g))||(d=!1===f(e,!0)?null:e.getNextSourceNode(!0,j,f)))),d&&!1===f(d)&&(d=null));d&&!this._.end;){if(this.current=d,this.evaluator&&!1===this.evaluator(d)){if(b&&this.evaluator)return!1}else if(!b)return d;d=d[k](!1,j,f)}return this.end(),this.current=null}function b(b){for(var c,d=null;c=a.call(this,b);)d=c;return d}CKEDITOR.dom.walker=CKEDITOR.tools.createClass({$:function(a){this.range=a,this._={}},proto:{end:function(){this._.end=1},next:function(){return a.call(this)},previous:function(){return a.call(this,1)},checkForward:function(){return!1!==a.call(this,0,1)},checkBackward:function(){return!1!==a.call(this,1,1)},lastForward:function(){return b.call(this)},lastBackward:function(){return b.call(this,1)},reset:function(){delete this.current,this._={}}}});var c={block:1,"list-item":1,table:1,"table-row-group":1,"table-header-group":1,"table-footer-group":1,"table-row":1,"table-column-group":1,"table-column":1,"table-cell":1,"table-caption":1},d={absolute:1,fixed:1};CKEDITOR.dom.element.prototype.isBlockBoundary=function(a){return"none"!=this.getComputedStyle("float")||this.getComputedStyle("position")in d||!c[this.getComputedStyle("display")]?!!(this.is(CKEDITOR.dtd.$block)||a&&this.is(a)):!0},CKEDITOR.dom.walker.blockBoundary=function(a){return function(b){return!(b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary(a))}},CKEDITOR.dom.walker.listItemBoundary=function(){return this.blockBoundary({br:1})},CKEDITOR.dom.walker.bookmark=function(a,b){function c(a){return a&&a.getName&&"span"==a.getName()&&a.data("cke-bookmark")}return function(d){var e,f;return e=d&&d.type!=CKEDITOR.NODE_ELEMENT&&(f=d.getParent())&&c(f),e=a?e:e||c(d),!!(b^e)}},CKEDITOR.dom.walker.whitespaces=function(a){return function(b){var c;return b&&b.type==CKEDITOR.NODE_TEXT&&(c=!CKEDITOR.tools.trim(b.getText())||CKEDITOR.env.webkit&&b.getText()==CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE),!!(a^c)}},CKEDITOR.dom.walker.invisible=function(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.env.webkit?1:0;return function(d){return b(d)?d=1:(d.type==CKEDITOR.NODE_TEXT&&(d=d.getParent()),d=d.$.offsetWidth<=c),!!(a^d)}},CKEDITOR.dom.walker.nodeType=function(a,b){return function(c){return!!(b^c.type==a)}},CKEDITOR.dom.walker.bogus=function(a){function b(a){return!f(a)&&!g(a)}return function(c){var d=CKEDITOR.env.needsBrFiller?c.is&&c.is("br"):c.getText&&e.test(c.getText());return d&&(d=c.getParent(),c=c.getNext(b),d=d.isBlockBoundary()&&(!c||c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary())),!!(a^d)}},CKEDITOR.dom.walker.temp=function(a){return function(b){return b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent()),b=b&&b.hasAttribute("data-cke-temp"),!!(a^b)}};var e=/^[\t\r\n ]*(?: |\xa0)$/,f=CKEDITOR.dom.walker.whitespaces(),g=CKEDITOR.dom.walker.bookmark(),h=CKEDITOR.dom.walker.temp(),i=function(a){return g(a)||f(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.is(CKEDITOR.dtd.$inline)&&!a.is(CKEDITOR.dtd.$empty)};CKEDITOR.dom.walker.ignored=function(a){return function(b){return b=f(b)||g(b)||h(b),!!(a^b)}};var j=CKEDITOR.dom.walker.ignored();CKEDITOR.dom.walker.empty=function(a){return function(b){for(var c=0,d=b.getChildCount();d>c;++c)if(!j(b.getChild(c)))return!!a;return!a}};var k=CKEDITOR.dom.walker.empty(),l=CKEDITOR.dom.walker.validEmptyBlockContainers=CKEDITOR.tools.extend(function(a){var b,c={};for(b in a)CKEDITOR.dtd[b]["#"]&&(c[b]=1);return c}(CKEDITOR.dtd.$block),{caption:1,td:1,th:1});CKEDITOR.dom.walker.editable=function(a){return function(b){return b=j(b)?!1:!!(b.type==CKEDITOR.NODE_TEXT||b.type==CKEDITOR.NODE_ELEMENT&&(b.is(CKEDITOR.dtd.$inline)||b.is("hr")||"false"==b.getAttribute("contenteditable")||!CKEDITOR.env.needsBrFiller&&b.is(l)&&k(b))),!!(a^b)}},CKEDITOR.dom.element.prototype.getBogus=function(){var a=this;do a=a.getPreviousSourceNode();while(i(a));return a&&(CKEDITOR.env.needsBrFiller?a.is&&a.is("br"):a.getText&&e.test(a.getText()))?a:!1}}(),CKEDITOR.dom.range=function(a){this.endOffset=this.endContainer=this.startOffset=this.startContainer=null,this.collapsed=!0;var b=a instanceof CKEDITOR.dom.document;this.document=b?a:a.getDocument(),this.root=b?a.getBody():a},function(){function a(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer.equals(a.endContainer)&&a.startOffset==a.endOffset}function b(a,b,c,d,e){function f(a,b,c,d){var f=c?a.getPrevious():a.getNext();return d&&i?f:(k||d?b.append(a.clone(!0,e),c):(a.remove(),j&&b.append(a)),f)}function g(){var a,b,c,d=Math.min(y.length,z.length);for(a=0;d>a;a++)if(b=y[a],c=z[a],!b.equals(c))return a;return a-1}function h(){var b=A-1,c=n&&o&&!r.equals(s);B-1>b||C-1>b||c?(c?a.moveToPosition(s,CKEDITOR.POSITION_BEFORE_START):C==b+1&&m?a.moveToPosition(z[b],CKEDITOR.POSITION_BEFORE_END):a.moveToPosition(z[b+1],CKEDITOR.POSITION_BEFORE_START),d&&(b=y[b+1])&&b.type==CKEDITOR.NODE_ELEMENT&&(c=CKEDITOR.dom.element.createFromHtml(' ',a.document),c.insertAfter(b),b.mergeSiblings(!1),a.moveToBookmark({startNode:c}))):a.collapse(!0)}a.optimizeBookmark();var i=0===b,j=1==b,k=2==b;b=k||j;var l,m,n,o,p,q,r=a.startContainer,s=a.endContainer,t=a.startOffset,u=a.endOffset;if(k&&s.type==CKEDITOR.NODE_TEXT&&r.equals(s))r=a.document.createText(r.substring(t,u)),c.append(r);else{s.type==CKEDITOR.NODE_TEXT?k?q=!0:s=s.split(u):0=s.getChildCount()?(s=s.getChild(u-1),m=!0):s=s.getChild(u):o=m=!0,r.type==CKEDITOR.NODE_TEXT?k?p=!0:r.split(t):0=F;F++){for(w=y[F],x=w.getNext(),F!=B||w.equals(z[F])&&C>B?b&&(v=D.append(w.clone(0,e))):l?f(w,D,!1,n):p&&D.append(a.document.createText(w.substring(t)));x;){if(x.equals(z[F])){E=F;break}x=f(x,D)}D=v}for(D=c,F=A;C>=F;F++)if(c=z[F],x=c.getPrevious(),c.equals(y[F]))b&&(D=D.getChild(0));else{if(F!=C||c.equals(y[F])&&B>C?b&&(v=D.append(c.clone(0,e))):m?f(c,D,!1,o):q&&D.append(a.document.createText(c.substring(0,u))),F>E)for(;x;)x=f(x,D,!0);D=v}k||h()}}function c(){var a=!1,b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(!0),d=CKEDITOR.dom.walker.bogus();return function(e){return c(e)||b(e)?!0:d(e)&&!a?a=!0:!(e.type==CKEDITOR.NODE_TEXT&&(e.hasAscendant("pre")||CKEDITOR.tools.trim(e.getText()).length)||e.type==CKEDITOR.NODE_ELEMENT&&!e.is(f))}}function d(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(1);return function(d){return c(d)||b(d)?!0:!a&&g(d)||d.type==CKEDITOR.NODE_ELEMENT&&d.is(CKEDITOR.dtd.$removeEmpty)}}function e(a){return function(){var b;return this[a?"getPreviousNode":"getNextNode"](function(a){return!b&&j(a)&&(b=a),i(a)&&!(g(a)&&a.equals(b))})}}var f={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1},g=CKEDITOR.dom.walker.bogus(),h=/^[\t\r\n ]*(?: |\xa0)$/,i=CKEDITOR.dom.walker.editable(),j=CKEDITOR.dom.walker.ignored(!0);CKEDITOR.dom.range.prototype={clone:function(){var a=new CKEDITOR.dom.range(this.root);return a._setStartContainer(this.startContainer),a.startOffset=this.startOffset,a._setEndContainer(this.endContainer),a.endOffset=this.endOffset,a.collapsed=this.collapsed,a},collapse:function(a){a?(this._setEndContainer(this.startContainer),this.endOffset=this.startOffset):(this._setStartContainer(this.endContainer),this.startOffset=this.endOffset),this.collapsed=!0},cloneContents:function(a){var c=new CKEDITOR.dom.documentFragment(this.document);return this.collapsed||b(this,2,c,!1,"undefined"==typeof a?!0:a),c},deleteContents:function(a){this.collapsed||b(this,0,null,a)},extractContents:function(a,c){var d=new CKEDITOR.dom.documentFragment(this.document);return this.collapsed||b(this,1,d,a,"undefined"==typeof c?!0:c),d},createBookmark:function(a){var b,c,d,e,f=this.collapsed;return b=this.document.createElement("span"),b.data("cke-bookmark",1),b.setStyle("display","none"),b.setHtml(" "),a&&(d="cke_bm_"+CKEDITOR.tools.getNextNumber(),b.setAttribute("id",d+(f?"C":"S"))),f||(c=b.clone(),c.setHtml(" "),a&&c.setAttribute("id",d+"E"),e=this.clone(),e.collapse(),e.insertNode(c)),e=this.clone(),e.collapse(!0),e.insertNode(b),c?(this.setStartAfter(b),this.setEndBefore(c)):this.moveToPosition(b,CKEDITOR.POSITION_AFTER_END),{startNode:a?d+(f?"C":"S"):b,endNode:a?d+"E":c,serializable:a,collapsed:f}},createBookmark2:function(){function a(a){var b,d=a.container,e=a.offset;b=d;var f=e;if(b=b.type!=CKEDITOR.NODE_ELEMENT||0===f||f==b.getChildCount()?0:b.getChild(f-1).type==CKEDITOR.NODE_TEXT&&b.getChild(f).type==CKEDITOR.NODE_TEXT,b&&(d=d.getChild(e-1),e=d.getLength()),d.type==CKEDITOR.NODE_ELEMENT&&e>0){a:{for(b=d;e--;)if(f=b.getChild(e).getIndex(!0),f>=0){e=f;break a}e=-1}e+=1}if(d.type==CKEDITOR.NODE_TEXT){for(b=d,f=0;(b=b.getPrevious())&&b.type==CKEDITOR.NODE_TEXT;)f+=b.getText().replace(CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE,"").length;b=f,d.getText()?e+=b:(f=d.getPrevious(c),b?(e=b,d=f?f.getNext():d.getParent().getFirst()):(d=d.getParent(),e=f?f.getIndex(!0)+1:0))}a.container=d,a.offset=e}function b(a,b){var c=b.getCustomData("cke-fillingChar");if(c){var d=a.container;c.equals(d)&&(a.offset-=CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE.length,0>=a.offset&&(a.offset=d.getIndex(),a.container=d.getParent()))}}var c=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_TEXT,!0);return function(c){var d=this.collapsed,e={container:this.startContainer,offset:this.startOffset},f={container:this.endContainer,offset:this.endOffset};return c&&(a(e),b(e,this.root),d||(a(f),b(f,this.root))),{start:e.container.getAddress(c),end:d?null:f.container.getAddress(c),startOffset:e.offset,endOffset:f.offset,normalized:c,collapsed:d,is2:!0}}}(),moveToBookmark:function(a){if(a.is2){var b=this.document.getByAddress(a.start,a.normalized),c=a.startOffset,d=a.end&&this.document.getByAddress(a.end,a.normalized);a=a.endOffset,this.setStart(b,c),d?this.setEnd(d,a):this.collapse(!0)}else b=(c=a.serializable)?this.document.getById(a.startNode):a.startNode,a=c?this.document.getById(a.endNode):a.endNode,this.setStartBefore(b),b.remove(),a?(this.setEndBefore(a),a.remove()):this.collapse(!0)},getBoundaryNodes:function(){var a,b=this.startContainer,c=this.endContainer,d=this.startOffset,e=this.endOffset;if(b.type==CKEDITOR.NODE_ELEMENT)if(a=b.getChildCount(),a>d)b=b.getChild(d);else if(1>a)b=b.getPreviousSourceNode();else{for(b=b.$;b.lastChild;)b=b.lastChild;b=new CKEDITOR.dom.node(b),b=b.getNextSourceNode()||b}if(c.type==CKEDITOR.NODE_ELEMENT)if(a=c.getChildCount(),a>e)c=c.getChild(e).getPreviousSourceNode(!0);else if(1>a)c=c.getPreviousSourceNode();else{for(c=c.$;c.lastChild;)c=c.lastChild;c=new CKEDITOR.dom.node(c)}return b.getPosition(c)&CKEDITOR.POSITION_FOLLOWING&&(b=c),{startNode:b,endNode:c}},getCommonAncestor:function(a,b){var c=this.startContainer,d=this.endContainer,c=c.equals(d)?a&&c.type==CKEDITOR.NODE_ELEMENT&&this.startOffset==this.endOffset-1?c.getChild(this.startOffset):c:c.getCommonAncestor(d);return b&&!c.is?c.getParent():c},optimize:function(){var a=this.startContainer,b=this.startOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setStartAfter(a):this.setStartBefore(a)),a=this.endContainer,b=this.endOffset,a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setEndAfter(a):this.setEndBefore(a))},optimizeBookmark:function(){var a=this.startContainer,b=this.endContainer;a.is&&a.is("span")&&a.data("cke-bookmark")&&this.setStartAt(a,CKEDITOR.POSITION_BEFORE_START),b&&b.is&&b.is("span")&&b.data("cke-bookmark")&&this.setEndAt(b,CKEDITOR.POSITION_AFTER_END)},trim:function(a,b){var c=this.startContainer,d=this.startOffset,e=this.collapsed;if((!a||e)&&c&&c.type==CKEDITOR.NODE_TEXT){if(d)if(d>=c.getLength())d=c.getIndex()+1,c=c.getParent();else{var f=c.split(d),d=c.getIndex()+1,c=c.getParent();this.startContainer.equals(this.endContainer)?this.setEnd(f,this.endOffset-this.startOffset):c.equals(this.endContainer)&&(this.endOffset+=1)}else d=c.getIndex(),c=c.getParent();if(this.setStart(c,d),e)return void this.collapse(!0)}c=this.endContainer,d=this.endOffset,b||e||!c||c.type!=CKEDITOR.NODE_TEXT||(d?(d>=c.getLength()||c.split(d),d=c.getIndex()+1):d=c.getIndex(),c=c.getParent(),this.setEnd(c,d))},enlarge:function(a,b){function c(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("contenteditable")?null:a}var d=new RegExp(/[^\s\ufeff]/);switch(a){case CKEDITOR.ENLARGE_INLINE:var e=1;case CKEDITOR.ENLARGE_ELEMENT:var f=function(a,b){var c=new CKEDITOR.dom.range(o);c.setStart(a,b),c.setEndAt(o,CKEDITOR.POSITION_BEFORE_END);var e,c=new CKEDITOR.dom.walker(c);for(c.guard=function(a){return!(a.type==CKEDITOR.NODE_ELEMENT&&a.isBlockBoundary())};e=c.next();){if(e.type!=CKEDITOR.NODE_TEXT)return!1;if(m=e!=a?e.getText():e.substring(b),d.test(m))return!1}return!0};if(this.collapsed)break;var g,h,i,j,k,l,m,n=this.getCommonAncestor(),o=this.root,p=!1;l=this.startContainer;var q=this.startOffset;for(l.type==CKEDITOR.NODE_TEXT?(q&&(l=!CKEDITOR.tools.trim(l.substring(0,q)).length&&l,p=!!l),l&&((j=l.getPrevious())||(i=l.getParent()))):(q&&(j=l.getChild(q-1)||l.getLast()),j||(i=l)),i=c(i);i||j;){if(i&&!j){if(!k&&i.equals(n)&&(k=!0),e?i.isBlockBoundary():!o.contains(i))break;p&&"inline"==i.getComputedStyle("display")||(p=!1,k?g=i:this.setStartBefore(i)),j=i.getPrevious()}for(;j;)if(l=!1,j.type==CKEDITOR.NODE_COMMENT)j=j.getPrevious();else{if(j.type==CKEDITOR.NODE_TEXT)m=j.getText(),d.test(m)&&(j=null),l=/[\s\ufeff]$/.test(m);else if((j.$.offsetWidth>(CKEDITOR.env.webkit?1:0)||b&&j.is("br"))&&!j.data("cke-bookmark"))if(p&&CKEDITOR.dtd.$removeEmpty[j.getName()]){if(m=j.getText(),d.test(m))j=null;else for(var r,q=j.$.getElementsByTagName("*"),s=0;r=q[s++];)if(!CKEDITOR.dtd.$removeEmpty[r.nodeName.toLowerCase()]){j=null;break}j&&(l=!!m.length)}else j=null;if(l&&(p?k?g=i:i&&this.setStartBefore(i):p=!0),j){if(l=j.getPrevious(),!i&&!l){i=j,j=null;break}j=l}else i=null}i&&(i=c(i.getParent()))}for(l=this.endContainer,q=this.endOffset,i=j=null,k=p=!1,l.type==CKEDITOR.NODE_TEXT?CKEDITOR.tools.trim(l.substring(q)).length?p=!0:(p=!l.getLength(),q==l.getLength()?(j=l.getNext())||(i=l.getParent()):f(l,q)&&(i=l.getParent())):(j=l.getChild(q))||(i=l);i||j;){if(i&&!j){if(!k&&i.equals(n)&&(k=!0),e?i.isBlockBoundary():!o.contains(i))break;p&&"inline"==i.getComputedStyle("display")||(p=!1,k?h=i:i&&this.setEndAfter(i)),j=i.getNext()}for(;j;){if(l=!1,j.type==CKEDITOR.NODE_TEXT)m=j.getText(),f(j,0)||(j=null),l=/^[\s\ufeff]/.test(m);else if(j.type==CKEDITOR.NODE_ELEMENT){if((0=e.getLength()?d.setStartAfter(e):(d.setStartBefore(e),i=0):d.setStartBefore(e)),f&&f.type==CKEDITOR.NODE_TEXT&&(h?h>=f.getLength()?d.setEndAfter(f):(d.setEndAfter(f),j=0):d.setEndBefore(f));var d=new CKEDITOR.dom.walker(d),k=CKEDITOR.dom.walker.bookmark();d.evaluator=function(b){return b.type==(a==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var l;return d.guard=function(b,d){return k(b)?!0:a==CKEDITOR.SHRINK_ELEMENT&&b.type==CKEDITOR.NODE_TEXT||d&&b.equals(l)||!1===c&&b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary()||b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("contenteditable")?!1:(d||b.type!=CKEDITOR.NODE_ELEMENT||(l=b),!0)},i&&(e=d[a==CKEDITOR.SHRINK_ELEMENT?"lastForward":"next"]())&&this.setStartAt(e,b?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_START),j&&(d.reset(),(d=d[a==CKEDITOR.SHRINK_ELEMENT?"lastBackward":"previous"]())&&this.setEndAt(d,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_END)),!(!i&&!j)}},insertNode:function(a){this.optimizeBookmark(),this.trim(!1,!0);var b=this.startContainer,c=b.getChild(this.startOffset);c?a.insertBefore(c):b.append(a),a.getParent()&&a.getParent().equals(this.endContainer)&&this.endOffset++,this.setStartBefore(a)},moveToPosition:function(a,b){this.setStartAt(a,b),this.collapse(!0)},moveToRange:function(a){this.setStart(a.startContainer,a.startOffset),this.setEnd(a.endContainer,a.endOffset)},selectNodeContents:function(a){this.setStart(a,0),this.setEnd(a,a.type==CKEDITOR.NODE_TEXT?a.getLength():a.getChildCount())},setStart:function(b,c){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(c=b.getIndex(),b=b.getParent()),this._setStartContainer(b),this.startOffset=c,this.endContainer||(this._setEndContainer(b),this.endOffset=c),a(this)},setEnd:function(b,c){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(c=b.getIndex()+1,b=b.getParent()),this._setEndContainer(b),this.endOffset=c,this.startContainer||(this._setStartContainer(b),this.startOffset=c),a(this)},setStartAfter:function(a){this.setStart(a.getParent(),a.getIndex()+1)},setStartBefore:function(a){this.setStart(a.getParent(),a.getIndex())},setEndAfter:function(a){this.setEnd(a.getParent(),a.getIndex()+1)},setEndBefore:function(a){this.setEnd(a.getParent(),a.getIndex())},setStartAt:function(b,c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setStart(b,0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setStart(b,b.getLength()):this.setStart(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setStartBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setStartAfter(b)}a(this)},setEndAt:function(b,c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setEnd(b,0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setEnd(b,b.getLength()):this.setEnd(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(b)}a(this)},fixBlock:function(a,b){var c=this.createBookmark(),d=this.document.createElement(b);this.collapse(a),this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS),this.extractContents().appendTo(d),d.trim(),this.insertNode(d);var e=d.getBogus();return e&&e.remove(),d.appendBogus(),this.moveToBookmark(c),d},splitBlock:function(a,b){var c=new CKEDITOR.dom.elementPath(this.startContainer,this.root),d=new CKEDITOR.dom.elementPath(this.endContainer,this.root),e=c.block,f=d.block,g=null;return c.blockLimit.equals(d.blockLimit)?("br"!=a&&(e||(e=this.fixBlock(!0,a),f=new CKEDITOR.dom.elementPath(this.endContainer,this.root).block),f||(f=this.fixBlock(!1,a))),c=e&&this.checkStartOfBlock(),d=f&&this.checkEndOfBlock(),this.deleteContents(),e&&e.equals(f)&&(d?(g=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(f,CKEDITOR.POSITION_AFTER_END),f=null):c?(g=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e=null):(f=this.splitElement(e,b||!1),e.is("ul","ol")||e.appendBogus())),{previousBlock:e,nextBlock:f,wasStartOfBlock:c,wasEndOfBlock:d,elementPath:g}):null},splitElement:function(a,b){if(!this.collapsed)return null;this.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);var c=this.extractContents(!1,b||!1),d=a.clone(!1,b||!1);return c.appendTo(d),d.insertAfter(a),this.moveToPosition(a,CKEDITOR.POSITION_AFTER_END),d},removeEmptyBlocksAtEnd:function(){function a(a){return function(d){return!(b(d)||c(d)||d.type==CKEDITOR.NODE_ELEMENT&&d.isEmptyInlineRemoveable()||a.is("table")&&d.is("caption"))}}var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(!1);return function(b){for(var c,d=this.createBookmark(),e=this[b?"endPath":"startPath"](),f=e.block||e.blockLimit;f&&!f.equals(e.root)&&!f.getFirst(a(f));)c=f.getParent(),this[b?"setEndAt":"setStartAt"](f,CKEDITOR.POSITION_AFTER_END),f.remove(1),f=c;this.moveToBookmark(d)}}(),startPath:function(){return new CKEDITOR.dom.elementPath(this.startContainer,this.root)},endPath:function(){return new CKEDITOR.dom.elementPath(this.endContainer,this.root)},checkBoundaryOfElement:function(a,b){var c=b==CKEDITOR.START,e=this.clone();return e.collapse(c),e[c?"setStartAt":"setEndAt"](a,c?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END),e=new CKEDITOR.dom.walker(e),e.evaluator=d(c),e[c?"checkBackward":"checkForward"]()},checkStartOfBlock:function(){var a=this.startContainer,b=this.startOffset; +return CKEDITOR.env.ie&&b&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.ltrim(a.substring(0,b)),h.test(a)&&this.trim(0,1)),this.trim(),a=new CKEDITOR.dom.elementPath(this.startContainer,this.root),b=this.clone(),b.collapse(!0),b.setStartAt(a.block||a.blockLimit,CKEDITOR.POSITION_AFTER_START),a=new CKEDITOR.dom.walker(b),a.evaluator=c(),a.checkBackward()},checkEndOfBlock:function(){var a=this.endContainer,b=this.endOffset;return CKEDITOR.env.ie&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.rtrim(a.substring(b)),h.test(a)&&this.trim(1,0)),this.trim(),a=new CKEDITOR.dom.elementPath(this.endContainer,this.root),b=this.clone(),b.collapse(!1),b.setEndAt(a.block||a.blockLimit,CKEDITOR.POSITION_BEFORE_END),a=new CKEDITOR.dom.walker(b),a.evaluator=c(),a.checkForward()},getPreviousNode:function(a,b,c){var d=this.clone();return d.collapse(1),d.setStartAt(c||this.root,CKEDITOR.POSITION_AFTER_START),c=new CKEDITOR.dom.walker(d),c.evaluator=a,c.guard=b,c.previous()},getNextNode:function(a,b,c){var d=this.clone();return d.collapse(),d.setEndAt(c||this.root,CKEDITOR.POSITION_BEFORE_END),c=new CKEDITOR.dom.walker(d),c.evaluator=a,c.guard=b,c.next()},checkReadOnly:function(){function a(a,b){for(;a;){if(a.type==CKEDITOR.NODE_ELEMENT){if("false"==a.getAttribute("contentEditable")&&!a.data("cke-editable"))return 0;if(a.is("html")||"true"==a.getAttribute("contentEditable")&&(a.contains(b)||a.equals(b)))break}a=a.getParent()}return 1}return function(){var b=this.startContainer,c=this.endContainer;return!(a(b,c)&&a(c,b))}}(),moveToElementEditablePosition:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&!a.isEditable(!1))return this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START),!0;for(var c=0;a;){if(a.type==CKEDITOR.NODE_TEXT){b&&this.endContainer&&this.checkEndOfBlock()&&h.test(a.getText())?this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START),c=1;break}if(a.type==CKEDITOR.NODE_ELEMENT)if(a.isEditable())this.moveToPosition(a,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_START),c=1;else if(b&&a.is("br")&&this.endContainer&&this.checkEndOfBlock())this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START);else if("false"==a.getAttribute("contenteditable")&&a.is(CKEDITOR.dtd.$block))return this.setStartBefore(a),this.setEndAfter(a),!0;var d=a,e=c,f=void 0;d.type==CKEDITOR.NODE_ELEMENT&&d.isEditable(!1)&&(f=d[b?"getLast":"getFirst"](j)),e||f||(f=d[b?"getPrevious":"getNext"](j)),a=f}return!!c},moveToClosestEditablePosition:function(a,b){var c,d,e,f=0,g=[CKEDITOR.POSITION_AFTER_END,CKEDITOR.POSITION_BEFORE_START];return a?(c=new CKEDITOR.dom.range(this.root),c.moveToPosition(a,g[b?0:1])):c=this.clone(),a&&!a.is(CKEDITOR.dtd.$block)?f=1:(d=c[b?"getNextEditableNode":"getPreviousEditableNode"]())&&(f=1,(e=d.type==CKEDITOR.NODE_ELEMENT)&&d.is(CKEDITOR.dtd.$block)&&"false"==d.getAttribute("contenteditable")?(c.setStartAt(d,CKEDITOR.POSITION_BEFORE_START),c.setEndAt(d,CKEDITOR.POSITION_AFTER_END)):!CKEDITOR.env.needsBrFiller&&e&&d.is(CKEDITOR.dom.walker.validEmptyBlockContainers)?(c.setEnd(d,0),c.collapse()):c.moveToPosition(d,g[b?1:0])),f&&this.moveToRange(c),!!f},moveToElementEditStart:function(a){return this.moveToElementEditablePosition(a)},moveToElementEditEnd:function(a){return this.moveToElementEditablePosition(a,!0)},getEnclosedNode:function(){var a=this.clone();if(a.optimize(),a.startContainer.type!=CKEDITOR.NODE_ELEMENT||a.endContainer.type!=CKEDITOR.NODE_ELEMENT)return null;var a=new CKEDITOR.dom.walker(a),b=CKEDITOR.dom.walker.bookmark(!1,!0),c=CKEDITOR.dom.walker.whitespaces(!0);a.evaluator=function(a){return c(a)&&b(a)};var d=a.next();return a.reset(),d&&d.equals(a.previous())?d:null},getTouchedStartNode:function(){var a=this.startContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.startOffset)||a},getTouchedEndNode:function(){var a=this.endContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.endOffset-1)||a},getNextEditableNode:e(),getPreviousEditableNode:e(1),scrollIntoView:function(){var a,b,c,d=new CKEDITOR.dom.element.createFromHtml(" ",this.document),e=this.clone();e.optimize(),(c=e.startContainer.type==CKEDITOR.NODE_TEXT)?(b=e.startContainer.getText(),a=e.startContainer.split(e.startOffset),d.insertAfter(e.startContainer)):e.insertNode(d),d.scrollIntoView(),c&&(e.startContainer.setText(b),a.remove()),d.remove()},_setStartContainer:function(a){this.startContainer=a},_setEndContainer:function(a){this.endContainer=a}}}(),CKEDITOR.POSITION_AFTER_START=1,CKEDITOR.POSITION_BEFORE_END=2,CKEDITOR.POSITION_BEFORE_START=3,CKEDITOR.POSITION_AFTER_END=4,CKEDITOR.ENLARGE_ELEMENT=1,CKEDITOR.ENLARGE_BLOCK_CONTENTS=2,CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS=3,CKEDITOR.ENLARGE_INLINE=4,CKEDITOR.START=1,CKEDITOR.END=2,CKEDITOR.SHRINK_ELEMENT=1,CKEDITOR.SHRINK_TEXT=2,function(){function a(a){1>arguments.length||(this.range=a,this.forceBrBreak=0,this.enlargeBr=1,this.enforceRealBlocks=0,this._||(this._={}))}function b(a){var b=[];return a.forEach(function(a){return"true"==a.getAttribute("contenteditable")?(b.push(a),!1):void 0},CKEDITOR.NODE_ELEMENT,!0),b}function c(a,d,e,f){a:{null==f&&(f=b(e));for(var g;g=f.shift();)if(g.getDtd().p){f={element:g,remaining:f};break a}f=null}return f?(g=CKEDITOR.filter.instances[f.element.data("cke-filter")])&&!g.check(d)?c(a,d,e,f.remaining):(d=new CKEDITOR.dom.range(f.element),d.selectNodeContents(f.element),d=d.createIterator(),d.enlargeBr=a.enlargeBr,d.enforceRealBlocks=a.enforceRealBlocks,d.activeFilter=d.filter=g,a._.nestedEditable={element:f.element,container:e,remaining:f.remaining,iterator:d},1):0}function d(a,b,c){return b?(a=a.clone(),a.collapse(!c),a.checkBoundaryOfElement(b,c?CKEDITOR.START:CKEDITOR.END)):!1}var e=/^[\r\n\t ]+$/,f=CKEDITOR.dom.walker.bookmark(!1,!0),g=CKEDITOR.dom.walker.whitespaces(!0),h=function(a){return f(a)&&g(a)},i={dd:1,dt:1,li:1};a.prototype={getNextParagraph:function(a){var b,g,j,k,l;if(a=a||"p",this._.nestedEditable){if(b=this._.nestedEditable.iterator.getNextParagraph(a))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,b;if(this.activeFilter=this.filter,c(this,a,this._.nestedEditable.container,this._.nestedEditable.remaining))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,this._.nestedEditable.iterator.getNextParagraph(a);this._.nestedEditable=null}if(!this.range.root.getDtd()[a])return null;if(!this._.started){var m=this.range.clone();g=m.startPath();var n=m.endPath(),o=!m.collapsed&&d(m,g.block),p=!m.collapsed&&d(m,n.block,1);m.shrink(CKEDITOR.SHRINK_ELEMENT,!0),o&&m.setStartAt(g.block,CKEDITOR.POSITION_BEFORE_END),p&&m.setEndAt(n.block,CKEDITOR.POSITION_AFTER_START),g=m.endContainer.hasAscendant("pre",!0)||m.startContainer.hasAscendant("pre",!0),m.enlarge(this.forceBrBreak&&!g||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS),m.collapsed||(g=new CKEDITOR.dom.walker(m.clone()),n=CKEDITOR.dom.walker.bookmark(!0,!0),g.evaluator=n,this._.nextNode=g.next(),g=new CKEDITOR.dom.walker(m.clone()),g.evaluator=n,g=g.previous(),this._.lastNode=g.getNextSourceNode(!0,null,m.root),this._.lastNode&&this._.lastNode.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()&&(n=this.range.clone(),n.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END),n.checkEndOfBlock()&&(n=new CKEDITOR.dom.elementPath(n.endContainer,n.root),this._.lastNode=(n.block||n.blockLimit).getNextSourceNode(!0))),this._.lastNode&&m.root.contains(this._.lastNode)||(this._.lastNode=this._.docEndMarker=m.document.createText(""),this._.lastNode.insertAfter(g)),m=null),this._.started=1,g=m}for(n=this._.nextNode,m=this._.lastNode,this._.nextNode=null;n;){var o=0,p=n.hasAscendant("pre"),q=n.type!=CKEDITOR.NODE_ELEMENT,r=0;if(q)n.type==CKEDITOR.NODE_TEXT&&e.test(n.getText())&&(q=0);else{var s=n.getName();if(CKEDITOR.dtd.$block[s]&&"false"==n.getAttribute("contenteditable")){b=n,c(this,a,b);break}if(n.isBlockBoundary(this.forceBrBreak&&!p&&{br:1})){if("br"==s)q=1;else if(!g&&!n.getChildCount()&&"hr"!=s){b=n,j=n.equals(m);break}g&&(g.setEndAt(n,CKEDITOR.POSITION_BEFORE_START),"br"!=s&&(this._.nextNode=n)),o=1}else{if(n.getFirst()){g||(g=this.range.clone(),g.setStartAt(n,CKEDITOR.POSITION_BEFORE_START)),n=n.getFirst();continue}q=1}}if(q&&!g&&(g=this.range.clone(),g.setStartAt(n,CKEDITOR.POSITION_BEFORE_START)),j=(!o||q)&&n.equals(m),g&&!o)for(;!n.getNext(h)&&!j;){if(s=n.getParent(),s.isBlockBoundary(this.forceBrBreak&&!p&&{br:1})){o=1,q=0,j||s.equals(m),g.setEndAt(s,CKEDITOR.POSITION_BEFORE_END);break}n=s,q=1,j=n.equals(m),r=1}if(q&&g.setEndAt(n,CKEDITOR.POSITION_AFTER_END),n=this._getNextSourceNode(n,r,m),(j=!n)||o&&g)break}if(!b){if(!g)return this._.docEndMarker&&this._.docEndMarker.remove(),this._.nextNode=null;b=new CKEDITOR.dom.elementPath(g.startContainer,g.root),n=b.blockLimit,o={div:1,th:1,td:1},b=b.block,!b&&n&&!this.enforceRealBlocks&&o[n.getName()]&&g.checkStartOfBlock()&&g.checkEndOfBlock()&&!n.equals(g.root)?b=n:!b||this.enforceRealBlocks&&b.is(i)?(b=this.range.document.createElement(a),g.extractContents().appendTo(b),b.trim(),g.insertNode(b),k=l=!0):"li"!=b.getName()?g.checkStartOfBlock()&&g.checkEndOfBlock()||(b=b.clone(!1),g.extractContents().appendTo(b),b.trim(),l=g.splitBlock(),k=!l.wasStartOfBlock,l=!l.wasEndOfBlock,g.insertNode(b)):j||(this._.nextNode=b.equals(m)?null:this._getNextSourceNode(g.getBoundaryNodes().endNode,1,m))}return k&&(k=b.getPrevious())&&k.type==CKEDITOR.NODE_ELEMENT&&("br"==k.getName()?k.remove():k.getLast()&&"br"==k.getLast().$.nodeName.toLowerCase()&&k.getLast().remove()),l&&(k=b.getLast())&&k.type==CKEDITOR.NODE_ELEMENT&&"br"==k.getName()&&(!CKEDITOR.env.needsBrFiller||k.getPrevious(f)||k.getNext(f))&&k.remove(),this._.nextNode||(this._.nextNode=j||b.equals(m)||!m?null:this._getNextSourceNode(b,1,m)),b},_getNextSourceNode:function(a,b,c){function d(a){return!(a.equals(c)||a.equals(e))}var e=this.range.root;for(a=a.getNextSourceNode(b,null,d);!f(a);)a=a.getNextSourceNode(b,null,d);return a}},CKEDITOR.dom.range.prototype.createIterator=function(){return new a(this)}}(),CKEDITOR.command=function(a,b){this.uiItems=[],this.exec=function(c){return this.state!=CKEDITOR.TRISTATE_DISABLED&&this.checkAllowed()?(this.editorFocus&&a.focus(),!1===this.fire("exec")?!0:!1!==b.exec.call(this,a,c)):!1},this.refresh=function(a,c){return!this.readOnly&&a.readOnly?!0:this.context&&!c.isContextFor(this.context)||!this.checkAllowed(!0)?(this.disable(),!0):(this.startDisabled||this.enable(),this.modes&&!this.modes[a.mode]&&this.disable(),!1===this.fire("refresh",{editor:a,path:c})?!0:b.refresh&&!1!==b.refresh.apply(this,arguments))};var c;this.checkAllowed=function(b){return b||"boolean"!=typeof c?c=a.activeFilter.checkFeature(this):c},CKEDITOR.tools.extend(this,b,{modes:{wysiwyg:1},editorFocus:1,contextSensitive:!!b.context,state:CKEDITOR.TRISTATE_DISABLED}),CKEDITOR.event.call(this)},CKEDITOR.command.prototype={enable:function(){this.state==CKEDITOR.TRISTATE_DISABLED&&this.checkAllowed()&&this.setState(this.preserveState&&"undefined"!=typeof this.previousState?this.previousState:CKEDITOR.TRISTATE_OFF)},disable:function(){this.setState(CKEDITOR.TRISTATE_DISABLED)},setState:function(a){return this.state==a||a!=CKEDITOR.TRISTATE_DISABLED&&!this.checkAllowed()?!1:(this.previousState=this.state,this.state=a,this.fire("state"),!0)},toggleState:function(){this.state==CKEDITOR.TRISTATE_OFF?this.setState(CKEDITOR.TRISTATE_ON):this.state==CKEDITOR.TRISTATE_ON&&this.setState(CKEDITOR.TRISTATE_OFF)}},CKEDITOR.event.implementOn(CKEDITOR.command.prototype),CKEDITOR.ENTER_P=1,CKEDITOR.ENTER_BR=2,CKEDITOR.ENTER_DIV=3,CKEDITOR.config={customConfig:"config.js",autoUpdateElement:!0,language:"",defaultLanguage:"en",contentsLangDirection:"",enterMode:CKEDITOR.ENTER_P,forceEnterMode:!1,shiftEnterMode:CKEDITOR.ENTER_BR,docType:"",bodyId:"",bodyClass:"",fullPage:!1,height:200,contentsCss:CKEDITOR.getUrl("contents.css"),extraPlugins:"",removePlugins:"",protectedSource:[],tabIndex:0,width:"",baseFloatZIndex:1e4,blockedKeystrokes:[CKEDITOR.CTRL+66,CKEDITOR.CTRL+73,CKEDITOR.CTRL+85]},function(){function a(a,b,c,d,e){var f,h;a=[];for(f in b){h=b[f],h="boolean"==typeof h?{}:"function"==typeof h?{match:h}:B(h),"$"!=f.charAt(0)&&(h.elements=f),c&&(h.featureName=c.toLowerCase());var i=h;i.elements=g(i.elements,/\s+/)||null,i.propertiesOnly=i.propertiesOnly||!0===i.elements;var j=/\s*,\s*/,k=void 0;for(k in F){i[k]=g(i[k],j)||null;var l=i,m=G[k],n=g(i[G[k]],j),o=i[k],p=[],q=!0,s=void 0;n?q=!1:n={};for(s in o)"!"==s.charAt(0)&&(s=s.slice(1),p.push(s),n[s]=!0,q=!1);for(;s=p.pop();)o[s]=o["!"+s],delete o["!"+s];l[m]=(q?!1:n)||null}i.match=i.match||null,d.push(h),a.push(h)}b=e.elements,e=e.generic;var t;for(c=0,d=a.length;d>c;++c){f=B(a[c]),h=!0===f.classes||!0===f.styles||!0===f.attributes,i=f,k=m=j=void 0;for(j in F)i[j]=r(i[j]);l=!0;for(k in G){j=G[k],m=i[j],n=[],o=void 0;for(o in m)-1g;++g)f=b[g],e[f]||(e[f]=a(f));a=!1}else a=!1;d.allClasses=a}}function c(a,b,c){if(!a)return!1;if(!0===a)return!0;for(var d in b)c[d]||(c[d]=a(d));return!1}function d(a,b,c){if(!a.match||a.match(b)){if(a.noProperties)return!1;if(c.hadInvalidAttribute=e(a.attributes,b.attributes)||c.hadInvalidAttribute,c.hadInvalidStyle=e(a.styles,b.styles)||c.hadInvalidStyle,a=a.classes,b=b.classes,a){for(var d=!1,f=!0===a,g=b.length;g--;)(f||a(b[g]))&&(b.splice(g,1),d=!0);a=d}else a=!1;c.hadInvalidClass=a||c.hadInvalidClass}}function e(a,b){if(!a)return!1;var c,d=!1,e=!0===a;for(c in b)(e||a(c))&&(delete b[c],d=!0);return d}function f(a,b,c){return a.disabled||a.customConfig&&!c||!b?!1:(a._.cachedChecks={},!0)}function g(a,b){if(!a)return!1;if(!0===a)return a;if("string"==typeof a)return a=C(a),"*"==a?!0:CKEDITOR.tools.convertArrayToObject(a.split(b));if(CKEDITOR.tools.isArray(a))return a.length?CKEDITOR.tools.convertArrayToObject(a):!1;var c,d={},e=0;for(c in a)d[c]=a[c],e++;return e?d:!1}function h(a,b){if(a.nothingRequired)return!0;var c,d,e,f;if(e=a.requiredClasses)for(f=b.classes,c=0;cj;++j)if(i=g[j](c)){g=i;break a}g=void 0}if(g)return g}if(f.doTransform&&(g=a._.transformations[c.name])){for(m(c),j=0;jl;++l)if(!1===d(j[l],c,o)){a=null;break a}if(k)for(l=0,n=k.length;n>l;++l)d(k[l],c,o);if(a)for(l=0,n=a.length;n>l;++l)b(a[l],c,o,i);if(g)for(l=0,n=g.length;n>l;++l)b(g[l],c,o,i);a=o}else a=null}if(!a||!a.valid)return e.push(c),1;n=a.validAttributes;var r=a.validStyles;g=a.validClasses;var j=c.attributes,s=c.styles,k=c.classes;i=c.classBackup;var t,u,w=c.styleBackup,x=[],o=[],y=/^data-cke-/;if(l=!1,delete j.style,delete j["class"],delete c.classBackup,delete c.styleBackup,!a.allAttributes)for(t in j)n[t]||(y.test(t)?t==(u=t.replace(/^data-cke-saved-/,""))||n[u]||(delete j[t],l=!0):(delete j[t],l=!0));if(!a.allStyles||a.hadInvalidStyle){for(t in s)a.allStyles||r[t]?x.push(t+":"+s[t]):l=!0;x.length&&(j.style=x.sort().join("; "))}else w&&(j.style=w);if(!a.allClasses||a.hadInvalidClass){for(t=0;tg;++g)if(f=d[g],f.type==CKEDITOR.NODE_ELEMENT&&!e[f.name]){e=!1;break a}e=!0}if(e)a.name=b,a.attributes={},c.push({check:"parent-down",el:a});else{e=a.parent;for(var i,j,g=e.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||"body"==e.name,h=d.length;h>0;)f=d[--h],g&&(f.type==CKEDITOR.NODE_TEXT||f.type==CKEDITOR.NODE_ELEMENT&&A.$inline[f.name])?(i||(i=new CKEDITOR.htmlParser.element(b),i.insertAfter(a),c.push({check:"parent-down",el:i})),i.add(f,0)):(i=null,j=A[e.name]||A.span,f.insertAfter(a),e.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||f.type!=CKEDITOR.NODE_ELEMENT||j[f.name]||c.push({check:"el-up",el:f}));a.remove()}}else d in{style:1,script:1}?a.remove():(a.parent&&c.push({check:"it",el:a.parent}),a.replaceWithChildren())}function v(a,b,c){var d,e;for(d=0;d",f in this._.cachedChecks)return this._.cachedChecks[f];d=k(a).$1,e=d.styles;var g=d.classes;d.name=d.elements,d.classes=g=g?g.split(/\s*,\s*/):[],d.styles=j(e),d.attributes=j(d.attributes),d.children=[],g.length&&(d.attributes["class"]=g.join(" ")),e&&(d.attributes.style=CKEDITOR.tools.writeCssText(d.styles)),e=d}else d=a.getDefinition(),e=d.styles,g=d.attributes||{},e&&!CKEDITOR.tools.isEmpty(e)?(e=B(e),g.style=CKEDITOR.tools.writeCssText(e,!0)):e={},e={name:d.element,attributes:g,classes:g["class"]?g["class"].split(/\s+/):[],styles:e,children:[]};var h,g=CKEDITOR.tools.clone(e),i=[];if(!1!==b&&(h=this._.transformations[e.name])){for(d=0;d=--h&&(f&&CKEDITOR.document.getDocumentElement().removeStyle("cursor"),k(b))},m=function(c,d){a[c]=1;var e=b[c];delete b[c];for(var f=0;fCKEDITOR.env.version?f.$.onreadystatechange=function(){"loaded"!=f.$.readyState&&"complete"!=f.$.readyState||(f.$.onreadystatechange=null,m(c,!0))}:(f.$.onload=function(){setTimeout(function(){m(c,!0)},0)},f.$.onerror=function(){m(c,!1)})),f.appendTo(CKEDITOR.document.getHead())}}};f&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var o=0;h>o;o++)n(c[o])}},queue:function(){function a(){var a;(a=b[0])&&this.load(a.scriptUrl,a.callback,CKEDITOR,0)}var b=[];return function(c,d){var e=this;b.push({scriptUrl:c,callback:function(){ +d&&d.apply(this,arguments),b.shift(),a.call(e)}}),1==b.length&&a.call(this)}}()}}(),CKEDITOR.resourceManager=function(a,b){this.basePath=a,this.fileName=b,this.registered={},this.loaded={},this.externals={},this._={waitingList:{}}},CKEDITOR.resourceManager.prototype={add:function(a,b){if(this.registered[a])throw Error('[CKEDITOR.resourceManager.add] The resource name "'+a+'" is already registered.');var c=this.registered[a]=b||{};return c.name=a,c.path=this.getPath(a),CKEDITOR.fire(a+CKEDITOR.tools.capitalize(this.fileName)+"Ready",c),this.get(a)},get:function(a){return this.registered[a]||null},getPath:function(a){var b=this.externals[a];return CKEDITOR.getUrl(b&&b.dir||this.basePath+a+"/")},getFilePath:function(a){var b=this.externals[a];return CKEDITOR.getUrl(this.getPath(a)+(b?b.file:this.fileName+".js"))},addExternal:function(a,b,c){a=a.split(",");for(var d=0;d]+)>)|(?:!--([\S|\s]*?)--\x3e)|(?:([^\/\s>]+)((?:\s+[\w\-:.]+(?:\s*=\s*?(?:(?:"[^"]*")|(?:'[^']*')|[^\s"'\/>]+))?)*)[\S\s]*?(\/?)>))/g}},function(){var a=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,b={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};CKEDITOR.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(c){for(var d,e,f,g=0;d=this._.htmlPartsRegex.exec(c);)if(e=d.index,e>g&&(g=c.substring(g,e),f?f.push(g):this.onText(g)),g=this._.htmlPartsRegex.lastIndex,!(e=d[1])||(e=e.toLowerCase(),f&&CKEDITOR.dtd.$cdata[e]&&(this.onCDATA(f.join("")),f=null),f))if(f)f.push(d[0]);else if(e=d[3]){if(e=e.toLowerCase(),!/="/.test(e)){var h,i={},j=d[4];if(d=!!d[5],j)for(;h=a.exec(j);){var k=h[1].toLowerCase();h=h[2]||h[3]||h[4]||"",i[k]=!h&&b[k]?k:CKEDITOR.tools.htmlDecodeAttr(h)}this.onTagOpen(e,i,d),!f&&CKEDITOR.dtd.$cdata[e]&&(f=[])}}else(e=d[2])&&this.onComment(e);else this.onTagClose(e);c.length>g&&this.onText(c.substring(g,c.length))}}}(),CKEDITOR.htmlParser.basicWriter=CKEDITOR.tools.createClass({$:function(){this._={output:[]}},proto:{openTag:function(a){this._.output.push("<",a)},openTagClose:function(a,b){b?this._.output.push(" />"):this._.output.push(">")},attribute:function(a,b){"string"==typeof b&&(b=CKEDITOR.tools.htmlEncodeAttr(b)),this._.output.push(" ",a,'="',b,'"')},closeTag:function(a){this._.output.push("")},text:function(a){this._.output.push(a)},comment:function(a){this._.output.push("")},write:function(a){this._.output.push(a)},reset:function(){this._.output=[],this._.indent=!1},getHtml:function(a){var b=this._.output.join("");return a&&this.reset(),b}}}),function(){CKEDITOR.htmlParser.node=function(){},CKEDITOR.htmlParser.node.prototype={remove:function(){var a=this.parent.children,b=CKEDITOR.tools.indexOf(a,this),c=this.previous,d=this.next;c&&(c.next=d),d&&(d.previous=c),a.splice(b,1),this.parent=null},replaceWith:function(a){var b=this.parent.children,c=CKEDITOR.tools.indexOf(b,this),d=a.previous=this.previous,e=a.next=this.next;d&&(d.next=a),e&&(e.previous=a),b[c]=a,a.parent=this.parent,this.parent=null},insertAfter:function(a){var b=a.parent.children,c=CKEDITOR.tools.indexOf(b,a),d=a.next;b.splice(c+1,0,this),this.next=a.next,this.previous=a,a.next=this,d&&(d.previous=this),this.parent=a.parent},insertBefore:function(a){var b=a.parent.children,c=CKEDITOR.tools.indexOf(b,a);b.splice(c,0,this),this.next=a,(this.previous=a.previous)&&(a.previous.next=this),a.previous=this,this.parent=a.parent},getAscendant:function(a){for(var b=("function"==typeof a?a:"string"==typeof a?function(b){return b.name==a}:function(b){return b.name in a}),c=this.parent;c&&c.type==CKEDITOR.NODE_ELEMENT;){if(b(c))return c;c=c.parent}return null},wrapWith:function(a){return this.replaceWith(a),a.add(this),a},getIndex:function(){return CKEDITOR.tools.indexOf(this.parent.children,this)},getFilterContext:function(a){return a||{}}}}(),CKEDITOR.htmlParser.comment=function(a){this.value=a,this._={isBlockLike:!1}},CKEDITOR.htmlParser.comment.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_COMMENT,filter:function(a,b){var c=this.value;return(c=a.onComment(b,c,this))?"string"!=typeof c?(this.replaceWith(c),!1):(this.value=c,!0):(this.remove(),!1)},writeHtml:function(a,b){b&&this.filter(b),a.comment(this.value)}}),function(){CKEDITOR.htmlParser.text=function(a){this.value=a,this._={isBlockLike:!1}},CKEDITOR.htmlParser.text.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(a,b){return(this.value=a.onText(b,this.value,this))?void 0:(this.remove(),!1)},writeHtml:function(a,b){b&&this.filter(b),a.text(this.value)}})}(),function(){CKEDITOR.htmlParser.cdata=function(a){this.value=a},CKEDITOR.htmlParser.cdata.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(){},writeHtml:function(a){a.write(this.value)}})}(),CKEDITOR.htmlParser.fragment=function(){this.children=[],this.parent=null,this._={isBlockLike:!0,hasInlineStarted:!1}},function(){function a(a){return a.attributes["data-cke-survive"]?!1:"a"==a.name&&a.attributes.href||CKEDITOR.dtd.$removeEmpty[a.name]}var b=CKEDITOR.tools.extend({table:1,ul:1,ol:1,dl:1},CKEDITOR.dtd.table,CKEDITOR.dtd.ul,CKEDITOR.dtd.ol,CKEDITOR.dtd.dl),c={ol:1,ul:1},d=CKEDITOR.tools.extend({},{html:1},CKEDITOR.dtd.html,CKEDITOR.dtd.body,CKEDITOR.dtd.head,{style:1,script:1}),e={ul:"li",ol:"li",dl:"dd",table:"tbody",tbody:"tr",thead:"tr",tfoot:"tr",tr:"td"};CKEDITOR.htmlParser.fragment.fromHtml=function(f,g,h){function i(a){var b;if(0=0;b--)if(a==q[b].name)return void q.splice(b,1);for(var c=[],d=[],e=s;e!=p&&e.name!=a;)e._.isBlockLike||d.unshift(e),c.push(e),e=e.returnPoint||e.parent;if(e!=p){for(b=0;b0?this.children[b-1]:null;if(c){if(a._.isBlockLike&&c.type==CKEDITOR.NODE_TEXT&&(c.value=CKEDITOR.tools.rtrim(c.value),0===c.value.length))return this.children.pop(),void this.add(a);c.next=a}a.previous=c,a.parent=this,this.children.splice(b,0,a),this._.hasInlineStarted||(this._.hasInlineStarted=a.type==CKEDITOR.NODE_TEXT||a.type==CKEDITOR.NODE_ELEMENT&&!a._.isBlockLike)},filter:function(a,b){b=this.getFilterContext(b),a.onRoot(b,this),this.filterChildren(a,!1,b)},filterChildren:function(a,b,c){if(this.childrenFilteredBy!=a.id)for(c=this.getFilterContext(c),b&&!this.parent&&a.onRoot(c,this),this.childrenFilteredBy=a.id,b=0;bb;b++)c[b].writeHtml(a)},forEach:function(a,b,c){if(!(c||b&&this.type!=b))var d=a(this);if(!1!==d){c=this.children;for(var e=0;ee;e++)if(c=d[e]){if(c=c.exec(a,b,this),!1===c)return null;if(c&&c!=b)return this.onNode(a,c);if(b.parent&&!b.name)break}return b},onNode:function(a,b){var c=b.type;return c==CKEDITOR.NODE_ELEMENT?this.onElement(a,b):c==CKEDITOR.NODE_TEXT?new CKEDITOR.htmlParser.text(this.onText(a,b.value)):c==CKEDITOR.NODE_COMMENT?new CKEDITOR.htmlParser.comment(this.onComment(a,b.value)):null},onAttribute:function(a,b,c,d){return(c=this.attributesRules[c])?c.exec(a,d,b,this):d}}}),CKEDITOR.htmlParser.filterRulesGroup=a,a.prototype={add:function(a,b,c){this.rules.splice(this.findIndex(b),0,{value:a,priority:b,options:c})},addMany:function(a,b,c){for(var d=[this.findIndex(b),0],e=0,f=a.length;f>e;e++)d.push({value:a[e],priority:b,options:c});this.rules.splice.apply(this.rules,d)},findIndex:function(a){for(var b=this.rules,c=b.length-1;c>=0&&af;f++)if(g&&(c=b.type,d=b.name),e=i[f],!(a.nonEditable&&!e.options.applyToAll||a.nestedEditable&&e.options.excludeNestedEditable)){if(e=e.value.apply(null,h),!1===e||g&&e&&(e.name!=d||e.type!=c))return e;null!=e&&(h[0]=b=e)}return b},execOnName:function(a,b){for(var c,d=0,e=this.rules,f=e.length;b&&f>d;d++)c=e[d],a.nonEditable&&!c.options.applyToAll||a.nestedEditable&&c.options.excludeNestedEditable||(b=b.replace(c.value[0],c.value[1]));return b}}}(),function(){function a(a,b){function h(a){return a||CKEDITOR.env.needsNbspFiller?new CKEDITOR.htmlParser.text(" "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function i(a,b){return function(e){if(e.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var g,i,k=[],l=c(e);if(l)for(j(l,1)&&k.push(l);l;)f(l)&&(g=d(l))&&j(g)&&((i=d(g))&&!f(i)?k.push(g):(h(m).insertAfter(g),g.remove())),l=l.previous;for(l=0;l"})}function k(a,b){return a.replace(b,function(a,b,c){return 0===a.indexOf("/g,">")+""),""+encodeURIComponent(a)+""})}function l(a){return a.replace(E,function(a,b){return decodeURIComponent(b)})}function m(a){return a.replace(/\x3c!--(?!{cke_protected})[\s\S]+?--\x3e/g,function(a){return""})}function n(a){return a.replace(/\x3c!--\{cke_protected\}\{C\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)})}function o(a,b){var c=b._.dataStore;return a.replace(/\x3c!--\{cke_protected\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return c&&c[b]||""})}function p(a,b){var c=[],d=b.config.protectedSource,e=b._.dataStore||(b._.dataStore={id:1}),f=/<\!--\{cke_temp(comment)?\}(\d*?)--\x3e/g,d=[/|$)/gi,//gi,//gi].concat(d);a=a.replace(/\x3c!--[\s\S]*?--\x3e/g,function(a){return""});for(var g=0;g"});return a=a.replace(f,function(a,b,d){return""}),a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g,function(a){return a.replace(/\x3c!--\{cke_protected\}([^>]*)--\x3e/g,function(a,b){return e[e.id]=decodeURIComponent(b),"{cke_protected_"+e.id++ +"}"})}),a=a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,c,d,e){return"<"+c+d+">"+o(n(e),b)+""})}CKEDITOR.htmlDataProcessor=function(c){var d,e,f=this;this.editor=c,this.dataFilter=d=new CKEDITOR.htmlParser.filter,this.htmlFilter=e=new CKEDITOR.htmlParser.filter,this.writer=new CKEDITOR.htmlParser.basicWriter,d.addRules(v),d.addRules(w,{applyToAll:!0}),d.addRules(a(c,"data"),{applyToAll:!0}),e.addRules(x),e.addRules(y,{applyToAll:!0}),e.addRules(a(c,"html"),{applyToAll:!0}),c.on("toHtml",function(a){a=a.data;var d,e=a.dataValue,e=p(e,c),e=k(e,D),e=j(e),e=k(e,C),e=e.replace(F,"$1cke:$2"),e=e.replace(H,""),e=e.replace(/(]*>)(\r\n|\n)/g,"$1$2$2"),e=e.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+CKEDITOR.rnd+"-$2");d=a.context||c.editable().getName();var f;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&"pre"==d&&(d="div",e="
        "+e+"
        ",f=1),d=c.document.createElement(d),d.setHtml("a"+e),e=d.getHtml().substr(1),e=e.replace(new RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),""),f&&(e=e.replace(/^
        |<\/pre>$/gi,"")),e=e.replace(G,"$1$2"),e=l(e),e=n(e),d=!1===a.fixForBody?!1:b(a.enterMode,c.config.autoParagraph),e=CKEDITOR.htmlParser.fragment.fromHtml(e,a.context,d),d&&(f=e,!f.children.length&&CKEDITOR.dtd[f.name][d]&&(d=new CKEDITOR.htmlParser.element(d),f.add(d))),a.dataValue=e},null,null,5),c.on("toHtml",function(a){a.data.filter.applyTo(a.data.dataValue,!0,a.data.dontFilter,a.data.enterMode)&&c.fire("dataFiltered")},null,null,6),c.on("toHtml",function(a){
        +a.data.dataValue.filterChildren(f.dataFilter,!0)},null,null,10),c.on("toHtml",function(a){a=a.data;var b=a.dataValue,c=new CKEDITOR.htmlParser.basicWriter;b.writeChildrenHtml(c),b=c.getHtml(!0),a.dataValue=m(b)},null,null,15),c.on("toDataFormat",function(a){var d=a.data.dataValue;a.data.enterMode!=CKEDITOR.ENTER_BR&&(d=d.replace(/^
        /i,"")),a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(d,a.data.context,b(a.data.enterMode,c.config.autoParagraph))},null,null,5),c.on("toDataFormat",function(a){a.data.dataValue.filterChildren(f.htmlFilter,!0)},null,null,10),c.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,!1,!0)},null,null,11),c.on("toDataFormat",function(a){var b=a.data.dataValue,d=f.writer;d.reset(),b.writeChildrenHtml(d),b=d.getHtml(!0),b=n(b),b=o(b,c),a.data.dataValue=b},null,null,15)},CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,c,d){var e,f,g,h,i=this.editor;return b&&"object"==typeof b?(e=b.context,c=b.fixForBody,d=b.dontFilter,f=b.filter,g=b.enterMode,h=b.protectedWhitespaces):e=b,e||null===e||(e=i.editable().getName()),i.fire("toHtml",{dataValue:a,context:e,fixForBody:c,dontFilter:d,filter:f||i.filter,enterMode:g||i.enterMode,protectedWhitespaces:h}).dataValue},toDataFormat:function(a,b){var c,d,e;return b&&(c=b.context,d=b.filter,e=b.enterMode),c||null===c||(c=this.editor.editable().getName()),this.editor.fire("toDataFormat",{dataValue:a,filter:d||this.editor.filter,context:c,enterMode:e||this.editor.enterMode}).dataValue}};var q=/(?: |\xa0)$/,r="{cke_protected}",s=CKEDITOR.dtd,t="caption colgroup col thead tfoot tbody".split(" "),u=CKEDITOR.tools.extend({},s.$blockLimit,s.$block),v={elements:{input:h,textarea:h}},w={attributeNames:[[/^on/,"data-cke-pa-on"],[/^data-cke-expando$/,""]]},x={elements:{embed:function(a){var b=a.parent;if(b&&"object"==b.name){var c=b.attributes.width,b=b.attributes.height;c&&(a.attributes.width=c),b&&(a.attributes.height=b)}},a:function(a){var b=a.attributes;return a.children.length||b.name||b.id||a.attributes["data-cke-saved-name"]?void 0:!1}}},y={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return!1;for(var c,d=["name","href","src"],e=0;e-1&&d>-1&&c!=d||(c=a.parent?a.getIndex():-1,d=b.parent?b.getIndex():-1),c>d?1:-1})},param:function(a){return a.children=[],a.isEmpty=!0,a},span:function(a){"Apple-style-span"==a.attributes["class"]&&delete a.name},html:function(a){delete a.attributes.contenteditable,delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck,delete a.attributes.contenteditable},style:function(a){var b=a.children[0];b&&b.value&&(b.value=CKEDITOR.tools.trim(b.value)),a.attributes.type||(a.attributes.type="text/css")},title:function(a){var b=a.children[0];!b&&g(a,b=new CKEDITOR.htmlParser.text),b.value=a.attributes["data-cke-title"]||""},input:i,textarea:i},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||!1}}};CKEDITOR.env.ie&&(y.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})});var z=/<(a|area|img|input|source)\b([^>]*)>/gi,A=/([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,B=/^(href|src|name)$/i,C=/(?:])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,D=/(])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,E=/([^<]*)<\/cke:encoded>/gi,F=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,G=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,H=/]*?)\/?>(?!\s*<\/cke:\1)/gi}(),CKEDITOR.htmlParser.element=function(a,b){this.name=a,this.attributes=b||{},this.children=[];var c=a||"",d=c.match(/^cke:(.*)/);d&&(c=d[1]),c=!!(CKEDITOR.dtd.$nonBodyContent[c]||CKEDITOR.dtd.$block[c]||CKEDITOR.dtd.$listItem[c]||CKEDITOR.dtd.$tableContent[c]||CKEDITOR.dtd.$nonEditable[c]||"br"==c),this.isEmpty=!!CKEDITOR.dtd.$empty[a],this.isUnknown=!CKEDITOR.dtd[a],this._={isBlockLike:c,hasInlineStarted:this.isEmpty||!c}},CKEDITOR.htmlParser.cssStyle=function(a){var b={};return((a instanceof CKEDITOR.htmlParser.element?a.attributes.style:a)||"").replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,c,d){"font-family"==c&&(d=d.replace(/["']/g,"")),b[c.toLowerCase()]=d}),{rules:b,populate:function(a){var b=this.toString();b&&(a instanceof CKEDITOR.dom.element?a.setAttribute("style",b):a instanceof CKEDITOR.htmlParser.element?a.attributes.style=b:a.style=b)},toString:function(){var a,c=[];for(a in b)b[a]&&c.push(a,":",b[a],";");return c.join("")}}},function(){function a(a){return function(b){return b.type==CKEDITOR.NODE_ELEMENT&&("string"==typeof a?b.name==a:b.name in a)}}var b=function(a,b){return a=a[0],b=b[0],b>a?-1:a>b?1:0},c=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:c.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a,b){var c,d,e=this;if(b=e.getFilterContext(b),b.off)return!0;for(e.parent||a.onRoot(b,e);;){if(c=e.name,!(d=a.onElementName(b,c)))return this.remove(),!1;if(e.name=d,!(e=a.onElement(b,e)))return this.remove(),!1;if(e!==this)return this.replaceWith(e),!1;if(e.name==c)break;if(e.type!=CKEDITOR.NODE_ELEMENT)return this.replaceWith(e),!1;if(!e.name)return this.replaceWithChildren(),!1}c=e.attributes;var f,g;for(f in c){for(d=c[f];;){if(!(g=a.onAttributeName(b,f))){delete c[f];break}if(g==f)break;delete c[f],f=g}g&&(!1===(d=a.onAttribute(b,e,g,d))?delete c[g]:c[g]=d)}return e.isEmpty||this.filterChildren(a,!1,b),!0},filterChildren:c.filterChildren,writeHtml:function(a,c){c&&this.filter(c);var d,e,f=this.name,g=[],h=this.attributes;a.openTag(f,h);for(d in h)g.push([d,h[d]]);for(a.sortAttributes&&g.sort(b),d=0,e=g.length;e>d;d++)h=g[d],a.attribute(h[0],h[1]);a.openTagClose(f,this.isEmpty),this.writeChildrenHtml(a),this.isEmpty||a.closeTag(f)},writeChildrenHtml:c.writeChildrenHtml,replaceWithChildren:function(){for(var a=this.children,b=a.length;b;)a[--b].insertAfter(this);this.remove()},forEach:c.forEach,getFirst:function(b){if(!b)return this.children.length?this.children[0]:null;"function"!=typeof b&&(b=a(b));for(var c=0,d=this.children.length;d>c;++c)if(b(this.children[c]))return this.children[c];return null},getHtml:function(){var a=new CKEDITOR.htmlParser.basicWriter;return this.writeChildrenHtml(a),a.getHtml()},setHtml:function(a){a=this.children=CKEDITOR.htmlParser.fragment.fromHtml(a).children;for(var b=0,c=a.length;c>b;++b)a[b].parent=this},getOuterHtml:function(){var a=new CKEDITOR.htmlParser.basicWriter;return this.writeHtml(a),a.getHtml()},split:function(a){for(var b=this.children.splice(a,this.children.length-a),c=this.clone(),d=0;d0&&(this.children[a-1].next=null),this.parent.add(c,this.getIndex()+1),c},addClass:function(a){if(!this.hasClass(a)){var b=this.attributes["class"]||"";this.attributes["class"]=b+(b?" ":"")+a}},removeClass:function(a){var b=this.attributes["class"];b&&((b=CKEDITOR.tools.trim(b.replace(new RegExp("(?:\\s+|^)"+a+"(?:\\s+|$)")," ")))?this.attributes["class"]=b:delete this.attributes["class"])},hasClass:function(a){var b=this.attributes["class"];return b?new RegExp("(?:^|\\s)"+a+"(?=\\s|$)").test(b):!1},getFilterContext:function(a){var b=[];if(a||(a={off:!1,nonEditable:!1,nestedEditable:!1}),a.off||"off"!=this.attributes["data-cke-processor"]||b.push("off",!0),a.nonEditable||"false"!=this.attributes.contenteditable?a.nonEditable&&!a.nestedEditable&&"true"==this.attributes.contenteditable&&b.push("nestedEditable",!0):b.push("nonEditable",!0),b.length){a=CKEDITOR.tools.copy(a);for(var c=0;c'+d.getValue()+"
        ",CKEDITOR.document),a.insertAfter(d),d.hide(),d.$.form&&c._attachToForm()):c.setData(a.getHtml(),null,!0),c.on("loaded",function(){c.fire("uiReady"),c.editable(a),c.container=a,c.ui.contentsElement=a,c.setData(c.getData(1)),c.resetDirty(),c.fire("contentDom"),c.mode="wysiwyg",c.fire("mode"),c.status="ready",c.fireOnce("instanceReady"),CKEDITOR.fire("instanceReady",null,c)},null,null,1e4),c.on("destroy",function(){d&&(c.container.clearCustomData(),c.container.remove(),d.show()),c.element.clearCustomData(),delete c.element}),c},CKEDITOR.inlineAll=function(){var a,b,c;for(c in CKEDITOR.dtd.$editable)for(var d=CKEDITOR.document.getElementsByTag(c),e=0,f=d.count();f>e;e++)a=d.getItem(e),"true"==a.getAttribute("contenteditable")&&(b={element:a,config:{}},!1!==CKEDITOR.fire("inline",b)&&CKEDITOR.inline(a,b.config))},CKEDITOR.domReady(function(){!CKEDITOR.disableAutoInline&&CKEDITOR.inlineAll()})}(),CKEDITOR.replaceClass="ckeditor",function(){function a(a,d,e,f){if(!CKEDITOR.env.isCompatible)return null;if(a=CKEDITOR.dom.element.get(a),a.getEditor())throw'The editor instance "'+a.getEditor().name+'" is already attached to the provided element.';var g=new CKEDITOR.editor(d,a,f);return f==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.setStyle("visibility","hidden"),g._.required=a.hasAttribute("required"),a.removeAttribute("required")),e&&g.setData(e,null,!0),g.on("loaded",function(){c(g),f==CKEDITOR.ELEMENT_MODE_REPLACE&&g.config.autoUpdateElement&&a.$.form&&g._attachToForm(),g.setMode(g.config.startupMode,function(){g.resetDirty(),g.status="ready",g.fireOnce("instanceReady"),CKEDITOR.fire("instanceReady",null,g)})}),g.on("destroy",b),g}function b(){var a=this.container,b=this.element;a&&(a.clearCustomData(),a.remove()),b&&(b.clearCustomData(),this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(b.show(),this._.required&&b.setAttribute("required","required")),delete this.element)}function c(a){var b=a.name,c=a.element,d=a.elementMode,e=a.fire("uiSpace",{space:"top",html:""}).html,f=a.fire("uiSpace",{space:"bottom",html:""}).html,g=new CKEDITOR.template('<{outerEl} id="cke_{name}" class="{id} cke cke_reset cke_chrome cke_editor_{name} cke_{langDir} '+CKEDITOR.env.cssClass+'" dir="{langDir}" lang="{langCode}" role="application"'+(a.title?' aria-labelledby="cke_{name}_arialbl"':"")+">"+(a.title?'{voiceLabel}':"")+'<{outerEl} class="cke_inner cke_reset" role="presentation">{topHtml}<{outerEl} id="{contentId}" class="cke_contents cke_reset" role="presentation">{bottomHtml}'),b=CKEDITOR.dom.element.createFromHtml(g.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:a.title,topHtml:e?''+e+"":"",contentId:a.ui.spaceId("contents"),bottomHtml:f?''+f+"":"",outerEl:CKEDITOR.env.ie?"span":"div"}));d==CKEDITOR.ELEMENT_MODE_REPLACE?(c.hide(),b.insertAfter(c)):c.append(b),a.container=b,a.ui.contentsElement=a.ui.space("contents"),e&&a.ui.space("top").unselectable(),f&&a.ui.space("bottom").unselectable(),c=a.config.width,d=a.config.height,c&&b.setStyle("width",CKEDITOR.tools.cssLength(c)),d&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(d)),b.disableContextMenu(),CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()}),a.fireOnce("uiReady")}CKEDITOR.replace=function(b,c){return a(b,c,null,CKEDITOR.ELEMENT_MODE_REPLACE)},CKEDITOR.appendTo=function(b,c,d){return a(b,c,d,CKEDITOR.ELEMENT_MODE_APPENDTO)},CKEDITOR.replaceAll=function(){for(var a=document.getElementsByTagName("textarea"),b=0;bCKEDITOR.env.version||CKEDITOR.env.quirks)?this.hasFocus&&(this.focus(),b()):this.hasFocus?(this.focus(),a()):this.once("focus",function(){a()},null,null,-999)},getHtmlFromRange:function(a){return a.collapsed?new CKEDITOR.dom.documentFragment(a.document):(a={doc:this.getDocument(),range:a.clone()},r.eol.detect(a,this),r.bogus.exclude(a),r.cell.shrink(a),a.fragment=a.range.cloneContents(),r.tree.rebuild(a,this),r.eol.fix(a,this),new CKEDITOR.dom.documentFragment(a.fragment.$))},extractHtmlFromRange:function(a,b){var c=s,d={range:a,doc:a.document},e=this.getHtmlFromRange(a);if(a.collapsed)return a.optimize(),e;a.enlarge(CKEDITOR.ENLARGE_INLINE,1),c.table.detectPurge(d),d.bookmark=a.createBookmark(),delete d.range;var f=this.editor.createRange();if(f.moveToPosition(d.bookmark.startNode,CKEDITOR.POSITION_BEFORE_START),d.targetBookmark=f.createBookmark(),c.list.detectMerge(d,this),c.table.detectRanges(d,this),c.block.detectMerge(d,this),d.tableContentsRanges?(c.table.deleteRanges(d),a.moveToBookmark(d.bookmark),d.range=a):(a.moveToBookmark(d.bookmark),d.range=a,a.extractContents(c.detectExtractMerge(d))),a.moveToBookmark(d.targetBookmark),a.optimize(),c.fixUneditableRangePosition(a),c.list.merge(d,this),c.table.purge(d,this),c.block.merge(d,this),b){if(c=a.startPath(),d=a.checkStartOfBlock()&&a.checkEndOfBlock()&&c.block&&!a.root.equals(c.block)){a:{var g,d=c.block.getElementsByTag("span"),f=0;if(d)for(;g=d.getItem(f++);)if(!l(g)){d=!0;break a}d=!1}d=!d}d&&(a.moveToPosition(c.block,CKEDITOR.POSITION_BEFORE_START),c.block.remove())}else c.autoParagraph(this.editor,a),m(a.startContainer)&&a.startContainer.appendBogus();return a.startContainer.mergeSiblings(),e},setup:function(){var a=this.editor;if(this.attachListener(a,"beforeGetData",function(){var b=this.getData();this.is("textarea")||!1!==a.config.ignoreEmptyParagraph&&(b=b.replace(o,function(a,b){return b})),a.setData(b,null,1)},this),this.attachListener(a,"getSnapshot",function(a){a.data=this.getData(1)},this),this.attachListener(a,"afterSetData",function(){this.setData(a.getData(1))},this),this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data,1)},this),this.attachListener(a,"beforeFocus",function(){var b=a.getSelection();(b=b&&b.getNative())&&"Control"==b.type||this.focus()},this),this.attachListener(a,"insertHtml",function(a){this.insertHtml(a.data.dataValue,a.data.mode,a.data.range)},this),this.attachListener(a,"insertElement",function(a){this.insertElement(a.data)},this),this.attachListener(a,"insertText",function(a){this.insertText(a.data)},this),this.setReadOnly(a.readOnly),this.attachClass("cke_editable"),a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?this.attachClass("cke_editable_inline"):a.elementMode!=CKEDITOR.ELEMENT_MODE_REPLACE&&a.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||this.attachClass("cke_editable_themed"),this.attachClass("cke_contents_"+a.config.contentsLangDirection),a.keystrokeHandler.blockedKeystrokes[8]=+a.readOnly,a.keystrokeHandler.attach(this),this.on("blur",function(){this.hasFocus=!1},null,null,-1),this.on("focus",function(){this.hasFocus=!0},null,null,-1),a.focusManager.add(this),this.equals(CKEDITOR.document.getActive())&&(this.hasFocus=!0,a.once("contentDom",function(){a.focusManager.focus(this)},this)),this.isInline()&&this.changeAttr("tabindex",a.tabIndex),!this.is("textarea")){a.document=this.getDocument(),a.window=this.getWindow();var b=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var e=a.config.contentsLangDirection;this.getDirection(1)!=e&&this.changeAttr("dir",e);var g=CKEDITOR.getCss();if(g){var e=b.getHead(),h=e.getCustomData("stylesheet");h?g!=h.getText()&&(CKEDITOR.env.ie&&9>CKEDITOR.env.version?h.$.styleSheet.cssText=g:h.setText(g)):(g=b.appendStyleText(g),g=new CKEDITOR.dom.element(g.ownerNode||g.owningElement),e.setCustomData("stylesheet",g),g.data("cke-temp",1))}e=b.getCustomData("stylesheet_ref")||0,b.setCustomData("stylesheet_ref",e+1),this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling),this.attachListener(this,"click",function(a){a=a.data;var b=new CKEDITOR.dom.elementPath(a.getTarget(),this).contains("a");b&&2!=a.$.button&&b.isReadOnly()&&a.preventDefault()});var i={8:1,46:1};this.attachListener(a,"key",function(b){if(a.readOnly)return!0;var c,d=b.data.domEvent.getKey();if(d in i){b=a.getSelection();var e,g,h,j,l=b.getRanges()[0],m=l.startPath(),d=8==d;CKEDITOR.env.ie&&11>CKEDITOR.env.version&&(e=b.getSelectedElement())||(e=f(b))?(a.fire("saveSnapshot"),l.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e.remove(),l.select(),a.fire("saveSnapshot"),c=1):l.collapsed&&((g=m.block)&&(j=g[d?"getPrevious":"getNext"](k))&&j.type==CKEDITOR.NODE_ELEMENT&&j.is("table")&&l[d?"checkStartOfBlock":"checkEndOfBlock"]()?(a.fire("saveSnapshot"),l[d?"checkEndOfBlock":"checkStartOfBlock"]()&&g.remove(),l["moveToElementEdit"+(d?"End":"Start")](j),l.select(),a.fire("saveSnapshot"),c=1):m.blockLimit&&m.blockLimit.is("td")&&(h=m.blockLimit.getAscendant("table"))&&l.checkBoundaryOfElement(h,d?CKEDITOR.START:CKEDITOR.END)&&(j=h[d?"getPrevious":"getNext"](k))?(a.fire("saveSnapshot"),l["moveToElementEdit"+(d?"End":"Start")](j),l.checkStartOfBlock()&&l.checkEndOfBlock()?j.remove():l.select(),a.fire("saveSnapshot"),c=1):(h=m.contains(["td","th","caption"]))&&l.checkBoundaryOfElement(h,d?CKEDITOR.START:CKEDITOR.END)&&(c=1))}return!c}),a.blockless&&CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller&&this.attachListener(this,"keyup",function(b){b.data.getKeystroke()in i&&!this.getFirst(d)&&(this.appendBogus(),b=a.createRange(),b.moveToPosition(this,CKEDITOR.POSITION_AFTER_START),b.select())}),this.attachListener(this,"dblclick",function(b){return a.readOnly?!1:(b={element:b.data.getTarget()},void a.fire("doubleclick",b))}),CKEDITOR.env.ie&&this.attachListener(this,"click",c),CKEDITOR.env.ie&&!CKEDITOR.env.edge||this.attachListener(this,"mousedown",function(b){var c=b.data.getTarget();c.is("img","hr","input","textarea","select")&&!c.isReadOnly()&&(a.getSelection().selectElement(c),c.is("input","textarea","select")&&b.data.preventDefault())}),CKEDITOR.env.edge&&this.attachListener(this,"mouseup",function(b){(b=b.data.getTarget())&&b.is("img")&&a.getSelection().selectElement(b)}),CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(2==b.data.$.button&&(b=b.data.getTarget(),!b.getOuterHtml().replace(o,""))){var c=a.createRange();c.moveToElementEditStart(b),c.select(!0)}}),CKEDITOR.env.webkit&&(this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()}),this.attachListener(this,"mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()})),CKEDITOR.env.webkit&&this.attachListener(a,"key",function(b){if(a.readOnly)return!0;if(b=b.data.domEvent.getKey(),b in i){var c=8==b,d=a.getSelection().getRanges()[0];if(b=d.startPath(),d.collapsed)a:{var e=b.block;if(e&&d[c?"checkStartOfBlock":"checkEndOfBlock"]()&&d.moveToClosestEditablePosition(e,!c)&&d.collapsed){if(d.startContainer.type==CKEDITOR.NODE_ELEMENT){var f=d.startContainer.getChild(d.startOffset-(c?1:0));if(f&&f.type==CKEDITOR.NODE_ELEMENT&&f.is("hr")){a.fire("saveSnapshot"),f.remove(),b=!0;break a}}if(d=d.startPath().block,!d||d&&d.contains(e))b=void 0;else{a.fire("saveSnapshot");var g;(g=(c?d:e).getBogus())&&g.remove(),g=a.getSelection(),f=g.createBookmarks(),(c?e:d).moveChildren(c?d:e,!1),b.lastElement.mergeSiblings(),j(e,d,!c),g.selectBookmarks(f),b=!0}}else b=!1}else c=d,g=b.block,d=c.endPath().block,g&&d&&!g.equals(d)?(a.fire("saveSnapshot"),(e=g.getBogus())&&e.remove(),c.enlarge(CKEDITOR.ENLARGE_INLINE),c.deleteContents(),d.getParent()&&(d.moveChildren(g,!1),b.lastElement.mergeSiblings(),j(g,d,!0)),c=a.getSelection().getRanges()[0],c.collapse(1),c.optimize(),""===c.startContainer.getHtml()&&c.startContainer.appendBogus(),c.select(),b=!0):b=!1;if(!b)return;return a.getSelection().scrollIntoView(),a.fire("saveSnapshot"),!1}},this,null,100)}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1),this.clearListeners(),this.restoreAttrs();var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());if(!this.is("textarea")){a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var c=a.getCustomData("stylesheet_ref");--c?a.setCustomData("stylesheet_ref",c):(a.removeCustomData("stylesheet_ref"),b.removeCustomData("stylesheet").remove())}}this.editor.fire("contentDomUnload"),delete this.editor}}}),CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;return b&&a?0:(arguments.length&&(b=this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null)),b)},CKEDITOR.on("instanceLoaded",function(b){var c=b.editor;c.on("insertElement",function(a){a=a.data,a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))&&("false"!=a.getAttribute("contentEditable")&&a.data("cke-editable",a.hasAttribute("contenteditable")?"true":"1"),a.setAttribute("contentEditable",!1))}),c.on("selectionChange",function(b){if(!c.readOnly){var d=c.getSelection();d&&!d.isLocked&&(d=c.checkDirty(),c.fire("lockSnapshot"),a(b),c.fire("unlockSnapshot"),!d&&c.resetDirty()); +}})}),CKEDITOR.on("instanceCreated",function(a){var b=a.editor;b.on("mode",function(){var a=b.editable();if(a&&a.isInline()){var c=b.title;a.changeAttr("role","textbox"),a.changeAttr("aria-label",c),c&&a.changeAttr("title",c);var d=b.fire("ariaEditorHelpLabel",{}).label;if(d&&(c=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents"))){var e=CKEDITOR.tools.getNextId(),d=CKEDITOR.dom.element.createFromHtml(''+d+"");c.append(d),a.changeAttr("aria-describedby",e)}}})}),CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}"),k=CKEDITOR.dom.walker.whitespaces(!0),l=CKEDITOR.dom.walker.bookmark(!1,!0),m=CKEDITOR.dom.walker.empty(),n=CKEDITOR.dom.walker.bogus(),o=/(^|]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,p=function(){function a(a){return a.type==CKEDITOR.NODE_ELEMENT}function b(c,d){var e,f,g,h,i=[],j=d.range.startContainer;e=d.range.startPath();for(var j=k[j.getName()],l=0,m=c.getChildren(),n=m.count(),o=-1,p=-1,q=0,r=e.contains(k.$list);n>l;++l)e=m.getItem(l),a(e)?(g=e.getName(),r&&g in CKEDITOR.dtd.$list?i=i.concat(b(e,d)):(h=!!j[g],"br"!=g||!e.data("cke-eol")||l&&l!=n-1||(q=(f=l?i[l-1].node:m.getItem(l+1))&&(!a(f)||!f.is("br")),f=f&&a(f)&&k.$block[f.getName()]),-1!=o||h||(o=l),h||(p=l),i.push({isElement:1,isLineBreak:q,isBlock:e.isBlockBoundary(),hasBlockSibling:f,node:e,name:g,allowed:h}),f=q=0)):i.push({isElement:0,node:e,allowed:1});return o>-1&&(i[o].firstNotAllowed=1),p>-1&&(i[p].lastNotAllowed=1),i}function c(b,d){var e,f=[],g=b.getChildren(),h=g.count(),i=0,j=k[d],l=!b.is(k.$inline)||b.is("br");for(l&&f.push(" ");h>i;i++)e=g.getItem(i),a(e)&&!e.is(j)?f=f.concat(c(e,d)):f.push(e);return l&&f.push(" "),f}function e(b){return a(b.startContainer)&&b.startContainer.getChild(b.startOffset-1)}function f(b){return b&&a(b)&&(b.is(k.$removeEmpty)||b.is("a")&&!b.isBlockBoundary())}function i(b,c,d,e){var f,g,h=b.clone();h.setEndAt(c,CKEDITOR.POSITION_BEFORE_END),(f=new CKEDITOR.dom.walker(h).next())&&a(f)&&l[f.getName()]&&(g=f.getPrevious())&&a(g)&&!g.getParent().equals(b.startContainer)&&d.contains(g)&&e.contains(f)&&f.isIdentical(g)&&(f.moveChildren(g),f.remove(),i(b,c,d,e))}function j(b,c){function d(b,c){return c.isBlock&&c.isElement&&!c.node.is("br")&&a(b)&&b.is("br")?(b.remove(),1):void 0}var e=c.endContainer.getChild(c.endOffset),f=c.endContainer.getChild(c.endOffset-1);e&&d(e,b[b.length-1]),f&&d(f,b[0])&&(c.setEnd(c.endContainer,c.endOffset-1),c.collapse())}var k=CKEDITOR.dtd,l={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1},m={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},n=CKEDITOR.tools.extend({},k.$inline);return delete n.br,function(l,o,p,q){var r=l.editor,s=!1;if("unfiltered_html"==o&&(o="html",s=!0),!q.checkReadOnly()){var t=new CKEDITOR.dom.elementPath(q.startContainer,q.root).blockLimit||q.root;l={type:o,dontFilter:s,editable:l,editor:r,range:q,blockLimit:t,mergeCandidates:[],zombies:[]},o=l.range,q=l.mergeCandidates;var u,v;if("text"==l.type&&o.shrink(CKEDITOR.SHRINK_ELEMENT,!0,!1)&&(u=CKEDITOR.dom.element.createFromHtml(" ",o.document),o.insertNode(u),o.setStartAfter(u)),s=new CKEDITOR.dom.elementPath(o.startContainer),l.endPath=t=new CKEDITOR.dom.elementPath(o.endContainer),!o.collapsed){var r=t.block||t.blockLimit,w=o.getCommonAncestor();r&&!r.equals(w)&&!r.contains(w)&&o.checkEndOfBlock()&&l.zombies.push(r),o.deleteContents()}for(;(v=e(o))&&a(v)&&v.isBlockBoundary()&&s.contains(v);)o.moveToPosition(v,CKEDITOR.POSITION_BEFORE_END);for(i(o,l.blockLimit,s,t),u&&(o.setEndBefore(u),o.collapse(),u.remove()),u=o.startPath(),(r=u.contains(f,!1,1))&&(o.splitElement(r),l.inlineStylesRoot=r,l.inlineStylesPeak=u.lastElement),u=o.createBookmark(),(r=u.startNode.getPrevious(d))&&a(r)&&f(r)&&q.push(r),(r=u.startNode.getNext(d))&&a(r)&&f(r)&&q.push(r),r=u.startNode;(r=r.getParent())&&f(r);)q.push(r);if(o.moveToBookmark(u),u=p){if(u=l.range,"text"==l.type&&l.inlineStylesRoot){for(v=l.inlineStylesPeak,o=v.getDocument().createText("{cke-peak}"),q=l.inlineStylesRoot.getParent();!v.equals(q);)o=o.appendTo(v.clone()),v=v.getParent();p=o.getOuterHtml().split("{cke-peak}").join(p)}if(v=l.blockLimit.getName(),/^\s+|\s+$/.test(p)&&"span"in CKEDITOR.dtd[v]){var x=' ';p=x+p+x}if(p=l.editor.dataProcessor.toHtml(p,{context:null,fixForBody:!1,protectedWhitespaces:!!x,dontFilter:l.dontFilter,filter:l.editor.activeFilter,enterMode:l.editor.activeEnterMode}),v=u.document.createElement("body"),v.setHtml(p),x&&(v.getFirst().remove(),v.getLast().remove()),(x=u.startPath().block)&&(1!=x.getChildCount()||!x.getBogus()))a:{var y;if(1==v.getChildCount()&&a(y=v.getFirst())&&y.is(m)&&!y.hasAttribute("contenteditable")){for(x=y.getElementsByTag("*"),u=0,q=x.count();q>u;u++)if(o=x.getItem(u),!o.is(n))break a;y.moveChildren(y.getParent(1)),y.remove()}}l.dataWrapper=v,u=p}if(u){y=l.range,u=y.document;var z;v=l.blockLimit,q=0;var A,B,C,x=[];p=r=0;var D,E;o=y.startContainer;var F,s=l.endPath.elements[0],t=s.getPosition(o),w=!(!s.getCommonAncestor(o)||t==CKEDITOR.POSITION_IDENTICAL||t&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED);for(o=b(l.dataWrapper,l),j(o,y);q0;else{if(z=y.startPath(),!t.isBlock&&g(l.editor,z.block,z.blockLimit)&&(C=h(l.editor))&&(C=u.createElement(C),C.appendBogus(),y.insertNode(C),CKEDITOR.env.needsBrFiller&&(A=C.getBogus())&&A.remove(),y.moveToPosition(C,CKEDITOR.POSITION_BEFORE_END)),(z=y.startPath().block)&&!z.equals(B)&&((A=z.getBogus())&&(A.remove(),x.push(z)),B=z),t.firstNotAllowed&&(r=1),r&&t.isElement){for(z=y.startContainer,D=null;z&&!k[z.getName()][t.name];){if(z.equals(v)){z=null;break}D=z,z=z.getParent()}if(z)D&&(E=y.splitElement(D),l.zombies.push(E),l.zombies.push(D));else{D=v.getName(),F=!q,z=q==o.length-1,D=c(t.node,D);for(var G=[],H=D.length,I=0,J=void 0,K=0,L=-1;H>I;I++)J=D[I]," "==J?(K||F&&!I||(G.push(new CKEDITOR.dom.text(" ")),L=G.length),K=1):(G.push(J),K=0);z&&L==G.length&&G.pop(),F=G}}if(F){for(;z=F.pop();)y.insertNode(z);F=0}else y.insertNode(t.node);t.lastNotAllowed&&qCKEDITOR.env.version&&b.getChildCount()&&b.getFirst().remove())}return function(d){var e=d.startContainer,f=e.getAscendant("table",1),g=!1;c(f.getElementsByTag("td")),c(f.getElementsByTag("th")),f=d.clone(),f.setStart(e,0),f=a(f).lastBackward(),f||(f=d.clone(),f.setEndAt(e,CKEDITOR.POSITION_BEFORE_END),f=a(f).lastForward(),g=!0),f||(f=e),f.is("table")?(d.setStartAt(f,CKEDITOR.POSITION_BEFORE_START),d.collapse(!0),f.remove()):(f.is({tbody:1,thead:1,tfoot:1})&&(f=b(f,"tr",g)),f.is("tr")&&(f=b(f,f.getParent().is("thead")?"th":"td",g)),(e=f.getBogus())&&e.remove(),d.moveToPosition(f,g?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END))}}(),r={eol:{detect:function(a,b){var c=a.range,d=c.clone(),e=c.clone(),f=new CKEDITOR.dom.elementPath(c.startContainer,b),g=new CKEDITOR.dom.elementPath(c.endContainer,b);d.collapse(1),e.collapse(),f.block&&d.checkBoundaryOfElement(f.block,CKEDITOR.END)&&(c.setStartAfter(f.block),a.prependEolBr=1),g.block&&e.checkBoundaryOfElement(g.block,CKEDITOR.START)&&(c.setEndBefore(g.block),a.appendEolBr=1)},fix:function(a,b){var c,d=b.getDocument();a.appendEolBr&&(c=this.createEolBr(d),a.fragment.append(c)),!a.prependEolBr||c&&!c.getPrevious()||a.fragment.append(this.createEolBr(d),1)},createEolBr:function(a){return a.createElement("br",{attributes:{"data-cke-eol":1}})}},bogus:{exclude:function(a){var b=a.range.getBoundaryNodes(),c=b.startNode,b=b.endNode;!b||!n(b)||c&&c.equals(b)||a.range.setEndBefore(b)}},tree:{rebuild:function(a,b){var c,d=a.range,e=d.getCommonAncestor(),f=new CKEDITOR.dom.elementPath(e,b),g=new CKEDITOR.dom.elementPath(d.startContainer,b),d=new CKEDITOR.dom.elementPath(d.endContainer,b);if(e.type==CKEDITOR.NODE_TEXT&&(e=e.getParent()),f.blockLimit.is({tr:1,table:1})){var h=f.contains("table").getParent();c=function(a){return!a.equals(h)}}else if(f.block&&f.block.is(CKEDITOR.dtd.$listItem)&&(g=g.contains(CKEDITOR.dtd.$list),d=d.contains(CKEDITOR.dtd.$list),!g.equals(d))){var i=f.contains(CKEDITOR.dtd.$list).getParent();c=function(a){return!a.equals(i)}}c||(c=function(a){return!a.equals(f.block)&&!a.equals(f.blockLimit)}),this.rebuildFragment(a,b,e,c)},rebuildFragment:function(a,b,c,d){for(var e;c&&!c.equals(b)&&d(c);)e=c.clone(0,1),a.fragment.appendTo(e),a.fragment=e,c=c.getParent()}},cell:{shrink:function(a){a=a.range;var b=a.startContainer,c=a.endContainer,d=a.startOffset,e=a.endOffset;b.type==CKEDITOR.NODE_ELEMENT&&b.equals(c)&&b.is("tr")&&++d==e&&a.shrink(CKEDITOR.SHRINK_TEXT)}}},s=function(){function a(a,b){var c=a.getParent();c.is(CKEDITOR.dtd.$inline)&&a[b?"insertBefore":"insertAfter"](c)}function b(b,c,d){a(c),a(d,1);for(var e;e=d.getNext();)e.insertAfter(c),c=e;m(b)&&b.remove()}function c(a,b){var c=new CKEDITOR.dom.range(a);return c.setStartAfter(b.startNode),c.setEndBefore(b.endNode),c}return{list:{detectMerge:function(a,b){var d=c(b,a.bookmark),e=d.startPath(),f=d.endPath(),g=e.contains(CKEDITOR.dtd.$list),h=f.contains(CKEDITOR.dtd.$list);a.mergeList=g&&h&&g.getParent().equals(h.getParent())&&!g.equals(h),a.mergeListItems=e.block&&f.block&&e.block.is(CKEDITOR.dtd.$listItem)&&f.block.is(CKEDITOR.dtd.$listItem),(a.mergeList||a.mergeListItems)&&(d=d.clone(),d.setStartBefore(a.bookmark.startNode),d.setEndAfter(a.bookmark.endNode),a.mergeListBookmark=d.createBookmark())},merge:function(a,c){if(a.mergeListBookmark){var d=a.mergeListBookmark.startNode,e=a.mergeListBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c);if(a.mergeList){var h=f.contains(CKEDITOR.dtd.$list),i=g.contains(CKEDITOR.dtd.$list);h.equals(i)||(i.moveChildren(h),i.remove())}a.mergeListItems&&(f=f.contains(CKEDITOR.dtd.$listItem),g=g.contains(CKEDITOR.dtd.$listItem),f.equals(g)||b(g,d,e)),d.remove(),e.remove()}}},block:{detectMerge:function(a,b){if(!a.tableContentsRanges&&!a.mergeListBookmark){var c=new CKEDITOR.dom.range(b);c.setStartBefore(a.bookmark.startNode),c.setEndAfter(a.bookmark.endNode),a.mergeBlockBookmark=c.createBookmark()}},merge:function(a,c){if(a.mergeBlockBookmark&&!a.purgeTableBookmark){var d=a.mergeBlockBookmark.startNode,e=a.mergeBlockBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c),f=f.block,g=g.block;f&&g&&!f.equals(g)&&b(g,d,e),d.remove(),e.remove()}}},table:function(){function a(a){var c,e=[],f=new CKEDITOR.dom.walker(a),g=a.startPath().contains(d),h=a.endPath().contains(d),i={};return f.guard=function(f,j){if(f.type==CKEDITOR.NODE_ELEMENT){var k="visited_"+(j?"out":"in");if(f.getCustomData(k))return;CKEDITOR.dom.element.setMarker(i,f,k,1)}j&&g&&f.equals(g)?(c=a.clone(),c.setEndAt(g,CKEDITOR.POSITION_BEFORE_END),e.push(c)):!j&&h&&f.equals(h)?(c=a.clone(),c.setStartAt(h,CKEDITOR.POSITION_AFTER_START),e.push(c)):((k=!j)&&(k=f.type==CKEDITOR.NODE_ELEMENT&&f.is(d)&&(!g||b(f,g))&&(!h||b(f,h))),k&&(c=a.clone(),c.selectNodeContents(f),e.push(c)))},f.lastForward(),CKEDITOR.dom.element.clearAllMarkers(i),e}function b(a,b){var c=CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED,d=a.getPosition(b);return d===CKEDITOR.POSITION_IDENTICAL?!1:0===(d&c)}var d={td:1,th:1,caption:1};return{detectPurge:function(a){var b=a.range,c=b.clone();c.enlarge(CKEDITOR.ENLARGE_ELEMENT);var c=new CKEDITOR.dom.walker(c),e=0;if(c.evaluator=function(a){a.type==CKEDITOR.NODE_ELEMENT&&a.is(d)&&++e},c.checkForward(),e>1){var c=b.startPath().contains("table"),f=b.endPath().contains("table");c&&f&&b.checkBoundaryOfElement(c,CKEDITOR.START)&&b.checkBoundaryOfElement(f,CKEDITOR.END)&&(b=a.range.clone(),b.setStartBefore(c),b.setEndAfter(f),a.purgeTableBookmark=b.createBookmark())}},detectRanges:function(e,f){var g,h,i=c(f,e.bookmark),j=i.clone(),k=i.getCommonAncestor();k.is(CKEDITOR.dtd.$tableContent)&&!k.is(d)&&(k=k.getAscendant("table",!0)),h=k,k=new CKEDITOR.dom.elementPath(i.startContainer,h),h=new CKEDITOR.dom.elementPath(i.endContainer,h),k=k.contains("table"),h=h.contains("table"),(k||h)&&(k&&h&&b(k,h)?(e.tableSurroundingRange=j,j.setStartAt(k,CKEDITOR.POSITION_AFTER_END),j.setEndAt(h,CKEDITOR.POSITION_BEFORE_START),j=i.clone(),j.setEndAt(k,CKEDITOR.POSITION_AFTER_END),g=i.clone(),g.setStartAt(h,CKEDITOR.POSITION_BEFORE_START),g=a(j).concat(a(g))):k?h||(e.tableSurroundingRange=j,j.setStartAt(k,CKEDITOR.POSITION_AFTER_END),i.setEndAt(k,CKEDITOR.POSITION_AFTER_END)):(e.tableSurroundingRange=j,j.setEndAt(h,CKEDITOR.POSITION_BEFORE_START),i.setStartAt(h,CKEDITOR.POSITION_AFTER_START)),e.tableContentsRanges=g?g:a(i))},deleteRanges:function(a){for(var b;b=a.tableContentsRanges.pop();)b.extractContents(),m(b.startContainer)&&b.startContainer.appendBogus();a.tableSurroundingRange&&a.tableSurroundingRange.extractContents()},purge:function(a){if(a.purgeTableBookmark){var b=a.doc,c=a.range.clone(),b=b.createElement("p");b.insertBefore(a.purgeTableBookmark.startNode),c.moveToBookmark(a.purgeTableBookmark),c.deleteContents(),a.range.moveToPosition(b,CKEDITOR.POSITION_AFTER_START)}}}}(),detectExtractMerge:function(a){return!(a.range.startPath().contains(CKEDITOR.dtd.$listItem)&&a.range.endPath().contains(CKEDITOR.dtd.$listItem))},fixUneditableRangePosition:function(a){a.startContainer.getDtd()["#"]||a.moveToClosestEditablePosition(null,!0)},autoParagraph:function(a,b){var c,d=b.startPath();g(a,d.block,d.blockLimit)&&(c=h(a))&&(c=b.document.createElement(c),c.appendBogus(),b.insertNode(c),b.moveToPosition(c,CKEDITOR.POSITION_AFTER_START))}}}()}(),function(){function a(){var a,b=this._.fakeSelection;b&&(a=this.getSelection(1),a&&a.isHidden()||(b.reset(),b=0)),(b||(b=a||this.getSelection(1),b&&b.getType()!=CKEDITOR.SELECTION_NONE))&&(this.fire("selectionCheck",b),a=this.elementPath(),a.compare(this._.selectionPreviousPath)||(CKEDITOR.env.webkit&&(this._.previousActive=this.document.getActive()),this._.selectionPreviousPath=a,this.fire("selectionChange",{selection:b,path:a})))}function b(){m=!0,l||(c.call(this),l=CKEDITOR.tools.setTimeout(c,200,this))}function c(){l=null,m&&(CKEDITOR.tools.setTimeout(a,0,this),m=!1)}function d(a){return!(!n(a)&&(a.type!=CKEDITOR.NODE_ELEMENT||a.is(CKEDITOR.dtd.$empty)))}function e(a){function b(b,c){return b&&b.type!=CKEDITOR.NODE_TEXT?a.clone()["moveToElementEdit"+(c?"End":"Start")](b):!1}if(!(a.root instanceof CKEDITOR.editable))return!1;var c=a.startContainer,e=a.getPreviousNode(d,null,c),f=a.getNextNode(d,null,c);return!(!b(e)&&!b(f,1)&&(e||f||c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()&&c.getBogus()))}function f(a){g(a,!1);var b=a.getDocument().createText(s);return a.setCustomData("cke-fillingChar",b),b}function g(a,b){var c=a&&a.removeCustomData("cke-fillingChar");if(c){if(!1!==b){var d=a.getDocument().getSelection().getNative(),e=d&&"None"!=d.type&&d.getRangeAt(0),f=s.length;if(c.getLength()>f&&e&&e.intersectsNode(c.$)){var g=[{node:d.anchorNode,offset:d.anchorOffset},{node:d.focusNode,offset:d.focusOffset}];d.anchorNode==c.$&&d.anchorOffset>f&&(g[0].offset-=f),d.focusNode==c.$&&d.focusOffset>f&&(g[1].offset-=f)}}c.setText(h(c.getText(),1)),g&&(c=a.getDocument().$,d=c.getSelection(),c=c.createRange(),c.setStart(g[0].node,g[0].offset),c.collapse(!0),d.removeAllRanges(),d.addRange(c),d.extend(g[1].node,g[1].offset))}}function h(a,b){return b?a.replace(t,function(a,b){return b?" ":""}):a.replace(s,"")}function i(a){var b=CKEDITOR.dom.element.createFromHtml('
         
        ',a.document);a.fire("lockSnapshot"),a.editable().append(b);var c=a.getSelection(1),d=a.createRange(),e=c.root.on("selectionchange",function(a){a.cancel()},null,null,0);d.setStartAt(b,CKEDITOR.POSITION_AFTER_START),d.setEndAt(b,CKEDITOR.POSITION_BEFORE_END),c.selectRanges([d]),e.removeListener(),a.fire("unlockSnapshot"),a._.hiddenSelectionContainer=b}function j(a){var b={37:1,39:1,8:1,46:1};return function(c){var d=c.data.getKeystroke();if(b[d]){var e=a.getSelection().getRanges(),f=e[0];1==e.length&&f.collapsed&&(d=f[38>d?"getPreviousEditableNode":"getNextEditableNode"]())&&d.type==CKEDITOR.NODE_ELEMENT&&"false"==d.getAttribute("contenteditable")&&(a.getSelection().fake(d),c.data.preventDefault(),c.cancel())}}}function k(a){for(var b=0;b=e.getLength()?h.setStartAfter(e):h.setStartBefore(e)),d&&d.type==CKEDITOR.NODE_TEXT&&(g?h.setEndAfter(d):h.setEndBefore(d)),e=new CKEDITOR.dom.walker(h),e.evaluator=function(d){if(d.type==CKEDITOR.NODE_ELEMENT&&d.isReadOnly()){var e=c.clone();return c.setEndBefore(d),c.collapsed&&a.splice(b--,1),d.getPosition(h.endContainer)&CKEDITOR.POSITION_CONTAINS||(e.setStartAfter(d),e.collapsed||a.splice(b+1,0,e)),!0}return!1},e.next()}}return a}var l,m,n=CKEDITOR.dom.walker.invisible(1),o=function(){function a(a){return function(b){var c=b.editor.createRange();return c.moveToClosestEditablePosition(b.selected,a)&&b.editor.getSelection().selectRanges([c]),!1}}function b(a){return function(b){var c,d=b.editor,e=d.createRange();return(c=e.moveToClosestEditablePosition(b.selected,a))||(c=e.moveToClosestEditablePosition(b.selected,!a)),c&&d.getSelection().selectRanges([e]),d.fire("saveSnapshot"),b.selected.remove(),c||(e.moveToElementEditablePosition(d.editable()),d.getSelection().selectRanges([e])),d.fire("saveSnapshot"),!1}}var c=a(),d=a(1);return{37:c,38:c,39:d,40:d,8:b(),46:b(1)}}();CKEDITOR.on("instanceCreated",function(c){function d(){var a=e.getSelection();a&&a.removeAllRanges()}var e=c.editor;e.on("contentDom",function(){function c(){h=new CKEDITOR.dom.selection(e.getSelection()),h.lock()}function d(){k.removeListener("mouseup",d),n.removeListener("mouseup",d);var a=CKEDITOR.document.$.selection,b=a.createRange();"None"!=a.type&&b.parentElement().ownerDocument==i.$&&b.select()}var f,h,i=e.document,k=CKEDITOR.document,l=e.editable(),m=i.getBody(),n=i.getDocumentElement(),o=l.isInline();if(CKEDITOR.env.gecko&&l.attachListener(l,"focus",function(a){a.removeListener(),0!==f&&(a=e.getSelection().getNative())&&a.isCollapsed&&a.anchorNode==l.$&&(a=e.createRange(),a.moveToElementEditStart(l),a.select())},null,null,-2),l.attachListener(l,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){f&&CKEDITOR.env.webkit&&(f=e._.previousActive&&e._.previousActive.equals(i.getActive())),e.unlockSelection(f),f=0},null,null,-1),l.attachListener(l,"mousedown",function(){f=0}),(CKEDITOR.env.ie||o)&&(p?l.attachListener(l,"beforedeactivate",c,null,null,-1):l.attachListener(e,"selectionCheck",c,null,null,-1),l.attachListener(l,CKEDITOR.env.webkit?"DOMFocusOut":"blur",function(){e.lockSelection(h),f=1},null,null,-1),l.attachListener(l,"mousedown",function(){f=0})),CKEDITOR.env.ie&&!o){var q;l.attachListener(l,"mousedown",function(a){2==a.data.$.button&&((a=e.document.getSelection())&&a.getType()!=CKEDITOR.SELECTION_NONE||(q=e.window.getScrollPosition()))}),l.attachListener(l,"mouseup",function(a){2==a.data.$.button&&q&&(e.document.$.documentElement.scrollLeft=q.x,e.document.$.documentElement.scrollTop=q.y),q=null}),"BackCompat"!=i.$.compatMode&&((CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&n.on("mousedown",function(a){function b(a){if(a=a.data.$,d){var b=m.$.createTextRange();try{b.moveToPoint(a.clientX,a.clientY)}catch(c){}d.setEndPoint(0>f.compareEndPoints("StartToStart",b)?"EndToEnd":"StartToStart",b),d.select()}}function c(){n.removeListener("mousemove",b),k.removeListener("mouseup",c),n.removeListener("mouseup",c),d.select()}if(a=a.data,a.getTarget().is("html")&&a.$.yCKEDITOR.env.version&&n.on("mousedown",function(a){a.data.getTarget().is("html")&&(k.on("mouseup",d),n.on("mouseup",d))}))}if(l.attachListener(l,"selectionchange",a,e),l.attachListener(l,"keyup",b,e),l.attachListener(l,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){e.forceNextSelectionCheck(),e.selectionChange(1)}),o&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var r;l.attachListener(l,"mousedown",function(){r=1}),l.attachListener(i.getDocumentElement(),"mouseup",function(){r&&b.call(e),r=0})}else l.attachListener(CKEDITOR.env.ie?l:i.getDocumentElement(),"mouseup",b,e);CKEDITOR.env.webkit&&l.attachListener(i,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:g(l)}},null,null,-1),l.attachListener(l,"keydown",j(e),null,null,-1)}),e.on("setData",function(){e.unlockSelection(),CKEDITOR.env.webkit&&d()}),e.on("contentDomUnload",function(){e.unlockSelection()}),CKEDITOR.env.ie9Compat&&e.on("beforeDestroy",d,null,null,9),e.on("dataReady",function(){delete e._.fakeSelection,delete e._.hiddenSelectionContainer,e.selectionChange(1)}),e.on("loadSnapshot",function(){var a=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT),b=e.editable().getLast(a);b&&b.hasAttribute("data-cke-hidden-sel")&&(b.remove(),CKEDITOR.env.gecko&&(a=e.editable().getFirst(a))&&a.is("br")&&a.getAttribute("_moz_editor_bogus_node")&&a.remove())},null,null,100),e.on("key",function(a){if("wysiwyg"==e.mode){var b=e.getSelection();if(b.isFake){var c=o[a.data.keyCode];if(c)return c({editor:e,selected:b.getSelectedElement(),selection:b,keyEvent:a})}}})}),CKEDITOR.env.webkit&&CKEDITOR.on("instanceReady",function(a){var b=a.editor;b.on("selectionChange",function(){var a=b.editable(),c=a.getCustomData("cke-fillingChar");c&&(c.getCustomData("ready")?g(a):c.setCustomData("ready",1))},null,null,-1),b.on("beforeSetMode",function(){g(b.editable())},null,null,-1),b.on("getSnapshot",function(a){a.data&&(a.data=h(a.data))},b,null,20),b.on("toDataFormat",function(a){a.data.dataValue=h(a.data.dataValue)},null,null,0)}),CKEDITOR.editor.prototype.selectionChange=function(c){(c?a:b).call(this)},CKEDITOR.editor.prototype.getSelection=function(a){return!this._.savedSelection&&!this._.fakeSelection||a?(a=this.editable())&&"wysiwyg"==this.mode?new CKEDITOR.dom.selection(a):null:this._.savedSelection||this._.fakeSelection},CKEDITOR.editor.prototype.lockSelection=function(a){return a=a||this.getSelection(1),a.getType()!=CKEDITOR.SELECTION_NONE?(!a.isLocked&&a.lock(),this._.savedSelection=a,!0):!1},CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;return b?(b.unlock(a),delete this._.savedSelection,!0):!1},CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath},CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)},CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection():new CKEDITOR.dom.selection(this.root);return a.selectRanges([this]),a},CKEDITOR.SELECTION_NONE=1,CKEDITOR.SELECTION_TEXT=2,CKEDITOR.SELECTION_ELEMENT=3;var p="function"!=typeof window.getSelection,q=1;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection){var b=a;a=a.root}var c=a instanceof CKEDITOR.dom.element;if(this.rev=b?b.rev:q++,this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument(),this.root=c?a:this.document.getBody(),this.isLocked=0,this._={cache:{}},b)return CKEDITOR.tools.extend(this._.cache,b._.cache),this.isFake=b.isFake,this.isLocked=b.isLocked,this;a=this.getNative();var d,e;if(a)if(a.getRangeAt)d=(e=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(e.commonAncestorContainer);else{try{e=a.createRange()}catch(f){}d=e&&CKEDITOR.dom.element.get(e.item&&e.item(0)||e.parentElement())}return(!d||d.type!=CKEDITOR.NODE_ELEMENT&&d.type!=CKEDITOR.NODE_TEXT||!this.root.equals(d)&&!this.root.contains(d))&&(this._.cache.type=CKEDITOR.SELECTION_NONE,this._.cache.startElement=null,this._.cache.selectedElement=null,this._.cache.selectedText="",this._.cache.ranges=new CKEDITOR.dom.rangeList),this};var r={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1},s=CKEDITOR.tools.repeat("​",7),t=new RegExp(s+"( )?","g");CKEDITOR.tools.extend(CKEDITOR.dom.selection,{_removeFillingCharSequenceString:h,_createFillingCharSequenceNode:f,FILLING_CHAR_SEQUENCE:s}),CKEDITOR.dom.selection.prototype={getNative:function(){return void 0!==this._.cache.nativeSel?this._.cache.nativeSel:this._.cache.nativeSel=p?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:p?function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_NONE;try{var c=this.getNative(),d=c.type;"Text"==d&&(b=CKEDITOR.SELECTION_TEXT),"Control"==d&&(b=CKEDITOR.SELECTION_ELEMENT),c.createRange().parentElement()&&(b=CKEDITOR.SELECTION_TEXT)}catch(e){}return a.type=b}:function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_TEXT,c=this.getNative();if(c&&c.rangeCount){if(1==c.rangeCount){var c=c.getRangeAt(0),d=c.startContainer;d==c.endContainer&&1==d.nodeType&&1==c.endOffset-c.startOffset&&r[d.childNodes[c.startOffset].nodeName.toLowerCase()]&&(b=CKEDITOR.SELECTION_ELEMENT)}}else b=CKEDITOR.SELECTION_NONE;return a.type=b},getRanges:function(){var a=p?function(){function a(a){return new CKEDITOR.dom.node(a).getIndex()}var b=function(b,c){b=b.duplicate(),b.collapse(c);var d=b.parentElement();if(!d.hasChildNodes())return{container:d,offset:0};for(var e,f,g,h,i=d.children,j=b.duplicate(),k=0,l=i.length-1,m=-1;l>=k;)if(m=Math.floor((k+l)/2),e=i[m],j.moveToElementText(e),g=j.compareEndPoints("StartToStart",b),g>0)l=m-1;else{if(!(0>g))return{container:d,offset:a(e)};k=m+1}if(-1==m||m==i.length-1&&0>g){if(j.moveToElementText(d),j.setEndPoint("StartToStart",b),j=j.text.replace(/(\r\n|\r)/g,"\n").length,i=d.childNodes,!j)return e=i[i.length-1],e.nodeType!=CKEDITOR.NODE_TEXT?{container:d,offset:i.length}:{container:e,offset:e.nodeValue.length};for(d=i.length;j>0&&d>0;)f=i[--d],f.nodeType==CKEDITOR.NODE_TEXT&&(h=f,j-=f.nodeValue.length);return{container:h,offset:-j}}if(j.collapse(g>0),j.setEndPoint(g>0?"StartToStart":"EndToStart",b),j=j.text.replace(/(\r\n|\r)/g,"\n").length,!j)return{container:d,offset:a(e)+(g>0?0:1)};for(;j>0;)try{f=e[g>0?"previousSibling":"nextSibling"],f.nodeType==CKEDITOR.NODE_TEXT&&(j-=f.nodeValue.length,h=f),e=f}catch(n){return{container:d,offset:a(e)}}return{container:h,offset:g>0?-j:h.nodeValue.length+j}};return function(){var a=this.getNative(),c=a&&a.createRange(),d=this.getType();if(!a)return[];if(d==CKEDITOR.SELECTION_TEXT)return a=new CKEDITOR.dom.range(this.root),d=b(c,!0),a.setStart(new CKEDITOR.dom.node(d.container),d.offset),d=b(c),a.setEnd(new CKEDITOR.dom.node(d.container),d.offset),a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse(),[a];if(d==CKEDITOR.SELECTION_ELEMENT){for(var d=[],e=0;eA;++A){var y=x[A],C=CKEDITOR.filter.instances[y.data("cke-filter")];(C?C.check(this):1)&&(w.selectNodeContents(y),c.call(this,w))}if(x=u?!l[u]||v?0:t&&!k?0:b(s,q,i,D):1){if(y=s.getParent(),x=i,z=h,A=g,!y||!(y.getDtd()||CKEDITOR.dtd.span)[z]&&!A||x.parentRule&&!x.parentRule(y))j=!0;else if(m||u&&CKEDITOR.dtd.$removeEmpty[u]&&(s.getPosition(q)|D)!=D||(m=d.clone(),m.setStartBefore(s)),u=s.type,u==CKEDITOR.NODE_TEXT||t||u==CKEDITOR.NODE_ELEMENT&&!s.getChildCount()){for(var F,u=s;(j=!u.getNext(B))&&(F=u.getParent(),l[F.getName()])&&b(F,p,i,E);)u=F;m.setEndAfter(u)}}else j=!0;s=s.getNextSourceNode(v||t)}if(j&&m&&!m.collapsed){for(var G,H,I,j=r(this,f),t=j.hasAttributes(),v=m.getCommonAncestor(),u={},x={},y={},z={};j&&v;){if(v.getName()==h){for(G in i.attributes)!z[G]&&(I=v.getAttribute(H))&&(j.getAttribute(G)==I?x[G]=1:z[G]=1);for(H in i.styles)!y[H]&&(I=v.getStyle(H))&&(j.getStyle(H)==I?u[H]=1:y[H]=1)}v=v.getParent()}for(G in x)j.removeAttribute(G);for(H in u)j.removeStyle(H);t&&!j.hasAttributes()&&(j=null),j?(m.extractContents().appendTo(j),m.insertNode(j),o.call(this,j),j.mergeSiblings(),CKEDITOR.env.ie||j.$.normalize()):(j=new CKEDITOR.dom.element("span"),m.extractContents().appendTo(j),m.insertNode(j),o.call(this,j),j.remove(!0)),m=null}}d.moveToBookmark(n),d.shrink(CKEDITOR.SHRINK_TEXT),d.shrink(CKEDITOR.NODE_ELEMENT,!0)}}function d(a){function b(){for(var a=new CKEDITOR.dom.elementPath(d.getParent()),b=new CKEDITOR.dom.elementPath(j.getParent()),c=null,e=null,f=0;f]*>)[ \t\r\n]*/gi,"$1"),f=f.replace(/([ \t\n\r]+| )/g," "),f=f.replace(/]*>/gi,"\n"),CKEDITOR.env.ie){var g=a.getDocument().createElement("div");g.append(e),e.$.outerHTML="
        "+f+"
        ",e.copyAttributes(g.getFirst()),e=g.getFirst().remove()}else e.setHtml(f);b=e}else f?b=m(c?[a.getHtml()]:k(a),b):a.moveChildren(b);if(b.replace(a),d){var h,c=b;(h=c.getPrevious(C))&&h.type==CKEDITOR.NODE_ELEMENT&&h.is("pre")&&(d=l(h.getHtml(),/\n$/,"")+"\n\n"+l(c.getHtml(),/^\n/,""),CKEDITOR.env.ie?c.$.outerHTML="
        "+d+"
        ":c.setHtml(d),h.remove())}else c&&q(b)}function k(a){var b=[];return l(a.getOuterHtml(),/(\S\s*)\n(?:\s|(]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,c){return b+"
        "+c+"
        "}).replace(/([\s\S]*?)<\/pre>/gi,function(a,c){b.push(c)}),b}function l(a,b,c){var d="",e="";return a=a.replace(/(^]+data-cke-bookmark.*?\/span>)|(]+data-cke-bookmark.*?\/span>$)/gi,function(a,b,c){return b&&(d=b),c&&(e=c),""}),d+a.replace(b,c)+e}function m(a,b){var c;1"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat(" ",a.length-1)+" "});if(c){var f=b.clone();f.setHtml(e),c.append(f)}else b.setHtml(e)}return c||b}function n(a,b){var c,d=this._.definition,e=d.attributes,d=d.styles,f=u(this)[a.getName()],g=CKEDITOR.tools.isEmpty(e)&&CKEDITOR.tools.isEmpty(d);for(c in e)("class"!=c&&!this._.definition.fullMatch||a.getAttribute(c)==v(c,e[c]))&&(b&&"data-"==c.slice(0,5)||(g=a.hasAttribute(c),a.removeAttribute(c)));for(var h in d)this._.definition.fullMatch&&a.getStyle(h)!=v(h,d[h],!0)||(g=g||!!a.getStyle(h),a.removeStyle(h));p(a,f,x[a.getName()]),g&&(this._.definition.alwaysRemoveElement?q(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?q(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function o(a){for(var b,c=u(this),d=a.getElementsByTag(this.element),e=d.count();0<=--e;)b=d.getItem(e),b.isReadOnly()||n.call(this,b,!0);for(var f in c)if(f!=this.element)for(d=a.getElementsByTag(f),e=d.count()-1;e>=0;e--)b=d.getItem(e),b.isReadOnly()||p(b,c[f])}function p(a,b,c){if(b=b&&b.attributes)for(var d=0;d",a||b.name,""),c.join("")},getDefinition:function(){return this._.definition}},CKEDITOR.style.getStyleText=function(a){var b=a._ST;if(b)return b;var b=a.styles,c=a.attributes&&a.attributes.style||"",d="";c.length&&(c=c.replace(z,";"));for(var e in b){var f=b[e],g=(e+":"+f).replace(z,";");"inherit"==f?d+=g:c+=g}return c.length&&(c=CKEDITOR.tools.normalizeCssText(c,!0)),a._ST=c+d},CKEDITOR.style.customHandlers={},CKEDITOR.style.addCustomHandler=function(a){var b=function(a){this._={definition:a},this.setup&&this.setup(a)};return b.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.style.prototype),{assignedTo:CKEDITOR.STYLE_OBJECT},a,!0),this.customHandlers[a.type]=b};var D=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,E=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED}(),CKEDITOR.styleCommand=function(a,b){this.requiredContent=this.allowedContent=this.style=a,CKEDITOR.tools.extend(this,b,!0)},CKEDITOR.styleCommand.prototype.exec=function(a){a.focus(),this.state==CKEDITOR.TRISTATE_OFF?a.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&a.removeStyle(this.style)},CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet"),CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet),CKEDITOR.loadStylesSet=function(a,b,c){CKEDITOR.stylesSet.addExternal(a,b,""),CKEDITOR.stylesSet.load(a,c)},CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(a,b){var c=this._.styleStateChangeCallbacks;c||(c=this._.styleStateChangeCallbacks=[],this.on("selectionChange",function(a){for(var b=0;b"}}),function(){var a,b={},c={};for(a in CKEDITOR.dtd.$blockLimit)a in CKEDITOR.dtd.$list||(b[a]=1);for(a in CKEDITOR.dtd.$block)a in CKEDITOR.dtd.$blockLimit||a in CKEDITOR.dtd.$empty||(c[a]=1);CKEDITOR.dom.elementPath=function(a,d){var e,f=null,g=null,h=[],i=a;d=d||a.getDocument().getBody();do if(i.type==CKEDITOR.NODE_ELEMENT){if(h.push(i),!this.lastElement&&(this.lastElement=i,i.is(CKEDITOR.dtd.$object)||"false"==i.getAttribute("contenteditable")))continue;if(i.equals(d))break;if(!g&&(e=i.getName(),"true"==i.getAttribute("contenteditable")?g=i:!f&&c[e]&&(f=i),b[e])){if(e=!f&&"div"==e){a:{e=i.getChildren();for(var j=0,k=e.count();k>j;j++){var l=e.getItem(j);if(l.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[l.getName()]){e=!0;break a}}e=!1}e=!e}e?f=i:g=i}}while(i=i.getParent());g||(g=d),this.block=f,this.blockLimit=g,this.root=d,this.elements=h}}(),CKEDITOR.dom.elementPath.prototype={compare:function(a){var b=this.elements;if(a=a&&a.elements,!a||b.length!=a.length)return!1;for(var c=0;cb;b++)if(d(e[b]))return e[b];return null},isContextFor:function(a){var b;return a in CKEDITOR.dtd.$block?(b=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit,!!b.getDtd()[a]):!0},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}},CKEDITOR.dom.text=function(a,b){"string"==typeof a&&(a=(b?b.$:document).createTextNode(a)),this.$=a},CKEDITOR.dom.text.prototype=new CKEDITOR.dom.node,CKEDITOR.tools.extend(CKEDITOR.dom.text.prototype,{type:CKEDITOR.NODE_TEXT,getLength:function(){return this.$.nodeValue.length},getText:function(){return this.$.nodeValue},setText:function(a){this.$.nodeValue=a},split:function(a){var b=this.$.parentNode,c=b.childNodes.length,d=this.getLength(),e=this.getDocument(),f=new CKEDITOR.dom.text(this.$.splitText(a),e);return b.childNodes.length==c&&(a>=d?(f=e.createText(""),f.insertAfter(this)):(a=e.createText(""),a.insertAfter(f),a.remove())),f},substring:function(a,b){return"number"!=typeof b?this.$.nodeValue.substr(a):this.$.nodeValue.substring(a,b)}}),function(){function a(a,b,c){var d=a.serializable,e=b[c?"endContainer":"startContainer"],f=c?"endOffset":"startOffset",g=d?b.document.getById(a.startNode):a.startNode;return a=d?b.document.getById(a.endNode):a.endNode,e.equals(g.getPrevious())?(b.startOffset=b.startOffset-e.getLength()-a.getPrevious().getLength(),e=a.getNext()):e.equals(a.getPrevious())&&(b.startOffset-=e.getLength(),e=a.getNext()),e.equals(g.getParent())&&b[f]++,e.equals(a.getParent())&&b[f]++,b[c?"endContainer":"startContainer"]=e,b}CKEDITOR.dom.rangeList=function(a){return a instanceof CKEDITOR.dom.rangeList?a:(a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[],CKEDITOR.tools.extend(a,b))};var b={createIterator:function(){var a,b=this,c=CKEDITOR.dom.walker.bookmark(),d=[];return{getNextRange:function(e){a=void 0===a?0:a+1;var f=b[a];if(f&&1=0;g--)d.unshift(b[g].createBookmark(!0));if(e)for(var h=0;b[a+h+1];){var i=f.document;for(e=0,g=i.getById(d[h].endNode),i=i.getById(d[h+1].startNode);;){if(g=g.getNextSourceNode(!1),i.equals(g))e=1;else if(c(g)||g.type==CKEDITOR.NODE_ELEMENT&&g.isBlockBoundary())continue;break}if(!e)break;h++}for(f.moveToBookmark(d.shift());h--;)g=b[++a],g.moveToBookmark(d.shift()),f.setEnd(g.endContainer,g.endOffset)}return f}}},createBookmarks:function(b){for(var c,d=[],e=0;eb?-1:1}),f=0;fCKEDITOR.env.version?a[g].$.styleSheet.cssText+=f:a[g].$.innerHTML+=f}}var f={};CKEDITOR.skin={path:a,loadPart:function(b,d){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(a()+"skin.js"),function(){c(b,d)}):c(b,d)},getPath:function(a){return CKEDITOR.getUrl(b(a))},icons:{},addIcon:function(a,b,c,d){a=a.toLowerCase(),this.icons[a]||(this.icons[a]={path:b,offset:c||0,bgsize:d||"16px"})},getIconStyle:function(a,b,c,d,e){var f;return a&&(a=a.toLowerCase(),b&&(f=this.icons[a+"-rtl"]),f||(f=this.icons[a])),a=c||f&&f.path||"",d=d||f&&f.offset,e=e||f&&f.bgsize||"16px",a&&(a=a.replace(/'/g,"\\'")),a&&"background-image:url('"+CKEDITOR.getUrl(a)+"');background-position:0 "+d+"px;background-size:"+e+";"}},CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{getUiColor:function(){return this.uiColor},setUiColor:function(a){var b=d(CKEDITOR.document);return(this.setUiColor=function(a){this.uiColor=a;var c=CKEDITOR.skin.chameleon,d="",f="";"function"==typeof c&&(d=c(this,"editor"),f=c(this,"panel")),a=[[i,a]],e([b],d,a),e(h,f,a)}).call(this,a)}});var g="cke_ui_color",h=[],i=/\$color/g;CKEDITOR.on("instanceLoaded",function(a){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var b=a.editor;a=function(a){if(a=(a.data[0]||a.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument(),!a.getById("cke_ui_color")){a=d(a),h.push(a);var c=b.getUiColor();c&&e([a],CKEDITOR.skin.chameleon(b,"panel"),[[i,c]])}},b.on("panelShow",a),b.on("menuShow",a),b.config.uiColor&&b.setUiColor(b.config.uiColor)}})}(),function(){if(CKEDITOR.env.webkit)CKEDITOR.env.hc=!1;else{var a=CKEDITOR.dom.element.createFromHtml('
        ',CKEDITOR.document);a.appendTo(CKEDITOR.document.getHead());try{var b=a.getComputedStyle("border-top-color"),c=a.getComputedStyle("border-right-color");CKEDITOR.env.hc=!(!b||b!=c)}catch(d){CKEDITOR.env.hc=!1}a.remove()}if(CKEDITOR.env.hc&&(CKEDITOR.env.cssClass+=" cke_hc"),CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}"),CKEDITOR.status="loaded",CKEDITOR.fireOnce("loaded"),a=CKEDITOR._.pending)for(delete CKEDITOR._.pending,b=0;bd;d++){var e,f=d;e=parseInt(c[d],16),e=("0"+(0>b?0|e*(1+b):0|e+(255-e)*b).toString(16)).slice(-2),c[f]=e}return"#"+c.join("")}}(),b=function(){var a=new CKEDITOR.template("background:#{to};background-image:linear-gradient(to bottom,{from},{to});filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='{from}',endColorstr='{to}');");return function(b,c){return a.output({from:b,to:c})}}(),c={editor:new CKEDITOR.template("{id}.cke_chrome [border-color:{defaultBorder};] {id} .cke_top [ {defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_bottom [{defaultGradient}border-top-color:{defaultBorder};] {id} .cke_resizer [border-right-color:{ckeResizer}] {id} .cke_dialog_title [{defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_dialog_footer [{defaultGradient}outline-color:{defaultBorder};border-top-color:{defaultBorder};] {id} .cke_dialog_tab [{lightGradient}border-color:{defaultBorder};] {id} .cke_dialog_tab:hover [{mediumGradient}] {id} .cke_dialog_contents [border-top-color:{defaultBorder};] {id} .cke_dialog_tab_selected, {id} .cke_dialog_tab_selected:hover [background:{dialogTabSelected};border-bottom-color:{dialogTabSelectedBorder};] {id} .cke_dialog_body [background:{dialogBody};border-color:{defaultBorder};] {id} .cke_toolgroup [{lightGradient}border-color:{defaultBorder};] {id} a.cke_button_off:hover, {id} a.cke_button_off:focus, {id} a.cke_button_off:active [{mediumGradient}] {id} .cke_button_on [{ckeButtonOn}] {id} .cke_toolbar_separator [background-color: {ckeToolbarSeparator};] {id} .cke_combo_button [border-color:{defaultBorder};{lightGradient}] {id} a.cke_combo_button:hover, {id} a.cke_combo_button:focus, {id} .cke_combo_on a.cke_combo_button [border-color:{defaultBorder};{mediumGradient}] {id} .cke_path_item [color:{elementsPathColor};] {id} a.cke_path_item:hover, {id} a.cke_path_item:focus, {id} a.cke_path_item:active [background-color:{elementsPathBg};] {id}.cke_panel [border-color:{defaultBorder};] "),panel:new CKEDITOR.template(".cke_panel_grouptitle [{lightGradient}border-color:{defaultBorder};] .cke_menubutton_icon [background-color:{menubuttonIcon};] .cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon [background-color:{menubuttonIconHover};] .cke_menuseparator [background-color:{menubuttonIcon};] a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox [border-color:{defaultBorder};] a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore [background-color:{ckeColorauto};border-color:{defaultBorder};] ")};return function(d,e){var f=d.uiColor,f={id:"."+d.id,defaultBorder:a(f,-.1),defaultGradient:b(a(f,.9),f),lightGradient:b(a(f,1),a(f,.7)),mediumGradient:b(a(f,.8),a(f,.5)),ckeButtonOn:b(a(f,.6),a(f,.7)),ckeResizer:a(f,-.4),ckeToolbarSeparator:a(f,.5),ckeColorauto:a(f,.8),dialogBody:a(f,.7), +dialogTabSelected:b("#FFFFFF","#FFFFFF"),dialogTabSelectedBorder:"#FFF",elementsPathColor:a(f,-.6),elementsPathBg:f,menubuttonIcon:a(f,.5),menubuttonIconHover:a(f,.3)};return c[e].output(f).replace(/\[/g,"{").replace(/\]/g,"}")}}(),CKEDITOR.plugins.add("dialogui",{onLoad:function(){var a=function(a){this._||(this._={}),this._["default"]=this._.initValue=a["default"]||"",this._.required=a.required||!1;for(var b=[this._],c=1;carguments.length)){var f=a.call(this,c);f.labelId=CKEDITOR.tools.getNextId()+"_label",this._.children=[];var g={role:c.role||"presentation"};c.includeLabel&&(g["aria-labelledby"]=f.labelId),CKEDITOR.ui.dialog.uiElement.call(this,b,c,d,"div",null,g,function(){var a=[],d=c.required?" cke_required":"";return"horizontal"!=c.labelLayout?a.push('",'"):(d={type:"hbox",widths:c.widths,padding:0,children:[{type:"html",html:'"},{type:"html",html:'"+e.call(this,b,c)+""}]},CKEDITOR.dialog._.uiElementBuilders.hbox.build(b,d,a)),a.join("")})}},textInput:function(b,c,d){if(!(3>arguments.length)){a.call(this,c);var e=this._.inputId=CKEDITOR.tools.getNextId()+"_textInput",f={"class":"cke_dialog_ui_input_"+c.type,id:e,type:c.type};c.validate&&(this.validate=c.validate),c.maxLength&&(f.maxlength=c.maxLength),c.size&&(f.size=c.size),c.inputStyle&&(f.style=c.inputStyle);var g=this,i=!1;b.on("load",function(){g.getInputElement().on("keydown",function(a){13==a.data.getKeystroke()&&(i=!0)}),g.getInputElement().on("keyup",function(a){13==a.data.getKeystroke()&&i&&(b.getButton("ok")&&setTimeout(function(){b.getButton("ok").click()},0),i=!1),g.bidi&&h.call(g,a)},null,null,1e3)}),CKEDITOR.ui.dialog.labeledElement.call(this,b,c,d,function(){var a=['"),a.join("")})}},textarea:function(b,c,d){if(!(3>arguments.length)){a.call(this,c);var e=this,f=this._.inputId=CKEDITOR.tools.getNextId()+"_textarea",g={};c.validate&&(this.validate=c.validate),g.rows=c.rows||5,g.cols=c.cols||20,g["class"]="cke_dialog_ui_input_textarea "+(c["class"]||""),"undefined"!=typeof c.inputStyle&&(g.style=c.inputStyle),c.dir&&(g.dir=c.dir),e.bidi&&b.on("load",function(){e.getInputElement().on("keyup",h)},e),CKEDITOR.ui.dialog.labeledElement.call(this,b,c,d,function(){g["aria-labelledby"]=this._.labelId,this._.required&&(g["aria-required"]=this._.required);var a,b=['"),b.join("")})}},checkbox:function(b,c,d){if(!(3>arguments.length)){var e=a.call(this,c,{"default":!!c["default"]});c.validate&&(this.validate=c.validate),CKEDITOR.ui.dialog.uiElement.call(this,b,c,d,"span",null,null,function(){var a=CKEDITOR.tools.extend({},c,{id:c.id?c.id+"_checkbox":CKEDITOR.tools.getNextId()+"_checkbox"},!0),d=[],f=CKEDITOR.tools.getNextId()+"_label",h={"class":"cke_dialog_ui_checkbox_input",type:"checkbox","aria-labelledby":f};return g(a),c["default"]&&(h.checked="checked"),"undefined"!=typeof a.inputStyle&&(a.style=a.inputStyle),e.checkbox=new CKEDITOR.ui.dialog.uiElement(b,a,d,"input",null,h),d.push(' "),d.join("")})}},radio:function(b,c,d){if(!(3>arguments.length)){a.call(this,c),this._["default"]||(this._["default"]=this._.initValue=c.items[0][1]),c.validate&&(this.validate=c.validate);var e=[],f=this;c.role="radiogroup",c.includeLabel=!0,CKEDITOR.ui.dialog.labeledElement.call(this,b,c,d,function(){for(var a=[],d=[],h=(c.id?c.id:CKEDITOR.tools.getNextId())+"_radio",i=0;i'+CKEDITOR.tools.htmlEncode(c.label)+"")}},select:function(b,c,d){if(!(3>arguments.length)){var e=a.call(this,c);c.validate&&(this.validate=c.validate),e.inputId=CKEDITOR.tools.getNextId()+"_select",CKEDITOR.ui.dialog.labeledElement.call(this,b,c,d,function(){var a=CKEDITOR.tools.extend({},c,{id:c.id?c.id+"_select":CKEDITOR.tools.getNextId()+"_select"},!0),d=[],f=[],h={id:e.inputId,"class":"cke_dialog_ui_input_select","aria-labelledby":this._.labelId};d.push('"),d.join("")})}},file:function(b,c,d){if(!(3>arguments.length)){void 0===c["default"]&&(c["default"]="");var e=CKEDITOR.tools.extend(a.call(this,c),{definition:c,buttons:[]});c.validate&&(this.validate=c.validate),b.on("load",function(){CKEDITOR.document.getById(e.frameId).getParent().addClass("cke_dialog_ui_input_file")}),CKEDITOR.ui.dialog.labeledElement.call(this,b,c,d,function(){e.frameId=CKEDITOR.tools.getNextId()+"_fileInput";var a=[''),a.join("")})}},fileButton:function(b,c,d){var e=this;if(!(3>arguments.length)){a.call(this,c),c.validate&&(this.validate=c.validate);var f=CKEDITOR.tools.extend({},c),g=f.onClick;f.className=(f.className?f.className+" ":"")+"cke_dialog_ui_button",f.onClick=function(a){var d=c["for"];g&&!1===g.call(this,a)||(b.getContentElement(d[0],d[1]).submit(),this.disable())},b.on("load",function(){b.getContentElement(c["for"][0],c["for"][1])._.buttons.push(e)}),CKEDITOR.ui.dialog.button.call(this,b,f,d)}},html:function(){var a=/^\s*<[\w:]+\s+([^>]*)?>/,b=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,c=/\/$/;return function(d,e,f){if(!(3>arguments.length)){var g=[],h=e.html;"<"!=h.charAt(0)&&(h=""+h+"");var i=e.focus;if(i){var j=this.focus;this.focus=function(){("function"==typeof i?i:j).call(this),this.fire("focus")},e.isFocusable&&(this.isFocusable=this.isFocusable),this.keyboardFocusable=!0}CKEDITOR.ui.dialog.uiElement.call(this,d,e,g,"span",null,null,""),g=g.join("").match(a),h=h.match(b)||["","",""],c.test(h[1])&&(h[1]=h[1].slice(0,-1),h[2]="/"+h[2]),f.push([h[1]," ",g[1]||"",h[2]].join(""))}}}(),fieldset:function(a,b,c,d,e){var f=e.label;this._={children:b},CKEDITOR.ui.dialog.uiElement.call(this,a,e,d,"fieldset",null,null,function(){var a=[];f&&a.push(""+f+"");for(var b=0;bb.getChildCount()?new CKEDITOR.dom.text(a,CKEDITOR.document).appendTo(b):b.getChild(0).$.nodeValue=a,this},getLabel:function(){var a=CKEDITOR.document.getById(this._.labelId);return!a||1>a.getChildCount()?"":a.getChild(0).getText()},eventProcessors:e},!0),CKEDITOR.ui.dialog.button.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{click:function(){return this._.disabled?!1:this.fire("click",{dialog:this._.dialog})},enable:function(){this._.disabled=!1;var a=this.getElement();a&&a.removeClass("cke_disabled")},disable:function(){this._.disabled=!0,this.getElement().addClass("cke_disabled")},isVisible:function(){return this.getElement().getFirst().isVisible()},isEnabled:function(){return!this._.disabled},eventProcessors:CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{onClick:function(a,b){this.on("click",function(){b.apply(this,arguments)})}},!0),accessKeyUp:function(){this.click()},accessKeyDown:function(){this.focus()},keyboardFocusable:!0},!0),CKEDITOR.ui.dialog.textInput.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return CKEDITOR.document.getById(this._.inputId)},focus:function(){var a=this.selectParentTab();setTimeout(function(){var b=a.getInputElement();b&&b.$.focus()},0)},select:function(){var a=this.selectParentTab();setTimeout(function(){var b=a.getInputElement();b&&(b.$.focus(),b.$.select())},0)},accessKeyUp:function(){this.select()},setValue:function(a){if(this.bidi){var b=a&&a.charAt(0);(b="‪"==b?"ltr":"‫"==b?"rtl":null)&&(a=a.slice(1)),this.setDirectionMarker(b)}return a||(a=""),CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply(this,arguments)},getValue:function(){var a=CKEDITOR.ui.dialog.uiElement.prototype.getValue.call(this);if(this.bidi&&a){var b=this.getDirectionMarker();b&&(a=("ltr"==b?"‪":"‫")+a)}return a},setDirectionMarker:function(a){var b=this.getInputElement();a?b.setAttributes({dir:a,"data-cke-dir-marker":a}):this.getDirectionMarker()&&b.removeAttributes(["dir","data-cke-dir-marker"])},getDirectionMarker:function(){return this.getInputElement().data("cke-dir-marker")},keyboardFocusable:!0},d,!0),CKEDITOR.ui.dialog.textarea.prototype=new CKEDITOR.ui.dialog.textInput,CKEDITOR.ui.dialog.select.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return this._.select.getElement()},add:function(a,b,c){var d=new CKEDITOR.dom.element("option",this.getDialog().getParentEditor().document),e=this.getInputElement().$;return d.$.text=a,d.$.value=void 0===b||null===b?a:b,void 0===c||null===c?CKEDITOR.env.ie?e.add(d.$):e.add(d.$,null):e.add(d.$,c),this},remove:function(a){return this.getInputElement().$.remove(a),this},clear:function(){for(var a=this.getInputElement().$;0','
        "].join("")),c.$.close(),a=0;ab-a;c--)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function b(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId),c=b+1;b+a>c;c++)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function c(a,b){for(var c=a.$.getElementsByTagName("input"),d=0,e=c.length;e>d;d++){var f=new CKEDITOR.dom.element(c[d]);"text"==f.getAttribute("type").toLowerCase()&&(b?(f.setAttribute("value",f.getCustomData("fake_value")||""),f.removeCustomData("fake_value")):(f.setCustomData("fake_value",f.getAttribute("value")),f.setAttribute("value","")))}}function d(a,b){var c=this.getInputElement();c&&(a?c.removeAttribute("aria-invalid"):c.setAttribute("aria-invalid",!0)),a||(this.select?this.select():this.focus()),b&&alert(b),this.fire("validated",{valid:a,msg:b})}function e(){var a=this.getInputElement();a&&a.removeAttribute("aria-invalid")}function f(a){var b=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",p).output({id:CKEDITOR.tools.getNextNumber(),editorId:a.id,langDir:a.lang.dir,langCode:a.langCode,editorDialogClass:"cke_editor_"+a.name.replace(/\./g,"\\.")+"_dialog",closeTitle:a.lang.common.close,hidpi:CKEDITOR.env.hidpi?"cke_hidpi":""})),c=b.getChild([0,0,0,0,0]),d=c.getChild(0),e=c.getChild(1);return a.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(c),!CKEDITOR.env.ie||CKEDITOR.env.quirks||CKEDITOR.env.edge||(a="javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())",CKEDITOR.dom.element.createFromHtml('').appendTo(c.getParent())),d.unselectable(),e.unselectable(),{element:b,parts:{dialog:b.getChild(0),title:d,close:e,tabs:c.getChild(2),contents:c.getChild([3,0,0,0]),footer:c.getChild([3,0,1,0])}}}function g(a,b,c){this.element=b,this.focusIndex=c,this.tabIndex=0,this.isFocusable=function(){return!b.getAttribute("disabled")&&b.isVisible()},this.focus=function(){a._.currentFocusIndex=this.focusIndex,this.element.focus()},b.on("keydown",function(a){a.data.getKeystroke()in{32:1,13:1}&&this.fire("click")}),b.on("focus",function(){this.fire("mouseover")}),b.on("blur",function(){this.fire("mouseout")})}function h(a){function b(){a.layout()}var c=CKEDITOR.document.getWindow();c.on("resize",b),a.on("hide",function(){c.removeListener("resize",b)})}function i(a,b){this._={dialog:a},CKEDITOR.tools.extend(this,b)}function j(a){function b(b){var c=a.getSize(),i=CKEDITOR.document.getWindow().getViewPaneSize(),j=b.data.$.screenX,k=b.data.$.screenY,l=j-d.x,m=k-d.y;d={x:j,y:k},e.x+=l,e.y+=m,a.move(e.x+h[3]i.width-c.width-g?i.width-c.width+("rtl"==f.lang.dir?0:h[1]):e.x,e.y+h[0]i.height-c.height-g?i.height-c.height+h[2]:e.y,1),b.data.preventDefault()}function c(){if(CKEDITOR.document.removeListener("mousemove",b),CKEDITOR.document.removeListener("mouseup",c),CKEDITOR.env.ie6Compat){var a=w.getChild(0).getFrameDocument();a.removeListener("mousemove",b),a.removeListener("mouseup",c)}}var d=null,e=null,f=a.getParentEditor(),g=f.config.dialog_magnetDistance,h=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof g&&(g=20),a.parts.title.on("mousedown",function(f){if(d={x:f.data.$.screenX,y:f.data.$.screenY},CKEDITOR.document.on("mousemove",b),CKEDITOR.document.on("mouseup",c),e=a.getPosition(),CKEDITOR.env.ie6Compat){var g=w.getChild(0).getFrameDocument();g.on("mousemove",b),g.on("mouseup",c)}f.data.preventDefault()},a)}function k(a){function b(b){var c="rtl"==l.lang.dir,k=j.width,m=j.height,n=k+(b.data.$.screenX-i.x)*(c?-1:1)*(a._.moved?1:2),o=m+(b.data.$.screenY-i.y)*(a._.moved?1:2),p=a._.element.getFirst(),p=c&&p.getComputedStyle("right"),q=a.getPosition();q.y+o>h.height&&(o=h.height-q.y),(c?p:q.x)+n>h.width&&(n=h.width-(c?p:q.x)),e!=CKEDITOR.DIALOG_RESIZE_WIDTH&&e!=CKEDITOR.DIALOG_RESIZE_BOTH||(k=Math.max(d.minWidth||0,n-f)),e!=CKEDITOR.DIALOG_RESIZE_HEIGHT&&e!=CKEDITOR.DIALOG_RESIZE_BOTH||(m=Math.max(d.minHeight||0,o-g)),a.resize(k,m),a._.moved||a.layout(),b.data.preventDefault()}function c(){if(CKEDITOR.document.removeListener("mouseup",c),CKEDITOR.document.removeListener("mousemove",b),k&&(k.remove(),k=null),CKEDITOR.env.ie6Compat){var a=w.getChild(0).getFrameDocument();a.removeListener("mouseup",c),a.removeListener("mousemove",b)}}var d=a.definition,e=d.resizable;if(e!=CKEDITOR.DIALOG_RESIZE_NONE){var f,g,h,i,j,k,l=a.getParentEditor(),m=CKEDITOR.tools.addFunction(function(d){j=a.getSize();var e=a.parts.contents;e.$.getElementsByTagName("iframe").length&&(k=CKEDITOR.dom.element.createFromHtml('
        '),e.append(k)),g=j.height-a.parts.contents.getSize("height",!(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.quirks)),f=j.width-a.parts.contents.getSize("width",1),i={x:d.screenX,y:d.screenY},h=CKEDITOR.document.getWindow().getViewPaneSize(),CKEDITOR.document.on("mousemove",b),CKEDITOR.document.on("mouseup",c),CKEDITOR.env.ie6Compat&&(e=w.getChild(0).getFrameDocument(),e.on("mousemove",b),e.on("mouseup",c)),d.preventDefault&&d.preventDefault()});a.on("load",function(){var b="";e==CKEDITOR.DIALOG_RESIZE_WIDTH?b=" cke_resizer_horizontal":e==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(b=" cke_resizer_vertical"),b=CKEDITOR.dom.element.createFromHtml('
        '+("ltr"==l.lang.dir?"◢":"◣")+"
        "),a.parts.footer.append(b,1)}),l.on("destroy",function(){CKEDITOR.tools.removeFunction(m)})}}function l(a){a.data.preventDefault(1)}function m(a){var b=CKEDITOR.document.getWindow(),c=a.config,d=c.dialog_backgroundCoverColor||"white",e=c.dialog_backgroundCoverOpacity,f=c.baseFloatZIndex,c=CKEDITOR.tools.genKey(d,e,f),g=x[c];g?g.show():(f=['
        '],CKEDITOR.env.ie6Compat&&(d="",f.push('')),f.push("
        "),g=CKEDITOR.dom.element.createFromHtml(f.join("")),g.setOpacity(void 0!==e?e:.5),g.on("keydown",l),g.on("keypress",l),g.on("keyup",l),g.appendTo(CKEDITOR.document.getBody()),x[c]=g),a.focusManager.add(g),w=g,a=function(){var a=b.getViewPaneSize();g.setStyles({width:a.width+"px",height:a.height+"px"})};var h=function(){var a=b.getScrollPosition(),c=CKEDITOR.dialog._.currentTop;if(g.setStyles({left:a.x+"px",top:a.y+"px"}),c)do a=c.getPosition(),c.move(a.x,a.y);while(c=c._.parentDialog)};if(v=a,b.on("resize",a),a(),CKEDITOR.env.mac&&CKEDITOR.env.webkit||g.focus(),CKEDITOR.env.ie6Compat){var i=function(){h(),arguments.callee.prevScrollHandler.apply(this,arguments)};b.$.setTimeout(function(){i.prevScrollHandler=window.onscroll||function(){},window.onscroll=i},0),h()}}function n(a){w&&(a.focusManager.remove(w),a=CKEDITOR.document.getWindow(),w.hide(),a.removeListener("resize",v),CKEDITOR.env.ie6Compat&&a.$.setTimeout(function(){window.onscroll=window.onscroll&&window.onscroll.prevScrollHandler||null},0),v=null)}var o=CKEDITOR.tools.cssLength,p='';CKEDITOR.dialog=function(c,g){function h(){var a=x._.focusList;a.sort(function(a,b){return a.tabIndex!=b.tabIndex?b.tabIndex-a.tabIndex:a.focusIndex-b.focusIndex});for(var b=a.length,c=0;b>c;c++)a[c].focusIndex=c}function i(a){var b=x._.focusList;if(a=a||0,!(1>b.length)){var c=x._.currentFocusIndex;x._.tabBarMode&&0>a&&(c=0);try{b[c].getInputElement().$.blur()}catch(d){}var e=c,f=10?b:0)+"px"},b[e?"right":"left"]=(a>0?a:0)+"px",d.setStyles(b),c&&(this._.moved=1))},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,b=this.definition;a.getParent()&&a.getParent().equals(CKEDITOR.document.getBody())?a.setStyle("display","block"):a.appendTo(CKEDITOR.document.getBody()),this.resize(this._.contentSize&&this._.contentSize.width||b.width||b.minWidth,this._.contentSize&&this._.contentSize.height||b.height||b.minHeight),this.reset(),this.selectPage(this.definition.contents[0].id),null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex),this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10),null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,m(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,this._.parentDialog.getElement().getFirst().$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2),CKEDITOR.dialog._.currentTop=this),a.on("keydown",z),a.on("keyup",A),this._.hasFocus=!1;for(var c in b.contents)if(b.contents[c]){var a=b.contents[c],d=this._.tabs[a.id],e=a.requiredContent,f=0;if(d){for(var g in this._.contents[a.id]){var i=this._.contents[a.id][g];"hbox"!=i.type&&"vbox"!=i.type&&i.getInputElement()&&(i.requiredContent&&!this._.editor.activeFilter.check(i.requiredContent)?i.disable():(i.enable(),f++))}!f||e&&!this._.editor.activeFilter.check(e)?d[0].addClass("cke_dialog_tab_disabled"):d[0].removeClass("cke_dialog_tab_disabled")}}CKEDITOR.tools.setTimeout(function(){this.layout(),h(this),this.parts.dialog.setStyle("visibility",""),this.fireOnce("load",{}),CKEDITOR.ui.fire("ready",this),this.fire("show",{}),this._.editor.fire("dialogShow",this),this._.parentDialog||this._.editor.focusManager.lock(),this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},layout:function(){var a=this.parts.dialog,b=this.getSize(),c=CKEDITOR.document.getWindow().getViewPaneSize(),d=(c.width-b.width)/2,e=(c.height-b.height)/2;CKEDITOR.env.ie6Compat||(b.height+(e>0?e:0)>c.height||b.width+(d>0?d:0)>c.width?a.setStyle("position","absolute"):a.setStyle("position","fixed")),this.move(this._.moved?this._.position.x:d,this._.moved?this._.position.y:e)},foreach:function(a){for(var b in this._.contents)for(var c in this._.contents[b])a.call(this,this._.contents[b][c]);return this},reset:function(){var a=function(a){a.reset&&a.reset(1)};return function(){return this.foreach(a),this}}(),setupContent:function(){var a=arguments;this.foreach(function(b){b.setup&&b.setup.apply(b,a)})},commitContent:function(){var a=arguments;this.foreach(function(b){CKEDITOR.env.ie&&this._.currentFocusIndex==b.focusIndex&&b.getInputElement().$.blur(),b.commit&&b.commit.apply(b,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{}),this._.editor.fire("dialogHide",this),this.selectPage(this._.tabIdList[0]);var a=this._.element;for(a.setStyle("display","none"),this.parts.dialog.setStyle("visibility","hidden"),C(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst();b.setStyle("z-index",parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else n(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=10;else{CKEDITOR.dialog._.currentZIndex=null,a.removeListener("keydown",z),a.removeListener("keyup",A);var c=this._.editor;c.focus(),setTimeout(function(){c.focusManager.unlock(),CKEDITOR.env.iOS&&c.window.focus()},0)}delete this._.parentDialog,this.foreach(function(a){a.resetInitValue&&a.resetInitValue()}),this.setState(CKEDITOR.DIALOG_STATE_IDLE)}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var b=[],c=a.label?' title="'+CKEDITOR.tools.htmlEncode(a.label)+'"':"",d=CKEDITOR.dialog._.uiElementBuilders.vbox.build(this,{type:"vbox",className:"cke_dialog_page_contents",children:a.elements,expand:!!a.expand,padding:a.padding,style:a.style||"width: 100%;"},b),e=this._.contents[a.id]={},f=d.getChild(),g=0;d=f.shift();)d.notAllowed||"hbox"==d.type||"vbox"==d.type||g++,e[d.id]=d,"function"==typeof d.getChild&&f.push.apply(f,d.getChild());g||(a.hidden=!0),b=CKEDITOR.dom.element.createFromHtml(b.join("")),b.setAttribute("role","tabpanel"),d=CKEDITOR.env,e="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber(),c=CKEDITOR.dom.element.createFromHtml(['"].join("")),b.setAttribute("aria-labelledby",e),this._.tabs[a.id]=[c,b],this._.tabIdList.push(a.id),!a.hidden&&this._.pageCount++,this._.lastTab=c,this.updateStyle(),b.setAttribute("name",a.id),b.appendTo(this.parts.contents),c.unselectable(),this.parts.tabs.append(c),a.accessKey&&(B(this,this,"CTRL+"+a.accessKey,E,D),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!this._.tabs[a][0].hasClass("cke_dialog_tab_disabled")&&!1!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var b in this._.tabs){var d=this._.tabs[b][0],e=this._.tabs[b][1];b!=a&&(d.removeClass("cke_dialog_tab_selected"),e.hide()),e.setAttribute("aria-hidden",b!=a)}var f=this._.tabs[a];f[0].addClass("cke_dialog_tab_selected"),CKEDITOR.env.ie6Compat||CKEDITOR.env.ie7Compat?(c(f[1]),f[1].show(),setTimeout(function(){c(f[1],1)},0)):f[1].show(),this._.currentTabId=a,this._.currentTabIndex=CKEDITOR.tools.indexOf(this._.tabIdList,a)}},updateStyle:function(){this.parts.dialog[(1===this._.pageCount?"add":"remove")+"Class"]("cke_single_page")},hidePage:function(b){var c=this._.tabs[b]&&this._.tabs[b][0];c&&1!=this._.pageCount&&c.isVisible()&&(b==this._.currentTabId&&this.selectPage(a.call(this)),c.hide(),this._.pageCount--,this.updateStyle())},showPage:function(a){(a=this._.tabs[a]&&this._.tabs[a][0])&&(a.show(),this._.pageCount++,this.updateStyle())},getElement:function(){return this._.element},getName:function(){return this._.name},getContentElement:function(a,b){var c=this._.contents[a];return c&&c[b]},getValueOf:function(a,b){return this.getContentElement(a,b).getValue()},setValueOf:function(a,b,c){return this.getContentElement(a,b).setValue(c)},getButton:function(a){return this._.buttons[a]},click:function(a){return this._.buttons[a].click()},disableButton:function(a){return this._.buttons[a].disable()},enableButton:function(a){return this._.buttons[a].enable()},getPageCount:function(){return this._.pageCount},getParentEditor:function(){return this._.editor},getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement()},addFocusable:function(a,b){if("undefined"==typeof b)b=this._.focusList.length,this._.focusList.push(new g(this,a,b));else{this._.focusList.splice(b,0,new g(this,a,b));for(var c=b+1;c=0;d--)c[d].dialog!=a&&c[d].uiElement!=a||c.splice(d,1);0===c.length&&delete y[b]}},D=function(a,b){a._.accessKeyMap[b]&&a.selectPage(a._.accessKeyMap[b])},E=function(){};!function(){CKEDITOR.ui.dialog={uiElement:function(a,b,c,d,e,f,g){if(!(4>arguments.length)){var h=(d.call?d(b):d)||"div",i=["<",h," "],j=(e&&e.call?e(b):e)||{},k=(f&&f.call?f(b):f)||{},l=(g&&g.call?g.call(this,a,b):g)||"",m=this.domId=k.id||CKEDITOR.tools.getNextId()+"_uiElement";b.requiredContent&&!a.getParentEditor().filter.check(b.requiredContent)&&(j.display="none",this.notAllowed=!0),k.id=m;var n={};b.type&&(n["cke_dialog_ui_"+b.type]=1),b.className&&(n[b.className]=1),b.disabled&&(n.cke_disabled=1);for(var o=k["class"]&&k["class"].split?k["class"].split(" "):[],m=0;m=0;m--)""===n[m]&&n.splice(m,1);0",l,""),c.push(i.join("")),(this._||(this._={})).dialog=a,"boolean"==typeof b.isChanged&&(this.isChanged=function(){return b.isChanged}),"function"==typeof b.isChanged&&(this.isChanged=b.isChanged),"function"==typeof b.setValue&&(this.setValue=CKEDITOR.tools.override(this.setValue,function(a){return function(c){a.call(this,b.setValue.call(this,c))}})),"function"==typeof b.getValue&&(this.getValue=CKEDITOR.tools.override(this.getValue,function(a){return function(){return b.getValue.call(this,a.call(this))}})),CKEDITOR.event.implementOn(this),this.registerEvents(b),this.accessKeyUp&&this.accessKeyDown&&b.accessKey&&B(this,a,"CTRL+"+b.accessKey);var p=this;a.on("load",function(){var b=p.getInputElement();if(b){var c=p.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?"cke_dialog_ui_focused":"";b.on("focus",function(){a._.tabBarMode=!1,a._.hasFocus=!0,p.fire("focus"),c&&this.addClass(c)}),b.on("blur",function(){p.fire("blur"),c&&this.removeClass(c)})}}),CKEDITOR.tools.extend(this,b),this.keyboardFocusable&&(this.tabIndex=b.tabIndex||0,this.focusIndex=a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=p.focusIndex}))}},hbox:function(a,b,c,d,e){if(!(4>arguments.length)){this._||(this._={});var f,g=this._.children=b,h=e&&e.widths||null,i=e&&e.height||null,j={role:"presentation"};e&&e.align&&(j.align=e.align),CKEDITOR.ui.dialog.uiElement.call(this,a,e||{type:"hbox"},d,"table",{},j,function(){var a=[''];for(f=0;f",c[f],"")}return a.push(""),a.join("")})}},vbox:function(a,b,c,d,e){if(!(3>arguments.length)){this._||(this._={});var f=this._.children=b,g=e&&e.width||null,h=e&&e.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,e||{type:"vbox"},d,"div",null,{role:"presentation"},function(){var b=['");for(var d=0;d")}return b.push("
        "),b.join("")})}}}}(),CKEDITOR.ui.dialog.uiElement.prototype={getElement:function(){return CKEDITOR.document.getById(this.domId)},getInputElement:function(){return this.getElement()},getDialog:function(){return this._.dialog},setValue:function(a,b){return this.getInputElement().setValue(a),!b&&this.fire("change",{value:a}),this},getValue:function(){return this.getInputElement().getValue()},isChanged:function(){return!1},selectParentTab:function(){for(var a=this.getInputElement();(a=a.getParent())&&-1==a.$.className.search("cke_dialog_page_contents"););return a?(a=a.getAttribute("name"),this._.dialog._.currentTabId!=a&&this._.dialog.selectPage(a),this):this},focus:function(){return this.selectParentTab().getInputElement().focus(),this},registerEvents:function(a){var b,c,d=/^on([A-Z]\w+)/,e=function(a,b,c,d){b.on("load",function(){a.getInputElement().on(c,d,a)})};for(c in a)(b=c.match(d))&&(this.eventProcessors[c]?this.eventProcessors[c].call(this,this._.dialog,a[c]):e(this,this._.dialog,b[1].toLowerCase(),a[c]));return this},eventProcessors:{onLoad:function(a,b){a.on("load",b,this)},onShow:function(a,b){a.on("show",b,this)},onHide:function(a,b){a.on("hide",b,this)}},accessKeyDown:function(){this.focus()},accessKeyUp:function(){},disable:function(){var a=this.getElement();this.getInputElement().setAttribute("disabled","true"),a.addClass("cke_disabled")},enable:function(){var a=this.getElement();this.getInputElement().removeAttribute("disabled"),a.removeClass("cke_disabled")},isEnabled:function(){return!this.getElement().hasClass("cke_disabled")},isVisible:function(){return this.getInputElement().isVisible()},isFocusable:function(){return!(!this.isEnabled()||!this.isVisible())}},CKEDITOR.ui.dialog.hbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getChild:function(a){return 1>arguments.length?this._.children.concat():(a.splice||(a=[a]),2>a.length?this._.children[a[0]]:this._.children[a[0]]&&this._.children[a[0]].getChild?this._.children[a[0]].getChild(a.slice(1,a.length)):null)}},!0),CKEDITOR.ui.dialog.vbox.prototype=new CKEDITOR.ui.dialog.hbox,function(){var a={build:function(a,b,c){for(var d,e=b.children,f=[],g=[],h=0;h=700}]],italic:["em","i",["span",function(a){return"italic"==a.styles["font-style"]}]],underline:["u",["span",function(a){return"underline"==a.styles["text-decoration"]}]],strike:["s","strike",["span",function(a){return"line-through"==a.styles["text-decoration"]}]],subscript:["sub"],superscript:["sup"]},e=a.config,f=a.lang.basicstyles;c("Bold",f.bold,"bold",e.coreStyles_bold),c("Italic",f.italic,"italic",e.coreStyles_italic),c("Underline",f.underline,"underline",e.coreStyles_underline),c("Strike",f.strike,"strike",e.coreStyles_strike),c("Subscript",f.subscript,"subscript",e.coreStyles_subscript),c("Superscript",f.superscript,"superscript",e.coreStyles_superscript),a.setKeystroke([[CKEDITOR.CTRL+66,"bold"],[CKEDITOR.CTRL+73,"italic"],[CKEDITOR.CTRL+85,"underline"]])}}),CKEDITOR.config.coreStyles_bold={element:"strong",overrides:"b"},CKEDITOR.config.coreStyles_italic={element:"em",overrides:"i"},CKEDITOR.config.coreStyles_underline={element:"u"},CKEDITOR.config.coreStyles_strike={element:"s",overrides:"strike"},CKEDITOR.config.coreStyles_subscript={element:"sub"},CKEDITOR.config.coreStyles_superscript={element:"sup"},function(){var a={exec:function(a){var b=a.getCommand("blockquote").state,c=a.getSelection(),d=c&&c.getRanges()[0];if(d){var e=c.createBookmarks();if(CKEDITOR.env.ie){var f,g=e[0].startNode,h=e[0].endNode;if(g&&"blockquote"==g.getParent().getName())for(f=g;f=f.getNext();)if(f.type==CKEDITOR.NODE_ELEMENT&&f.isBlockBoundary()){g.move(f,!0);break}if(h&&"blockquote"==h.getParent().getName())for(f=h;f=f.getPrevious();)if(f.type==CKEDITOR.NODE_ELEMENT&&f.isBlockBoundary()){h.move(f);break}}var i=d.createIterator();if(i.enlargeBr=a.config.enterMode!=CKEDITOR.ENTER_BR,b==CKEDITOR.TRISTATE_OFF){for(g=[];b=i.getNextParagraph();)g.push(b);for(1>g.length&&(b=a.document.createElement(a.config.enterMode==CKEDITOR.ENTER_P?"p":"div"),h=e.shift(),d.insertNode(b),b.append(new CKEDITOR.dom.text("\ufeff",a.document)),d.moveToBookmark(h),d.selectNodeContents(b),d.collapse(!0),h=d.createBookmark(),g.push(b),e.unshift(h)),f=g[0].getParent(),d=[],h=0;h=0;h--){d=g[h];a:{f=d;for(var i=0,j=f.getChildCount(),k=void 0;j>i&&(k=f.getChild(i));i++)if(k.type==CKEDITOR.NODE_ELEMENT&&k.isBlockBoundary()){f=!1;break a}f=!0}f&&d.remove()}if(a.config.enterMode==CKEDITOR.ENTER_BR)for(d=!0;b.length;)if(i=b.shift(),"div"==i.getName()){for(h=new CKEDITOR.dom.documentFragment(a.document),!d||!i.getPrevious()||i.getPrevious().type==CKEDITOR.NODE_ELEMENT&&i.getPrevious().isBlockBoundary()||h.append(a.document.createElement("br")),d=i.getNext()&&!(i.getNext().type==CKEDITOR.NODE_ELEMENT&&i.getNext().isBlockBoundary());i.getFirst();)i.getFirst().remove().appendTo(h);d&&h.append(a.document.createElement("br")),h.replace(i),d=!1}}c.selectBookmarks(e),a.focus()}},refresh:function(a,b){this.setState(a.elementPath(b.block||b.blockLimit).contains("blockquote",1)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)},context:"blockquote",allowedContent:"blockquote",requiredContent:"blockquote"};CKEDITOR.plugins.add("blockquote",{init:function(b){b.blockless||(b.addCommand("blockquote",a),b.ui.addButton&&b.ui.addButton("Blockquote",{label:b.lang.blockquote.toolbar,command:"blockquote",toolbar:"blocks,10"}))}})}(),function(){function a(a,b,c){return b.type||(b.type="auto"),c&&!1===a.fire("beforePaste",b)||!b.dataValue&&b.dataTransfer.isEmpty()?!1:(b.dataValue||(b.dataValue=""),CKEDITOR.env.gecko&&"drop"==b.method&&a.toolbox&&a.once("afterPaste",function(){a.toolbox.focus()}),a.fire("paste",b))}function b(b){function c(){var a=b.editable();if(CKEDITOR.plugins.clipboard.isCustomCopyCutSupported){var c=function(a){b.readOnly&&"cut"==a.name||p.initPasteDataTransfer(a,b),a.data.preventDefault()};a.on("copy",c),a.on("cut",c),a.on("cut",function(){b.readOnly||b.extractSelectedHtml()},null,null,999)}a.on(p.mainPasteEvent,function(a){"beforepaste"==p.mainPasteEvent&&q||m(a)}),"beforepaste"==p.mainPasteEvent&&(a.on("paste",function(a){r||(f(),a.data.preventDefault(),m(a),h("paste")||b.openDialog("paste"))}),a.on("contextmenu",g,null,null,0),a.on("beforepaste",function(a){!a.data||a.data.$.ctrlKey||a.data.$.shiftKey||g()},null,null,0)),a.on("beforecut",function(){!q&&i(b)});var d;a.attachListener(CKEDITOR.env.ie?a:b.document.getDocumentElement(),"mouseup",function(){d=setTimeout(function(){n()},0)}),b.on("destroy",function(){clearTimeout(d)}),a.on("keyup",n)}function d(a){return{type:a,canUndo:"cut"==a,startDisabled:!0,exec:function(){"cut"==this.type&&i();var a,c=this.type;if(CKEDITOR.env.ie)a=h(c);else try{a=b.document.$.execCommand(c,!1,null)}catch(d){a=!1}return a||b.showNotification(b.lang.clipboard[this.type+"Error"]),a}}}function e(){return{canUndo:!1,async:!0,exec:function(b,c){var d=this,e=function(c,e){c&&a(b,c,!!e),b.fire("afterCommandExec",{name:"paste",command:d,returnValue:!!c})};"string"==typeof c?e({dataValue:c,method:"paste",dataTransfer:p.initPasteDataTransfer()},1):b.getClipboardData(e)}}}function f(){r=1,setTimeout(function(){r=0},100)}function g(){q=1,setTimeout(function(){q=0},10)}function h(a){var c=b.document,d=c.getBody(),e=!1,f=function(){e=!0};return d.on(a,f),7]+data-cke-bookmark[^<]*?<\/span>/gi,""),e&&a(b,d)})}function n(){if("wysiwyg"==b.mode){var a=o("paste");b.getCommand("cut").setState(o("cut")),b.getCommand("copy").setState(o("copy")),b.getCommand("paste").setState(a),b.fire("pasteState",a)}}function o(a){if(s&&a in{paste:1,cut:1})return CKEDITOR.TRISTATE_DISABLED;if("paste"==a)return CKEDITOR.TRISTATE_OFF;a=b.getSelection();var c=a.getRanges();return a.getType()==CKEDITOR.SELECTION_NONE||1==c.length&&c[0].collapsed?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF}var p=CKEDITOR.plugins.clipboard,q=0,r=0,s=0;!function(){b.on("key",l),b.on("contentDom",c),b.on("selectionChange",function(a){s=a.data.selection.getRanges()[0].checkReadOnly(),n()}),b.contextMenu&&b.contextMenu.addListener(function(a,b){return s=b.getRanges()[0].checkReadOnly(),{cut:o("cut"),copy:o("copy"),paste:o("paste")}})}(),function(){function a(a,c,d,e,f){var g=b.lang.clipboard[c];b.addCommand(c,d),b.ui.addButton&&b.ui.addButton(a,{label:g,command:c,toolbar:"clipboard,"+e}),b.addMenuItems&&b.addMenuItem(c,{label:g,command:c,group:"clipboard",order:f})}a("Cut","cut",d("cut"),10,1),a("Copy","copy",d("copy"),20,4),a("Paste","paste",e(),30,8)}(),b.getClipboardData=function(a,c){function d(a){a.removeListener(),a.cancel(),c(a.data)}function e(a){a.removeListener(),a.cancel(),i=!0,c({type:h,dataValue:a.data.dataValue,dataTransfer:a.data.dataTransfer,method:"paste"})}function f(){this.customTitle=a&&a.title}var g=!1,h="auto",i=!1;c||(c=a,a=null),b.on("paste",d,null,null,0),b.on("beforePaste",function(a){a.removeListener(),g=!0,h=a.data.type},null,null,1e3),!1===k()&&(b.removeListener("paste",d),g&&b.fire("pasteDialog",f)?(b.on("pasteDialogCommit",e),b.on("dialogHide",function(a){a.removeListener(),a.data.removeListener("pasteDialogCommit",e),setTimeout(function(){i||c(null)},10)})):c(null))}}function c(a){if(CKEDITOR.env.webkit){if(!a.match(/^[^<]*$/g)&&!a.match(/^(
        <\/div>|
        [^<]*<\/div>)*$/gi))return"html"}else if(CKEDITOR.env.ie){if(!a.match(/^([^<]|)*$/gi)&&!a.match(/^(

        ([^<]|)*<\/p>|(\r\n))*$/gi))return"html"}else{if(!CKEDITOR.env.gecko)return"html";if(!a.match(/^([^<]|)*$/gi))return"html"}return"htmlifiedtext"}function d(a,b){function c(a){return CKEDITOR.tools.repeat("

        ",~~(a/2))+(1==a%2?"
        ":"")}return b=b.replace(/\s+/g," ").replace(/> +<").replace(/
        /gi,"
        "),b=b.replace(/<\/?[A-Z]+>/g,function(a){return a.toLowerCase()}),b.match(/^[^<]$/)?b:(CKEDITOR.env.webkit&&-1")&&(b=b.replace(/^(

        (
        |)<\/div>)(?!$|(
        (
        |)<\/div>))/g,"
        ").replace(/^(
        (
        |)<\/div>){2}(?!$)/g,"
        "),b.match(/
        (
        |)<\/div>/)&&(b="

        "+b.replace(/(

        (
        |)<\/div>)+/g,function(a){return c(a.split("
        ").length+1)})+"

        "),b=b.replace(/<\/div>
        /g,"
        "),b=b.replace(/<\/?div>/g,"")),CKEDITOR.env.gecko&&a.enterMode!=CKEDITOR.ENTER_BR&&(CKEDITOR.env.gecko&&(b=b.replace(/^

        $/,"
        ")),-1
        ")&&(b="

        "+b.replace(/(
        ){2,}/g,function(a){return c(a.length/4)})+"

        ")),g(a,b))}function e(){function a(){var a,b={};for(a in CKEDITOR.dtd)"$"!=a.charAt(0)&&"div"!=a&&"span"!=a&&(b[a]=1);return b}var b={};return{get:function(c){return"plain-text"==c?b.plainText||(b.plainText=new CKEDITOR.filter("br")):"semantic-content"==c?((c=b.semanticContent)||(c=new CKEDITOR.filter,c.allow({$1:{elements:a(),attributes:!0,styles:!1,classes:!1}}),c=b.semanticContent=c),c):c?new CKEDITOR.filter(c):null}}}function f(a,b,c){b=CKEDITOR.htmlParser.fragment.fromHtml(b);var d=new CKEDITOR.htmlParser.basicWriter;return c.applyTo(b,!0,!1,a.activeEnterMode),b.writeHtml(d),d.getHtml()}function g(a,b){return a.enterMode==CKEDITOR.ENTER_BR?b=b.replace(/(<\/p>

        )+/g,function(a){return CKEDITOR.tools.repeat("
        ",a.length/7*2)}).replace(/<\/?p>/g,""):a.enterMode==CKEDITOR.ENTER_DIV&&(b=b.replace(/<(\/)?p>/g,"<$1div>")),b}function h(a){a.data.preventDefault(),a.data.$.dataTransfer.dropEffect="none"}function i(b){var c=CKEDITOR.plugins.clipboard;b.on("contentDom",function(){function d(c,d,e){d.select(),a(b,{dataTransfer:e,method:"drop"},1),e.sourceEditor.fire("saveSnapshot"),e.sourceEditor.editable().extractHtmlFromRange(c),e.sourceEditor.getSelection().selectRanges([c]),e.sourceEditor.fire("saveSnapshot")}function e(d,e){d.select(),a(b,{dataTransfer:e,method:"drop"},1),c.resetDragDataTransfer()}function f(a,c,d){var e={$:a.data.$,target:a.data.getTarget()};c&&(e.dragRange=c),d&&(e.dropRange=d),!1===b.fire(a.name,e)&&a.data.preventDefault()}function g(a){return a.type!=CKEDITOR.NODE_ELEMENT&&(a=a.getParent()),a.getChildCount()}var h=b.editable(),i=CKEDITOR.plugins.clipboard.getDropTarget(b),j=b.ui.space("top"),k=b.ui.space("bottom");c.preventDefaultDropOnElement(j),c.preventDefaultDropOnElement(k),h.attachListener(i,"dragstart",f),h.attachListener(b,"dragstart",c.resetDragDataTransfer,c,null,1),h.attachListener(b,"dragstart",function(a){c.initDragDataTransfer(a,b)},null,null,2),h.attachListener(b,"dragstart",function(){var a=c.dragRange=b.getSelection().getRanges()[0];CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(c.dragStartContainerChildCount=a?g(a.startContainer):null,c.dragEndContainerChildCount=a?g(a.endContainer):null)},null,null,100),h.attachListener(i,"dragend",f),h.attachListener(b,"dragend",c.initDragDataTransfer,c,null,1),h.attachListener(b,"dragend",c.resetDragDataTransfer,c,null,100),h.attachListener(i,"dragover",function(a){var b=a.data.getTarget();b&&b.is&&b.is("html")?a.data.preventDefault():CKEDITOR.env.ie&&CKEDITOR.plugins.clipboard.isFileApiSupported&&a.data.$.dataTransfer.types.contains("Files")&&a.data.preventDefault()}),h.attachListener(i,"drop",function(a){if(!a.data.$.defaultPrevented){a.data.preventDefault();var d=a.data.getTarget();if(!d.isReadOnly()||d.type==CKEDITOR.NODE_ELEMENT&&d.is("html")){var d=c.getRangeAtDropPosition(a,b),e=c.dragRange;d&&f(a,e,d)}}},null,null,9999),h.attachListener(b,"drop",c.initDragDataTransfer,c,null,1),h.attachListener(b,"drop",function(a){if(a=a.data){var f=a.dropRange,g=a.dragRange,h=a.dataTransfer;h.getTransferType(b)==CKEDITOR.DATA_TRANSFER_INTERNAL?setTimeout(function(){c.internalDrop(g,f,h,b)},0):h.getTransferType(b)==CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?d(g,f,h):e(f,h)}},null,null,9999)})}CKEDITOR.plugins.add("clipboard",{requires:"dialog",init:function(a){var g,h=e();a.config.forcePasteAsPlainText?g="plain-text":a.config.pasteFilter?g=a.config.pasteFilter:!CKEDITOR.env.webkit||"pasteFilter"in a.config||(g="semantic-content"),a.pasteFilter=h.get(g),b(a),i(a),CKEDITOR.dialog.add("paste",CKEDITOR.getUrl(this.path+"dialogs/paste.js")),a.on("paste",function(b){if(b.data.dataTransfer||(b.data.dataTransfer=new CKEDITOR.plugins.clipboard.dataTransfer),!b.data.dataValue){var c=b.data.dataTransfer,d=c.getData("text/html");d?(b.data.dataValue=d,b.data.type="html"):(d=c.getData("text/plain"))&&(b.data.dataValue=a.editable().transformPlainTextToHtml(d),b.data.type="text")}},null,null,1),a.on("paste",function(a){var b=a.data.dataValue,c=CKEDITOR.dtd.$block;if(-1 <\/span>/gi," "),"html"!=a.data.type&&(b=b.replace(/]*>([^<]*)<\/span>/gi,function(a,b){return b.replace(/\t/g,"    ")})),-1')&&(a.data.startsWithEOL=1,a.data.preSniffing="html",b=b.replace(/
        /,"")),b=b.replace(/(<[^>]+) class="Apple-[^"]*"/gi,"$1")),b.match(/^<[^<]+cke_(editable|contents)/i)){var d,e,f=new CKEDITOR.dom.element("div");for(f.setHtml(b);1==f.getChildCount()&&(d=f.getFirst())&&d.type==CKEDITOR.NODE_ELEMENT&&(d.hasClass("cke_editable")||d.hasClass("cke_contents"));)f=e=d;e&&(b=e.getHtml().replace(/
        $/i,""))}CKEDITOR.env.ie?b=b.replace(/^ (?: |\r\n)?<(\w+)/g,function(b,d){return d.toLowerCase()in c?(a.data.preSniffing="html","<"+d):b}):CKEDITOR.env.webkit?b=b.replace(/<\/(\w+)>


        <\/div>$/,function(b,d){return d in c?(a.data.endsWithEOL=1,""):b}):CKEDITOR.env.gecko&&(b=b.replace(/(\s)
        $/,"$1")),a.data.dataValue=b},null,null,3),a.on("paste",function(b){b=b.data;var e,g=b.type,i=b.dataValue,j=a.config.clipboard_defaultContentType||"html",k=b.dataTransfer.getTransferType(a);e="html"==g||"html"==b.preSniffing?"html":c(i),"htmlifiedtext"==e&&(i=d(a.config,i)),"text"==g&&"html"==e?i=f(a,i,h.get("plain-text")):k==CKEDITOR.DATA_TRANSFER_EXTERNAL&&a.pasteFilter&&!b.dontFilter&&(i=f(a,i,a.pasteFilter)),b.startsWithEOL&&(i='
        '+i),b.endsWithEOL&&(i+='
        '),"auto"==g&&(g="html"==e||"html"==j?"html":"text"),b.type=g,b.dataValue=i,delete b.preSniffing,delete b.startsWithEOL,delete b.endsWithEOL},null,null,6),a.on("paste",function(b){b=b.data,b.dataValue&&(a.insertHtml(b.dataValue,b.type,b.range),setTimeout(function(){a.fire("afterPaste")},0))},null,null,1e3),a.on("pasteDialog",function(b){setTimeout(function(){a.openDialog("paste",b.data)},0)})}}),CKEDITOR.plugins.clipboard={isCustomCopyCutSupported:!CKEDITOR.env.ie&&!CKEDITOR.env.iOS,isCustomDataTypesSupported:!CKEDITOR.env.ie,isFileApiSupported:!CKEDITOR.env.ie||9CKEDITOR.env.version||b.isInline()?b:a.document},fixSplitNodesAfterDrop:function(a,b,c,d){function e(a,c,d){var e=a;return e.type==CKEDITOR.NODE_TEXT&&(e=a.getParent()),e.equals(c)&&d!=c.getChildCount()?(a=b.startContainer.getChild(b.startOffset-1),c=b.startContainer.getChild(b.startOffset),a&&a.type==CKEDITOR.NODE_TEXT&&c&&c.type==CKEDITOR.NODE_TEXT&&(d=a.getLength(),a.setText(a.getText()+c.getText()),c.remove(),b.setStart(a,d),b.collapse(!0)),!0):void 0}var f=b.startContainer;"number"==typeof d&&"number"==typeof c&&f.type==CKEDITOR.NODE_ELEMENT&&(e(a.startContainer,f,c)||e(a.endContainer,f,d))},isDropRangeAffectedByDragRange:function(a,b){var c=b.startContainer,d=b.endOffset;return!!(a.endContainer.equals(c)&&a.endOffset<=d||a.startContainer.getParent().equals(c)&&a.startContainer.getIndex()CKEDITOR.env.version&&this.fixSplitNodesAfterDrop(b,c,h.dragStartContainerChildCount,h.dragEndContainerChildCount),(g=this.isDropRangeAffectedByDragRange(b,c))||(f=b.createBookmark(!1)),h=c.clone().createBookmark(!1),g&&(f=b.createBookmark(!1)),b=f.startNode,c=f.endNode,g=h.startNode,c&&b.getPosition(g)&CKEDITOR.POSITION_PRECEDING&&c.getPosition(g)&CKEDITOR.POSITION_FOLLOWING&&g.insertBefore(b),b=e.createRange(),b.moveToBookmark(f),i.extractHtmlFromRange(b,1),c=e.createRange(),c.moveToBookmark(h),a(e,{dataTransfer:d,method:"drop",range:c},1),e.fire("unlockSnapshot")},getRangeAtDropPosition:function(a,b){var c=a.data.$,d=c.clientX,e=c.clientY,f=b.getSelection(!0).getRanges()[0],g=b.createRange();if(a.data.testRange)return a.data.testRange;if(document.caretRangeFromPoint)c=b.document.$.caretRangeFromPoint(d,e),g.setStart(CKEDITOR.dom.node(c.startContainer),c.startOffset),g.collapse(!0);else if(c.rangeParent)g.setStart(CKEDITOR.dom.node(c.rangeParent),c.rangeOffset),g.collapse(!0);else{if(CKEDITOR.env.ie&&8i&&!h;i++){if(!h)try{c.moveToPoint(d,e-i),h=!0}catch(j){}if(!h)try{c.moveToPoint(d,e+i),h=!0}catch(k){}}if(h){var l="cke-temp-"+(new Date).getTime();c.pasteHTML('​');var m=b.document.getById(l);g.moveToPosition(m,CKEDITOR.POSITION_BEFORE_START),m.remove()}else{var n,o=b.document.$.elementFromPoint(d,e),p=new CKEDITOR.dom.element(o);if(p.equals(b.editable())||"html"==p.getName())return f&&f.startContainer&&!f.startContainer.equals(b.editable())?f:null;n=p.getClientRect(),d/i,bodyRegExp:/([\s\S]*)<\/body>/i,fragmentRegExp:/\x3c!--(?:Start|End)Fragment--\x3e/g,data:{},files:[],normalizeType:function(a){return a=a.toLowerCase(),"text"==a||"text/plain"==a?"Text":"url"==a?"URL":a}},this.id=this.getData(j),this.id||(this.id="Text"==j?"":"cke-"+CKEDITOR.tools.getUniqueId()),"Text"!=j)try{this.$.setData(j,this.id)}catch(c){}b&&(this.sourceEditor=b,this.setData("text/html",b.getSelectedHtml(1)),"Text"==j||this.getData("text/plain")||this.setData("text/plain",b.getSelection().getSelectedText()))},CKEDITOR.DATA_TRANSFER_INTERNAL=1,CKEDITOR.DATA_TRANSFER_CROSS_EDITORS=2,CKEDITOR.DATA_TRANSFER_EXTERNAL=3,CKEDITOR.plugins.clipboard.dataTransfer.prototype={getData:function(a){a=this._.normalizeType(a);var b=this._.data[a];if(void 0===b||null===b||""===b)try{b=this.$.getData(a)}catch(c){}return void 0!==b&&null!==b&&""!==b||(b=""),"text/html"==a?(b=b.replace(this._.metaRegExp,""),(a=this._.bodyRegExp.exec(b))&&a.length&&(b=a[1],b=b.replace(this._.fragmentRegExp,""))):"Text"==a&&CKEDITOR.env.gecko&&this.getFilesCount()&&"file://"==b.substring(0,7)&&(b=""),b},setData:function(a,b){if(a=this._.normalizeType(a),this._.data[a]=b,CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||"URL"==a||"Text"==a){"Text"==j&&"Text"==a&&(this.id=b);try{this.$.setData(a,b)}catch(c){}}},getTransferType:function(a){return this.sourceEditor?this.sourceEditor==a?CKEDITOR.DATA_TRANSFER_INTERNAL:CKEDITOR.DATA_TRANSFER_CROSS_EDITORS:CKEDITOR.DATA_TRANSFER_EXTERNAL},cacheData:function(){function a(a){a=d._.normalizeType(a);var b=d.getData(a);b&&(d._.data[a]=b)}if(this.$){var b,c,d=this;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(b=0;b{frame}
        '),b=CKEDITOR.addTemplate("panel-frame",''),c=CKEDITOR.addTemplate("panel-frame-inner",'{css}');CKEDITOR.ui.panel.prototype={render:function(d,e){this.getHolderElement=function(){var a=this._.holder;if(!a){if(this.isFramed){var a=this.document.getById(this.id+"_frame"),b=a.getParent(),a=a.getFrameDocument();CKEDITOR.env.iOS&&b.setStyles({overflow:"scroll","-webkit-overflow-scrolling":"touch"}),b=CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function(){this.isLoaded=!0,this.onLoad&&this.onLoad()},this)),a.write(c.output(CKEDITOR.tools.extend({css:CKEDITOR.tools.buildStyleHtml(this.css),onload:"window.parent.CKEDITOR.tools.callFunction("+b+");"},f))),a.getWindow().$.CKEDITOR=CKEDITOR,a.on("keydown",function(a){var b=a.data.getKeystroke(),c=this.document.getById(this.id).getAttribute("dir");this._.onKeyDown&&!1===this._.onKeyDown(b)?a.data.preventDefault():(27==b||b==("rtl"==c?39:37))&&this.onEscape&&!1===this.onEscape(b)&&a.data.preventDefault()},this),a=a.getBody(),a.unselectable(),CKEDITOR.env.air&&CKEDITOR.tools.callFunction(b)}else a=this.document.getById(this.id);this._.holder=a}return a};var f={editorId:d.id,id:this.id,langCode:d.langCode,dir:d.lang.dir,cls:this.className,frame:"",env:CKEDITOR.env.cssClass,"z-index":d.config.baseFloatZIndex+1};if(this.isFramed){var g=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie?"javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())":"";f.frame=b.output({id:this.id+"_frame",src:g})}return g=a.output(f),e&&e.push(g),g},addBlock:function(a,b){return b=this._.blocks[a]=b instanceof CKEDITOR.ui.panel.block?b:new CKEDITOR.ui.panel.block(this.getHolderElement(),b),this._.currentBlock||this.showBlock(a),b},getBlock:function(a){return this._.blocks[a]},showBlock:function(a){a=this._.blocks[a];var b=this._.currentBlock,c=!this.forceIFrame||CKEDITOR.env.ie?this._.holder:this.document.getById(this.id+"_frame");return b&&b.hide(),this._.currentBlock=a,CKEDITOR.fire("ariaWidget",c),a._.focusIndex=-1,this._.onKeyDown=a.onKeyDown&&CKEDITOR.tools.bind(a.onKeyDown,a),a.show(),a},destroy:function(){this.element&&this.element.remove()}},CKEDITOR.ui.panel.block=CKEDITOR.tools.createClass({$:function(a,b){this.element=a.append(a.getDocument().createElement("div",{attributes:{tabindex:-1,"class":"cke_panel_block"},styles:{display:"none"}})),b&&CKEDITOR.tools.extend(this,b),this.element.setAttributes({role:this.attributes.role||"presentation","aria-label":this.attributes["aria-label"],title:this.attributes.title||this.attributes["aria-label"]}),this.keys={},this._.focusIndex=-1,this.element.disableContextMenu()},_:{markItem:function(a){-1!=a&&(a=this.element.getElementsByTag("a").getItem(this._.focusIndex=a),CKEDITOR.env.webkit&&a.getDocument().getWindow().focus(),a.focus(),this.onMark&&this.onMark(a))}},proto:{show:function(){this.element.setStyle("display","")},hide:function(){this.onHide&&!0===this.onHide.call(this)||this.element.setStyle("display","none")},onKeyDown:function(a,b){var c=this.keys[a];switch(c){case"next":for(var d,e=this._.focusIndex,c=this.element.getElementsByTag("a");d=c.getItem(++e);)if(d.getAttribute("_cke_focus")&&d.$.offsetWidth){this._.focusIndex=e,d.focus();break}return d||b?!1:(this._.focusIndex=-1,this.onKeyDown(a,1));case"prev":for(e=this._.focusIndex,c=this.element.getElementsByTag("a");e>0&&(d=c.getItem(--e));){if(d.getAttribute("_cke_focus")&&d.$.offsetWidth){this._.focusIndex=e,d.focus();break}d=null}return d||b?!1:(this._.focusIndex=c.count(),this.onKeyDown(a,1));case"click":case"mouseup":return e=this._.focusIndex,(d=e>=0&&this.element.getElementsByTag("a").getItem(e))&&(d.$[c]?d.$[c]():d.$["on"+c]()),!1}return!0}}})}(),CKEDITOR.plugins.add("floatpanel",{requires:"panel"}),function(){function a(a,c,d,e,f){f=CKEDITOR.tools.genKey(c.getUniqueId(),d.getUniqueId(),a.lang.dir,a.uiColor||"",e.css||"",f||"");var g=b[f];return g||(g=b[f]=new CKEDITOR.ui.panel(c,e),g.element=d.append(CKEDITOR.dom.element.createFromHtml(g.render(a),c)),g.element.setStyles({display:"none",position:"absolute"})),g}var b={};CKEDITOR.ui.floatPanel=CKEDITOR.tools.createClass({$:function(b,c,d,e){function f(){j.hide()}d.forceIFrame=1,d.toolbarRelated&&b.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&(c=CKEDITOR.document.getById("cke_"+b.name));var g=c.getDocument();e=a(b,g,c,d,e||0);var h=e.element,i=h.getFirst(),j=this;h.disableContextMenu(),this.element=h,this._={editor:b,panel:e,parentElement:c,definition:d,document:g,iframe:i,children:[],dir:b.lang.dir,showBlockParams:null},b.on("mode",f),b.on("resize",f),g.getWindow().on("resize",function(){this.reposition()},this)},proto:{addBlock:function(a,b){return this._.panel.addBlock(a,b)},addListBlock:function(a,b){return this._.panel.addListBlock(a,b)},getBlock:function(a){return this._.panel.getBlock(a)},showBlock:function(a,b,c,d,e,f){var g=this._.panel,h=g.showBlock(a);this._.showBlockParams=[].slice.call(arguments),this.allowBlur(!1);var i=this._.editor.editable();this._.returnFocus=i.hasFocus?i:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement),this._.hideTimeout=0;var j=this.element,i=this._.iframe,i=CKEDITOR.env.ie&&!CKEDITOR.env.edge?i:new CKEDITOR.dom.window(i.$.contentWindow),k=j.getDocument(),l=this._.parentElement.getPositionedAncestor(),m=b.getDocumentPosition(k),k=l?l.getDocumentPosition(k):{x:0,y:0},n="rtl"==this._.dir,o=m.x+(d||0)-k.x,p=m.y+(e||0)-k.y;!n||1!=c&&4!=c?n||2!=c&&3!=c||(o+=b.$.offsetWidth-1):o+=b.$.offsetWidth,3!=c&&4!=c||(p+=b.$.offsetHeight-1),this._.panel._.offsetParentId=b.getId(),j.setStyles({top:p+"px",left:0,display:""}),j.setOpacity(0),j.getFirst().removeStyle("width"),this._.editor.focusManager.add(i),this._.blurSet||(CKEDITOR.event.useCapture=!0,i.on("blur",function(a){function b(){delete this._.returnFocus,this.hide()}this.allowBlur()&&a.data.getPhase()==CKEDITOR.EVENT_PHASE_AT_TARGET&&this.visible&&!this._.activeChild&&(CKEDITOR.env.iOS?this._.hideTimeout||(this._.hideTimeout=CKEDITOR.tools.setTimeout(b,0,this)):b.call(this))},this),i.on("focus",function(){this._.focused=!0,this.hideChild(),this.allowBlur(!0)},this),CKEDITOR.env.iOS&&(i.on("touchstart",function(){clearTimeout(this._.hideTimeout)},this),i.on("touchend",function(){this._.hideTimeout=0,this.focus()},this)),CKEDITOR.event.useCapture=!1,this._.blurSet=1),g.onEscape=CKEDITOR.tools.bind(function(a){return this.onEscape&&!1===this.onEscape(a)?!1:void 0},this),CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.tools.bind(function(){var a=j;if(a.removeStyle("width"),h.autoSize){var b=h.element.getDocument(),b=(CKEDITOR.env.webkit||CKEDITOR.env.edge?h.element:b.getBody()).$.scrollWidth;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&b>0&&(b+=(a.$.offsetWidth||0)-(a.$.clientWidth||0)+3),a.setStyle("width",b+10+"px"),b=h.element.$.scrollHeight,CKEDITOR.env.ie&&CKEDITOR.env.quirks&&b>0&&(b+=(a.$.offsetHeight||0)-(a.$.clientHeight||0)+3),a.setStyle("height",b+"px"),g._.currentBlock.element.setStyle("display","none").removeStyle("display")}else a.removeStyle("height");n&&(o-=j.$.offsetWidth),j.setStyle("left",o+"px");var b=g.element.getWindow(),a=j.$.getBoundingClientRect(),b=b.getViewPaneSize(),c=a.width||a.right-a.left,d=a.height||a.bottom-a.top,e=n?a.right:b.width-a.left,i=n?b.width-a.right:a.left;n?c>e&&(o=i>c?o+c:b.width>c?o-a.left:o-a.right+b.width):c>e&&(o=i>c?o-c:b.width>c?o-a.right+b.width:o-a.left),c=a.top,b.height-a.topd?p-d:b.height>d?p-a.bottom+b.height:p-a.top),CKEDITOR.env.ie&&(b=a=new CKEDITOR.dom.element(j.$.offsetParent),"html"==b.getName()&&(b=b.getDocument().getBody()),"rtl"==b.getComputedStyle("direction")&&(o=CKEDITOR.env.ie8Compat?o-2*j.getDocument().getDocumentElement().$.scrollLeft:o-(a.$.scrollWidth-a.$.clientWidth)));var k,a=j.getFirst();(k=a.getCustomData("activePanel"))&&k.onHide&&k.onHide.call(this,1),a.setCustomData("activePanel",this),j.setStyles({top:p+"px",left:o+"px"}),j.setOpacity(1),f&&f()},this);g.isLoaded?a():g.onLoad=a,CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.env.webkit&&CKEDITOR.document.getWindow().getScrollPosition().y;this.focus(),h.element.focus(),CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=a),this.allowBlur(!0),this._.editor.fire("panelShow",this)},0,this)},CKEDITOR.env.air?200:0,this),this.visible=1,this.onShow&&this.onShow.call(this)},reposition:function(){var a=this._.showBlockParams;this.visible&&this._.showBlockParams&&(this.hide(),this.showBlock.apply(this,a))},focus:function(){if(CKEDITOR.env.webkit){var a=CKEDITOR.document.getActive();a&&!a.equals(this._.iframe)&&a.$.blur()}(this._.lastFocused||this._.iframe.getFrameDocument().getWindow()).focus()},blur:function(){var a=this._.iframe.getFrameDocument().getActive();a&&a.is("a")&&(this._.lastFocused=a)},hide:function(a){!this.visible||this.onHide&&!0===this.onHide.call(this)||(this.hideChild(),CKEDITOR.env.gecko&&this._.iframe.getFrameDocument().$.activeElement.blur(),this.element.setStyle("display","none"),this.visible=0,this.element.getFirst().removeCustomData("activePanel"),(a=a&&this._.returnFocus)&&(CKEDITOR.env.webkit&&a.type&&a.getWindow().$.focus(),a.focus()),delete this._.lastFocused,this._.showBlockParams=null,this._.editor.fire("panelHide",this))},allowBlur:function(a){var b=this._.panel;return void 0!==a&&(b.allowBlur=a),b.allowBlur},showAsChild:function(a,b,c,d,e,f){this._.activeChild==a&&a._.panel._.offsetParentId==c.getId()||(this.hideChild(),a.onHide=CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=a,this._.focused=!1,a.showBlock(b,c,d,e,f),this.blur(),(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&setTimeout(function(){a.element.getChild(0).$.style.cssText+=""},100))},hideChild:function(a){var b=this._.activeChild;b&&(delete b.onHide,delete this._.activeChild,b.hide(),a&&this.focus())}}}),CKEDITOR.on("instanceDestroyed",function(){var a,c=CKEDITOR.tools.isEmpty(CKEDITOR.instances);for(a in b){var d=b[a];c?d.destroy():d.element.hide()}c&&(b={})})}(),CKEDITOR.plugins.add("menu",{requires:"floatpanel",beforeInit:function(a){for(var b=a.config.menu_groups.split(","),c=a._.menuGroups={},d=a._.menuItems={},e=0;eb.group?1:a.orderb.order?1:0})}var b=''),c=CKEDITOR.addTemplate("menuItem",b+'{label}{arrowHtml}'),d=CKEDITOR.addTemplate("menuArrow",'{label}');CKEDITOR.menu=CKEDITOR.tools.createClass({$:function(a,b){b=this._.definition=b||{},this.id=CKEDITOR.tools.getNextId(),this.editor=a,this.items=[],this._.listeners=[],this._.level=b.level||1;var c=CKEDITOR.tools.extend({},b.panel,{css:[CKEDITOR.skin.getPath("editor")],level:this._.level-1,block:{}}),d=c.block.attributes=c.attributes||{};!d.role&&(d.role="menu"),this._.panelDefinition=c},_:{onShow:function(){var a=this.editor.getSelection(),b=a&&a.getStartElement(),c=this.editor.elementPath(),d=this._.listeners;this.removeAll();for(var e=0;e'],k=f.length,l=k&&f[0].group,m=0;k>m;m++){var n=f[m];l!=n.group&&(j.push(''),l=n.group),n.render(this,m,j)}j.push("
        "),i.setHtml(j.join("")),CKEDITOR.ui.fire("ready",this),this.parent?this.parent._.panel.showAsChild(h,this.id,b,c,d,e):h.showBlock(this.id,b,c,d,e),g.fire("menuShow",[h])}},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide(),this._.panel&&this._.panel.hide(a)}}}),CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,b,c){CKEDITOR.tools.extend(this,c,{order:0,className:"cke_menubutton__"+b}),this.group=a._.menuGroups[this.group],this.editor=a,this.name=b},proto:{render:function(a,b,e){var f=a.id+String(b),g="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,h="",i=g==CKEDITOR.TRISTATE_ON?"on":g==CKEDITOR.TRISTATE_DISABLED?"disabled":"off";this.role in{menuitemcheckbox:1,menuitemradio:1}&&(h=' aria-checked="'+(g==CKEDITOR.TRISTATE_ON?"true":"false")+'"');var j=this.getItems,k="&#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",l=this.name;this.icon&&!/\./.test(this.icon)&&(l=this.icon),a={id:f,name:this.name,iconName:l,label:this.label,cls:this.className||"",state:i,hasPopup:j?"true":"false",disabled:g==CKEDITOR.TRISTATE_DISABLED,title:this.label,href:"javascript:void('"+(this.label||"").replace("'")+"')",hoverFn:a._.itemOverFn,moveOutFn:a._.itemOutFn,clickFn:a._.itemClickFn,index:b,iconStyle:CKEDITOR.skin.getIconStyle(l,"rtl"==this.editor.lang.dir,l==this.icon?null:this.icon,this.iconOffset),arrowHtml:j?d.output({label:k}):"",role:this.role?this.role:"menuitem",ariaChecked:h},c.output(a,e)}}})}(),CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div",CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CKEDITOR.plugins.contextMenu=CKEDITOR.tools.createClass({base:CKEDITOR.menu,$:function(a){this.base.call(this,a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.contextmenu.options}}})},proto:{addTarget:function(a,b){if(a.on("contextmenu",function(a){a=a.data;var d=CKEDITOR.env.webkit?c:CKEDITOR.env.mac?a.$.metaKey:a.$.ctrlKey;if(!b||!d){if(a.preventDefault(),CKEDITOR.env.mac&&CKEDITOR.env.webkit){var d=this.editor,e=new CKEDITOR.dom.elementPath(a.getTarget(),d.editable()).contains(function(a){return a.hasAttribute("contenteditable")},!0);e&&"false"==e.getAttribute("contenteditable")&&d.getSelection().fake(e)}var e=a.getTarget().getDocument(),f=a.getTarget().getDocument().getDocumentElement(),d=!e.equals(CKEDITOR.document),e=e.getWindow().getScrollPosition(),g=d?a.$.clientX:a.$.pageX||e.x+a.$.clientX,h=d?a.$.clientY:a.$.pageY||e.y+a.$.clientY;CKEDITOR.tools.setTimeout(function(){this.open(f,null,g,h)},CKEDITOR.env.ie?200:0,this)}},this),CKEDITOR.env.webkit){var c,d=function(){c=0};a.on("keydown",function(a){c=CKEDITOR.env.mac?a.data.$.metaKey:a.data.$.ctrlKey}),a.on("keyup",d),a.on("contextmenu",d)}},open:function(a,b,c,d){this.editor.focus(),a=a||CKEDITOR.document.getDocumentElement(),this.editor.selectionChange(1),this.show(a,b,c,d)}}})},beforeInit:function(a){var b=a.contextMenu=new CKEDITOR.plugins.contextMenu(a);a.on("contentDom",function(){b.addTarget(a.editable(),!1!==a.config.browserContextMenuOnCtrl)}),a.addCommand("contextMenu",{exec:function(){a.contextMenu.open(a.document.getBody())}}),a.setKeystroke(CKEDITOR.SHIFT+121,"contextMenu"),a.setKeystroke(CKEDITOR.CTRL+CKEDITOR.SHIFT+121,"contextMenu")}}),function(){function a(a,c){function e(b){if(b=i.list[b],b.equals(a.editable())||"true"==b.getAttribute("contenteditable")){var c=a.createRange();c.selectNodeContents(b),c.select()}else a.getSelection().selectElement(b);a.focus()}function f(){g&&g.setHtml(' '),delete i.list}var g,h=a.ui.spaceId("path"),i=a._.elementsPath,j=i.idBase;c.html+=''+a.lang.elementspath.eleLabel+' ',a.on("uiReady",function(){var b=a.ui.space("path");b&&a.focusManager.add(b,1)}),i.onClick=e;var k=CKEDITOR.tools.addFunction(e),l=CKEDITOR.tools.addFunction(function(b,c){var d,f=i.idBase;switch(c=new CKEDITOR.dom.event(c),d="rtl"==a.lang.dir,c.getKeystroke()){case d?39:37:case 9:return(d=CKEDITOR.document.getById(f+(b+1)))||(d=CKEDITOR.document.getById(f+"0")),d.focus(),!1;case d?37:39:case CKEDITOR.SHIFT+9:return(d=CKEDITOR.document.getById(f+(b-1)))||(d=CKEDITOR.document.getById(f+(i.list.length-1))),d.focus(),!1;case 27:return a.focus(),!1;case 13:case 32:return e(b),!1}return!0});a.on("selectionChange",function(){for(var b,c=[],e=i.list=[],f=[],m=i.filters,n=!0,o=a.elementPath().elements,p=o.length;p--;){var q=o[p],r=0;b=q.data("cke-display-name")?q.data("cke-display-name"):q.data("cke-real-element-type")?q.data("cke-real-element-type"):q.getName(),(n=q.hasAttribute("contenteditable")?"true"==q.getAttribute("contenteditable"):n)||q.hasAttribute("contenteditable")||(r=1);for(var s=0;sm;m++)b=f[m],n=a.lang.elementspath.eleTitle.replace(/%1/,b),b=d.output({id:j+m,label:n,text:b,jsTitle:"javascript:void('"+b+"')",index:m,keyDownFn:l,clickFn:k}),c.unshift(b);g||(g=CKEDITOR.document.getById(h)),f=g,f.setHtml(c.join("")+' '),a.fire("elementsPathUpdate",{space:f})}),a.on("readOnly",f),a.on("contentDomUnload",f),a.addCommand("elementsPathFocus",b.toolbarFocus),a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}var b={toolbarFocus:{editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+"0"))&&a.focus(CKEDITOR.env.ie||CKEDITOR.env.air)}}},c="";CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(c+=' onkeypress="return false;"'),CKEDITOR.env.gecko&&(c+=' onblur="this.style.cssText = this.style.cssText;"');var d=CKEDITOR.addTemplate("pathItem",'{text}');CKEDITOR.plugins.add("elementspath",{init:function(b){b._.elementsPath={idBase:"cke_elementspath_"+CKEDITOR.tools.getNextNumber()+"_",filters:[]},b.on("uiSpace",function(c){"bottom"==c.data.space&&a(b,c.data)})}})}(),function(){function a(a,d){var e,f;d.on("refresh",function(a){var d,e=[b];for(d in a.data.states)e.push(a.data.states[d]);this.setState(CKEDITOR.tools.search(e,c)?c:b)},d,null,100),d.on("exec",function(b){e=a.getSelection(),f=e.createBookmarks(1),b.data||(b.data={}),b.data.done=!1},d,null,0),d.on("exec",function(){a.forceNextSelectionCheck(),e.selectBookmarks(f)},d,null,100)}var b=CKEDITOR.TRISTATE_DISABLED,c=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indent",{init:function(b){var c=CKEDITOR.plugins.indent.genericDefinition;a(b,b.addCommand("indent",new c(!0))),a(b,b.addCommand("outdent",new c)),b.ui.addButton&&(b.ui.addButton("Indent",{label:b.lang.indent.indent,command:"indent",directional:!0,toolbar:"indent,20"}),b.ui.addButton("Outdent",{label:b.lang.indent.outdent,command:"outdent",directional:!0,toolbar:"indent,10"})),b.on("dirChanged",function(a){var c=b.createRange(),d=a.data.node;c.setStartBefore(d),c.setEndAfter(d);for(var e,f=new CKEDITOR.dom.walker(c);e=f.next();)if(e.type==CKEDITOR.NODE_ELEMENT)if(!e.equals(d)&&e.getDirection())c.setStartAfter(e),f=new CKEDITOR.dom.walker(c);else{var g=b.config.indentClasses;if(g)for(var h="ltr"==a.data.dir?["_rtl",""]:["","_rtl"],i=0;id.length)return!1;for(j=b.getParents(!0),i=0;i0){var m=k[i].parent;k[i].parent=new CKEDITOR.dom.element(m.getName(),m.getDocument())}for(i=d.getCustomData("listarray_index")+1;il;i++)k[i].indent+=j;if(d=CKEDITOR.plugins.list.arrayToList(k,g,null,a.config.enterMode,b.getDirection()),!f.isIndent){var n;if((n=b.getParent())&&n.is("li"))for(var o,j=d.listNode.getChildren(),p=[],i=j.count()-1;i>=0;i--)(o=j.getItem(i))&&o.is&&o.is("li")&&p.push(o)}if(d&&d.listNode.replace(b),p&&p.length)for(i=0;ie[g-1].indent+1){for(f=e[g-1].indent+1-e[g].indent,h=e[g].indent;e[g]&&e[g].indent>=h;)e[g].indent+=f,g++;g--}var i,j,k=CKEDITOR.plugins.list.arrayToList(e,c,null,a.config.enterMode,b.root.getAttribute("dir")).listNode;d(!0),d(),k.replace(b.root),a.fire("contentDomInvalidated")}function b(a,b){this.name=a,this.context=this.type=b,this.allowedContent=b+" li",this.requiredContent=b}function c(a,b,c,d){for(var e,f;e=a[d?"getLast":"getFirst"](n);)(f=e.getDirection(1))!==b.getDirection(1)&&e.setAttribute("dir",f),e.remove(),c?e[d?"insertBefore":"insertAfter"](c):b.append(e,d)}function d(a){function b(b){var d=a[b?"getPrevious":"getNext"](k);d&&d.type==CKEDITOR.NODE_ELEMENT&&d.is(a.getName())&&(c(a,d,null,!b),a.remove(),a=d)}b(),b(1)}function e(a){return a.type==CKEDITOR.NODE_ELEMENT&&(a.getName()in CKEDITOR.dtd.$block||a.getName()in CKEDITOR.dtd.$listItem)&&CKEDITOR.dtd[a.getName()]["#"]}function f(a,b,e){a.fire("saveSnapshot"),e.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);var f=e.extractContents();b.trim(!1,!0);var h=b.createBookmark(),i=new CKEDITOR.dom.elementPath(b.startContainer),j=i.block,i=i.lastElement.getAscendant("li",1)||j,m=new CKEDITOR.dom.elementPath(e.startContainer),n=m.contains(CKEDITOR.dtd.$listItem),m=m.contains(CKEDITOR.dtd.$list);for(j?(j=j.getBogus())&&j.remove():m&&(j=m.getPrevious(k))&&l(j)&&j.remove(),(j=f.getLast())&&j.type==CKEDITOR.NODE_ELEMENT&&j.is("br")&&j.remove(),(j=b.startContainer.getChild(b.startOffset))?f.insertBefore(j):b.startContainer.append(f),n&&(f=g(n))&&(i.contains(n)?(c(f,n.getParent(),n),f.remove()):i.append(f));e.checkStartOfBlock()&&e.checkEndOfBlock()&&(m=e.startPath(),f=m.block,f);)f.is("li")&&(i=f.getParent(),f.equals(i.getLast(k))&&f.equals(i.getFirst(k))&&(f=i)),e.moveToPosition(f,CKEDITOR.POSITION_BEFORE_START),f.remove();e=e.clone(),f=a.editable(),e.setEndAt(f,CKEDITOR.POSITION_BEFORE_END),e=new CKEDITOR.dom.walker(e),e.evaluator=function(a){return k(a)&&!l(a)},(e=e.next())&&e.type==CKEDITOR.NODE_ELEMENT&&e.getName()in CKEDITOR.dtd.$list&&d(e),b.moveToBookmark(h),b.select(),a.fire("saveSnapshot")}function g(a){return(a=a.getLast(k))&&a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in h?a:null}var h={ol:1,ul:1},i=CKEDITOR.dom.walker.whitespaces(),j=CKEDITOR.dom.walker.bookmark(),k=function(a){return!(i(a)||j(a))},l=CKEDITOR.dom.walker.bogus();CKEDITOR.plugins.list={listToArray:function(a,b,c,d,e){if(!h[a.getName()])return[];d||(d=0),c||(c=[]);for(var f=0,g=a.getChildCount();g>f;f++){var i=a.getChild(f);if(i.type==CKEDITOR.NODE_ELEMENT&&i.getName()in CKEDITOR.dtd.$list&&CKEDITOR.plugins.list.listToArray(i,b,c,d+1),"li"==i.$.nodeName.toLowerCase()){var j={parent:a,indent:d,element:i,contents:[]};e?j.grandparent=e:(j.grandparent=a.getParent(),j.grandparent&&"li"==j.grandparent.$.nodeName.toLowerCase()&&(j.grandparent=j.grandparent.getParent())),b&&CKEDITOR.dom.element.setMarker(b,i,"listarray_index",c.length),c.push(j);for(var k,l=0,m=i.getChildCount();m>l;l++)k=i.getChild(l),k.type==CKEDITOR.NODE_ELEMENT&&h[k.getName()]?CKEDITOR.plugins.list.listToArray(k,b,c,d+1,j.grandparent):j.contents.push(k)}}return c},arrayToList:function(a,b,c,d,e){if(c||(c=0),!a||a.length=l.$.documentMode&&q.append(l.createText(" ")),q.append(o.listNode),o=o.nextIndex;else{if(-1!=s.indent||c||!f)return null;h[f.getName()]?(q=s.element.clone(!1,!0),g!=f.getDirection(1)&&q.setAttribute("dir",g)):q=new CKEDITOR.dom.documentFragment(l);var t,u,n=f.getDirection(1)!=g,v=s.element,w=v.getAttribute("class"),x=v.getAttribute("style"),y=q.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&(d!=CKEDITOR.ENTER_BR||n||x||w),z=s.contents.length;for(f=0;z>f;f++)if(t=s.contents[f],j(t)&&z>1)y?u=t.clone(1,1):q.append(t.clone(1,1));else if(t.type==CKEDITOR.NODE_ELEMENT&&t.isBlockBoundary()){n&&!t.getDirection()&&t.setAttribute("dir",g),i=t;var A=v.getAttribute("style");A&&i.setAttribute("style",A.replace(/([^;])$/,"$1;")+(i.getAttribute("style")||"")),w&&t.addClass(w),i=null,u&&(q.append(u),u=null),q.append(t.clone(1,1))}else y?(i||(i=l.createElement(r),q.append(i),n&&i.setAttribute("dir",g)),x&&i.setAttribute("style",x),w&&i.setAttribute("class",w),u&&(i.append(u),u=null),i.append(t.clone(1,1))):q.append(t.clone(1,1));u&&((i||q).append(u),u=null),q.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&o!=a.length-1&&(CKEDITOR.env.needsBrFiller&&(g=q.getLast())&&g.type==CKEDITOR.NODE_ELEMENT&&g.is("br")&&g.remove(),(g=q.getLast(k))&&g.type==CKEDITOR.NODE_ELEMENT&&g.is(CKEDITOR.dtd.$block)||q.append(l.createElement("br"))),g=q.$.nodeName.toLowerCase(),"div"!=g&&"p"!=g||q.appendBogus(),m.append(q),n=null,o++}if(i=null,a.length<=o||Math.max(a[o].indent,0)=0&&(q=o[s]);s--)if(h[q.getName()]&&r.contains(q)){r.removeCustomData("list_group_object_"+l),(o=q.getCustomData("list_group_object"))?o.contents.push(n):(o={root:q,contents:[n]},g.push(o),CKEDITOR.dom.element.setMarker(j,q,"list_group_object",o)),p=1;break}p||(p=r,p.getCustomData("list_group_object_"+l)?p.getCustomData("list_group_object_"+l).contents.push(n):(o={root:p,contents:[n]},CKEDITOR.dom.element.setMarker(j,p,"list_group_object_"+l,o),g.push(o)))}}for(q=[];0n&&(p=o.listNode.getChild(n));n++)p.getName()==this.type&&i.push(p);o.listNode.replace(l.root),f.fire("contentDomInvalidated")}else{for(p=b,i=o,n=q,r=i.contents,f=i.root.getDocument(),l=[],1==r.length&&r[0].equals(i.root)&&(o=f.createElement("div"),r[0].moveChildren&&r[0].moveChildren(o),r[0].append(o),r[0]=o),i=i.contents[0].getParent(),s=0;sl.length)){for(r=l[l.length-1].getNext(),s=f.createElement(this.type),n.push(s),t=n=void 0;l.length;)n=l.shift(),t=f.createElement("li"),u=n,u.is("pre")||m.test(u.getName())||"false"==u.getAttribute("contenteditable")?n.appendTo(t):(n.copyAttributes(t),o&&n.getDirection()&&(t.removeStyle("direction"),t.removeAttribute("dir")),n.moveChildren(t),n.remove()),t.appendTo(s);o&&p&&s.setAttribute("dir",o),r?s.insertBefore(r):s.appendTo(i)}}else this.state==CKEDITOR.TRISTATE_ON&&h[o.root.getName()]&&a.call(this,b,o,j);for(s=0;s0;b--)a[b].deleteContents();return a[0]}function c(a){var b=a.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable")},!0);return a.root.equals(b)?a:(b=new CKEDITOR.dom.range(b),b.moveToRange(a),b)}CKEDITOR.plugins.add("enterkey",{init:function(b){b.addCommand("enter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(b){a(b)}}),b.addCommand("shiftEnter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(b){a(b,b.activeShiftEnterMode,1)}}),b.setKeystroke([[13,"enter"],[CKEDITOR.SHIFT+13,"shiftEnter"]])}});var d=CKEDITOR.dom.walker.whitespaces(),e=CKEDITOR.dom.walker.bookmark();CKEDITOR.plugins.enterkey={enterBlock:function(a,f,h,j){if(h=h||b(a)){h=c(h);var k,l=h.document,m=h.checkStartOfBlock(),n=h.checkEndOfBlock(),o=a.elementPath(h.startContainer),p=o.block,q=f==CKEDITOR.ENTER_DIV?"div":"p";if(m&&n){if(p&&(p.is("li")||p.getParent().is("li"))){p.is("li")||(p=p.getParent()),h=p.getParent(),k=h.getParent(),j=!p.hasPrevious();var r=!p.hasNext(),q=a.getSelection(),s=q.createBookmarks(),m=p.getDirection(1),n=p.getAttribute("class"),t=p.getAttribute("style"),u=k.getDirection(1)!=m;if(a=a.enterMode!=CKEDITOR.ENTER_BR||u||t||n,k.is("li"))j||r?(j&&r&&h.remove(),p[r?"insertAfter":"insertBefore"](k)):p.breakParent(k);else{if(a)o.block.is("li")?(k=l.createElement(f==CKEDITOR.ENTER_P?"p":"div"),u&&k.setAttribute("dir",m),t&&k.setAttribute("style",t),n&&k.setAttribute("class",n),p.moveChildren(k)):k=o.block,j||r?k[j?"insertBefore":"insertAfter"](h):(p.breakParent(h),k.insertAfter(h));else if(p.appendBogus(!0),j||r)for(;l=p[j?"getFirst":"getLast"]();)l[j?"insertBefore":"insertAfter"](h);else for(p.breakParent(h);l=p.getLast();)l.insertAfter(h);p.remove()}return void q.selectBookmarks(s)}if(p&&p.getParent().is("blockquote"))return p.breakParent(p.getParent()),p.getPrevious().getFirst(CKEDITOR.dom.walker.invisible(1))||p.getPrevious().remove(),p.getNext().getFirst(CKEDITOR.dom.walker.invisible(1))||p.getNext().remove(),h.moveToElementEditStart(p),void h.select()}else if(p&&p.is("pre")&&!n)return void g(a,f,h,j);if(m=h.splitBlock(q)){if(f=m.previousBlock,p=m.nextBlock,o=m.wasStartOfBlock,a=m.wasEndOfBlock,p?(s=p.getParent(),s.is("li")&&(p.breakParent(s),p.move(p.getNext(),1))):f&&(s=f.getParent())&&s.is("li")&&(f.breakParent(s),s=f.getNext(),h.moveToElementEditStart(s),f.move(f.getPrevious())),o||a){if(f?(f.is("li")||!i.test(f.getName())&&!f.is("pre"))&&(k=f.clone()):p&&(k=p.clone()),k?j&&!k.is("li")&&k.renameNode(q):s&&s.is("li")?k=s:(k=l.createElement(q),f&&(r=f.getDirection())&&k.setAttribute("dir",r)),l=m.elementPath)for(j=0,q=l.elements.length;q>j&&(s=l.elements[j],!s.equals(l.block)&&!s.equals(l.blockLimit));j++)CKEDITOR.dtd.$removeEmpty[s.getName()]&&(s=s.clone(),k.moveChildren(s),k.append(s));k.appendBogus(),k.getParent()||h.insertNode(k),k.is("li")&&k.removeAttribute("value"),!CKEDITOR.env.ie||!o||a&&f.getChildCount()||(h.moveToElementEditStart(a?f:k),h.select()),h.moveToElementEditStart(o&&!a?p:k)}else p.is("li")&&(k=h.clone(),k.selectNodeContents(p),k=new CKEDITOR.dom.walker(k),k.evaluator=function(a){return!(e(a)||d(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in CKEDITOR.dtd.$inline&&!(a.getName()in CKEDITOR.dtd.$empty))},(s=k.next())&&s.type==CKEDITOR.NODE_ELEMENT&&s.is("ul","ol")&&(CKEDITOR.env.needsBrFiller?l.createElement("br"):l.createText(" ")).insertBefore(s)),p&&h.moveToElementEditStart(p);h.select(),h.scrollIntoView()}}},enterBr:function(a,c,d,e){if(d=d||b(a)){var f=d.document,g=d.checkEndOfBlock(),j=new CKEDITOR.dom.elementPath(a.getSelection().getStartElement()),k=j.block,l=k&&j.block.getName();e||"li"!=l?(!e&&g&&i.test(l)?(g=k.getDirection())?(f=f.createElement("div"),f.setAttribute("dir",g),f.insertAfter(k),d.setStart(f,0)):(f.createElement("br").insertAfter(k),CKEDITOR.env.gecko&&f.createText("").insertAfter(k),d.setStartAt(k.getNext(),CKEDITOR.env.ie?CKEDITOR.POSITION_BEFORE_START:CKEDITOR.POSITION_AFTER_START)):(a="pre"==l&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?f.createText("\r"):f.createElement("br"),d.deleteContents(),d.insertNode(a), +CKEDITOR.env.needsBrFiller?(f.createText("\ufeff").insertAfter(a),g&&(k||j.blockLimit).appendBogus(),a.getNext().$.nodeValue="",d.setStartAt(a.getNext(),CKEDITOR.POSITION_AFTER_START)):d.setStartAt(a,CKEDITOR.POSITION_AFTER_END)),d.collapse(!0),d.select(),d.scrollIntoView()):h(a,c,d,e)}}};var f=CKEDITOR.plugins.enterkey,g=f.enterBr,h=f.enterBlock,i=/^h[1-6]$/}(),function(){function a(a,b){var c={},d=[],e={nbsp:" ",shy:"­",gt:">",lt:"<",amp:"&",apos:"'",quot:'"'};if(a=a.replace(/\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g,function(a,f){var g=b?"&"+f+";":e[f];return c[g]=b?e[f]:"&"+f+";",d.push(g),""}),!b&&a){a=a.split(",");var f,g=document.createElement("div");for(g.innerHTML="&"+a.join(";&")+";",f=g.innerHTML,g=null,g=0;gb&&(b=640),420>c&&(c=420);var e=parseInt((window.screen.height-c)/2,10),f=parseInt((window.screen.width-b)/2,10);d=(d||"location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes")+",width="+b+",height="+c+",top="+e+",left="+f;var g=window.open("",null,d,!0);if(!g)return!1;try{-1==navigator.userAgent.toLowerCase().indexOf(" chrome/")&&(g.moveTo(f,e),g.resizeTo(b,c)),g.focus(),g.location.href=a}catch(h){window.open(a,null,d,!0)}return!0}}),function(){function a(a,b){var c=[];if(!b)return a;for(var d in b)c.push(d+"="+encodeURIComponent(b[d]));return a+(-1!=a.indexOf("?")?"&":"?")+c.join("&")}function b(a){return a+="",a.charAt(0).toUpperCase()+a.substr(1)}function c(){var c=this.getDialog(),d=c.getParentEditor();d._.filebrowserSe=this;var e=d.config["filebrowser"+b(c.getName())+"WindowWidth"]||d.config.filebrowserWindowWidth||"80%",c=d.config["filebrowser"+b(c.getName())+"WindowHeight"]||d.config.filebrowserWindowHeight||"70%",f=this.filebrowser.params||{};f.CKEditor=d.name,f.CKEditorFuncNum=d._.filebrowserFn,f.langCode||(f.langCode=d.langCode),f=a(this.filebrowser.url,f),d.popup(f,e,c,d.config.filebrowserWindowFeatures||d.config.fileBrowserWindowFeatures)}function d(){var a=this.getDialog();return a.getParentEditor()._.filebrowserSe=this,!(!a.getContentElement(this["for"][0],this["for"][1]).getInputElement().$.value||!a.getContentElement(this["for"][0],this["for"][1]).getAction())}function e(b,c,d){var e=d.params||{};e.CKEditor=b.name,e.CKEditorFuncNum=b._.filebrowserFn,e.langCode||(e.langCode=b.langCode),c.action=a(d.url,e),c.filebrowser=d}function f(a,g,h,i){if(i&&i.length)for(var j,k=i.length;k--;)if(j=i[k],"hbox"!=j.type&&"vbox"!=j.type&&"fieldset"!=j.type||f(a,g,h,j.children),j.filebrowser)if("string"==typeof j.filebrowser&&(j.filebrowser={action:"fileButton"==j.type?"QuickUpload":"Browse",target:j.filebrowser}),"Browse"==j.filebrowser.action){var l=j.filebrowser.url;void 0===l&&(l=a.config["filebrowser"+b(g)+"BrowseUrl"],void 0===l&&(l=a.config.filebrowserBrowseUrl)),l&&(j.onClick=c,j.filebrowser.url=l,j.hidden=!1)}else if("QuickUpload"==j.filebrowser.action&&j["for"]&&(l=j.filebrowser.url,void 0===l&&(l=a.config["filebrowser"+b(g)+"UploadUrl"],void 0===l&&(l=a.config.filebrowserUploadUrl)),l)){var m=j.onClick;j.onClick=function(a){var b=a.sender;return m&&!1===m.call(b,a)?!1:d.call(b,a)?(a=b.getDialog().getContentElement(this["for"][0],this["for"][1]).getInputElement(),(b=new CKEDITOR.dom.element(a.$.form))&&((a=b.$.elements.ckCsrfToken)?a=new CKEDITOR.dom.element(a):(a=new CKEDITOR.dom.element("input"),a.setAttributes({name:"ckCsrfToken",type:"hidden"}),b.append(a)),a.setAttribute("value",CKEDITOR.tools.getCsrfToken())),!0):!1},j.filebrowser.url=l,j.hidden=!1,e(a,h.getContents(j["for"][0]).get(j["for"][1]),j.filebrowser)}}function g(a,b,c){if(-1!==c.indexOf(";")){c=c.split(";");for(var d=0;dm.height-l.bottom?"pin":"bottom"),e=m.width/2,e=d.floatSpacePreferRight?"right":0k.width?"rtl"==d.contentsLangDirection?"right":"left":e-l.left>l.right-e?"left":"right",k.width>m.width?(e="left",s=0):(s="left"==e?0m.width&&(e="left"==e?"right":"left",s=0)),h.setStyle(e,c(("pin"==i?r:p)+s+("pin"==i?0:"left"==e?o:-o)))):(i="pin",g("pin"),f(e))}}}();if(e){var g=new CKEDITOR.template('
        "+(a.title?'{voiceLabel}':" ")+'
        '),h=CKEDITOR.document.getBody().append(CKEDITOR.dom.element.createFromHtml(g.output({content:e,id:a.id,langDir:a.lang.dir,langCode:a.langCode,name:a.name,style:"display:none;z-index:"+(d.baseFloatZIndex-1),topId:a.ui.spaceId("top"),voiceLabel:a.title}))),i=CKEDITOR.tools.eventsBuffer(500,f),j=CKEDITOR.tools.eventsBuffer(100,f);h.unselectable(),h.on("mousedown",function(a){a=a.data,a.getTarget().hasAscendant("a",1)||a.preventDefault()}),a.on("focus",function(c){f(c),a.on("change",i.input),b.on("scroll",j.input),b.on("resize",j.input)}),a.on("blur",function(){h.hide(),a.removeListener("change",i.input),b.removeListener("scroll",j.input),b.removeListener("resize",j.input)}),a.on("destroy",function(){b.removeListener("scroll",j.input),b.removeListener("resize",j.input),h.clearCustomData(),h.remove()}),a.focusManager.hasFocus&&h.show(),a.focusManager.add(h,1)}}var b=CKEDITOR.document.getWindow(),c=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("floatingspace",{init:function(b){b.on("loaded",function(){a(this)},null,null,20)}})}(),CKEDITOR.plugins.add("listblock",{requires:"panel",onLoad:function(){var a=CKEDITOR.addTemplate("panel-list",''),b=CKEDITOR.addTemplate("panel-list-item",''),c=CKEDITOR.addTemplate("panel-list-group",'

        {label}

        '),d=/\'/g;CKEDITOR.ui.panel.prototype.addListBlock=function(a,b){return this.addBlock(a,new CKEDITOR.ui.listBlock(this.getHolderElement(),b))},CKEDITOR.ui.listBlock=CKEDITOR.tools.createClass({base:CKEDITOR.ui.panel.block,$:function(a,b){b=b||{};var c=b.attributes||(b.attributes={});(this.multiSelect=!!b.multiSelect)&&(c["aria-multiselectable"]=!0),!c.role&&(c.role="listbox"),this.base.apply(this,arguments),this.element.setAttribute("role",c.role),c=this.keys,c[40]="next",c[9]="next",c[38]="prev",c[CKEDITOR.SHIFT+9]="prev",c[32]=CKEDITOR.env.ie?"mouseup":"click",CKEDITOR.env.ie&&(c[13]="mouseup"),this._.pendingHtml=[],this._.pendingList=[],this._.items={},this._.groups={}},_:{close:function(){if(this._.started){var b=a.output({items:this._.pendingList.join("")});this._.pendingList=[],this._.pendingHtml.push(b),delete this._.started}},getClick:function(){return this._.click||(this._.click=CKEDITOR.tools.addFunction(function(a){var b=this.toggle(a);this.onClick&&this.onClick(a,b)},this)),this._.click}},proto:{add:function(a,c,e){var f=CKEDITOR.tools.getNextId();this._.started||(this._.started=1,this._.size=this._.size||0),this._.items[a]=f;var g;g=CKEDITOR.tools.htmlEncodeAttr(a).replace(d,"\\'"),a={id:f,val:g,onclick:CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick",clickFn:this._.getClick(),title:CKEDITOR.tools.htmlEncodeAttr(e||a),text:c||a},this._.pendingList.push(b.output(a))},startGroup:function(a){this._.close();var b=CKEDITOR.tools.getNextId();this._.groups[a]=b,this._.pendingHtml.push(c.output({id:b,label:a}))},commit:function(){this._.close(),this.element.appendHtml(this._.pendingHtml.join("")),delete this._.size,this._.pendingHtml=[]},toggle:function(a){var b=this.isMarked(a);return b?this.unmark(a):this.mark(a),!b},hideGroup:function(a){var b=(a=this.element.getDocument().getById(this._.groups[a]))&&a.getNext();a&&(a.setStyle("display","none"),b&&"ul"==b.getName()&&b.setStyle("display","none"))},hideItem:function(a){this.element.getDocument().getById(this._.items[a]).setStyle("display","none")},showAll:function(){var a,b=this._.items,c=this._.groups,d=this.element.getDocument();for(a in b)d.getById(b[a]).setStyle("display","");for(var e in c)b=d.getById(c[e]),a=b.getNext(),b.setStyle("display",""),a&&"ul"==a.getName()&&a.setStyle("display","")},mark:function(a){this.multiSelect||this.unmarkAll(),a=this._.items[a];var b=this.element.getDocument().getById(a);b.addClass("cke_selected"),this.element.getDocument().getById(a+"_option").setAttribute("aria-selected",!0),this.onMark&&this.onMark(b)},unmark:function(a){var b=this.element.getDocument();a=this._.items[a];var c=b.getById(a);c.removeClass("cke_selected"),b.getById(a+"_option").removeAttribute("aria-selected"),this.onUnmark&&this.onUnmark(c)},unmarkAll:function(){var a,b=this._.items,c=this.element.getDocument();for(a in b){var d=b[a];c.getById(d).removeClass("cke_selected"),c.getById(d+"_option").removeAttribute("aria-selected")}this.onUnmark&&this.onUnmark()},isMarked:function(a){return this.element.getDocument().getById(this._.items[a]).hasClass("cke_selected")},focus:function(a){this._.focusIndex=-1;var b,c=this.element.getElementsByTag("a"),d=-1;if(a){for(b=this.element.getDocument().getById(this._.items[a]).getFirst();a=c.getItem(++d);)if(a.equals(b)){this._.focusIndex=d;break}}else this.element.focus();b&&setTimeout(function(){b.focus()},0)}}})}}),function(){var a=' {label}{arrowHtml}',b=CKEDITOR.addTemplate("buttonArrow",''+(CKEDITOR.env.hc?"▼":"")+""),c=CKEDITOR.addTemplate("button",a);CKEDITOR.plugins.add("button",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_BUTTON,CKEDITOR.ui.button.handler)}}),CKEDITOR.UI_BUTTON="button",CKEDITOR.ui.button=function(a){CKEDITOR.tools.extend(this,a,{title:a.label,click:a.click||function(b){b.execCommand(a.command)}}),this._={}},CKEDITOR.ui.button.handler={create:function(a){return new CKEDITOR.ui.button(a)}},CKEDITOR.ui.button.prototype={render:function(a,d){function e(){var b=a.mode;b&&(b=this.modes[b]?void 0!==o[b]?o[b]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,b=a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:b,this.setState(b),this.refresh&&this.refresh())}var f,g=CKEDITOR.env,h=this._.id=CKEDITOR.tools.getNextId(),i="",j=this.command;this._.editor=a;var k={id:h,button:this,editor:a,focus:function(){CKEDITOR.document.getById(h).focus()},execute:function(){this.button.click(a)},attach:function(a){this.button.attach(a)}},l=CKEDITOR.tools.addFunction(function(a){return k.onkey?(a=new CKEDITOR.dom.event(a),!1!==k.onkey(k,a.getKeystroke())):void 0}),m=CKEDITOR.tools.addFunction(function(a){var b;return k.onfocus&&(b=!1!==k.onfocus(k,new CKEDITOR.dom.event(a))),b}),n=0;if(k.clickFn=f=CKEDITOR.tools.addFunction(function(){n&&(a.unlockSelection(1),n=0),k.execute(),g.iOS&&a.focus()}),this.modes){var o={};a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(o[a.mode]=this._.state)},this),a.on("activeFilterChange",e,this),a.on("mode",e,this),!this.readOnly&&a.on("readOnly",e,this)}else j&&(j=a.getCommand(j))&&(j.on("state",function(){this.setState(j.state)},this),i+=j.state==CKEDITOR.TRISTATE_ON?"on":j.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off");this.directional&&a.on("contentDirChanged",function(b){var c=CKEDITOR.document.getById(this._.id),d=c.getFirst();b=b.data,b!=a.lang.dir?c.addClass("cke_"+b):c.removeClass("cke_ltr").removeClass("cke_rtl"),d.setAttribute("style",CKEDITOR.skin.getIconStyle(q,"rtl"==b,this.icon,this.iconOffset))},this),j||(i+="off");var p=this.name||this.command,q=p;return this.icon&&!/\./.test(this.icon)&&(q=this.icon,this.icon=null),i={id:h,name:p,iconName:q,label:this.label,cls:this.className||"",state:i,ariaDisabled:"disabled"==i?"true":"false",title:this.title,titleJs:g.gecko&&!g.hc?"":(this.title||"").replace("'",""),hasArrow:this.hasArrow?"true":"false",keydownFn:l,focusFn:m,clickFn:f,style:CKEDITOR.skin.getIconStyle(q,"rtl"==a.lang.dir,this.icon,this.iconOffset),arrowHtml:this.hasArrow?b.output():""},c.output(i,d),this.onRender&&this.onRender(),k},setState:function(a){if(this._.state==a)return!1;this._.state=a;var b=CKEDITOR.document.getById(this._.id);return b?(b.setState(a,"cke_button"),a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled"),this.hasArrow?(a=a==CKEDITOR.TRISTATE_ON?this._.editor.lang.button.selectedLabel.replace(/%1/g,this.label):this.label,CKEDITOR.document.getById(this._.id+"_label").setText(a)):a==CKEDITOR.TRISTATE_ON?b.setAttribute("aria-pressed",!0):b.removeAttribute("aria-pressed"),!0):!1},getState:function(){return this._.state},toFeature:function(a){if(this._.feature)return this._.feature;var b=this;return this.allowedContent||this.requiredContent||!this.command||(b=a.getCommand(this.command)||b),this._.feature=b}},CKEDITOR.ui.prototype.addButton=function(a,b){this.add(a,CKEDITOR.UI_BUTTON,b)}}(),CKEDITOR.plugins.add("richcombo",{requires:"floatpanel,listblock,button",beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_RICHCOMBO,CKEDITOR.ui.richCombo.handler)}}),function(){var a='{label}{label}'+(CKEDITOR.env.hc?"▼":CKEDITOR.env.air?" ":"")+""),b=CKEDITOR.addTemplate("combo",a);CKEDITOR.UI_RICHCOMBO="richcombo",CKEDITOR.ui.richCombo=CKEDITOR.tools.createClass({$:function(a){CKEDITOR.tools.extend(this,a,{canGroup:!1,title:a.label,modes:{wysiwyg:1},editorFocus:1}),a=this.panel||{},delete this.panel,this.id=CKEDITOR.tools.getNextNumber(),this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document,a.className="cke_combopanel",a.block={multiSelect:a.multiSelect,attributes:a.attributes},a.toolbarRelated=!0,this._={panelDefinition:a,items:{}}},proto:{renderHtml:function(a){var b=[];return this.render(a,b),b.join("")},render:function(a,c){function d(){if(this.getState()!=CKEDITOR.TRISTATE_ON){var b=this.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;a.readOnly&&!this.readOnly&&(b=CKEDITOR.TRISTATE_DISABLED),this.setState(b),this.setValue(""),b!=CKEDITOR.TRISTATE_DISABLED&&this.refresh&&this.refresh()}}var e=CKEDITOR.env,f="cke_"+this.id,g=CKEDITOR.tools.addFunction(function(b){l&&(a.unlockSelection(1),l=0),i.execute(b)},this),h=this,i={id:f,combo:this,focus:function(){CKEDITOR.document.getById(f).getChild(1).focus()},execute:function(b){var c=h._;if(c.state!=CKEDITOR.TRISTATE_DISABLED)if(h.createPanel(a),c.on)c.panel.hide();else{h.commit();var d=h.getValue();d?c.list.mark(d):c.list.unmarkAll(),c.panel.showBlock(h.id,new CKEDITOR.dom.element(b),4)}},clickFn:g};a.on("activeFilterChange",d,this),a.on("mode",d,this),a.on("selectionChange",d,this),!this.readOnly&&a.on("readOnly",d,this);var j=CKEDITOR.tools.addFunction(function(b,c){b=new CKEDITOR.dom.event(b);var d=b.getKeystroke();switch(40==d&&a.once("panelShow",function(a){a.data._.panel._.currentBlock.onKeyDown(40)}),d){case 13:case 32:case 40:CKEDITOR.tools.callFunction(g,c);break;default:i.onkey(i,d)}b.preventDefault()}),k=CKEDITOR.tools.addFunction(function(){i.onfocus&&i.onfocus()}),l=0;return i.keyDownFn=j,e={id:f,name:this.name||this.command,label:this.label,title:this.title,cls:this.className||"",titleJs:e.gecko&&!e.hc?"":(this.title||"").replace("'",""),keydownFn:j,focusFn:k,clickFn:g},b.output(e,c),this.onRender&&this.onRender(),i},createPanel:function(a){if(!this._.panel){var b=this._.panelDefinition,c=this._.panelDefinition.block,d=b.parent||CKEDITOR.document.getBody(),e="cke_combopanel__"+this.name,f=new CKEDITOR.ui.floatPanel(a,d,b),g=f.addListBlock(this.id,c),h=this;f.onShow=function(){this.element.addClass(e),h.setState(CKEDITOR.TRISTATE_ON),h._.on=1,h.editorFocus&&!a.focusManager.hasFocus&&a.focus(),h.onOpen&&h.onOpen(),a.once("panelShow",function(){g.focus(!g.multiSelect&&h.getValue())})},f.onHide=function(b){this.element.removeClass(e),h.setState(h.modes&&h.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),h._.on=0,!b&&h.onClose&&h.onClose()},f.onEscape=function(){f.hide(1)},g.onClick=function(a,b){h.onClick&&h.onClick.call(h,a,b),f.hide()},this._.panel=f,this._.list=g,f.getBlock(this.id).onHide=function(){h._.on=0,h.setState(CKEDITOR.TRISTATE_OFF)},this.init&&this.init()}},setValue:function(a,b){this._.value=a;var c=this.document.getById("cke_"+this.id+"_text");c&&(a||b?c.removeClass("cke_combo_inlinelabel"):(b=this.label,c.addClass("cke_combo_inlinelabel")),c.setText("undefined"!=typeof b?b:a))},getValue:function(){return this._.value||""},unmarkAll:function(){this._.list.unmarkAll()},mark:function(a){this._.list.mark(a)},hideItem:function(a){this._.list.hideItem(a)},hideGroup:function(a){this._.list.hideGroup(a)},showAll:function(){this._.list.showAll()},add:function(a,b,c){this._.items[a]=c||a,this._.list.add(a,b,c)},startGroup:function(a){this._.list.startGroup(a)},commit:function(){this._.committed||(this._.list.commit(),this._.committed=1,CKEDITOR.ui.fire("ready",this)),this._.committed=1},setState:function(a){if(this._.state!=a){var b=this.document.getById("cke_"+this.id);b.setState(a,"cke_combo"),a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled"),this._.state=a}},getState:function(){return this._.state},enable:function(){this._.state==CKEDITOR.TRISTATE_DISABLED&&this.setState(this._.lastState)},disable:function(){this._.state!=CKEDITOR.TRISTATE_DISABLED&&(this._.lastState=this._.state,this.setState(CKEDITOR.TRISTATE_DISABLED))}},statics:{handler:{create:function(a){return new CKEDITOR.ui.richCombo(a)}}}}),CKEDITOR.ui.prototype.addRichCombo=function(a,b){this.add(a,CKEDITOR.UI_RICHCOMBO,b)}}(),CKEDITOR.plugins.add("format",{requires:"richcombo",init:function(a){if(!a.blockless){for(var b=a.config,c=a.lang.format,d=b.format_tags.split(";"),e={},f=0,g=[],h=0;h"),c&&c.indent&&(this._.indentation+=this.indentationChars)),c&&c.breakAfterOpen&&this.lineBreak(),"pre"==a&&(this._.inPre=1)},attribute:function(a,b){"string"==typeof b&&(this.forceSimpleAmpersand&&(b=b.replace(/&/g,"&")),b=CKEDITOR.tools.htmlEncodeAttr(b)),this._.output.push(" ",a,'="',b,'"')},closeTag:function(a){var b=this._.rules[a];b&&b.indent&&(this._.indentation=this._.indentation.substr(this.indentationChars.length)),this._.indent?this.indentation():b&&b.breakBeforeClose&&(this.lineBreak(),this.indentation()),this._.output.push(""),"pre"==a&&(this._.inPre=0),b&&b.breakAfterClose&&(this.lineBreak(),this._.needsSpace=b.needsSpace),this._.afterCloser=1},text:function(a){this._.indent&&(this.indentation(),!this._.inPre&&(a=CKEDITOR.tools.ltrim(a))),this._.output.push(a)},comment:function(a){this._.indent&&this.indentation(),this._.output.push("")},lineBreak:function(){!this._.inPre&&0e;e++)b=a.charCodeAt(e),d.push(b);return"String.fromCharCode("+d.join(",")+")"}function c(b,c){var d,e,f=b.plugins.link,g=f.compiledProtectionFunction.params;e=[f.compiledProtectionFunction.name,"("];for(var h=0;h0&&e.push(","),e.push("'",d?a(encodeURIComponent(c[f])):"","'");return e.push(")"),e.join("")}function d(a){a=a.config.emailProtection||"";var b;return a&&"encode"!=a&&(b={},a.replace(/^([^(]+)\(([^)]+)\)$/,function(a,c,d){b.name=c,b.params=[],d.replace(/[^,\s]+/g,function(a){b.params.push(a)})})),b}CKEDITOR.plugins.add("link",{requires:"dialog,fakeobjects",onLoad:function(){function a(a){return c.replace(/%1/g,"rtl"==a?"right":"left").replace(/%2/g,"cke_contents_"+a)}var b="background:url("+CKEDITOR.getUrl(this.path+"images"+(CKEDITOR.env.hidpi?"/hidpi":"")+"/anchor.png")+") no-repeat %1 center;border:1px dotted #00f;background-size:16px;",c=".%2 a.cke_anchor,.%2 a.cke_anchor_empty,.cke_editable.%2 a[name],.cke_editable.%2 a[data-cke-saved-name]{"+b+"padding-%1:18px;cursor:auto;}.%2 img.cke_anchor{"+b+"width:16px;min-height:15px;height:1.15em;vertical-align:text-bottom;}";CKEDITOR.addCss(a("ltr")+a("rtl"))},init:function(a){var b="a[!href]";CKEDITOR.dialog.isTabEnabled(a,"link","advanced")&&(b=b.replace("]",",accesskey,charset,dir,id,lang,name,rel,tabindex,title,type]{*}(*)")),CKEDITOR.dialog.isTabEnabled(a,"link","target")&&(b=b.replace("]",",target,onclick]")),a.addCommand("link",new CKEDITOR.dialogCommand("link",{allowedContent:b,requiredContent:"a[href]"})),a.addCommand("anchor",new CKEDITOR.dialogCommand("anchor",{allowedContent:"a[!name,id]",requiredContent:"a[name]"})),a.addCommand("unlink",new CKEDITOR.unlinkCommand),a.addCommand("removeAnchor",new CKEDITOR.removeAnchorCommand),a.setKeystroke(CKEDITOR.CTRL+76,"link"),a.ui.addButton&&(a.ui.addButton("Link",{label:a.lang.link.toolbar,command:"link",toolbar:"links,10"}),a.ui.addButton("Unlink",{label:a.lang.link.unlink,command:"unlink",toolbar:"links,20"}),a.ui.addButton("Anchor",{label:a.lang.link.anchor.toolbar,command:"anchor",toolbar:"links,30"})),CKEDITOR.dialog.add("link",this.path+"dialogs/link.js"),CKEDITOR.dialog.add("anchor",this.path+"dialogs/anchor.js"),a.on("doubleclick",function(b){var c=CKEDITOR.plugins.link.getSelectedLink(a)||b.data.element;c.isReadOnly()||(c.is("a")?(b.data.dialog=!c.getAttribute("name")||c.getAttribute("href")&&c.getChildCount()?"link":"anchor",b.data.link=c):CKEDITOR.plugins.link.tryRestoreFakeAnchor(a,c)&&(b.data.dialog="anchor"))},null,null,0),a.on("doubleclick",function(b){b.data.dialog in{link:1,anchor:1}&&b.data.link&&a.getSelection().selectElement(b.data.link)},null,null,20),a.addMenuItems&&a.addMenuItems({anchor:{label:a.lang.link.anchor.menu,command:"anchor",group:"anchor",order:1},removeAnchor:{label:a.lang.link.anchor.remove,command:"removeAnchor",group:"anchor",order:5},link:{label:a.lang.link.menu,command:"link",group:"link",order:1},unlink:{label:a.lang.link.unlink,command:"unlink",group:"link",order:5}}),a.contextMenu&&a.contextMenu.addListener(function(b){if(!b||b.isReadOnly())return null;if(b=CKEDITOR.plugins.link.tryRestoreFakeAnchor(a,b),!b&&!(b=CKEDITOR.plugins.link.getSelectedLink(a)))return null;var c={};return b.getAttribute("href")&&b.getChildCount()&&(c={link:CKEDITOR.TRISTATE_OFF,unlink:CKEDITOR.TRISTATE_OFF}),b&&b.hasAttribute("name")&&(c.anchor=c.removeAnchor=CKEDITOR.TRISTATE_OFF),c}),this.compiledProtectionFunction=d(a)},afterInit:function(a){a.dataProcessor.dataFilter.addRules({elements:{a:function(b){return b.attributes.name?b.children.length?null:a.createFakeParserElement(b,"cke_anchor","anchor"):null}}});var b=a._.elementsPath&&a._.elementsPath.filters;b&&b.push(function(b,c){return"a"!=c||!CKEDITOR.plugins.link.tryRestoreFakeAnchor(a,b)&&(!b.getAttribute("name")||b.getAttribute("href")&&b.getChildCount())?void 0:"anchor"})}});var e=/^javascript:/,f=/^mailto:([^?]+)(?:\?(.+))?$/,g=/subject=([^;?:@&=$,\/]*)/i,h=/body=([^;?:@&=$,\/]*)/i,i=/^#(.*)$/,j=/^((?:http|https|ftp|news):\/\/)?(.*)$/,k=/^(_(?:self|top|parent|blank))$/,l=/^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/,m=/^javascript:([^(]+)\(([^)]+)\)$/,n=/\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/,o=/(?:^|,)([^=]+)=(\d+|yes|no)/gi,p={id:"advId",dir:"advLangDir",accessKey:"advAccessKey",name:"advName",lang:"advLangCode",tabindex:"advTabIndex",title:"advTitle",type:"advContentType","class":"advCSSClasses",charset:"advCharset",style:"advStyles",rel:"advRel"};CKEDITOR.plugins.link={getSelectedLink:function(a){var b=a.getSelection(),c=b.getSelectedElement();return c&&c.is("a")?c:(b=b.getRanges()[0])?(b.shrink(CKEDITOR.SHRINK_TEXT),a.elementPath(b.getCommonAncestor()).contains("a",1)):null},getEditorAnchors:function(a){for(var b,c=a.editable(),d=c.isInline()&&!a.plugins.divarea?a.document:c,c=d.getElementsByTag("a"),d=d.getElementsByTag("img"),e=[],f=0;b=c.getItem(f++);)(b.data("cke-saved-name")||b.hasAttribute("name"))&&e.push({name:b.data("cke-saved-name")||b.getAttribute("name"),id:b.getAttribute("id")});for(f=0;b=d.getItem(f++);)(b=this.tryRestoreFakeAnchor(a,b))&&e.push({name:b.getAttribute("name"),id:b.getAttribute("id")});return e},fakeAnchor:!0,tryRestoreFakeAnchor:function(a,b){if(b&&b.data("cke-real-element-type")&&"anchor"==b.data("cke-real-element-type")){var c=a.restoreRealElement(b);if(c.data("cke-saved-name"))return c}},parseLinkAttributes:function(a,b){var c,d=b&&(b.data("cke-saved-href")||b.getAttribute("href"))||"",q=a.plugins.link.compiledProtectionFunction,r=a.config.emailProtection,s={};if(d.match(e)&&("encode"==r?d=d.replace(l,function(a,b,c){return c=c||"","mailto:"+String.fromCharCode.apply(String,b.split(","))+c.replace(/\\'/g,"'")}):r&&d.replace(m,function(a,b,c){if(b==q.name){s.type="email",a=s.email={},b=/(^')|('$)/g,c=c.match(/[^,\s]+/g);for(var d,e,f=c.length,g=0;f>g;g++)d=decodeURIComponent,e=c[g].replace(b,"").replace(/\\'/g,"'"),e=d(e),d=q.params[g].toLowerCase(),a[d]=e;a.address=[a.name,a.domain].join("@")}})),!s.type)if(r=d.match(i))s.type="anchor",s.anchor={},s.anchor.name=s.anchor.id=r[1];else if(r=d.match(f)){c=d.match(g),d=d.match(h),s.type="email";var t=s.email={};t.address=r[1],c&&(t.subject=decodeURIComponent(c[1])),d&&(t.body=decodeURIComponent(d[1]))}else d&&(c=d.match(j))&&(s.type="url",s.url={},s.url.protocol=c[1],s.url.url=c[2]);if(b){if(d=b.getAttribute("target"))s.target={type:d.match(k)?d:"frame",name:d};else if(d=(d=b.data("cke-pa-onclick")||b.getAttribute("onclick"))&&d.match(n))for(s.target={type:"popup",name:d[1]};r=o.exec(d[2]);)"yes"!=r[2]&&"1"!=r[2]||r[1]in{height:1,width:1,top:1,left:1}?isFinite(r[2])&&(s.target[r[1]]=r[2]):s.target[r[1]]=!0;var u,d={};for(u in p)(r=b.getAttribute(u))&&(d[p[u]]=r);(u=b.data("cke-saved-name")||d.advName)&&(d.advName=u),CKEDITOR.tools.isEmpty(d)||(s.advanced=d)}return s},getLinkAttributes:function(d,e){var f=d.config.emailProtection||"",g={};switch(e.type){case"url":var f=e.url&&void 0!==e.url.protocol?e.url.protocol:"http://",h=e.url&&CKEDITOR.tools.trim(e.url.url)||"";g["data-cke-saved-href"]=0===h.indexOf("/")?h:f+h;break;case"anchor":f=e.anchor&&e.anchor.id,g["data-cke-saved-href"]="#"+(e.anchor&&e.anchor.name||f||"");break;case"email":var i=e.email,h=i.address;switch(f){case"":case"encode":var j=encodeURIComponent(i.subject||""),k=encodeURIComponent(i.body||""),i=[];j&&i.push("subject="+j),k&&i.push("body="+k),i=i.length?"?"+i.join("&"):"","encode"==f?(f=["javascript:void(location.href='mailto:'+",b(h)],i&&f.push("+'",a(i),"'"),f.push(")")):f=["mailto:",h,i];break;default:f=h.split("@",2),i.name=f[0],i.domain=f[1],f=["javascript:",c(d,i)]}g["data-cke-saved-href"]=f.join("")}if(e.target)if("popup"==e.target.type){for(var f=["window.open(this.href, '",e.target.name||"","', '"],l="resizable status location toolbar menubar fullscreen scrollbars dependent".split(" "),h=l.length,j=function(a){e.target[a]&&l.push(a+"="+e.target[a])},i=0;h>i;i++)l[i]+=e.target[l[i]]?"=yes":"=no";j("width"),j("left"),j("height"),j("top"),f.push(l.join(","),"'); return false;"),g["data-cke-pa-onclick"]=f.join("")}else"notSet"!=e.target.type&&e.target.name&&(g.target=e.target.name);if(e.advanced){for(var m in p)(f=e.advanced[p[m]])&&(g[m]=f);g.name&&(g["data-cke-saved-name"]=g.name)}g["data-cke-saved-href"]&&(g.href=g["data-cke-saved-href"]),m={target:1,onclick:1,"data-cke-pa-onclick":1,"data-cke-saved-name":1},e.advanced&&CKEDITOR.tools.extend(m,p);for(var n in g)delete m[n];return{set:g,removed:CKEDITOR.tools.objectKeys(m)}}},CKEDITOR.unlinkCommand=function(){},CKEDITOR.unlinkCommand.prototype={exec:function(a){var b=new CKEDITOR.style({element:"a",type:CKEDITOR.STYLE_INLINE,alwaysRemoveElement:1});a.removeStyle(b)},refresh:function(a,b){var c=b.lastElement&&b.lastElement.getAscendant("a",!0);c&&"a"==c.getName()&&c.getAttribute("href")&&c.getChildCount()?this.setState(CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)},contextSensitive:1,startDisabled:1,requiredContent:"a[href]"},CKEDITOR.removeAnchorCommand=function(){},CKEDITOR.removeAnchorCommand.prototype={exec:function(a){var b,c=a.getSelection(),d=c.createBookmarks();c&&(b=c.getSelectedElement())&&(b.getChildCount()?b.is("a"):CKEDITOR.plugins.link.tryRestoreFakeAnchor(a,b))?b.remove(1):(b=CKEDITOR.plugins.link.getSelectedLink(a))&&(b.hasAttribute("href")?(b.removeAttributes({name:1,"data-cke-saved-name":1}),b.removeClass("cke_anchor")):b.remove(1)),c.selectBookmarks(d)},requiredContent:"a[name]"},CKEDITOR.tools.extend(CKEDITOR.config,{linkShowAdvancedTab:!0,linkShowTargetTab:!0})}(),function(){function a(a,b,c){return l(b)&&l(c)&&c.equals(b.getNext(function(a){return!(W(a)||X(a)||m(a))}))}function b(a){this.upper=a[0],this.lower=a[1],this.set.apply(this,a.slice(2))}function c(a){var b=a.element;if(b&&l(b)&&(b=b.getAscendant(a.triggers,!0))&&a.editable.contains(b)){var c=g(b);if("true"==c.getAttribute("contenteditable"))return b;if(c.is(a.triggers))return c}return null}function d(a,b,c){return u(a,b),u(a,c),a=b.size.bottom,c=c.size.top,a&&c?0|(a+c)/2:a||c}function e(a,b,c){return b=b[c?"getPrevious":"getNext"](function(b){return b&&b.type==CKEDITOR.NODE_TEXT&&!W(b)||l(b)&&!m(b)&&!k(a,b)})}function f(a,b,c){return a>b&&c>a}function g(a,b){if(a.data("cke-editable"))return null;for(b||(a=a.getParent());a&&!a.data("cke-editable");){if(a.hasAttribute("contenteditable"))return a;a=a.getParent()}return null}function h(a){var b=a.doc,c=A('',b),d=CKEDITOR.getUrl(this.path+"images/"+(B.hidpi?"hidpi/":"")+"icon"+(a.rtl?"-rtl":"")+".png");for(y(c,{attach:function(){return this.wrap.getParent()||this.wrap.appendTo(a.editable,!0),this},lineChildren:[y(A('',b),{base:S+"height:17px;width:17px;"+(a.rtl?"left":"right")+":17px;background:url("+d+") center no-repeat "+a.boxColor+";cursor:pointer;"+(B.hc?"font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;":"")+(B.hidpi?"background-size: 9px 10px;":""),looks:["top:-8px; border-radius: 2px;","top:-17px; border-radius: 2px 2px 0px 0px;","top:-1px; border-radius: 0px 0px 2px 2px;"]}),y(A(U,b),{base:T+"left:0px;border-left-color:"+a.boxColor+";",looks:["border-width:8px 0 8px 8px;top:-8px","border-width:8px 0 0 8px;top:-8px","border-width:0 0 8px 8px;top:0px"]}),y(A(U,b),{base:T+"right:0px;border-right-color:"+a.boxColor+";",looks:["border-width:8px 8px 8px 0;top:-8px","border-width:8px 8px 0 0;top:-8px","border-width:0 8px 8px 0;top:0px"]})],detach:function(){return this.wrap.getParent()&&this.wrap.remove(),this},mouseNear:function(){u(a,this);var b=a.holdDistance,c=this.size;return!!(c&&f(a.mouse.y,c.top-b,c.bottom+b)&&f(a.mouse.x,c.left-b,c.right+b))},place:function(){var b=a.view,c=a.editable,d=a.trigger,e=d.upper,g=d.lower,h=e||g,i=h.getParent(),j={};this.trigger=d,e&&u(a,e,!0),g&&u(a,g,!0),u(a,i,!0),a.inInlineMode&&v(a,!0),i.equals(c)?(j.left=b.scroll.x,j.right=-b.scroll.x,j.width=""):(j.left=h.size.left-h.size.margin.left+b.scroll.x-(a.inInlineMode?b.editable.left+b.editable.border.left:0),j.width=h.size.outerWidth+h.size.margin.left+h.size.margin.right+b.scroll.x,j.right=""),e&&g?j.top=e.size.margin.bottom===g.size.margin.top?0|e.size.bottom+e.size.margin.bottom/2:e.size.margin.bottomB.version?" ":M,e=a.hotNode&&a.hotNode.getText()==d&&a.element.equals(a.hotNode)&&a.lastCmdDirection===!!b;i(a,function(d){e&&a.hotNode&&a.hotNode.remove(),d[b?"insertAfter":"insertBefore"](c),d.setAttributes({"data-cke-magicline-hot":1,"data-cke-magicline-dir":!!b}),a.lastCmdDirection=!!b}),B.ie||a.enterMode==CKEDITOR.ENTER_BR||a.hotNode.scrollIntoView(),a.line.detach()}return function(f){f=f.getSelection().getStartElement();var h;if(f=f.getAscendant(Q,1),!p(a,f)&&f&&!f.equals(a.editable)&&!f.contains(a.editable)){(h=g(f))&&"false"==h.getAttribute("contenteditable")&&(f=h),a.element=f,h=e(a,f,!b);var i;l(h)&&h.is(a.triggers)&&h.is(P)&&(!e(a,h,!b)||(i=e(a,h,!b))&&l(i)&&i.is(a.triggers))?d(h):(i=c(a,f),l(i)&&(e(a,i,!b)?(f=e(a,i,!b))&&l(f)&&f.is(a.triggers)&&d(i):d(i)))}}}()}}function k(a,b){if(!b||b.type!=CKEDITOR.NODE_ELEMENT||!b.$)return!1;var c=a.line;return c.wrap.equals(b)||c.wrap.contains(b)}function l(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.$}function m(a){if(!l(a))return!1;var b;return(b=n(a))||(l(a)?(b={left:1,right:1,center:1},b=!(!b[a.getComputedStyle("float")]&&!b[a.getAttribute("align")])):b=!1),b}function n(a){return!!{absolute:1,fixed:1}[a.getComputedStyle("position")]}function o(a,b){return l(b)?b.is(a.triggers):null}function p(a,b){if(!b)return!1;for(var c=b.getParents(1),d=c.length;d--;)for(var e=a.tabuList.length;e--;)if(c[d].hasAttribute(a.tabuList[e]))return!0;return!1}function q(a,b,c){return(b=b[c?"getLast":"getFirst"](function(b){return a.isRelevant(b)&&!b.is(O)}))?(u(a,b),c?b.size.top>a.mouse.y:b.size.bottom(a.inInlineMode?e.editable.top+e.editable.height/2:Math.min(e.editable.height,e.pane.height)/2),c=c[h?"getLast":"getFirst"](function(a){return!(W(a)||X(a))});return c?(k(a,c)&&(c=a.line.wrap[h?"getPrevious":"getNext"](function(a){return!(W(a)||X(a))})),l(c)&&!m(c)&&o(a,c)?(u(a,c),!h&&0<=c.size.top&&f(d.y,0,c.size.top+g)?(a=a.inInlineMode||0===e.scroll.y?J:L,new b([null,c,F,I,a])):h&&c.size.bottom<=e.pane.height&&f(d.y,c.size.bottom-g,e.pane.height)?(a=a.inInlineMode||f(c.size.bottom,e.pane.height-g,e.pane.height)?K:L,new b([c,null,G,I,a])):null):null):null}function s(a){var d=a.mouse,g=a.view,h=a.triggerOffset,i=c(a);if(!i)return null;u(a,i);var j,k,h=Math.min(h,0|i.size.outerHeight/2),n=[];if(f(d.y,i.size.top-1,i.size.top+h))k=!1;else{if(!f(d.y,i.size.bottom-h,i.size.bottom+1))return null;k=!0}if(m(i)||q(a,i,k)||i.getParent().is(N))return null;var p=e(a,i,!k);if(p){if(p&&p.type==CKEDITOR.NODE_TEXT)return null;if(l(p)){if(m(p)||!o(a,p)||p.getParent().is(N))return null;n=[p,i][k?"reverse":"concat"]().concat([H,I])}}else i.equals(a.editable[k?"getLast":"getFirst"](a.isRelevant))?(v(a),k&&f(d.y,i.size.bottom-h,g.pane.height)&&f(i.size.bottom,g.pane.height-h,g.pane.height)?j=K:f(d.y,0,i.size.top+h)&&(j=J)):j=L,n=[null,i][k?"reverse":"concat"]().concat([k?G:F,I,j,i.equals(a.editable[k?"getLast":"getFirst"](a.isRelevant))?k?K:J:L]);return 0 in n?new b(n):null}function t(a,b,c,d){for(var e=b.getDocumentPosition(),f={},g={},h={},i={},j=Z.length;j--;)f[Z[j]]=parseInt(b.getComputedStyle.call(b,"border-"+Z[j]+"-width"),10)||0,h[Z[j]]=parseInt(b.getComputedStyle.call(b,"padding-"+Z[j]),10)||0,g[Z[j]]=parseInt(b.getComputedStyle.call(b,"margin-"+Z[j]),10)||0;return c&&!d||w(a,d),i.top=e.y-(c?0:a.view.scroll.y),i.left=e.x-(c?0:a.view.scroll.x),i.outerWidth=b.$.offsetWidth,i.outerHeight=b.$.offsetHeight,i.height=i.outerHeight-(h.top+h.bottom+f.top+f.bottom),i.width=i.outerWidth-(h.left+h.right+f.left+f.right),i.bottom=i.top+i.outerHeight,i.right=i.left+i.outerWidth,a.inInlineMode&&(i.scroll={top:b.$.scrollTop,left:b.$.scrollLeft}),y({border:f,padding:h,margin:g,ignoreScroll:c},i,!0)}function u(a,b,c){if(!l(b))return b.size=null;if(b.size){if(b.size.ignoreScroll==c&&b.size.date>new Date-R)return null}else b.size={};return y(b.size,t(a,b,c),{date:+new Date},!0)}function v(a,b){a.view.editable=t(a,a.editable,b,!0)}function w(a,b){a.view||(a.view={});var c=a.view;if(!(!b&&c&&c.date>new Date-R)){var d=a.win,c=d.getScrollPosition(),d=d.getViewPaneSize();y(a.view,{scroll:{x:c.x,y:c.y,width:a.doc.$.documentElement.scrollWidth-d.width,height:a.doc.$.documentElement.scrollHeight-d.height},pane:{width:d.width,height:d.height,bottom:d.height+c.y},date:+new Date},!0)}}function x(a,c,d,e){for(var f=e,g=e,h=0,i=!1,j=!1,k=a.view.pane.height,l=a.mouse;l.y+hd.left-e.x&&cd.top-e.y&&bCKEDITOR.env.version,D=CKEDITOR.dtd,E={},F=128,G=64,H=32,I=16,J=4,K=2,L=1,M=" ",N=D.$listItem,O=D.$tableContent,P=y({},D.$nonEditable,D.$empty),Q=D.$block,R=100,S="width:0px;height:0px;padding:0px;margin:0px;display:block;z-index:9999;color:#fff;position:absolute;font-size: 0px;line-height:0px;",T=S+"border-color:transparent;display:block;border-style:solid;",U=""+M+"";E[CKEDITOR.ENTER_BR]="br",E[CKEDITOR.ENTER_P]="p",E[CKEDITOR.ENTER_DIV]="div",b.prototype={set:function(a,b,c){return this.properties=a+b+(c||L),this},is:function(a){return(this.properties&a)==a}};var V=function(){function a(a,b){var c=a.$.elementFromPoint(b.x,b.y);return c&&c.nodeType?new CKEDITOR.dom.element(c):null}return function(b,c,d){if(!b.mouse)return null;var e=b.doc,f=b.line.wrap;d=d||b.mouse;var g=a(e,d);return c&&k(b,g)&&(f.hide(),g=a(e,d),f.show()),!g||g.type!=CKEDITOR.NODE_ELEMENT||!g.$||B.ie&&9>B.version&&!b.boundary.equals(g)&&!b.boundary.contains(g)?null:g}}(),W=CKEDITOR.dom.walker.whitespaces(),X=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_COMMENT),Y=function(){function b(b){var e,g,h,i=b.element;if(!l(i)||i.contains(b.editable)||i.isReadOnly())return null;if(h=x(b,function(a,b){return!b.equals(a)},function(a,b){return V(a,!0,b)},i),e=h.upper,g=h.lower,a(b,e,g))return h.set(H,8);if(e&&i.contains(e))for(;!e.getParent().equals(i);)e=e.getParent();else e=i.getFirst(function(a){return c(b,a)});if(g&&i.contains(g))for(;!g.getParent().equals(i);)g=g.getParent();else g=i.getLast(function(a){return c(b,a)});if(!e||!g)return null;if(u(b,e),u(b,g),!f(b.mouse.y,e.size.top,g.size.bottom))return null;for(var j,k,m,n,i=Number.MAX_VALUE;g&&!g.equals(e)&&(k=e.getNext(b.isRelevant));)j=Math.abs(d(b,e,k)-b.mouse.y),i>j&&(i=j,m=e,n=k),e=k,u(b,e);return m&&n&&f(b.mouse.y,m.size.top,n.size.bottom)?(h.upper=m,h.lower=n,h.set(H,8)):null}function c(a,b){return!(b&&b.type==CKEDITOR.NODE_TEXT||X(b)||m(b)||k(a,b)||b.type==CKEDITOR.NODE_ELEMENT&&b.$&&b.is("br"))}return function(c){var d,e=b(c);if(d=e){d=e.upper;var f=e.lower;d=!d||!f||m(f)||m(d)||f.equals(d)||d.equals(f)||f.contains(d)||d.contains(f)?!1:!!(o(c,d)&&o(c,f)&&a(c,d,f))}return d?e:null}}(),Z=["top","left","right","bottom"]}(),CKEDITOR.config.magicline_keystrokePrevious=CKEDITOR.CTRL+CKEDITOR.SHIFT+51,CKEDITOR.config.magicline_keystrokeNext=CKEDITOR.CTRL+CKEDITOR.SHIFT+52,function(){function a(a){if(!a||a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())return[];for(var b=[],c=["style","className"],d=0;d=0;c--){var d=b[c][0],e=b[c][1];e?d.insertBefore(e):d.appendTo(a)}}function c(c,d){var e=a(c),f={},g=c.$;return d||(f["class"]=g.className||"",g.className=""),f.inline=g.style.cssText||"",d||(g.style.cssText="position: static; overflow: visible"),b(e),f}function d(c,d){var e=a(c),f=c.$;"class"in d&&(f.className=d["class"]),"inline"in d&&(f.style.cssText=d.inline),b(e)}function e(a){if(!a.editable().isInline()){var b,c=CKEDITOR.instances;for(b in c){var d=c[b];"wysiwyg"!=d.mode||d.readOnly||(d=d.document.getBody(),d.setAttribute("contentEditable",!1),d.setAttribute("contentEditable",!0))}a.editable().hasFocus&&(a.toolbox.focus(),a.focus())}}CKEDITOR.plugins.add("maximize",{init:function(a){function b(){var b=k.getViewPaneSize();a.resize(b.width,b.height,null,!0)}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var f,g,h,i=a.lang,j=CKEDITOR.document,k=j.getWindow(),l=CKEDITOR.TRISTATE_OFF;a.addCommand("maximize",{modes:{wysiwyg:!CKEDITOR.env.iOS,source:!CKEDITOR.env.iOS},readOnly:1,editorFocus:!1,exec:function(){var m=a.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}),n=a.ui.space("contents");if("wysiwyg"==a.mode){var o=a.getSelection();f=o&&o.getRanges(),g=k.getScrollPosition()}else{var p=a.editable().$;f=!CKEDITOR.env.ie&&[p.selectionStart,p.selectionEnd],g=[p.scrollLeft,p.scrollTop]}if(this.state==CKEDITOR.TRISTATE_OFF){for(k.on("resize",b),h=k.getScrollPosition(),o=a.container;o=o.getParent();)o.setCustomData("maximize_saved_styles",c(o)),o.setStyle("z-index",a.config.baseFloatZIndex-5);n.setCustomData("maximize_saved_styles",c(n,!0)),m.setCustomData("maximize_saved_styles",c(m,!0)),n={overflow:CKEDITOR.env.webkit?"":"hidden",width:0,height:0},j.getDocumentElement().setStyles(n),!CKEDITOR.env.gecko&&j.getDocumentElement().setStyle("position","fixed"),CKEDITOR.env.gecko&&CKEDITOR.env.quirks||j.getBody().setStyles(n),CKEDITOR.env.ie?setTimeout(function(){k.$.scrollTo(0,0)},0):k.$.scrollTo(0,0),m.setStyle("position",CKEDITOR.env.gecko&&CKEDITOR.env.quirks?"fixed":"absolute"),m.$.offsetLeft,m.setStyles({"z-index":a.config.baseFloatZIndex-5,left:"0px",top:"0px"}),m.addClass("cke_maximized"),b(),n=m.getDocumentPosition(),m.setStyles({left:-1*n.x+"px",top:-1*n.y+"px"}),CKEDITOR.env.gecko&&e(a)}else if(this.state==CKEDITOR.TRISTATE_ON){k.removeListener("resize",b);for(var o=[n,m],q=0;qh.width&&(d.resize_minWidth=h.width),d.resize_minHeight>h.height&&(d.resize_minHeight=h.height),CKEDITOR.document.on("mousemove",b),CKEDITOR.document.on("mouseup",c),a.document&&(a.document.on("mousemove",b),a.document.on("mouseup",c)),e.preventDefault&&e.preventDefault()});a.on("destroy",function(){CKEDITOR.tools.removeFunction(l)}),a.on("uiSpace",function(b){if("bottom"==b.data.space){var c="";j&&!k&&(c=" cke_resizer_horizontal"),!j&&k&&(c=" cke_resizer_vertical");var d=''+("ltr"==f?"◢":"◣")+"";"ltr"==f&&"ltr"==c?b.data.html+=d:b.data.html=d+b.data.html}},a,null,100),a.on("maximize",function(b){a.ui.space("resizer")[b.data==CKEDITOR.TRISTATE_ON?"hide":"show"]()})}}}),CKEDITOR.plugins.add("menubutton",{requires:"button,menu",onLoad:function(){var a=function(a){var b=this._,c=b.menu;b.state!==CKEDITOR.TRISTATE_DISABLED&&(b.on&&c?c.hide():(b.previousState=b.state,c||(c=b.menu=new CKEDITOR.menu(a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.common.options}}}),c.onHide=CKEDITOR.tools.bind(function(){var c=this.command?a.getCommand(this.command).modes:this.modes;this.setState(!c||c[a.mode]?b.previousState:CKEDITOR.TRISTATE_DISABLED),b.on=0},this),this.onMenu&&c.addListener(this.onMenu)),this.setState(CKEDITOR.TRISTATE_ON),b.on=1,setTimeout(function(){c.show(CKEDITOR.document.getById(b.id),4)},0)))};CKEDITOR.ui.menuButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(b){delete b.panel,this.base(b),this.hasArrow=!0,this.click=a},statics:{handler:{create:function(a){return new CKEDITOR.ui.menuButton(a)}}}})},beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_MENUBUTTON,CKEDITOR.ui.menuButton.handler)}}),CKEDITOR.UI_MENUBUTTON="menubutton",CKEDITOR.plugins.add("scayt",{requires:"menubutton,dialog",tabToOpen:null,dialogName:"scaytDialog",init:function(a){var b=this,c=CKEDITOR.plugins.scayt;this.bindEvents(a),this.parseConfig(a),this.addRule(a),CKEDITOR.dialog.add(this.dialogName,CKEDITOR.getUrl(this.path+"dialogs/options.js")),this.addMenuItems(a);var d=a.lang.scayt,e=CKEDITOR.env;a.ui.add("Scayt",CKEDITOR.UI_MENUBUTTON,{label:d.text_title,title:a.plugins.wsc?a.lang.wsc.title:d.text_title,modes:{wysiwyg:!(e.ie&&(8>e.version||e.quirks))},toolbar:"spellchecker,20",refresh:function(){var b=a.ui.instances.Scayt.getState();a.scayt&&(b=c.state.scayt[a.name]?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),a.fire("scaytButtonState",b)},onRender:function(){var b=this;a.on("scaytButtonState",function(a){void 0!==typeof a.data&&b.setState(a.data)})},onMenu:function(){var b=a.scayt;return a.getMenuItem("scaytToggle").label=a.lang.scayt[b&&c.state.scayt[a.name]?"btn_disable":"btn_enable"],b={scaytToggle:CKEDITOR.TRISTATE_OFF,scaytOptions:b?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytLangs:b?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytDict:b?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytAbout:b?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,WSC:a.plugins.wsc?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED},a.config.scayt_uiTabs[0]||delete b.scaytOptions,a.config.scayt_uiTabs[1]||delete b.scaytLangs,a.config.scayt_uiTabs[2]||delete b.scaytDict,b}}),a.contextMenu&&a.addMenuItems&&(a.contextMenu.addListener(function(c,d){var e,f,g=a.scayt;return g&&(f=g.getSelectionNode())&&(e=b.menuGenerator(a,f),g.showBanner("."+a.contextMenu._.definition.panel.className.split(" ").join(" ."))),e}),a.contextMenu._.onHide=CKEDITOR.tools.override(a.contextMenu._.onHide,function(b){return function(){var c=a.scayt;return c&&c.hideBanner(),b.apply(this)}}))},addMenuItems:function(a){var b=this,c=CKEDITOR.plugins.scayt;a.addMenuGroup("scaytButton");for(var d=a.config.scayt_contextMenuItemsOrder.split("|"),e=0;ea.config.scayt_maxSuggestions)&&(a.config.scayt_maxSuggestions=5),(void 0===a.config.scayt_minWordLength||"number"!=typeof a.config.scayt_minWordLength||1>a.config.scayt_minWordLength)&&(a.config.scayt_minWordLength=4),void 0!==a.config.scayt_customDictionaryIds&&"string"==typeof a.config.scayt_customDictionaryIds||(a.config.scayt_customDictionaryIds=""),void 0!==a.config.scayt_userDictionaryName&&"string"==typeof a.config.scayt_userDictionaryName||(a.config.scayt_userDictionaryName=null),"string"==typeof a.config.scayt_uiTabs&&3===a.config.scayt_uiTabs.split(",").length){var c=[],d=[];a.config.scayt_uiTabs=a.config.scayt_uiTabs.split(","),CKEDITOR.tools.search(a.config.scayt_uiTabs,function(a){1===Number(a)||0===Number(a)?(d.push(!0),c.push(Number(a))):d.push(!1)}),null===CKEDITOR.tools.search(d,!1)?a.config.scayt_uiTabs=c:a.config.scayt_uiTabs=[1,1,1]}else a.config.scayt_uiTabs=[1,1,1];if("string"!=typeof a.config.scayt_serviceProtocol&&(a.config.scayt_serviceProtocol=null),"string"!=typeof a.config.scayt_serviceHost&&(a.config.scayt_serviceHost=null),"string"!=typeof a.config.scayt_servicePort&&(a.config.scayt_servicePort=null),"string"!=typeof a.config.scayt_servicePath&&(a.config.scayt_servicePath=null),a.config.scayt_moreSuggestions||(a.config.scayt_moreSuggestions="on"),"string"!=typeof a.config.scayt_customerId&&(a.config.scayt_customerId="1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2"),"string"!=typeof a.config.scayt_srcUrl&&(b=document.location.protocol,b=-1!=b.search(/https?:/)?b:"http:",a.config.scayt_srcUrl=b+"//svc.webspellchecker.net/spellcheck31/lf/scayt3/ckscayt/ckscayt.js"),"boolean"!=typeof CKEDITOR.config.scayt_handleCheckDirty&&(CKEDITOR.config.scayt_handleCheckDirty=!0),"boolean"!=typeof CKEDITOR.config.scayt_handleUndoRedo&&(CKEDITOR.config.scayt_handleUndoRedo=!0),CKEDITOR.config.scayt_handleUndoRedo=CKEDITOR.plugins.undo?CKEDITOR.config.scayt_handleUndoRedo:!1,"boolean"!=typeof a.config.scayt_multiLanguageMode&&(a.config.scayt_multiLanguageMode=!1),"object"!=typeof a.config.scayt_multiLanguageStyles&&(a.config.scayt_multiLanguageStyles={}),a.config.scayt_ignoreAllCapsWords&&"boolean"!=typeof a.config.scayt_ignoreAllCapsWords&&(a.config.scayt_ignoreAllCapsWords=!1),a.config.scayt_ignoreDomainNames&&"boolean"!=typeof a.config.scayt_ignoreDomainNames&&(a.config.scayt_ignoreDomainNames=!1),a.config.scayt_ignoreWordsWithMixedCases&&"boolean"!=typeof a.config.scayt_ignoreWordsWithMixedCases&&(a.config.scayt_ignoreWordsWithMixedCases=!1),a.config.scayt_ignoreWordsWithNumbers&&"boolean"!=typeof a.config.scayt_ignoreWordsWithNumbers&&(a.config.scayt_ignoreWordsWithNumbers=!1),a.config.scayt_disableOptionsStorage){var b=CKEDITOR.tools.isArray(a.config.scayt_disableOptionsStorage)?a.config.scayt_disableOptionsStorage:"string"==typeof a.config.scayt_disableOptionsStorage?[a.config.scayt_disableOptionsStorage]:void 0,e="all options lang ignore-all-caps-words ignore-domain-names ignore-words-with-mixed-cases ignore-words-with-numbers".split(" "),f=["lang","ignore-all-caps-words","ignore-domain-names","ignore-words-with-mixed-cases","ignore-words-with-numbers"],g=CKEDITOR.tools.search,h=CKEDITOR.tools.indexOf;a.config.scayt_disableOptionsStorage=function(a){for(var b=[],c=0;c tr > td, .%1 table.%2 > tr > th,;.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,;.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,;.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th;{;border : #d3d3d3 1px dotted;}".split(";")).join("").replace(/%2/g,"cke_show_border").replace(/%1/g,"cke_show_borders "),CKEDITOR.addCss(a)},init:function(b){var c=b.addCommand("showborders",a);c.canUndo=!1,!1!==b.config.startupShowBorders&&c.setState(CKEDITOR.TRISTATE_ON),b.on("mode",function(){c.state!=CKEDITOR.TRISTATE_DISABLED&&c.refresh(b)},null,null,100),b.on("contentDom",function(){c.state!=CKEDITOR.TRISTATE_DISABLED&&c.refresh(b)}),b.on("removeFormatCleanup",function(a){a=a.data,b.getCommand("showborders").state==CKEDITOR.TRISTATE_ON&&a.is("table")&&(!a.hasAttribute("border")||0>=parseInt(a.getAttribute("border"),10))&&a.addClass("cke_show_border")})},afterInit:function(a){var b=a.dataProcessor;a=b&&b.dataFilter,b=b&&b.htmlFilter,a&&a.addRules({elements:{table:function(a){a=a.attributes;var b=a["class"],c=parseInt(a.border,10);c&&!(0>=c)||b&&-1!=b.indexOf("cke_show_border")||(a["class"]=(b||"")+" cke_show_border")}}}),b&&b.addRules({elements:{table:function(a){a=a.attributes;var b=a["class"];b&&(a["class"]=b.replace("cke_show_border","").replace(/\s{2}/," ").replace(/^\s+|\s+$/,""))}}})}}),CKEDITOR.on("dialogDefinition",function(a){var b=a.data.name;"table"!=b&&"tableProperties"!=b||(a=a.data.definition,b=a.getContents("info").get("txtBorder"),b.commit=CKEDITOR.tools.override(b.commit,function(a){return function(b,c){a.apply(this,arguments);var d=parseInt(this.getValue(),10);c[!d||0>=d?"addClass":"removeClass"]("cke_show_border")}}),(a=(a=a.getContents("advanced"))&&a.get("advCSSClasses"))&&(a.setup=CKEDITOR.tools.override(a.setup,function(a){return function(){a.apply(this,arguments),this.setValue(this.getValue().replace(/cke_show_border/,""))}}),a.commit=CKEDITOR.tools.override(a.commit,function(a){return function(b,c){a.apply(this,arguments),parseInt(c.getAttribute("border"),10)||c.addClass("cke_show_border")}})))})}(),function(){CKEDITOR.plugins.add("sourcearea",{init:function(b){function c(){var a=e&&this.equals(CKEDITOR.document.getActive());this.hide(),this.setStyle("height",this.getParent().$.clientHeight+"px"),this.setStyle("width",this.getParent().$.clientWidth+"px"),this.show(),a&&this.focus()}if(b.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var d=CKEDITOR.plugins.sourcearea;b.addMode("source",function(d){var e=b.ui.space("contents").getDocument().createElement("textarea");e.setStyles(CKEDITOR.tools.extend({width:CKEDITOR.env.ie7Compat?"99%":"100%",height:"100%",resize:"none",outline:"none","text-align":"left"},CKEDITOR.tools.cssVendorPrefix("tab-size",b.config.sourceAreaTabSize||4))),e.setAttribute("dir","ltr"),e.addClass("cke_source").addClass("cke_reset").addClass("cke_enable_context_menu"),b.ui.space("contents").append(e),e=b.editable(new a(b,e)),e.setData(b.getData(1)),CKEDITOR.env.ie&&(e.attachListener(b,"resize",c,e),e.attachListener(CKEDITOR.document.getWindow(),"resize",c,e),CKEDITOR.tools.setTimeout(c,0,e)),b.fire("ariaWidget",this),d()}),b.addCommand("source",d.commands.source),b.ui.addButton&&b.ui.addButton("Source",{label:b.lang.sourcearea.toolbar,command:"source",toolbar:"mode,10"}),b.on("mode",function(){b.getCommand("source").setState("source"==b.mode?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)});var e=CKEDITOR.env.ie&&9==CKEDITOR.env.version}}});var a=CKEDITOR.tools.createClass({base:CKEDITOR.editable,proto:{setData:function(a){this.setValue(a),this.status="ready",this.editor.fire("dataReady")},getData:function(){return this.getValue()},insertHtml:function(){},insertElement:function(){},insertText:function(){},setReadOnly:function(a){this[(a?"set":"remove")+"Attribute"]("readOnly","readonly")},detach:function(){a.baseProto.detach.call(this),this.clearCustomData(),this.remove()}}})}(),CKEDITOR.plugins.sourcearea={ +commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:!1,readOnly:1,exec:function(a){"wysiwyg"==a.mode&&a.fire("saveSnapshot"),a.getCommand("source").setState(CKEDITOR.TRISTATE_DISABLED),a.setMode("source"==a.mode?"wysiwyg":"source")},canUndo:!1}}},CKEDITOR.plugins.add("specialchar",{availableLangs:{af:1,ar:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,en:1,"en-gb":1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fr:1,"fr-ca":1,gl:1,he:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,nb:1,nl:1,no:1,pl:1,pt:1,"pt-br":1,ru:1,si:1,sk:1,sl:1,sq:1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,"zh-cn":1},requires:"dialog",init:function(a){var b=this;CKEDITOR.dialog.add("specialchar",this.path+"dialogs/specialchar.js"),a.addCommand("specialchar",{exec:function(){var c=a.langCode,c=b.availableLangs[c]?c:b.availableLangs[c.replace(/-.*/,"")]?c.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(b.path+"dialogs/lang/"+c+".js"),function(){CKEDITOR.tools.extend(a.lang.specialchar,b.langEntries[c]),a.openDialog("specialchar")})},modes:{wysiwyg:1},canUndo:!1}),a.ui.addButton&&a.ui.addButton("SpecialChar",{label:a.lang.specialchar.toolbar,command:"specialchar",toolbar:"insert,50"})}}),CKEDITOR.config.specialChars="! " # $ % & ' ( ) * + - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ € ‘ ’ “ ” – — ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Œ œ Ŵ Ŷ ŵ ŷ ‚ ‛ „ … ™ ► • → ⇒ ⇔ ♦ ≈".split(" "),function(){CKEDITOR.plugins.add("stylescombo",{requires:"richcombo",init:function(a){var b=a.config,c=a.lang.stylescombo,d={},e=[],f=[];a.on("stylesSet",function(c){if(c=c.data.styles){for(var g,h,i,j=0,k=c.length;k>j;j++)g=c[j],a.blockless&&g.element in CKEDITOR.dtd.$block||(h=g.name,g=new CKEDITOR.style(g),a.filter.customConfig&&!a.filter.check(g))||(g._name=h,g._.enterMode=b.enterMode,g._.type=i=g.assignedTo||g.type,g._.weight=j+1e3*(i==CKEDITOR.STYLE_OBJECT?1:i==CKEDITOR.STYLE_BLOCK?2:3),d[h]=g,e.push(g),f.push(g));e.sort(function(a,b){return a._.weight-b._.weight})}}),a.ui.addRichCombo("Styles",{label:c.label,title:c.panelTitle,toolbar:"styles,10",allowedContent:f,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(b.contentsCss),multiSelect:!0,attributes:{"aria-label":c.panelTitle}},init:function(){var a,b,d,f,g,h;for(g=0,h=e.length;h>g;g++)a=e[g],b=a._name,f=a._.type,f!=d&&(this.startGroup(c["panelTitle"+String(f)]),d=f),this.add(b,a.type==CKEDITOR.STYLE_OBJECT?b:a.buildPreview(),b);this.commit()},onClick:function(b){a.focus(),a.fire("saveSnapshot"),b=d[b];var c=a.elementPath();a[b.checkActive(c,a)?"removeStyle":"applyStyle"](b),a.fire("saveSnapshot")},onRender:function(){a.on("selectionChange",function(b){var c=this.getValue();b=b.data.path.elements;for(var e,f=0,g=b.length;g>f;f++){e=b[f];for(var h in d)if(d[h].checkElementRemovable(e,!0,a))return void(h!=c&&this.setValue(h))}this.setValue("")},this)},onOpen:function(){var b=a.getSelection().getSelectedElement(),b=a.elementPath(b),e=[0,0,0,0];this.showAll(),this.unmarkAll();for(var f in d){var g=d[f],h=g._.type;g.checkApplicable(b,a,a.activeFilter)?e[h]++:this.hideItem(f),g.checkActive(b,a)&&this.mark(f)}e[CKEDITOR.STYLE_BLOCK]||this.hideGroup(c["panelTitle"+String(CKEDITOR.STYLE_BLOCK)]),e[CKEDITOR.STYLE_INLINE]||this.hideGroup(c["panelTitle"+String(CKEDITOR.STYLE_INLINE)]),e[CKEDITOR.STYLE_OBJECT]||this.hideGroup(c["panelTitle"+String(CKEDITOR.STYLE_OBJECT)])},refresh:function(){var b=a.elementPath();if(b){for(var c in d)if(d[c].checkApplicable(b,a,a.activeFilter))return;this.setState(CKEDITOR.TRISTATE_DISABLED)}},reset:function(){d={},e=[]}})}})}(),function(){function a(a){return{editorFocus:!1,canUndo:!1,modes:{wysiwyg:1},exec:function(b){if(b.editable().hasFocus){var c,d=b.getSelection();if(c=new CKEDITOR.dom.elementPath(d.getCommonAncestor(),d.root).contains({td:1,th:1},1)){var d=b.createRange(),e=CKEDITOR.tools.tryThese(function(){var b=c.getParent().$.cells[c.$.cellIndex+(a?-1:1)];return b.parentNode.parentNode,b},function(){var b=c.getParent(),b=b.getAscendant("table").$.rows[b.$.rowIndex+(a?-1:1)];return b.cells[a?b.cells.length-1:0]});if(e||a){if(!e)return!0;e=new CKEDITOR.dom.element(e),d.moveToElementEditStart(e),d.checkStartOfBlock()&&d.checkEndOfBlock()||d.selectNodeContents(e)}else{for(var f=c.getAscendant("table").$,e=c.getParent().$.cells,f=new CKEDITOR.dom.element(f.insertRow(-1),b.document),g=0,h=e.length;h>g;g++)f.append(new CKEDITOR.dom.element(e[g],b.document).clone(!1,!1)).appendBogus();d.moveToElementEditStart(f)}return d.select(!0),!0}}return!1}}}var b={editorFocus:!1,modes:{wysiwyg:1,source:1}},c={exec:function(a){a.container.focusNext(!0,a.tabIndex)}},d={exec:function(a){a.container.focusPrevious(!0,a.tabIndex)}};CKEDITOR.plugins.add("tab",{init:function(e){for(var f=!1!==e.config.enableTabKeyTools,g=e.config.tabSpaces||0,h="";g--;)h+=" ";h&&e.on("key",function(a){9==a.data.keyCode&&(e.insertText(h),a.cancel())}),f&&e.on("key",function(a){(9==a.data.keyCode&&e.execCommand("selectNextCell")||a.data.keyCode==CKEDITOR.SHIFT+9&&e.execCommand("selectPreviousCell"))&&a.cancel()}),e.addCommand("blur",CKEDITOR.tools.extend(c,b)),e.addCommand("blurBack",CKEDITOR.tools.extend(d,b)),e.addCommand("selectNextCell",a()),e.addCommand("selectPreviousCell",a(!0))}})}(),CKEDITOR.dom.element.prototype.focusNext=function(a,b){var c,d,e,f,g,h,i=void 0===b?this.getTabIndex():b;if(0>=i)for(g=this.getNextSourceNode(a,CKEDITOR.NODE_ELEMENT);g;){if(g.isVisible()&&0===g.getTabIndex()){e=g;break}g=g.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT)}else for(g=this.getDocument().getBody().getFirst();g=g.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!c)if(!d&&g.equals(this)){if(d=!0,a){if(!(g=g.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;c=1}}else d&&!this.contains(g)&&(c=1);if(g.isVisible()&&!(0>(h=g.getTabIndex()))){if(c&&h==i){e=g;break}h>i&&(!e||!f||f>h)?(e=g,f=h):e||0!==h||(e=g,f=h)}}e&&e.focus()},CKEDITOR.dom.element.prototype.focusPrevious=function(a,b){for(var c,d,e,f,g=void 0===b?this.getTabIndex():b,h=0,i=this.getDocument().getBody().getLast();i=i.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!c)if(!d&&i.equals(this)){if(d=!0,a){if(!(i=i.getPreviousSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;c=1}}else d&&!this.contains(i)&&(c=1);if(i.isVisible()&&!(0>(f=i.getTabIndex())))if(0>=g){if(c&&0===f){e=i;break}f>h&&(e=i,h=f)}else{if(c&&f==g){e=i;break}g>f&&(!e||f>h)&&(e=i,h=f)}}e&&e.focus()},CKEDITOR.plugins.add("table",{requires:"dialog",init:function(a){function b(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,refresh:function(a,b){this.setState(b.contains("table",1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}if(!a.blockless){var c=a.lang.table;a.addCommand("table",new CKEDITOR.dialogCommand("table",{context:"table",allowedContent:"table{width,height}[align,border,cellpadding,cellspacing,summary];caption tbody thead tfoot;th td tr[scope];"+(a.plugins.dialogadvtab?"table"+a.plugins.dialogadvtab.allowedContent():""),requiredContent:"table",contentTransformations:[["table{width}: sizeToStyle","table[width]: sizeToAttribute"]]})),a.addCommand("tableProperties",new CKEDITOR.dialogCommand("tableProperties",b())),a.addCommand("tableDelete",b({exec:function(a){var b=a.elementPath().contains("table",1);if(b){var c=b.getParent(),d=a.editable();1!=c.getChildCount()||c.is("td","th")||c.equals(d)||(b=c),a=a.createRange(),a.moveToPosition(b,CKEDITOR.POSITION_BEFORE_START),b.remove(),a.select()}}})),a.ui.addButton&&a.ui.addButton("Table",{label:c.toolbar,command:"table",toolbar:"insert,30"}),CKEDITOR.dialog.add("table",this.path+"dialogs/table.js"),CKEDITOR.dialog.add("tableProperties",this.path+"dialogs/table.js"),a.addMenuItems&&a.addMenuItems({table:{label:c.menu,command:"tableProperties",group:"table",order:5},tabledelete:{label:c.deleteTable,command:"tableDelete",group:"table",order:1}}),a.on("doubleclick",function(a){a.data.element.is("table")&&(a.data.dialog="tableProperties")}),a.contextMenu&&a.contextMenu.addListener(function(){return{tabledelete:CKEDITOR.TRISTATE_OFF,table:CKEDITOR.TRISTATE_OFF}})}}}),function(){function a(a){function b(a){0i;i++){var j;1=h;h++){for(var i=f[h],j=new CKEDITOR.dom.element(e.$.rows[h]),k=0;k0?f[b-1]:null)||e.$.parentNode),h=d.length;h>=0;h--)c(d[h]);return e}return b instanceof CKEDITOR.dom.element&&(e=b.getAscendant("table"),1==e.$.rows.length?e.remove():b.remove()),null}function d(a,b){for(var c=b?1/0:0,d=0;de:e>c)&&(c=e)}return c}function e(b,c){for(var e=a(b),f=e[0].getAscendant("table"),g=d(e,1),e=d(e),g=c?g:e,h=CKEDITOR.tools.buildTableMap(f),f=[],e=[],i=h.length,j=0;i>j;j++)f.push(h[j][g]),e.push(c?h[j][g-1]:h[j][g+1]);for(j=0;i>j;j++)f[j]&&(1=0;i--)g(b[i]);c?h(c,!0):d&&d.remove()}else b instanceof CKEDITOR.dom.element&&(d=b.getParent(),1==d.getChildCount()?d.remove():b.remove())}function h(a,b){var c=a.getDocument(),d=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(d.focus(),c.focus()),c=new CKEDITOR.dom.range(c),c["moveToElementEdit"+(b?"End":"Start")](a)||(c.selectNodeContents(a),c.collapse(!b)),c.select(!0)}function i(a,b,c){if(a=a[b],"undefined"==typeof c)return a;for(b=0;a&&bf.length)||(e=b.getCommonAncestor())&&e.type==CKEDITOR.NODE_ELEMENT&&e.is("table"))return!1;var g;b=f[0],e=b.getAscendant("table");var h=CKEDITOR.tools.buildTableMap(e),j=h.length,k=h[0].length,l=b.getParent().$.rowIndex,m=i(h,l,b);if(c){var n;try{var o=parseInt(b.getAttribute("rowspan"),10)||1;g=parseInt(b.getAttribute("colspan"),10)||1,n=h["up"==c?l-o:"down"==c?l+o:l]["left"==c?m-g:"right"==c?m+g:m]}catch(p){return!1}if(!n||b.$==n)return!1;f["up"==c||"left"==c?"unshift":"push"](new CKEDITOR.dom.element(n))}c=b.getDocument();var q=l,o=n=0,r=!d&&new CKEDITOR.dom.documentFragment(c),s=0;for(c=0;c=k?b.removeAttribute("rowSpan"):b.$.rowSpan=n,n>=j?b.removeAttribute("colSpan"):b.$.colSpan=o,d=new CKEDITOR.dom.nodeList(e.$.rows),f=d.count(),c=f-1;c>=0;c--)e=d.getItem(c),e.$.cells.length||(e.remove(),f++);return b}function k(b,c){var d=a(b);if(11){e=Math.ceil(l/2);for(var m,l=Math.floor(l/2),f=j+e,g=new CKEDITOR.dom.element(g.$.rows[f]),h=i(h,f),f=d.clone(),j=0;jk){f.insertBefore(new CKEDITOR.dom.element(m));break}m=null}m||g.append(f)}else for(l=e=1,g=f.clone(),g.insertAfter(f),g.append(f=d.clone()),m=i(h,j),k=0;k1)e=Math.ceil(h/2),h=Math.floor(h/2);else{for(var h=e=1,j=[],k=0;kj;j++)for(var l=0,m=g[j].length;m>l;l++)g[j][l]==c.$&&(e=l),g[j][l]==d.$&&(f=l);for(j=e;f>=j;j++)for(l=0;li;i++){c[b+i]||(c[b+i]=[]);for(var j=0;h>j;j++)c[b+i][e+j]=a[d].cells[f]}e+=h-1}}return c},function(){function a(a){function c(){for(var c=d(),f=CKEDITOR.tools.clone(a.config.toolbarGroups)||b(a),g=0;gb.order?-1:0>a.order?1:a.order',b.lang.toolbar.toolbars,"",''],h=!1!==b.config.toolbarStartupExpanded;b.config.toolbarCanCollapse&&b.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&i.push('":' style="display:none">'));for(var j=b.toolbox.toolbars,k=a(b),l=0;l"),g=e=0),"/"===q)i.push('');else{o=q.items||q;for(var r=0;r0&&(a.previous=p.items[v-1],a.previous.next=a),a.toolbar=p,a.onkey=f,a.onfocus=function(){b.toolbox.focusCommandExecuted||b.focus()}};if(t.type==CKEDITOR.UI_SEPARATOR)g=e&&t;else{if(s=!1!==t.canGroup,!p){m=CKEDITOR.tools.getNextId(),p={id:m,items:[]},n=q.name&&(b.lang.toolbar.toolbarGroups[q.name]||q.name),i.push(''),n&&i.push('',n,""),i.push('');var v=j.push(p)-1;v>0&&(p.previous=j[v-1],p.previous.next=p)}s?e||(i.push(''),e=1):e&&(i.push(""),e=0),g&&(u(g),g=0),u(t)}}}e&&(i.push(""),g=e=0),p&&i.push('')}}if(b.config.toolbarCanCollapse&&i.push(""),b.config.toolbarCanCollapse&&b.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var w=CKEDITOR.tools.addFunction(function(){b.execCommand("toolbarCollapse")});b.on("destroy",function(){CKEDITOR.tools.removeFunction(w)}),b.addCommand("toolbarCollapse",{readOnly:1,exec:function(a){var b=a.ui.space("toolbar_collapser"),c=b.getPrevious(),d=a.ui.space("contents"),e=c.getParent(),f=parseInt(d.$.style.height,10),g=e.$.offsetHeight,h=b.hasClass("cke_toolbox_collapser_min");h?(c.show(),b.removeClass("cke_toolbox_collapser_min"),b.setAttribute("title",a.lang.toolbar.toolbarCollapse)):(c.hide(),b.addClass("cke_toolbox_collapser_min"),b.setAttribute("title",a.lang.toolbar.toolbarExpand)),b.getFirst().setText(h?"▲":"◀"),d.setStyle("height",f-(e.$.offsetHeight-g)+"px"),a.fire("resize",{outerHeight:a.container.$.offsetHeight,contentsHeight:d.$.offsetHeight,outerWidth:a.container.$.offsetWidth})},modes:{wysiwyg:1,source:1}}),b.setKeystroke(CKEDITOR.ALT+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse"),i.push('','',"")}i.push(""),d.data.html+=i.join("")}}),b.on("destroy",function(){if(this.toolbox){var a,b,c,d,e=0;for(a=this.toolbox.toolbars;e'),{}}}}})}}),CKEDITOR.ui.prototype.addToolbarGroup=function(a,c,d){var e=b(this.editor),f=0===c,g={name:a};if(d){if(d=CKEDITOR.tools.search(e,function(a){return a.name==d}))return!d.groups&&(d.groups=[]),c&&(c=CKEDITOR.tools.indexOf(d.groups,c),c>=0)?void d.groups.splice(c+1,0,a):void(f?d.groups.splice(0,0,a):d.groups.push(a));c=null}c&&(c=CKEDITOR.tools.indexOf(e,function(a){return a.name==c})),f?e.splice(0,0,a):"number"==typeof c?e.splice(c+1,0,g):e.push(a)}}(),CKEDITOR.UI_SEPARATOR="separator",CKEDITOR.config.toolbarLocation="top",function(){var a=[CKEDITOR.CTRL+90,CKEDITOR.CTRL+89,CKEDITOR.CTRL+CKEDITOR.SHIFT+90],b={8:1,46:1};CKEDITOR.plugins.add("undo",{init:function(b){function d(a){g.enabled&&!1!==a.data.command.canUndo&&g.save()}function e(){g.enabled=b.readOnly?!1:"wysiwyg"==b.mode,g.onChange()}var g=b.undoManager=new c(b),h=g.editingHandler=new f(g),i=b.addCommand("undo",{exec:function(){g.undo()&&(b.selectionChange(),this.fire("afterUndo"))},startDisabled:!0,canUndo:!1}),j=b.addCommand("redo",{exec:function(){g.redo()&&(b.selectionChange(),this.fire("afterRedo"))},startDisabled:!0,canUndo:!1});b.setKeystroke([[a[0],"undo"],[a[1],"redo"],[a[2],"redo"]]),g.onChange=function(){i.setState(g.undoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),j.setState(g.redoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)},b.on("beforeCommandExec",d),b.on("afterCommandExec",d),b.on("saveSnapshot",function(a){g.save(a.data&&a.data.contentOnly)}),b.on("contentDom",h.attachListeners,h),b.on("instanceReady",function(){b.fire("saveSnapshot")}),b.on("beforeModeUnload",function(){"wysiwyg"==b.mode&&g.save(!0)}),b.on("mode",e),b.on("readOnly",e),b.ui.addButton&&(b.ui.addButton("Undo",{label:b.lang.undo.undo,command:"undo",toolbar:"undo,10"}),b.ui.addButton("Redo",{label:b.lang.undo.redo,command:"redo",toolbar:"undo,20"})),b.resetUndo=function(){g.reset(),b.fire("saveSnapshot")},b.on("updateSnapshot",function(){g.currentImage&&g.update()}),b.on("lockSnapshot",function(a){a=a.data,g.lock(a&&a.dontUpdate,a&&a.forceUpdate)}),b.on("unlockSnapshot",g.unlock,g)}}),CKEDITOR.plugins.undo={};var c=CKEDITOR.plugins.undo.UndoManager=function(a){this.strokesRecorded=[0,0],this.locked=null,this.previousKeyGroup=-1,this.limit=a.config.undoStackSize||20,this.strokesLimit=25,this.editor=a,this.reset()};c.prototype={type:function(a,b){var d=c.getKeyGroup(a),e=this.strokesRecorded[d]+1;b=b||e>=this.strokesLimit,this.typing||(this.hasUndo=this.typing=!0,this.hasRedo=!1,this.onChange()),b?(e=0,this.editor.fire("saveSnapshot")):this.editor.fire("change"),this.strokesRecorded[d]=e,this.previousKeyGroup=d},keyGroupChanged:function(a){return c.getKeyGroup(a)!=this.previousKeyGroup},reset:function(){this.snapshots=[],this.index=-1,this.currentImage=null,this.hasRedo=this.hasUndo=!1,this.locked=null,this.resetType()},resetType:function(){this.strokesRecorded=[0,0],this.typing=!1,this.previousKeyGroup=-1},refreshState:function(){this.hasUndo=!!this.getNextImage(!0),this.hasRedo=!!this.getNextImage(!1),this.resetType(),this.onChange()},save:function(a,b,c){var e=this.editor;if(this.locked||"ready"!=e.status||"wysiwyg"!=e.mode)return!1;var f=e.editable();if(!f||"ready"!=f.status)return!1;if(f=this.snapshots,b||(b=new d(e)),!1===b.contents)return!1;if(this.currentImage)if(b.equalsContent(this.currentImage)){if(a||b.equalsSelection(this.currentImage))return!1}else!1!==c&&e.fire("change");return f.splice(this.index+1,f.length-this.index-1),f.length==this.limit&&f.shift(),this.index=f.push(b)-1,this.currentImage=b,!1!==c&&this.refreshState(),!0},restoreImage:function(a){var b,c=this.editor;a.bookmarks&&(c.focus(), +b=c.getSelection()),this.locked={level:999},this.editor.loadSnapshot(a.contents),a.bookmarks?b.selectBookmarks(a.bookmarks):CKEDITOR.env.ie&&(b=this.editor.document.getBody().$.createTextRange(),b.collapse(!0),b.select()),this.locked=null,this.index=a.index,this.currentImage=this.snapshots[this.index],this.update(),this.refreshState(),c.fire("change")},getNextImage:function(a){var b,c=this.snapshots,d=this.currentImage;if(d)if(a){for(b=this.index-1;b>=0;b--)if(a=c[b],!d.equalsContent(a))return a.index=b,a}else for(b=this.index+1;b0&&this.currentImage.equalsContent(c[b-1]);)--b;c.splice(b,this.index-b+1,a),this.index=b,this.currentImage=a}},updateSelection:function(a){if(!this.snapshots.length)return!1;var b=this.snapshots,c=b[b.length-1];return c.equalsContent(a)&&!c.equalsSelection(a)?(this.currentImage=b[b.length-1]=a,!0):!1},lock:function(a,b){if(this.locked)this.locked.level++;else if(a)this.locked={level:1};else{var c=null;if(b)c=!0;else{var e=new d(this.editor,!0);this.currentImage&&this.currentImage.equalsContent(e)&&(c=e)}this.locked={update:c,level:1}}},unlock:function(){if(this.locked&&!--this.locked.level){var a=this.locked.update;if(this.locked=null,!0===a)this.update();else if(a){var b=new d(this.editor,!0);a.equalsContent(b)||this.update()}}}},c.navigationKeyCodes={37:1,38:1,39:1,40:1,36:1,35:1,33:1,34:1},c.keyGroups={PRINTABLE:0,FUNCTIONAL:1},c.isNavigationKey=function(a){return!!c.navigationKeyCodes[a]},c.getKeyGroup=function(a){var d=c.keyGroups;return b[a]?d.FUNCTIONAL:d.PRINTABLE},c.getOppositeKeyGroup=function(a){var b=c.keyGroups;return a==b.FUNCTIONAL?b.PRINTABLE:b.FUNCTIONAL},c.ieFunctionalKeysBug=function(a){return CKEDITOR.env.ie&&c.getKeyGroup(a)==c.keyGroups.FUNCTIONAL};var d=CKEDITOR.plugins.undo.Image=function(a,b){this.editor=a,a.fire("beforeUndoImage");var c=a.getSnapshot();CKEDITOR.env.ie&&c&&(c=c.replace(/\s+data-cke-expando=".*?"/g,"")),this.contents=c,b||(this.bookmarks=(c=c&&a.getSelection())&&c.createBookmarks2(!0)),a.fire("afterUndoImage")},e=/\b(?:href|src|name)="[^"]*?"/gi;d.prototype={equalsContent:function(a){var b=this.contents;return a=a.contents,CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)&&(b=b.replace(e,""),a=a.replace(e,"")),b==a},equalsSelection:function(a){var b=this.bookmarks;if(a=a.bookmarks,b||a){if(!b||!a||b.length!=a.length)return!1;for(var c=0;c=this.undoManager.strokesLimit&&(this.undoManager.type(a.keyCode,!0),this.keyEventsStack.resetInputs())}},onKeyup:function(a){var b=this.undoManager;a=a.data.getKey();var e=this.keyEventsStack.getTotalInputs();this.keyEventsStack.remove(a),c.ieFunctionalKeysBug(a)&&this.lastKeydownImage&&this.lastKeydownImage.equalsContent(new d(b.editor,!0))||(e>0?b.type(a):c.isNavigationKey(a)&&this.onNavigationKey(!0))},onNavigationKey:function(a){var b=this.undoManager;!a&&b.save(!0,null,!1)||b.updateSelection(new d(b.editor)),b.resetType()},ignoreInputEventListener:function(){this.ignoreInputEvent=!0},attachListeners:function(){var a=this.undoManager.editor,b=a.editable(),d=this;b.attachListener(b,"keydown",function(a){d.onKeydown(a),c.ieFunctionalKeysBug(a.data.getKey())&&d.onInput()},null,null,999),b.attachListener(b,CKEDITOR.env.ie?"keypress":"input",d.onInput,d,null,999),b.attachListener(b,"keyup",d.onKeyup,d,null,999),b.attachListener(b,"paste",d.ignoreInputEventListener,d,null,999),b.attachListener(b,"drop",d.ignoreInputEventListener,d,null,999),b.attachListener(b.isInline()?b:a.document.getDocumentElement(),"click",function(){d.onNavigationKey()},null,null,999),b.attachListener(this.undoManager.editor,"blur",function(){d.keyEventsStack.remove(9)},null,null,999)}};var g=CKEDITOR.plugins.undo.KeyEventsStack=function(){this.stack=[]};g.prototype={push:function(a){return a=this.stack.push({keyCode:a,inputs:0}),this.stack[a-1]},getLastIndex:function(a){if("number"!=typeof a)return this.stack.length-1;for(var b=this.stack.length;b--;)if(this.stack[b].keyCode==a)return b;return-1},getLast:function(a){return a=this.getLastIndex(a),-1!=a?this.stack[a]:null},increment:function(a){this.getLast(a).inputs++},remove:function(a){a=this.getLastIndex(a),-1!=a&&this.stack.splice(a,1)},resetInputs:function(a){if("number"==typeof a)this.getLast(a).inputs=0;else for(a=this.stack.length;a--;)this.stack[a].inputs=0},getTotalInputs:function(){for(var a=this.stack.length,b=0;a--;)b+=this.stack[a].inputs;return b},cleanUp:function(a){a=a.data.$,a.ctrlKey||a.metaKey||this.remove(17),a.shiftKey||this.remove(16),a.altKey||this.remove(18)}}}(),CKEDITOR.plugins.add("wsc",{requires:"dialog",parseApi:function(a){a.config.wsc_onFinish="function"==typeof a.config.wsc_onFinish?a.config.wsc_onFinish:function(){},a.config.wsc_onClose="function"==typeof a.config.wsc_onClose?a.config.wsc_onClose:function(){}},parseConfig:function(a){a.config.wsc_customerId=a.config.wsc_customerId||CKEDITOR.config.wsc_customerId||"1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk",a.config.wsc_customDictionaryIds=a.config.wsc_customDictionaryIds||CKEDITOR.config.wsc_customDictionaryIds||"",a.config.wsc_userDictionaryName=a.config.wsc_userDictionaryName||CKEDITOR.config.wsc_userDictionaryName||"",a.config.wsc_customLoaderScript=a.config.wsc_customLoaderScript||CKEDITOR.config.wsc_customLoaderScript,CKEDITOR.config.wsc_cmd=a.config.wsc_cmd||CKEDITOR.config.wsc_cmd||"spell",CKEDITOR.config.wsc_version="v4.3.0-master-d769233",CKEDITOR.config.wsc_removeGlobalVariable=!0},init:function(a){var b=CKEDITOR.env;this.parseConfig(a),this.parseApi(a),a.addCommand("checkspell",new CKEDITOR.dialogCommand("checkspell")).modes={wysiwyg:!(CKEDITOR.env.opera||CKEDITOR.env.air||document.domain!=window.location.hostname||b.ie&&(8>b.version||b.quirks))},"undefined"==typeof a.plugins.scayt&&a.ui.addButton&&a.ui.addButton("SpellChecker",{label:a.lang.wsc.toolbar,click:function(a){var b=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.container.getText():a.document.getBody().getText();(b=b.replace(/\s/g,""))?a.execCommand("checkspell"):alert("Nothing to check!")},toolbar:"spellchecker,10"}),CKEDITOR.dialog.add("checkspell",this.path+(CKEDITOR.env.ie&&7>=CKEDITOR.env.version?"dialogs/wsc_ie.js":window.postMessage?"dialogs/wsc.js":"dialogs/wsc_ie.js"))}}),function(){function a(a){function c(a){var b=!1;h.attachListener(h,"keydown",function(){var c=e.getBody().getElementsByTag(a);if(!b){for(var d=0;dthis.$.offsetHeight){var c=d.createRange();c[33==b?"moveToElementEditStart":"moveToElementEditEnd"](this),c.select(),a.data.preventDefault()}}),CKEDITOR.env.ie&&this.attachListener(e,"blur",function(){try{e.$.selection.empty()}catch(a){}}),CKEDITOR.env.iOS&&this.attachListener(e,"touchend",function(){a.focus()}),f=d.document.getElementsByTag("title").getItem(0),f.data("cke-title",f.getText()),CKEDITOR.env.ie&&(d.document.$.title=this._.docTitle),CKEDITOR.tools.setTimeout(function(){"unloaded"==this.status&&(this.status="ready"),d.fire("contentDom"),this._.isPendingFocus&&(d.focus(),this._.isPendingFocus=!1),setTimeout(function(){d.fire("dataReady")},0)},0,this)}function b(a){function b(){var b;a.editable().attachListener(a,"selectionChange",function(){var d=a.getSelection().getSelectedElement();d&&(b&&(b.detachEvent("onresizestart",c),b=null),d.$.attachEvent("onresizestart",c),b=d.$)})}function c(a){a.returnValue=!1}if(CKEDITOR.env.gecko)try{var d=a.document.$;d.execCommand("enableObjectResizing",!1,!a.config.disableObjectResizing),d.execCommand("enableInlineTableEditing",!1,!a.config.disableNativeTableHandles)}catch(e){}else CKEDITOR.env.ie&&11>CKEDITOR.env.version&&a.config.disableObjectResizing&&b(a)}function c(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable=false]{min-height:0 !important}");var b,c=[];for(b in CKEDITOR.dtd.$removeEmpty)c.push("html.CSS1Compat "+b+"[contenteditable=false]");a.push(c.join(",")+"{display:inline-block}")}else CKEDITOR.env.gecko&&(a.push("html{height:100% !important}"),a.push("img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"));return a.push("html{cursor:text;*cursor:auto}"),a.push("img,input,textarea{cursor:default}"),a.join("\n")}CKEDITOR.plugins.add("wysiwygarea",{init:function(a){a.config.fullPage&&a.addFeature({allowedContent:"html head title; style [media,type]; body (*)[id]; meta link [*]",requiredContent:"body"}),a.addMode("wysiwyg",function(b){function c(c){c&&c.removeListener(),a.editable(new d(a,f.$.contentWindow.document.body)),a.setData(a.getData(1),b)}var e="document.open();"+(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+"document.close();",e=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void(function(){"+encodeURIComponent(e)+"}())":"",f=CKEDITOR.dom.element.createFromHtml('');f.setStyles({width:"100%",height:"100%"}),f.addClass("cke_wysiwyg_frame").addClass("cke_reset"),e=a.ui.space("contents"),e.append(f);var g=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.gecko;g&&f.on("load",c);var h=a.title,i=a.fire("ariaEditorHelpLabel",{}).label;if(h&&(CKEDITOR.env.ie&&i&&(h+=", "+i),f.setAttribute("title",h)),i){var h=CKEDITOR.tools.getNextId(),j=CKEDITOR.dom.element.createFromHtml(''+i+"");e.append(j,1),f.setAttribute("aria-describedby",h)}a.on("beforeModeUnload",function(a){a.removeListener(),j&&j.remove()}),f.setAttributes({tabIndex:a.tabIndex,allowTransparency:"true"}),!g&&c(),a.fire("ariaWidget",f)})}}),CKEDITOR.editor.prototype.addContentsCss=function(a){var b=this.config,c=b.contentsCss;CKEDITOR.tools.isArray(c)||(b.contentsCss=c?[c]:[]),b.contentsCss.push(a)};var d=CKEDITOR.tools.createClass({$:function(){this.base.apply(this,arguments),this._.frameLoadedHandler=CKEDITOR.tools.addFunction(function(b){CKEDITOR.tools.setTimeout(a,0,this,b)},this),this._.docTitle=this.getWindow().getFrame().getAttribute("title")},base:CKEDITOR.editable,proto:{setData:function(a,b){var d=this.editor;if(b)this.setHtml(a),this.fixInitialSelection(),d.fire("dataReady");else{this._.isLoadingData=!0,d._.dataStore={id:1};var e=d.config,f=e.fullPage,g=e.docType,h=CKEDITOR.tools.buildStyleHtml(c()).replace(/\n
        \n
        \n \n \n \n \n \n \n {{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}\n
        \n
        \n
        \n \n
        \n
        \n

        \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n \n \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n

        {{chatWebsite.rating_message}}

        \n
        \n
        \n \n \n
        \n
        \n \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n'),a.put("app/channels/chat/queue/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/chat/queue/list/list.html",'\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_QUEUES\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/chat/queue/view/view.agents.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_AGENTS\' | translate}}\n
        \n
        \n
        \n \n
        \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n'),a.put("app/channels/chat/queue/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{queue.name}}\n
        \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/chat/queue/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
        \n
        \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n \n {{$select.selected.toUpperCase()}}\n \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/chat/realtime/view/agent/agent.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/chat/realtime/view/agent/agent.modal.info.html",'\n\n\n'),a.put("app/channels/chat/realtime/view/agent/queue.modal.add.html",'\n\n\n'), +a.put("app/channels/chat/realtime/view/application/application.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/chat/realtime/view/view.html",'\n\n\n'),a.put("app/channels/chat/room/external/list/list.html",'\n
        \n
        \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n
        \n \n \n \n \n \n \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n \n \n
        \n
        \n \n {{$item}}\n \n {{tag}}\n \n \n
        \n
        \n
        \n \n
        \n
        \n \n \n \n\n \n\n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/chat/room/group/list/list.html",'\n
        \n
        \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n
        \n \n \n \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n \n \n
        \n
        \n \n {{$item}}\n \n {{tag}}\n \n \n
        \n
        \n
        \n \n
        \n
        \n \n \n \n\n \n\n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/chat/room/internal/list/list.html",'\n
        \n
        \n \n \n \n\n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/chat/room/room.add.html",'\n\n\n\n\n'),a.put("app/channels/chat/room/room.close.html",'\n\n\n'),a.put("app/channels/chat/room/room.directive.html",'
        \n
        \n
        \n \n | \n {{chatRoom.status}}\n | \n {{chatRoom.ChatWebsite.name | truncate: 25: \'...\': true}}\n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n \n \n
        \n
        \n \n {{$item}}\n \n {{tag}}\n \n \n
        \n
        \n
        \n \n
        \n
        \n \n \n \n \n \n \n {{\'APPLICATION_ROOM_ID\' | translate}}:

        {{chatRoom.id}}

        \n {{\'APPLICATION_NAME\' | translate}}:

        {{chatRoom.ChatVisitor.fullname}}

        \n {{\'APPLICATION_EMAIL\' | translate}}:

        {{chatRoom.ChatVisitor.email}}

        \n {{\'APPLICATION_REMOTE_ADDRESS\' | translate}}:

        {{chatRoom.ChatVisitor.remote_address}}

        \n {{\'APPLICATION_BROWSER\' | translate}}:

        {{chatRoom.ChatVisitor.browser}}

        \n {{\'APPLICATION_OS\' | translate}}:

        {{chatRoom.ChatVisitor.os}}

        \n
        \n
        \n\n \n \n \n \n \n {{\'APPLICATION_NAME\' | translate}}:

        {{user.fullname}}

        \n {{\'APPLICATION_ROLE\' | translate}}:

        {{user.role}}

        \n {{\'APPLICATION_INTERNAL\' | translate}}:

        {{user.internal}}

        \n {{\'APPLICATION_EMAIL\' | translate}}:

        {{user.email}}

        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n \n \n \n
        \n
        \n
        \n
        \n
        \n \n \n \n
        \n
        \n \n \n
        \n No Results Found\n
        \n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
        \n
        \n\n
        \n
        \n
        \n
        \n
        \n
        \n"),a.put("app/channels/chat/room/room.html",'\n\n\n'),a.put("app/channels/chat/room/template.html",'
        \n
        \n
        \n
        \n \n \n
        \n
        \n \n
        \n {{video.description}}\n
        \n
        \n {{video.views}}\n {{video.likes}}\n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/chat/room/view.tags.modal.html",'\n\n\n'),a.put("app/channels/chat/visitor/list/list.html",'\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_VISITORS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/chat/visitor/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{chatVisitor.fullname}}\n
        \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/chat/visitor/view/view.profile.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_PROFILE\' | translate}}\n
        \n
        \n \n
        \n
        \n
        \n'),a.put("app/channels/chat/website/list/list.html",'\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_WEB_SITES\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/channels/chat/website/view/action/list/list.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n'),a.put("app/channels/chat/website/view/action/view/view.html",'\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACTION\' | translate }} \n
        \n
        \n
        \n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n
        \n \n
        \n \n \n {{$select.selected.fullname}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n \n
        \n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n \n
        \n
        \n \n
        \n
        to
        \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
        \n
        \n \n
        \n\n
        \n\n \n
        \n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/chat/website/view/action/wizard/wizard.html",'\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACTION\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n
        \n \n
        \n \n \n {{$select.selected.fullname}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n \n
        \n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n \n
        \n
        \n \n
        \n
        to
        \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
        \n
        \n \n
        \n\n
        \n\n \n
        \n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n\n \n
        \n
        \n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/chat/website/view/disposition/modal/add.modal.html",'\n\n\n'),a.put("app/channels/chat/website/view/disposition/view/view.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_DISPOSITIONS\' | translate}}\n
        \n
        \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n

        Info! {{\'MESSAGE_NO_DISPOSITIONS_AVAILABLE\' | translate}}

        \n
        \n
        \n
        \n\n \n
        \n
        \n
        \n
        \n \n
        \n \n \n \n \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/chat/website/view/embedding/view/view.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_EMBEDDING\' | translate}}\n
        \n \n
        \n
        \n
        \n
        \n

        {{\'APPLICATION_EMBED_SNIPPET\' | translate}}

        \n

        \n {{\'MESSAGE_EMBED_SNIPPET\' | translate}}\n

        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/channels/chat/website/view/form/view/view.html",'
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_FIELDS_SELECTED\' | translate }}\n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_FIELDS_AVAILABLE\' | translate }}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_FIELDS_SELECTED\' | translate }}\n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_FIELDS_AVAILABLE\' | translate }}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/chat/website/view/proactive/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/chat/website/view/proactive/list/list.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_PROACTIVE_ACTIONS\' | translate}}\n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n'),a.put("app/channels/chat/website/view/setting/view/view.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
        \n
        \n
        \n
        \n \n
        \n \n
        \n\n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n\n \n \n \n\n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/chat/website/view/snippet/view/view.html",'
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n\n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n \n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
        \n
        \n
        \n
        \n \n\n\n \n
        \n
        \n \n\n \n
        \n
        \n\n \n
        \n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n \n\n \n
        \n
        \n\n

        {{\'APPLICATION_ONLINE_STATE\' | translate}}

        \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n

        {{\'APPLICATION_RATING_STATE\' | translate}}

        \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n

        {{\'APPLICATION_OFFLINE_STATE\' | translate}}

        \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n\n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n\n \n
        \n
        \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n
        \n \n {{\'MESSAGE_REMEMBER_SMTP_SERVICE_ACCOUNT\' | translate}}.\n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/channels/chat/website/view/view.html",'\n\n\n'),a.put("app/channels/chat/website/wizard/wizard.html",'\n\n\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_WEB_SITE\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n \n
        \n
        \n\n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
        \n
        \n
        \n
        \n \n\n\n \n
        \n
        \n\n \n
        \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n\n \n
        \n\n \n
        \n \n \n {{$select.selected ? \'On\' : \'Off\'}}\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/fax/account/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/fax/account/list/list.html",'\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNTS\' | translate }} \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/fax/account/view/action/list/list.html",'
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n {{\'APPLICATION_ACTIONS\' | translate}}\r\n
        \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n'), +a.put("app/channels/fax/account/view/action/view/view.html",'\r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n {{ \'APPLICATION_ACTION\' | translate }} \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n \r\n \r\n {{$select.selected.name}}\r\n \r\n
        \r\n
        \r\n
        \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
        \r\n \r\n\r\n \r\n
        \r\n \r\n \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
        \r\n \r\n\r\n
        \r\n \r\n
        \r\n \r\n \r\n {{$select.selected.name}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n

        Warning!

        \r\n

        \r\n {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\r\n

        \r\n

        \r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_QUEUES\' | translate}}\r\n

        \r\n
        \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
        \r\n \r\n
        \r\n\r\n
        \r\n \r\n
        \r\n \r\n \r\n {{$select.selected.fullname}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n

        Warning!

        \r\n

        \r\n {{ \'MESSAGE_NO_AGENTS_AVAILABLE\' | translate }}\r\n

        \r\n

        \r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_QUEUES\' | translate}}\r\n

        \r\n
        \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
        \r\n \r\n
        \r\n\r\n \r\n
        \r\n \r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ intType.name | translate }}\r\n \r\n \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
        \r\n \r\n\r\n
        \r\n \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        to
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n\r\n \r\n
        \r\n \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n\r\n \r\n
        \r\n \r\n
        \r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ weekDay.name | translate}}\r\n \r\n \r\n to\r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ weekDay.name | translate }}\r\n \r\n \r\n
        \r\n
        \r\n \r\n\r\n \r\n
        \r\n \r\n
        \r\n \r\n {{$select.selected}}\r\n \r\n {{monthDay}}\r\n \r\n \r\n to\r\n \r\n {{$select.selected}}\r\n \r\n {{monthDay}}\r\n \r\n \r\n
        \r\n
        \r\n \r\n\r\n \r\n
        \r\n \r\n
        \r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ month.name | translate }}\r\n \r\n \r\n to\r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ month.name | translate }}\r\n \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n\r\n
        \r\n\r\n \r\n
        \r\n \r\n \r\n {{ $select.selected.name}}\r\n \r\n {{ interval.name}}\r\n \r\n \r\n
        \r\n

        Warning!

        \r\n

        \r\n {{ \'MESSAGE_NO_INTERVALS_AVAILABLE\' | translate }}\r\n

        \r\n

        \r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_INTERVALS\' | translate}}\r\n

        \r\n
        \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
        \r\n \r\n\r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n\r\n'),a.put("app/channels/fax/account/view/action/wizard/wizard.html",'\r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n {{ \'APPLICATION_ACTION\' | translate }} WIZARD \r\n
        \r\n
        \r\n
        \r\n \r\n \r\n
        \r\n \r\n
        \r\n \r\n \r\n {{$select.selected.name}}\r\n \r\n
        \r\n
        \r\n
        \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
        \r\n \r\n\r\n \r\n
        \r\n \r\n \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
        \r\n \r\n\r\n
        \r\n \r\n
        \r\n \r\n \r\n {{$select.selected.name}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n

        Warning!

        \r\n

        \r\n {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\r\n

        \r\n

        \r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_QUEUES\' | translate}}\r\n

        \r\n
        \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
        \r\n \r\n
        \r\n\r\n
        \r\n \r\n
        \r\n \r\n \r\n {{$select.selected.fullname}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n

        Warning!

        \r\n

        \r\n {{ \'MESSAGE_NO_AGENTS_AVAILABLE\' | translate }}\r\n

        \r\n

        \r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_QUEUES\' | translate}}\r\n

        \r\n
        \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
        \r\n \r\n
        \r\n\r\n \r\n
        \r\n \r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ intType.name | translate }}\r\n \r\n \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
        \r\n \r\n\r\n
        \r\n \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        to
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n\r\n \r\n
        \r\n \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n\r\n \r\n
        \r\n \r\n
        \r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ weekDay.name | translate}}\r\n \r\n \r\n to\r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ weekDay.name | translate }}\r\n \r\n \r\n
        \r\n
        \r\n \r\n\r\n \r\n
        \r\n \r\n
        \r\n \r\n {{$select.selected}}\r\n \r\n {{monthDay}}\r\n \r\n \r\n to\r\n \r\n {{$select.selected}}\r\n \r\n {{monthDay}}\r\n \r\n \r\n
        \r\n
        \r\n \r\n\r\n \r\n
        \r\n \r\n
        \r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ month.name | translate }}\r\n \r\n \r\n to\r\n \r\n {{ $select.selected.name | translate }}\r\n \r\n {{ month.name | translate }}\r\n \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n\r\n
        \r\n\r\n \r\n
        \r\n \r\n \r\n {{ $select.selected.name}}\r\n \r\n {{ interval.name}}\r\n \r\n \r\n
        \r\n

        Warning!

        \r\n

        \r\n {{ \'MESSAGE_NO_INTERVALS_AVAILABLE\' | translate }}\r\n

        \r\n

        \r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_INTERVALS\' | translate}}\r\n

        \r\n
        \r\n \r\n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\r\n \r\n
        \r\n \r\n\r\n
        \r\n\r\n \r\n
        \r\n
        \r\n \r\n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \r\n \r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n\r\n'),a.put("app/channels/fax/account/view/disposition/modal/add.modal.html",'\n\n\n'), +a.put("app/channels/fax/account/view/disposition/view/view.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_DISPOSITIONS\' | translate}}\n
        \n
        \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n

        Info! {{\'MESSAGE_NO_DISPOSITIONS_AVAILABLE\' | translate}}

        \n
        \n
        \n
        \n\n \n
        \n
        \n
        \n
        \n \n
        \n \n \n \n \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/fax/account/view/setting/view/view.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'DESCRIPTION_HEADERINFO\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_INTERVALS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'DESCRIPTION_LOCALSTATIONID\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n\n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n\n \n \n \n\n
        \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n\n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n \n {{\'DESCRIPTION_ECM\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{\'DESCRIPTION_MINRATE\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{\'DESCRIPTION_MAXRATE\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'DESCRIPTION_MODEM\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'DESCRIPTION_GATEWAY\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_GATEWAY\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'DESCRIPTION_FAXDETECT\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_FAXDETECT\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'DESCRIPTION_T38TIMEOUT\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_T38TIMEOUT\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n\n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/fax/account/view/view.html",'\n
        \n
        \n \n\n\n\n\n \n
        \n \n
        \n \n
        \n \n
        \n \n\n \n
        \n
        \n {{ account.name || account.description }}\n
        \n
        \n {{ account.phone }}\n
        \n
        \n \n\n \n \n \n
        \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/fax/account/wizard/wizard.html",'\n\n\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'DESCRIPTION_HEADERINFO\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_INTERVALS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'DESCRIPTION_LOCALSTATIONID\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n\n
        \n
        \n\n \n
        \n\n \n
        \n
        \n \n \n {{\'DESCRIPTION_ECM\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{\'DESCRIPTION_MINRATE\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{\'DESCRIPTION_MAXRATE\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'DESCRIPTION_MODEM\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'DESCRIPTION_GATEWAY\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_GATEWAY\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'DESCRIPTION_FAXDETECT\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_FAXDETECT\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'DESCRIPTION_T38TIMEOUT\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_T38TIMEOUT\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n \n\n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n\n
        \n\n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/channels/fax/inbox/message/message.directive.html",'
        \n
        \n
        \n From: \n [{{message.from}}]\n
        \n To: \n [{{message.to}}]\n
        \n
        \n {{\'APPLICATION_SENT_BY\' | translate}}: {{message.User.fullname}}\n
        \n
        \n
        \n \n \n {{message.status | uppercase}}\n \n \n {{message.status | uppercase}}\n \n \n {{message.status | uppercase}}\n \n \n \n \n {{message.status | uppercase}}\n \n \n \n \n \n
        \n
        \n {{faxAttachment.name}}\n \n \n \n
        \n
        \n'),a.put("app/channels/fax/inbox/note/note.directive.html",'
        \n
        \n
        \n \n \n \n\n \n
        \n
        \n {{\'APPLICATION_ADD_BY\' | translate}}: {{message.User.fullname}}\n
        \n
        \n
        \n \n
        \n'),a.put("app/channels/fax/inbox/note/note.modal.html",'\n\n\n'),a.put("app/channels/fax/inbox/room/room.directive.html",'\n
        \n
        \n
        \n
        \n \n | \n #{{faxRoom.id}} {{faxRoom.status}}\n | \n {{faxRoom.from}}\n
        \n
        \n \n \n \n \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n \n \n
        \n
        \n \n {{$item}}\n \n {{tag}}\n \n \n
        \n
        \n
        \n \n
        \n\n
        \n\n \n\n
        \n
          \n \n
          \n \n \n
          \n \n \n \n
        \n
        \n
        \n
        \n
        \n

        Info! {{\'MESSAGE_FAX_ROOM_CLOSED\' | translate}}

        \n

        \n {{\'MESSAGE_FAX_ROOM_CLOSED_DETAILS\' | translate}}.\n

        \n
        \n
        \n \n
        \n\n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n
        {{ item.file.name | truncate: 5: \'...\': true}}{{ item.file.size/1024/1024|number:2 }} MB\n
        \n
        \n
        \n
        \n \n \n \n \n \n
        \n
        \n
        \n
        \n
        \n \n\n \n\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n\n'),a.put("app/channels/fax/inbox/status/status.modal.html",'\n\n\n'),a.put("app/channels/fax/inbox/view/account/list/list.html",'\r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n \r\n \r\n
        \r\n
        \r\n \r\n {{$item}}\r\n \r\n {{tag}}\r\n \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n \r\n \r\n\r\n \r\n
        \r\n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \r\n
        \r\n \r\n
        \r\n
        \r\n\r\n'),a.put("app/channels/fax/inbox/view/view.agents.modal.html",'\n\n\n'),a.put("app/channels/fax/inbox/view/view.html",'
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n\r\n\r\n
        \r\n
        \r\n \r\n
        \r\n

        Warning!

        \r\n

        \r\n {{ \'MESSAGE_NO_AVAILABLE_ACCOUNTS\' | translate }}\r\n

        \r\n

        \r\n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_ACCOUNTS\' | translate}}\r\n

        \r\n
        \r\n
        \r\n\r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n

        Info! {{\'APPLICATION_NO_ACCOUNT_SELECTED\' | translate}}

        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n'),a.put("app/channels/fax/inbox/view/view.status.modal.html",'\n\n\n'),a.put("app/channels/fax/inbox/view/view.tags.modal.html",'\n\n\n'),a.put("app/channels/fax/queue/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/fax/queue/list/list.html",'\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_QUEUES\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/fax/queue/view/view.agents.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_AGENTS\' | translate}}\n
        \n
        \n
        \n \n
        \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n'),a.put("app/channels/fax/queue/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{queue.name}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/channels/fax/queue/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
        \n
        \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n \n {{$select.selected.toUpperCase()}}\n \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/fax/realtime/view/agent/agent.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/fax/realtime/view/agent/agent.modal.info.html",'\n\n\n'),a.put("app/channels/fax/realtime/view/agent/queue.modal.add.html",'\n\n\n'),a.put("app/channels/fax/realtime/view/application/application.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/fax/realtime/view/view.html",'\n\n\n'),a.put("app/channels/mail/account/list/list.html",'\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNTS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/mail/account/view/action/list/list.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n'),a.put("app/channels/mail/account/view/action/view/view.html",'\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACTION\' | translate }} \n
        \n
        \n
        \n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n
        \n \n
        \n \n \n {{$select.selected.fullname}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n \n
        \n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n \n
        \n
        \n \n
        \n
        to
        \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
        \n
        \n \n
        \n\n
        \n\n \n
        \n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/mail/account/view/action/wizard/wizard.html",'\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACTION\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n
        \n \n
        \n \n \n {{$select.selected.fullname}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n \n
        \n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n \n
        \n
        \n \n
        \n
        to
        \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
        \n
        \n \n
        \n\n
        \n\n \n
        \n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n\n \n
        \n
        \n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/channels/mail/account/view/disposition/modal/add.modal.html",'\n\n\n'),a.put("app/channels/mail/account/view/disposition/view/view.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_DISPOSITIONS\' | translate}}\n
        \n
        \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n

        Info! {{\'MESSAGE_NO_MAIL_DISPOSITIONS_AVAILABLE\' | translate}}

        \n
        \n
        \n
        \n\n \n
        \n
        \n
        \n
        \n \n
        \n \n \n \n \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/mail/account/view/setting/view/view.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
        \n \n
        \n
        \n \n \n \n\n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n\n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n\n \n \n \n\n
        \n
        \n \n\n \n
        \n \n
        \n\n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n\n \n \n \n\n
        \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n\n \n
        \n
        \n

        ERROR

        \n \n
        \n\n
        \n

        CONNECTED

        \n
        \n\n
        \n

        TRYING...

        \n
        \n\n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n
        \n \n\n \n
        \n\n
        \n

        ERROR

        \n \n
        \n\n
        \n

        CONNECTED

        \n
        \n\n
        \n

        TRYING...

        \n
        \n\n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/mail/account/view/view.html",'\n
        \n
        \n \n\n\n\n\n \n
        \n \n
        \n \n
        \n \n
        \n \n\n \n
        \n
        \n {{ account.description || account.name }}\n
        \n
        \n {{account.email}}\n
        \n
        \n \n\n \n \n \n
        \n
        \n \n
        \n \n
        \n\n
        \n'),a.put("app/channels/mail/account/wizard/wizard.html",'\n
        \n
        \n \n \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n \n
        \n
        \n\n \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n
        \n\n \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/channels/mail/inbox/message/message.directive.html",'
        \n
        \n
        \n From: \n [{{message.from[0]}}]\n
        \n To: \n

        ["{{to}}",]

        \n
        \n Cc: \n

        ["{{cc}}",]

        \n
        \n
        \n {{\'APPLICATION_SENT_BY\' | translate}}: {{message.User.fullname}}\n
        \n
        \n
        \n \n \n {{message.status | uppercase}}\n \n \n {{message.status | uppercase}}\n \n \n {{message.status | uppercase}}\n \n \n \n \n {{message.status | uppercase}}\n \n \n \n \n \n
        \n
        \n
        {{\'MESSAGE_NO_AVAILABLE_TEXT\' | translate | lowercase}}
        \n
        \n
        \n {{mailAttachment.name}}\n \n ({{mailAttachment.size | prettyBytes}})\n \n \n \n \n \n \n \n
        \n
        \n'),a.put("app/channels/mail/inbox/note/note.directive.html",'
        \n
        \n
        \n \n \n \n\n \n
        \n
        \n {{\'APPLICATION_ADD_BY\' | translate}}: {{message.User.fullname}}\n
        \n
        \n
        \n \n
        \n'),a.put("app/channels/mail/inbox/note/note.modal.html",'\n\n\n'),a.put("app/channels/mail/inbox/room/room.directive.html",'\n
        \n
        \n
        \n
        \n \n | \n #{{mailRoom.id}} {{mailRoom.status}}\n | \n Ref: #{{mailRoom.ParentId}}\n | \n {{mailRoom.subject || \'No subject\' | truncate: 25: \'...\': true}}\n
        \n
        \n \n \n \n \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n \n \n
        \n
        \n \n {{$item}}\n \n {{tag}}\n \n \n
        \n
        \n
        \n \n
        \n\n
        \n\n \n
        \n
          \n \n
          \n \n \n
          \n \n \n \n
        \n
        \n
        \n
        \n
        \n

        Info! {{\'MESSAGE_MAIL_ROOM_CLOSED\' | translate}}

        \n

        \n {{\'MESSAGE_MAIL_ROOM_CLOSED_DETAILS\' | translate}}.\n

        \n
        \n
        \n \n
        \n\n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n {{$item}}\n \n {{to}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n {{$item}}\n \n {{cc}}\n \n \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n \n
        \n {{\'APPLICATION_ATTACHMENTS\' | translate}}:\n {{ item.file.name }}{{ item.file.size/1024/1024|number:2 }} MB\n
        \n
        \n
        \n
        \n \n \n \n \n \n
        \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n\n \n
        \n
        \n
        \n \n \n \n
        \n
        \n \n \n
        \n No Results Found\n
        \n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
        \n
        \n
        \n \n\n
        \n \n
        \n
        \n
        \n
        \n
        \n\n"),a.put("app/channels/mail/inbox/status/status.modal.html",'\n\n\n'),a.put("app/channels/mail/inbox/view/account/list/list.html",'\n
        \n
        \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n
        \n \n \n \n
        \n
        \n \n {{$item}}\n \n {{tag}}\n \n \n
        \n
        \n
        \n \n
        \n
        \n \n \n \n\n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/mail/inbox/view/view.agents.modal.html",'\n\n\n'),a.put("app/channels/mail/inbox/view/view.html",'\n\n\n
        \n
        \n \n
        \n\n
        \n \n
        \n
        \n
        \n

        Info! {{\'APPLICATION_NO_ACCOUNT_SELECTED\' | translate}}

        \n
        \n
        \n
        \n \n
        \n\n
        \n'),a.put("app/channels/mail/inbox/view/view.tags.modal.html",'\n\n\n'),a.put("app/channels/mail/inbox/view/view.templates.modal.html",'\n\n\n'),a.put("app/channels/mail/queue/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/mail/queue/list/list.html",'\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_QUEUES\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/channels/mail/queue/view/view.agents.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_AGENTS\' | translate}}\n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n

        \n
        \n
        \n \n
        \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n'),a.put("app/channels/mail/queue/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{queue.name}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n \n'),a.put("app/channels/mail/queue/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
        \n
        \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n {{$select.selected.toUpperCase()}}\n \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/mail/realtime/view/agent/agent.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/mail/realtime/view/agent/agent.modal.info.html",'\n\n\n'),a.put("app/channels/mail/realtime/view/agent/queue.modal.add.html",'\n\n\n'),a.put("app/channels/mail/realtime/view/application/application.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/mail/realtime/view/view.html",'\n\n\n'),a.put("app/channels/mail/realtime/view/view.queue.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/realtime/view/agent/agent.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/realtime/view/agent/agent.modal.info.html",'\n\n\n'),a.put("app/channels/realtime/view/agent/queue.modal.add.html",'\n\n\n'),a.put("app/channels/realtime/view/view.html",'\n\n\n'),a.put("app/channels/sms/account/list/list.html",'\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNTS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/sms/account/view/action/list/list.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n'),a.put("app/channels/sms/account/view/action/view/view.html",'\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACTION\' | translate }} \n
        \n
        \n
        \n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n
        \n \n
        \n \n \n {{$select.selected.fullname}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n \n
        \n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n \n
        \n
        \n \n
        \n
        to
        \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
        \n
        \n \n
        \n\n
        \n\n \n
        \n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/channels/sms/account/view/action/wizard/wizard.html",'\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACTION\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n
        \n \n
        \n \n \n {{$select.selected.fullname}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n \n
        \n \n \n {{ $select.selected.name | translate }}\n \n {{ intType.name | translate }}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n \n
        \n
        \n \n
        \n
        to
        \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate}}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ weekDay.name | translate }}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n to\n \n {{$select.selected}}\n \n {{monthDay}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n to\n \n {{ $select.selected.name | translate }}\n \n {{ month.name | translate }}\n \n \n
        \n
        \n \n
        \n\n
        \n\n \n
        \n \n \n {{ $select.selected.name}}\n \n {{ interval.name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n\n \n
        \n
        \n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/sms/account/view/disposition/modal/add.modal.html",'\n\n\n'),a.put("app/channels/sms/account/view/disposition/view/view.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_DISPOSITIONS\' | translate}}\n
        \n
        \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n

        Info! {{\'MESSAGE_NO_SMS_DISPOSITIONS_AVAILABLE\' | translate}}

        \n
        \n
        \n
        \n\n \n
        \n
        \n
        \n
        \n \n
        \n \n \n \n \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/sms/account/view/view.html",'\n
        \n
        \n \n\n\n\n\n \n
        \n \n
        \n \n
        \n \n
        \n \n\n \n
        \n
        \n {{ account.description || account.name }}\n
        \n
        \n {{account.email}}\n
        \n
        \n \n\n \n \n \n
        \n
        \n \n
        \n \n
        \n\n
        \n'),a.put("app/channels/sms/account/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n
        \n \n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n
        \n\n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n\n \n \n \n\n
        \n
        \n \n\n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n\n
        \n \n \n \n {{ \'DESCRIPTION_PHONE_NUMBER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n\n
        \n \n \n {{$select.selected | uppercase}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{ \'DESCRIPTION_PHONE_NUMBER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n\n
        \n Copy the following url and insert it into your {{account.type}} account settings to receive sms.\n Detail.\n \n {{\'APPLICATION_COPY_TO_CLIPBOARD\' | translate}}\n \n

        \n \n\n
        \n \n \n
        \n\n
        \n Copy the following url and insert it into your {{account.type}} account settings to receive delivery status.\n Detail\n \n {{\'APPLICATION_COPY_TO_CLIPBOARD\' | translate}}\n \n

        \n\n \n\n
        \n \n \n
        \n
        \n \n\n\n\n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/channels/sms/account/wizard/wizard.html",'\n
        \n
        \n \n \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n \n\n
        \n \n \n {{$select.selected | uppercase}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n \n {{ \'DESCRIPTION_PHONE_NUMBER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n\n
        \n \n \n {{$select.selected | uppercase}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{ \'DESCRIPTION_PHONE_NUMBER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n\n\n\n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n
        \n\n\n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/sms/inbox/room/room.directive.html",'\n\n
        \n
        \n
        \n
        \n \n \n \n \n | \n #{{SmsRoom.id}} {{SmsRoom.status}}\n \n
        \n
        \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n \n \n \n
        \n
        \n \n {{$item}}\n \n {{tag}}\n \n \n
        \n
        \n
        \n \n
        \n
        \n\n
        \n
          \n
        • \n \n \n
          \n \n \n
          \n \n
        • \n
        \n
        \n
        \n
        \n
        \n

        Info! {{\'MESSAGE_SMS_ROOM_CLOSED\' | translate}}

        \n

        \n {{\'MESSAGE_SMS_ROOM_CLOSED_DETAILS\' | translate}}.\n

        \n
        \n
        \n \n
        \n\n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n \n \n
        \n\n
        \n
        \n
        \n \n
        \n
        \n \n \n {{ \'DESCRIPTION_PHONE_NUMBER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n \n \n
        \n \n
        \n
        \n \n \n \n
        \n
        \n \n \n
        \n No Results Found\n
        \n \n
        \n
        \n\n
        \n \n \n
        \n
        \n \n \n Max 160 chars\n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
        \n
        \n\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n\n"),a.put("app/channels/sms/inbox/sms/sms.html",'
        \n
        \n
        \n From: \n [{{smsMessage.from}}]\n
        \n To: \n [{{smsMessage.to}}]\n
        \n
        \n
        \n {{\'APPLICATION_SENT_BY\' | translate}}: {{smsMessage.User.fullname}}\n {{\'APPLICATION_SENT_BY\' | translate}}: {{smsMessage.source}}\n\n
        \n
        \n\n
        \n \n \n {{smsMessage.status | uppercase}}\n \n \n {{smsMessage.status | uppercase}}\n \n \n {{smsMessage.status | uppercase}}\n \n \n {{smsMessage.status | uppercase}}\n \n \n {{smsMessage.status | uppercase}}\n \n \n {{smsMessage.status | uppercase}}\n \n
        \n Error Code:{{smsMessage.errorcode}}\n Error Code:{{smsMessage.errorcode}}\n
        \n\n \n
        \n
        \n \n\n
        \n'),a.put("app/channels/sms/inbox/view/account/list/list.html",'\n
        \n
        \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n
        \n \n \n \n
        \n
        \n \n {{$item}}\n \n {{tag}}\n \n \n
        \n
        \n
        \n \n
        \n
        \n \n \n \n\n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/sms/inbox/view/view.agents.modal.html",'\n\n\n'),a.put("app/channels/sms/inbox/view/view.html",'\n\n\n\n
        \n
        \n \n
        \n\n
        \n \n
        \n
        \n

        Info! {{\'APPLICATION_NO_ACCOUNT_SELECTED\' | translate}}

        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/sms/inbox/view/view.status.modal.html",'\n\n\n'), +a.put("app/channels/sms/inbox/view/view.tags.modal.html",'\n\n\n'),a.put("app/channels/sms/inbox/view/view.templates.modal.html",'\n\n\n'),a.put("app/channels/sms/queue/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/sms/queue/list/list.html",'\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_QUEUES\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/sms/queue/view/view.agents.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_AGENTS\' | translate}}\n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n

        \n
        \n
        \n \n
        \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n'),a.put("app/channels/sms/queue/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{queue.name}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n \n'),a.put("app/channels/sms/queue/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
        \n
        \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n {{$select.selected.toUpperCase()}}\n \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/sms/realtime/view/agent/agent.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/sms/realtime/view/agent/agent.modal.info.html",'\n\n\n'),a.put("app/channels/sms/realtime/view/agent/queue.modal.add.html",'\n\n\n'),a.put("app/channels/sms/realtime/view/application/application.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/sms/realtime/view/view.html",'\n\n\n'),a.put("app/channels/sms/realtime/view/view.queue.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/chanspy/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/voice/chanspy/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_CHANSPY\' | translate }} \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/chanspy/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{chanspy.name}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/chanspy/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_CHANSPY\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item.value}}: {{$item.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/channels/voice/context/list/create.modal.html",'\n\n\n'),a.put("app/channels/voice/context/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_CONTEXTS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/context/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{context.name}}\n
        \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n \n'),a.put("app/channels/voice/context/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_CONTEXT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_CANT_EDIT_NAME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/voice/disposition/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_DISPOSITIONS\' | translate }} \n
        \n
        \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n

        Info! {{\'MESSAGE_NO_DISPOSITIONS_AVAILABLE\' | translate}}

        \n
        \n
        \n
        \n\n \n
        \n
        \n
        \n
        \n \n
        \n \n \n \n \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/disposition/list/modal/add.modal.html",'\n\n\n'),a.put("app/channels/voice/moh/list/create.modal.html",'\n\n\n'),a.put("app/channels/voice/moh/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_MOHS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/moh/view/view.addFiles.html",'\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_MOH\' | translate }} {{ \'APPLICATION_ADD_FILES\' | translate }} \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_SOUNDS\' | translate}}\n

        \n
        \n
        \n\n \n
        \n \n \n {{$item.display_name}}\n \n {{sound.display_name}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/moh/view/view.audios.html",'
        \n
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_AUDIOS\' | translate}}\n
        \n \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_FOLDER_DOES_NOT_EXIST\' | translate }}\n

        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_PREVIEW\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
        {{audiofile}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
        \n {{ \'MESSAGE_NO_AUDIOFILES_AVAILABLE\' | translate }}\n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/voice/moh/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{moh.name}}\n
        \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/moh/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_MOH_CLASS\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n {{$translate.instant($select.selected.name)}}\n \n {{$translate.instant(sort.name)}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/voice/queue/list/list.create.modal.html",'\n\n\n'),a.put("app/channels/voice/queue/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_QUEUES\' | translate }}\n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/queue/view/view.agents.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_AGENTS\' | translate}}\n
        \n
        \n
        \n

        Warning!

        {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}

        \n
        \n
        \n \n
        \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n'), +a.put("app/channels/voice/queue/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{queue.name}}\n
        \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/queue/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_QUEUE_SETTINGS\' | translate}}\n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n
        \n
        \n \n
        \n \n \n {{$select.selected.toUpperCase()}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_VOICE_MOH\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_QUEUE_TIMEOUT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_QUEUE_MAXLEN\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_QUEUE_RETRY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n \n
        \n \n \n \n {{ \'DESCRIPTION_QUEUE_WRAPUPTIME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_QUEUE_WEIGHT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_JOINEMPTY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_LEAVEWHENEMPTY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n
        \n \n\n \n
        \n
        \n\n
        \n
        \n
        \n
        \n \n
        \n \n \n {{$item.display_name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_SOUNDS\' | translate}}\n

        \n
        \n \n {{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n
        \n
        \n

        {{\'APPLICATION_SETTINGS\' | translate}}

        \n \n
        \n \n \n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE_FREQUENCY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_QUEUE_MIN_ANNOUNCE_FREQUENCY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE_FREQUENCY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_RANDOM_PERIODIC_ANNOUNCE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE_HOLDTIME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION_LIMIT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_REPORTHOLDTIME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n

        {{\'APPLICATION_SOUNDS\' | translate}}

        \n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_REPORTHOLD\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_YOUARENEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_THEREARE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_CALLSWAITING\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_HOLDTIME\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_MINUTES\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_MINUTE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_SECONDS\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_THANKYOU\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n\n \n
        \n
        \n \n \n
        \n
        \n\n
        \n
        \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_AUTOPAUSE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_RINGINUSE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_QUEUE_MEMBER_DELAY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n \n {{ \'DESCRIPTION_ACW\' | translate }}\n \n \n {{\'APPLICATION_ACW\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_TIMEOUTRESTART\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_MONITOR_FORMAT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_QUEUE_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_ACW_TIMEOUT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n\n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/channels/voice/realtime/view/agent/agent.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/realtime/view/agent/agent.modal.info.html",'\n\n\n'),a.put("app/channels/voice/realtime/view/agent/queue.modal.add.html",'\n\n\n'),a.put("app/channels/voice/realtime/view/parameter/parameter.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/realtime/view/queue/queue.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/realtime/view/telephone/telephone.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/realtime/view/telephone/telephone.modal.info.html",'\n\n\n'),a.put("app/channels/voice/realtime/view/view.html",'\n\n\n'),a.put("app/channels/voice/recording/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_RECORDINGS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/route/inbound/list/create.modal.html",'\n\n\n\n'),a.put("app/channels/voice/route/inbound/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/route/inbound/view/view.applications.html",'
        \n
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/voice/route/inbound/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{route.exten}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n"),a.put("app/channels/voice/route/inbound/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_INBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/voice/route/internal/list/create.modal.html",'\n\n\n\n'),a.put("app/channels/voice/route/internal/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/route/internal/view/view.applications.html",'
        \n
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/voice/route/internal/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{route.exten}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n \n
        \n
        \n\n"),a.put("app/channels/voice/route/internal/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_INTERNAL\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/voice/route/outbound/list/create.modal.html",'\n\n\n\n'), +a.put("app/channels/voice/route/outbound/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/route/outbound/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{route.exten}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n \n
        \n
        \n\n"),a.put("app/channels/voice/route/outbound/view/view.route.html",'
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_NEW_ROUTE\' | translate }} WIZARD \n
        \n
        \n
        \n
        \n {{(main.app.name | translate) || \'Application\'}}\n
        \n \n \n
        \n \n \n
        \n \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_TRUNKS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \' placeholder=\'"name" \' class="form-control" data-ng-model="application.appdata[1]" data-ng-init="application.appdata[1] = null">\n \n {{ \'DESCRIPTION_OUTBOUND_CALLERID\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_OUTBOUND_PREFIX\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n \n
        \n
        \n \n
        \n \n \n \n
        \n \n \n {{$select.selected.name | translate}}\n \n {{$translate.instant(intType.name)}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n \n
        \n \n
        \n
        \n
        to
        \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n to\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n
        \n
        \n \n
        \n\n
        \n\n \n
        \n \n \n {{$select.selected.name | translate}}\n \n {{interval.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n\n \n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/route/outbound/view/view.routeSettings.html",'
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD \n
        \n
        \n
        \n \n
        \n {{(main.app.name | translate) || \'Application\'}}\n
        \n \n
        \n \n
        \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_TRUNKS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \' placeholder=\'"name" \' class="form-control" data-ng-model="route.Applications[selectedApp].appdata[1]">\n \n {{ \'DESCRIPTION_OUTBOUND_CALLERID\' | translate }} "name" <number>\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_OUTBOUND_PREFIX\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n \n
        \n
        \n \n
        \n \n \n \n
        \n \n \n {{$select.selected.name | translate}}\n \n {{intType.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n \n
        \n \n
        \n
        \n
        to
        \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n to\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n
        \n
        \n \n
        \n\n
        \n\n \n
        \n \n \n {{$select.selected.name | translate}}\n \n {{interval.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/channels/voice/route/outbound/view/view.routes.html",'
        \n
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_ACTIONS\' | translate}}\n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/voice/route/outbound/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_OUTBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/voice/route/view.application.html",'\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_NEW_APPLICATION\' | translate }} WIZARD \n
        \n
        \n
        \n \n
        \n {{(main.app.name | translate) || \'Application\'}}\n
        \n \n
        \n \n \n
        \n \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_QUEUES\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_SOUNDS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_SOUNDS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_TRUNKS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_PROJECTS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n {{$select.selected.mailbox}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_VOICEMAILS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_VOICEMAILS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n \n
        \n
        \n \n
        \n \n \n \n
        \n \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n \n
        \n \n
        \n
        \n
        to
        \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n to\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n
        \n
        \n \n
        \n\n
        \n\n \n
        \n \n \n {{$select.selected.name | translate}}\n \n {{interval.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n\n\n'), +a.put("app/channels/voice/route/view.applicationSettings.html",'\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD \n
        \n
        \n
        \n \n
        \n {{(main.app.name | translate) || \'Application\'}}\n
        \n \n
        \n\n \n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_QUEUES\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_SOUNDS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n \n
        \n \n \n {{$select.selected.display_name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_SOUNDS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_TRUNKS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_PROJECTS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n \n \n\n
        \n
        \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n {{$select.selected.name | translate}}\n \n {{hangupCause.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n {{$select.selected.mailbox}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_VOICEMAILS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_VOICEMAILS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n \n
        \n
        \n \n
        \n \n \n \n
        \n \n \n {{$select.selected.name | translate}}\n \n {{intType.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n \n
        \n \n
        \n
        \n
        to
        \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n to\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n
        \n
        \n \n
        \n\n
        \n\n \n
        \n \n \n {{$select.selected.name | translate}}\n \n {{interval.name | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n\n'), +a.put("app/channels/voice/voicemail/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_VOICEMAILS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/voicemail/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{voicemail.mailbox}}\n
        \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/channels/voice/voicemail/view/view.messages.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_MESSAGES\' | translate}}\n
        \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n'),a.put("app/channels/voice/voicemail/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_VOICEMAIL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n \n \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/channels/voice/voicemail/wizard/wizard.html",'
        \n \n \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_VOICEMAIL\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n'),a.put("app/contactmanager/company/list/create.modal.html",'\n\n\n'),a.put("app/contactmanager/company/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_COMPANIES\' | translate }} \n
        \n
        \n \n
        \n \n
        \n \n
        \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/contactmanager/company/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{company.name}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/contactmanager/company/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_COMPANY\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n
        \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/contactmanager/contact/list/import.modal.html",'\n\n\n'),a.put("app/contactmanager/contact/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_CONTACTS\' | translate }} \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_IMPORT_FROM_CSV\' | translate}}\n \n \n
        \n \n
        \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/contactmanager/list/list/create.modal.html",'\n\n\n'),a.put("app/contactmanager/list/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_LISTS\' | translate }} \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/contactmanager/list/view/create.modal.html",'\n\n\n'),a.put("app/contactmanager/list/view/view.agents.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_AGENTS\' | translate}}\n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n

        \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n'),a.put("app/contactmanager/list/view/view.customFieldSettings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_CUSTOM_FIELD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n
        \n\n
        \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n \n
        \n
        \n
        \n
        \n \n \n \n \n
        \n
        \n
        \n \n\n
        \n\n \n
        \n \n \n
        \n \n \n
        \n\n
        \n
        \n
        \n
        \n'),a.put("app/contactmanager/list/view/view.customFields.html",'
        \n
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_CUSTOM_FIELDS\' | translate}}\n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/contactmanager/list/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{list.name}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/contactmanager/list/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_LIST\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/dashboard/chat/chat.html",'
        \n
        \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n  {{ \'APPLICATION_TODAY_STATS\' | translate }}\n \n\n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{open || 0}}\n
        \n
        \n {{\'APPLICATION_DASHBOARD_OPEN\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{closed || 0}}\n
        \n
        \n {{\'APPLICATION_DASHBOARD_CLOSED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{new || 0}}\n
        \n
        \n {{\'APPLICATION_DASHBOARD_NEW\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{unmanaged || 0}}\n
        \n
        \n {{\'APPLICATION_UNMANAGED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{abandoned || 0}}\n
        \n
        \n {{\'APPLICATION_ABANDONED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n\n
        \n
        \n'),a.put("app/dashboard/dashboard.html",'\n\n\n'),a.put("app/dashboard/fax/fax.html",'
        \n
        \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n  {{ \'APPLICATION_TODAY_STATS\' | translate }}\n \n\n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{open || 0}}\n
        \n
        \n {{\'APPLICATION_DASHBOARD_OPEN\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{closed || 0}}\n
        \n
        \n {{\'APPLICATION_DASHBOARD_CLOSED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{new || 0}}\n
        \n
        \n {{\'APPLICATION_DASHBOARD_NEW\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{unmanaged || 0}}\n
        \n
        \n {{\'APPLICATION_UNMANAGED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n\n
        \n
        \n'),a.put("app/dashboard/mail/mail.html",'
        \n
        \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n  {{ \'APPLICATION_TODAY_STATS\' | translate }}\n \n\n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{open || 0}}\n
        \n
        \n {{\'APPLICATION_DASHBOARD_OPEN\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{closed || 0}}\n
        \n
        \n {{\'APPLICATION_DASHBOARD_CLOSED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{new || 0}}\n
        \n
        \n {{\'APPLICATION_DASHBOARD_NEW\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{unmanaged || 0}}\n
        \n
        \n {{\'APPLICATION_UNMANAGED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n\n
        \n
        \n'),a.put("app/dashboard/sms/sms.html",'
        \n
        \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n  {{ \'APPLICATION_TODAY_STATS\' | translate }}\n \n\n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{open || 0}}\n
        \n
        \n {{\'APPLICATION_DASHBOARD_OPEN\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{closed || 0}}\n
        \n
        \n {{\'APPLICATION_DASHBOARD_CLOSED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{new || 0}}\n
        \n
        \n {{\'APPLICATION_DASHBOARD_NEW\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{unmanaged || 0}}\n
        \n
        \n {{\'APPLICATION_UNMANAGED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n\n
        \n
        \n'),a.put("app/dashboard/voice/voice.html",'
        \n
        \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_INBOUND\' | translate }}{{ \'APPLICATION_TODAY_STATS\' | translate }}\n \n\n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{waiting || 0}}\n
        \n
        \n {{\'APPLICATION_WAITING\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{active || 0}}\n
        \n
        \n {{\'APPLICATION_ACTIVE\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{answered || 0}}\n
        \n
        \n {{\'APPLICATION_ANSWERED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{abandoned || 0}}\n
        \n
        \n {{\'APPLICATION_ABANDONED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n\n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{avganswertime || 0}}\n
        \n
        \n {{\'APPLICATION_AVG_ANSWER_TIME\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{avgtalktime || 0}}\n
        \n
        \n {{\'APPLICATION_AVG_TALK_TIME\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{answerrate || 0}}\n
        \n
        \n {{\'APPLICATION_ANSWER_RATE\' | translate}} (%)\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{abandonrate || 0}}\n
        \n
        \n {{\'APPLICATION_ABANDON_RATE\' | translate}} (%)\n
        \n
        \n
        \n
        \n
        \n\n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{totaloffered || 0}}\n
        \n
        \n {{\'APPLICATION_TOTAL_OFFERED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{unmanaged || 0}}\n
        \n
        \n {{\'APPLICATION_UNMANAGED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n\n
        \n \n {{ \'APPLICATION_OUTBOUND\' | translate }}{{ \'APPLICATION_TODAY_STATS\' | translate }}\n \n\n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{manualoutbound || 0}}\n
        \n
        \n {{\'APPLICATION_MANUAL_OUTBOUND\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{manualoutboundglobalduration || 0}}\n
        \n
        \n {{\'APPLICATION_GLOBAL_DURATION\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{manualoutboundanswered || 0}}\n
        \n
        \n {{\'APPLICATION_ANSWERED\' | translate}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{manualoutboundavgduration || 0}}\n
        \n
        \n {{\'APPLICATION_AVG_DURATION\' | translate}} (%)\n
        \n
        \n
        \n
        \n
        \n\n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n {{manualoutboundanswerrate || 0}}\n
        \n
        \n {{\'APPLICATION_ANSWER_RATE\' | translate}} (%)\n
        \n
        \n
        \n
        \n
        \n\n
        \n
        \n
        \n'),a.put("app/desk/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_DESK_COM\' | translate }} \n
        \n \n
        \n
        \n \n \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n \n \n \n
        \n
        \n
        \n
        {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_EMAIL\' | translate }}{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
        {{account.name}}{{account.username}}{{account.remoteUri}}{{account.description}}\n \n {{ \'APPLICATION_EDIT\' | translate }}\n \n \n {{ \'APPLICATION_CHECK\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
        \n No account available\n
        \n \n
        \n \n \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n \n \n
        \n
        \n \n
        \n \n
        \n \n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/desk/view/view.account.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_ACCOUNT\' | translate}}\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/desk/view/view.configuration.html",'
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n
        \n \n\n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/desk/view/view.configurationSettings.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n
        \n All following fields will be join by blank space:\n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n All following fields will be join by new line:\n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n
        \n \n {{$select.selected | ucfirst}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n Add how to fill the fields present in your account:\n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected.label}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected | ucfirst}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/desk/view/view.configurations.html",'
        \n
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_CONFIGURATIONS\' | translate}}\n
        \n \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        {{\'APPLICATION_NAME\' | translate}}{{\'APPLICATION_DESCRIPTION\' | translate}}{{ \'APPLICATION_ACTIONS\' | translate }}
        {{configuration.name}}{{configuration.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
        \n No configuration available\n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/desk/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{account.name}}\n
        \n
        \n {{account.remoteUri}}\n
        \n
        \n \n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/desk/wizard/wizard.html",'\n\n\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
        \n \n\n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n\n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n\n
        \n\n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/freshdesk/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_FRESHDESK\' | translate }} \n
        \n \n
        \n
        \n \n \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n \n \n \n
        \n
        \n
        \n
        {{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_EMAIL\' | translate }}{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
        {{account.name}}{{account.username}}{{account.remoteUri}}{{account.description}}\n \n {{ \'APPLICATION_EDIT\' | translate }}\n \n \n {{ \'APPLICATION_CHECK\' | translate }}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
        \n No account available\n
        \n \n
        \n \n \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n \n \n
        \n
        \n \n
        \n \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/freshdesk/view/view.account.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_ACCOUNT\' | translate}}\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/freshdesk/view/view.configuration.html",'
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n
        \n \n\n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/freshdesk/view/view.configurationSettings.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n
        \n All following fields will be join by blank space:\n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n All following fields will be join by new line:\n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n
        \n \n {{$select.selected | ucfirst}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n Add how to fill the fields present in your account:\n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected.label}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected[0]}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected | ucfirst}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/freshdesk/view/view.configurations.html",'
        \n
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_CONFIGURATIONS\' | translate}}\n
        \n \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        {{\'APPLICATION_NAME\' | translate}}{{\'APPLICATION_DESCRIPTION\' | translate}}{{ \'APPLICATION_ACTIONS\' | translate }}
        {{configuration.name}}{{configuration.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
        \n No configuration available\n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/freshdesk/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{account.name}}\n
        \n
        \n {{account.remoteUri}}\n
        \n
        \n \n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/freshdesk/wizard/wizard.html",'\n\n\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
        \n \n\n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n\n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n\n
        \n\n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/integration/list/list.html",'\n\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_INTEGRATIONS\' | translate }} \n
        \n
        \n \n New App \n \n \n \n \n \n
        \n
        \n
        \n \n \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n \n \n \n
        \n
        \n
        \n
        {{ \'APPLICATION_ID\' | translate }}{{ \'APPLICATION_NAME\' | translate }}{{ \'APPLICATION_FILENAME\' | translate }}{{ \'APPLICATION_VERSION\' | translate }}{{ \'APPLICATION_DESCRIPTION\' | translate }}{{ \'APPLICATION_ACTIONS\' | translate }}
        {{integration.id}}{{integration.name}}{{integration.filename}}{{integration.version}}{{integration.description}}\n \n {{ \'APPLICATION_UPDATE\' | translate }} \n \n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
        \n No integrations available\n
        \n
        \n \n \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/jscripty/project/list/list.create.modal.html",'\n\n\n'),a.put("app/jscripty/project/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROJECTS\' | translate }} \n
        \n \n
        \n
        \n \n\n \n\n\n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n\n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/jscripty/project/report/report.detail.html",'
        \n
        \n
        \n\n{{ \'APPLICATION_SUMMARY\' | translate }} \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n

        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}

        \n
        \n
        \n
        \n
        \n \n \n \n Question Id: {{question.question_id}}\n \n \n
        \n
        \n
        \n

        {{question.question_label}} : {{question.question_text}}

        \n

        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        Response #Response %
        {{choice.value}}{{choice.count}}{{choice.percentage | number:2}}
        \n
        \n
        \n
        \n \n \n \n \n \n \n \n {{question.question_other_label}}
        \n
        \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n
        Response #Response
        {{choice.value}}{{choice.count}}
        \n
        \n
        \n
        \n
        \n
        \n
        \n

        Total Respondents: {{question.total}}


        \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/jscripty/project/report/report.html",'\n\n
        \n
        \n\n \n
        \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{project.name}}[{{project.id}}]\n
        \n
        \n\n
        \n
        \n \n\n \n
        \n \n
        \n \n\n
        \n\n
        \n\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n

        {{projectStats.started}}

        \n Started\n
        \n
        \n \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n

        {{projectStats.incomplete}}

        \n Incomplete\n
        \n
        \n \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n

        {{projectStats.completed}}

        \n Completed\n
        \n
        \n \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/jscripty/project/report/report.inputs.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_INPUTS\' | translate }} \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/jscripty/project/report/report.question.detail.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_DETAIL\' | translate }} \n
        \n
        \n
        \n
        \n

        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}

        \n
        \n
        \n
        \n
        \n
        \n

        \n\n Question Id: {{questionDetail.question_id}}\n

        \n
        \n
        \n
        \n

        {{questionDetail.question_label}}

        \n
        \n
        \n
        \n
        \n

        {{questionDetail.question_text}}


        \n
        \n
        \n
        \n
        \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        Value Count %
        {{choice.value}}{{choice.count}}{{choice.percentage | number:2}}
        \n
        \n
        \n
        \n
        \n {{choice.value}} {{choice.count}}
        \n\n
        \n
        \n
        \n
        \n

        Total: {{questionDetail.total}}


        \n
        \n
        \n
        \n
        \n \n \n \n
        \n
        \n\n
        \n\n
        \n\n
        \n
        \n\n
        \n
        \n
        \n
        \n'),a.put("app/jscripty/project/report/report.session.detail.html",'\n\n
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_DETAIL\' | translate }} \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n \n \n \n \n Question Id: {{question.question_id}}\n \n \n

        {{question.question_label}} : {{question.question_text}}

        \n
        \n

        Answer: {{question.question_answer}}

        \n
        \n
        \n

        \n {{question.question_other_label}}: \n {{question.question_other_answer || \'No Value\'}}\n

        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        Label Answer
        {{input.input_label}}{{input.input_value || \'No Value\'}}
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/jscripty/project/report/report.sessions.html",'\n
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_SESSIONS\' | translate }} \n
        \n
        \n
        \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/jscripty/project/report/report.summary.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_QUESTIONS\' | translate }} \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/jscripty/project/view/view.html",'\n\n
        \n
        \n
        \n
        \n
        \n\n\n'),a.put("app/landing/landing.html",'\n\n\n\n\n
        \n
        \n
        \n Oops!\n
        \n
        \n

        {{message | translate}}.

        \n

        \n Please contact your administrator.

        \n

        \n
        \n
        \n
        \n\n\n\n'), +a.put("app/login/login.html",'\n\n\n\n
        \n \n \n
        \n\n\n'),a.put("app/main/chooseContact.modal.html",'\n\n\n'),a.put("app/main/closeEditedTab.modal.html",'\n\n\n'),a.put("app/main/closeEditedTab.modal.jscripty.html",' \n\n\n\n\n'),a.put("app/main/cm.disposition.html",'\n\n\n'),a.put("app/main/company.info.html",'\n\n\n'),a.put("app/main/customDateFilter.modal.html",'\n\n'),a.put("app/main/customDateFilterHeader.html",'\n\n  \n\n'),a.put("app/main/main.html",'\n\n\n\n
        \n
        \n\n
        \n\n \n
        \n
        \n \n\n \n
        \n
        \n\n \n \n \n \n Motion \n \n
        \n
        \n \n \n {{workspace.name | truncate: 25: \'...\': true}} {{workspace.unread}} \n \n
        \n \n \n \n \n \n \n \n \n
        \n
        \n
        \n \n\n
        \n
        \n \n\n
        \n\n\n\n\n\n\n\n\n\n\n\n'),a.put("app/main/template/actionBuilder/template.actionBuilderIntegration.html",'
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_INTEGRATION\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_ACCOUNT\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_CONFIGURATION\' | translate}}\n \n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
        \n"),a.put("app/main/template/actionBuilder/template.actionBuilderJscripty.html",'
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
        \n"),a.put("app/main/template/actionBuilder/template.actionBuilderMotionBar.html",'\n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_TYPE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n\n\n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_TEMPLATE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n\n\n
        \n \n \n {{ \'APPLICATION_URL\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n\n\n
        \n \n \n {{ \'APPLICATION_APPLICATION\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n \n {{ \'APPLICATION_ARGUMENTS\' | translate }}\n \n
        \n'),a.put("app/main/template/actionBuilder/template.actionBuilderStatus.html",'
        \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
        \n"),a.put("app/main/template/actionBuilder/template.actionBuilderTemplate.html",'
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n
        \n'),a.put("app/main/template/actionBuilder/template.actionBuilderUrlForward.html",'
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_TYPE\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n \n {{\'APPLICATION_URL\' | translate}}\n \n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
        \n"), +a.put("app/main/template/template.conditionBuilder.html",'
        \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n'+" {{'APPLICATION_WARNING' | translate}}! {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n \n
        \n"),a.put("app/main/template/template.contactTab.html",'
        \n
        \n
        \n \n
        \n \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n

        {{\'MESSAGE_INBOUND_CALL_FROM\' | translate}} - {{workspace.data.calleridnum}}

        \n

        \n {{\'MESSAGE_CALL_UNIQUEID\' | translate}} : {{workspace.data.uniqueid}}\n

        \n
        \n
        \n
        \n
        \n
        {{\'APPLICATION_QUEUE\' | translate}}
        \n

        {{workspace.data.queue}}

        \n
        \n
        \n
        {{\'APPLICATION_AGENT\' | translate}}
        \n

        {{workspace.data.membername}}

        \n
        \n
        \n
        {{\'APPLICATION_DATE\' | translate}}
        \n

        {{workspace.data.agentcalledAt | date:\'dd/MM/yyyy HH:mm:ss\'}}

        \n
        \n
        \n \n
        \n
        \n \n \n
        \n
        \n
        \n \n {{\'APPLICATION_DETAIL\' | translate}}\n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n \n \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_COMPANIES_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_COMPANIES\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{$item}}\n \n {{tag}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n
        \n \n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n

        Warning!

        \n

        \n {{ \'MESSAGE_NO_LISTS_AVAILABLE\' | translate }}\n

        \n

        \n {{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_LISTS\' | translate}}\n

        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n
        \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n \n {{\'APPLICATION_CUSTOM_FIELDS\' | translate}}\n
        \n
        \n
        \n
        \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n \n {{$select.selected.value}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n
        \n \n {{\'APPLICATION_LOG\' | translate}}\n
        \n \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n \n
        |\n
        \n \n \n
        |\n
        \n \n \n
        \n
        \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n \n
        |\n
        \n \n \n
        |\n
        \n \n \n
        \n
        \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n'), +a.put("app/main/template/template.jscriptyTab.html",'
        \n \n
        \n
        \n \n
        \n \n \n
        \n \n
        \n \n \n
        \n \n
        \n
        \n
        \n
        \n \n {{attribute.value}} \n
        \n\n
        \n
        \n
        \n
        \n
        \n
        \n\n \n
        \n

        {{attribute.value}}

        \n
        \n \n\n
        \n
        \n \n

        \n
        \n
        \n \n\n
        \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n \n \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n'),a.put("app/main/template/template.notification.html",'\n'),a.put("app/main/template/template.reportBuilderView.html",'
        \n
        \n \n \n \n \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n \n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/market/market.html",'
        \n
        \n \n
        \n
        \n\n
        \n
        \n \n
        \n

        Our Integrations

        \n
        \n
        \n
        \n
        \n

        {{integration.name}} {{integration.author}}

        \n {{integration.name}}\n
        \n

        \n {{integration.description}}\n

        \n \n
        \n
        \n
        \n {{status}}\n
        \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n'),a.put("app/motiondialer/blacklist/list/list.create.modal.html",'\n\n\n'),a.put("app/motiondialer/blacklist/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_BLACKLIST\' | translate }} \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/motiondialer/info/view/view.about.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_ABOUT\' | translate}}\n
        \n
        \n
        \n
        \n
        \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/motiondialer/info/view/view.details.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_DETAILS\' | translate}}\n
        \n
        \n
        \n
        \n
        \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/motiondialer/info/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{ \'APPLICATION_INFO\' | translate }}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/motiondialer/list/list/list.create.modal.html",'\n\n\n'),a.put("app/motiondialer/list/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_LISTS\' | translate }} \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n \n \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/motiondialer/list/view/view.contact.create.modal.html",'\n\n\n'),a.put("app/motiondialer/list/view/view.contact.import.modal.html",'\n\n\n'),a.put("app/motiondialer/list/view/view.contacts.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_LIST\' | translate}} {{ \'APPLICATION_CONTACTS\' | translate}} \n
        \n
        \n\n
        \n
        \n \n \n {{\'APPLICATION_IMPORT_FROM_CSV\' | translate}}\n \n \n
        \n\n \n \n \n \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n
        \n
        \n'),a.put("app/motiondialer/list/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{list.name}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/motiondialer/list/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_LIST\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/motiondialer/process/list/list.create.queue.modal.html",'\n\n\n'),a.put("app/motiondialer/process/list/list.create.square.modal.html",'\n\n\n'),a.put("app/motiondialer/process/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROCESSES\' | translate }} \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n \n \n \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/motiondialer/process/view/view.create.interval.modal.html",'\n\n\n'),a.put("app/motiondialer/process/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{process.name}} ({{ (process.status === \'RUN\') ? \'RUNNING...\' : \'STOPPED\' }})\n
        \n \n
        \n \n
        \n \n
        \n
        \n \n \n
        \n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/motiondialer/process/view/view.intervals.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROCESS\' | translate}} {{ \'APPLICATION_INTERVALS\' | translate}} \n
        \n \n
        \n
        \n
        \n \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n {{ \'APPLICATION_VALUE\' | translate}}\n \n {{ \'APPLICATION_ACTIONS\' | translate}}\n
        \n {{interval}}\n \n \n \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n {{ \'APPLICATION_VALUE\' | translate}}\n \n {{ \'APPLICATION_ACTIONS\' | translate}}\n
        \n {{interval}}\n \n \n \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n\n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/motiondialer/process/view/view.overview.html",'
        \n
        \n \n
        \n
        \n
        \n \n {{\'APPLICATION_OVERVIEW\' | translate}}\n
        \n \n
        \n
        \n
        \n \n
        \n \n \n \n
        \n
        \n
        \n
        \n
        \n {{\'APPLICATION_TOTAL\' | translate}}\n
        \n
        \n {{total}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n {{\'APPLICATION_FRESH\' | translate}}\n
        \n
        \n {{process.runtime.fresh || 0}}\n
        \n
        \n
        \n
        \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n {{\'APPLICATION_STATUS\' | translate}}\n \n {{\'APPLICATION_VALUE\' | translate}}\n \n {{\'APPLICATION_RATE\' | translate}}\n \n {{\'APPLICATION_DESCRIPTION\' | translate}}\n
        \n {{\'APPLICATION_TD_\' + sum[0] | translate}}\n \n {{sum[1]}}\n \n {{ total ? ((sum[1]/total)*100).toFixed(2) : 0 }}%\n \n {{\'DESCRIPTION_TD_\' + sum[0] | translate}}\n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n {{\'APPLICATION_SUCCESS\' | translate}}\n
        \n
        \n {{process.runtime.success || 0}}\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n {{\'APPLICATION_FAILED\' | translate}}\n
        \n
        \n {{process.runtime.failed || 0}}\n
        \n
        \n
        \n
        \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n {{\'APPLICATION_STATUS\' | translate}}\n \n {{\'APPLICATION_VALUE\' | translate}}\n \n {{\'APPLICATION_DESCRIPTION\' | translate}}\n
        \n {{\'APPLICATION_\' + key.toUpperCase() | translate}}\n \n {{value | number:2}}\n {{value | number:2}}\n {{value | number:2}}\n {{((value)? \'APPLICATION_YES\' : \'APPLICATION_NO\') | translate}}\n {{((value)? \'APPLICATION_YES\' : \'APPLICATION_NO\') | translate}}\n {{value}}\n \n {{\'DESCRIPTION_TD_\' + key.toUpperCase() | translate}}\n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n'),a.put("app/motiondialer/process/view/view.run.process.modal.html",'\n\n\n'),a.put("app/motiondialer/process/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROCESS\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_MAX_RETRIES\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_RETRY_TIME\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_WAIT_TIME\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n \n
        \n
        \n \n {{\'DESCRIPTION_TD_AUTO_CLOSED\' | translate}}\n
        \n \n \n \n
        \n
        \n \n \n {{\'DESCRIPTION_TD_WEIGHT\' | translate}}\n
        \n \n
        \n \n \n
        \n \n \n
        \n
        \n \n \n
        \n
        \n \n
        \n \n \n {{\'DESCRIPTION_TD_CONTEXT\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_EXTENSION\' | translate}}Link {{\'APPLICATION_INTERNAL\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_PRIORITY\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_PREFIX\' | translate}}\n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_TECHNOLOGY\' | translate}}\n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_TRUNK\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_CALLERID\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{$item}}\n \n {{codec}}\n \n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_DIAL_FORMAT\' | translate}}\n
        \n \n \n
        \n
        \n \n \n
        \n
        \n \n
        \n \n \n {{\'DESCRIPTION_TD_CHECK_DUPLICATE\' | translate}}\n
        \n \n \n
        \n
        \n \n {{\'DESCRIPTION_TD_CHECK_BLACKLIST\' | translate}}\n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_CHECK_PHONE_LENGHT\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_TIME_SLICE\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n \n
        \n
        \n \n {{\'DESCRIPTION_TD_CHECK_MISSED\' | translate}}\n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_CHANNEL_LIMIT\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_CONTEXT_FOR_OTHER_CALLS\' | translate}}\n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_EXTENSION_FOR_OTHER_CALLS\' | translate}}\n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_PRIORITY_FOR_OTHER_CALLS\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_EXTENDED_TIME_INTERVAL\' | translate}}\n
        \n \n\n \n
        \n
        \n \n {{\'DESCRIPTION_TD_AUTO_TIMEZONE_MANAGEMENT\' | translate}}\n
        \n \n \n \n \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_MIN_OPERATOR\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_ALERT_MAX_CALLS\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_ALERT_TIME_SLICE\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_DROP_MAX_COUNT\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_SUCCESS_CALL_SIZE\' | translate}}\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n \n
        \n \n \n {{\'DESCRIPTION_TD_TIME_EXPIRED\' | translate}}\n
        \n \n \n
        \n
        \n \n \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n {{ \'APPLICATION_VALUE\' | translate}}\n \n {{ \'APPLICATION_MAX_RETRIES\' | translate}}\n \n {{ \'APPLICATION_RETRY_TIME\' | translate}} [min]\n \n {{ \'APPLICATION_DESCRIPTION\' | translate}}\n
        \n {{ \'APPLICATION_AMD\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_AMD\' | translate}}\n
        \n {{ \'APPLICATION_BUSY\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_BUSY\' | translate}}\n
        \n {{ \'APPLICATION_CONGESTION\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_CONGESTION\' | translate}}\n
        \n {{ \'APPLICATION_DROP\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_DROP\' | translate}}\n
        \n {{ \'APPLICATION_FAILED\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_FAILED\' | translate}}\n
        \n {{ \'APPLICATION_NOANSWER\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_NOANSWER\' | translate}}\n
        \n {{ \'APPLICATION_NOSUCHEXTENSION\' | translate}}\n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n \n {{ \'DESCRIPTION_TD_STATUS_NOSUCHEXTENSION\' | translate}}\n
        \n \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/motiondialer/process/view/view.spooler.history.modal.html",'\n\n\n'),a.put("app/motiondialer/process/view/view.spooler.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_SPOOLER\' | translate}} \n
        \n
        \n\n
        \n \n \n \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n
        \n
        \n'),a.put("app/salesforce/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_SALESFORCE\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/salesforce/view/configuration/list/create.modal.html",'\n\n\n'),a.put("app/salesforce/view/configuration/list/list.html",'
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n {{\'APPLICATION_CONFIGURATIONS\' | translate}}\r\n
        \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n'),a.put("app/salesforce/view/configuration/view/view.html",'
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n {{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}\r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n All following fields will be join by blank space:\r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n {{$select.selected.title}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n {{$select.selected.title}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n {{$select.selected.name}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n \r\n \r\n
        \r\n
        \r\n
        \r\n All following fields will be join by new line:\r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n {{$select.selected.title}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n {{$select.selected.title}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n {{$select.selected.title}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n {{$select.selected.name}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n \r\n \r\n
        \r\n
        \r\n
        \r\n Add how to fill the fields present in your account:\r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n {{$select.selected.label}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n {{$select.selected.label}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n {{$select.selected.title}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n {{$select.selected.title}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n {{$select.selected.name}}\r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n
        \r\n
        \r\n'),a.put("app/salesforce/view/view.account.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_ACCOUNT\' | translate}}\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/salesforce/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{account.name}}\n
        \n
        \n {{account.remoteUri}}\n
        \n
        \n \n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/salesforce/wizard/wizard.html",'\n\n\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
        \n \n\n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n\n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n\n
        \n\n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/setting/license/view/update.modal.html",'\n\n\n'),a.put("app/setting/license/view/view.html",'\n\n
        \n \n\n \n
        \n
        \n
        \n
        \n
        \n

        {{\'APPLICATION_MONTH_TO_MONTH\' | translate}}{{license.token || \'unknown\'}}

        \n

        {{\'APPLICATION_YEARLY\' | translate}}{{license.token || \'unknown\'}}

        \n

        {{\'APPLICATION_PERPETUAL\' | translate}}{{license.token || \'unknown\'}}

        \n

        {{\'APPLICATION_UNKNOWN\' | translate}}{{license.token || \'unknown\'}}

        \n

        {{license.expiration ? (license.expiration | date:\'medium\') : \'DEMO\'}}\n Expiration Date \n

        \n
        \n
          \n
        • \n
          \n {{\'APPLICATION_USERS\' | translate}}:\n
          \n
          \n {{(license.users || license.users >= 0) ? license.users : \'unknown\'}}\n
          \n
        • \n
        • \n
          \n {{\'APPLICATION_AGENTS\' | translate}} ({{\'APPLICATION_CONCURRENTS\' | translate}}):\n
          \n
          \n {{(license.agents || license.agents >= 0) ? license.agents : \'unknown\'}}\n
          \n
        • \n
        • \n
          \n {{\'APPLICATION_TELEPHONES\' | translate}}:\n
          \n
          \n {{(license.telephones || license.telephones >= 0) ? license.telephones : \'unknown\'}}\n
          \n
        • \n
        • \n
          \n {{\'APPLICATION_CHAT\' | translate}}:\n
          \n
          \n {{license.chat ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
          \n
        • \n
        • \n
          \n {{\'APPLICATION_MAIL\' | translate}}:\n
          \n
          \n {{license.mail ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
          \n
        • \n
        • \n
          \n {{\'APPLICATION_FAX\' | translate}}:\n
          \n
          \n {{license.fax ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
          \n
        • \n
        • \n
          \n {{\'APPLICATION_SMS\' | translate}}:\n
          \n
          \n {{license.messaging ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
          \n
        • \n
        • \n
          \n {{\'APPLICATION_CONTACT_MANAGER\' | translate}}:\n
          \n
          \n {{license.cm ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
          \n
        • \n
        • \n
          \n {{\'APPLICATION_MOTION_DIALER\' | translate}}:\n
          \n
          \n {{license.dialer ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
          \n
        • \n
        • \n
          \n {{\'APPLICATION_JSCRIPTY\' | translate}}:\n
          \n
          \n {{license.jscripty ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
          \n
        • \n
        • \n
          \n {{\'APPLICATION_UPDATE\' | translate}}:\n
          \n
          \n {{license.update ? \'APPLICATION_ENABLED\' : \'APPLICATION_DISABLED\' | translate}}\n
          \n
        • \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_LICENSE_REQUEST\' | translate }} \n
        \n
        \n
        \n
        \n\n \n
        \n \n
        \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n \n \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n \n \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n \n \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n \n \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n \n \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n \n \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n \n \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n \n \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/setting/network/view/externip/externip.create.modal.html",'\n\n\n'),a.put("app/setting/network/view/externip/externip.html",'\r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n {{ \'APPLICATION_EXTERNIP\' | translate }} \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n\r\n'),a.put("app/setting/network/view/localnet/localnet.create.modal.html",'\n\n\n'),a.put("app/setting/network/view/localnet/localnet.html",'\r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n
        \r\n \r\n {{ \'APPLICATION_LOCALNET\' | translate }} \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \r\n
        \r\n \r\n
        \r\n
        \r\n \r\n
        \r\n
        \r\n\r\n'),a.put("app/setting/network/view/view.html",'\r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n\r\n \r\n
        \r\n \r\n
        \r\n \r\n
        \r\n \r\n
        \r\n \r\n \r\n
        \r\n
        \r\n {{ \'APPLICATION_NETWORK\' | translate }}\r\n
        \r\n
        \r\n \r\n \r\n \r\n \r\n
        \r\n \r\n
        \r\n \r\n \r\n
        \r\n
        \r\n \r\n\r\n
        \r\n
        \r\n\r\n'),a.put("app/setting/smtp/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n\n \n
        \n\n
        \n\n
        \n
        \n

        ERROR

        \n \n
        \n\n
        \n

        CONNECTED

        \n
        \n\n
        \n

        TRYING...

        \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n \n \n
        \n \n\n \n
        \n\n
        \n\n
        \n
        \n

        ERROR

        \n \n
        \n\n
        \n

        CONNECTED

        \n
        \n\n
        \n

        TRYING...

        \n
        \n
        \n\n \n
        \n \n \n {{$select.selected.username}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n \n
        \n \n
        \n \n
        \n
        \n\n'), +a.put("app/setting/update/list/landing.html",'\n
        \n
        \n \n \n
        \n
        \n
        \n {{countdown}}\n
        \n
        \n

        Wait! We need to restart xCALLY Motion server.

        \n

        \n We are updating it!
        \n xCALLY Motion Team

        \n

        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/setting/update/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_UPDATES\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n \n
        \n
        \n
        \n\n'),a.put("app/setting/update/list/list.pull.html",'\n\n\n'),a.put("app/square/odbc/list/list.create.modal.html",'\n\n\n'),a.put("app/square/odbc/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ODBCS\' | translate }} \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/square/odbc/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{odbc.name}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/square/odbc/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_ODBC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n

        Es. DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion

        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/square/project/list/list.create.modal.html",'\n\n\n'),a.put("app/square/project/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROJECTS\' | translate }} \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/square/project/view/view.html",'\n\n
        \n
        \n
        \n
        \n
        \n\n\n'),a.put("app/square/realtime/view/general/general.html",'\n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n\n'),a.put("app/square/realtime/view/view.html",'\n\n\n'),a.put("app/square/recording/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_RECORDINGS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/staff/agent/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_AGENTS\' | translate }} \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/staff/agent/view/view.account.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}\n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n \n \n\n \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_SELECT_IMAGE\' | translate }} \n
        \n
        \n \n \n
        \n

        \n
        {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} jpg, png, jpeg.\n

        \n
        \n
        \n
        \n
        \n
        \n \n \n \n \n \n \n \n \n
        \n \n {{ item.file.name }}\n \n \n {{ item.file.size/1024/1024|number:2 }} MB\n \n \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/staff/agent/view/view.chat.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_CHAT\' | translate}}\n
        \n
        \n\n
        \n \n
        \n \n
        \n \n \n \n {{\'MESSAGE_ZERO_MEANS_UNLIMITED\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/staff/agent/view/view.fax.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_FAX\' | translate}}\n
        \n
        \n\n
        \n \n
        \n \n
        \n \n \n \n {{\'MESSAGE_ZERO_MEANS_UNLIMITED\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/staff/agent/view/view.html",'\n\n\n'),a.put("app/staff/agent/view/view.mail.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_MAIL\' | translate}}\n
        \n
        \n\n
        \n \n
        \n \n
        \n \n \n \n {{\'MESSAGE_ZERO_MEANS_UNLIMITED\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/staff/agent/view/view.motionbar.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_MOTION_BAR\' | translate}}\n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n
        \n \n \n
        \n
        \n\n \n
        \n
        \n \n
        \n \n\n\n \n
        \n \n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n \n
        \n
        \n\n \n
        \n
        \n \n
        \n \n\n\n \n
        \n \n \n Default: 9888\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n Default: 3600\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}} (min 1).\n \n
        \n \n\n \n
        \n \n \n Default: 5060\n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_NUMBER\' | translate}} (0-65535).\n \n
        \n \n\n \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/staff/agent/view/view.sms.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_SMS\' | translate}}\n
        \n
        \n\n
        \n \n
        \n \n
        \n \n \n \n {{\'MESSAGE_ZERO_MEANS_UNLIMITED\' | translate}}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/staff/agent/view/view.voice.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_VOICE\' | translate}}\n
        \n
        \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n {{nat}}\n \n \n \n {{ \'DESCRIPTION_VOICE_NAT\' | translate }}\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_VOICE_TYPE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n {{allow}}\n \n \n \n {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/staff/agent/wizard/wizard-bulk.html",'
        \n \n \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_AGENT\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n\n \n
        \n\n \n
        \n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n {{allow}}\n \n \n \n {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n \n
        \n \n\n \n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n
        \n
        \n
        \n \n
        \n'),a.put("app/staff/agent/wizard/wizard.html",'
        \n \n \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_AGENT\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n\n \n
        \n\n \n
        \n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n {{allow}}\n \n \n \n {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n \n
        \n \n\n \n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n
        \n
        \n
        \n \n
        \n'),a.put("app/staff/team/list/create.modal.html",'\n\n\n'),a.put("app/staff/team/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_TEAMS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/staff/team/view/view.agents.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_AGENTS\' | translate}}\n
        \n
        \n
        \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n \n \n
        \n
        \n
        \n
        \n'),a.put("app/staff/team/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{team.name}}\n
        \n\n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n \n
        \n
        \n\n'),a.put("app/staff/team/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}\n
        \n
        \n\n
        \n \n
        \n\n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n
        \n
        \n
        \n
        \n'),a.put("app/staff/telephone/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_TELEPHONES\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/staff/telephone/view/view.account.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNT\' | translate}}\n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n\n \n
        \n
        \n \n \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/staff/telephone/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{item.fullname}}\n
        \n
        \n {{item.role}}\n
        \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/staff/telephone/view/view.voice.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNT\' | translate}} {{ \'APPLICATION_VOICE\' | translate}}\n
        \n
        \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n'+" \n {{allow}}\n \n \n \n {{ 'DESCRIPTION_VOICE_CODEC' | translate }}\n \n
        \n \n\n \n
        \n
        \n
        \n
        \n
        \n"),a.put("app/staff/telephone/wizard/wizard.html",'
        \n \n \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_TELEPHONE\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n\n \n
        \n\n \n
        \n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n {{allow}}\n \n \n \n {{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n \n
        \n \n\n \n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n
        \n
        \n
        \n \n
        \n'),a.put("app/staff/user/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_USERS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/staff/user/view/view.account.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}\n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n\n \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_SELECT_IMAGE\' | translate }} \n
        \n
        \n \n \n
        \n

        \n
        {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} jpg, png, jpeg.\n

        \n
        \n
        \n
        \n
        \n
        \n \n \n \n \n \n \n \n \n
        \n \n {{ item.file.name }}\n \n \n {{ item.file.size/1024/1024|number:2 }} MB\n \n \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/staff/user/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{user.fullname}}\n
        \n
        \n {{user.role}}\n
        \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/staff/user/view/view.permit.chat.html",'\n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/staff/user/view/view.permit.fax.html",'\n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/staff/user/view/view.permit.html",'\n\n\n'),a.put("app/staff/user/view/view.permit.mail.html",'\n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/staff/user/view/view.permit.modules.html",'\n
        \n
        \n
        \n └── \n \n
        \n
        \n
        \n\n'),a.put("app/staff/user/view/view.permit.sms.html",'\n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/staff/user/view/view.permit.voice.html",'\n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/staff/user/view/view.voice.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNT\' | translate}} {{ \'APPLICATION_VOICE\' | translate}}\n
        \n
        \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n {{transport}}\n \n \n \n {{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n'+" \n {{allow}}\n \n \n \n {{ 'DESCRIPTION_VOICE_CODEC' | translate }}\n \n
        \n \n\n \n
        \n
        \n
        \n
        \n
        \n"),a.put("app/staff/user/wizard/wizard.html",'
        \n \n \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_USER\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n \n \n \n \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n'),a.put("app/sugarcrm/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_SUGARCRM\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/sugarcrm/view/view.account.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_ACCOUNT\' | translate}}\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/sugarcrm/view/view.configuration.html",'
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n
        \n \n\n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/sugarcrm/view/view.configurationSettings.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n
        \n All following fields will be join by blank space:\n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n All following fields will be join by new line:\n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n
        \n \n {{$select.selected | ucfirst}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n Add how to fill the fields present in your account:\n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected.label}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected | ucfirst}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/sugarcrm/view/view.configurations.html",'
        \n
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_CONFIGURATIONS\' | translate}}\n
        \n \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        {{\'APPLICATION_NAME\' | translate}}{{\'APPLICATION_DESCRIPTION\' | translate}}{{ \'APPLICATION_ACTIONS\' | translate }}
        {{configuration.name}}{{configuration.description}}\n \n {{ \'APPLICATION_SETTINGS\' | translate}}\n \n \n {{ \'APPLICATION_DELETE\' | translate }}\n \n
        \n No configuration available\n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/sugarcrm/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{account.name}}\n
        \n
        \n {{account.remoteUri}}\n
        \n
        \n \n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/sugarcrm/wizard/wizard.html",'\n\n\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n\n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n\n
        \n\n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/answer/list/list.create.modal.html",'\n\n\n'),a.put("app/tools/answer/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_CANNED_ANSWERS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/answer/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{answer.name}}\n
        \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/answer/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_CANNED_ANSWER\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/tools/automation/list/list.html",'\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_AUTOMATIONS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/automation/view/view.html",'\n
        \n
        \n \n\n\n\n\n \n
        \n \n
        \n \n
        \n \n
        \n \n\n \n
        \n
        \n {{ automation.name }}\n
        \n
        \n {{ automation.description }}\n
        \n
        \n \n\n \n \n \n
        \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/automation/view/view.settings.html",'
        \n
        \n
        \n \n
        \n \n
        \n
        \n \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n
        \n
        \n
        \n
        \n \n :\n
        \n
        \n
        \n
        \n \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n :\n
        \n
        \n
        \n
        \n \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACTIONS\' | translate }}:\n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n \n \n
        \n \n
        \n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_CONDITION\' | translate}}.\n \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_ACTION\' | translate}}.\n \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/tools/automation/wizard/wizard.html",'
        \n
        \n \n \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_CHANNEL\' | translate }}\n
        \n
        \n
        \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n :\n
        \n
        \n
        \n
        \n \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n :\n
        \n
        \n
        \n
        \n \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACTIONS\' | translate }}:\n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n \n \n
        \n \n
        \n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_CONDITION\' | translate}}.\n \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_ACTION\' | translate}}.\n \n
        \n \n \n
        \n
        \n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/interval/list/list.create.modal.html",'\n\n\n'),a.put("app/tools/interval/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_INTERVALS\' | translate }} \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/interval/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{interval.name}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n"),a.put("app/tools/interval/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_INTERVAL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/tools/interval/view/view.subinterval.html",'\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n
        \n
        to
        \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n to\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n
        \n
        \n \n\n\n\n \n
        \n
        \n\n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/interval/view/view.subintervalSettings.html",'\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_SUBINTERVAL_SETTINGS\' | translate }} WIZARD \n
        \n
        \n
        \n \n
        \n {{subinterval.name}}\n
        \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n
        \n
        \n
        to
        \n
        \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{weekDay.name | translate}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n to\n \n {{$select.selected === \'always\' ? \'APPLICATION_ALWAYS\' : $select.selected | translate}}\n \n {{monthDay === \'always\' ? \'APPLICATION_ALWAYS\' : monthDay | translate}}\n \n \n
        \n
        \n \n\n \n
        \n \n
        \n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n to\n \n {{$select.selected.name | translate}}\n \n {{month.name | translate}}\n \n \n
        \n
        \n \n\n\n\n \n
        \n
        \n\n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/tools/interval/view/view.subintervals.html",'
        \n
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_SUBINTERVALS\' | translate}}\n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/tools/pause/list/list.create.modal.html",'\n\n\n'),a.put("app/tools/pause/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_PAUSES\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/pause/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{pause.name}}\n
        \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/pause/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_PAUSE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/tools/scheduler/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_SCHEDULES\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/scheduler/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{schedule.name}}\n
        \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/scheduler/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_SCHEDULE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n \n
        \n
        \n\n
        \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n \n
        \n \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n \n
        \n
        \n \n
        \n \n
        \n \n
        \n \n \n {{$select.selected.address | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n\n'),a.put("app/tools/scheduler/wizard/wizard.html",'
        \n \n \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_SCHEDULE\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n\n \n
        \n
        \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n \n
        \n \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item.name | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n \n
        \n
        \n \n
        \n \n
        \n \n
        \n \n \n {{$select.selected.address | translate}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n
        \n\n \n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n\n'), +a.put("app/tools/sound/list/list.html",'\n\n\n\n
        \n

        {{ \'APPLICATION_SOUNDS\' | translate }}

        \n
        \n
        \n
        \n
        \n \n \n {{\'APPLICATION_FILE_UPLOAD\' | translate}} \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_SELECT_FILES\' | translate}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n Base drop zone\n
        \n
        \n \n \n {{\'APPLICATION_FILE_UPLOAD\' | translate}}\n \n \n \n \n {{\'APPLICATION_MULTI_FILE_UPLOAD\' | translate}}\n
        \n
        \n

        \n
        \n {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} wav, mp3, gsm, ogg.\n

        \n

        \n {{ \'MESSAGE_MAXIMUM_SOUND_UPLOAD_SIZE\' | translate }} 15 Mb.\n

        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_UPLOAD_QUEUE\' | translate}}\n {{\'APPLICATION_QUEUE_LENGTH\' | translate}}: {{ uploader.queue.length }}\n
        \n
        \n
        \n
        \n
        \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        {{\'APPLICATION_NAME\' | translate}}{{\'APPLICATION_SIZE\' | translate}}{{\'APPLICATION_PROGRESS\' | translate}}{{\'APPLICATION_STATUS\' | translate}}{{\'APPLICATION_MESSAGE\' | translate}}{{\'APPLICATION_ACTIONS\' | translate}}
        {{ item.file.name }}{{ item.file.size/1024/1024|number:2 }} MB\n
        \n
        \n
        \n
        \n \n \n \n \n \n {{item.responseMessage}}\n \n \n \n \n
        \n
        \n
        \n

        {{\'APPLICATION_UPLOAD_QUEUE_PROGRESS\' | translate}}:

        \n
        \n
        \n
        \n
        \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n

        {{ \'MESSAGE_NO_SOUNDS\' | translate }}

        \n

        \n \n {{ \'MESSAGE_RETURN_HOME\' | translate }} \n {{ \'MESSAGE_OR_UPLOAD_SOUND_FILE\' | translate }}\n

        \n
        \n
        \n
        \n
        \n
        \n \n \n
        \n
        \n \n
        \n

        \n {{ sound.description || "Empty" }}\n

        \n

        \n \n \n \n

        \n
        \n
        \n
        \n \n
        \n\n'),a.put("app/tools/tag/list/list.create.modal.html",'\n\n\n'),a.put("app/tools/tag/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_TAGS\' | translate }} \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/tag/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{tag.name}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/tag/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_TAG\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/tools/template/list/list.html",'\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_TEMPLATES\' | translate }}\n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/template/view/view.html",'\n
        \n
        \n \n\n \n
        \n\n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{item.name}}\n
        \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/template/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_SETTINGS\' | translate}}\n
        \n
        \n
        \n\n
        \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n \n\n
        \n\n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n\n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/tools/template/wizard/wizard.html",'
        \n
        \n \n \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_TEMPLATES\' | translate }} FORM \n
        \n
        \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n
        \n
        \n \n
        \n
        \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n'),a.put("app/tools/trigger/list/list.html",'\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_TRIGGERS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'), +a.put("app/tools/trigger/view/view.html",'\n
        \n
        \n \n\n\n\n\n \n
        \n \n
        \n \n
        \n \n
        \n \n\n \n
        \n
        \n {{ trigger.name }}\n
        \n
        \n {{ trigger.description }}\n
        \n
        \n \n\n \n \n \n
        \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/trigger/view/view.settings.html",'
        \n
        \n
        \n \n
        \n \n
        \n
        \n \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n
        \n
        \n
        \n
        \n \n :\n
        \n
        \n
        \n
        \n \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n :\n
        \n
        \n
        \n
        \n \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACTIONS\' | translate }}:\n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACTION\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n \n \n \n \n
        \n \n
        \n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_CONDITION\' | translate}}.\n \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_ACTION\' | translate}}.\n \n
        \n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/tools/trigger/wizard/wizard.html",'
        \n
        \n \n \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_TRIGGERS\' | translate }} WIZARD\n
        \n
        \n
        \n \n \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_CHANNEL\' | translate }}\n
        \n
        \n
        \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n :\n
        \n
        \n
        \n
        \n \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n :\n
        \n
        \n
        \n
        \n \n \n
        \n \n
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACTIONS\' | translate }}:\n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected.name | translate}}\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACTION\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n
        \n \n \n \n \n \n
        \n \n
        \n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_CONDITION\' | translate}}.\n \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INSERT_AT_LEAST_ONE_ACTION\' | translate}}.\n \n
        \n \n \n
        \n
        \n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/trunk/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_TRUNKS\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/trunk/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{trunk.name}}\n
        \n

        ({{trunk.status}})

        \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/trunk/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_TRUNK\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n
        \n\n
        \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_VOICE_CONTEXT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \' placeholder="{{\'APPLICATION_CALLERID\' | translate}}" class="form-control" data-ng-model="trunk.callerid"/>\n \n {{ \'DESCRIPTION_OUTBOUND_CALLERID\' | translate }} "name" <number>\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_TYPE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_DTMFMODE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n\n
        \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_NAT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_QUALIFY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_ALLOW_CODEC\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_INSECURE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_CALLLIMIT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_DIRECTMEDIA\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_CALLCOUNTER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_FROMDOMAIN\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_FROMUSER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_OUTBOUNDPROXY\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_USEREQPHONE\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_TRUSTRPID\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_SENDRPID\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_ENCRYPTION\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_PORT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$item}}\n \n
        \n
        \n
        \n \n {{ \'DESCRIPTION_TRUNK_TRANSPORT\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n
        \n
        \n\n \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_OTHER_FIELDS\' | translate }}\n \n
        \n \n
        \n
        \n
        \n \n
        \n
        host=dynamicp
        \n
        secret=********
        \n
        regcontext=tammari-internal
        \n
        regexten=1005
        \n
        dtmfmode=rfc2833
        \n
        insecure=invite,port
        \n
        canreinvite=yes
        \n
        nat=yes
        \n
        qualify=yes
        \n
        context=merus-sipphone
        \n
        pickupgroup=1
        \n
        callgroup=1
        \n
        mailbox=1000@default
        \n
        \n
        \n
        \n
        \n\n \n
        \n\n
        \n \n
        \n
        \n
        \n
        \n
        \n'), +a.put("app/tools/trunk/wizard/wizard.html",'
        \n \n \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_TRUNK\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n
        \n\n \n
        \n\n \n
        \n \n \n \n {{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n \n
        \n \n \n \n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n \n
        \n
        \n
        \n
        \n \n
        \n'),a.put("app/tools/variable/list/list.create.modal.html",'\n\n\n'),a.put("app/tools/variable/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_VARIABLES\' | translate }} \n
        \n
        \n \n
        \n \n
        \n
        \n
        \n
        \n \n
        \n
        {{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/variable/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{variable.name}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/variable/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_VARIABLE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/tools/yourdashboard/list/clone.modal.html",'\n\n\n'),a.put("app/tools/yourdashboard/list/create.modal.html",'\n\n\n'),a.put("app/tools/yourdashboard/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }} \n
        \n
        \n \n
        \n \n
        \n \n
        \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/yourdashboard/show/leaveEditedDashboard.modal.html",'\n\n\n'),a.put("app/tools/yourdashboard/show/show.html",'
        \n
        \n \n
        \n
        \n'),a.put("app/tools/yourdashboard/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{dashboard.name}}\n
        \n \n
        \n \n\n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/tools/yourdashboard/view/view.settings.html",'
        \n
        \n
        \n
        \n
        \n \n {{ \'APPLICATION_DASHBOARD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} \n
        \n \n
        \n\n
        \n
        \n \n
        \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n
        \n \n
        \n \n\n \n
        \n \n \n
        \n \n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/zendesk/list/list.html",'\n
        \n
        \n \n\n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ZENDESK\' | translate }} \n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/zendesk/view/configuration/list/create.modal.html",'\n\n\n'), +a.put("app/zendesk/view/configuration/list/list.html",'
        \n
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_CONFIGURATIONS\' | translate}}\n
        \n \n
        \n
        \n \n
        \n
        {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}
        \n
        \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/zendesk/view/configuration/view/view.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n
        \n All following fields will be join by blank space:\n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected.title}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n {{$select.selected.title}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n All following fields will be join by new line:\n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected.title}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected.title}}\n \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n {{$select.selected.title}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n Add how to fill the fields present in your account:\n
        \n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n {{$select.selected.title}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected.title}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n
        \n \n {{$select.selected.title}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n {{$select.selected.name}}\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n
        \n \n \n
        \n
        \n
        \n Select tags that you want add in the ticket:\n
        \n
        \n
        \n
        \n \n
        \n \n {{$item.name}}\n \n {{tag.name}}\n \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n
        \n
        \n
        \n'),a.put("app/zendesk/view/view.account.html",'
        \n
        \n
        \n
        \n
        \n \n {{\'APPLICATION_ACCOUNT\' | translate}}\n
        \n \n
        \n
        \n
        \n \n
        \n
        \n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n \n
        \n \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n
        \n \n\n
        \n
        \n
        \n
        \n
        \n'),a.put("app/zendesk/view/view.html",'\n
        \n
        \n \n\n \n
        \n \n
        \n \n
        \n \n
        \n \n \n
        \n
        \n {{account.name}}\n
        \n
        \n {{account.remoteUri}}\n
        \n
        \n \n \n \n \n
        \n \n
        \n \n \n
        \n
        \n \n
        \n
        \n\n'),a.put("app/zendesk/wizard/wizard.html",'\n\n\n\n\n
        \n
        \n \n
        \n
        \n
        \n \n {{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD \n
        \n
        \n
        \n \n \n
        \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n {{$select.selected | capitalize}}\n \n
        \n
        \n
        \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n
        \n \n \n \n {{\'APPLICATION_WARNING\' | translate}}! {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n \n
        \n \n\n \n\n
        \n
        \n\n \n

        {{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}

        \n \n
        \n\n
        \n\n
        \n
        \n \n
        \n
        \n\n'), +a.put("components/footer/footer.html",'\n\n\n'),a.put("components/header/header.html",'\n
        \n \n \n \n \n \n
        \n
        \n \n \n \n \n
        \n
        \n \n \n \n \n \n \n
        \n \n \n \n
        \n \n
        \n\n'),a.put("components/modal/delete.html",'\n\n\n'),a.put("components/sidebar/sidebar.html",'\n'); +}]); \ No newline at end of file diff --git a/public/assets/plugins/angular-pdf/.bower.json b/public/assets/plugins/angular-pdf/.bower.json deleted file mode 100644 index 36b9e6a..0000000 --- a/public/assets/plugins/angular-pdf/.bower.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "angular-pdf", - "version": "0.4.0", - "description": "An Angularjs directive to display PDF in the browser with PDFJS.", - "main": "./dist/angular-pdf.js", - "license": "MIT", - "homepage": "http://github.com/sayanee/angularjs-pdf", - "dependencies": { - "angular": "1.3.15", - "pdfjs-dist": "1.1.159" - }, - "ignore": [ - "**/.*", - "package.json" - ], - "_release": "0.4.0", - "_resolution": { - "type": "version", - "tag": "0.4.0", - "commit": "cf25841a9dd95af4229385ad49025863480a575c" - }, - "_source": "git://github.com/sayanee/angularjs-pdf.git", - "_target": "~0.4.0", - "_originalSource": "angular-pdf", - "_direct": true -} \ No newline at end of file diff --git a/public/assets/plugins/angular-pdf/CONTRIBUTING.md b/public/assets/plugins/angular-pdf/CONTRIBUTING.md deleted file mode 100644 index 3ab1880..0000000 --- a/public/assets/plugins/angular-pdf/CONTRIBUTING.md +++ /dev/null @@ -1,25 +0,0 @@ -#Contribute and share - -1. Fork this project and install the packages - - ``` - bower install - npm install - ``` -- Create a new feature/patch branch -- Code code code and amend the `example` folder especially the file `example/js/directives/angular-pdf.js` -- Run `grunt` to create the build files in folder `dist` -- Code code code -- Run `grunt check` to ensure the [build](https://travis-ci.org/sayanee/angularjs-pdf) will pass -- Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) -- [Pull request](https://help.github.com/articles/using-pull-requests) using the new feature/patch branch -- Ensure the [Travis build](https://travis-ci.org/webuildsg/webuild) passes - -##to create a release (for maintainers only) - -1. commit your code (steps 1 - 7) -- run `grunt bump` according semantic version -- copy the `example` folder -- change to branch `gh-pages` -- copy the `example` folder from `master` branch -- commit code in `gh-pages` and `git push origin gh-pages` to publish the [examples page](http://sayan.ee/angularjs-pdf/) \ No newline at end of file diff --git a/public/assets/plugins/angular-pdf/Gruntfile.js b/public/assets/plugins/angular-pdf/Gruntfile.js deleted file mode 100644 index 137ba58..0000000 --- a/public/assets/plugins/angular-pdf/Gruntfile.js +++ /dev/null @@ -1,144 +0,0 @@ -module.exports = function(grunt) { - - 'use strict'; - - grunt.initConfig({ - - bump: { - options: { - files: [ - 'package.json', - 'bower.json', - 'readme.md', - 'example/js/directives/angular-pdf.js', - 'dist/angular-pdf.js', - 'dist/angular-pdf.min.js' - ], - updateConfigs: [], - commit: true, - commitMessage: 'Release v%VERSION%', - commitFiles: [ - 'package.json', - 'bower.json', - 'readme.md', - 'example/js/directives/angular-pdf.js', - 'dist/angular-pdf.js', - 'dist/angular-pdf.min.js' - ], - createTag: true, - tagName: '%VERSION%', - tagMessage: 'Version %VERSION%', - push: true, - pushTo: 'origin', - gitDescribeOptions: '--tags --always --abbrev=1' - } - }, - - clean: { - all: [ - 'dist/*.js', - 'example/js/lib/*.js' - ] - }, - - copy: { - main: { - files: [ - { - expand: true, - cwd: 'example/js/directives', - src: [ 'angular-pdf.js' ], - dest: 'dist/' - }, - { - cwd: 'bower_components/pdfjs-dist/build', - src: [ 'pdf.js', 'pdf.worker.js' ], - dest: 'example/js/lib', - flatten: true, - expand: true - }, - { - cwd: 'bower_components/angular', - src: [ 'angular.min.js', 'angular.min.js.map' ], - dest: 'example/js/lib', - flatten: true, - expand: true - } - ] - } - }, - - jscs: { - src: [ - 'Gruntfile.js', - 'example/js/directives/angular-pdf.js' - ], - options: { - config: '.jscsrc' - } - }, - - jshint: { - all: { - options: { - jshintrc: '.jshintrc' - }, - src: [ - 'Gruntfile.js', - 'example/js/*.js' - ] - } - }, - - jsonlint: { - all: { - src: [ - 'bower.json', - 'package.json', - '.jscs.json', - '.jshintrc' - ] - } - }, - - uglify: { - production: { - options: { - mangle: false, - compress: {}, - beautify: false, - preserveComments: 'all' - }, - files: { - 'dist/angular-pdf.min.js': [ 'dist/angular-pdf.js' ] - } - } - - } - - }); - - grunt.loadNpmTasks('grunt-bump'); - grunt.loadNpmTasks('grunt-contrib-clean'); - grunt.loadNpmTasks('grunt-contrib-copy'); - grunt.loadNpmTasks('grunt-contrib-jshint'); - grunt.loadNpmTasks('grunt-jscs'); - grunt.loadNpmTasks('grunt-jsonlint'); - grunt.loadNpmTasks('grunt-contrib-uglify'); - - grunt.registerTask('default', [ - 'clean', - 'jsonlint', - 'jscs', - 'jshint', - 'copy', - 'uglify' - ]); - - grunt.registerTask('check', [ - 'jsonlint', - 'jscs', - 'jshint' - ]); - -}; diff --git a/public/assets/plugins/angular-pdf/LICENSE b/public/assets/plugins/angular-pdf/LICENSE deleted file mode 100644 index 521964d..0000000 --- a/public/assets/plugins/angular-pdf/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License - -Copyright (c) 2014 Sayanee Basu, http://sayan.ee - -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. diff --git a/public/assets/plugins/angular-pdf/bower.json b/public/assets/plugins/angular-pdf/bower.json deleted file mode 100644 index bcdd91e..0000000 --- a/public/assets/plugins/angular-pdf/bower.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "angular-pdf", - "version": "0.4.0", - "description": "An Angularjs directive to display PDF in the browser with PDFJS.", - "main": "./dist/angular-pdf.js", - "license": "MIT", - "homepage": "http://github.com/sayanee/angularjs-pdf", - "dependencies": { - "angular": "1.3.15", - "pdfjs-dist": "1.1.159" - }, - "ignore": [ - "**/.*", - "package.json" - ] -} diff --git a/public/assets/plugins/angular-pdf/dist/angular-pdf.js b/public/assets/plugins/angular-pdf/dist/angular-pdf.js deleted file mode 100644 index a4788b2..0000000 --- a/public/assets/plugins/angular-pdf/dist/angular-pdf.js +++ /dev/null @@ -1,142 +0,0 @@ -/*! Angular-PDF Version: 0.4.0 | (C) Sayanee Basu 2014, released under an MIT license */ -(function() { - - 'use strict'; - - angular.module('pdf', []).directive('ngPdf', ['$window', function($window) { - return { - restrict: 'E', - templateUrl: function(element, attr) { - return attr.templateUrl ? attr.templateUrl : - 'partials/viewer.html' - }, - link: function(scope, element, attrs) { - var url = attrs.pdfUrl, - pdfDoc = null, - pageNum = (attrs.page ? attrs.page : 1), - scale = attrs.scale > 0 ? attrs.scale : 1, - canvasArr = element.find('canvas'); - var canvas = canvasArr[0]; - var ctx = canvas.getContext('2d'), - windowEl = angular.element($window); - - windowEl.on('scroll', function() { - scope.$apply(function() { - scope.scroll = windowEl[0].scrollY; - }); - }); - - PDFJS.disableWorker = true; - scope.pageNum = pageNum; - - scope.renderPage = function(num) { - pdfDoc.getPage(num).then(function(page) { - var viewport, - pageWidthScale, - pageHeightScale, - renderContext = {}, - pageRendering; - - if (attrs.scale === 'page-fit' && !scale) { - viewport = page.getViewport(1); - pageWidthScale = element[0].clientWidth / - viewport.width; - pageHeightScale = element[0].clientHeight / - viewport.height; - scale = Math.min(pageWidthScale, pageHeightScale); - } else { - viewport = page.getViewport(scale) - } - - canvas.height = viewport.height; - canvas.width = viewport.width; - - renderContext = { - canvasContext: ctx, - viewport: viewport - }; - - page.render(renderContext).promise.then(function() { - if (typeof scope.onPageRender === 'function') { - scope.onPageRender(); - } - }); - }); - }; - - scope.goPrevious = function() { - if (scope.pageToDisplay <= 1) { - return; - } - scope.pageNum = parseInt(scope.pageNum) - 1; - }; - - scope.goNext = function() { - if (scope.pageToDisplay >= pdfDoc.numPages) { - return; - } - scope.pageNum = parseInt(scope.pageNum) + 1; - }; - - scope.zoomIn = function() { - scale = parseFloat(scale) + 0.2; - scope.renderPage(scope.pageToDisplay); - return scale; - }; - - scope.zoomOut = function() { - scale = parseFloat(scale) - 0.2; - scope.renderPage(scope.pageToDisplay); - return scale; - }; - - scope.changePage = function() { - scope.renderPage(scope.pageToDisplay); - }; - - scope.rotate = function() { - if (canvas.getAttribute('class') === 'rotate0') { - canvas.setAttribute('class', 'rotate90'); - } else if (canvas.getAttribute('class') === 'rotate90') { - canvas.setAttribute('class', 'rotate180'); - } else if (canvas.getAttribute('class') === 'rotate180') { - canvas.setAttribute('class', 'rotate270'); - } else { - canvas.setAttribute('class', 'rotate0'); - } - }; - - PDFJS.getDocument(url, null, null, scope.onProgress).then( - function(_pdfDoc) { - if (typeof scope.onLoad === 'function') { - scope.onLoad(); - } - - pdfDoc = _pdfDoc; - scope.renderPage(scope.pageToDisplay); - - scope.$apply(function() { - scope.pageCount = _pdfDoc.numPages; - }); - }, - function(error) { - if (error) { - if (typeof scope.onError === 'function') { - scope.onError(error); - } - } - } - ); - - scope.$watch('pageNum', function(newVal) { - scope.pageToDisplay = parseInt(newVal); - if (pdfDoc !== null) { - scope.renderPage(scope.pageToDisplay); - } - }); - - } - }; - }]); - -})(); diff --git a/public/assets/plugins/angular-pdf/dist/angular-pdf.min.js b/public/assets/plugins/angular-pdf/dist/angular-pdf.min.js deleted file mode 100644 index 1a6ca76..0000000 --- a/public/assets/plugins/angular-pdf/dist/angular-pdf.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! Angular-PDF Version: 0.4.0 | (C) Sayanee Basu 2014, released under an MIT license */ -!function(){"use strict";angular.module("pdf",[]).directive("ngPdf",["$window",function($window){return{restrict:"E",templateUrl:function(element,attr){return attr.templateUrl?attr.templateUrl:"partials/viewer.html"},link:function(scope,element,attrs){var url=scope.pdfUrl,pdfDoc=null,pageNum=attrs.page?attrs.page:1,scale=attrs.scale>0?attrs.scale:1,canvas=document.getElementById(attrs.canvasid?attrs.canvasid:"pdf-canvas"),ctx=canvas.getContext("2d"),windowEl=angular.element($window);windowEl.on("scroll",function(){scope.$apply(function(){scope.scroll=windowEl[0].scrollY})}),PDFJS.disableWorker=!0,scope.pageNum=pageNum,scope.renderPage=function(num){pdfDoc.getPage(num).then(function(page){var viewport,pageWidthScale,pageHeightScale,renderContext={};"page-fit"!==attrs.scale||scale?viewport=page.getViewport(scale):(viewport=page.getViewport(1),pageWidthScale=element[0].clientWidth/viewport.width,pageHeightScale=element[0].clientHeight/viewport.height,scale=Math.min(pageWidthScale,pageHeightScale)),canvas.height=viewport.height,canvas.width=viewport.width,renderContext={canvasContext:ctx,viewport:viewport},page.render(renderContext).promise.then(function(){"function"==typeof scope.onPageRender&&scope.onPageRender()})})},scope.goPrevious=function(){scope.pageToDisplay<=1||(scope.pageNum=parseInt(scope.pageNum)-1)},scope.goNext=function(){scope.pageToDisplay>=pdfDoc.numPages||(scope.pageNum=parseInt(scope.pageNum)+1)},scope.zoomIn=function(){return scale=parseFloat(scale)+.2,scope.renderPage(scope.pageToDisplay),scale},scope.zoomOut=function(){return scale=parseFloat(scale)-.2,scope.renderPage(scope.pageToDisplay),scale},scope.changePage=function(){scope.renderPage(scope.pageToDisplay)},scope.rotate=function(){"rotate0"===canvas.getAttribute("class")?canvas.setAttribute("class","rotate90"):"rotate90"===canvas.getAttribute("class")?canvas.setAttribute("class","rotate180"):"rotate180"===canvas.getAttribute("class")?canvas.setAttribute("class","rotate270"):canvas.setAttribute("class","rotate0")},PDFJS.getDocument(url,null,null,scope.onProgress).then(function(_pdfDoc){"function"==typeof scope.onLoad&&scope.onLoad(),pdfDoc=_pdfDoc,scope.renderPage(scope.pageToDisplay),scope.$apply(function(){scope.pageCount=_pdfDoc.numPages})},function(error){error&&"function"==typeof scope.onError&&scope.onError(error)}),scope.$watch("pageNum",function(newVal){scope.pageToDisplay=parseInt(newVal),null!==pdfDoc&&scope.renderPage(scope.pageToDisplay)})}}}])}(); \ No newline at end of file diff --git a/public/assets/plugins/angular-pdf/example/index.html b/public/assets/plugins/angular-pdf/example/index.html deleted file mode 100644 index 62c765a..0000000 --- a/public/assets/plugins/angular-pdf/example/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - AngularJS PDFJS Directive - - - - -
        -

        {{pdfName}}

        - -
        - -Fork me on GitHub - - - - - - - - - - - diff --git a/public/assets/plugins/angular-pdf/example/js/controllers/docCtrl.js b/public/assets/plugins/angular-pdf/example/js/controllers/docCtrl.js deleted file mode 100644 index 82ae2f1..0000000 --- a/public/assets/plugins/angular-pdf/example/js/controllers/docCtrl.js +++ /dev/null @@ -1,25 +0,0 @@ -app.controller('DocCtrl', function($scope) { - - $scope.pdfName = 'Relativity: The Special and General Theory by Albert Einstein'; - $scope.pdfUrl = 'pdf/relativity.pdf'; - $scope.scroll = 0; - $scope.loading = 'loading'; - - $scope.getNavStyle = function(scroll) { - if(scroll > 100) return 'pdf-controls fixed'; - else return 'pdf-controls'; - } - - $scope.onError = function(error) { - console.log(error); - } - - $scope.onLoad = function() { - $scope.loading = ''; - } - - $scope.onProgress = function(progress) { - console.log(progress); - } - -}); diff --git a/public/assets/plugins/angular-pdf/example/js/directives/angular-pdf.js b/public/assets/plugins/angular-pdf/example/js/directives/angular-pdf.js deleted file mode 100644 index 0696d08..0000000 --- a/public/assets/plugins/angular-pdf/example/js/directives/angular-pdf.js +++ /dev/null @@ -1,137 +0,0 @@ -/*! Angular-PDF Version: 0.4.0 | (C) Sayanee Basu 2014, released under an MIT license */ -(function() { - - 'use strict'; - - angular.module('pdf', []).directive('ngPdf', [ '$window', function($window) { - return { - restrict: 'E', - templateUrl: function(element, attr) { - return attr.templateUrl ? attr.templateUrl : 'partials/viewer.html' - }, - link: function(scope, element, attrs) { - var url = scope.pdfUrl, - pdfDoc = null, - pageNum = (attrs.page ? attrs.page : 1), - scale = attrs.scale > 0 ? attrs.scale : 1, - canvas = (attrs.canvasid ? document.getElementById(attrs.canvasid) : document.getElementById('pdf-canvas')), - ctx = canvas.getContext('2d'), - windowEl = angular.element($window); - - windowEl.on('scroll', function() { - scope.$apply(function() { - scope.scroll = windowEl[0].scrollY; - }); - }); - - PDFJS.disableWorker = true; - scope.pageNum = pageNum; - - scope.renderPage = function(num) { - pdfDoc.getPage(num).then(function(page) { - var viewport, - pageWidthScale, - pageHeightScale, - renderContext = {}, - pageRendering; - - if (attrs.scale === 'page-fit' && !scale) { - viewport = page.getViewport(1); - pageWidthScale = element[0].clientWidth / viewport.width; - pageHeightScale = element[0].clientHeight / viewport.height; - scale = Math.min(pageWidthScale, pageHeightScale); - } else { - viewport = page.getViewport(scale) - } - - canvas.height = viewport.height; - canvas.width = viewport.width; - - renderContext = { - canvasContext: ctx, - viewport: viewport - }; - - page.render(renderContext).promise.then(function() { - if (typeof scope.onPageRender === 'function' ) { - scope.onPageRender(); - } - }); - }); - }; - - scope.goPrevious = function() { - if (scope.pageToDisplay <= 1) { - return; - } - scope.pageNum = parseInt(scope.pageNum) - 1; - }; - - scope.goNext = function() { - if (scope.pageToDisplay >= pdfDoc.numPages) { - return; - } - scope.pageNum = parseInt(scope.pageNum) + 1; - }; - - scope.zoomIn = function() { - scale = parseFloat(scale) + 0.2; - scope.renderPage(scope.pageToDisplay); - return scale; - }; - - scope.zoomOut = function() { - scale = parseFloat(scale) - 0.2; - scope.renderPage(scope.pageToDisplay); - return scale; - }; - - scope.changePage = function() { - scope.renderPage(scope.pageToDisplay); - }; - - scope.rotate = function() { - if (canvas.getAttribute('class') === 'rotate0') { - canvas.setAttribute('class', 'rotate90'); - } else if (canvas.getAttribute('class') === 'rotate90') { - canvas.setAttribute('class', 'rotate180'); - } else if (canvas.getAttribute('class') === 'rotate180') { - canvas.setAttribute('class', 'rotate270'); - } else { - canvas.setAttribute('class', 'rotate0'); - } - }; - - PDFJS.getDocument(url, null, null, scope.onProgress).then( - function(_pdfDoc) { - if (typeof scope.onLoad === 'function' ) { - scope.onLoad(); - } - - pdfDoc = _pdfDoc; - scope.renderPage(scope.pageToDisplay); - - scope.$apply(function() { - scope.pageCount = _pdfDoc.numPages; - }); - }, function(error) { - if (error) { - if (typeof scope.onError === 'function') { - scope.onError(error); - } - } - } - ); - - scope.$watch('pageNum', function(newVal) { - scope.pageToDisplay = parseInt(newVal); - if (pdfDoc !== null) { - scope.renderPage(scope.pageToDisplay); - } - }); - - } - }; - } ]); - -})(); diff --git a/public/assets/plugins/angular-pdf/example/js/lib/angular.min.js b/public/assets/plugins/angular-pdf/example/js/lib/angular.min.js deleted file mode 100644 index 0fb8002..0000000 --- a/public/assets/plugins/angular-pdf/example/js/lib/angular.min.js +++ /dev/null @@ -1,251 +0,0 @@ -/* - AngularJS v1.3.15 - (c) 2010-2014 Google, Inc. http://angularjs.org - License: MIT -*/ -(function(Q,W,t){'use strict';function R(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.3.15/"+(b?b+"/":"")+a;for(a=1;a").append(b).html();try{return b[0].nodeType===pb?z(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+z(b)})}catch(d){return z(c)}}function rc(b){try{return decodeURIComponent(b)}catch(a){}} -function sc(b){var a={},c,d;r((b||"").split("&"),function(b){b&&(c=b.replace(/\+/g,"%20").split("="),d=rc(c[0]),y(d)&&(b=y(c[1])?rc(c[1]):!0,tc.call(a,d)?H(a[d])?a[d].push(b):a[d]=[a[d],b]:a[d]=b))});return a}function Pb(b){var a=[];r(b,function(b,d){H(b)?r(b,function(b){a.push(Ea(d,!0)+(!0===b?"":"="+Ea(b,!0)))}):a.push(Ea(d,!0)+(!0===b?"":"="+Ea(b,!0)))});return a.length?a.join("&"):""}function qb(b){return Ea(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Ea(b,a){return encodeURIComponent(b).replace(/%40/gi, -"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Id(b,a){var c,d,e=rb.length;b=A(b);for(d=0;d/,">"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng");d=ab(a,c.strictDi);d.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector", -d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;Q&&e.test(Q.name)&&(c.debugInfoEnabled=!0,Q.name=Q.name.replace(e,""));if(Q&&!f.test(Q.name))return d();Q.name=Q.name.replace(f,"");ca.resumeBootstrap=function(b){r(b,function(b){a.push(b)});return d()};G(ca.resumeDeferredBootstrap)&&ca.resumeDeferredBootstrap()}function Kd(){Q.name="NG_ENABLE_DEBUG_INFO!"+Q.name;Q.location.reload()}function Ld(b){b=ca.element(b).injector();if(!b)throw Ja("test");return b.get("$$testability")} -function vc(b,a){a=a||"_";return b.replace(Md,function(b,d){return(d?a:"")+b.toLowerCase()})}function Nd(){var b;wc||((ta=Q.jQuery)&&ta.fn.on?(A=ta,w(ta.fn,{scope:Ka.scope,isolateScope:Ka.isolateScope,controller:Ka.controller,injector:Ka.injector,inheritedData:Ka.inheritedData}),b=ta.cleanData,ta.cleanData=function(a){var c;if(Qb)Qb=!1;else for(var d=0,e;null!=(e=a[d]);d++)(c=ta._data(e,"events"))&&c.$destroy&&ta(e).triggerHandler("$destroy");b(a)}):A=T,ca.element=A,wc=!0)}function Rb(b,a,c){if(!b)throw Ja("areq", -a||"?",c||"required");return b}function sb(b,a,c){c&&H(b)&&(b=b[b.length-1]);Rb(G(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function La(b,a){if("hasOwnProperty"===b)throw Ja("badname",a);}function xc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;g")+d[2];for(d=d[0];d--;)c=c.lastChild;f=Ya(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";r(f,function(a){e.appendChild(a)}); -return e}function T(b){if(b instanceof T)return b;var a;C(b)&&(b=N(b),a=!0);if(!(this instanceof T)){if(a&&"<"!=b.charAt(0))throw Tb("nosel");return new T(b)}if(a){a=W;var c;b=(c=gf.exec(b))?[a.createElement(c[1])]:(c=Hc(b,a))?c.childNodes:[]}Ic(this,b)}function Ub(b){return b.cloneNode(!0)}function wb(b,a){a||xb(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;d 4096 bytes)!"));else{if(p.cookie!==y)for(y=p.cookie,d=y.split("; "),fa={},f=0;fk&&this.remove(q.key),b},get:function(a){if(k").parent()[0])});var f=S(a,b,a,c,d,e);D.$$addScopeClass(a); -var g=null;return function(b,c,d){Rb(b,"scope");d=d||{};var e=d.parentBoundTranscludeFn,h=d.transcludeControllers;d=d.futureParentElement;e&&e.$$boundTransclude&&(e=e.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==va(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?A(Xb(g,A("
        ").append(a).html())):c?Ka.clone.call(a):a;if(h)for(var k in h)d.data("$"+k+"Controller",h[k].instance);D.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,e);return d}}function S(a,b,c,d,e,f){function g(a, -c,d,e){var f,k,l,q,p,s,M;if(m)for(M=Array(c.length),q=0;qK.priority)break;if(V=K.scope)K.templateUrl||(J(V)?(Na("new/isolated scope",P||F,K,w),P=K):Na("new/isolated scope",P,K,w)),F=F||K;da=K.name;!K.templateUrl&&K.controller&&(V=K.controller,S=S||{},Na("'"+da+"' controller",S[da],K,w),S[da]=K);if(V=K.transclude)ka=!0,K.$$tlb||(Na("transclusion",fa,K,w),fa=K),"element"==V?(E=!0,I=K.priority,V=w,w=e.$$element=A(W.createComment(" "+da+": "+ -e[da]+" ")),d=w[0],T(g,Za.call(V,0),d),fb=D(V,f,I,k&&k.name,{nonTlbTranscludeDirective:fa})):(V=A(Ub(d)).contents(),w.empty(),fb=D(V,f));if(K.template)if(x=!0,Na("template",ma,K,w),ma=K,V=G(K.template)?K.template(w,e):K.template,V=Tc(V),K.replace){k=K;V=Sb.test(V)?Uc(Xb(K.templateNamespace,N(V))):[];d=V[0];if(1!=V.length||d.nodeType!==qa)throw la("tplrt",da,"");T(g,w,d);Q={$attr:{}};V=X(d,[],Q);var aa=a.splice(z+1,a.length-(z+1));P&&y(V);a=a.concat(V).concat(aa);R(e,Q);Q=a.length}else w.html(V);if(K.templateUrl)x= -!0,Na("template",ma,K,w),ma=K,K.replace&&(k=K),B=of(a.splice(z,a.length-z),w,e,g,ka&&fb,l,p,{controllerDirectives:S,newIsolateScopeDirective:P,templateDirective:ma,nonTlbTranscludeDirective:fa}),Q=a.length;else if(K.compile)try{za=K.compile(w,e,fb),G(za)?s(null,za,Oa,U):za&&s(za.pre,za.post,Oa,U)}catch(pf){c(pf,wa(w))}K.terminal&&(B.terminal=!0,I=Math.max(I,K.priority))}B.scope=F&&!0===F.scope;B.transcludeOnThisElement=ka;B.elementTranscludeOnThisElement=E;B.templateOnThisElement=x;B.transclude=fb; -m.hasElementTranscludeDirective=E;return B}function y(a){for(var b=0,c=a.length;bq.priority)&&-1!=q.restrict.indexOf(f)&&(k&&(q=Ob(q,{$$start:k,$$end:l})),b.push(q),h=q)}catch(M){c(M)}}return h}function x(b){if(d.hasOwnProperty(b))for(var c=a.get(b+"Directive"),e=0,f=c.length;e"+b+"";return c.childNodes[0].childNodes;default:return b}} -function Q(a,b){if("srcdoc"==b)return Z.HTML;var c=va(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return Z.RESOURCE_URL}function Oa(a,c,d,e,f){var h=Q(a,e);f=g[e]||f;var k=b(d,!0,h,f);if(k){if("multiple"===e&&"select"===va(a))throw la("selmulti",wa(a));c.push({priority:100,compile:function(){return{pre:function(a,c,g){c=g.$$observers||(g.$$observers={});if(l.test(e))throw la("nodomevents");var m=g[e];m!==d&&(k=m&&b(m,!0,h,f),d=m);k&&(g[e]=k(a),(c[e]||(c[e]=[])).$$inter= -!0,(g.$$observers&&g.$$observers[e].$$scope||a).$watch(k,function(a,b){"class"===e&&a!=b?g.$updateClass(a,b):g.$set(e,a)}))}}}})}}function T(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g=a)return b;for(;a--;)8===b[a].nodeType&&qf.call(b,a,1);return b}function Fe(){var b={},a=!1,c=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(a,c){La(a, -"controller");J(a)?w(b,a):b[a]=c};this.allowGlobals=function(){a=!0};this.$get=["$injector","$window",function(d,e){function f(a,b,c,d){if(!a||!J(a.$scope))throw R("$controller")("noscp",d,b);a.$scope[b]=c}return function(g,h,l,k){var n,p,q;l=!0===l;k&&C(k)&&(q=k);if(C(g)){k=g.match(c);if(!k)throw rf("ctrlfmt",g);p=k[1];q=q||k[3];g=b.hasOwnProperty(p)?b[p]:xc(h.$scope,p,!0)||(a?xc(e,p,!0):t);sb(g,p,!0)}if(l)return l=(H(g)?g[g.length-1]:g).prototype,n=Object.create(l||null),q&&f(h,q,n,p||g.name),w(function(){d.invoke(g, -n,h,p);return n},{instance:n,identifier:q});n=d.instantiate(g,h,p);q&&f(h,q,n,p||g.name);return n}}]}function Ge(){this.$get=["$window",function(b){return A(b.document)}]}function He(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function Zb(b,a){if(C(b)){var c=b.replace(sf,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf(Wc))||(d=(d=c.match(tf))&&uf[d[0]].test(c));d&&(b=qc(c))}}return b}function Xc(b){var a=ia(),c,d,e;if(!b)return a;r(b.split("\n"), -function(b){e=b.indexOf(":");c=z(N(b.substr(0,e)));d=N(b.substr(e+1));c&&(a[c]=a[c]?a[c]+", "+d:d)});return a}function Yc(b){var a=J(b)?b:t;return function(c){a||(a=Xc(b));return c?(c=a[z(c)],void 0===c&&(c=null),c):a}}function Zc(b,a,c,d){if(G(d))return d(b,a,c);r(d,function(d){b=d(b,a,c)});return b}function Ke(){var b=this.defaults={transformResponse:[Zb],transformRequest:[function(a){return J(a)&&"[object File]"!==Ca.call(a)&&"[object Blob]"!==Ca.call(a)&&"[object FormData]"!==Ca.call(a)?$a(a): -a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:sa($b),put:sa($b),patch:sa($b)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},a=!1;this.useApplyAsync=function(b){return y(b)?(a=!!b,this):a};var c=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(d,e,f,g,h,l){function k(a){function c(a){var b=w({},a);b.data=a.data?Zc(a.data,a.headers,a.status,e.transformResponse):a.data;a=a.status;return 200<=a&&300>a? -b:h.reject(b)}function d(a){var b,c={};r(a,function(a,d){G(a)?(b=a(),null!=b&&(c[d]=b)):c[d]=a});return c}if(!ca.isObject(a))throw R("$http")("badreq",a);var e=w({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse},a);e.headers=function(a){var c=b.headers,e=w({},a.headers),f,g,c=w({},c.common,c[z(a.method)]);a:for(f in c){a=z(f);for(g in e)if(z(g)===a)continue a;e[f]=c[f]}return d(e)}(a);e.method=ub(e.method);var f=[function(a){var d=a.headers,e=Zc(a.data,Yc(d), -t,a.transformRequest);x(e)&&r(d,function(a,b){"content-type"===z(b)&&delete d[b]});x(a.withCredentials)&&!x(b.withCredentials)&&(a.withCredentials=b.withCredentials);return n(a,e).then(c,c)},t],g=h.when(e);for(r(u,function(a){(a.request||a.requestError)&&f.unshift(a.request,a.requestError);(a.response||a.responseError)&&f.push(a.response,a.responseError)});f.length;){a=f.shift();var k=f.shift(),g=g.then(a,k)}g.success=function(a){g.then(function(b){a(b.data,b.status,b.headers,e)});return g};g.error= -function(a){g.then(null,function(b){a(b.data,b.status,b.headers,e)});return g};return g}function n(c,f){function l(b,c,d,e){function f(){m(c,b,d,e)}I&&(200<=b&&300>b?I.put(P,[b,c,Xc(d),e]):I.remove(P));a?g.$applyAsync(f):(f(),g.$$phase||g.$apply())}function m(a,b,d,e){b=Math.max(b,0);(200<=b&&300>b?L.resolve:L.reject)({data:a,status:b,headers:Yc(d),config:c,statusText:e})}function n(a){m(a.data,a.status,sa(a.headers()),a.statusText)}function u(){var a=k.pendingRequests.indexOf(c);-1!==a&&k.pendingRequests.splice(a, -1)}var L=h.defer(),B=L.promise,I,D,S=c.headers,P=p(c.url,c.params);k.pendingRequests.push(c);B.then(u,u);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(I=J(c.cache)?c.cache:J(b.cache)?b.cache:q);I&&(D=I.get(P),y(D)?D&&G(D.then)?D.then(n,n):H(D)?m(D[1],D[0],sa(D[2]),D[3]):m(D,200,{},"OK"):I.put(P,B));x(D)&&((D=$c(c.url)?e.cookies()[c.xsrfCookieName||b.xsrfCookieName]:t)&&(S[c.xsrfHeaderName||b.xsrfHeaderName]=D),d(c.method,P,f,l,S,c.timeout,c.withCredentials,c.responseType)); -return B}function p(a,b){if(!b)return a;var c=[];Ed(b,function(a,b){null===a||x(a)||(H(a)||(a=[a]),r(a,function(a){J(a)&&(a=ga(a)?a.toISOString():$a(a));c.push(Ea(b)+"="+Ea(a))}))});0=l&&(s.resolve(q),p(M.$$intervalId),delete f[M.$$intervalId]);u||b.$apply()},h);f[M.$$intervalId]=s;return M}var f={};e.cancel=function(b){return b&&b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId), -delete f[b.$$intervalId],!0):!1};return e}]}function Rd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "), -DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(b){return 1===b?"one":"other"}}}}function bc(b){b=b.split("/");for(var a=b.length;a--;)b[a]=qb(b[a]); -return b.join("/")}function ad(b,a){var c=Aa(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=aa(c.port)||xf[c.protocol]||null}function bd(b,a){var c="/"!==b.charAt(0);c&&(b="/"+b);var d=Aa(b);a.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname);a.$$search=sc(d.search);a.$$hash=decodeURIComponent(d.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function ya(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Ga(b){var a=b.indexOf("#"); -return-1==a?b:b.substr(0,a)}function Fb(b){return b.replace(/(#.+)|#$/,"$1")}function cc(b){return b.substr(0,Ga(b).lastIndexOf("/")+1)}function dc(b,a){this.$$html5=!0;a=a||"";var c=cc(b);ad(b,this);this.$$parse=function(a){var b=ya(c,a);if(!C(b))throw Gb("ipthprfx",a,c);bd(b,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var a=Pb(this.$$search),b=this.$$hash?"#"+qb(this.$$hash):"";this.$$url=bc(this.$$path)+(a?"?"+a:"")+b;this.$$absUrl=c+this.$$url.substr(1)};this.$$parseLinkUrl= -function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;(f=ya(b,d))!==t?(g=f,g=(f=ya(a,f))!==t?c+(ya("/",f)||f):b+g):(f=ya(c,d))!==t?g=c+f:c==d+"/"&&(g=c);g&&this.$$parse(g);return!!g}}function ec(b,a){var c=cc(b);ad(b,this);this.$$parse=function(d){d=ya(b,d)||ya(c,d);var e;"#"===d.charAt(0)?(e=ya(a,d),x(e)&&(e=d)):e=this.$$html5?d:"";bd(e,this);d=this.$$path;var f=/^\/[A-Z]:(\/.*)/;0===e.indexOf(b)&&(e=e.replace(b,""));f.exec(e)||(d=(e=f.exec(d))?e[1]:d);this.$$path=d;this.$$compose()}; -this.$$compose=function(){var c=Pb(this.$$search),e=this.$$hash?"#"+qb(this.$$hash):"";this.$$url=bc(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+(this.$$url?a+this.$$url:"")};this.$$parseLinkUrl=function(a,c){return Ga(b)==Ga(a)?(this.$$parse(a),!0):!1}}function cd(b,a){this.$$html5=!0;ec.apply(this,arguments);var c=cc(b);this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;b==Ga(d)?f=d:(g=ya(c,d))?f=b+a+g:c===d+"/"&&(f=c);f&&this.$$parse(f);return!!f};this.$$compose= -function(){var c=Pb(this.$$search),e=this.$$hash?"#"+qb(this.$$hash):"";this.$$url=bc(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+a+this.$$url}}function Hb(b){return function(){return this[b]}}function dd(b,a){return function(c){if(x(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Me(){var b="",a={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(a){return y(a)?(b=a,this):b};this.html5Mode=function(b){return Wa(b)?(a.enabled=b,this):J(b)?(Wa(b.enabled)&&(a.enabled= -b.enabled),Wa(b.requireBase)&&(a.requireBase=b.requireBase),Wa(b.rewriteLinks)&&(a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c,d,e,f,g){function h(a,b,c){var e=k.url(),f=k.$$state;try{d.url(a,b,c),k.$$state=d.state()}catch(g){throw k.url(e),k.$$state=f,g;}}function l(a,b){c.$broadcast("$locationChangeSuccess",k.absUrl(),a,k.$$state,b)}var k,n;n=d.baseHref();var p=d.url(),q;if(a.enabled){if(!n&&a.requireBase)throw Gb("nobase"); -q=p.substring(0,p.indexOf("/",p.indexOf("//")+2))+(n||"/");n=e.history?dc:cd}else q=Ga(p),n=ec;k=new n(q,"#"+b);k.$$parseLinkUrl(p,p);k.$$state=d.state();var u=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&&!b.metaKey&&!b.shiftKey&&2!=b.which&&2!=b.button){for(var e=A(b.target);"a"!==va(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href"),l=e.attr("href")||e.attr("xlink:href");J(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=Aa(h.animVal).href); -u.test(h)||!h||e.attr("target")||b.isDefaultPrevented()||!k.$$parseLinkUrl(h,l)||(b.preventDefault(),k.absUrl()!=d.url()&&(c.$apply(),g.angular["ff-684208-preventDefault"]=!0))}});Fb(k.absUrl())!=Fb(p)&&d.url(k.absUrl(),!0);var s=!0;d.onUrlChange(function(a,b){c.$evalAsync(function(){var d=k.absUrl(),e=k.$$state,f;k.$$parse(a);k.$$state=b;f=c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented;k.absUrl()===a&&(f?(k.$$parse(d),k.$$state=e,h(d,!1,e)):(s=!1,l(d,e)))});c.$$phase||c.$digest()}); -c.$watch(function(){var a=Fb(d.url()),b=Fb(k.absUrl()),f=d.state(),g=k.$$replace,q=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(s||q)s=!1,c.$evalAsync(function(){var b=k.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,k.$$state,f).defaultPrevented;k.absUrl()===b&&(d?(k.$$parse(a),k.$$state=f):(q&&h(b,g,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function Ne(){var b=!0,a=this;this.debugEnabled=function(a){return y(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof -Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||E;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a=[];r(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a, -arguments)}}()}}]}function ua(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"===b||"__proto__"===b)throw na("isecfld",a);return b}function oa(b,a){if(b){if(b.constructor===b)throw na("isecfn",a);if(b.window===b)throw na("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw na("isecdom",a);if(b===Object)throw na("isecobj",a);}return b}function fc(b){return b.constant}function hb(b,a,c,d,e){oa(b,e);oa(a,e);c=c.split(".");for(var f, -g=0;1h?ed(g[0],g[1],g[2],g[3],g[4],c,d):function(a,b){var e=0,f;do f=ed(g[e++],g[e++],g[e++],g[e++],g[e++],c,d)(a,b),b=t,a=f;while(e=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b,e,f=0,g=d.length;fa)for(b in l++,f)e.hasOwnProperty(b)||(u--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$stateful=!0;var d=this,e,f,g,k=1r&&(M=4-r,O[M]||(O[M]=[]),O[M].push({msg:G(b.exp)?"fn: "+(b.exp.name||b.exp.toString()):b.exp,newVal:f,oldVal:h}));else if(b=== -d){n=!1;break a}}catch(A){g(A)}if(!(k=t.$$childHead||t!==this&&t.$$nextSibling))for(;t!==this&&!(k=t.$$nextSibling);)t=t.$parent}while(t=k);if((n||m.length)&&!r--)throw v.$$phase=null,c("infdig",a,O);}while(n||m.length);for(v.$$phase=null;F.length;)try{F.shift()()}catch(x){g(x)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;if(this!==v){for(var b in this.$$listenerCount)q(this,this.$$listenerCount[b],b);a.$$childHead==this&&(a.$$childHead= -this.$$nextSibling);a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=E;this.$on=this.$watch=this.$watchGroup=function(){return E};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(a, -b){return h(a)(this,b)},$evalAsync:function(a,b){v.$$phase||m.length||l.defer(function(){m.length&&v.$digest()});m.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){F.push(a)},$apply:function(a){try{return p("$apply"),this.$eval(a)}catch(b){g(b)}finally{v.$$phase=null;try{v.$digest()}catch(c){throw g(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&t.push(b);M()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]|| -(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,q(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,f=!1,h={name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=Ya([h],arguments,1),l,q;do{d=e.$$listeners[a]||c;h.currentScope=e;l=0;for(q=d.length;lQa)throw Ba("iequirks");var d=sa(pa);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs= -d.getTrusted=function(a,b){return b},d.valueOf=ra);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs,f=d.getTrusted,g=d.trustAs;r(pa,function(a,b){var c=z(b);d[db("parse_as_"+c)]=function(b){return e(a,b)};d[db("get_trusted_"+c)]=function(b){return f(a,b)};d[db("trust_as_"+c)]=function(b){return g(a,b)}});return d}]}function Ue(){this.$get=["$window","$document",function(b,a){var c={},d=aa((/android (\d+)/.exec(z((b.navigator|| -{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},g,h=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,n=!1;if(l){for(var p in l)if(k=h.exec(p)){g=k[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}g||(g="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||g+"Transition"in l);n=!!("animation"in l||g+"Animation"in l);!d||k&&n||(k=C(f.body.style.webkitTransition),n=C(f.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"=== -a&&11>=Qa)return!1;if(x(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:bb(),vendorPrefix:g,transitions:k,animations:n,android:d}}]}function We(){this.$get=["$templateCache","$http","$q",function(b,a,c){function d(e,f){d.totalPendingRequests++;var g=a.defaults&&a.defaults.transformResponse;H(g)?g=g.filter(function(a){return a!==Zb}):g===Zb&&(g=null);return a.get(e,{cache:b,transformResponse:g})["finally"](function(){d.totalPendingRequests--}).then(function(a){return a.data}, -function(a){if(!f)throw la("tpload",e);return c.reject(a)})}d.totalPendingRequests=0;return d}]}function Xe(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var g=[];r(a,function(a){var d=ca.element(a).data("$binding");d&&r(d,function(d){c?(new RegExp("(^|\\s)"+gd(b)+"(\\s|\\||$)")).test(d)&&g.push(a):-1!=d.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,c){for(var g=["ng-","data-ng-","ng\\:"], -h=0;hb;b=Math.abs(b);var g=b+"",h="",l=[],k=!1;if(-1!==g.indexOf("e")){var n=g.match(/([\d\.]+)e(-?)(\d+)/);n&&"-"==n[2]&&n[3]>e+1?b=0:(h=g,k=!0)}if(k)0b&&(h=b.toFixed(e),b=parseFloat(h));else{g=(g.split(od)[1]|| -"").length;x(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var g=(""+b).split(od),k=g[0],g=g[1]||"",p=0,q=a.lgSize,u=a.gSize;if(k.length>=q+u)for(p=k.length-q,n=0;nb&&(d="-",b=-b);for(b=""+b;b.length-c)e+=c;0===e&&-12==c&&(e=12);return Ib(e,a,d)}}function Jb(b,a){return function(c,d){var e=c["get"+b](),f=ub(a?"SHORT"+b:b);return d[f][e]}}function pd(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function qd(b){return function(a){var c=pd(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+ -(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return Ib(a,b)}}function ic(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function kd(b){function a(a){var b;if(b=a.match(c)){a=new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=aa(b[9]+b[10]),g=aa(b[9]+b[11]));h.call(a,aa(b[1]),aa(b[2])-1,aa(b[3]));f=aa(b[4]||0)-f;g=aa(b[5]||0)-g;h=aa(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,g,h,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/; -return function(c,e,f){var g="",h=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;C(c)&&(c=Kf.test(c)?aa(c):a(c));Y(c)&&(c=new Date(c));if(!ga(c))return c;for(;e;)(k=Lf.exec(e))?(h=Ya(h,k,1),e=h.pop()):(h.push(e),e=null);f&&"UTC"===f&&(c=new Date(c.getTime()),c.setMinutes(c.getMinutes()+c.getTimezoneOffset()));r(h,function(a){l=Mf[a];g+=l?l(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Ff(){return function(b,a){x(a)&&(a=2);return $a(b,a)}}function Gf(){return function(b, -a){Y(b)&&(b=b.toString());return H(b)||C(b)?(a=Infinity===Math.abs(Number(a))?Number(a):aa(a))?0b||37<=b&&40>=b||n(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut",n)}a.on("change",l);d.$render=function(){a.val(d.$isEmpty(d.$viewValue)?"":d.$viewValue)}}function Mb(b,a){return function(c,d){var e,f;if(ga(c))return c;if(C(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(Nf.test(c))return new Date(c);b.lastIndex= -0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},r(e,function(b,c){c=r}; -g.$observe("min",function(a){r=q(a);h.$validate()})}if(y(g.max)||g.ngMax){var v;h.$validators.max=function(a){return!p(a)||x(v)||c(a)<=v};g.$observe("max",function(a){v=q(a);h.$validate()})}}}function td(b,a,c,d){(d.$$hasNativeValidators=J(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?t:b})}function ud(b,a,c,d,e){if(y(d)){b=b(d);if(!b.constant)throw R("ngModel")("constexpr",c,d);return b(a)}return e}function kc(b,a){b="ngClass"+b;return["$animate", -function(c){function d(a,b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/,Sb=/<|&#?\w+;/,ef=/<([\w:]+)/,ff=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ja={option:[1,'"],thead:[1,"","
        "],col:[2,"", -"
        "],tr:[2,"","
        "],td:[3,"","
        "],_default:[0,"",""]};ja.optgroup=ja.option;ja.tbody=ja.tfoot=ja.colgroup=ja.caption=ja.thead;ja.th=ja.td;var Ka=T.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===W.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),T(Q).on("load",a))},toString:function(){var b=[];r(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<= -b?A(this[b]):A(this[this.length+b])},length:0,push:Pf,sort:[].sort,splice:[].splice},Eb={};r("multiple selected checked disabled readOnly required open".split(" "),function(b){Eb[z(b)]=b});var Oc={};r("input select option textarea button form details".split(" "),function(b){Oc[b]=!0});var Pc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};r({data:Vb,removeData:xb},function(b,a){T[a]=b});r({data:Vb,inheritedData:Db,scope:function(b){return A.data(b,"$scope")|| -Db(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return A.data(b,"$isolateScope")||A.data(b,"$isolateScopeNoTemplate")},controller:Kc,injector:function(b){return Db(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Ab,css:function(b,a,c){a=db(a);if(y(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=z(a);if(Eb[d])if(y(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||E).specified? -d:t;else if(y(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?t:b},prop:function(b,a,c){if(y(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(x(b)){var d=a.nodeType;return d===qa||d===pb?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(x(a)){if(b.multiple&&"select"===va(b)){var c=[];r(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(x(a))return b.innerHTML; -wb(b,!0);b.innerHTML=a},empty:Lc},function(b,a){T.prototype[a]=function(a,d){var e,f,g=this.length;if(b!==Lc&&(2==b.length&&b!==Ab&&b!==Kc?a:d)===t){if(J(a)){for(e=0;e":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)}, -"||":function(a,c,d,e){return d(a,c)||e(a,c)},"!":function(a,c,d){return!d(a,c)},"=":!0,"|":!0}),Zf={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},hc=function(a){this.options=a};hc.prototype={constructor:hc,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=y(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw na("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.index< -this.text.length;){var d=z(this.text.charAt(this.index));if("."==d||this.isNumber(d))a+=d;else{var e=this.peek();if("e"==d&&this.isExpOperator(e))a+=d;else if(this.isExpOperator(d)&&e&&this.isNumber(e)&&"e"==a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||e&&this.isNumber(e)||"e"!=a.charAt(a.length-1))break;else this.throwError("Invalid exponent")}this.index++}this.tokens.push({index:c,text:a,constant:!0,value:Number(a)})},readIdent:function(){for(var a=this.index;this.indexa){a=this.tokens[a];var g=a.text;if(g===c||g===d||g===e||g=== -f||!(c||d||e||f))return a}return!1},expect:function(a,c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},consume:function(a){if(0===this.tokens.length)throw na("ueoe",this.text);var c=this.expect(a);c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},unaryFn:function(a,c){var d=nb[a];return w(function(a,f){return d(a,f,c)},{constant:c.constant,inputs:[c]})},binaryFn:function(a,c,d,e){var f=nb[c];return w(function(c,e){return f(c,e,a,d)},{constant:a.constant&& -d.constant,inputs:!e&&[a,d]})},identifier:function(){for(var a=this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)a+=this.consume().text+this.consume().text;return zf(a,this.options,this.text)},constant:function(){var a=this.consume().value;return w(function(){return a},{constant:!0,literal:!0})},statements:function(){for(var a=[];;)if(0","<=",">=");)a=this.binaryFn(a,c.text, -this.additive());return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.text,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a=this.binaryFn(a,c.text,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(ib.ZERO,a.text,this.unary()):(a=this.expect("!"))?this.unaryFn(a.text,this.unary()):this.primary()},fieldAccess:function(a){var c= -this.identifier();return w(function(d,e,f){d=f||a(d,e);return null==d?t:c(d)},{assign:function(d,e,f){var g=a(d,f);g||a.assign(d,g={},f);return c.assign(g,e)}})},objectIndex:function(a){var c=this.text,d=this.expression();this.consume("]");return w(function(e,f){var g=a(e,f),h=d(e,f);ua(h,c);return g?oa(g[h],c):t},{assign:function(e,f,g){var h=ua(d(e,g),c),l=oa(a(e,g),c);l||a.assign(e,l={},g);return l[h]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression()); -while(this.expect(","))}this.consume(")");var e=this.text,f=d.length?[]:null;return function(g,h){var l=c?c(g,h):y(c)?t:g,k=a(g,h,l)||E;if(f)for(var n=d.length;n--;)f[n]=oa(d[n](g,h),e);oa(l,e);if(k){if(k.constructor===k)throw na("isecfn",e);if(k===Wf||k===Xf||k===Yf)throw na("isecff",e);}l=k.apply?k.apply(l,f):k(f[0],f[1],f[2],f[3],f[4]);f&&(f.length=0);return oa(l,e)}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(",")) -}this.consume("]");return w(function(c,d){for(var e=[],f=0,g=a.length;fa.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=-1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(Ib(Math[0=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},Lf=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/, -Kf=/^\-?\d+$/;kd.$inject=["$locale"];var Hf=ea(z),If=ea(ub);md.$inject=["$parse"];var Td=ea({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref&&!c.name)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"===Ca.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),vb={};r(Eb,function(a,c){if("multiple"!=a){var d=xa("ng-"+c);vb[d]=function(){return{restrict:"A",priority:100,link:function(a,f,g){a.$watch(g[d], -function(a){g.$set(c,!!a)})}}}}});r(Pc,function(a,c){vb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(Of))){f.$set("ngPattern",new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});r(["src","srcset","href"],function(a){var c=xa("ng-"+a);vb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,h=a;"href"===a&&"[object SVGAnimatedString]"===Ca.call(e.prop("href"))&&(h="xlinkHref",f.$attr[h]="xlink:href", -g=null);f.$observe(c,function(c){c?(f.$set(h,c),Qa&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Kb={$addControl:E,$$renameControl:function(a,c){a.$name=c},$removeControl:E,$setValidity:E,$setDirty:E,$setPristine:E,$setSubmitted:E};rd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var yd=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:rd,compile:function(d,e){d.addClass(Ra).addClass(lb);var f=e.name?"name":a&&e.ngForm?"ngForm": -!1;return{pre:function(a,d,e,k){if(!("action"in e)){var n=function(c){a.$apply(function(){k.$commitViewValue();k.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",n,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",n,!1)},0,!1)})}var p=k.$$parentForm;f&&(hb(a,null,k.$name,k,k.$name),e.$observe(f,function(c){k.$name!==c&&(hb(a,null,k.$name,t,k.$name),p.$$renameControl(k,c),hb(a,null,k.$name,k,k.$name))}));d.on("$destroy",function(){p.$removeControl(k); -f&&hb(a,null,e[f],t,k.$name);w(k,Kb)})}}}}}]},Ud=yd(),ge=yd(!0),Nf=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,$f=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,ag=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,bg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,zd=/^(\d{4})-(\d{2})-(\d{2})$/,Ad=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,lc=/^(\d{4})-W(\d\d)$/,Bd=/^(\d{4})-(\d\d)$/, -Cd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Dd={text:function(a,c,d,e,f,g){jb(a,c,d,e,f,g);jc(e)},date:kb("date",zd,Mb(zd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":kb("datetimelocal",Ad,Mb(Ad,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:kb("time",Cd,Mb(Cd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:kb("week",lc,function(a,c){if(ga(a))return a;if(C(a)){lc.lastIndex=0;var d=lc.exec(a);if(d){var e=+d[1],f=+d[2],g=d=0,h=0,l=0,k=pd(e),f=7*(f-1);c&&(d=c.getHours(),g= -c.getMinutes(),h=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,g,h,l)}}return NaN},"yyyy-Www"),month:kb("month",Bd,Mb(Bd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){td(a,c,d,e);jb(a,c,d,e,f,g);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:bg.test(a)?parseFloat(a):t});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!Y(a))throw Nb("numfmt",a);a=a.toString()}return a});if(y(d.min)||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)|| -x(h)||a>=h};d.$observe("min",function(a){y(a)&&!Y(a)&&(a=parseFloat(a,10));h=Y(a)&&!isNaN(a)?a:t;e.$validate()})}if(y(d.max)||d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||x(l)||a<=l};d.$observe("max",function(a){y(a)&&!Y(a)&&(a=parseFloat(a,10));l=Y(a)&&!isNaN(a)?a:t;e.$validate()})}},url:function(a,c,d,e,f,g){jb(a,c,d,e,f,g);jc(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||$f.test(d)}},email:function(a,c,d,e,f,g){jb(a,c,d,e,f,g);jc(e); -e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||ag.test(d)}},radio:function(a,c,d,e){x(d.name)&&c.attr("name",++ob);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,h,l){var k=ud(l,a,"ngTrueValue",d.ngTrueValue,!0),n=ud(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&& -a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return ha(a,k)});e.$parsers.push(function(a){return a?k:n})},hidden:E,button:E,submit:E,reset:E,file:E},zc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Dd[z(h.type)]||Dd.text)(f,g,h,l[0],c,a,d,e)}}}}],cg=/^(true|false|\d+)$/,ye=function(){return{restrict:"A",priority:100,compile:function(a, -c){return cg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},Zd=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=a===t?"":a})}}}}],ae=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate)); -c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent=a===t?"":a})}}}}],$d=["$sce","$parse","$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml),h=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(h,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],xe=ea({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}), -be=kc("",!0),de=kc("Odd",0),ce=kc("Even",1),ee=Ia({compile:function(a,c){c.$set("ngCloak",t);a.removeClass("ng-cloak")}}),fe=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Ec={},dg={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=xa("ng-"+a);Ec[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var h= -d(g[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){h(c,{$event:d})};dg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var ie=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=W.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k= -tb(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],je=["$templateRequest","$anchorScroll","$animate","$sce",function(a,c,d,e){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:ca.noop,compile:function(f,g){var h=g.ngInclude||g.src,l=g.onload||"",k=g.autoscroll;return function(f,g,q,r,s){var t=0,v,m,F,w=function(){m&&(m.remove(),m=null);v&&(v.$destroy(),v=null);F&&(d.leave(F).then(function(){m=null}),m=F,F=null)};f.$watch(e.parseAsResourceUrl(h),function(e){var h= -function(){!y(k)||k&&!f.$eval(k)||c()},m=++t;e?(a(e,!0).then(function(a){if(m===t){var c=f.$new();r.template=a;a=s(c,function(a){w();d.enter(a,null,g).then(h)});v=c;F=a;v.$emit("$includeContentLoaded",e);f.$eval(l)}},function(){m===t&&(w(),f.$emit("$includeContentError",e))}),f.$emit("$includeContentRequested",e)):(w(),r.template=null)})}}}}],Ae=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Hc(f.template, -W).childNodes)(c,function(a){d.append(a)},{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],ke=Ia({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),we=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,h=g?N(f):f;e.$parsers.push(function(a){if(!x(a)){var c=[];a&&r(a.split(h),function(a){a&&c.push(g?N(a):a)});return c}});e.$formatters.push(function(a){return H(a)? -a.join(f):t});e.$isEmpty=function(a){return!a||!a.length}}}},lb="ng-valid",vd="ng-invalid",Ra="ng-pristine",Lb="ng-dirty",xd="ng-pending",Nb=new R("ngModel"),eg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,n){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=t;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0; -this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=t;this.$name=n(d.name||"",!1)(a);var p=f(d.ngModel),q=p.assign,u=p,s=q,M=null,v,m=this;this.$$setOptions=function(a){if((m.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");u=function(a){var d=p(a);G(d)&&(d=c(a));return d};s=function(a,c){G(p(a))?g(a,{$$$p:m.$modelValue}):q(a,m.$modelValue)}}else if(!p.assign)throw Nb("nonassign",d.ngModel,wa(e)); -};this.$render=E;this.$isEmpty=function(a){return x(a)||""===a||null===a||a!==a};var F=e.inheritedData("$formController")||Kb,w=0;sd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},parentForm:F,$animate:g});this.$setPristine=function(){m.$dirty=!1;m.$pristine=!0;g.removeClass(e,Lb);g.addClass(e,Ra)};this.$setDirty=function(){m.$dirty=!0;m.$pristine=!1;g.removeClass(e,Ra);g.addClass(e,Lb);F.$setDirty()};this.$setUntouched=function(){m.$touched=!1;m.$untouched=!0;g.setClass(e, -"ng-untouched","ng-touched")};this.$setTouched=function(){m.$touched=!0;m.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){h.cancel(M);m.$viewValue=m.$$lastCommittedViewValue;m.$render()};this.$validate=function(){if(!Y(m.$modelValue)||!isNaN(m.$modelValue)){var a=m.$$rawModelValue,c=m.$valid,d=m.$modelValue,e=m.$options&&m.$options.allowInvalid;m.$$runValidators(a,m.$$lastCommittedViewValue,function(f){e||c===f||(m.$modelValue=f?a:t,m.$modelValue!==d&&m.$$writeModelToScope())})}}; -this.$$runValidators=function(a,c,d){function e(){var d=!0;r(m.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d?!0:(r(m.$asyncValidators,function(a,c){g(c,null)}),!1)}function f(){var d=[],e=!0;r(m.$asyncValidators,function(f,h){var k=f(a,c);if(!k||!G(k.then))throw Nb("$asyncValidators",k);g(h,t);d.push(k.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},E):h(!0)}function g(a,c){l===w&&m.$setValidity(a,c)}function h(a){l===w&&d(a)}w++;var l= -w;(function(){var a=m.$$parserName||"parse";if(v===t)g(a,null);else return v||(r(m.$validators,function(a,c){g(c,null)}),r(m.$asyncValidators,function(a,c){g(c,null)})),g(a,v),v;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=m.$viewValue;h.cancel(M);if(m.$$lastCommittedViewValue!==a||""===a&&m.$$hasNativeValidators)m.$$lastCommittedViewValue=a,m.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=m.$$lastCommittedViewValue;if(v= -x(c)?t:!0)for(var d=0;dz;)d=t.pop(),n(O,d.label,!1),d.element.remove()}for(;R.length> -x;){l=R.pop();for(z=1;za&&q.removeOption(c)})}var v;if(!(v=s.match(d)))throw gg("iexp",s,wa(f));var C=c(v[2]||v[1]),x=v[4]||v[6],A=/ as /.test(v[0])&&v[1],B=A?c(A):null,G=v[5],J=c(v[3]||""),z=c(v[2]?v[1]:x),L=c(v[7]),I=v[8]?c(v[8]):null,Q={},R=[[{element:f,label:""}]],T={};w&&(a(w)(e),w.removeClass("ng-scope"),w.remove());f.empty();f.on("change",function(){e.$apply(function(){var a=L(e)||[],c;if(u)c=[],r(f.val(), -function(d){d=I?Q[d]:d;c.push("?"===d?t:""===d?null:h(B?B:z,d,a[d]))});else{var d=I?Q[f.val()]:f.val();c="?"===d?t:""===d?null:h(B?B:z,d,a[d])}g.$setViewValue(c);p()})});g.$render=p;e.$watchCollection(L,l);e.$watchCollection(function(){var a=L(e),c;if(a&&H(a)){c=Array(a.length);for(var d=0,f=a.length;df||e.$isEmpty(c)||c.length<=f}}}}},Cc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=aa(a)||0;e.$validate()});e.$validators.minlength=function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};Q.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(Nd(),Pd(ca),A(W).ready(function(){Jd(W,uc)}))})(window,document);!window.angular.$$csp()&&window.angular.element(document).find("head").prepend(''); -//# sourceMappingURL=angular.min.js.map diff --git a/public/assets/plugins/angular-pdf/example/js/lib/angular.min.js.map b/public/assets/plugins/angular-pdf/example/js/lib/angular.min.js.map deleted file mode 100644 index b054603..0000000 --- a/public/assets/plugins/angular-pdf/example/js/lib/angular.min.js.map +++ /dev/null @@ -1,8 +0,0 @@ -{ -"version":3, -"file":"angular.min.js", -"lineCount":250, -"mappings":"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", -"sources":["angular.js"], -"names":["window","document","undefined","minErr","isArrayLike","obj","isWindow","length","nodeType","NODE_TYPE_ELEMENT","isString","isArray","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","forEachSorted","keys","Object","sort","i","reverseParams","iteratorFn","value","nextUid","uid","setHashKey","h","$$hashKey","extend","dst","ii","arguments","j","jj","int","str","parseInt","inherit","parent","extra","create","noop","identity","$","valueFn","isUndefined","isDefined","isObject","isNumber","isDate","toString","isRegExp","isScope","$evalAsync","$watch","isBoolean","isElement","node","nodeName","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","stackSource","stackDest","ngMinErr","push","result","Date","getTime","RegExp","match","lastIndex","emptyObject","getPrototypeOf","shallowCopy","src","charAt","equals","o1","o2","t1","t2","keySet","concat","array1","array2","slice","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","toJson","pretty","JSON","stringify","fromJson","json","parse","startingTag","jqLite","clone","empty","e","elemHtml","append","html","NODE_TYPE_TEXT","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","key_value","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","getAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","test","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","skipDestroyOnNextJQueryCleanData","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","constructor","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","createMap","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","animation","filter","directive","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","$LocaleProvider","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpBackend","$HttpBackendProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$asyncCallback","$$AsyncCallbackProvider","$$jqLite","$$jqLiteProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","cloneNode","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","type","unsupported","expandoStore","jqLiteExpandoStore","handle","listenerFns","removeEventListener","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","parentNode","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","getAliasedAttrName","ALIASED_ATTR","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","anonFn","args","fnText","STRIP_COMMENTS","FN_ARGS","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","locals","$inject","$$annotate","Type","instance","prototype","returnedValue","annotate","has","$injector","instanceCache","decorator","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","Array","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","supported","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","startPoller","interval","check","pollFns","pollFn","pollTimeout","cacheStateAndFireUrlChange","cacheState","fireUrlChange","history","state","cachedState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","safeDecodeURIComponent","rawDocument","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","addPollFn","self.addPollFn","href","baseElement","reloadLocation","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$checkUrlChange","baseHref","self.baseHref","lastCookies","lastCookieString","cookiePath","cookies","self.cookies","cookieLength","cookie","warn","cookieArray","substring","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","options","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","LOCAL_REGEXP","bindings","definition","scopeName","$compileMinErr","mode","collection","optional","attrName","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","require","restrict","$$isolateBindings","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","safeAddClass","$element","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","$new","transcludeOnThisElement","createBoundTranscludeFn","transclude","elementTranscludeOnThisElement","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","elementTransclusion","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","isNgAttr","nAttrs","attributes","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","directiveNName","directiveIsMultiElement","nName","addAttrInterpolateDirective","animVal","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","retrievalMethod","$searchElement","linkNode","controllersBoundTransclude","cloneAttachFn","hasElementTranscludeDirective","scopeToChild","controllerDirectives","$scope","$attrs","$transclude","controllerInstance","controllerAs","templateDirective","$$originalDirective","isolateScopeController","isolateBindingContext","identifier","bindToController","lastValue","parentGet","parentSet","compare","$observe","$$observers","$$scope","literal","b","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","$on","invokeLinkFn","template","templateUrl","terminalPriority","newScopeDirective","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","$$start","$$end","directiveValue","assertNoDuplicate","$$tlb","createComment","replaceWith","replaceDirective","contents","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","Math","max","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","tAttrs","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","getTrustedResourceUrl","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","wrapper","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","newValue","$$inter","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","expando","k","kk","annotation","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","dataName","str1","str2","values","tokens1","tokens2","token","jqNodes","globals","CNTRL_REG","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","ident","$controllerMinErr","controllerPrototype","exception","cause","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","useApplyAsync","this.useApplyAsync","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","reqHeaderName","lowercaseDefHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","done","headersString","statusText","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","params","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","v","toISOString","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","jsonpReq","callbackId","async","body","called","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","send","this.startSymbol","this.endSymbol","escape","ch","mustHaveExpression","unescapeText","escapedStartRegexp","escapedEndRegexp","parseStringifyInterceptor","getTrusted","valueOf","newErr","$interpolateMinErr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","exp","endSymbolLength","compute","interpolationFn","$$watchDelegate","objectEquality","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","count","invokeApply","setInterval","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","NUMBER_FORMATS","DECIMAL_SEP","GROUP_SEP","PATTERNS","minInt","minFrac","maxFrac","posPre","posSuf","negPre","negSuf","gSize","lgSize","CURRENCY_SYM","DATETIME_FORMATS","MONTH","SHORTMONTH","DAY","SHORTDAY","AMPMS","medium","fullDate","longDate","mediumDate","shortDate","mediumTime","shortTime","ERANAMES","ERAS","pluralCat","num","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","trimEmptyHash","stripFile","lastIndexOf","LocationHtml5Url","appBase","basePrefix","$$html5","appBaseNoFile","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","property","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","IGNORE_URI_REGEXP","ctrlKey","metaKey","shiftKey","which","button","target","absHref","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","ensureSafeMemberName","fullExpression","$parseMinErr","ensureSafeObject","children","isConstant","setter","setValue","fullExp","propertyObj","isPossiblyDangerousMemberName","cspSafeGetterFn","key0","key1","key2","key3","key4","expensiveChecks","eso","o","eso0","eso1","eso2","eso3","eso4","cspSafeGetter","pathVal","getterFnWithEnsureSafeObject","s","getterFn","getterFnCache","getterFnCacheExpensive","getterFnCacheDefault","pathKeys","pathKeysLength","code","needsEnsureSafeObject","lookupJs","evaledFnGetter","Function","sharedGetter","fn.assign","getValueOf","objectValueOf","cacheDefault","cacheExpensive","wrapSharedExpression","wrapped","collectExpressionInputs","inputs","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","parsedExpression","inputExpressions","$$inputs","lastResult","oldInputValue","expressionInputWatch","newInputValue","oldInputValueOfValues","expressionInputsWatch","changed","oneTimeWatchDelegate","oneTimeWatch","oneTimeListener","old","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","constantWatch","constantListener","addInterceptor","interceptorFn","watchDelegate","regularInterceptedExpression","oneTimeInterceptedExpression","$parseOptions","$parseOptionsExpensive","oneTime","cacheKey","parseOptions","lexer","Lexer","parser","Parser","qFactory","nextTick","exceptionHandler","callOnce","resolveFn","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","Q","resolver","all","promises","results","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","raf","timer","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$$watchersCount","$id","$$ChildScope","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","destroyChildScope","$event","currentScope","Scope","$parent","$$prevSibling","$root","beginPhase","phase","decrementListenerCount","current","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","child","watchExp","watcher","last","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","expr","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueue","$eval","isNaN","msg","next","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","msie","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","pushState","hasEvent","divElm","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","transformer","httpOptions","handleError","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","item","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","amount","currencySymbol","fractionSize","formatNumber","number","groupSep","decimalSep","isFinite","isNegative","abs","numStr","formatedText","hasExponent","toFixed","parseFloat","fractionLen","min","round","fraction","lgroup","group","padNumber","digits","neg","dateGetter","date","dateStrGetter","shortForm","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","eraGetter","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","ms","format","timezone","NUMBER_STRING","DATE_FORMATS_SPLIT","setMinutes","getMinutes","getTimezoneOffset","DATE_FORMATS","object","spacing","limit","Infinity","sortPredicate","reverseOrder","reverseComparator","comp","descending","objectToString","v1","v2","map","predicate","ngDirective","FormController","controls","parentForm","$$parentForm","nullFormCtrl","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$addControl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","set","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","$ngModelMinErr","timezoneOffset","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","parseConstantExpr","fallback","parseFn","classDirective","arrayDifference","arrayClasses","digestClassCounts","classCounts","classesToUpdate","ngClassWatchAction","$index","old$index","mod","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","REGEX_STRING_REGEXP","documentMode","isActive_","active","full","major","minor","dot","codeName","JQLite._data","MOUSE_EVENT_MAP","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeData","removeAttribute","css","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","related","relatedTarget","contains","off","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","FN_ARG_SPLIT","FN_ARG","argDecl","underscore","$animateMinErr","$$selectors","classNameFilter","this.classNameFilter","$$classNameFilter","runAnimationPostDigest","cancelFn","$$cancelFn","defer.promise.$$cancelFn","ngAnimatePostDigest","ngAnimateNotifyComplete","resolveElementClasses","hasClasses","cachedClassManipulation","op","asyncPromise","currentDefer","applyStyles","styles","from","to","animate","enter","leave","move","$$addClassImmediately","$$removeClassImmediately","add","createdCache","STORAGE_KEY","$$setClassImmediately","APPLICATION_JSON","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","CALL","APPLY","BIND","CONSTANTS","null","true","false","constantGetter","OPERATORS","+","-","*","/","%","===","!==","==","!=","<",">","<=",">=","&&","||","!","ESCAPE","lex","tokens","readString","peek","readNumber","isIdent","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","operator","throwError","chars","isExpOperator","start","end","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ZERO","statements","primary","expect","filterChain","consume","arrayDeclaration","functionCall","objectIndex","fieldAccess","peekToken","e1","e2","e3","e4","peekAhead","t","unaryFn","right","$parseUnaryFn","binaryFn","left","isBranching","$parseBinaryFn","$parseConstant","$parseStatements","inputFn","argsFn","$parseFilter","every","assignment","ternary","$parseAssignment","logicalOR","middle","$parseTernary","logicalAND","equality","relational","additive","multiplicative","unary","$parseFieldAccess","indexFn","$parseObjectIndex","fnGetter","contextGetter","expressionText","$parseFunctionCall","elementFns","$parseArrayLiteral","valueFns","$parseObjectLiteral","yy","y","MMMM","MMM","M","H","hh","EEEE","EEE","ampmGetter","Z","timeZoneGetter","zone","paddedZone","ww","w","G","GG","GGG","GGGG","longEraGetter","xlinkHref","propName","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","ngFormCompile","formElement","nameAttr","ngFormPreLink","handleFormSubmission","parentFormCtrl","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","minutes","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","ctrls","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","tElement","ngBindHtmlGetter","ngBindHtmlWatch","getStringValue","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","forceAsyncEvents","ngEventHandler","previousElements","ngIfWatchAction","newScope","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","parseAsResourceUrl","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","parserValid","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","allValid","$$writeModelToScope","this.$$runValidators","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","that","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","lhs","rhs","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","itemKey","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","tempClasses","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","ngOptionsMinErr","NG_OPTIONS_REGEXP","nullModelCtrl","optionsMap","ngModelCtrl","unknownOption","databound","init","self.init","ngModelCtrl_","nullOption_","unknownOption_","addOption","self.addOption","removeOption","self.removeOption","hasOption","renderUnknownOption","self.renderUnknownOption","unknownVal","self.hasOption","setupAsSingle","selectElement","selectCtrl","ngModelCtrl.$render","emptyOption","setupAsMultiple","lastView","selectMultipleWatch","setupAsOptions","callExpression","exprFn","valueName","keyName","createIsSelectedFn","selectedSet","trackFn","trackIndex","isSelected","compareValueFn","selectAsFn","scheduleRendering","renderScheduled","render","updateLabelMap","labelMap","label","added","optionGroups","optionGroupNames","optionGroupName","optionGroup","existingParent","existingOptions","existingOption","valuesFn","anySelected","optionId","trackKeysCache","groupByFn","displayFn","nullOption","groupIndex","groupLength","optionGroupsCache","optGroupTemplate","lastElement","optionTemplate","optionsExp","selectAs","track","selectionChanged","selectedKey","viewValueFn","getLabels","toDisplay","ngModelCtrl.$isEmpty","nullSelectCtrl","selectCtrlName","interpolateWatchAction","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","$$csp"] -} diff --git a/public/assets/plugins/angular-pdf/example/js/lib/pdf.js b/public/assets/plugins/angular-pdf/example/js/lib/pdf.js deleted file mode 100644 index 42fafd3..0000000 --- a/public/assets/plugins/angular-pdf/example/js/lib/pdf.js +++ /dev/null @@ -1,8021 +0,0 @@ -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ -/* Copyright 2012 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*jshint globalstrict: false */ -/* globals PDFJS */ - -// Initializing PDFJS global object (if still undefined) -if (typeof PDFJS === 'undefined') { - (typeof window !== 'undefined' ? window : this).PDFJS = {}; -} - -PDFJS.version = '1.1.159'; -PDFJS.build = '82536f8'; - -(function pdfjsWrapper() { - // Use strict in our context only - users might not want it - 'use strict'; - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ -/* Copyright 2012 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* globals Cmd, ColorSpace, Dict, MozBlobBuilder, Name, PDFJS, Ref, URL, - Promise */ - -'use strict'; - -var globalScope = (typeof window === 'undefined') ? this : window; - -var isWorker = (typeof window === 'undefined'); - -var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; - -var TextRenderingMode = { - FILL: 0, - STROKE: 1, - FILL_STROKE: 2, - INVISIBLE: 3, - FILL_ADD_TO_PATH: 4, - STROKE_ADD_TO_PATH: 5, - FILL_STROKE_ADD_TO_PATH: 6, - ADD_TO_PATH: 7, - FILL_STROKE_MASK: 3, - ADD_TO_PATH_FLAG: 4 -}; - -var ImageKind = { - GRAYSCALE_1BPP: 1, - RGB_24BPP: 2, - RGBA_32BPP: 3 -}; - -var AnnotationType = { - WIDGET: 1, - TEXT: 2, - LINK: 3 -}; - -var StreamType = { - UNKNOWN: 0, - FLATE: 1, - LZW: 2, - DCT: 3, - JPX: 4, - JBIG: 5, - A85: 6, - AHX: 7, - CCF: 8, - RL: 9 -}; - -var FontType = { - UNKNOWN: 0, - TYPE1: 1, - TYPE1C: 2, - CIDFONTTYPE0: 3, - CIDFONTTYPE0C: 4, - TRUETYPE: 5, - CIDFONTTYPE2: 6, - TYPE3: 7, - OPENTYPE: 8, - TYPE0: 9, - MMTYPE1: 10 -}; - -// The global PDFJS object exposes the API -// In production, it will be declared outside a global wrapper -// In development, it will be declared here -if (!globalScope.PDFJS) { - globalScope.PDFJS = {}; -} - -globalScope.PDFJS.pdfBug = false; - -PDFJS.VERBOSITY_LEVELS = { - errors: 0, - warnings: 1, - infos: 5 -}; - -// All the possible operations for an operator list. -var OPS = PDFJS.OPS = { - // Intentionally start from 1 so it is easy to spot bad operators that will be - // 0's. - dependency: 1, - setLineWidth: 2, - setLineCap: 3, - setLineJoin: 4, - setMiterLimit: 5, - setDash: 6, - setRenderingIntent: 7, - setFlatness: 8, - setGState: 9, - save: 10, - restore: 11, - transform: 12, - moveTo: 13, - lineTo: 14, - curveTo: 15, - curveTo2: 16, - curveTo3: 17, - closePath: 18, - rectangle: 19, - stroke: 20, - closeStroke: 21, - fill: 22, - eoFill: 23, - fillStroke: 24, - eoFillStroke: 25, - closeFillStroke: 26, - closeEOFillStroke: 27, - endPath: 28, - clip: 29, - eoClip: 30, - beginText: 31, - endText: 32, - setCharSpacing: 33, - setWordSpacing: 34, - setHScale: 35, - setLeading: 36, - setFont: 37, - setTextRenderingMode: 38, - setTextRise: 39, - moveText: 40, - setLeadingMoveText: 41, - setTextMatrix: 42, - nextLine: 43, - showText: 44, - showSpacedText: 45, - nextLineShowText: 46, - nextLineSetSpacingShowText: 47, - setCharWidth: 48, - setCharWidthAndBounds: 49, - setStrokeColorSpace: 50, - setFillColorSpace: 51, - setStrokeColor: 52, - setStrokeColorN: 53, - setFillColor: 54, - setFillColorN: 55, - setStrokeGray: 56, - setFillGray: 57, - setStrokeRGBColor: 58, - setFillRGBColor: 59, - setStrokeCMYKColor: 60, - setFillCMYKColor: 61, - shadingFill: 62, - beginInlineImage: 63, - beginImageData: 64, - endInlineImage: 65, - paintXObject: 66, - markPoint: 67, - markPointProps: 68, - beginMarkedContent: 69, - beginMarkedContentProps: 70, - endMarkedContent: 71, - beginCompat: 72, - endCompat: 73, - paintFormXObjectBegin: 74, - paintFormXObjectEnd: 75, - beginGroup: 76, - endGroup: 77, - beginAnnotations: 78, - endAnnotations: 79, - beginAnnotation: 80, - endAnnotation: 81, - paintJpegXObject: 82, - paintImageMaskXObject: 83, - paintImageMaskXObjectGroup: 84, - paintImageXObject: 85, - paintInlineImageXObject: 86, - paintInlineImageXObjectGroup: 87, - paintImageXObjectRepeat: 88, - paintImageMaskXObjectRepeat: 89, - paintSolidColorImageMask: 90, - constructPath: 91 -}; - -// A notice for devs. These are good for things that are helpful to devs, such -// as warning that Workers were disabled, which is important to devs but not -// end users. -function info(msg) { - if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.infos) { - console.log('Info: ' + msg); - } -} - -// Non-fatal warnings. -function warn(msg) { - if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.warnings) { - console.log('Warning: ' + msg); - } -} - -// Fatal errors that should trigger the fallback UI and halt execution by -// throwing an exception. -function error(msg) { - if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.errors) { - console.log('Error: ' + msg); - console.log(backtrace()); - } - UnsupportedManager.notify(UNSUPPORTED_FEATURES.unknown); - throw new Error(msg); -} - -function backtrace() { - try { - throw new Error(); - } catch (e) { - return e.stack ? e.stack.split('\n').slice(2).join('\n') : ''; - } -} - -function assert(cond, msg) { - if (!cond) { - error(msg); - } -} - -var UNSUPPORTED_FEATURES = PDFJS.UNSUPPORTED_FEATURES = { - unknown: 'unknown', - forms: 'forms', - javaScript: 'javaScript', - smask: 'smask', - shadingPattern: 'shadingPattern', - font: 'font' -}; - -var UnsupportedManager = PDFJS.UnsupportedManager = - (function UnsupportedManagerClosure() { - var listeners = []; - return { - listen: function (cb) { - listeners.push(cb); - }, - notify: function (featureId) { - warn('Unsupported feature "' + featureId + '"'); - for (var i = 0, ii = listeners.length; i < ii; i++) { - listeners[i](featureId); - } - } - }; -})(); - -// Combines two URLs. The baseUrl shall be absolute URL. If the url is an -// absolute URL, it will be returned as is. -function combineUrl(baseUrl, url) { - if (!url) { - return baseUrl; - } - if (/^[a-z][a-z0-9+\-.]*:/i.test(url)) { - return url; - } - var i; - if (url.charAt(0) === '/') { - // absolute path - i = baseUrl.indexOf('://'); - if (url.charAt(1) === '/') { - ++i; - } else { - i = baseUrl.indexOf('/', i + 3); - } - return baseUrl.substring(0, i) + url; - } else { - // relative path - var pathLength = baseUrl.length; - i = baseUrl.lastIndexOf('#'); - pathLength = i >= 0 ? i : pathLength; - i = baseUrl.lastIndexOf('?', pathLength); - pathLength = i >= 0 ? i : pathLength; - var prefixLength = baseUrl.lastIndexOf('/', pathLength); - return baseUrl.substring(0, prefixLength + 1) + url; - } -} - -// Validates if URL is safe and allowed, e.g. to avoid XSS. -function isValidUrl(url, allowRelative) { - if (!url) { - return false; - } - // RFC 3986 (http://tools.ietf.org/html/rfc3986#section-3.1) - // scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) - var protocol = /^[a-z][a-z0-9+\-.]*(?=:)/i.exec(url); - if (!protocol) { - return allowRelative; - } - protocol = protocol[0].toLowerCase(); - switch (protocol) { - case 'http': - case 'https': - case 'ftp': - case 'mailto': - case 'tel': - return true; - default: - return false; - } -} -PDFJS.isValidUrl = isValidUrl; - -function shadow(obj, prop, value) { - Object.defineProperty(obj, prop, { value: value, - enumerable: true, - configurable: true, - writable: false }); - return value; -} -PDFJS.shadow = shadow; - -var PasswordResponses = PDFJS.PasswordResponses = { - NEED_PASSWORD: 1, - INCORRECT_PASSWORD: 2 -}; - -var PasswordException = (function PasswordExceptionClosure() { - function PasswordException(msg, code) { - this.name = 'PasswordException'; - this.message = msg; - this.code = code; - } - - PasswordException.prototype = new Error(); - PasswordException.constructor = PasswordException; - - return PasswordException; -})(); -PDFJS.PasswordException = PasswordException; - -var UnknownErrorException = (function UnknownErrorExceptionClosure() { - function UnknownErrorException(msg, details) { - this.name = 'UnknownErrorException'; - this.message = msg; - this.details = details; - } - - UnknownErrorException.prototype = new Error(); - UnknownErrorException.constructor = UnknownErrorException; - - return UnknownErrorException; -})(); -PDFJS.UnknownErrorException = UnknownErrorException; - -var InvalidPDFException = (function InvalidPDFExceptionClosure() { - function InvalidPDFException(msg) { - this.name = 'InvalidPDFException'; - this.message = msg; - } - - InvalidPDFException.prototype = new Error(); - InvalidPDFException.constructor = InvalidPDFException; - - return InvalidPDFException; -})(); -PDFJS.InvalidPDFException = InvalidPDFException; - -var MissingPDFException = (function MissingPDFExceptionClosure() { - function MissingPDFException(msg) { - this.name = 'MissingPDFException'; - this.message = msg; - } - - MissingPDFException.prototype = new Error(); - MissingPDFException.constructor = MissingPDFException; - - return MissingPDFException; -})(); -PDFJS.MissingPDFException = MissingPDFException; - -var UnexpectedResponseException = - (function UnexpectedResponseExceptionClosure() { - function UnexpectedResponseException(msg, status) { - this.name = 'UnexpectedResponseException'; - this.message = msg; - this.status = status; - } - - UnexpectedResponseException.prototype = new Error(); - UnexpectedResponseException.constructor = UnexpectedResponseException; - - return UnexpectedResponseException; -})(); -PDFJS.UnexpectedResponseException = UnexpectedResponseException; - -var NotImplementedException = (function NotImplementedExceptionClosure() { - function NotImplementedException(msg) { - this.message = msg; - } - - NotImplementedException.prototype = new Error(); - NotImplementedException.prototype.name = 'NotImplementedException'; - NotImplementedException.constructor = NotImplementedException; - - return NotImplementedException; -})(); - -var MissingDataException = (function MissingDataExceptionClosure() { - function MissingDataException(begin, end) { - this.begin = begin; - this.end = end; - this.message = 'Missing data [' + begin + ', ' + end + ')'; - } - - MissingDataException.prototype = new Error(); - MissingDataException.prototype.name = 'MissingDataException'; - MissingDataException.constructor = MissingDataException; - - return MissingDataException; -})(); - -var XRefParseException = (function XRefParseExceptionClosure() { - function XRefParseException(msg) { - this.message = msg; - } - - XRefParseException.prototype = new Error(); - XRefParseException.prototype.name = 'XRefParseException'; - XRefParseException.constructor = XRefParseException; - - return XRefParseException; -})(); - - -function bytesToString(bytes) { - assert(bytes !== null && typeof bytes === 'object' && - bytes.length !== undefined, 'Invalid argument for bytesToString'); - var length = bytes.length; - var MAX_ARGUMENT_COUNT = 8192; - if (length < MAX_ARGUMENT_COUNT) { - return String.fromCharCode.apply(null, bytes); - } - var strBuf = []; - for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { - var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); - var chunk = bytes.subarray(i, chunkEnd); - strBuf.push(String.fromCharCode.apply(null, chunk)); - } - return strBuf.join(''); -} - -function stringToBytes(str) { - assert(typeof str === 'string', 'Invalid argument for stringToBytes'); - var length = str.length; - var bytes = new Uint8Array(length); - for (var i = 0; i < length; ++i) { - bytes[i] = str.charCodeAt(i) & 0xFF; - } - return bytes; -} - -function string32(value) { - return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff, - (value >> 8) & 0xff, value & 0xff); -} - -function log2(x) { - var n = 1, i = 0; - while (x > n) { - n <<= 1; - i++; - } - return i; -} - -function readInt8(data, start) { - return (data[start] << 24) >> 24; -} - -function readUint16(data, offset) { - return (data[offset] << 8) | data[offset + 1]; -} - -function readUint32(data, offset) { - return ((data[offset] << 24) | (data[offset + 1] << 16) | - (data[offset + 2] << 8) | data[offset + 3]) >>> 0; -} - -// Lazy test the endianness of the platform -// NOTE: This will be 'true' for simulated TypedArrays -function isLittleEndian() { - var buffer8 = new Uint8Array(2); - buffer8[0] = 1; - var buffer16 = new Uint16Array(buffer8.buffer); - return (buffer16[0] === 1); -} - -Object.defineProperty(PDFJS, 'isLittleEndian', { - configurable: true, - get: function PDFJS_isLittleEndian() { - return shadow(PDFJS, 'isLittleEndian', isLittleEndian()); - } -}); - - // Lazy test if the userAgant support CanvasTypedArrays -function hasCanvasTypedArrays() { - var canvas = document.createElement('canvas'); - canvas.width = canvas.height = 1; - var ctx = canvas.getContext('2d'); - var imageData = ctx.createImageData(1, 1); - return (typeof imageData.data.buffer !== 'undefined'); -} - -Object.defineProperty(PDFJS, 'hasCanvasTypedArrays', { - configurable: true, - get: function PDFJS_hasCanvasTypedArrays() { - return shadow(PDFJS, 'hasCanvasTypedArrays', hasCanvasTypedArrays()); - } -}); - -var Uint32ArrayView = (function Uint32ArrayViewClosure() { - - function Uint32ArrayView(buffer, length) { - this.buffer = buffer; - this.byteLength = buffer.length; - this.length = length === undefined ? (this.byteLength >> 2) : length; - ensureUint32ArrayViewProps(this.length); - } - Uint32ArrayView.prototype = Object.create(null); - - var uint32ArrayViewSetters = 0; - function createUint32ArrayProp(index) { - return { - get: function () { - var buffer = this.buffer, offset = index << 2; - return (buffer[offset] | (buffer[offset + 1] << 8) | - (buffer[offset + 2] << 16) | (buffer[offset + 3] << 24)) >>> 0; - }, - set: function (value) { - var buffer = this.buffer, offset = index << 2; - buffer[offset] = value & 255; - buffer[offset + 1] = (value >> 8) & 255; - buffer[offset + 2] = (value >> 16) & 255; - buffer[offset + 3] = (value >>> 24) & 255; - } - }; - } - - function ensureUint32ArrayViewProps(length) { - while (uint32ArrayViewSetters < length) { - Object.defineProperty(Uint32ArrayView.prototype, - uint32ArrayViewSetters, - createUint32ArrayProp(uint32ArrayViewSetters)); - uint32ArrayViewSetters++; - } - } - - return Uint32ArrayView; -})(); - -var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; - -var Util = PDFJS.Util = (function UtilClosure() { - function Util() {} - - var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')']; - - // makeCssRgb() can be called thousands of times. Using |rgbBuf| avoids - // creating many intermediate strings. - Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { - rgbBuf[1] = r; - rgbBuf[3] = g; - rgbBuf[5] = b; - return rgbBuf.join(''); - }; - - // Concatenates two transformation matrices together and returns the result. - Util.transform = function Util_transform(m1, m2) { - return [ - m1[0] * m2[0] + m1[2] * m2[1], - m1[1] * m2[0] + m1[3] * m2[1], - m1[0] * m2[2] + m1[2] * m2[3], - m1[1] * m2[2] + m1[3] * m2[3], - m1[0] * m2[4] + m1[2] * m2[5] + m1[4], - m1[1] * m2[4] + m1[3] * m2[5] + m1[5] - ]; - }; - - // For 2d affine transforms - Util.applyTransform = function Util_applyTransform(p, m) { - var xt = p[0] * m[0] + p[1] * m[2] + m[4]; - var yt = p[0] * m[1] + p[1] * m[3] + m[5]; - return [xt, yt]; - }; - - Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { - var d = m[0] * m[3] - m[1] * m[2]; - var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; - var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; - return [xt, yt]; - }; - - // Applies the transform to the rectangle and finds the minimum axially - // aligned bounding box. - Util.getAxialAlignedBoundingBox = - function Util_getAxialAlignedBoundingBox(r, m) { - - var p1 = Util.applyTransform(r, m); - var p2 = Util.applyTransform(r.slice(2, 4), m); - var p3 = Util.applyTransform([r[0], r[3]], m); - var p4 = Util.applyTransform([r[2], r[1]], m); - return [ - Math.min(p1[0], p2[0], p3[0], p4[0]), - Math.min(p1[1], p2[1], p3[1], p4[1]), - Math.max(p1[0], p2[0], p3[0], p4[0]), - Math.max(p1[1], p2[1], p3[1], p4[1]) - ]; - }; - - Util.inverseTransform = function Util_inverseTransform(m) { - var d = m[0] * m[3] - m[1] * m[2]; - return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, - (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; - }; - - // Apply a generic 3d matrix M on a 3-vector v: - // | a b c | | X | - // | d e f | x | Y | - // | g h i | | Z | - // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i], - // with v as [X,Y,Z] - Util.apply3dTransform = function Util_apply3dTransform(m, v) { - return [ - m[0] * v[0] + m[1] * v[1] + m[2] * v[2], - m[3] * v[0] + m[4] * v[1] + m[5] * v[2], - m[6] * v[0] + m[7] * v[1] + m[8] * v[2] - ]; - }; - - // This calculation uses Singular Value Decomposition. - // The SVD can be represented with formula A = USV. We are interested in the - // matrix S here because it represents the scale values. - Util.singularValueDecompose2dScale = - function Util_singularValueDecompose2dScale(m) { - - var transpose = [m[0], m[2], m[1], m[3]]; - - // Multiply matrix m with its transpose. - var a = m[0] * transpose[0] + m[1] * transpose[2]; - var b = m[0] * transpose[1] + m[1] * transpose[3]; - var c = m[2] * transpose[0] + m[3] * transpose[2]; - var d = m[2] * transpose[1] + m[3] * transpose[3]; - - // Solve the second degree polynomial to get roots. - var first = (a + d) / 2; - var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; - var sx = first + second || 1; - var sy = first - second || 1; - - // Scale values are the square roots of the eigenvalues. - return [Math.sqrt(sx), Math.sqrt(sy)]; - }; - - // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2) - // For coordinate systems whose origin lies in the bottom-left, this - // means normalization to (BL,TR) ordering. For systems with origin in the - // top-left, this means (TL,BR) ordering. - Util.normalizeRect = function Util_normalizeRect(rect) { - var r = rect.slice(0); // clone rect - if (rect[0] > rect[2]) { - r[0] = rect[2]; - r[2] = rect[0]; - } - if (rect[1] > rect[3]) { - r[1] = rect[3]; - r[3] = rect[1]; - } - return r; - }; - - // Returns a rectangle [x1, y1, x2, y2] corresponding to the - // intersection of rect1 and rect2. If no intersection, returns 'false' - // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2] - Util.intersect = function Util_intersect(rect1, rect2) { - function compare(a, b) { - return a - b; - } - - // Order points along the axes - var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), - orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), - result = []; - - rect1 = Util.normalizeRect(rect1); - rect2 = Util.normalizeRect(rect2); - - // X: first and second points belong to different rectangles? - if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) || - (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) { - // Intersection must be between second and third points - result[0] = orderedX[1]; - result[2] = orderedX[2]; - } else { - return false; - } - - // Y: first and second points belong to different rectangles? - if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) || - (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) { - // Intersection must be between second and third points - result[1] = orderedY[1]; - result[3] = orderedY[2]; - } else { - return false; - } - - return result; - }; - - Util.sign = function Util_sign(num) { - return num < 0 ? -1 : 1; - }; - - Util.appendToArray = function Util_appendToArray(arr1, arr2) { - Array.prototype.push.apply(arr1, arr2); - }; - - Util.prependToArray = function Util_prependToArray(arr1, arr2) { - Array.prototype.unshift.apply(arr1, arr2); - }; - - Util.extendObj = function extendObj(obj1, obj2) { - for (var key in obj2) { - obj1[key] = obj2[key]; - } - }; - - Util.getInheritableProperty = function Util_getInheritableProperty(dict, - name) { - while (dict && !dict.has(name)) { - dict = dict.get('Parent'); - } - if (!dict) { - return null; - } - return dict.get(name); - }; - - Util.inherit = function Util_inherit(sub, base, prototype) { - sub.prototype = Object.create(base.prototype); - sub.prototype.constructor = sub; - for (var prop in prototype) { - sub.prototype[prop] = prototype[prop]; - } - }; - - Util.loadScript = function Util_loadScript(src, callback) { - var script = document.createElement('script'); - var loaded = false; - script.setAttribute('src', src); - if (callback) { - script.onload = function() { - if (!loaded) { - callback(); - } - loaded = true; - }; - } - document.getElementsByTagName('head')[0].appendChild(script); - }; - - return Util; -})(); - -/** - * PDF page viewport created based on scale, rotation and offset. - * @class - * @alias PDFJS.PageViewport - */ -var PageViewport = PDFJS.PageViewport = (function PageViewportClosure() { - /** - * @constructor - * @private - * @param viewBox {Array} xMin, yMin, xMax and yMax coordinates. - * @param scale {number} scale of the viewport. - * @param rotation {number} rotations of the viewport in degrees. - * @param offsetX {number} offset X - * @param offsetY {number} offset Y - * @param dontFlip {boolean} if true, axis Y will not be flipped. - */ - function PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) { - this.viewBox = viewBox; - this.scale = scale; - this.rotation = rotation; - this.offsetX = offsetX; - this.offsetY = offsetY; - - // creating transform to convert pdf coordinate system to the normal - // canvas like coordinates taking in account scale and rotation - var centerX = (viewBox[2] + viewBox[0]) / 2; - var centerY = (viewBox[3] + viewBox[1]) / 2; - var rotateA, rotateB, rotateC, rotateD; - rotation = rotation % 360; - rotation = rotation < 0 ? rotation + 360 : rotation; - switch (rotation) { - case 180: - rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1; - break; - case 90: - rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0; - break; - case 270: - rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0; - break; - //case 0: - default: - rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1; - break; - } - - if (dontFlip) { - rotateC = -rotateC; rotateD = -rotateD; - } - - var offsetCanvasX, offsetCanvasY; - var width, height; - if (rotateA === 0) { - offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; - offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; - width = Math.abs(viewBox[3] - viewBox[1]) * scale; - height = Math.abs(viewBox[2] - viewBox[0]) * scale; - } else { - offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; - offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; - width = Math.abs(viewBox[2] - viewBox[0]) * scale; - height = Math.abs(viewBox[3] - viewBox[1]) * scale; - } - // creating transform for the following operations: - // translate(-centerX, -centerY), rotate and flip vertically, - // scale, and translate(offsetCanvasX, offsetCanvasY) - this.transform = [ - rotateA * scale, - rotateB * scale, - rotateC * scale, - rotateD * scale, - offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, - offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY - ]; - - this.width = width; - this.height = height; - this.fontScale = scale; - } - PageViewport.prototype = /** @lends PDFJS.PageViewport.prototype */ { - /** - * Clones viewport with additional properties. - * @param args {Object} (optional) If specified, may contain the 'scale' or - * 'rotation' properties to override the corresponding properties in - * the cloned viewport. - * @returns {PDFJS.PageViewport} Cloned viewport. - */ - clone: function PageViewPort_clone(args) { - args = args || {}; - var scale = 'scale' in args ? args.scale : this.scale; - var rotation = 'rotation' in args ? args.rotation : this.rotation; - return new PageViewport(this.viewBox.slice(), scale, rotation, - this.offsetX, this.offsetY, args.dontFlip); - }, - /** - * Converts PDF point to the viewport coordinates. For examples, useful for - * converting PDF location into canvas pixel coordinates. - * @param x {number} X coordinate. - * @param y {number} Y coordinate. - * @returns {Object} Object that contains 'x' and 'y' properties of the - * point in the viewport coordinate space. - * @see {@link convertToPdfPoint} - * @see {@link convertToViewportRectangle} - */ - convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) { - return Util.applyTransform([x, y], this.transform); - }, - /** - * Converts PDF rectangle to the viewport coordinates. - * @param rect {Array} xMin, yMin, xMax and yMax coordinates. - * @returns {Array} Contains corresponding coordinates of the rectangle - * in the viewport coordinate space. - * @see {@link convertToViewportPoint} - */ - convertToViewportRectangle: - function PageViewport_convertToViewportRectangle(rect) { - var tl = Util.applyTransform([rect[0], rect[1]], this.transform); - var br = Util.applyTransform([rect[2], rect[3]], this.transform); - return [tl[0], tl[1], br[0], br[1]]; - }, - /** - * Converts viewport coordinates to the PDF location. For examples, useful - * for converting canvas pixel location into PDF one. - * @param x {number} X coordinate. - * @param y {number} Y coordinate. - * @returns {Object} Object that contains 'x' and 'y' properties of the - * point in the PDF coordinate space. - * @see {@link convertToViewportPoint} - */ - convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) { - return Util.applyInverseTransform([x, y], this.transform); - } - }; - return PageViewport; -})(); - -var PDFStringTranslateTable = [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, - 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, - 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, - 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC -]; - -function stringToPDFString(str) { - var i, n = str.length, strBuf = []; - if (str[0] === '\xFE' && str[1] === '\xFF') { - // UTF16BE BOM - for (i = 2; i < n; i += 2) { - strBuf.push(String.fromCharCode( - (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1))); - } - } else { - for (i = 0; i < n; ++i) { - var code = PDFStringTranslateTable[str.charCodeAt(i)]; - strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); - } - } - return strBuf.join(''); -} - -function stringToUTF8String(str) { - return decodeURIComponent(escape(str)); -} - -function utf8StringToString(str) { - return unescape(encodeURIComponent(str)); -} - -function isEmptyObj(obj) { - for (var key in obj) { - return false; - } - return true; -} - -function isBool(v) { - return typeof v === 'boolean'; -} - -function isInt(v) { - return typeof v === 'number' && ((v | 0) === v); -} - -function isNum(v) { - return typeof v === 'number'; -} - -function isString(v) { - return typeof v === 'string'; -} - -function isName(v) { - return v instanceof Name; -} - -function isCmd(v, cmd) { - return v instanceof Cmd && (cmd === undefined || v.cmd === cmd); -} - -function isDict(v, type) { - if (!(v instanceof Dict)) { - return false; - } - if (!type) { - return true; - } - var dictType = v.get('Type'); - return isName(dictType) && dictType.name === type; -} - -function isArray(v) { - return v instanceof Array; -} - -function isStream(v) { - return typeof v === 'object' && v !== null && v.getBytes !== undefined; -} - -function isArrayBuffer(v) { - return typeof v === 'object' && v !== null && v.byteLength !== undefined; -} - -function isRef(v) { - return v instanceof Ref; -} - -/** - * Promise Capability object. - * - * @typedef {Object} PromiseCapability - * @property {Promise} promise - A promise object. - * @property {function} resolve - Fullfills the promise. - * @property {function} reject - Rejects the promise. - */ - -/** - * Creates a promise capability object. - * @alias PDFJS.createPromiseCapability - * - * @return {PromiseCapability} A capability object contains: - * - a Promise, resolve and reject methods. - */ -function createPromiseCapability() { - var capability = {}; - capability.promise = new Promise(function (resolve, reject) { - capability.resolve = resolve; - capability.reject = reject; - }); - return capability; -} - -PDFJS.createPromiseCapability = createPromiseCapability; - -/** - * Polyfill for Promises: - * The following promise implementation tries to generally implement the - * Promise/A+ spec. Some notable differences from other promise libaries are: - * - There currently isn't a seperate deferred and promise object. - * - Unhandled rejections eventually show an error if they aren't handled. - * - * Based off of the work in: - * https://bugzilla.mozilla.org/show_bug.cgi?id=810490 - */ -(function PromiseClosure() { - if (globalScope.Promise) { - // Promises existing in the DOM/Worker, checking presence of all/resolve - if (typeof globalScope.Promise.all !== 'function') { - globalScope.Promise.all = function (iterable) { - var count = 0, results = [], resolve, reject; - var promise = new globalScope.Promise(function (resolve_, reject_) { - resolve = resolve_; - reject = reject_; - }); - iterable.forEach(function (p, i) { - count++; - p.then(function (result) { - results[i] = result; - count--; - if (count === 0) { - resolve(results); - } - }, reject); - }); - if (count === 0) { - resolve(results); - } - return promise; - }; - } - if (typeof globalScope.Promise.resolve !== 'function') { - globalScope.Promise.resolve = function (value) { - return new globalScope.Promise(function (resolve) { resolve(value); }); - }; - } - if (typeof globalScope.Promise.reject !== 'function') { - globalScope.Promise.reject = function (reason) { - return new globalScope.Promise(function (resolve, reject) { - reject(reason); - }); - }; - } - if (typeof globalScope.Promise.prototype.catch !== 'function') { - globalScope.Promise.prototype.catch = function (onReject) { - return globalScope.Promise.prototype.then(undefined, onReject); - }; - } - return; - } - var STATUS_PENDING = 0; - var STATUS_RESOLVED = 1; - var STATUS_REJECTED = 2; - - // In an attempt to avoid silent exceptions, unhandled rejections are - // tracked and if they aren't handled in a certain amount of time an - // error is logged. - var REJECTION_TIMEOUT = 500; - - var HandlerManager = { - handlers: [], - running: false, - unhandledRejections: [], - pendingRejectionCheck: false, - - scheduleHandlers: function scheduleHandlers(promise) { - if (promise._status === STATUS_PENDING) { - return; - } - - this.handlers = this.handlers.concat(promise._handlers); - promise._handlers = []; - - if (this.running) { - return; - } - this.running = true; - - setTimeout(this.runHandlers.bind(this), 0); - }, - - runHandlers: function runHandlers() { - var RUN_TIMEOUT = 1; // ms - var timeoutAt = Date.now() + RUN_TIMEOUT; - while (this.handlers.length > 0) { - var handler = this.handlers.shift(); - - var nextStatus = handler.thisPromise._status; - var nextValue = handler.thisPromise._value; - - try { - if (nextStatus === STATUS_RESOLVED) { - if (typeof handler.onResolve === 'function') { - nextValue = handler.onResolve(nextValue); - } - } else if (typeof handler.onReject === 'function') { - nextValue = handler.onReject(nextValue); - nextStatus = STATUS_RESOLVED; - - if (handler.thisPromise._unhandledRejection) { - this.removeUnhandeledRejection(handler.thisPromise); - } - } - } catch (ex) { - nextStatus = STATUS_REJECTED; - nextValue = ex; - } - - handler.nextPromise._updateStatus(nextStatus, nextValue); - if (Date.now() >= timeoutAt) { - break; - } - } - - if (this.handlers.length > 0) { - setTimeout(this.runHandlers.bind(this), 0); - return; - } - - this.running = false; - }, - - addUnhandledRejection: function addUnhandledRejection(promise) { - this.unhandledRejections.push({ - promise: promise, - time: Date.now() - }); - this.scheduleRejectionCheck(); - }, - - removeUnhandeledRejection: function removeUnhandeledRejection(promise) { - promise._unhandledRejection = false; - for (var i = 0; i < this.unhandledRejections.length; i++) { - if (this.unhandledRejections[i].promise === promise) { - this.unhandledRejections.splice(i); - i--; - } - } - }, - - scheduleRejectionCheck: function scheduleRejectionCheck() { - if (this.pendingRejectionCheck) { - return; - } - this.pendingRejectionCheck = true; - setTimeout(function rejectionCheck() { - this.pendingRejectionCheck = false; - var now = Date.now(); - for (var i = 0; i < this.unhandledRejections.length; i++) { - if (now - this.unhandledRejections[i].time > REJECTION_TIMEOUT) { - var unhandled = this.unhandledRejections[i].promise._value; - var msg = 'Unhandled rejection: ' + unhandled; - if (unhandled.stack) { - msg += '\n' + unhandled.stack; - } - warn(msg); - this.unhandledRejections.splice(i); - i--; - } - } - if (this.unhandledRejections.length) { - this.scheduleRejectionCheck(); - } - }.bind(this), REJECTION_TIMEOUT); - } - }; - - function Promise(resolver) { - this._status = STATUS_PENDING; - this._handlers = []; - try { - resolver.call(this, this._resolve.bind(this), this._reject.bind(this)); - } catch (e) { - this._reject(e); - } - } - /** - * Builds a promise that is resolved when all the passed in promises are - * resolved. - * @param {array} array of data and/or promises to wait for. - * @return {Promise} New dependant promise. - */ - Promise.all = function Promise_all(promises) { - var resolveAll, rejectAll; - var deferred = new Promise(function (resolve, reject) { - resolveAll = resolve; - rejectAll = reject; - }); - var unresolved = promises.length; - var results = []; - if (unresolved === 0) { - resolveAll(results); - return deferred; - } - function reject(reason) { - if (deferred._status === STATUS_REJECTED) { - return; - } - results = []; - rejectAll(reason); - } - for (var i = 0, ii = promises.length; i < ii; ++i) { - var promise = promises[i]; - var resolve = (function(i) { - return function(value) { - if (deferred._status === STATUS_REJECTED) { - return; - } - results[i] = value; - unresolved--; - if (unresolved === 0) { - resolveAll(results); - } - }; - })(i); - if (Promise.isPromise(promise)) { - promise.then(resolve, reject); - } else { - resolve(promise); - } - } - return deferred; - }; - - /** - * Checks if the value is likely a promise (has a 'then' function). - * @return {boolean} true if value is thenable - */ - Promise.isPromise = function Promise_isPromise(value) { - return value && typeof value.then === 'function'; - }; - - /** - * Creates resolved promise - * @param value resolve value - * @returns {Promise} - */ - Promise.resolve = function Promise_resolve(value) { - return new Promise(function (resolve) { resolve(value); }); - }; - - /** - * Creates rejected promise - * @param reason rejection value - * @returns {Promise} - */ - Promise.reject = function Promise_reject(reason) { - return new Promise(function (resolve, reject) { reject(reason); }); - }; - - Promise.prototype = { - _status: null, - _value: null, - _handlers: null, - _unhandledRejection: null, - - _updateStatus: function Promise__updateStatus(status, value) { - if (this._status === STATUS_RESOLVED || - this._status === STATUS_REJECTED) { - return; - } - - if (status === STATUS_RESOLVED && - Promise.isPromise(value)) { - value.then(this._updateStatus.bind(this, STATUS_RESOLVED), - this._updateStatus.bind(this, STATUS_REJECTED)); - return; - } - - this._status = status; - this._value = value; - - if (status === STATUS_REJECTED && this._handlers.length === 0) { - this._unhandledRejection = true; - HandlerManager.addUnhandledRejection(this); - } - - HandlerManager.scheduleHandlers(this); - }, - - _resolve: function Promise_resolve(value) { - this._updateStatus(STATUS_RESOLVED, value); - }, - - _reject: function Promise_reject(reason) { - this._updateStatus(STATUS_REJECTED, reason); - }, - - then: function Promise_then(onResolve, onReject) { - var nextPromise = new Promise(function (resolve, reject) { - this.resolve = resolve; - this.reject = reject; - }); - this._handlers.push({ - thisPromise: this, - onResolve: onResolve, - onReject: onReject, - nextPromise: nextPromise - }); - HandlerManager.scheduleHandlers(this); - return nextPromise; - }, - - catch: function Promise_catch(onReject) { - return this.then(undefined, onReject); - } - }; - - globalScope.Promise = Promise; -})(); - -var StatTimer = (function StatTimerClosure() { - function rpad(str, pad, length) { - while (str.length < length) { - str += pad; - } - return str; - } - function StatTimer() { - this.started = {}; - this.times = []; - this.enabled = true; - } - StatTimer.prototype = { - time: function StatTimer_time(name) { - if (!this.enabled) { - return; - } - if (name in this.started) { - warn('Timer is already running for ' + name); - } - this.started[name] = Date.now(); - }, - timeEnd: function StatTimer_timeEnd(name) { - if (!this.enabled) { - return; - } - if (!(name in this.started)) { - warn('Timer has not been started for ' + name); - } - this.times.push({ - 'name': name, - 'start': this.started[name], - 'end': Date.now() - }); - // Remove timer from started so it can be called again. - delete this.started[name]; - }, - toString: function StatTimer_toString() { - var i, ii; - var times = this.times; - var out = ''; - // Find the longest name for padding purposes. - var longest = 0; - for (i = 0, ii = times.length; i < ii; ++i) { - var name = times[i]['name']; - if (name.length > longest) { - longest = name.length; - } - } - for (i = 0, ii = times.length; i < ii; ++i) { - var span = times[i]; - var duration = span.end - span.start; - out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\n'; - } - return out; - } - }; - return StatTimer; -})(); - -PDFJS.createBlob = function createBlob(data, contentType) { - if (typeof Blob !== 'undefined') { - return new Blob([data], { type: contentType }); - } - // Blob builder is deprecated in FF14 and removed in FF18. - var bb = new MozBlobBuilder(); - bb.append(data); - return bb.getBlob(contentType); -}; - -PDFJS.createObjectURL = (function createObjectURLClosure() { - // Blob/createObjectURL is not available, falling back to data schema. - var digits = - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; - - return function createObjectURL(data, contentType) { - if (!PDFJS.disableCreateObjectURL && - typeof URL !== 'undefined' && URL.createObjectURL) { - var blob = PDFJS.createBlob(data, contentType); - return URL.createObjectURL(blob); - } - - var buffer = 'data:' + contentType + ';base64,'; - for (var i = 0, ii = data.length; i < ii; i += 3) { - var b1 = data[i] & 0xFF; - var b2 = data[i + 1] & 0xFF; - var b3 = data[i + 2] & 0xFF; - var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4); - var d3 = i + 1 < ii ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64; - var d4 = i + 2 < ii ? (b3 & 0x3F) : 64; - buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; - } - return buffer; - }; -})(); - -function MessageHandler(name, comObj) { - this.name = name; - this.comObj = comObj; - this.callbackIndex = 1; - this.postMessageTransfers = true; - var callbacksCapabilities = this.callbacksCapabilities = {}; - var ah = this.actionHandler = {}; - - ah['console_log'] = [function ahConsoleLog(data) { - console.log.apply(console, data); - }]; - ah['console_error'] = [function ahConsoleError(data) { - console.error.apply(console, data); - }]; - ah['_unsupported_feature'] = [function ah_unsupportedFeature(data) { - UnsupportedManager.notify(data); - }]; - - comObj.onmessage = function messageHandlerComObjOnMessage(event) { - var data = event.data; - if (data.isReply) { - var callbackId = data.callbackId; - if (data.callbackId in callbacksCapabilities) { - var callback = callbacksCapabilities[callbackId]; - delete callbacksCapabilities[callbackId]; - if ('error' in data) { - callback.reject(data.error); - } else { - callback.resolve(data.data); - } - } else { - error('Cannot resolve callback ' + callbackId); - } - } else if (data.action in ah) { - var action = ah[data.action]; - if (data.callbackId) { - Promise.resolve().then(function () { - return action[0].call(action[1], data.data); - }).then(function (result) { - comObj.postMessage({ - isReply: true, - callbackId: data.callbackId, - data: result - }); - }, function (reason) { - comObj.postMessage({ - isReply: true, - callbackId: data.callbackId, - error: reason - }); - }); - } else { - action[0].call(action[1], data.data); - } - } else { - error('Unknown action from worker: ' + data.action); - } - }; -} - -MessageHandler.prototype = { - on: function messageHandlerOn(actionName, handler, scope) { - var ah = this.actionHandler; - if (ah[actionName]) { - error('There is already an actionName called "' + actionName + '"'); - } - ah[actionName] = [handler, scope]; - }, - /** - * Sends a message to the comObj to invoke the action with the supplied data. - * @param {String} actionName Action to call. - * @param {JSON} data JSON data to send. - * @param {Array} [transfers] Optional list of transfers/ArrayBuffers - */ - send: function messageHandlerSend(actionName, data, transfers) { - var message = { - action: actionName, - data: data - }; - this.postMessage(message, transfers); - }, - /** - * Sends a message to the comObj to invoke the action with the supplied data. - * Expects that other side will callback with the response. - * @param {String} actionName Action to call. - * @param {JSON} data JSON data to send. - * @param {Array} [transfers] Optional list of transfers/ArrayBuffers. - * @returns {Promise} Promise to be resolved with response data. - */ - sendWithPromise: - function messageHandlerSendWithPromise(actionName, data, transfers) { - var callbackId = this.callbackIndex++; - var message = { - action: actionName, - data: data, - callbackId: callbackId - }; - var capability = createPromiseCapability(); - this.callbacksCapabilities[callbackId] = capability; - try { - this.postMessage(message, transfers); - } catch (e) { - capability.reject(e); - } - return capability.promise; - }, - /** - * Sends raw message to the comObj. - * @private - * @param message {Object} Raw message. - * @param transfers List of transfers/ArrayBuffers, or undefined. - */ - postMessage: function (message, transfers) { - if (transfers && this.postMessageTransfers) { - this.comObj.postMessage(message, transfers); - } else { - this.comObj.postMessage(message); - } - } -}; - -function loadJpegStream(id, imageUrl, objs) { - var img = new Image(); - img.onload = (function loadJpegStream_onloadClosure() { - objs.resolve(id, img); - }); - img.onerror = (function loadJpegStream_onerrorClosure() { - objs.resolve(id, null); - warn('Error during JPEG image loading'); - }); - img.src = imageUrl; -} - - -/** - * The maximum allowed image size in total pixels e.g. width * height. Images - * above this value will not be drawn. Use -1 for no limit. - * @var {number} - */ -PDFJS.maxImageSize = (PDFJS.maxImageSize === undefined ? - -1 : PDFJS.maxImageSize); - -/** - * The url of where the predefined Adobe CMaps are located. Include trailing - * slash. - * @var {string} - */ -PDFJS.cMapUrl = (PDFJS.cMapUrl === undefined ? null : PDFJS.cMapUrl); - -/** - * Specifies if CMaps are binary packed. - * @var {boolean} - */ -PDFJS.cMapPacked = PDFJS.cMapPacked === undefined ? false : PDFJS.cMapPacked; - -/** - * By default fonts are converted to OpenType fonts and loaded via font face - * rules. If disabled, the font will be rendered using a built in font renderer - * that constructs the glyphs with primitive path commands. - * @var {boolean} - */ -PDFJS.disableFontFace = (PDFJS.disableFontFace === undefined ? - false : PDFJS.disableFontFace); - -/** - * Path for image resources, mainly for annotation icons. Include trailing - * slash. - * @var {string} - */ -PDFJS.imageResourcesPath = (PDFJS.imageResourcesPath === undefined ? - '' : PDFJS.imageResourcesPath); - -/** - * Disable the web worker and run all code on the main thread. This will happen - * automatically if the browser doesn't support workers or sending typed arrays - * to workers. - * @var {boolean} - */ -PDFJS.disableWorker = (PDFJS.disableWorker === undefined ? - false : PDFJS.disableWorker); - -/** - * Path and filename of the worker file. Required when the worker is enabled in - * development mode. If unspecified in the production build, the worker will be - * loaded based on the location of the pdf.js file. - * @var {string} - */ -PDFJS.workerSrc = (PDFJS.workerSrc === undefined ? null : PDFJS.workerSrc); - -/** - * Disable range request loading of PDF files. When enabled and if the server - * supports partial content requests then the PDF will be fetched in chunks. - * Enabled (false) by default. - * @var {boolean} - */ -PDFJS.disableRange = (PDFJS.disableRange === undefined ? - false : PDFJS.disableRange); - -/** - * Disable streaming of PDF file data. By default PDF.js attempts to load PDF - * in chunks. This default behavior can be disabled. - * @var {boolean} - */ -PDFJS.disableStream = (PDFJS.disableStream === undefined ? - false : PDFJS.disableStream); - -/** - * Disable pre-fetching of PDF file data. When range requests are enabled PDF.js - * will automatically keep fetching more data even if it isn't needed to display - * the current page. This default behavior can be disabled. - * - * NOTE: It is also necessary to disable streaming, see above, - * in order for disabling of pre-fetching to work correctly. - * @var {boolean} - */ -PDFJS.disableAutoFetch = (PDFJS.disableAutoFetch === undefined ? - false : PDFJS.disableAutoFetch); - -/** - * Enables special hooks for debugging PDF.js. - * @var {boolean} - */ -PDFJS.pdfBug = (PDFJS.pdfBug === undefined ? false : PDFJS.pdfBug); - -/** - * Enables transfer usage in postMessage for ArrayBuffers. - * @var {boolean} - */ -PDFJS.postMessageTransfers = (PDFJS.postMessageTransfers === undefined ? - true : PDFJS.postMessageTransfers); - -/** - * Disables URL.createObjectURL usage. - * @var {boolean} - */ -PDFJS.disableCreateObjectURL = (PDFJS.disableCreateObjectURL === undefined ? - false : PDFJS.disableCreateObjectURL); - -/** - * Disables WebGL usage. - * @var {boolean} - */ -PDFJS.disableWebGL = (PDFJS.disableWebGL === undefined ? - true : PDFJS.disableWebGL); - -/** - * Disables fullscreen support, and by extension Presentation Mode, - * in browsers which support the fullscreen API. - * @var {boolean} - */ -PDFJS.disableFullscreen = (PDFJS.disableFullscreen === undefined ? - false : PDFJS.disableFullscreen); - -/** - * Enables CSS only zooming. - * @var {boolean} - */ -PDFJS.useOnlyCssZoom = (PDFJS.useOnlyCssZoom === undefined ? - false : PDFJS.useOnlyCssZoom); - -/** - * Controls the logging level. - * The constants from PDFJS.VERBOSITY_LEVELS should be used: - * - errors - * - warnings [default] - * - infos - * @var {number} - */ -PDFJS.verbosity = (PDFJS.verbosity === undefined ? - PDFJS.VERBOSITY_LEVELS.warnings : PDFJS.verbosity); - -/** - * The maximum supported canvas size in total pixels e.g. width * height. - * The default value is 4096 * 4096. Use -1 for no limit. - * @var {number} - */ -PDFJS.maxCanvasPixels = (PDFJS.maxCanvasPixels === undefined ? - 16777216 : PDFJS.maxCanvasPixels); - -/** - * Opens external links in a new window if enabled. The default behavior opens - * external links in the PDF.js window. - * @var {boolean} - */ -PDFJS.openExternalLinksInNewWindow = ( - PDFJS.openExternalLinksInNewWindow === undefined ? - false : PDFJS.openExternalLinksInNewWindow); - -/** - * Document initialization / loading parameters object. - * - * @typedef {Object} DocumentInitParameters - * @property {string} url - The URL of the PDF. - * @property {TypedArray|Array|string} data - Binary PDF data. Use typed arrays - * (Uint8Array) to improve the memory usage. If PDF data is BASE64-encoded, - * use atob() to convert it to a binary string first. - * @property {Object} httpHeaders - Basic authentication headers. - * @property {boolean} withCredentials - Indicates whether or not cross-site - * Access-Control requests should be made using credentials such as cookies - * or authorization headers. The default is false. - * @property {string} password - For decrypting password-protected PDFs. - * @property {TypedArray} initialData - A typed array with the first portion or - * all of the pdf data. Used by the extension since some data is already - * loaded before the switch to range requests. - * @property {number} length - The PDF file length. It's used for progress - * reports and range requests operations. - * @property {PDFDataRangeTransport} range - */ - -/** - * @typedef {Object} PDFDocumentStats - * @property {Array} streamTypes - Used stream types in the document (an item - * is set to true if specific stream ID was used in the document). - * @property {Array} fontTypes - Used font type in the document (an item is set - * to true if specific font ID was used in the document). - */ - -/** - * This is the main entry point for loading a PDF and interacting with it. - * NOTE: If a URL is used to fetch the PDF data a standard XMLHttpRequest(XHR) - * is used, which means it must follow the same origin rules that any XHR does - * e.g. No cross domain requests without CORS. - * - * @param {string|TypedArray|DocumentInitParameters|PDFDataRangeTransport} src - * Can be a url to where a PDF is located, a typed array (Uint8Array) - * already populated with data or parameter object. - * - * @param {PDFDataRangeTransport} pdfDataRangeTransport (deprecated) It is used - * if you want to manually serve range requests for data in the PDF. - * - * @param {function} passwordCallback (deprecated) It is used to request a - * password if wrong or no password was provided. The callback receives two - * parameters: function that needs to be called with new password and reason - * (see {PasswordResponses}). - * - * @param {function} progressCallback (deprecated) It is used to be able to - * monitor the loading progress of the PDF file (necessary to implement e.g. - * a loading bar). The callback receives an {Object} with the properties: - * {number} loaded and {number} total. - * - * @return {PDFDocumentLoadingTask} - */ -PDFJS.getDocument = function getDocument(src, - pdfDataRangeTransport, - passwordCallback, - progressCallback) { - var task = new PDFDocumentLoadingTask(); - - // Support of the obsolete arguments (for compatibility with API v1.0) - if (pdfDataRangeTransport) { - if (!(pdfDataRangeTransport instanceof PDFDataRangeTransport)) { - // Not a PDFDataRangeTransport instance, trying to add missing properties. - pdfDataRangeTransport = Object.create(pdfDataRangeTransport); - pdfDataRangeTransport.length = src.length; - pdfDataRangeTransport.initialData = src.initialData; - } - src = Object.create(src); - src.range = pdfDataRangeTransport; - } - task.onPassword = passwordCallback || null; - task.onProgress = progressCallback || null; - - var workerInitializedCapability, transport; - var source; - if (typeof src === 'string') { - source = { url: src }; - } else if (isArrayBuffer(src)) { - source = { data: src }; - } else if (src instanceof PDFDataRangeTransport) { - source = { range: src }; - } else { - if (typeof src !== 'object') { - error('Invalid parameter in getDocument, need either Uint8Array, ' + - 'string or a parameter object'); - } - if (!src.url && !src.data && !src.range) { - error('Invalid parameter object: need either .data, .range or .url'); - } - - source = src; - } - - var params = {}; - for (var key in source) { - if (key === 'url' && typeof window !== 'undefined') { - // The full path is required in the 'url' field. - params[key] = combineUrl(window.location.href, source[key]); - continue; - } else if (key === 'range') { - continue; - } else if (key === 'data' && !(source[key] instanceof Uint8Array)) { - // Converting string or array-like data to Uint8Array. - var pdfBytes = source[key]; - if (typeof pdfBytes === 'string') { - params[key] = stringToBytes(pdfBytes); - } else if (typeof pdfBytes === 'object' && pdfBytes !== null && - !isNaN(pdfBytes.length)) { - params[key] = new Uint8Array(pdfBytes); - } else { - error('Invalid PDF binary data: either typed array, string or ' + - 'array-like object is expected in the data property.'); - } - continue; - } - params[key] = source[key]; - } - - workerInitializedCapability = createPromiseCapability(); - transport = new WorkerTransport(workerInitializedCapability, source.range); - workerInitializedCapability.promise.then(function transportInitialized() { - transport.fetchDocument(task, params); - }); - - return task; -}; - -/** - * PDF document loading operation. - * @class - */ -var PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() { - /** @constructs PDFDocumentLoadingTask */ - function PDFDocumentLoadingTask() { - this._capability = createPromiseCapability(); - - /** - * Callback to request a password if wrong or no password was provided. - * The callback receives two parameters: function that needs to be called - * with new password and reason (see {PasswordResponses}). - */ - this.onPassword = null; - - /** - * Callback to be able to monitor the loading progress of the PDF file - * (necessary to implement e.g. a loading bar). The callback receives - * an {Object} with the properties: {number} loaded and {number} total. - */ - this.onProgress = null; - } - - PDFDocumentLoadingTask.prototype = - /** @lends PDFDocumentLoadingTask.prototype */ { - /** - * @return {Promise} - */ - get promise() { - return this._capability.promise; - }, - - // TODO add cancel or abort method - - /** - * Registers callbacks to indicate the document loading completion. - * - * @param {function} onFulfilled The callback for the loading completion. - * @param {function} onRejected The callback for the loading failure. - * @return {Promise} A promise that is resolved after the onFulfilled or - * onRejected callback. - */ - then: function PDFDocumentLoadingTask_then(onFulfilled, onRejected) { - return this.promise.then.apply(this.promise, arguments); - } - }; - - return PDFDocumentLoadingTask; -})(); - -/** - * Abstract class to support range requests file loading. - * @class - */ -var PDFDataRangeTransport = (function pdfDataRangeTransportClosure() { - /** - * @constructs PDFDataRangeTransport - * @param {number} length - * @param {Uint8Array} initialData - */ - function PDFDataRangeTransport(length, initialData) { - this.length = length; - this.initialData = initialData; - - this._rangeListeners = []; - this._progressListeners = []; - this._progressiveReadListeners = []; - this._readyCapability = createPromiseCapability(); - } - PDFDataRangeTransport.prototype = - /** @lends PDFDataRangeTransport.prototype */ { - addRangeListener: - function PDFDataRangeTransport_addRangeListener(listener) { - this._rangeListeners.push(listener); - }, - - addProgressListener: - function PDFDataRangeTransport_addProgressListener(listener) { - this._progressListeners.push(listener); - }, - - addProgressiveReadListener: - function PDFDataRangeTransport_addProgressiveReadListener(listener) { - this._progressiveReadListeners.push(listener); - }, - - onDataRange: function PDFDataRangeTransport_onDataRange(begin, chunk) { - var listeners = this._rangeListeners; - for (var i = 0, n = listeners.length; i < n; ++i) { - listeners[i](begin, chunk); - } - }, - - onDataProgress: function PDFDataRangeTransport_onDataProgress(loaded) { - this._readyCapability.promise.then(function () { - var listeners = this._progressListeners; - for (var i = 0, n = listeners.length; i < n; ++i) { - listeners[i](loaded); - } - }.bind(this)); - }, - - onDataProgressiveRead: - function PDFDataRangeTransport_onDataProgress(chunk) { - this._readyCapability.promise.then(function () { - var listeners = this._progressiveReadListeners; - for (var i = 0, n = listeners.length; i < n; ++i) { - listeners[i](chunk); - } - }.bind(this)); - }, - - transportReady: function PDFDataRangeTransport_transportReady() { - this._readyCapability.resolve(); - }, - - requestDataRange: - function PDFDataRangeTransport_requestDataRange(begin, end) { - throw new Error('Abstract method PDFDataRangeTransport.requestDataRange'); - } - }; - return PDFDataRangeTransport; -})(); - -PDFJS.PDFDataRangeTransport = PDFDataRangeTransport; - -/** - * Proxy to a PDFDocument in the worker thread. Also, contains commonly used - * properties that can be read synchronously. - * @class - */ -var PDFDocumentProxy = (function PDFDocumentProxyClosure() { - function PDFDocumentProxy(pdfInfo, transport) { - this.pdfInfo = pdfInfo; - this.transport = transport; - } - PDFDocumentProxy.prototype = /** @lends PDFDocumentProxy.prototype */ { - /** - * @return {number} Total number of pages the PDF contains. - */ - get numPages() { - return this.pdfInfo.numPages; - }, - /** - * @return {string} A unique ID to identify a PDF. Not guaranteed to be - * unique. - */ - get fingerprint() { - return this.pdfInfo.fingerprint; - }, - /** - * @param {number} pageNumber The page number to get. The first page is 1. - * @return {Promise} A promise that is resolved with a {@link PDFPageProxy} - * object. - */ - getPage: function PDFDocumentProxy_getPage(pageNumber) { - return this.transport.getPage(pageNumber); - }, - /** - * @param {{num: number, gen: number}} ref The page reference. Must have - * the 'num' and 'gen' properties. - * @return {Promise} A promise that is resolved with the page index that is - * associated with the reference. - */ - getPageIndex: function PDFDocumentProxy_getPageIndex(ref) { - return this.transport.getPageIndex(ref); - }, - /** - * @return {Promise} A promise that is resolved with a lookup table for - * mapping named destinations to reference numbers. - * - * This can be slow for large documents: use getDestination instead - */ - getDestinations: function PDFDocumentProxy_getDestinations() { - return this.transport.getDestinations(); - }, - /** - * @param {string} id The named destination to get. - * @return {Promise} A promise that is resolved with all information - * of the given named destination. - */ - getDestination: function PDFDocumentProxy_getDestination(id) { - return this.transport.getDestination(id); - }, - /** - * @return {Promise} A promise that is resolved with a lookup table for - * mapping named attachments to their content. - */ - getAttachments: function PDFDocumentProxy_getAttachments() { - return this.transport.getAttachments(); - }, - /** - * @return {Promise} A promise that is resolved with an array of all the - * JavaScript strings in the name tree. - */ - getJavaScript: function PDFDocumentProxy_getJavaScript() { - return this.transport.getJavaScript(); - }, - /** - * @return {Promise} A promise that is resolved with an {Array} that is a - * tree outline (if it has one) of the PDF. The tree is in the format of: - * [ - * { - * title: string, - * bold: boolean, - * italic: boolean, - * color: rgb array, - * dest: dest obj, - * items: array of more items like this - * }, - * ... - * ]. - */ - getOutline: function PDFDocumentProxy_getOutline() { - return this.transport.getOutline(); - }, - /** - * @return {Promise} A promise that is resolved with an {Object} that has - * info and metadata properties. Info is an {Object} filled with anything - * available in the information dictionary and similarly metadata is a - * {Metadata} object with information from the metadata section of the PDF. - */ - getMetadata: function PDFDocumentProxy_getMetadata() { - return this.transport.getMetadata(); - }, - /** - * @return {Promise} A promise that is resolved with a TypedArray that has - * the raw data from the PDF. - */ - getData: function PDFDocumentProxy_getData() { - return this.transport.getData(); - }, - /** - * @return {Promise} A promise that is resolved when the document's data - * is loaded. It is resolved with an {Object} that contains the length - * property that indicates size of the PDF data in bytes. - */ - getDownloadInfo: function PDFDocumentProxy_getDownloadInfo() { - return this.transport.downloadInfoCapability.promise; - }, - /** - * @return {Promise} A promise this is resolved with current stats about - * document structures (see {@link PDFDocumentStats}). - */ - getStats: function PDFDocumentProxy_getStats() { - return this.transport.getStats(); - }, - /** - * Cleans up resources allocated by the document, e.g. created @font-face. - */ - cleanup: function PDFDocumentProxy_cleanup() { - this.transport.startCleanup(); - }, - /** - * Destroys current document instance and terminates worker. - */ - destroy: function PDFDocumentProxy_destroy() { - this.transport.destroy(); - } - }; - return PDFDocumentProxy; -})(); - -/** - * Page text content. - * - * @typedef {Object} TextContent - * @property {array} items - array of {@link TextItem} - * @property {Object} styles - {@link TextStyles} objects, indexed by font - * name. - */ - -/** - * Page text content part. - * - * @typedef {Object} TextItem - * @property {string} str - text content. - * @property {string} dir - text direction: 'ttb', 'ltr' or 'rtl'. - * @property {array} transform - transformation matrix. - * @property {number} width - width in device space. - * @property {number} height - height in device space. - * @property {string} fontName - font name used by pdf.js for converted font. - */ - -/** - * Text style. - * - * @typedef {Object} TextStyle - * @property {number} ascent - font ascent. - * @property {number} descent - font descent. - * @property {boolean} vertical - text is in vertical mode. - * @property {string} fontFamily - possible font family - */ - -/** - * Page render parameters. - * - * @typedef {Object} RenderParameters - * @property {Object} canvasContext - A 2D context of a DOM Canvas object. - * @property {PDFJS.PageViewport} viewport - Rendering viewport obtained by - * calling of PDFPage.getViewport method. - * @property {string} intent - Rendering intent, can be 'display' or 'print' - * (default value is 'display'). - * @property {Object} imageLayer - (optional) An object that has beginLayout, - * endLayout and appendImage functions. - * @property {function} continueCallback - (deprecated) A function that will be - * called each time the rendering is paused. To continue - * rendering call the function that is the first argument - * to the callback. - */ - -/** - * PDF page operator list. - * - * @typedef {Object} PDFOperatorList - * @property {Array} fnArray - Array containing the operator functions. - * @property {Array} argsArray - Array containing the arguments of the - * functions. - */ - -/** - * Proxy to a PDFPage in the worker thread. - * @class - */ -var PDFPageProxy = (function PDFPageProxyClosure() { - function PDFPageProxy(pageIndex, pageInfo, transport) { - this.pageIndex = pageIndex; - this.pageInfo = pageInfo; - this.transport = transport; - this.stats = new StatTimer(); - this.stats.enabled = !!globalScope.PDFJS.enableStats; - this.commonObjs = transport.commonObjs; - this.objs = new PDFObjects(); - this.cleanupAfterRender = false; - this.pendingDestroy = false; - this.intentStates = {}; - } - PDFPageProxy.prototype = /** @lends PDFPageProxy.prototype */ { - /** - * @return {number} Page number of the page. First page is 1. - */ - get pageNumber() { - return this.pageIndex + 1; - }, - /** - * @return {number} The number of degrees the page is rotated clockwise. - */ - get rotate() { - return this.pageInfo.rotate; - }, - /** - * @return {Object} The reference that points to this page. It has 'num' and - * 'gen' properties. - */ - get ref() { - return this.pageInfo.ref; - }, - /** - * @return {Array} An array of the visible portion of the PDF page in the - * user space units - [x1, y1, x2, y2]. - */ - get view() { - return this.pageInfo.view; - }, - /** - * @param {number} scale The desired scale of the viewport. - * @param {number} rotate Degrees to rotate the viewport. If omitted this - * defaults to the page rotation. - * @return {PDFJS.PageViewport} Contains 'width' and 'height' properties - * along with transforms required for rendering. - */ - getViewport: function PDFPageProxy_getViewport(scale, rotate) { - if (arguments.length < 2) { - rotate = this.rotate; - } - return new PDFJS.PageViewport(this.view, scale, rotate, 0, 0); - }, - /** - * @return {Promise} A promise that is resolved with an {Array} of the - * annotation objects. - */ - getAnnotations: function PDFPageProxy_getAnnotations() { - if (this.annotationsPromise) { - return this.annotationsPromise; - } - - var promise = this.transport.getAnnotations(this.pageIndex); - this.annotationsPromise = promise; - return promise; - }, - /** - * Begins the process of rendering a page to the desired context. - * @param {RenderParameters} params Page render parameters. - * @return {RenderTask} An object that contains the promise, which - * is resolved when the page finishes rendering. - */ - render: function PDFPageProxy_render(params) { - var stats = this.stats; - stats.time('Overall'); - - // If there was a pending destroy cancel it so no cleanup happens during - // this call to render. - this.pendingDestroy = false; - - var renderingIntent = (params.intent === 'print' ? 'print' : 'display'); - - if (!this.intentStates[renderingIntent]) { - this.intentStates[renderingIntent] = {}; - } - var intentState = this.intentStates[renderingIntent]; - - // If there's no displayReadyCapability yet, then the operatorList - // was never requested before. Make the request and create the promise. - if (!intentState.displayReadyCapability) { - intentState.receivingOperatorList = true; - intentState.displayReadyCapability = createPromiseCapability(); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false - }; - - this.stats.time('Page Request'); - this.transport.messageHandler.send('RenderPageRequest', { - pageIndex: this.pageNumber - 1, - intent: renderingIntent - }); - } - - var internalRenderTask = new InternalRenderTask(complete, params, - this.objs, - this.commonObjs, - intentState.operatorList, - this.pageNumber); - internalRenderTask.useRequestAnimationFrame = renderingIntent !== 'print'; - if (!intentState.renderTasks) { - intentState.renderTasks = []; - } - intentState.renderTasks.push(internalRenderTask); - var renderTask = internalRenderTask.task; - - // Obsolete parameter support - if (params.continueCallback) { - renderTask.onContinue = params.continueCallback; - } - - var self = this; - intentState.displayReadyCapability.promise.then( - function pageDisplayReadyPromise(transparency) { - if (self.pendingDestroy) { - complete(); - return; - } - stats.time('Rendering'); - internalRenderTask.initalizeGraphics(transparency); - internalRenderTask.operatorListChanged(); - }, - function pageDisplayReadPromiseError(reason) { - complete(reason); - } - ); - - function complete(error) { - var i = intentState.renderTasks.indexOf(internalRenderTask); - if (i >= 0) { - intentState.renderTasks.splice(i, 1); - } - - if (self.cleanupAfterRender) { - self.pendingDestroy = true; - } - self._tryDestroy(); - - if (error) { - internalRenderTask.capability.reject(error); - } else { - internalRenderTask.capability.resolve(); - } - stats.timeEnd('Rendering'); - stats.timeEnd('Overall'); - } - - return renderTask; - }, - - /** - * @return {Promise} A promise resolved with an {@link PDFOperatorList} - * object that represents page's operator list. - */ - getOperatorList: function PDFPageProxy_getOperatorList() { - function operatorListChanged() { - if (intentState.operatorList.lastChunk) { - intentState.opListReadCapability.resolve(intentState.operatorList); - } - } - - var renderingIntent = 'oplist'; - if (!this.intentStates[renderingIntent]) { - this.intentStates[renderingIntent] = {}; - } - var intentState = this.intentStates[renderingIntent]; - - if (!intentState.opListReadCapability) { - var opListTask = {}; - opListTask.operatorListChanged = operatorListChanged; - intentState.receivingOperatorList = true; - intentState.opListReadCapability = createPromiseCapability(); - intentState.renderTasks = []; - intentState.renderTasks.push(opListTask); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false - }; - - this.transport.messageHandler.send('RenderPageRequest', { - pageIndex: this.pageIndex, - intent: renderingIntent - }); - } - return intentState.opListReadCapability.promise; - }, - - /** - * @return {Promise} That is resolved a {@link TextContent} - * object that represent the page text content. - */ - getTextContent: function PDFPageProxy_getTextContent() { - return this.transport.messageHandler.sendWithPromise('GetTextContent', { - pageIndex: this.pageNumber - 1 - }); - }, - /** - * Destroys resources allocated by the page. - */ - destroy: function PDFPageProxy_destroy() { - this.pendingDestroy = true; - this._tryDestroy(); - }, - /** - * For internal use only. Attempts to clean up if rendering is in a state - * where that's possible. - * @ignore - */ - _tryDestroy: function PDFPageProxy__destroy() { - if (!this.pendingDestroy || - Object.keys(this.intentStates).some(function(intent) { - var intentState = this.intentStates[intent]; - return (intentState.renderTasks.length !== 0 || - intentState.receivingOperatorList); - }, this)) { - return; - } - - Object.keys(this.intentStates).forEach(function(intent) { - delete this.intentStates[intent]; - }, this); - this.objs.clear(); - this.annotationsPromise = null; - this.pendingDestroy = false; - }, - /** - * For internal use only. - * @ignore - */ - _startRenderPage: function PDFPageProxy_startRenderPage(transparency, - intent) { - var intentState = this.intentStates[intent]; - // TODO Refactor RenderPageRequest to separate rendering - // and operator list logic - if (intentState.displayReadyCapability) { - intentState.displayReadyCapability.resolve(transparency); - } - }, - /** - * For internal use only. - * @ignore - */ - _renderPageChunk: function PDFPageProxy_renderPageChunk(operatorListChunk, - intent) { - var intentState = this.intentStates[intent]; - var i, ii; - // Add the new chunk to the current operator list. - for (i = 0, ii = operatorListChunk.length; i < ii; i++) { - intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); - intentState.operatorList.argsArray.push( - operatorListChunk.argsArray[i]); - } - intentState.operatorList.lastChunk = operatorListChunk.lastChunk; - - // Notify all the rendering tasks there are more operators to be consumed. - for (i = 0; i < intentState.renderTasks.length; i++) { - intentState.renderTasks[i].operatorListChanged(); - } - - if (operatorListChunk.lastChunk) { - intentState.receivingOperatorList = false; - this._tryDestroy(); - } - } - }; - return PDFPageProxy; -})(); - -/** - * For internal use only. - * @ignore - */ -var WorkerTransport = (function WorkerTransportClosure() { - function WorkerTransport(workerInitializedCapability, pdfDataRangeTransport) { - this.pdfDataRangeTransport = pdfDataRangeTransport; - this.workerInitializedCapability = workerInitializedCapability; - this.commonObjs = new PDFObjects(); - - this.loadingTask = null; - - this.pageCache = []; - this.pagePromises = []; - this.downloadInfoCapability = createPromiseCapability(); - - // If worker support isn't disabled explicit and the browser has worker - // support, create a new web worker and test if it/the browser fullfills - // all requirements to run parts of pdf.js in a web worker. - // Right now, the requirement is, that an Uint8Array is still an Uint8Array - // as it arrives on the worker. Chrome added this with version 15. - if (!globalScope.PDFJS.disableWorker && typeof Worker !== 'undefined') { - var workerSrc = PDFJS.workerSrc; - if (!workerSrc) { - error('No PDFJS.workerSrc specified'); - } - - try { - // Some versions of FF can't create a worker on localhost, see: - // https://bugzilla.mozilla.org/show_bug.cgi?id=683280 - var worker = new Worker(workerSrc); - var messageHandler = new MessageHandler('main', worker); - this.messageHandler = messageHandler; - - messageHandler.on('test', function transportTest(data) { - var supportTypedArray = data && data.supportTypedArray; - if (supportTypedArray) { - this.worker = worker; - if (!data.supportTransfers) { - PDFJS.postMessageTransfers = false; - } - this.setupMessageHandler(messageHandler); - workerInitializedCapability.resolve(); - } else { - this.setupFakeWorker(); - } - }.bind(this)); - - var testObj = new Uint8Array([PDFJS.postMessageTransfers ? 255 : 0]); - // Some versions of Opera throw a DATA_CLONE_ERR on serializing the - // typed array. Also, checking if we can use transfers. - try { - messageHandler.send('test', testObj, [testObj.buffer]); - } catch (ex) { - info('Cannot use postMessage transfers'); - testObj[0] = 0; - messageHandler.send('test', testObj); - } - return; - } catch (e) { - info('The worker has been disabled.'); - } - } - // Either workers are disabled, not supported or have thrown an exception. - // Thus, we fallback to a faked worker. - this.setupFakeWorker(); - } - WorkerTransport.prototype = { - destroy: function WorkerTransport_destroy() { - this.pageCache = []; - this.pagePromises = []; - var self = this; - this.messageHandler.sendWithPromise('Terminate', null).then(function () { - FontLoader.clear(); - if (self.worker) { - self.worker.terminate(); - } - }); - }, - - setupFakeWorker: function WorkerTransport_setupFakeWorker() { - globalScope.PDFJS.disableWorker = true; - - if (!PDFJS.fakeWorkerFilesLoadedCapability) { - PDFJS.fakeWorkerFilesLoadedCapability = createPromiseCapability(); - // In the developer build load worker_loader which in turn loads all the - // other files and resolves the promise. In production only the - // pdf.worker.js file is needed. - Util.loadScript(PDFJS.workerSrc, function() { - PDFJS.fakeWorkerFilesLoadedCapability.resolve(); - }); - } - PDFJS.fakeWorkerFilesLoadedCapability.promise.then(function () { - warn('Setting up fake worker.'); - // If we don't use a worker, just post/sendMessage to the main thread. - var fakeWorker = { - postMessage: function WorkerTransport_postMessage(obj) { - fakeWorker.onmessage({data: obj}); - }, - terminate: function WorkerTransport_terminate() {} - }; - - var messageHandler = new MessageHandler('main', fakeWorker); - this.setupMessageHandler(messageHandler); - - // If the main thread is our worker, setup the handling for the messages - // the main thread sends to it self. - PDFJS.WorkerMessageHandler.setup(messageHandler); - - this.workerInitializedCapability.resolve(); - }.bind(this)); - }, - - setupMessageHandler: - function WorkerTransport_setupMessageHandler(messageHandler) { - this.messageHandler = messageHandler; - - function updatePassword(password) { - messageHandler.send('UpdatePassword', password); - } - - var pdfDataRangeTransport = this.pdfDataRangeTransport; - if (pdfDataRangeTransport) { - pdfDataRangeTransport.addRangeListener(function(begin, chunk) { - messageHandler.send('OnDataRange', { - begin: begin, - chunk: chunk - }); - }); - - pdfDataRangeTransport.addProgressListener(function(loaded) { - messageHandler.send('OnDataProgress', { - loaded: loaded - }); - }); - - pdfDataRangeTransport.addProgressiveReadListener(function(chunk) { - messageHandler.send('OnDataRange', { - chunk: chunk - }); - }); - - messageHandler.on('RequestDataRange', - function transportDataRange(data) { - pdfDataRangeTransport.requestDataRange(data.begin, data.end); - }, this); - } - - messageHandler.on('GetDoc', function transportDoc(data) { - var pdfInfo = data.pdfInfo; - this.numPages = data.pdfInfo.numPages; - var pdfDocument = new PDFDocumentProxy(pdfInfo, this); - this.pdfDocument = pdfDocument; - this.loadingTask._capability.resolve(pdfDocument); - }, this); - - messageHandler.on('NeedPassword', - function transportNeedPassword(exception) { - var loadingTask = this.loadingTask; - if (loadingTask.onPassword) { - return loadingTask.onPassword(updatePassword, - PasswordResponses.NEED_PASSWORD); - } - loadingTask._capability.reject( - new PasswordException(exception.message, exception.code)); - }, this); - - messageHandler.on('IncorrectPassword', - function transportIncorrectPassword(exception) { - var loadingTask = this.loadingTask; - if (loadingTask.onPassword) { - return loadingTask.onPassword(updatePassword, - PasswordResponses.INCORRECT_PASSWORD); - } - loadingTask._capability.reject( - new PasswordException(exception.message, exception.code)); - }, this); - - messageHandler.on('InvalidPDF', function transportInvalidPDF(exception) { - this.loadingTask._capability.reject( - new InvalidPDFException(exception.message)); - }, this); - - messageHandler.on('MissingPDF', function transportMissingPDF(exception) { - this.loadingTask._capability.reject( - new MissingPDFException(exception.message)); - }, this); - - messageHandler.on('UnexpectedResponse', - function transportUnexpectedResponse(exception) { - this.loadingTask._capability.reject( - new UnexpectedResponseException(exception.message, exception.status)); - }, this); - - messageHandler.on('UnknownError', - function transportUnknownError(exception) { - this.loadingTask._capability.reject( - new UnknownErrorException(exception.message, exception.details)); - }, this); - - messageHandler.on('DataLoaded', function transportPage(data) { - this.downloadInfoCapability.resolve(data); - }, this); - - messageHandler.on('PDFManagerReady', function transportPage(data) { - if (this.pdfDataRangeTransport) { - this.pdfDataRangeTransport.transportReady(); - } - }, this); - - messageHandler.on('StartRenderPage', function transportRender(data) { - var page = this.pageCache[data.pageIndex]; - - page.stats.timeEnd('Page Request'); - page._startRenderPage(data.transparency, data.intent); - }, this); - - messageHandler.on('RenderPageChunk', function transportRender(data) { - var page = this.pageCache[data.pageIndex]; - - page._renderPageChunk(data.operatorList, data.intent); - }, this); - - messageHandler.on('commonobj', function transportObj(data) { - var id = data[0]; - var type = data[1]; - if (this.commonObjs.hasData(id)) { - return; - } - - switch (type) { - case 'Font': - var exportedData = data[2]; - - var font; - if ('error' in exportedData) { - var error = exportedData.error; - warn('Error during font loading: ' + error); - this.commonObjs.resolve(id, error); - break; - } else { - font = new FontFaceObject(exportedData); - } - - FontLoader.bind( - [font], - function fontReady(fontObjs) { - this.commonObjs.resolve(id, font); - }.bind(this) - ); - break; - case 'FontPath': - this.commonObjs.resolve(id, data[2]); - break; - default: - error('Got unknown common object type ' + type); - } - }, this); - - messageHandler.on('obj', function transportObj(data) { - var id = data[0]; - var pageIndex = data[1]; - var type = data[2]; - var pageProxy = this.pageCache[pageIndex]; - var imageData; - if (pageProxy.objs.hasData(id)) { - return; - } - - switch (type) { - case 'JpegStream': - imageData = data[3]; - loadJpegStream(id, imageData, pageProxy.objs); - break; - case 'Image': - imageData = data[3]; - pageProxy.objs.resolve(id, imageData); - - // heuristics that will allow not to store large data - var MAX_IMAGE_SIZE_TO_STORE = 8000000; - if (imageData && 'data' in imageData && - imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) { - pageProxy.cleanupAfterRender = true; - } - break; - default: - error('Got unknown object type ' + type); - } - }, this); - - messageHandler.on('DocProgress', function transportDocProgress(data) { - var loadingTask = this.loadingTask; - if (loadingTask.onProgress) { - loadingTask.onProgress({ - loaded: data.loaded, - total: data.total - }); - } - }, this); - - messageHandler.on('PageError', function transportError(data) { - var page = this.pageCache[data.pageNum - 1]; - var intentState = page.intentStates[data.intent]; - if (intentState.displayReadyCapability) { - intentState.displayReadyCapability.reject(data.error); - } else { - error(data.error); - } - }, this); - - messageHandler.on('JpegDecode', function(data) { - var imageUrl = data[0]; - var components = data[1]; - if (components !== 3 && components !== 1) { - return Promise.reject( - new Error('Only 3 components or 1 component can be returned')); - } - - return new Promise(function (resolve, reject) { - var img = new Image(); - img.onload = function () { - var width = img.width; - var height = img.height; - var size = width * height; - var rgbaLength = size * 4; - var buf = new Uint8Array(size * components); - var tmpCanvas = createScratchCanvas(width, height); - var tmpCtx = tmpCanvas.getContext('2d'); - tmpCtx.drawImage(img, 0, 0); - var data = tmpCtx.getImageData(0, 0, width, height).data; - var i, j; - - if (components === 3) { - for (i = 0, j = 0; i < rgbaLength; i += 4, j += 3) { - buf[j] = data[i]; - buf[j + 1] = data[i + 1]; - buf[j + 2] = data[i + 2]; - } - } else if (components === 1) { - for (i = 0, j = 0; i < rgbaLength; i += 4, j++) { - buf[j] = data[i]; - } - } - resolve({ data: buf, width: width, height: height}); - }; - img.onerror = function () { - reject(new Error('JpegDecode failed to load image')); - }; - img.src = imageUrl; - }); - }); - }, - - fetchDocument: function WorkerTransport_fetchDocument(loadingTask, source) { - this.loadingTask = loadingTask; - - source.disableAutoFetch = PDFJS.disableAutoFetch; - source.disableStream = PDFJS.disableStream; - source.chunkedViewerLoading = !!this.pdfDataRangeTransport; - if (this.pdfDataRangeTransport) { - source.length = this.pdfDataRangeTransport.length; - source.initialData = this.pdfDataRangeTransport.initialData; - } - this.messageHandler.send('GetDocRequest', { - source: source, - disableRange: PDFJS.disableRange, - maxImageSize: PDFJS.maxImageSize, - cMapUrl: PDFJS.cMapUrl, - cMapPacked: PDFJS.cMapPacked, - disableFontFace: PDFJS.disableFontFace, - disableCreateObjectURL: PDFJS.disableCreateObjectURL, - verbosity: PDFJS.verbosity - }); - }, - - getData: function WorkerTransport_getData() { - return this.messageHandler.sendWithPromise('GetData', null); - }, - - getPage: function WorkerTransport_getPage(pageNumber, capability) { - if (pageNumber <= 0 || pageNumber > this.numPages || - (pageNumber|0) !== pageNumber) { - return Promise.reject(new Error('Invalid page request')); - } - - var pageIndex = pageNumber - 1; - if (pageIndex in this.pagePromises) { - return this.pagePromises[pageIndex]; - } - var promise = this.messageHandler.sendWithPromise('GetPage', { - pageIndex: pageIndex - }).then(function (pageInfo) { - var page = new PDFPageProxy(pageIndex, pageInfo, this); - this.pageCache[pageIndex] = page; - return page; - }.bind(this)); - this.pagePromises[pageIndex] = promise; - return promise; - }, - - getPageIndex: function WorkerTransport_getPageIndexByRef(ref) { - return this.messageHandler.sendWithPromise('GetPageIndex', { ref: ref }); - }, - - getAnnotations: function WorkerTransport_getAnnotations(pageIndex) { - return this.messageHandler.sendWithPromise('GetAnnotations', - { pageIndex: pageIndex }); - }, - - getDestinations: function WorkerTransport_getDestinations() { - return this.messageHandler.sendWithPromise('GetDestinations', null); - }, - - getDestination: function WorkerTransport_getDestination(id) { - return this.messageHandler.sendWithPromise('GetDestination', { id: id } ); - }, - - getAttachments: function WorkerTransport_getAttachments() { - return this.messageHandler.sendWithPromise('GetAttachments', null); - }, - - getJavaScript: function WorkerTransport_getJavaScript() { - return this.messageHandler.sendWithPromise('GetJavaScript', null); - }, - - getOutline: function WorkerTransport_getOutline() { - return this.messageHandler.sendWithPromise('GetOutline', null); - }, - - getMetadata: function WorkerTransport_getMetadata() { - return this.messageHandler.sendWithPromise('GetMetadata', null). - then(function transportMetadata(results) { - return { - info: results[0], - metadata: (results[1] ? new PDFJS.Metadata(results[1]) : null) - }; - }); - }, - - getStats: function WorkerTransport_getStats() { - return this.messageHandler.sendWithPromise('GetStats', null); - }, - - startCleanup: function WorkerTransport_startCleanup() { - this.messageHandler.sendWithPromise('Cleanup', null). - then(function endCleanup() { - for (var i = 0, ii = this.pageCache.length; i < ii; i++) { - var page = this.pageCache[i]; - if (page) { - page.destroy(); - } - } - this.commonObjs.clear(); - FontLoader.clear(); - }.bind(this)); - } - }; - return WorkerTransport; - -})(); - -/** - * A PDF document and page is built of many objects. E.g. there are objects - * for fonts, images, rendering code and such. These objects might get processed - * inside of a worker. The `PDFObjects` implements some basic functions to - * manage these objects. - * @ignore - */ -var PDFObjects = (function PDFObjectsClosure() { - function PDFObjects() { - this.objs = {}; - } - - PDFObjects.prototype = { - /** - * Internal function. - * Ensures there is an object defined for `objId`. - */ - ensureObj: function PDFObjects_ensureObj(objId) { - if (this.objs[objId]) { - return this.objs[objId]; - } - - var obj = { - capability: createPromiseCapability(), - data: null, - resolved: false - }; - this.objs[objId] = obj; - - return obj; - }, - - /** - * If called *without* callback, this returns the data of `objId` but the - * object needs to be resolved. If it isn't, this function throws. - * - * If called *with* a callback, the callback is called with the data of the - * object once the object is resolved. That means, if you call this - * function and the object is already resolved, the callback gets called - * right away. - */ - get: function PDFObjects_get(objId, callback) { - // If there is a callback, then the get can be async and the object is - // not required to be resolved right now - if (callback) { - this.ensureObj(objId).capability.promise.then(callback); - return null; - } - - // If there isn't a callback, the user expects to get the resolved data - // directly. - var obj = this.objs[objId]; - - // If there isn't an object yet or the object isn't resolved, then the - // data isn't ready yet! - if (!obj || !obj.resolved) { - error('Requesting object that isn\'t resolved yet ' + objId); - } - - return obj.data; - }, - - /** - * Resolves the object `objId` with optional `data`. - */ - resolve: function PDFObjects_resolve(objId, data) { - var obj = this.ensureObj(objId); - - obj.resolved = true; - obj.data = data; - obj.capability.resolve(data); - }, - - isResolved: function PDFObjects_isResolved(objId) { - var objs = this.objs; - - if (!objs[objId]) { - return false; - } else { - return objs[objId].resolved; - } - }, - - hasData: function PDFObjects_hasData(objId) { - return this.isResolved(objId); - }, - - /** - * Returns the data of `objId` if object exists, null otherwise. - */ - getData: function PDFObjects_getData(objId) { - var objs = this.objs; - if (!objs[objId] || !objs[objId].resolved) { - return null; - } else { - return objs[objId].data; - } - }, - - clear: function PDFObjects_clear() { - this.objs = {}; - } - }; - return PDFObjects; -})(); - -/** - * Allows controlling of the rendering tasks. - * @class - */ -var RenderTask = (function RenderTaskClosure() { - function RenderTask(internalRenderTask) { - this._internalRenderTask = internalRenderTask; - - /** - * Callback for incremental rendering -- a function that will be called - * each time the rendering is paused. To continue rendering call the - * function that is the first argument to the callback. - * @type {function} - */ - this.onContinue = null; - } - - RenderTask.prototype = /** @lends RenderTask.prototype */ { - /** - * Promise for rendering task completion. - * @return {Promise} - */ - get promise() { - return this._internalRenderTask.capability.promise; - }, - - /** - * Cancels the rendering task. If the task is currently rendering it will - * not be cancelled until graphics pauses with a timeout. The promise that - * this object extends will resolved when cancelled. - */ - cancel: function RenderTask_cancel() { - this._internalRenderTask.cancel(); - }, - - /** - * Registers callbacks to indicate the rendering task completion. - * - * @param {function} onFulfilled The callback for the rendering completion. - * @param {function} onRejected The callback for the rendering failure. - * @return {Promise} A promise that is resolved after the onFulfilled or - * onRejected callback. - */ - then: function RenderTask_then(onFulfilled, onRejected) { - return this.promise.then.apply(this.promise, arguments); - } - }; - - return RenderTask; -})(); - -/** - * For internal use only. - * @ignore - */ -var InternalRenderTask = (function InternalRenderTaskClosure() { - - function InternalRenderTask(callback, params, objs, commonObjs, operatorList, - pageNumber) { - this.callback = callback; - this.params = params; - this.objs = objs; - this.commonObjs = commonObjs; - this.operatorListIdx = null; - this.operatorList = operatorList; - this.pageNumber = pageNumber; - this.running = false; - this.graphicsReadyCallback = null; - this.graphicsReady = false; - this.useRequestAnimationFrame = false; - this.cancelled = false; - this.capability = createPromiseCapability(); - this.task = new RenderTask(this); - // caching this-bound methods - this._continueBound = this._continue.bind(this); - this._scheduleNextBound = this._scheduleNext.bind(this); - this._nextBound = this._next.bind(this); - } - - InternalRenderTask.prototype = { - - initalizeGraphics: - function InternalRenderTask_initalizeGraphics(transparency) { - - if (this.cancelled) { - return; - } - if (PDFJS.pdfBug && 'StepperManager' in globalScope && - globalScope.StepperManager.enabled) { - this.stepper = globalScope.StepperManager.create(this.pageNumber - 1); - this.stepper.init(this.operatorList); - this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); - } - - var params = this.params; - this.gfx = new CanvasGraphics(params.canvasContext, this.commonObjs, - this.objs, params.imageLayer); - - this.gfx.beginDrawing(params.viewport, transparency); - this.operatorListIdx = 0; - this.graphicsReady = true; - if (this.graphicsReadyCallback) { - this.graphicsReadyCallback(); - } - }, - - cancel: function InternalRenderTask_cancel() { - this.running = false; - this.cancelled = true; - this.callback('cancelled'); - }, - - operatorListChanged: function InternalRenderTask_operatorListChanged() { - if (!this.graphicsReady) { - if (!this.graphicsReadyCallback) { - this.graphicsReadyCallback = this._continueBound; - } - return; - } - - if (this.stepper) { - this.stepper.updateOperatorList(this.operatorList); - } - - if (this.running) { - return; - } - this._continue(); - }, - - _continue: function InternalRenderTask__continue() { - this.running = true; - if (this.cancelled) { - return; - } - if (this.task.onContinue) { - this.task.onContinue.call(this.task, this._scheduleNextBound); - } else { - this._scheduleNext(); - } - }, - - _scheduleNext: function InternalRenderTask__scheduleNext() { - if (this.useRequestAnimationFrame) { - window.requestAnimationFrame(this._nextBound); - } else { - Promise.resolve(undefined).then(this._nextBound); - } - }, - - _next: function InternalRenderTask__next() { - if (this.cancelled) { - return; - } - this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, - this.operatorListIdx, - this._continueBound, - this.stepper); - if (this.operatorListIdx === this.operatorList.argsArray.length) { - this.running = false; - if (this.operatorList.lastChunk) { - this.gfx.endDrawing(); - this.callback(); - } - } - } - - }; - - return InternalRenderTask; -})(); - - -var Metadata = PDFJS.Metadata = (function MetadataClosure() { - function fixMetadata(meta) { - return meta.replace(/>\\376\\377([^<]+)/g, function(all, codes) { - var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, - function(code, d1, d2, d3) { - return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); - }); - var chars = ''; - for (var i = 0; i < bytes.length; i += 2) { - var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); - chars += code >= 32 && code < 127 && code !== 60 && code !== 62 && - code !== 38 && false ? String.fromCharCode(code) : - '&#x' + (0x10000 + code).toString(16).substring(1) + ';'; - } - return '>' + chars; - }); - } - - function Metadata(meta) { - if (typeof meta === 'string') { - // Ghostscript produces invalid metadata - meta = fixMetadata(meta); - - var parser = new DOMParser(); - meta = parser.parseFromString(meta, 'application/xml'); - } else if (!(meta instanceof Document)) { - error('Metadata: Invalid metadata object'); - } - - this.metaDocument = meta; - this.metadata = {}; - this.parse(); - } - - Metadata.prototype = { - parse: function Metadata_parse() { - var doc = this.metaDocument; - var rdf = doc.documentElement; - - if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { // Wrapped in - rdf = rdf.firstChild; - while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') { - rdf = rdf.nextSibling; - } - } - - var nodeName = (rdf) ? rdf.nodeName.toLowerCase() : null; - if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) { - return; - } - - var children = rdf.childNodes, desc, entry, name, i, ii, length, iLength; - for (i = 0, length = children.length; i < length; i++) { - desc = children[i]; - if (desc.nodeName.toLowerCase() !== 'rdf:description') { - continue; - } - - for (ii = 0, iLength = desc.childNodes.length; ii < iLength; ii++) { - if (desc.childNodes[ii].nodeName.toLowerCase() !== '#text') { - entry = desc.childNodes[ii]; - name = entry.nodeName.toLowerCase(); - this.metadata[name] = entry.textContent.trim(); - } - } - } - }, - - get: function Metadata_get(name) { - return this.metadata[name] || null; - }, - - has: function Metadata_has(name) { - return typeof this.metadata[name] !== 'undefined'; - } - }; - - return Metadata; -})(); - - -// contexts store most of the state we need natively. -// However, PDF needs a bit more state, which we store here. - -// Minimal font size that would be used during canvas fillText operations. -var MIN_FONT_SIZE = 16; -// Maximum font size that would be used during canvas fillText operations. -var MAX_FONT_SIZE = 100; -var MAX_GROUP_SIZE = 4096; - -// Heuristic value used when enforcing minimum line widths. -var MIN_WIDTH_FACTOR = 0.65; - -var COMPILE_TYPE3_GLYPHS = true; -var MAX_SIZE_TO_COMPILE = 1000; - -var FULL_CHUNK_HEIGHT = 16; - -function createScratchCanvas(width, height) { - var canvas = document.createElement('canvas'); - canvas.width = width; - canvas.height = height; - return canvas; -} - -function addContextCurrentTransform(ctx) { - // If the context doesn't expose a `mozCurrentTransform`, add a JS based one. - if (!ctx.mozCurrentTransform) { - ctx._originalSave = ctx.save; - ctx._originalRestore = ctx.restore; - ctx._originalRotate = ctx.rotate; - ctx._originalScale = ctx.scale; - ctx._originalTranslate = ctx.translate; - ctx._originalTransform = ctx.transform; - ctx._originalSetTransform = ctx.setTransform; - - ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; - ctx._transformStack = []; - - Object.defineProperty(ctx, 'mozCurrentTransform', { - get: function getCurrentTransform() { - return this._transformMatrix; - } - }); - - Object.defineProperty(ctx, 'mozCurrentTransformInverse', { - get: function getCurrentTransformInverse() { - // Calculation done using WolframAlpha: - // http://www.wolframalpha.com/input/? - // i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}} - - var m = this._transformMatrix; - var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5]; - - var ad_bc = a * d - b * c; - var bc_ad = b * c - a * d; - - return [ - d / ad_bc, - b / bc_ad, - c / bc_ad, - a / ad_bc, - (d * e - c * f) / bc_ad, - (b * e - a * f) / ad_bc - ]; - } - }); - - ctx.save = function ctxSave() { - var old = this._transformMatrix; - this._transformStack.push(old); - this._transformMatrix = old.slice(0, 6); - - this._originalSave(); - }; - - ctx.restore = function ctxRestore() { - var prev = this._transformStack.pop(); - if (prev) { - this._transformMatrix = prev; - this._originalRestore(); - } - }; - - ctx.translate = function ctxTranslate(x, y) { - var m = this._transformMatrix; - m[4] = m[0] * x + m[2] * y + m[4]; - m[5] = m[1] * x + m[3] * y + m[5]; - - this._originalTranslate(x, y); - }; - - ctx.scale = function ctxScale(x, y) { - var m = this._transformMatrix; - m[0] = m[0] * x; - m[1] = m[1] * x; - m[2] = m[2] * y; - m[3] = m[3] * y; - - this._originalScale(x, y); - }; - - ctx.transform = function ctxTransform(a, b, c, d, e, f) { - var m = this._transformMatrix; - this._transformMatrix = [ - m[0] * a + m[2] * b, - m[1] * a + m[3] * b, - m[0] * c + m[2] * d, - m[1] * c + m[3] * d, - m[0] * e + m[2] * f + m[4], - m[1] * e + m[3] * f + m[5] - ]; - - ctx._originalTransform(a, b, c, d, e, f); - }; - - ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { - this._transformMatrix = [a, b, c, d, e, f]; - - ctx._originalSetTransform(a, b, c, d, e, f); - }; - - ctx.rotate = function ctxRotate(angle) { - var cosValue = Math.cos(angle); - var sinValue = Math.sin(angle); - - var m = this._transformMatrix; - this._transformMatrix = [ - m[0] * cosValue + m[2] * sinValue, - m[1] * cosValue + m[3] * sinValue, - m[0] * (-sinValue) + m[2] * cosValue, - m[1] * (-sinValue) + m[3] * cosValue, - m[4], - m[5] - ]; - - this._originalRotate(angle); - }; - } -} - -var CachedCanvases = (function CachedCanvasesClosure() { - var cache = {}; - return { - getCanvas: function CachedCanvases_getCanvas(id, width, height, - trackTransform) { - var canvasEntry; - if (cache[id] !== undefined) { - canvasEntry = cache[id]; - canvasEntry.canvas.width = width; - canvasEntry.canvas.height = height; - // reset canvas transform for emulated mozCurrentTransform, if needed - canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); - } else { - var canvas = createScratchCanvas(width, height); - var ctx = canvas.getContext('2d'); - if (trackTransform) { - addContextCurrentTransform(ctx); - } - cache[id] = canvasEntry = {canvas: canvas, context: ctx}; - } - return canvasEntry; - }, - clear: function () { - for (var id in cache) { - var canvasEntry = cache[id]; - // Zeroing the width and height causes Firefox to release graphics - // resources immediately, which can greatly reduce memory consumption. - canvasEntry.canvas.width = 0; - canvasEntry.canvas.height = 0; - delete cache[id]; - } - } - }; -})(); - -function compileType3Glyph(imgData) { - var POINT_TO_PROCESS_LIMIT = 1000; - - var width = imgData.width, height = imgData.height; - var i, j, j0, width1 = width + 1; - var points = new Uint8Array(width1 * (height + 1)); - var POINT_TYPES = - new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); - - // decodes bit-packed mask data - var lineSize = (width + 7) & ~7, data0 = imgData.data; - var data = new Uint8Array(lineSize * height), pos = 0, ii; - for (i = 0, ii = data0.length; i < ii; i++) { - var mask = 128, elem = data0[i]; - while (mask > 0) { - data[pos++] = (elem & mask) ? 0 : 255; - mask >>= 1; - } - } - - // finding iteresting points: every point is located between mask pixels, - // so there will be points of the (width + 1)x(height + 1) grid. Every point - // will have flags assigned based on neighboring mask pixels: - // 4 | 8 - // --P-- - // 2 | 1 - // We are interested only in points with the flags: - // - outside corners: 1, 2, 4, 8; - // - inside corners: 7, 11, 13, 14; - // - and, intersections: 5, 10. - var count = 0; - pos = 0; - if (data[pos] !== 0) { - points[0] = 1; - ++count; - } - for (j = 1; j < width; j++) { - if (data[pos] !== data[pos + 1]) { - points[j] = data[pos] ? 2 : 1; - ++count; - } - pos++; - } - if (data[pos] !== 0) { - points[j] = 2; - ++count; - } - for (i = 1; i < height; i++) { - pos = i * lineSize; - j0 = i * width1; - if (data[pos - lineSize] !== data[pos]) { - points[j0] = data[pos] ? 1 : 8; - ++count; - } - // 'sum' is the position of the current pixel configuration in the 'TYPES' - // array (in order 8-1-2-4, so we can use '>>2' to shift the column). - var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); - for (j = 1; j < width; j++) { - sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + - (data[pos - lineSize + 1] ? 8 : 0); - if (POINT_TYPES[sum]) { - points[j0 + j] = POINT_TYPES[sum]; - ++count; - } - pos++; - } - if (data[pos - lineSize] !== data[pos]) { - points[j0 + j] = data[pos] ? 2 : 4; - ++count; - } - - if (count > POINT_TO_PROCESS_LIMIT) { - return null; - } - } - - pos = lineSize * (height - 1); - j0 = i * width1; - if (data[pos] !== 0) { - points[j0] = 8; - ++count; - } - for (j = 1; j < width; j++) { - if (data[pos] !== data[pos + 1]) { - points[j0 + j] = data[pos] ? 4 : 8; - ++count; - } - pos++; - } - if (data[pos] !== 0) { - points[j0 + j] = 4; - ++count; - } - if (count > POINT_TO_PROCESS_LIMIT) { - return null; - } - - // building outlines - var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); - var outlines = []; - for (i = 0; count && i <= height; i++) { - var p = i * width1; - var end = p + width; - while (p < end && !points[p]) { - p++; - } - if (p === end) { - continue; - } - var coords = [p % width1, i]; - - var type = points[p], p0 = p, pp; - do { - var step = steps[type]; - do { - p += step; - } while (!points[p]); - - pp = points[p]; - if (pp !== 5 && pp !== 10) { - // set new direction - type = pp; - // delete mark - points[p] = 0; - } else { // type is 5 or 10, ie, a crossing - // set new direction - type = pp & ((0x33 * type) >> 4); - // set new type for "future hit" - points[p] &= (type >> 2 | type << 2); - } - - coords.push(p % width1); - coords.push((p / width1) | 0); - --count; - } while (p0 !== p); - outlines.push(coords); - --i; - } - - var drawOutline = function(c) { - c.save(); - // the path shall be painted in [0..1]x[0..1] space - c.scale(1 / width, -1 / height); - c.translate(0, -height); - c.beginPath(); - for (var i = 0, ii = outlines.length; i < ii; i++) { - var o = outlines[i]; - c.moveTo(o[0], o[1]); - for (var j = 2, jj = o.length; j < jj; j += 2) { - c.lineTo(o[j], o[j+1]); - } - } - c.fill(); - c.beginPath(); - c.restore(); - }; - - return drawOutline; -} - -var CanvasExtraState = (function CanvasExtraStateClosure() { - function CanvasExtraState(old) { - // Are soft masks and alpha values shapes or opacities? - this.alphaIsShape = false; - this.fontSize = 0; - this.fontSizeScale = 1; - this.textMatrix = IDENTITY_MATRIX; - this.textMatrixScale = 1; - this.fontMatrix = FONT_IDENTITY_MATRIX; - this.leading = 0; - // Current point (in user coordinates) - this.x = 0; - this.y = 0; - // Start of text line (in text coordinates) - this.lineX = 0; - this.lineY = 0; - // Character and word spacing - this.charSpacing = 0; - this.wordSpacing = 0; - this.textHScale = 1; - this.textRenderingMode = TextRenderingMode.FILL; - this.textRise = 0; - // Default fore and background colors - this.fillColor = '#000000'; - this.strokeColor = '#000000'; - this.patternFill = false; - // Note: fill alpha applies to all non-stroking operations - this.fillAlpha = 1; - this.strokeAlpha = 1; - this.lineWidth = 1; - this.activeSMask = null; // nonclonable field (see the save method below) - - this.old = old; - } - - CanvasExtraState.prototype = { - clone: function CanvasExtraState_clone() { - return Object.create(this); - }, - setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) { - this.x = x; - this.y = y; - } - }; - return CanvasExtraState; -})(); - -var CanvasGraphics = (function CanvasGraphicsClosure() { - // Defines the time the executeOperatorList is going to be executing - // before it stops and shedules a continue of execution. - var EXECUTION_TIME = 15; - // Defines the number of steps before checking the execution time - var EXECUTION_STEPS = 10; - - function CanvasGraphics(canvasCtx, commonObjs, objs, imageLayer) { - this.ctx = canvasCtx; - this.current = new CanvasExtraState(); - this.stateStack = []; - this.pendingClip = null; - this.pendingEOFill = false; - this.res = null; - this.xobjs = null; - this.commonObjs = commonObjs; - this.objs = objs; - this.imageLayer = imageLayer; - this.groupStack = []; - this.processingType3 = null; - // Patterns are painted relative to the initial page/form transform, see pdf - // spec 8.7.2 NOTE 1. - this.baseTransform = null; - this.baseTransformStack = []; - this.groupLevel = 0; - this.smaskStack = []; - this.smaskCounter = 0; - this.tempSMask = null; - if (canvasCtx) { - // NOTE: if mozCurrentTransform is polyfilled, then the current state of - // the transformation must already be set in canvasCtx._transformMatrix. - addContextCurrentTransform(canvasCtx); - } - this.cachedGetSinglePixelWidth = null; - } - - function putBinaryImageData(ctx, imgData) { - if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) { - ctx.putImageData(imgData, 0, 0); - return; - } - - // Put the image data to the canvas in chunks, rather than putting the - // whole image at once. This saves JS memory, because the ImageData object - // is smaller. It also possibly saves C++ memory within the implementation - // of putImageData(). (E.g. in Firefox we make two short-lived copies of - // the data passed to putImageData()). |n| shouldn't be too small, however, - // because too many putImageData() calls will slow things down. - // - // Note: as written, if the last chunk is partial, the putImageData() call - // will (conceptually) put pixels past the bounds of the canvas. But - // that's ok; any such pixels are ignored. - - var height = imgData.height, width = imgData.width; - var partialChunkHeight = height % FULL_CHUNK_HEIGHT; - var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; - var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; - - var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); - var srcPos = 0, destPos; - var src = imgData.data; - var dest = chunkImgData.data; - var i, j, thisChunkHeight, elemsInThisChunk; - - // There are multiple forms in which the pixel data can be passed, and - // imgData.kind tells us which one this is. - if (imgData.kind === ImageKind.GRAYSCALE_1BPP) { - // Grayscale, 1 bit per pixel (i.e. black-and-white). - var srcLength = src.byteLength; - var dest32 = PDFJS.hasCanvasTypedArrays ? new Uint32Array(dest.buffer) : - new Uint32ArrayView(dest); - var dest32DataLength = dest32.length; - var fullSrcDiff = (width + 7) >> 3; - var white = 0xFFFFFFFF; - var black = (PDFJS.isLittleEndian || !PDFJS.hasCanvasTypedArrays) ? - 0xFF000000 : 0x000000FF; - for (i = 0; i < totalChunks; i++) { - thisChunkHeight = - (i < fullChunks) ? FULL_CHUNK_HEIGHT : partialChunkHeight; - destPos = 0; - for (j = 0; j < thisChunkHeight; j++) { - var srcDiff = srcLength - srcPos; - var k = 0; - var kEnd = (srcDiff > fullSrcDiff) ? width : srcDiff * 8 - 7; - var kEndUnrolled = kEnd & ~7; - var mask = 0; - var srcByte = 0; - for (; k < kEndUnrolled; k += 8) { - srcByte = src[srcPos++]; - dest32[destPos++] = (srcByte & 128) ? white : black; - dest32[destPos++] = (srcByte & 64) ? white : black; - dest32[destPos++] = (srcByte & 32) ? white : black; - dest32[destPos++] = (srcByte & 16) ? white : black; - dest32[destPos++] = (srcByte & 8) ? white : black; - dest32[destPos++] = (srcByte & 4) ? white : black; - dest32[destPos++] = (srcByte & 2) ? white : black; - dest32[destPos++] = (srcByte & 1) ? white : black; - } - for (; k < kEnd; k++) { - if (mask === 0) { - srcByte = src[srcPos++]; - mask = 128; - } - - dest32[destPos++] = (srcByte & mask) ? white : black; - mask >>= 1; - } - } - // We ran out of input. Make all remaining pixels transparent. - while (destPos < dest32DataLength) { - dest32[destPos++] = 0; - } - - ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); - } - } else if (imgData.kind === ImageKind.RGBA_32BPP) { - // RGBA, 32-bits per pixel. - - j = 0; - elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; - for (i = 0; i < fullChunks; i++) { - dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); - srcPos += elemsInThisChunk; - - ctx.putImageData(chunkImgData, 0, j); - j += FULL_CHUNK_HEIGHT; - } - if (i < totalChunks) { - elemsInThisChunk = width * partialChunkHeight * 4; - dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); - ctx.putImageData(chunkImgData, 0, j); - } - - } else if (imgData.kind === ImageKind.RGB_24BPP) { - // RGB, 24-bits per pixel. - thisChunkHeight = FULL_CHUNK_HEIGHT; - elemsInThisChunk = width * thisChunkHeight; - for (i = 0; i < totalChunks; i++) { - if (i >= fullChunks) { - thisChunkHeight = partialChunkHeight; - elemsInThisChunk = width * thisChunkHeight; - } - - destPos = 0; - for (j = elemsInThisChunk; j--;) { - dest[destPos++] = src[srcPos++]; - dest[destPos++] = src[srcPos++]; - dest[destPos++] = src[srcPos++]; - dest[destPos++] = 255; - } - ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); - } - } else { - error('bad image kind: ' + imgData.kind); - } - } - - function putBinaryImageMask(ctx, imgData) { - var height = imgData.height, width = imgData.width; - var partialChunkHeight = height % FULL_CHUNK_HEIGHT; - var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; - var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; - - var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); - var srcPos = 0; - var src = imgData.data; - var dest = chunkImgData.data; - - for (var i = 0; i < totalChunks; i++) { - var thisChunkHeight = - (i < fullChunks) ? FULL_CHUNK_HEIGHT : partialChunkHeight; - - // Expand the mask so it can be used by the canvas. Any required - // inversion has already been handled. - var destPos = 3; // alpha component offset - for (var j = 0; j < thisChunkHeight; j++) { - var mask = 0; - for (var k = 0; k < width; k++) { - if (!mask) { - var elem = src[srcPos++]; - mask = 128; - } - dest[destPos] = (elem & mask) ? 0 : 255; - destPos += 4; - mask >>= 1; - } - } - ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); - } - } - - function copyCtxState(sourceCtx, destCtx) { - var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', - 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', - 'globalCompositeOperation', 'font']; - for (var i = 0, ii = properties.length; i < ii; i++) { - var property = properties[i]; - if (sourceCtx[property] !== undefined) { - destCtx[property] = sourceCtx[property]; - } - } - if (sourceCtx.setLineDash !== undefined) { - destCtx.setLineDash(sourceCtx.getLineDash()); - destCtx.lineDashOffset = sourceCtx.lineDashOffset; - } else if (sourceCtx.mozDashOffset !== undefined) { - destCtx.mozDash = sourceCtx.mozDash; - destCtx.mozDashOffset = sourceCtx.mozDashOffset; - } - } - - function composeSMaskBackdrop(bytes, r0, g0, b0) { - var length = bytes.length; - for (var i = 3; i < length; i += 4) { - var alpha = bytes[i]; - if (alpha === 0) { - bytes[i - 3] = r0; - bytes[i - 2] = g0; - bytes[i - 1] = b0; - } else if (alpha < 255) { - var alpha_ = 255 - alpha; - bytes[i - 3] = (bytes[i - 3] * alpha + r0 * alpha_) >> 8; - bytes[i - 2] = (bytes[i - 2] * alpha + g0 * alpha_) >> 8; - bytes[i - 1] = (bytes[i - 1] * alpha + b0 * alpha_) >> 8; - } - } - } - - function composeSMaskAlpha(maskData, layerData) { - var length = maskData.length; - var scale = 1 / 255; - for (var i = 3; i < length; i += 4) { - var alpha = maskData[i]; - layerData[i] = (layerData[i] * alpha * scale) | 0; - } - } - - function composeSMaskLuminosity(maskData, layerData) { - var length = maskData.length; - for (var i = 3; i < length; i += 4) { - var y = (maskData[i - 3] * 77) + // * 0.3 / 255 * 0x10000 - (maskData[i - 2] * 152) + // * 0.59 .... - (maskData[i - 1] * 28); // * 0.11 .... - layerData[i] = (layerData[i] * y) >> 16; - } - } - - function genericComposeSMask(maskCtx, layerCtx, width, height, - subtype, backdrop) { - var hasBackdrop = !!backdrop; - var r0 = hasBackdrop ? backdrop[0] : 0; - var g0 = hasBackdrop ? backdrop[1] : 0; - var b0 = hasBackdrop ? backdrop[2] : 0; - - var composeFn; - if (subtype === 'Luminosity') { - composeFn = composeSMaskLuminosity; - } else { - composeFn = composeSMaskAlpha; - } - - // processing image in chunks to save memory - var PIXELS_TO_PROCESS = 1048576; - var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); - for (var row = 0; row < height; row += chunkSize) { - var chunkHeight = Math.min(chunkSize, height - row); - var maskData = maskCtx.getImageData(0, row, width, chunkHeight); - var layerData = layerCtx.getImageData(0, row, width, chunkHeight); - - if (hasBackdrop) { - composeSMaskBackdrop(maskData.data, r0, g0, b0); - } - composeFn(maskData.data, layerData.data); - - maskCtx.putImageData(layerData, 0, row); - } - } - - function composeSMask(ctx, smask, layerCtx) { - var mask = smask.canvas; - var maskCtx = smask.context; - - ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, - smask.offsetX, smask.offsetY); - - var backdrop = smask.backdrop || null; - if (WebGLUtils.isEnabled) { - var composed = WebGLUtils.composeSMask(layerCtx.canvas, mask, - {subtype: smask.subtype, backdrop: backdrop}); - ctx.setTransform(1, 0, 0, 1, 0, 0); - ctx.drawImage(composed, smask.offsetX, smask.offsetY); - return; - } - genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, - smask.subtype, backdrop); - ctx.drawImage(mask, 0, 0); - } - - var LINE_CAP_STYLES = ['butt', 'round', 'square']; - var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; - var NORMAL_CLIP = {}; - var EO_CLIP = {}; - - CanvasGraphics.prototype = { - - beginDrawing: function CanvasGraphics_beginDrawing(viewport, transparency) { - // For pdfs that use blend modes we have to clear the canvas else certain - // blend modes can look wrong since we'd be blending with a white - // backdrop. The problem with a transparent backdrop though is we then - // don't get sub pixel anti aliasing on text, so we fill with white if - // we can. - var width = this.ctx.canvas.width; - var height = this.ctx.canvas.height; - if (transparency) { - this.ctx.clearRect(0, 0, width, height); - } else { - this.ctx.mozOpaque = true; - this.ctx.save(); - this.ctx.fillStyle = 'rgb(255, 255, 255)'; - this.ctx.fillRect(0, 0, width, height); - this.ctx.restore(); - } - - var transform = viewport.transform; - - this.ctx.save(); - this.ctx.transform.apply(this.ctx, transform); - - this.baseTransform = this.ctx.mozCurrentTransform.slice(); - - if (this.imageLayer) { - this.imageLayer.beginLayout(); - } - }, - - executeOperatorList: function CanvasGraphics_executeOperatorList( - operatorList, - executionStartIdx, continueCallback, - stepper) { - var argsArray = operatorList.argsArray; - var fnArray = operatorList.fnArray; - var i = executionStartIdx || 0; - var argsArrayLen = argsArray.length; - - // Sometimes the OperatorList to execute is empty. - if (argsArrayLen === i) { - return i; - } - - var chunkOperations = (argsArrayLen - i > EXECUTION_STEPS && - typeof continueCallback === 'function'); - var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; - var steps = 0; - - var commonObjs = this.commonObjs; - var objs = this.objs; - var fnId; - - while (true) { - if (stepper !== undefined && i === stepper.nextBreakPoint) { - stepper.breakIt(i, continueCallback); - return i; - } - - fnId = fnArray[i]; - - if (fnId !== OPS.dependency) { - this[fnId].apply(this, argsArray[i]); - } else { - var deps = argsArray[i]; - for (var n = 0, nn = deps.length; n < nn; n++) { - var depObjId = deps[n]; - var common = depObjId[0] === 'g' && depObjId[1] === '_'; - var objsPool = common ? commonObjs : objs; - - // If the promise isn't resolved yet, add the continueCallback - // to the promise and bail out. - if (!objsPool.isResolved(depObjId)) { - objsPool.get(depObjId, continueCallback); - return i; - } - } - } - - i++; - - // If the entire operatorList was executed, stop as were done. - if (i === argsArrayLen) { - return i; - } - - // If the execution took longer then a certain amount of time and - // `continueCallback` is specified, interrupt the execution. - if (chunkOperations && ++steps > EXECUTION_STEPS) { - if (Date.now() > endTime) { - continueCallback(); - return i; - } - steps = 0; - } - - // If the operatorList isn't executed completely yet OR the execution - // time was short enough, do another execution round. - } - }, - - endDrawing: function CanvasGraphics_endDrawing() { - this.ctx.restore(); - CachedCanvases.clear(); - WebGLUtils.clear(); - - if (this.imageLayer) { - this.imageLayer.endLayout(); - } - }, - - // Graphics state - setLineWidth: function CanvasGraphics_setLineWidth(width) { - this.current.lineWidth = width; - this.ctx.lineWidth = width; - }, - setLineCap: function CanvasGraphics_setLineCap(style) { - this.ctx.lineCap = LINE_CAP_STYLES[style]; - }, - setLineJoin: function CanvasGraphics_setLineJoin(style) { - this.ctx.lineJoin = LINE_JOIN_STYLES[style]; - }, - setMiterLimit: function CanvasGraphics_setMiterLimit(limit) { - this.ctx.miterLimit = limit; - }, - setDash: function CanvasGraphics_setDash(dashArray, dashPhase) { - var ctx = this.ctx; - if (ctx.setLineDash !== undefined) { - ctx.setLineDash(dashArray); - ctx.lineDashOffset = dashPhase; - } else { - ctx.mozDash = dashArray; - ctx.mozDashOffset = dashPhase; - } - }, - setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) { - // Maybe if we one day fully support color spaces this will be important - // for now we can ignore. - // TODO set rendering intent? - }, - setFlatness: function CanvasGraphics_setFlatness(flatness) { - // There's no way to control this with canvas, but we can safely ignore. - // TODO set flatness? - }, - setGState: function CanvasGraphics_setGState(states) { - for (var i = 0, ii = states.length; i < ii; i++) { - var state = states[i]; - var key = state[0]; - var value = state[1]; - - switch (key) { - case 'LW': - this.setLineWidth(value); - break; - case 'LC': - this.setLineCap(value); - break; - case 'LJ': - this.setLineJoin(value); - break; - case 'ML': - this.setMiterLimit(value); - break; - case 'D': - this.setDash(value[0], value[1]); - break; - case 'RI': - this.setRenderingIntent(value); - break; - case 'FL': - this.setFlatness(value); - break; - case 'Font': - this.setFont(value[0], value[1]); - break; - case 'CA': - this.current.strokeAlpha = state[1]; - break; - case 'ca': - this.current.fillAlpha = state[1]; - this.ctx.globalAlpha = state[1]; - break; - case 'BM': - if (value && value.name && (value.name !== 'Normal')) { - var mode = value.name.replace(/([A-Z])/g, - function(c) { - return '-' + c.toLowerCase(); - } - ).substring(1); - this.ctx.globalCompositeOperation = mode; - if (this.ctx.globalCompositeOperation !== mode) { - warn('globalCompositeOperation "' + mode + - '" is not supported'); - } - } else { - this.ctx.globalCompositeOperation = 'source-over'; - } - break; - case 'SMask': - if (this.current.activeSMask) { - this.endSMaskGroup(); - } - this.current.activeSMask = value ? this.tempSMask : null; - if (this.current.activeSMask) { - this.beginSMaskGroup(); - } - this.tempSMask = null; - break; - } - } - }, - beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() { - - var activeSMask = this.current.activeSMask; - var drawnWidth = activeSMask.canvas.width; - var drawnHeight = activeSMask.canvas.height; - var cacheId = 'smaskGroupAt' + this.groupLevel; - var scratchCanvas = CachedCanvases.getCanvas( - cacheId, drawnWidth, drawnHeight, true); - - var currentCtx = this.ctx; - var currentTransform = currentCtx.mozCurrentTransform; - this.ctx.save(); - - var groupCtx = scratchCanvas.context; - groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY); - groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY); - groupCtx.transform.apply(groupCtx, currentTransform); - - copyCtxState(currentCtx, groupCtx); - this.ctx = groupCtx; - this.setGState([ - ['BM', 'Normal'], - ['ca', 1], - ['CA', 1] - ]); - this.groupStack.push(currentCtx); - this.groupLevel++; - }, - endSMaskGroup: function CanvasGraphics_endSMaskGroup() { - var groupCtx = this.ctx; - this.groupLevel--; - this.ctx = this.groupStack.pop(); - - composeSMask(this.ctx, this.current.activeSMask, groupCtx); - this.ctx.restore(); - }, - save: function CanvasGraphics_save() { - this.ctx.save(); - var old = this.current; - this.stateStack.push(old); - this.current = old.clone(); - this.current.activeSMask = null; - }, - restore: function CanvasGraphics_restore() { - if (this.stateStack.length !== 0) { - if (this.current.activeSMask !== null) { - this.endSMaskGroup(); - } - - this.current = this.stateStack.pop(); - this.ctx.restore(); - - this.cachedGetSinglePixelWidth = null; - } - }, - transform: function CanvasGraphics_transform(a, b, c, d, e, f) { - this.ctx.transform(a, b, c, d, e, f); - - this.cachedGetSinglePixelWidth = null; - }, - - // Path - constructPath: function CanvasGraphics_constructPath(ops, args) { - var ctx = this.ctx; - var current = this.current; - var x = current.x, y = current.y; - for (var i = 0, j = 0, ii = ops.length; i < ii; i++) { - switch (ops[i] | 0) { - case OPS.rectangle: - x = args[j++]; - y = args[j++]; - var width = args[j++]; - var height = args[j++]; - if (width === 0) { - width = this.getSinglePixelWidth(); - } - if (height === 0) { - height = this.getSinglePixelWidth(); - } - var xw = x + width; - var yh = y + height; - this.ctx.moveTo(x, y); - this.ctx.lineTo(xw, y); - this.ctx.lineTo(xw, yh); - this.ctx.lineTo(x, yh); - this.ctx.lineTo(x, y); - this.ctx.closePath(); - break; - case OPS.moveTo: - x = args[j++]; - y = args[j++]; - ctx.moveTo(x, y); - break; - case OPS.lineTo: - x = args[j++]; - y = args[j++]; - ctx.lineTo(x, y); - break; - case OPS.curveTo: - x = args[j + 4]; - y = args[j + 5]; - ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], - x, y); - j += 6; - break; - case OPS.curveTo2: - ctx.bezierCurveTo(x, y, args[j], args[j + 1], - args[j + 2], args[j + 3]); - x = args[j + 2]; - y = args[j + 3]; - j += 4; - break; - case OPS.curveTo3: - x = args[j + 2]; - y = args[j + 3]; - ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); - j += 4; - break; - case OPS.closePath: - ctx.closePath(); - break; - } - } - current.setCurrentPoint(x, y); - }, - closePath: function CanvasGraphics_closePath() { - this.ctx.closePath(); - }, - stroke: function CanvasGraphics_stroke(consumePath) { - consumePath = typeof consumePath !== 'undefined' ? consumePath : true; - var ctx = this.ctx; - var strokeColor = this.current.strokeColor; - // Prevent drawing too thin lines by enforcing a minimum line width. - ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, - this.current.lineWidth); - // For stroke we want to temporarily change the global alpha to the - // stroking alpha. - ctx.globalAlpha = this.current.strokeAlpha; - if (strokeColor && strokeColor.hasOwnProperty('type') && - strokeColor.type === 'Pattern') { - // for patterns, we transform to pattern space, calculate - // the pattern, call stroke, and restore to user space - ctx.save(); - ctx.strokeStyle = strokeColor.getPattern(ctx, this); - ctx.stroke(); - ctx.restore(); - } else { - ctx.stroke(); - } - if (consumePath) { - this.consumePath(); - } - // Restore the global alpha to the fill alpha - ctx.globalAlpha = this.current.fillAlpha; - }, - closeStroke: function CanvasGraphics_closeStroke() { - this.closePath(); - this.stroke(); - }, - fill: function CanvasGraphics_fill(consumePath) { - consumePath = typeof consumePath !== 'undefined' ? consumePath : true; - var ctx = this.ctx; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - var needRestore = false; - - if (isPatternFill) { - ctx.save(); - ctx.fillStyle = fillColor.getPattern(ctx, this); - needRestore = true; - } - - if (this.pendingEOFill) { - if (ctx.mozFillRule !== undefined) { - ctx.mozFillRule = 'evenodd'; - ctx.fill(); - ctx.mozFillRule = 'nonzero'; - } else { - try { - ctx.fill('evenodd'); - } catch (ex) { - // shouldn't really happen, but browsers might think differently - ctx.fill(); - } - } - this.pendingEOFill = false; - } else { - ctx.fill(); - } - - if (needRestore) { - ctx.restore(); - } - if (consumePath) { - this.consumePath(); - } - }, - eoFill: function CanvasGraphics_eoFill() { - this.pendingEOFill = true; - this.fill(); - }, - fillStroke: function CanvasGraphics_fillStroke() { - this.fill(false); - this.stroke(false); - - this.consumePath(); - }, - eoFillStroke: function CanvasGraphics_eoFillStroke() { - this.pendingEOFill = true; - this.fillStroke(); - }, - closeFillStroke: function CanvasGraphics_closeFillStroke() { - this.closePath(); - this.fillStroke(); - }, - closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { - this.pendingEOFill = true; - this.closePath(); - this.fillStroke(); - }, - endPath: function CanvasGraphics_endPath() { - this.consumePath(); - }, - - // Clipping - clip: function CanvasGraphics_clip() { - this.pendingClip = NORMAL_CLIP; - }, - eoClip: function CanvasGraphics_eoClip() { - this.pendingClip = EO_CLIP; - }, - - // Text - beginText: function CanvasGraphics_beginText() { - this.current.textMatrix = IDENTITY_MATRIX; - this.current.textMatrixScale = 1; - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; - }, - endText: function CanvasGraphics_endText() { - var paths = this.pendingTextPaths; - var ctx = this.ctx; - if (paths === undefined) { - ctx.beginPath(); - return; - } - - ctx.save(); - ctx.beginPath(); - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - ctx.setTransform.apply(ctx, path.transform); - ctx.translate(path.x, path.y); - path.addToPath(ctx, path.fontSize); - } - ctx.restore(); - ctx.clip(); - ctx.beginPath(); - delete this.pendingTextPaths; - }, - setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) { - this.current.charSpacing = spacing; - }, - setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) { - this.current.wordSpacing = spacing; - }, - setHScale: function CanvasGraphics_setHScale(scale) { - this.current.textHScale = scale / 100; - }, - setLeading: function CanvasGraphics_setLeading(leading) { - this.current.leading = -leading; - }, - setFont: function CanvasGraphics_setFont(fontRefName, size) { - var fontObj = this.commonObjs.get(fontRefName); - var current = this.current; - - if (!fontObj) { - error('Can\'t find font for ' + fontRefName); - } - - current.fontMatrix = (fontObj.fontMatrix ? - fontObj.fontMatrix : FONT_IDENTITY_MATRIX); - - // A valid matrix needs all main diagonal elements to be non-zero - // This also ensures we bypass FF bugzilla bug #719844. - if (current.fontMatrix[0] === 0 || - current.fontMatrix[3] === 0) { - warn('Invalid font matrix for font ' + fontRefName); - } - - // The spec for Tf (setFont) says that 'size' specifies the font 'scale', - // and in some docs this can be negative (inverted x-y axes). - if (size < 0) { - size = -size; - current.fontDirection = -1; - } else { - current.fontDirection = 1; - } - - this.current.font = fontObj; - this.current.fontSize = size; - - if (fontObj.isType3Font) { - return; // we don't need ctx.font for Type3 fonts - } - - var name = fontObj.loadedName || 'sans-serif'; - var bold = fontObj.black ? (fontObj.bold ? 'bolder' : 'bold') : - (fontObj.bold ? 'bold' : 'normal'); - - var italic = fontObj.italic ? 'italic' : 'normal'; - var typeface = '"' + name + '", ' + fontObj.fallbackName; - - // Some font backends cannot handle fonts below certain size. - // Keeping the font at minimal size and using the fontSizeScale to change - // the current transformation matrix before the fillText/strokeText. - // See https://bugzilla.mozilla.org/show_bug.cgi?id=726227 - var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : - size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size; - this.current.fontSizeScale = size / browserFontSize; - - var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface; - this.ctx.font = rule; - }, - setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { - this.current.textRenderingMode = mode; - }, - setTextRise: function CanvasGraphics_setTextRise(rise) { - this.current.textRise = rise; - }, - moveText: function CanvasGraphics_moveText(x, y) { - this.current.x = this.current.lineX += x; - this.current.y = this.current.lineY += y; - }, - setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) { - this.setLeading(-y); - this.moveText(x, y); - }, - setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) { - this.current.textMatrix = [a, b, c, d, e, f]; - this.current.textMatrixScale = Math.sqrt(a * a + b * b); - - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; - }, - nextLine: function CanvasGraphics_nextLine() { - this.moveText(0, this.current.leading); - }, - - paintChar: function CanvasGraphics_paintChar(character, x, y) { - var ctx = this.ctx; - var current = this.current; - var font = current.font; - var textRenderingMode = current.textRenderingMode; - var fontSize = current.fontSize / current.fontSizeScale; - var fillStrokeMode = textRenderingMode & - TextRenderingMode.FILL_STROKE_MASK; - var isAddToPathSet = !!(textRenderingMode & - TextRenderingMode.ADD_TO_PATH_FLAG); - - var addToPath; - if (font.disableFontFace || isAddToPathSet) { - addToPath = font.getPathGenerator(this.commonObjs, character); - } - - if (font.disableFontFace) { - ctx.save(); - ctx.translate(x, y); - ctx.beginPath(); - addToPath(ctx, fontSize); - if (fillStrokeMode === TextRenderingMode.FILL || - fillStrokeMode === TextRenderingMode.FILL_STROKE) { - ctx.fill(); - } - if (fillStrokeMode === TextRenderingMode.STROKE || - fillStrokeMode === TextRenderingMode.FILL_STROKE) { - ctx.stroke(); - } - ctx.restore(); - } else { - if (fillStrokeMode === TextRenderingMode.FILL || - fillStrokeMode === TextRenderingMode.FILL_STROKE) { - ctx.fillText(character, x, y); - } - if (fillStrokeMode === TextRenderingMode.STROKE || - fillStrokeMode === TextRenderingMode.FILL_STROKE) { - ctx.strokeText(character, x, y); - } - } - - if (isAddToPathSet) { - var paths = this.pendingTextPaths || (this.pendingTextPaths = []); - paths.push({ - transform: ctx.mozCurrentTransform, - x: x, - y: y, - fontSize: fontSize, - addToPath: addToPath - }); - } - }, - - get isFontSubpixelAAEnabled() { - // Checks if anti-aliasing is enabled when scaled text is painted. - // On Windows GDI scaled fonts looks bad. - var ctx = document.createElement('canvas').getContext('2d'); - ctx.scale(1.5, 1); - ctx.fillText('I', 0, 10); - var data = ctx.getImageData(0, 0, 10, 10).data; - var enabled = false; - for (var i = 3; i < data.length; i += 4) { - if (data[i] > 0 && data[i] < 255) { - enabled = true; - break; - } - } - return shadow(this, 'isFontSubpixelAAEnabled', enabled); - }, - - showText: function CanvasGraphics_showText(glyphs) { - var current = this.current; - var font = current.font; - if (font.isType3Font) { - return this.showType3Text(glyphs); - } - - var fontSize = current.fontSize; - if (fontSize === 0) { - return; - } - - var ctx = this.ctx; - var fontSizeScale = current.fontSizeScale; - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var fontDirection = current.fontDirection; - var textHScale = current.textHScale * fontDirection; - var glyphsLength = glyphs.length; - var vertical = font.vertical; - var defaultVMetrics = font.defaultVMetrics; - var widthAdvanceScale = fontSize * current.fontMatrix[0]; - - var simpleFillText = - current.textRenderingMode === TextRenderingMode.FILL && - !font.disableFontFace; - - ctx.save(); - ctx.transform.apply(ctx, current.textMatrix); - ctx.translate(current.x, current.y + current.textRise); - - if (fontDirection > 0) { - ctx.scale(textHScale, -1); - } else { - ctx.scale(textHScale, 1); - } - - var lineWidth = current.lineWidth; - var scale = current.textMatrixScale; - if (scale === 0 || lineWidth === 0) { - var fillStrokeMode = current.textRenderingMode & - TextRenderingMode.FILL_STROKE_MASK; - if (fillStrokeMode === TextRenderingMode.STROKE || - fillStrokeMode === TextRenderingMode.FILL_STROKE) { - this.cachedGetSinglePixelWidth = null; - lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR; - } - } else { - lineWidth /= scale; - } - - if (fontSizeScale !== 1.0) { - ctx.scale(fontSizeScale, fontSizeScale); - lineWidth /= fontSizeScale; - } - - ctx.lineWidth = lineWidth; - - var x = 0, i; - for (i = 0; i < glyphsLength; ++i) { - var glyph = glyphs[i]; - if (glyph === null) { - // word break - x += fontDirection * wordSpacing; - continue; - } else if (isNum(glyph)) { - x += -glyph * fontSize * 0.001; - continue; - } - - var restoreNeeded = false; - var character = glyph.fontChar; - var accent = glyph.accent; - var scaledX, scaledY, scaledAccentX, scaledAccentY; - var width = glyph.width; - if (vertical) { - var vmetric, vx, vy; - vmetric = glyph.vmetric || defaultVMetrics; - vx = glyph.vmetric ? vmetric[1] : width * 0.5; - vx = -vx * widthAdvanceScale; - vy = vmetric[2] * widthAdvanceScale; - - width = vmetric ? -vmetric[0] : width; - scaledX = vx / fontSizeScale; - scaledY = (x + vy) / fontSizeScale; - } else { - scaledX = x / fontSizeScale; - scaledY = 0; - } - - if (font.remeasure && width > 0 && this.isFontSubpixelAAEnabled) { - // some standard fonts may not have the exact width, trying to - // rescale per character - var measuredWidth = ctx.measureText(character).width * 1000 / - fontSize * fontSizeScale; - var characterScaleX = width / measuredWidth; - restoreNeeded = true; - ctx.save(); - ctx.scale(characterScaleX, 1); - scaledX /= characterScaleX; - } - - if (simpleFillText && !accent) { - // common case - ctx.fillText(character, scaledX, scaledY); - } else { - this.paintChar(character, scaledX, scaledY); - if (accent) { - scaledAccentX = scaledX + accent.offset.x / fontSizeScale; - scaledAccentY = scaledY - accent.offset.y / fontSizeScale; - this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY); - } - } - - var charWidth = width * widthAdvanceScale + charSpacing * fontDirection; - x += charWidth; - - if (restoreNeeded) { - ctx.restore(); - } - } - if (vertical) { - current.y -= x * textHScale; - } else { - current.x += x * textHScale; - } - ctx.restore(); - }, - - showType3Text: function CanvasGraphics_showType3Text(glyphs) { - // Type3 fonts - each glyph is a "mini-PDF" - var ctx = this.ctx; - var current = this.current; - var font = current.font; - var fontSize = current.fontSize; - var fontDirection = current.fontDirection; - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var textHScale = current.textHScale * fontDirection; - var fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX; - var glyphsLength = glyphs.length; - var isTextInvisible = - current.textRenderingMode === TextRenderingMode.INVISIBLE; - var i, glyph, width; - - if (isTextInvisible || fontSize === 0) { - return; - } - - ctx.save(); - ctx.transform.apply(ctx, current.textMatrix); - ctx.translate(current.x, current.y); - - ctx.scale(textHScale, fontDirection); - - for (i = 0; i < glyphsLength; ++i) { - glyph = glyphs[i]; - if (glyph === null) { - // word break - this.ctx.translate(wordSpacing, 0); - current.x += wordSpacing * textHScale; - continue; - } else if (isNum(glyph)) { - var spacingLength = -glyph * 0.001 * fontSize; - this.ctx.translate(spacingLength, 0); - current.x += spacingLength * textHScale; - continue; - } - - var operatorList = font.charProcOperatorList[glyph.operatorListId]; - if (!operatorList) { - warn('Type3 character \"' + glyph.operatorListId + - '\" is not available'); - continue; - } - this.processingType3 = glyph; - this.save(); - ctx.scale(fontSize, fontSize); - ctx.transform.apply(ctx, fontMatrix); - this.executeOperatorList(operatorList); - this.restore(); - - var transformed = Util.applyTransform([glyph.width, 0], fontMatrix); - width = transformed[0] * fontSize + charSpacing; - - ctx.translate(width, 0); - current.x += width * textHScale; - } - ctx.restore(); - this.processingType3 = null; - }, - - // Type3 fonts - setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) { - // We can safely ignore this since the width should be the same - // as the width in the Widths array. - }, - setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, - yWidth, - llx, - lly, - urx, - ury) { - // TODO According to the spec we're also suppose to ignore any operators - // that set color or include images while processing this type3 font. - this.ctx.rect(llx, lly, urx - llx, ury - lly); - this.clip(); - this.endPath(); - }, - - // Color - getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) { - var pattern; - if (IR[0] === 'TilingPattern') { - var color = IR[1]; - pattern = new TilingPattern(IR, color, this.ctx, this.objs, - this.commonObjs, this.baseTransform); - } else { - pattern = getShadingPatternFromIR(IR); - } - return pattern; - }, - setStrokeColorN: function CanvasGraphics_setStrokeColorN(/*...*/) { - this.current.strokeColor = this.getColorN_Pattern(arguments); - }, - setFillColorN: function CanvasGraphics_setFillColorN(/*...*/) { - this.current.fillColor = this.getColorN_Pattern(arguments); - this.current.patternFill = true; - }, - setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { - var color = Util.makeCssRgb(r, g, b); - this.ctx.strokeStyle = color; - this.current.strokeColor = color; - }, - setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { - var color = Util.makeCssRgb(r, g, b); - this.ctx.fillStyle = color; - this.current.fillColor = color; - this.current.patternFill = false; - }, - - shadingFill: function CanvasGraphics_shadingFill(patternIR) { - var ctx = this.ctx; - - this.save(); - var pattern = getShadingPatternFromIR(patternIR); - ctx.fillStyle = pattern.getPattern(ctx, this, true); - - var inv = ctx.mozCurrentTransformInverse; - if (inv) { - var canvas = ctx.canvas; - var width = canvas.width; - var height = canvas.height; - - var bl = Util.applyTransform([0, 0], inv); - var br = Util.applyTransform([0, height], inv); - var ul = Util.applyTransform([width, 0], inv); - var ur = Util.applyTransform([width, height], inv); - - var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); - var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); - var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); - var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); - - this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); - } else { - // HACK to draw the gradient onto an infinite rectangle. - // PDF gradients are drawn across the entire image while - // Canvas only allows gradients to be drawn in a rectangle - // The following bug should allow us to remove this. - // https://bugzilla.mozilla.org/show_bug.cgi?id=664884 - - this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); - } - - this.restore(); - }, - - // Images - beginInlineImage: function CanvasGraphics_beginInlineImage() { - error('Should not call beginInlineImage'); - }, - beginImageData: function CanvasGraphics_beginImageData() { - error('Should not call beginImageData'); - }, - - paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, - bbox) { - this.save(); - this.baseTransformStack.push(this.baseTransform); - - if (isArray(matrix) && 6 === matrix.length) { - this.transform.apply(this, matrix); - } - - this.baseTransform = this.ctx.mozCurrentTransform; - - if (isArray(bbox) && 4 === bbox.length) { - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; - this.ctx.rect(bbox[0], bbox[1], width, height); - this.clip(); - this.endPath(); - } - }, - - paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() { - this.restore(); - this.baseTransform = this.baseTransformStack.pop(); - }, - - beginGroup: function CanvasGraphics_beginGroup(group) { - this.save(); - var currentCtx = this.ctx; - // TODO non-isolated groups - according to Rik at adobe non-isolated - // group results aren't usually that different and they even have tools - // that ignore this setting. Notes from Rik on implmenting: - // - When you encounter an transparency group, create a new canvas with - // the dimensions of the bbox - // - copy the content from the previous canvas to the new canvas - // - draw as usual - // - remove the backdrop alpha: - // alphaNew = 1 - (1 - alpha)/(1 - alphaBackdrop) with 'alpha' the alpha - // value of your transparency group and 'alphaBackdrop' the alpha of the - // backdrop - // - remove background color: - // colorNew = color - alphaNew *colorBackdrop /(1 - alphaNew) - if (!group.isolated) { - info('TODO: Support non-isolated groups.'); - } - - // TODO knockout - supposedly possible with the clever use of compositing - // modes. - if (group.knockout) { - warn('Knockout groups not supported.'); - } - - var currentTransform = currentCtx.mozCurrentTransform; - if (group.matrix) { - currentCtx.transform.apply(currentCtx, group.matrix); - } - assert(group.bbox, 'Bounding box is required.'); - - // Based on the current transform figure out how big the bounding box - // will actually be. - var bounds = Util.getAxialAlignedBoundingBox( - group.bbox, - currentCtx.mozCurrentTransform); - // Clip the bounding box to the current canvas. - var canvasBounds = [0, - 0, - currentCtx.canvas.width, - currentCtx.canvas.height]; - bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; - // Use ceil in case we're between sizes so we don't create canvas that is - // too small and make the canvas at least 1x1 pixels. - var offsetX = Math.floor(bounds[0]); - var offsetY = Math.floor(bounds[1]); - var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); - var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); - var scaleX = 1, scaleY = 1; - if (drawnWidth > MAX_GROUP_SIZE) { - scaleX = drawnWidth / MAX_GROUP_SIZE; - drawnWidth = MAX_GROUP_SIZE; - } - if (drawnHeight > MAX_GROUP_SIZE) { - scaleY = drawnHeight / MAX_GROUP_SIZE; - drawnHeight = MAX_GROUP_SIZE; - } - - var cacheId = 'groupAt' + this.groupLevel; - if (group.smask) { - // Using two cache entries is case if masks are used one after another. - cacheId += '_smask_' + ((this.smaskCounter++) % 2); - } - var scratchCanvas = CachedCanvases.getCanvas( - cacheId, drawnWidth, drawnHeight, true); - var groupCtx = scratchCanvas.context; - - // Since we created a new canvas that is just the size of the bounding box - // we have to translate the group ctx. - groupCtx.scale(1 / scaleX, 1 / scaleY); - groupCtx.translate(-offsetX, -offsetY); - groupCtx.transform.apply(groupCtx, currentTransform); - - if (group.smask) { - // Saving state and cached mask to be used in setGState. - this.smaskStack.push({ - canvas: scratchCanvas.canvas, - context: groupCtx, - offsetX: offsetX, - offsetY: offsetY, - scaleX: scaleX, - scaleY: scaleY, - subtype: group.smask.subtype, - backdrop: group.smask.backdrop - }); - } else { - // Setup the current ctx so when the group is popped we draw it at the - // right location. - currentCtx.setTransform(1, 0, 0, 1, 0, 0); - currentCtx.translate(offsetX, offsetY); - currentCtx.scale(scaleX, scaleY); - } - // The transparency group inherits all off the current graphics state - // except the blend mode, soft mask, and alpha constants. - copyCtxState(currentCtx, groupCtx); - this.ctx = groupCtx; - this.setGState([ - ['BM', 'Normal'], - ['ca', 1], - ['CA', 1] - ]); - this.groupStack.push(currentCtx); - this.groupLevel++; - }, - - endGroup: function CanvasGraphics_endGroup(group) { - this.groupLevel--; - var groupCtx = this.ctx; - this.ctx = this.groupStack.pop(); - // Turn off image smoothing to avoid sub pixel interpolation which can - // look kind of blurry for some pdfs. - if (this.ctx.imageSmoothingEnabled !== undefined) { - this.ctx.imageSmoothingEnabled = false; - } else { - this.ctx.mozImageSmoothingEnabled = false; - } - if (group.smask) { - this.tempSMask = this.smaskStack.pop(); - } else { - this.ctx.drawImage(groupCtx.canvas, 0, 0); - } - this.restore(); - }, - - beginAnnotations: function CanvasGraphics_beginAnnotations() { - this.save(); - this.current = new CanvasExtraState(); - }, - - endAnnotations: function CanvasGraphics_endAnnotations() { - this.restore(); - }, - - beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, - matrix) { - this.save(); - - if (isArray(rect) && 4 === rect.length) { - var width = rect[2] - rect[0]; - var height = rect[3] - rect[1]; - this.ctx.rect(rect[0], rect[1], width, height); - this.clip(); - this.endPath(); - } - - this.transform.apply(this, transform); - this.transform.apply(this, matrix); - }, - - endAnnotation: function CanvasGraphics_endAnnotation() { - this.restore(); - }, - - paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { - var domImage = this.objs.get(objId); - if (!domImage) { - warn('Dependent image isn\'t ready yet'); - return; - } - - this.save(); - - var ctx = this.ctx; - // scale the image to the unit square - ctx.scale(1 / w, -1 / h); - - ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, - 0, -h, w, h); - if (this.imageLayer) { - var currentTransform = ctx.mozCurrentTransformInverse; - var position = this.getCanvasPosition(0, 0); - this.imageLayer.appendImage({ - objId: objId, - left: position[0], - top: position[1], - width: w / currentTransform[0], - height: h / currentTransform[3] - }); - } - this.restore(); - }, - - paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) { - var ctx = this.ctx; - var width = img.width, height = img.height; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - - var glyph = this.processingType3; - - if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) { - if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) { - glyph.compiled = - compileType3Glyph({data: img.data, width: width, height: height}); - } else { - glyph.compiled = null; - } - } - - if (glyph && glyph.compiled) { - glyph.compiled(ctx); - return; - } - - var maskCanvas = CachedCanvases.getCanvas('maskCanvas', width, height); - var maskCtx = maskCanvas.context; - maskCtx.save(); - - putBinaryImageMask(maskCtx, img); - - maskCtx.globalCompositeOperation = 'source-in'; - - maskCtx.fillStyle = isPatternFill ? - fillColor.getPattern(maskCtx, this) : fillColor; - maskCtx.fillRect(0, 0, width, height); - - maskCtx.restore(); - - this.paintInlineImageXObject(maskCanvas.canvas); - }, - - paintImageMaskXObjectRepeat: - function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, - scaleY, positions) { - var width = imgData.width; - var height = imgData.height; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - - var maskCanvas = CachedCanvases.getCanvas('maskCanvas', width, height); - var maskCtx = maskCanvas.context; - maskCtx.save(); - - putBinaryImageMask(maskCtx, imgData); - - maskCtx.globalCompositeOperation = 'source-in'; - - maskCtx.fillStyle = isPatternFill ? - fillColor.getPattern(maskCtx, this) : fillColor; - maskCtx.fillRect(0, 0, width, height); - - maskCtx.restore(); - - var ctx = this.ctx; - for (var i = 0, ii = positions.length; i < ii; i += 2) { - ctx.save(); - ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]); - ctx.scale(1, -1); - ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, - 0, -1, 1, 1); - ctx.restore(); - } - }, - - paintImageMaskXObjectGroup: - function CanvasGraphics_paintImageMaskXObjectGroup(images) { - var ctx = this.ctx; - - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - for (var i = 0, ii = images.length; i < ii; i++) { - var image = images[i]; - var width = image.width, height = image.height; - - var maskCanvas = CachedCanvases.getCanvas('maskCanvas', width, height); - var maskCtx = maskCanvas.context; - maskCtx.save(); - - putBinaryImageMask(maskCtx, image); - - maskCtx.globalCompositeOperation = 'source-in'; - - maskCtx.fillStyle = isPatternFill ? - fillColor.getPattern(maskCtx, this) : fillColor; - maskCtx.fillRect(0, 0, width, height); - - maskCtx.restore(); - - ctx.save(); - ctx.transform.apply(ctx, image.transform); - ctx.scale(1, -1); - ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, - 0, -1, 1, 1); - ctx.restore(); - } - }, - - paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { - var imgData = this.objs.get(objId); - if (!imgData) { - warn('Dependent image isn\'t ready yet'); - return; - } - - this.paintInlineImageXObject(imgData); - }, - - paintImageXObjectRepeat: - function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, - positions) { - var imgData = this.objs.get(objId); - if (!imgData) { - warn('Dependent image isn\'t ready yet'); - return; - } - - var width = imgData.width; - var height = imgData.height; - var map = []; - for (var i = 0, ii = positions.length; i < ii; i += 2) { - map.push({transform: [scaleX, 0, 0, scaleY, positions[i], - positions[i + 1]], x: 0, y: 0, w: width, h: height}); - } - this.paintInlineImageXObjectGroup(imgData, map); - }, - - paintInlineImageXObject: - function CanvasGraphics_paintInlineImageXObject(imgData) { - var width = imgData.width; - var height = imgData.height; - var ctx = this.ctx; - - this.save(); - // scale the image to the unit square - ctx.scale(1 / width, -1 / height); - - var currentTransform = ctx.mozCurrentTransformInverse; - var a = currentTransform[0], b = currentTransform[1]; - var widthScale = Math.max(Math.sqrt(a * a + b * b), 1); - var c = currentTransform[2], d = currentTransform[3]; - var heightScale = Math.max(Math.sqrt(c * c + d * d), 1); - - var imgToPaint, tmpCanvas; - // instanceof HTMLElement does not work in jsdom node.js module - if (imgData instanceof HTMLElement || !imgData.data) { - imgToPaint = imgData; - } else { - tmpCanvas = CachedCanvases.getCanvas('inlineImage', width, height); - var tmpCtx = tmpCanvas.context; - putBinaryImageData(tmpCtx, imgData); - imgToPaint = tmpCanvas.canvas; - } - - var paintWidth = width, paintHeight = height; - var tmpCanvasId = 'prescale1'; - // Vertial or horizontal scaling shall not be more than 2 to not loose the - // pixels during drawImage operation, painting on the temporary canvas(es) - // that are twice smaller in size - while ((widthScale > 2 && paintWidth > 1) || - (heightScale > 2 && paintHeight > 1)) { - var newWidth = paintWidth, newHeight = paintHeight; - if (widthScale > 2 && paintWidth > 1) { - newWidth = Math.ceil(paintWidth / 2); - widthScale /= paintWidth / newWidth; - } - if (heightScale > 2 && paintHeight > 1) { - newHeight = Math.ceil(paintHeight / 2); - heightScale /= paintHeight / newHeight; - } - tmpCanvas = CachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); - tmpCtx = tmpCanvas.context; - tmpCtx.clearRect(0, 0, newWidth, newHeight); - tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, - 0, 0, newWidth, newHeight); - imgToPaint = tmpCanvas.canvas; - paintWidth = newWidth; - paintHeight = newHeight; - tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1'; - } - ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, - 0, -height, width, height); - - if (this.imageLayer) { - var position = this.getCanvasPosition(0, -height); - this.imageLayer.appendImage({ - imgData: imgData, - left: position[0], - top: position[1], - width: width / currentTransform[0], - height: height / currentTransform[3] - }); - } - this.restore(); - }, - - paintInlineImageXObjectGroup: - function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) { - var ctx = this.ctx; - var w = imgData.width; - var h = imgData.height; - - var tmpCanvas = CachedCanvases.getCanvas('inlineImage', w, h); - var tmpCtx = tmpCanvas.context; - putBinaryImageData(tmpCtx, imgData); - - for (var i = 0, ii = map.length; i < ii; i++) { - var entry = map[i]; - ctx.save(); - ctx.transform.apply(ctx, entry.transform); - ctx.scale(1, -1); - ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, - 0, -1, 1, 1); - if (this.imageLayer) { - var position = this.getCanvasPosition(entry.x, entry.y); - this.imageLayer.appendImage({ - imgData: imgData, - left: position[0], - top: position[1], - width: w, - height: h - }); - } - ctx.restore(); - } - }, - - paintSolidColorImageMask: - function CanvasGraphics_paintSolidColorImageMask() { - this.ctx.fillRect(0, 0, 1, 1); - }, - - // Marked content - - markPoint: function CanvasGraphics_markPoint(tag) { - // TODO Marked content. - }, - markPointProps: function CanvasGraphics_markPointProps(tag, properties) { - // TODO Marked content. - }, - beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) { - // TODO Marked content. - }, - beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps( - tag, properties) { - // TODO Marked content. - }, - endMarkedContent: function CanvasGraphics_endMarkedContent() { - // TODO Marked content. - }, - - // Compatibility - - beginCompat: function CanvasGraphics_beginCompat() { - // TODO ignore undefined operators (should we do that anyway?) - }, - endCompat: function CanvasGraphics_endCompat() { - // TODO stop ignoring undefined operators - }, - - // Helper functions - - consumePath: function CanvasGraphics_consumePath() { - var ctx = this.ctx; - if (this.pendingClip) { - if (this.pendingClip === EO_CLIP) { - if (ctx.mozFillRule !== undefined) { - ctx.mozFillRule = 'evenodd'; - ctx.clip(); - ctx.mozFillRule = 'nonzero'; - } else { - try { - ctx.clip('evenodd'); - } catch (ex) { - // shouldn't really happen, but browsers might think differently - ctx.clip(); - } - } - } else { - ctx.clip(); - } - this.pendingClip = null; - } - ctx.beginPath(); - }, - getSinglePixelWidth: function CanvasGraphics_getSinglePixelWidth(scale) { - if (this.cachedGetSinglePixelWidth === null) { - var inverse = this.ctx.mozCurrentTransformInverse; - // max of the current horizontal and vertical scale - this.cachedGetSinglePixelWidth = Math.sqrt(Math.max( - (inverse[0] * inverse[0] + inverse[1] * inverse[1]), - (inverse[2] * inverse[2] + inverse[3] * inverse[3]))); - } - return this.cachedGetSinglePixelWidth; - }, - getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) { - var transform = this.ctx.mozCurrentTransform; - return [ - transform[0] * x + transform[2] * y + transform[4], - transform[1] * x + transform[3] * y + transform[5] - ]; - } - }; - - for (var op in OPS) { - CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op]; - } - - return CanvasGraphics; -})(); - - -var WebGLUtils = (function WebGLUtilsClosure() { - function loadShader(gl, code, shaderType) { - var shader = gl.createShader(shaderType); - gl.shaderSource(shader, code); - gl.compileShader(shader); - var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); - if (!compiled) { - var errorMsg = gl.getShaderInfoLog(shader); - throw new Error('Error during shader compilation: ' + errorMsg); - } - return shader; - } - function createVertexShader(gl, code) { - return loadShader(gl, code, gl.VERTEX_SHADER); - } - function createFragmentShader(gl, code) { - return loadShader(gl, code, gl.FRAGMENT_SHADER); - } - function createProgram(gl, shaders) { - var program = gl.createProgram(); - for (var i = 0, ii = shaders.length; i < ii; ++i) { - gl.attachShader(program, shaders[i]); - } - gl.linkProgram(program); - var linked = gl.getProgramParameter(program, gl.LINK_STATUS); - if (!linked) { - var errorMsg = gl.getProgramInfoLog(program); - throw new Error('Error during program linking: ' + errorMsg); - } - return program; - } - function createTexture(gl, image, textureId) { - gl.activeTexture(textureId); - var texture = gl.createTexture(); - gl.bindTexture(gl.TEXTURE_2D, texture); - - // Set the parameters so we can render any size image. - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); - - // Upload the image into the texture. - gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); - return texture; - } - - var currentGL, currentCanvas; - function generateGL() { - if (currentGL) { - return; - } - currentCanvas = document.createElement('canvas'); - currentGL = currentCanvas.getContext('webgl', - { premultipliedalpha: false }); - } - - var smaskVertexShaderCode = '\ - attribute vec2 a_position; \ - attribute vec2 a_texCoord; \ - \ - uniform vec2 u_resolution; \ - \ - varying vec2 v_texCoord; \ - \ - void main() { \ - vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \ - gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ - \ - v_texCoord = a_texCoord; \ - } '; - - var smaskFragmentShaderCode = '\ - precision mediump float; \ - \ - uniform vec4 u_backdrop; \ - uniform int u_subtype; \ - uniform sampler2D u_image; \ - uniform sampler2D u_mask; \ - \ - varying vec2 v_texCoord; \ - \ - void main() { \ - vec4 imageColor = texture2D(u_image, v_texCoord); \ - vec4 maskColor = texture2D(u_mask, v_texCoord); \ - if (u_backdrop.a > 0.0) { \ - maskColor.rgb = maskColor.rgb * maskColor.a + \ - u_backdrop.rgb * (1.0 - maskColor.a); \ - } \ - float lum; \ - if (u_subtype == 0) { \ - lum = maskColor.a; \ - } else { \ - lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \ - maskColor.b * 0.11; \ - } \ - imageColor.a *= lum; \ - imageColor.rgb *= imageColor.a; \ - gl_FragColor = imageColor; \ - } '; - - var smaskCache = null; - - function initSmaskGL() { - var canvas, gl; - - generateGL(); - canvas = currentCanvas; - currentCanvas = null; - gl = currentGL; - currentGL = null; - - // setup a GLSL program - var vertexShader = createVertexShader(gl, smaskVertexShaderCode); - var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode); - var program = createProgram(gl, [vertexShader, fragmentShader]); - gl.useProgram(program); - - var cache = {}; - cache.gl = gl; - cache.canvas = canvas; - cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); - cache.positionLocation = gl.getAttribLocation(program, 'a_position'); - cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop'); - cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype'); - - var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord'); - var texLayerLocation = gl.getUniformLocation(program, 'u_image'); - var texMaskLocation = gl.getUniformLocation(program, 'u_mask'); - - // provide texture coordinates for the rectangle. - var texCoordBuffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer); - gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ - 0.0, 0.0, - 1.0, 0.0, - 0.0, 1.0, - 0.0, 1.0, - 1.0, 0.0, - 1.0, 1.0]), gl.STATIC_DRAW); - gl.enableVertexAttribArray(texCoordLocation); - gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0); - - gl.uniform1i(texLayerLocation, 0); - gl.uniform1i(texMaskLocation, 1); - - smaskCache = cache; - } - - function composeSMask(layer, mask, properties) { - var width = layer.width, height = layer.height; - - if (!smaskCache) { - initSmaskGL(); - } - var cache = smaskCache,canvas = cache.canvas, gl = cache.gl; - canvas.width = width; - canvas.height = height; - gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); - gl.uniform2f(cache.resolutionLocation, width, height); - - if (properties.backdrop) { - gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], - properties.backdrop[1], properties.backdrop[2], 1); - } else { - gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0); - } - gl.uniform1i(cache.subtypeLocation, - properties.subtype === 'Luminosity' ? 1 : 0); - - // Create a textures - var texture = createTexture(gl, layer, gl.TEXTURE0); - var maskTexture = createTexture(gl, mask, gl.TEXTURE1); - - - // Create a buffer and put a single clipspace rectangle in - // it (2 triangles) - var buffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, buffer); - gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ - 0, 0, - width, 0, - 0, height, - 0, height, - width, 0, - width, height]), gl.STATIC_DRAW); - gl.enableVertexAttribArray(cache.positionLocation); - gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); - - // draw - gl.clearColor(0, 0, 0, 0); - gl.enable(gl.BLEND); - gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); - gl.clear(gl.COLOR_BUFFER_BIT); - - gl.drawArrays(gl.TRIANGLES, 0, 6); - - gl.flush(); - - gl.deleteTexture(texture); - gl.deleteTexture(maskTexture); - gl.deleteBuffer(buffer); - - return canvas; - } - - var figuresVertexShaderCode = '\ - attribute vec2 a_position; \ - attribute vec3 a_color; \ - \ - uniform vec2 u_resolution; \ - uniform vec2 u_scale; \ - uniform vec2 u_offset; \ - \ - varying vec4 v_color; \ - \ - void main() { \ - vec2 position = (a_position + u_offset) * u_scale; \ - vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \ - gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ - \ - v_color = vec4(a_color / 255.0, 1.0); \ - } '; - - var figuresFragmentShaderCode = '\ - precision mediump float; \ - \ - varying vec4 v_color; \ - \ - void main() { \ - gl_FragColor = v_color; \ - } '; - - var figuresCache = null; - - function initFiguresGL() { - var canvas, gl; - - generateGL(); - canvas = currentCanvas; - currentCanvas = null; - gl = currentGL; - currentGL = null; - - // setup a GLSL program - var vertexShader = createVertexShader(gl, figuresVertexShaderCode); - var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode); - var program = createProgram(gl, [vertexShader, fragmentShader]); - gl.useProgram(program); - - var cache = {}; - cache.gl = gl; - cache.canvas = canvas; - cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); - cache.scaleLocation = gl.getUniformLocation(program, 'u_scale'); - cache.offsetLocation = gl.getUniformLocation(program, 'u_offset'); - cache.positionLocation = gl.getAttribLocation(program, 'a_position'); - cache.colorLocation = gl.getAttribLocation(program, 'a_color'); - - figuresCache = cache; - } - - function drawFigures(width, height, backgroundColor, figures, context) { - if (!figuresCache) { - initFiguresGL(); - } - var cache = figuresCache, canvas = cache.canvas, gl = cache.gl; - - canvas.width = width; - canvas.height = height; - gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); - gl.uniform2f(cache.resolutionLocation, width, height); - - // count triangle points - var count = 0; - var i, ii, rows; - for (i = 0, ii = figures.length; i < ii; i++) { - switch (figures[i].type) { - case 'lattice': - rows = (figures[i].coords.length / figures[i].verticesPerRow) | 0; - count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6; - break; - case 'triangles': - count += figures[i].coords.length; - break; - } - } - // transfer data - var coords = new Float32Array(count * 2); - var colors = new Uint8Array(count * 3); - var coordsMap = context.coords, colorsMap = context.colors; - var pIndex = 0, cIndex = 0; - for (i = 0, ii = figures.length; i < ii; i++) { - var figure = figures[i], ps = figure.coords, cs = figure.colors; - switch (figure.type) { - case 'lattice': - var cols = figure.verticesPerRow; - rows = (ps.length / cols) | 0; - for (var row = 1; row < rows; row++) { - var offset = row * cols + 1; - for (var col = 1; col < cols; col++, offset++) { - coords[pIndex] = coordsMap[ps[offset - cols - 1]]; - coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1]; - coords[pIndex + 2] = coordsMap[ps[offset - cols]]; - coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1]; - coords[pIndex + 4] = coordsMap[ps[offset - 1]]; - coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1]; - colors[cIndex] = colorsMap[cs[offset - cols - 1]]; - colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1]; - colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2]; - colors[cIndex + 3] = colorsMap[cs[offset - cols]]; - colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1]; - colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2]; - colors[cIndex + 6] = colorsMap[cs[offset - 1]]; - colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1]; - colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2]; - - coords[pIndex + 6] = coords[pIndex + 2]; - coords[pIndex + 7] = coords[pIndex + 3]; - coords[pIndex + 8] = coords[pIndex + 4]; - coords[pIndex + 9] = coords[pIndex + 5]; - coords[pIndex + 10] = coordsMap[ps[offset]]; - coords[pIndex + 11] = coordsMap[ps[offset] + 1]; - colors[cIndex + 9] = colors[cIndex + 3]; - colors[cIndex + 10] = colors[cIndex + 4]; - colors[cIndex + 11] = colors[cIndex + 5]; - colors[cIndex + 12] = colors[cIndex + 6]; - colors[cIndex + 13] = colors[cIndex + 7]; - colors[cIndex + 14] = colors[cIndex + 8]; - colors[cIndex + 15] = colorsMap[cs[offset]]; - colors[cIndex + 16] = colorsMap[cs[offset] + 1]; - colors[cIndex + 17] = colorsMap[cs[offset] + 2]; - pIndex += 12; - cIndex += 18; - } - } - break; - case 'triangles': - for (var j = 0, jj = ps.length; j < jj; j++) { - coords[pIndex] = coordsMap[ps[j]]; - coords[pIndex + 1] = coordsMap[ps[j] + 1]; - colors[cIndex] = colorsMap[cs[i]]; - colors[cIndex + 1] = colorsMap[cs[j] + 1]; - colors[cIndex + 2] = colorsMap[cs[j] + 2]; - pIndex += 2; - cIndex += 3; - } - break; - } - } - - // draw - if (backgroundColor) { - gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, - backgroundColor[2] / 255, 1.0); - } else { - gl.clearColor(0, 0, 0, 0); - } - gl.clear(gl.COLOR_BUFFER_BIT); - - var coordsBuffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer); - gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW); - gl.enableVertexAttribArray(cache.positionLocation); - gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); - - var colorsBuffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer); - gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW); - gl.enableVertexAttribArray(cache.colorLocation); - gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, - 0, 0); - - gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY); - gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY); - - gl.drawArrays(gl.TRIANGLES, 0, count); - - gl.flush(); - - gl.deleteBuffer(coordsBuffer); - gl.deleteBuffer(colorsBuffer); - - return canvas; - } - - function cleanup() { - if (smaskCache && smaskCache.canvas) { - smaskCache.canvas.width = 0; - smaskCache.canvas.height = 0; - } - if (figuresCache && figuresCache.canvas) { - figuresCache.canvas.width = 0; - figuresCache.canvas.height = 0; - } - smaskCache = null; - figuresCache = null; - } - - return { - get isEnabled() { - if (PDFJS.disableWebGL) { - return false; - } - var enabled = false; - try { - generateGL(); - enabled = !!currentGL; - } catch (e) { } - return shadow(this, 'isEnabled', enabled); - }, - composeSMask: composeSMask, - drawFigures: drawFigures, - clear: cleanup - }; -})(); - - -var ShadingIRs = {}; - -ShadingIRs.RadialAxial = { - fromIR: function RadialAxial_fromIR(raw) { - var type = raw[1]; - var colorStops = raw[2]; - var p0 = raw[3]; - var p1 = raw[4]; - var r0 = raw[5]; - var r1 = raw[6]; - return { - type: 'Pattern', - getPattern: function RadialAxial_getPattern(ctx) { - var grad; - if (type === 'axial') { - grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); - } else if (type === 'radial') { - grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); - } - - for (var i = 0, ii = colorStops.length; i < ii; ++i) { - var c = colorStops[i]; - grad.addColorStop(c[0], c[1]); - } - return grad; - } - }; - } -}; - -var createMeshCanvas = (function createMeshCanvasClosure() { - function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { - // Very basic Gouraud-shaded triangle rasterization algorithm. - var coords = context.coords, colors = context.colors; - var bytes = data.data, rowSize = data.width * 4; - var tmp; - if (coords[p1 + 1] > coords[p2 + 1]) { - tmp = p1; p1 = p2; p2 = tmp; tmp = c1; c1 = c2; c2 = tmp; - } - if (coords[p2 + 1] > coords[p3 + 1]) { - tmp = p2; p2 = p3; p3 = tmp; tmp = c2; c2 = c3; c3 = tmp; - } - if (coords[p1 + 1] > coords[p2 + 1]) { - tmp = p1; p1 = p2; p2 = tmp; tmp = c1; c1 = c2; c2 = tmp; - } - var x1 = (coords[p1] + context.offsetX) * context.scaleX; - var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; - var x2 = (coords[p2] + context.offsetX) * context.scaleX; - var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; - var x3 = (coords[p3] + context.offsetX) * context.scaleX; - var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; - if (y1 >= y3) { - return; - } - var c1r = colors[c1], c1g = colors[c1 + 1], c1b = colors[c1 + 2]; - var c2r = colors[c2], c2g = colors[c2 + 1], c2b = colors[c2 + 2]; - var c3r = colors[c3], c3g = colors[c3 + 1], c3b = colors[c3 + 2]; - - var minY = Math.round(y1), maxY = Math.round(y3); - var xa, car, cag, cab; - var xb, cbr, cbg, cbb; - var k; - for (var y = minY; y <= maxY; y++) { - if (y < y2) { - k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2); - xa = x1 - (x1 - x2) * k; - car = c1r - (c1r - c2r) * k; - cag = c1g - (c1g - c2g) * k; - cab = c1b - (c1b - c2b) * k; - } else { - k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3); - xa = x2 - (x2 - x3) * k; - car = c2r - (c2r - c3r) * k; - cag = c2g - (c2g - c3g) * k; - cab = c2b - (c2b - c3b) * k; - } - k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3); - xb = x1 - (x1 - x3) * k; - cbr = c1r - (c1r - c3r) * k; - cbg = c1g - (c1g - c3g) * k; - cbb = c1b - (c1b - c3b) * k; - var x1_ = Math.round(Math.min(xa, xb)); - var x2_ = Math.round(Math.max(xa, xb)); - var j = rowSize * y + x1_ * 4; - for (var x = x1_; x <= x2_; x++) { - k = (xa - x) / (xa - xb); - k = k < 0 ? 0 : k > 1 ? 1 : k; - bytes[j++] = (car - (car - cbr) * k) | 0; - bytes[j++] = (cag - (cag - cbg) * k) | 0; - bytes[j++] = (cab - (cab - cbb) * k) | 0; - bytes[j++] = 255; - } - } - } - - function drawFigure(data, figure, context) { - var ps = figure.coords; - var cs = figure.colors; - var i, ii; - switch (figure.type) { - case 'lattice': - var verticesPerRow = figure.verticesPerRow; - var rows = Math.floor(ps.length / verticesPerRow) - 1; - var cols = verticesPerRow - 1; - for (i = 0; i < rows; i++) { - var q = i * verticesPerRow; - for (var j = 0; j < cols; j++, q++) { - drawTriangle(data, context, - ps[q], ps[q + 1], ps[q + verticesPerRow], - cs[q], cs[q + 1], cs[q + verticesPerRow]); - drawTriangle(data, context, - ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], - cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); - } - } - break; - case 'triangles': - for (i = 0, ii = ps.length; i < ii; i += 3) { - drawTriangle(data, context, - ps[i], ps[i + 1], ps[i + 2], - cs[i], cs[i + 1], cs[i + 2]); - } - break; - default: - error('illigal figure'); - break; - } - } - - function createMeshCanvas(bounds, combinesScale, coords, colors, figures, - backgroundColor) { - // we will increase scale on some weird factor to let antialiasing take - // care of "rough" edges - var EXPECTED_SCALE = 1.1; - // MAX_PATTERN_SIZE is used to avoid OOM situation. - var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough - - var offsetX = Math.floor(bounds[0]); - var offsetY = Math.floor(bounds[1]); - var boundsWidth = Math.ceil(bounds[2]) - offsetX; - var boundsHeight = Math.ceil(bounds[3]) - offsetY; - - var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * - EXPECTED_SCALE)), MAX_PATTERN_SIZE); - var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * - EXPECTED_SCALE)), MAX_PATTERN_SIZE); - var scaleX = boundsWidth / width; - var scaleY = boundsHeight / height; - - var context = { - coords: coords, - colors: colors, - offsetX: -offsetX, - offsetY: -offsetY, - scaleX: 1 / scaleX, - scaleY: 1 / scaleY - }; - - var canvas, tmpCanvas, i, ii; - if (WebGLUtils.isEnabled) { - canvas = WebGLUtils.drawFigures(width, height, backgroundColor, - figures, context); - - // https://bugzilla.mozilla.org/show_bug.cgi?id=972126 - tmpCanvas = CachedCanvases.getCanvas('mesh', width, height, false); - tmpCanvas.context.drawImage(canvas, 0, 0); - canvas = tmpCanvas.canvas; - } else { - tmpCanvas = CachedCanvases.getCanvas('mesh', width, height, false); - var tmpCtx = tmpCanvas.context; - - var data = tmpCtx.createImageData(width, height); - if (backgroundColor) { - var bytes = data.data; - for (i = 0, ii = bytes.length; i < ii; i += 4) { - bytes[i] = backgroundColor[0]; - bytes[i + 1] = backgroundColor[1]; - bytes[i + 2] = backgroundColor[2]; - bytes[i + 3] = 255; - } - } - for (i = 0; i < figures.length; i++) { - drawFigure(data, figures[i], context); - } - tmpCtx.putImageData(data, 0, 0); - canvas = tmpCanvas.canvas; - } - - return {canvas: canvas, offsetX: offsetX, offsetY: offsetY, - scaleX: scaleX, scaleY: scaleY}; - } - return createMeshCanvas; -})(); - -ShadingIRs.Mesh = { - fromIR: function Mesh_fromIR(raw) { - //var type = raw[1]; - var coords = raw[2]; - var colors = raw[3]; - var figures = raw[4]; - var bounds = raw[5]; - var matrix = raw[6]; - //var bbox = raw[7]; - var background = raw[8]; - return { - type: 'Pattern', - getPattern: function Mesh_getPattern(ctx, owner, shadingFill) { - var scale; - if (shadingFill) { - scale = Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); - } else { - // Obtain scale from matrix and current transformation matrix. - scale = Util.singularValueDecompose2dScale(owner.baseTransform); - if (matrix) { - var matrixScale = Util.singularValueDecompose2dScale(matrix); - scale = [scale[0] * matrixScale[0], - scale[1] * matrixScale[1]]; - } - } - - - // Rasterizing on the main thread since sending/queue large canvases - // might cause OOM. - var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, - colors, figures, shadingFill ? null : background); - - if (!shadingFill) { - ctx.setTransform.apply(ctx, owner.baseTransform); - if (matrix) { - ctx.transform.apply(ctx, matrix); - } - } - - ctx.translate(temporaryPatternCanvas.offsetX, - temporaryPatternCanvas.offsetY); - ctx.scale(temporaryPatternCanvas.scaleX, - temporaryPatternCanvas.scaleY); - - return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat'); - } - }; - } -}; - -ShadingIRs.Dummy = { - fromIR: function Dummy_fromIR() { - return { - type: 'Pattern', - getPattern: function Dummy_fromIR_getPattern() { - return 'hotpink'; - } - }; - } -}; - -function getShadingPatternFromIR(raw) { - var shadingIR = ShadingIRs[raw[0]]; - if (!shadingIR) { - error('Unknown IR type: ' + raw[0]); - } - return shadingIR.fromIR(raw); -} - -var TilingPattern = (function TilingPatternClosure() { - var PaintType = { - COLORED: 1, - UNCOLORED: 2 - }; - - var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough - - function TilingPattern(IR, color, ctx, objs, commonObjs, baseTransform) { - this.operatorList = IR[2]; - this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; - this.bbox = IR[4]; - this.xstep = IR[5]; - this.ystep = IR[6]; - this.paintType = IR[7]; - this.tilingType = IR[8]; - this.color = color; - this.objs = objs; - this.commonObjs = commonObjs; - this.baseTransform = baseTransform; - this.type = 'Pattern'; - this.ctx = ctx; - } - - TilingPattern.prototype = { - createPatternCanvas: function TilinPattern_createPatternCanvas(owner) { - var operatorList = this.operatorList; - var bbox = this.bbox; - var xstep = this.xstep; - var ystep = this.ystep; - var paintType = this.paintType; - var tilingType = this.tilingType; - var color = this.color; - var objs = this.objs; - var commonObjs = this.commonObjs; - - info('TilingType: ' + tilingType); - - var x0 = bbox[0], y0 = bbox[1], x1 = bbox[2], y1 = bbox[3]; - - var topLeft = [x0, y0]; - // we want the canvas to be as large as the step size - var botRight = [x0 + xstep, y0 + ystep]; - - var width = botRight[0] - topLeft[0]; - var height = botRight[1] - topLeft[1]; - - // Obtain scale from matrix and current transformation matrix. - var matrixScale = Util.singularValueDecompose2dScale(this.matrix); - var curMatrixScale = Util.singularValueDecompose2dScale( - this.baseTransform); - var combinedScale = [matrixScale[0] * curMatrixScale[0], - matrixScale[1] * curMatrixScale[1]]; - - // MAX_PATTERN_SIZE is used to avoid OOM situation. - // Use width and height values that are as close as possible to the end - // result when the pattern is used. Too low value makes the pattern look - // blurry. Too large value makes it look too crispy. - width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])), - MAX_PATTERN_SIZE); - - height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])), - MAX_PATTERN_SIZE); - - var tmpCanvas = CachedCanvases.getCanvas('pattern', width, height, true); - var tmpCtx = tmpCanvas.context; - var graphics = new CanvasGraphics(tmpCtx, commonObjs, objs); - graphics.groupLevel = owner.groupLevel; - - this.setFillAndStrokeStyleToContext(tmpCtx, paintType, color); - - this.setScale(width, height, xstep, ystep); - this.transformToScale(graphics); - - // transform coordinates to pattern space - var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]]; - graphics.transform.apply(graphics, tmpTranslate); - - this.clipBbox(graphics, bbox, x0, y0, x1, y1); - - graphics.executeOperatorList(operatorList); - return tmpCanvas.canvas; - }, - - setScale: function TilingPattern_setScale(width, height, xstep, ystep) { - this.scale = [width / xstep, height / ystep]; - }, - - transformToScale: function TilingPattern_transformToScale(graphics) { - var scale = this.scale; - var tmpScale = [scale[0], 0, 0, scale[1], 0, 0]; - graphics.transform.apply(graphics, tmpScale); - }, - - scaleToContext: function TilingPattern_scaleToContext() { - var scale = this.scale; - this.ctx.scale(1 / scale[0], 1 / scale[1]); - }, - - clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) { - if (bbox && isArray(bbox) && bbox.length === 4) { - var bboxWidth = x1 - x0; - var bboxHeight = y1 - y0; - graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); - graphics.clip(); - graphics.endPath(); - } - }, - - setFillAndStrokeStyleToContext: - function setFillAndStrokeStyleToContext(context, paintType, color) { - switch (paintType) { - case PaintType.COLORED: - var ctx = this.ctx; - context.fillStyle = ctx.fillStyle; - context.strokeStyle = ctx.strokeStyle; - break; - case PaintType.UNCOLORED: - var cssColor = Util.makeCssRgb(color[0], color[1], color[2]); - context.fillStyle = cssColor; - context.strokeStyle = cssColor; - break; - default: - error('Unsupported paint type: ' + paintType); - } - }, - - getPattern: function TilingPattern_getPattern(ctx, owner) { - var temporaryPatternCanvas = this.createPatternCanvas(owner); - - ctx = this.ctx; - ctx.setTransform.apply(ctx, this.baseTransform); - ctx.transform.apply(ctx, this.matrix); - this.scaleToContext(); - - return ctx.createPattern(temporaryPatternCanvas, 'repeat'); - } - }; - - return TilingPattern; -})(); - - -PDFJS.disableFontFace = false; - -var FontLoader = { - insertRule: function fontLoaderInsertRule(rule) { - var styleElement = document.getElementById('PDFJS_FONT_STYLE_TAG'); - if (!styleElement) { - styleElement = document.createElement('style'); - styleElement.id = 'PDFJS_FONT_STYLE_TAG'; - document.documentElement.getElementsByTagName('head')[0].appendChild( - styleElement); - } - - var styleSheet = styleElement.sheet; - styleSheet.insertRule(rule, styleSheet.cssRules.length); - }, - - clear: function fontLoaderClear() { - var styleElement = document.getElementById('PDFJS_FONT_STYLE_TAG'); - if (styleElement) { - styleElement.parentNode.removeChild(styleElement); - } - this.nativeFontFaces.forEach(function(nativeFontFace) { - document.fonts.delete(nativeFontFace); - }); - this.nativeFontFaces.length = 0; - }, - get loadTestFont() { - // This is a CFF font with 1 glyph for '.' that fills its entire width and - // height. - return shadow(this, 'loadTestFont', atob( - 'T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQ' + - 'AABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwA' + - 'AAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbm' + - 'FtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAA' + - 'AADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6A' + - 'ABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAA' + - 'MQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAA' + - 'AAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAA' + - 'AAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQ' + - 'AAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMA' + - 'AQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAA' + - 'EAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAA' + - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAA' + - 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + - 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + - 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + - 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAA' + - 'AAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgc' + - 'A/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF' + - 'hYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQA' + - 'AAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAg' + - 'ABAAAAAAAAAAAD6AAAAAAAAA==' - )); - }, - - loadTestFontId: 0, - - loadingContext: { - requests: [], - nextRequestId: 0 - }, - - isSyncFontLoadingSupported: (function detectSyncFontLoadingSupport() { - if (isWorker) { - return false; - } - - // User agent string sniffing is bad, but there is no reliable way to tell - // if font is fully loaded and ready to be used with canvas. - var userAgent = window.navigator.userAgent; - var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(userAgent); - if (m && m[1] >= 14) { - return true; - } - // TODO other browsers - if (userAgent === 'node') { - return true; - } - return false; - })(), - - nativeFontFaces: [], - - isFontLoadingAPISupported: (!isWorker && typeof document !== 'undefined' && - !!document.fonts), - - addNativeFontFace: function fontLoader_addNativeFontFace(nativeFontFace) { - this.nativeFontFaces.push(nativeFontFace); - document.fonts.add(nativeFontFace); - }, - - bind: function fontLoaderBind(fonts, callback) { - assert(!isWorker, 'bind() shall be called from main thread'); - - var rules = []; - var fontsToLoad = []; - var fontLoadPromises = []; - for (var i = 0, ii = fonts.length; i < ii; i++) { - var font = fonts[i]; - - // Add the font to the DOM only once or skip if the font - // is already loaded. - if (font.attached || font.loading === false) { - continue; - } - font.attached = true; - - if (this.isFontLoadingAPISupported) { - var nativeFontFace = font.createNativeFontFace(); - if (nativeFontFace) { - fontLoadPromises.push(nativeFontFace.loaded); - } - } else { - var rule = font.bindDOM(); - if (rule) { - rules.push(rule); - fontsToLoad.push(font); - } - } - } - - var request = FontLoader.queueLoadingCallback(callback); - if (this.isFontLoadingAPISupported) { - Promise.all(fontsToLoad).then(function() { - request.complete(); - }); - } else if (rules.length > 0 && !this.isSyncFontLoadingSupported) { - FontLoader.prepareFontLoadEvent(rules, fontsToLoad, request); - } else { - request.complete(); - } - }, - - queueLoadingCallback: function FontLoader_queueLoadingCallback(callback) { - function LoadLoader_completeRequest() { - assert(!request.end, 'completeRequest() cannot be called twice'); - request.end = Date.now(); - - // sending all completed requests in order how they were queued - while (context.requests.length > 0 && context.requests[0].end) { - var otherRequest = context.requests.shift(); - setTimeout(otherRequest.callback, 0); - } - } - - var context = FontLoader.loadingContext; - var requestId = 'pdfjs-font-loading-' + (context.nextRequestId++); - var request = { - id: requestId, - complete: LoadLoader_completeRequest, - callback: callback, - started: Date.now() - }; - context.requests.push(request); - return request; - }, - - prepareFontLoadEvent: function fontLoaderPrepareFontLoadEvent(rules, - fonts, - request) { - /** Hack begin */ - // There's currently no event when a font has finished downloading so the - // following code is a dirty hack to 'guess' when a font is - // ready. It's assumed fonts are loaded in order, so add a known test - // font after the desired fonts and then test for the loading of that - // test font. - - function int32(data, offset) { - return (data.charCodeAt(offset) << 24) | - (data.charCodeAt(offset + 1) << 16) | - (data.charCodeAt(offset + 2) << 8) | - (data.charCodeAt(offset + 3) & 0xff); - } - - function spliceString(s, offset, remove, insert) { - var chunk1 = s.substr(0, offset); - var chunk2 = s.substr(offset + remove); - return chunk1 + insert + chunk2; - } - - var i, ii; - - var canvas = document.createElement('canvas'); - canvas.width = 1; - canvas.height = 1; - var ctx = canvas.getContext('2d'); - - var called = 0; - function isFontReady(name, callback) { - called++; - // With setTimeout clamping this gives the font ~100ms to load. - if(called > 30) { - warn('Load test font never loaded.'); - callback(); - return; - } - ctx.font = '30px ' + name; - ctx.fillText('.', 0, 20); - var imageData = ctx.getImageData(0, 0, 1, 1); - if (imageData.data[3] > 0) { - callback(); - return; - } - setTimeout(isFontReady.bind(null, name, callback)); - } - - var loadTestFontId = 'lt' + Date.now() + this.loadTestFontId++; - // Chromium seems to cache fonts based on a hash of the actual font data, - // so the font must be modified for each load test else it will appear to - // be loaded already. - // TODO: This could maybe be made faster by avoiding the btoa of the full - // font by splitting it in chunks before hand and padding the font id. - var data = this.loadTestFont; - var COMMENT_OFFSET = 976; // has to be on 4 byte boundary (for checksum) - data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, - loadTestFontId); - // CFF checksum is important for IE, adjusting it - var CFF_CHECKSUM_OFFSET = 16; - var XXXX_VALUE = 0x58585858; // the "comment" filled with 'X' - var checksum = int32(data, CFF_CHECKSUM_OFFSET); - for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { - checksum = (checksum - XXXX_VALUE + int32(loadTestFontId, i)) | 0; - } - if (i < loadTestFontId.length) { // align to 4 bytes boundary - checksum = (checksum - XXXX_VALUE + - int32(loadTestFontId + 'XXX', i)) | 0; - } - data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum)); - - var url = 'url(data:font/opentype;base64,' + btoa(data) + ');'; - var rule = '@font-face { font-family:"' + loadTestFontId + '";src:' + - url + '}'; - FontLoader.insertRule(rule); - - var names = []; - for (i = 0, ii = fonts.length; i < ii; i++) { - names.push(fonts[i].loadedName); - } - names.push(loadTestFontId); - - var div = document.createElement('div'); - div.setAttribute('style', - 'visibility: hidden;' + - 'width: 10px; height: 10px;' + - 'position: absolute; top: 0px; left: 0px;'); - for (i = 0, ii = names.length; i < ii; ++i) { - var span = document.createElement('span'); - span.textContent = 'Hi'; - span.style.fontFamily = names[i]; - div.appendChild(span); - } - document.body.appendChild(div); - - isFontReady(loadTestFontId, function() { - document.body.removeChild(div); - request.complete(); - }); - /** Hack end */ - } -}; - -var FontFaceObject = (function FontFaceObjectClosure() { - function FontFaceObject(name, file, properties) { - this.compiledGlyphs = {}; - if (arguments.length === 1) { - // importing translated data - var data = arguments[0]; - for (var i in data) { - this[i] = data[i]; - } - return; - } - } - FontFaceObject.prototype = { - createNativeFontFace: function FontFaceObject_createNativeFontFace() { - if (!this.data) { - return null; - } - - if (PDFJS.disableFontFace) { - this.disableFontFace = true; - return null; - } - - var nativeFontFace = new FontFace(this.loadedName, this.data, {}); - - FontLoader.addNativeFontFace(nativeFontFace); - - if (PDFJS.pdfBug && 'FontInspector' in globalScope && - globalScope['FontInspector'].enabled) { - globalScope['FontInspector'].fontAdded(this); - } - return nativeFontFace; - }, - - bindDOM: function FontFaceObject_bindDOM() { - if (!this.data) { - return null; - } - - if (PDFJS.disableFontFace) { - this.disableFontFace = true; - return null; - } - - var data = bytesToString(new Uint8Array(this.data)); - var fontName = this.loadedName; - - // Add the font-face rule to the document - var url = ('url(data:' + this.mimetype + ';base64,' + - window.btoa(data) + ');'); - var rule = '@font-face { font-family:"' + fontName + '";src:' + url + '}'; - FontLoader.insertRule(rule); - - if (PDFJS.pdfBug && 'FontInspector' in globalScope && - globalScope['FontInspector'].enabled) { - globalScope['FontInspector'].fontAdded(this, url); - } - - return rule; - }, - - getPathGenerator: function FontLoader_getPathGenerator(objs, character) { - if (!(character in this.compiledGlyphs)) { - var js = objs.get(this.loadedName + '_path_' + character); - /*jshint -W054 */ - this.compiledGlyphs[character] = new Function('c', 'size', js); - } - return this.compiledGlyphs[character]; - } - }; - return FontFaceObject; -})(); - - -var ANNOT_MIN_SIZE = 10; // px - -var AnnotationUtils = (function AnnotationUtilsClosure() { - // TODO(mack): This dupes some of the logic in CanvasGraphics.setFont() - function setTextStyles(element, item, fontObj) { - - var style = element.style; - style.fontSize = item.fontSize + 'px'; - style.direction = item.fontDirection < 0 ? 'rtl': 'ltr'; - - if (!fontObj) { - return; - } - - style.fontWeight = fontObj.black ? - (fontObj.bold ? 'bolder' : 'bold') : - (fontObj.bold ? 'bold' : 'normal'); - style.fontStyle = fontObj.italic ? 'italic' : 'normal'; - - var fontName = fontObj.loadedName; - var fontFamily = fontName ? '"' + fontName + '", ' : ''; - // Use a reasonable default font if the font doesn't specify a fallback - var fallbackName = fontObj.fallbackName || 'Helvetica, sans-serif'; - style.fontFamily = fontFamily + fallbackName; - } - - function initContainer(item, drawBorder) { - var container = document.createElement('section'); - var cstyle = container.style; - var width = item.rect[2] - item.rect[0]; - var height = item.rect[3] - item.rect[1]; - - var bWidth = item.borderWidth || 0; - if (bWidth) { - width = width - 2 * bWidth; - height = height - 2 * bWidth; - cstyle.borderWidth = bWidth + 'px'; - var color = item.color; - if (drawBorder && color) { - cstyle.borderStyle = 'solid'; - cstyle.borderColor = Util.makeCssRgb(Math.round(color[0] * 255), - Math.round(color[1] * 255), - Math.round(color[2] * 255)); - } - } - cstyle.width = width + 'px'; - cstyle.height = height + 'px'; - return container; - } - - function getHtmlElementForTextWidgetAnnotation(item, commonObjs) { - var element = document.createElement('div'); - var width = item.rect[2] - item.rect[0]; - var height = item.rect[3] - item.rect[1]; - element.style.width = width + 'px'; - element.style.height = height + 'px'; - element.style.display = 'table'; - - var content = document.createElement('div'); - content.textContent = item.fieldValue; - var textAlignment = item.textAlignment; - content.style.textAlign = ['left', 'center', 'right'][textAlignment]; - content.style.verticalAlign = 'middle'; - content.style.display = 'table-cell'; - - var fontObj = item.fontRefName ? - commonObjs.getData(item.fontRefName) : null; - setTextStyles(content, item, fontObj); - - element.appendChild(content); - - return element; - } - - function getHtmlElementForTextAnnotation(item) { - var rect = item.rect; - - // sanity check because of OOo-generated PDFs - if ((rect[3] - rect[1]) < ANNOT_MIN_SIZE) { - rect[3] = rect[1] + ANNOT_MIN_SIZE; - } - if ((rect[2] - rect[0]) < ANNOT_MIN_SIZE) { - rect[2] = rect[0] + (rect[3] - rect[1]); // make it square - } - - var container = initContainer(item, false); - container.className = 'annotText'; - - var image = document.createElement('img'); - image.style.height = container.style.height; - image.style.width = container.style.width; - var iconName = item.name; - image.src = PDFJS.imageResourcesPath + 'annotation-' + - iconName.toLowerCase() + '.svg'; - image.alt = '[{{type}} Annotation]'; - image.dataset.l10nId = 'text_annotation_type'; - image.dataset.l10nArgs = JSON.stringify({type: iconName}); - - var contentWrapper = document.createElement('div'); - contentWrapper.className = 'annotTextContentWrapper'; - contentWrapper.style.left = Math.floor(rect[2] - rect[0] + 5) + 'px'; - contentWrapper.style.top = '-10px'; - - var content = document.createElement('div'); - content.className = 'annotTextContent'; - content.setAttribute('hidden', true); - - var i, ii; - if (item.hasBgColor) { - var color = item.color; - - // Enlighten the color (70%) - var BACKGROUND_ENLIGHT = 0.7; - var r = BACKGROUND_ENLIGHT * (1.0 - color[0]) + color[0]; - var g = BACKGROUND_ENLIGHT * (1.0 - color[1]) + color[1]; - var b = BACKGROUND_ENLIGHT * (1.0 - color[2]) + color[2]; - content.style.backgroundColor = Util.makeCssRgb((r * 255) | 0, - (g * 255) | 0, - (b * 255) | 0); - } - - var title = document.createElement('h1'); - var text = document.createElement('p'); - title.textContent = item.title; - - if (!item.content && !item.title) { - content.setAttribute('hidden', true); - } else { - var e = document.createElement('span'); - var lines = item.content.split(/(?:\r\n?|\n)/); - for (i = 0, ii = lines.length; i < ii; ++i) { - var line = lines[i]; - e.appendChild(document.createTextNode(line)); - if (i < (ii - 1)) { - e.appendChild(document.createElement('br')); - } - } - text.appendChild(e); - - var pinned = false; - - var showAnnotation = function showAnnotation(pin) { - if (pin) { - pinned = true; - } - if (content.hasAttribute('hidden')) { - container.style.zIndex += 1; - content.removeAttribute('hidden'); - } - }; - - var hideAnnotation = function hideAnnotation(unpin) { - if (unpin) { - pinned = false; - } - if (!content.hasAttribute('hidden') && !pinned) { - container.style.zIndex -= 1; - content.setAttribute('hidden', true); - } - }; - - var toggleAnnotation = function toggleAnnotation() { - if (pinned) { - hideAnnotation(true); - } else { - showAnnotation(true); - } - }; - - image.addEventListener('click', function image_clickHandler() { - toggleAnnotation(); - }, false); - image.addEventListener('mouseover', function image_mouseOverHandler() { - showAnnotation(); - }, false); - image.addEventListener('mouseout', function image_mouseOutHandler() { - hideAnnotation(); - }, false); - - content.addEventListener('click', function content_clickHandler() { - hideAnnotation(true); - }, false); - } - - content.appendChild(title); - content.appendChild(text); - contentWrapper.appendChild(content); - container.appendChild(image); - container.appendChild(contentWrapper); - - return container; - } - - function getHtmlElementForLinkAnnotation(item) { - var container = initContainer(item, true); - container.className = 'annotLink'; - - var link = document.createElement('a'); - link.href = link.title = item.url || ''; - if (item.url && PDFJS.openExternalLinksInNewWindow) { - link.target = '_blank'; - } - - container.appendChild(link); - - return container; - } - - function getHtmlElement(data, objs) { - switch (data.annotationType) { - case AnnotationType.WIDGET: - return getHtmlElementForTextWidgetAnnotation(data, objs); - case AnnotationType.TEXT: - return getHtmlElementForTextAnnotation(data); - case AnnotationType.LINK: - return getHtmlElementForLinkAnnotation(data); - default: - throw new Error('Unsupported annotationType: ' + data.annotationType); - } - } - - return { - getHtmlElement: getHtmlElement - }; -})(); -PDFJS.AnnotationUtils = AnnotationUtils; - - -var SVG_DEFAULTS = { - fontStyle: 'normal', - fontWeight: 'normal', - fillColor: '#000000' -}; - -var convertImgDataToPng = (function convertImgDataToPngClosure() { - var PNG_HEADER = - new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); - - var CHUNK_WRAPPER_SIZE = 12; - - var crcTable = new Int32Array(256); - for (var i = 0; i < 256; i++) { - var c = i; - for (var h = 0; h < 8; h++) { - if (c & 1) { - c = 0xedB88320 ^ ((c >> 1) & 0x7fffffff); - } else { - c = (c >> 1) & 0x7fffffff; - } - } - crcTable[i] = c; - } - - function crc32(data, start, end) { - var crc = -1; - for (var i = start; i < end; i++) { - var a = (crc ^ data[i]) & 0xff; - var b = crcTable[a]; - crc = (crc >>> 8) ^ b; - } - return crc ^ -1; - } - - function writePngChunk(type, body, data, offset) { - var p = offset; - var len = body.length; - - data[p] = len >> 24 & 0xff; - data[p + 1] = len >> 16 & 0xff; - data[p + 2] = len >> 8 & 0xff; - data[p + 3] = len & 0xff; - p += 4; - - data[p] = type.charCodeAt(0) & 0xff; - data[p + 1] = type.charCodeAt(1) & 0xff; - data[p + 2] = type.charCodeAt(2) & 0xff; - data[p + 3] = type.charCodeAt(3) & 0xff; - p += 4; - - data.set(body, p); - p += body.length; - - var crc = crc32(data, offset + 4, p); - - data[p] = crc >> 24 & 0xff; - data[p + 1] = crc >> 16 & 0xff; - data[p + 2] = crc >> 8 & 0xff; - data[p + 3] = crc & 0xff; - } - - function adler32(data, start, end) { - var a = 1; - var b = 0; - for (var i = start; i < end; ++i) { - a = (a + (data[i] & 0xff)) % 65521; - b = (b + a) % 65521; - } - return (b << 16) | a; - } - - function encode(imgData, kind) { - var width = imgData.width; - var height = imgData.height; - var bitDepth, colorType, lineSize; - var bytes = imgData.data; - - switch (kind) { - case ImageKind.GRAYSCALE_1BPP: - colorType = 0; - bitDepth = 1; - lineSize = (width + 7) >> 3; - break; - case ImageKind.RGB_24BPP: - colorType = 2; - bitDepth = 8; - lineSize = width * 3; - break; - case ImageKind.RGBA_32BPP: - colorType = 6; - bitDepth = 8; - lineSize = width * 4; - break; - default: - throw new Error('invalid format'); - } - - // prefix every row with predictor 0 - var literals = new Uint8Array((1 + lineSize) * height); - var offsetLiterals = 0, offsetBytes = 0; - var y, i; - for (y = 0; y < height; ++y) { - literals[offsetLiterals++] = 0; // no prediction - literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), - offsetLiterals); - offsetBytes += lineSize; - offsetLiterals += lineSize; - } - - if (kind === ImageKind.GRAYSCALE_1BPP) { - // inverting for B/W - offsetLiterals = 0; - for (y = 0; y < height; y++) { - offsetLiterals++; // skipping predictor - for (i = 0; i < lineSize; i++) { - literals[offsetLiterals++] ^= 0xFF; - } - } - } - - var ihdr = new Uint8Array([ - width >> 24 & 0xff, - width >> 16 & 0xff, - width >> 8 & 0xff, - width & 0xff, - height >> 24 & 0xff, - height >> 16 & 0xff, - height >> 8 & 0xff, - height & 0xff, - bitDepth, // bit depth - colorType, // color type - 0x00, // compression method - 0x00, // filter method - 0x00 // interlace method - ]); - - var len = literals.length; - var maxBlockLength = 0xFFFF; - - var deflateBlocks = Math.ceil(len / maxBlockLength); - var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); - var pi = 0; - idat[pi++] = 0x78; // compression method and flags - idat[pi++] = 0x9c; // flags - - var pos = 0; - while (len > maxBlockLength) { - // writing non-final DEFLATE blocks type 0 and length of 65535 - idat[pi++] = 0x00; - idat[pi++] = 0xff; - idat[pi++] = 0xff; - idat[pi++] = 0x00; - idat[pi++] = 0x00; - idat.set(literals.subarray(pos, pos + maxBlockLength), pi); - pi += maxBlockLength; - pos += maxBlockLength; - len -= maxBlockLength; - } - - // writing non-final DEFLATE blocks type 0 - idat[pi++] = 0x01; - idat[pi++] = len & 0xff; - idat[pi++] = len >> 8 & 0xff; - idat[pi++] = (~len & 0xffff) & 0xff; - idat[pi++] = (~len & 0xffff) >> 8 & 0xff; - idat.set(literals.subarray(pos), pi); - pi += literals.length - pos; - - var adler = adler32(literals, 0, literals.length); // checksum - idat[pi++] = adler >> 24 & 0xff; - idat[pi++] = adler >> 16 & 0xff; - idat[pi++] = adler >> 8 & 0xff; - idat[pi++] = adler & 0xff; - - // PNG will consists: header, IHDR+data, IDAT+data, and IEND. - var pngLength = PNG_HEADER.length + (CHUNK_WRAPPER_SIZE * 3) + - ihdr.length + idat.length; - var data = new Uint8Array(pngLength); - var offset = 0; - data.set(PNG_HEADER, offset); - offset += PNG_HEADER.length; - writePngChunk('IHDR', ihdr, data, offset); - offset += CHUNK_WRAPPER_SIZE + ihdr.length; - writePngChunk('IDATA', idat, data, offset); - offset += CHUNK_WRAPPER_SIZE + idat.length; - writePngChunk('IEND', new Uint8Array(0), data, offset); - - return PDFJS.createObjectURL(data, 'image/png'); - } - - return function convertImgDataToPng(imgData) { - var kind = (imgData.kind === undefined ? - ImageKind.GRAYSCALE_1BPP : imgData.kind); - return encode(imgData, kind); - }; -})(); - -var SVGExtraState = (function SVGExtraStateClosure() { - function SVGExtraState() { - this.fontSizeScale = 1; - this.fontWeight = SVG_DEFAULTS.fontWeight; - this.fontSize = 0; - - this.textMatrix = IDENTITY_MATRIX; - this.fontMatrix = FONT_IDENTITY_MATRIX; - this.leading = 0; - - // Current point (in user coordinates) - this.x = 0; - this.y = 0; - - // Start of text line (in text coordinates) - this.lineX = 0; - this.lineY = 0; - - // Character and word spacing - this.charSpacing = 0; - this.wordSpacing = 0; - this.textHScale = 1; - this.textRise = 0; - - // Default foreground and background colors - this.fillColor = SVG_DEFAULTS.fillColor; - this.strokeColor = '#000000'; - - this.fillAlpha = 1; - this.strokeAlpha = 1; - this.lineWidth = 1; - this.lineJoin = ''; - this.lineCap = ''; - this.miterLimit = 0; - - this.dashArray = []; - this.dashPhase = 0; - - this.dependencies = []; - - // Clipping - this.clipId = ''; - this.pendingClip = false; - - this.maskId = ''; - } - - SVGExtraState.prototype = { - clone: function SVGExtraState_clone() { - return Object.create(this); - }, - setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) { - this.x = x; - this.y = y; - } - }; - return SVGExtraState; -})(); - -var SVGGraphics = (function SVGGraphicsClosure() { - function createScratchSVG(width, height) { - var NS = 'http://www.w3.org/2000/svg'; - var svg = document.createElementNS(NS, 'svg:svg'); - svg.setAttributeNS(null, 'version', '1.1'); - svg.setAttributeNS(null, 'width', width + 'px'); - svg.setAttributeNS(null, 'height', height + 'px'); - svg.setAttributeNS(null, 'viewBox', '0 0 ' + width + ' ' + height); - return svg; - } - - function opListToTree(opList) { - var opTree = []; - var tmp = []; - var opListLen = opList.length; - - for (var x = 0; x < opListLen; x++) { - if (opList[x].fn === 'save') { - opTree.push({'fnId': 92, 'fn': 'group', 'items': []}); - tmp.push(opTree); - opTree = opTree[opTree.length - 1].items; - continue; - } - - if(opList[x].fn === 'restore') { - opTree = tmp.pop(); - } else { - opTree.push(opList[x]); - } - } - return opTree; - } - - /** - * Formats float number. - * @param value {number} number to format. - * @returns {string} - */ - function pf(value) { - if (value === (value | 0)) { // integer number - return value.toString(); - } - var s = value.toFixed(10); - var i = s.length - 1; - if (s[i] !== '0') { - return s; - } - // removing trailing zeros - do { - i--; - } while (s[i] === '0'); - return s.substr(0, s[i] === '.' ? i : i + 1); - } - - /** - * Formats transform matrix. The standard rotation, scale and translate - * matrices are replaced by their shorter forms, and for identity matrix - * returns empty string to save the memory. - * @param m {Array} matrix to format. - * @returns {string} - */ - function pm(m) { - if (m[4] === 0 && m[5] === 0) { - if (m[1] === 0 && m[2] === 0) { - if (m[0] === 1 && m[3] === 1) { - return ''; - } - return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')'; - } - if (m[0] === m[3] && m[1] === -m[2]) { - var a = Math.acos(m[0]) * 180 / Math.PI; - return 'rotate(' + pf(a) + ')'; - } - } else { - if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { - return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')'; - } - } - return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' + - pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')'; - } - - function SVGGraphics(commonObjs, objs) { - this.current = new SVGExtraState(); - this.transformMatrix = IDENTITY_MATRIX; // Graphics state matrix - this.transformStack = []; - this.extraStack = []; - this.commonObjs = commonObjs; - this.objs = objs; - this.pendingEOFill = false; - - this.embedFonts = false; - this.embeddedFonts = {}; - this.cssStyle = null; - } - - var NS = 'http://www.w3.org/2000/svg'; - var XML_NS = 'http://www.w3.org/XML/1998/namespace'; - var XLINK_NS = 'http://www.w3.org/1999/xlink'; - var LINE_CAP_STYLES = ['butt', 'round', 'square']; - var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; - var clipCount = 0; - var maskCount = 0; - - SVGGraphics.prototype = { - save: function SVGGraphics_save() { - this.transformStack.push(this.transformMatrix); - var old = this.current; - this.extraStack.push(old); - this.current = old.clone(); - }, - - restore: function SVGGraphics_restore() { - this.transformMatrix = this.transformStack.pop(); - this.current = this.extraStack.pop(); - - this.tgrp = document.createElementNS(NS, 'svg:g'); - this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); - this.pgrp.appendChild(this.tgrp); - }, - - group: function SVGGraphics_group(items) { - this.save(); - this.executeOpTree(items); - this.restore(); - }, - - loadDependencies: function SVGGraphics_loadDependencies(operatorList) { - var fnArray = operatorList.fnArray; - var fnArrayLen = fnArray.length; - var argsArray = operatorList.argsArray; - - var self = this; - for (var i = 0; i < fnArrayLen; i++) { - if (OPS.dependency === fnArray[i]) { - var deps = argsArray[i]; - for (var n = 0, nn = deps.length; n < nn; n++) { - var obj = deps[n]; - var common = obj.substring(0, 2) === 'g_'; - var promise; - if (common) { - promise = new Promise(function(resolve) { - self.commonObjs.get(obj, resolve); - }); - } else { - promise = new Promise(function(resolve) { - self.objs.get(obj, resolve); - }); - } - this.current.dependencies.push(promise); - } - } - } - return Promise.all(this.current.dependencies); - }, - - transform: function SVGGraphics_transform(a, b, c, d, e, f) { - var transformMatrix = [a, b, c, d, e, f]; - this.transformMatrix = PDFJS.Util.transform(this.transformMatrix, - transformMatrix); - - this.tgrp = document.createElementNS(NS, 'svg:g'); - this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); - }, - - getSVG: function SVGGraphics_getSVG(operatorList, viewport) { - this.svg = createScratchSVG(viewport.width, viewport.height); - this.viewport = viewport; - - return this.loadDependencies(operatorList).then(function () { - this.transformMatrix = IDENTITY_MATRIX; - this.pgrp = document.createElementNS(NS, 'svg:g'); // Parent group - this.pgrp.setAttributeNS(null, 'transform', pm(viewport.transform)); - this.tgrp = document.createElementNS(NS, 'svg:g'); // Transform group - this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); - this.defs = document.createElementNS(NS, 'svg:defs'); - this.pgrp.appendChild(this.defs); - this.pgrp.appendChild(this.tgrp); - this.svg.appendChild(this.pgrp); - var opTree = this.convertOpList(operatorList); - this.executeOpTree(opTree); - return this.svg; - }.bind(this)); - }, - - convertOpList: function SVGGraphics_convertOpList(operatorList) { - var argsArray = operatorList.argsArray; - var fnArray = operatorList.fnArray; - var fnArrayLen = fnArray.length; - var REVOPS = []; - var opList = []; - - for (var op in OPS) { - REVOPS[OPS[op]] = op; - } - - for (var x = 0; x < fnArrayLen; x++) { - var fnId = fnArray[x]; - opList.push({'fnId' : fnId, 'fn': REVOPS[fnId], 'args': argsArray[x]}); - } - return opListToTree(opList); - }, - - executeOpTree: function SVGGraphics_executeOpTree(opTree) { - var opTreeLen = opTree.length; - for(var x = 0; x < opTreeLen; x++) { - var fn = opTree[x].fn; - var fnId = opTree[x].fnId; - var args = opTree[x].args; - - switch (fnId | 0) { - case OPS.beginText: - this.beginText(); - break; - case OPS.setLeading: - this.setLeading(args); - break; - case OPS.setLeadingMoveText: - this.setLeadingMoveText(args[0], args[1]); - break; - case OPS.setFont: - this.setFont(args); - break; - case OPS.showText: - this.showText(args[0]); - break; - case OPS.showSpacedText: - this.showText(args[0]); - break; - case OPS.endText: - this.endText(); - break; - case OPS.moveText: - this.moveText(args[0], args[1]); - break; - case OPS.setCharSpacing: - this.setCharSpacing(args[0]); - break; - case OPS.setWordSpacing: - this.setWordSpacing(args[0]); - break; - case OPS.setHScale: - this.setHScale(args[0]); - break; - case OPS.setTextMatrix: - this.setTextMatrix(args[0], args[1], args[2], - args[3], args[4], args[5]); - break; - case OPS.setLineWidth: - this.setLineWidth(args[0]); - break; - case OPS.setLineJoin: - this.setLineJoin(args[0]); - break; - case OPS.setLineCap: - this.setLineCap(args[0]); - break; - case OPS.setMiterLimit: - this.setMiterLimit(args[0]); - break; - case OPS.setFillRGBColor: - this.setFillRGBColor(args[0], args[1], args[2]); - break; - case OPS.setStrokeRGBColor: - this.setStrokeRGBColor(args[0], args[1], args[2]); - break; - case OPS.setDash: - this.setDash(args[0], args[1]); - break; - case OPS.setGState: - this.setGState(args[0]); - break; - case OPS.fill: - this.fill(); - break; - case OPS.eoFill: - this.eoFill(); - break; - case OPS.stroke: - this.stroke(); - break; - case OPS.fillStroke: - this.fillStroke(); - break; - case OPS.eoFillStroke: - this.eoFillStroke(); - break; - case OPS.clip: - this.clip('nonzero'); - break; - case OPS.eoClip: - this.clip('evenodd'); - break; - case OPS.paintSolidColorImageMask: - this.paintSolidColorImageMask(); - break; - case OPS.paintJpegXObject: - this.paintJpegXObject(args[0], args[1], args[2]); - break; - case OPS.paintImageXObject: - this.paintImageXObject(args[0]); - break; - case OPS.paintInlineImageXObject: - this.paintInlineImageXObject(args[0]); - break; - case OPS.paintImageMaskXObject: - this.paintImageMaskXObject(args[0]); - break; - case OPS.paintFormXObjectBegin: - this.paintFormXObjectBegin(args[0], args[1]); - break; - case OPS.paintFormXObjectEnd: - this.paintFormXObjectEnd(); - break; - case OPS.closePath: - this.closePath(); - break; - case OPS.closeStroke: - this.closeStroke(); - break; - case OPS.closeFillStroke: - this.closeFillStroke(); - break; - case OPS.nextLine: - this.nextLine(); - break; - case OPS.transform: - this.transform(args[0], args[1], args[2], args[3], - args[4], args[5]); - break; - case OPS.constructPath: - this.constructPath(args[0], args[1]); - break; - case OPS.endPath: - this.endPath(); - break; - case 92: - this.group(opTree[x].items); - break; - default: - warn('Unimplemented method '+ fn); - break; - } - } - }, - - setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) { - this.current.wordSpacing = wordSpacing; - }, - - setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) { - this.current.charSpacing = charSpacing; - }, - - nextLine: function SVGGraphics_nextLine() { - this.moveText(0, this.current.leading); - }, - - setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) { - var current = this.current; - this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f]; - - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; - - current.xcoords = []; - current.tspan = document.createElementNS(NS, 'svg:tspan'); - current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); - current.tspan.setAttributeNS(null, 'font-size', - pf(current.fontSize) + 'px'); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - - current.txtElement = document.createElementNS(NS, 'svg:text'); - current.txtElement.appendChild(current.tspan); - }, - - beginText: function SVGGraphics_beginText() { - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; - this.current.textMatrix = IDENTITY_MATRIX; - this.current.lineMatrix = IDENTITY_MATRIX; - this.current.tspan = document.createElementNS(NS, 'svg:tspan'); - this.current.txtElement = document.createElementNS(NS, 'svg:text'); - this.current.txtgrp = document.createElementNS(NS, 'svg:g'); - this.current.xcoords = []; - }, - - moveText: function SVGGraphics_moveText(x, y) { - var current = this.current; - this.current.x = this.current.lineX += x; - this.current.y = this.current.lineY += y; - - current.xcoords = []; - current.tspan = document.createElementNS(NS, 'svg:tspan'); - current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); - current.tspan.setAttributeNS(null, 'font-size', - pf(current.fontSize) + 'px'); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - }, - - showText: function SVGGraphics_showText(glyphs) { - var current = this.current; - var font = current.font; - var fontSize = current.fontSize; - - if (fontSize === 0) { - return; - } - - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var fontDirection = current.fontDirection; - var textHScale = current.textHScale * fontDirection; - var glyphsLength = glyphs.length; - var vertical = font.vertical; - var widthAdvanceScale = fontSize * current.fontMatrix[0]; - - var x = 0, i; - for (i = 0; i < glyphsLength; ++i) { - var glyph = glyphs[i]; - if (glyph === null) { - // word break - x += fontDirection * wordSpacing; - continue; - } else if (isNum(glyph)) { - x += -glyph * fontSize * 0.001; - continue; - } - current.xcoords.push(current.x + x * textHScale); - - var width = glyph.width; - var character = glyph.fontChar; - var charWidth = width * widthAdvanceScale + charSpacing * fontDirection; - x += charWidth; - - current.tspan.textContent += character; - } - if (vertical) { - current.y -= x * textHScale; - } else { - current.x += x * textHScale; - } - - current.tspan.setAttributeNS(null, 'x', - current.xcoords.map(pf).join(' ')); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); - current.tspan.setAttributeNS(null, 'font-size', - pf(current.fontSize) + 'px'); - if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { - current.tspan.setAttributeNS(null, 'font-style', current.fontStyle); - } - if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { - current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight); - } - if (current.fillColor !== SVG_DEFAULTS.fillColor) { - current.tspan.setAttributeNS(null, 'fill', current.fillColor); - } - - current.txtElement.setAttributeNS(null, 'transform', - pm(current.textMatrix) + - ' scale(1, -1)' ); - current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve'); - current.txtElement.appendChild(current.tspan); - current.txtgrp.appendChild(current.txtElement); - - this.tgrp.appendChild(current.txtElement); - - }, - - setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) { - this.setLeading(-y); - this.moveText(x, y); - }, - - addFontStyle: function SVGGraphics_addFontStyle(fontObj) { - if (!this.cssStyle) { - this.cssStyle = document.createElementNS(NS, 'svg:style'); - this.cssStyle.setAttributeNS(null, 'type', 'text/css'); - this.defs.appendChild(this.cssStyle); - } - - var url = PDFJS.createObjectURL(fontObj.data, fontObj.mimetype); - this.cssStyle.textContent += - '@font-face { font-family: "' + fontObj.loadedName + '";' + - ' src: url(' + url + '); }\n'; - }, - - setFont: function SVGGraphics_setFont(details) { - var current = this.current; - var fontObj = this.commonObjs.get(details[0]); - var size = details[1]; - this.current.font = fontObj; - - if (this.embedFonts && fontObj.data && - !this.embeddedFonts[fontObj.loadedName]) { - this.addFontStyle(fontObj); - this.embeddedFonts[fontObj.loadedName] = fontObj; - } - - current.fontMatrix = (fontObj.fontMatrix ? - fontObj.fontMatrix : FONT_IDENTITY_MATRIX); - - var bold = fontObj.black ? (fontObj.bold ? 'bolder' : 'bold') : - (fontObj.bold ? 'bold' : 'normal'); - var italic = fontObj.italic ? 'italic' : 'normal'; - - if (size < 0) { - size = -size; - current.fontDirection = -1; - } else { - current.fontDirection = 1; - } - current.fontSize = size; - current.fontFamily = fontObj.loadedName; - current.fontWeight = bold; - current.fontStyle = italic; - - current.tspan = document.createElementNS(NS, 'svg:tspan'); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - current.xcoords = []; - }, - - endText: function SVGGraphics_endText() { - if (this.current.pendingClip) { - this.cgrp.appendChild(this.tgrp); - this.pgrp.appendChild(this.cgrp); - } else { - this.pgrp.appendChild(this.tgrp); - } - this.tgrp = document.createElementNS(NS, 'svg:g'); - this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); - }, - - // Path properties - setLineWidth: function SVGGraphics_setLineWidth(width) { - this.current.lineWidth = width; - }, - setLineCap: function SVGGraphics_setLineCap(style) { - this.current.lineCap = LINE_CAP_STYLES[style]; - }, - setLineJoin: function SVGGraphics_setLineJoin(style) { - this.current.lineJoin = LINE_JOIN_STYLES[style]; - }, - setMiterLimit: function SVGGraphics_setMiterLimit(limit) { - this.current.miterLimit = limit; - }, - setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) { - var color = Util.makeCssRgb(r, g, b); - this.current.strokeColor = color; - }, - setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) { - var color = Util.makeCssRgb(r, g, b); - this.current.fillColor = color; - this.current.tspan = document.createElementNS(NS, 'svg:tspan'); - this.current.xcoords = []; - }, - setDash: function SVGGraphics_setDash(dashArray, dashPhase) { - this.current.dashArray = dashArray; - this.current.dashPhase = dashPhase; - }, - - constructPath: function SVGGraphics_constructPath(ops, args) { - var current = this.current; - var x = current.x, y = current.y; - current.path = document.createElementNS(NS, 'svg:path'); - var d = []; - var opLength = ops.length; - - for (var i = 0, j = 0; i < opLength; i++) { - switch (ops[i] | 0) { - case OPS.rectangle: - x = args[j++]; - y = args[j++]; - var width = args[j++]; - var height = args[j++]; - var xw = x + width; - var yh = y + height; - d.push('M', pf(x), pf(y), 'L', pf(xw) , pf(y), 'L', pf(xw), pf(yh), - 'L', pf(x), pf(yh), 'Z'); - break; - case OPS.moveTo: - x = args[j++]; - y = args[j++]; - d.push('M', pf(x), pf(y)); - break; - case OPS.lineTo: - x = args[j++]; - y = args[j++]; - d.push('L', pf(x) , pf(y)); - break; - case OPS.curveTo: - x = args[j + 4]; - y = args[j + 5]; - d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), - pf(args[j + 3]), pf(x), pf(y)); - j += 6; - break; - case OPS.curveTo2: - x = args[j + 2]; - y = args[j + 3]; - d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), - pf(args[j + 2]), pf(args[j + 3])); - j += 4; - break; - case OPS.curveTo3: - x = args[j + 2]; - y = args[j + 3]; - d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), - pf(x), pf(y)); - j += 4; - break; - case OPS.closePath: - d.push('Z'); - break; - } - } - current.path.setAttributeNS(null, 'd', d.join(' ')); - current.path.setAttributeNS(null, 'stroke-miterlimit', - pf(current.miterLimit)); - current.path.setAttributeNS(null, 'stroke-linecap', current.lineCap); - current.path.setAttributeNS(null, 'stroke-linejoin', current.lineJoin); - current.path.setAttributeNS(null, 'stroke-width', - pf(current.lineWidth) + 'px'); - current.path.setAttributeNS(null, 'stroke-dasharray', - current.dashArray.map(pf).join(' ')); - current.path.setAttributeNS(null, 'stroke-dashoffset', - pf(current.dashPhase) + 'px'); - current.path.setAttributeNS(null, 'fill', 'none'); - - this.tgrp.appendChild(current.path); - if (current.pendingClip) { - this.cgrp.appendChild(this.tgrp); - this.pgrp.appendChild(this.cgrp); - } else { - this.pgrp.appendChild(this.tgrp); - } - // Saving a reference in current.element so that it can be addressed - // in 'fill' and 'stroke' - current.element = current.path; - current.setCurrentPoint(x, y); - }, - - endPath: function SVGGraphics_endPath() { - var current = this.current; - if (current.pendingClip) { - this.cgrp.appendChild(this.tgrp); - this.pgrp.appendChild(this.cgrp); - } else { - this.pgrp.appendChild(this.tgrp); - } - this.tgrp = document.createElementNS(NS, 'svg:g'); - this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); - }, - - clip: function SVGGraphics_clip(type) { - var current = this.current; - // Add current path to clipping path - current.clipId = 'clippath' + clipCount; - clipCount++; - this.clippath = document.createElementNS(NS, 'svg:clipPath'); - this.clippath.setAttributeNS(null, 'id', current.clipId); - var clipElement = current.element.cloneNode(); - if (type === 'evenodd') { - clipElement.setAttributeNS(null, 'clip-rule', 'evenodd'); - } else { - clipElement.setAttributeNS(null, 'clip-rule', 'nonzero'); - } - this.clippath.setAttributeNS(null, 'transform', pm(this.transformMatrix)); - this.clippath.appendChild(clipElement); - this.defs.appendChild(this.clippath); - - // Create a new group with that attribute - current.pendingClip = true; - this.cgrp = document.createElementNS(NS, 'svg:g'); - this.cgrp.setAttributeNS(null, 'clip-path', - 'url(#' + current.clipId + ')'); - this.pgrp.appendChild(this.cgrp); - }, - - closePath: function SVGGraphics_closePath() { - var current = this.current; - var d = current.path.getAttributeNS(null, 'd'); - d += 'Z'; - current.path.setAttributeNS(null, 'd', d); - }, - - setLeading: function SVGGraphics_setLeading(leading) { - this.current.leading = -leading; - }, - - setTextRise: function SVGGraphics_setTextRise(textRise) { - this.current.textRise = textRise; - }, - - setHScale: function SVGGraphics_setHScale(scale) { - this.current.textHScale = scale / 100; - }, - - setGState: function SVGGraphics_setGState(states) { - for (var i = 0, ii = states.length; i < ii; i++) { - var state = states[i]; - var key = state[0]; - var value = state[1]; - - switch (key) { - case 'LW': - this.setLineWidth(value); - break; - case 'LC': - this.setLineCap(value); - break; - case 'LJ': - this.setLineJoin(value); - break; - case 'ML': - this.setMiterLimit(value); - break; - case 'D': - this.setDash(value[0], value[1]); - break; - case 'RI': - break; - case 'FL': - break; - case 'Font': - this.setFont(value); - break; - case 'CA': - break; - case 'ca': - break; - case 'BM': - break; - case 'SMask': - break; - } - } - }, - - fill: function SVGGraphics_fill() { - var current = this.current; - current.element.setAttributeNS(null, 'fill', current.fillColor); - }, - - stroke: function SVGGraphics_stroke() { - var current = this.current; - current.element.setAttributeNS(null, 'stroke', current.strokeColor); - current.element.setAttributeNS(null, 'fill', 'none'); - }, - - eoFill: function SVGGraphics_eoFill() { - var current = this.current; - current.element.setAttributeNS(null, 'fill', current.fillColor); - current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); - }, - - fillStroke: function SVGGraphics_fillStroke() { - // Order is important since stroke wants fill to be none. - // First stroke, then if fill needed, it will be overwritten. - this.stroke(); - this.fill(); - }, - - eoFillStroke: function SVGGraphics_eoFillStroke() { - this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); - this.fillStroke(); - }, - - closeStroke: function SVGGraphics_closeStroke() { - this.closePath(); - this.stroke(); - }, - - closeFillStroke: function SVGGraphics_closeFillStroke() { - this.closePath(); - this.fillStroke(); - }, - - paintSolidColorImageMask: - function SVGGraphics_paintSolidColorImageMask() { - var current = this.current; - var rect = document.createElementNS(NS, 'svg:rect'); - rect.setAttributeNS(null, 'x', '0'); - rect.setAttributeNS(null, 'y', '0'); - rect.setAttributeNS(null, 'width', '1px'); - rect.setAttributeNS(null, 'height', '1px'); - rect.setAttributeNS(null, 'fill', current.fillColor); - this.tgrp.appendChild(rect); - }, - - paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) { - var current = this.current; - var imgObj = this.objs.get(objId); - var imgEl = document.createElementNS(NS, 'svg:image'); - imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src); - imgEl.setAttributeNS(null, 'width', imgObj.width + 'px'); - imgEl.setAttributeNS(null, 'height', imgObj.height + 'px'); - imgEl.setAttributeNS(null, 'x', '0'); - imgEl.setAttributeNS(null, 'y', pf(-h)); - imgEl.setAttributeNS(null, 'transform', - 'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')'); - - this.tgrp.appendChild(imgEl); - if (current.pendingClip) { - this.cgrp.appendChild(this.tgrp); - this.pgrp.appendChild(this.cgrp); - } else { - this.pgrp.appendChild(this.tgrp); - } - }, - - paintImageXObject: function SVGGraphics_paintImageXObject(objId) { - var imgData = this.objs.get(objId); - if (!imgData) { - warn('Dependent image isn\'t ready yet'); - return; - } - this.paintInlineImageXObject(imgData); - }, - - paintInlineImageXObject: - function SVGGraphics_paintInlineImageXObject(imgData, mask) { - var current = this.current; - var width = imgData.width; - var height = imgData.height; - - var imgSrc = convertImgDataToPng(imgData); - var cliprect = document.createElementNS(NS, 'svg:rect'); - cliprect.setAttributeNS(null, 'x', '0'); - cliprect.setAttributeNS(null, 'y', '0'); - cliprect.setAttributeNS(null, 'width', pf(width)); - cliprect.setAttributeNS(null, 'height', pf(height)); - current.element = cliprect; - this.clip('nonzero'); - var imgEl = document.createElementNS(NS, 'svg:image'); - imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc); - imgEl.setAttributeNS(null, 'x', '0'); - imgEl.setAttributeNS(null, 'y', pf(-height)); - imgEl.setAttributeNS(null, 'width', pf(width) + 'px'); - imgEl.setAttributeNS(null, 'height', pf(height) + 'px'); - imgEl.setAttributeNS(null, 'transform', - 'scale(' + pf(1 / width) + ' ' + - pf(-1 / height) + ')'); - if (mask) { - mask.appendChild(imgEl); - } else { - this.tgrp.appendChild(imgEl); - } - if (current.pendingClip) { - this.cgrp.appendChild(this.tgrp); - this.pgrp.appendChild(this.cgrp); - } else { - this.pgrp.appendChild(this.tgrp); - } - }, - - paintImageMaskXObject: - function SVGGraphics_paintImageMaskXObject(imgData) { - var current = this.current; - var width = imgData.width; - var height = imgData.height; - var fillColor = current.fillColor; - - current.maskId = 'mask' + maskCount++; - var mask = document.createElementNS(NS, 'svg:mask'); - mask.setAttributeNS(null, 'id', current.maskId); - - var rect = document.createElementNS(NS, 'svg:rect'); - rect.setAttributeNS(null, 'x', '0'); - rect.setAttributeNS(null, 'y', '0'); - rect.setAttributeNS(null, 'width', pf(width)); - rect.setAttributeNS(null, 'height', pf(height)); - rect.setAttributeNS(null, 'fill', fillColor); - rect.setAttributeNS(null, 'mask', 'url(#' + current.maskId +')'); - this.defs.appendChild(mask); - this.tgrp.appendChild(rect); - - this.paintInlineImageXObject(imgData, mask); - }, - - paintFormXObjectBegin: - function SVGGraphics_paintFormXObjectBegin(matrix, bbox) { - this.save(); - - if (isArray(matrix) && matrix.length === 6) { - this.transform(matrix[0], matrix[1], matrix[2], - matrix[3], matrix[4], matrix[5]); - } - - if (isArray(bbox) && bbox.length === 4) { - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; - - var cliprect = document.createElementNS(NS, 'svg:rect'); - cliprect.setAttributeNS(null, 'x', bbox[0]); - cliprect.setAttributeNS(null, 'y', bbox[1]); - cliprect.setAttributeNS(null, 'width', pf(width)); - cliprect.setAttributeNS(null, 'height', pf(height)); - this.current.element = cliprect; - this.clip('nonzero'); - this.endPath(); - } - }, - - paintFormXObjectEnd: - function SVGGraphics_paintFormXObjectEnd() { - this.restore(); - } - }; - return SVGGraphics; -})(); - -PDFJS.SVGGraphics = SVGGraphics; - - -}).call((typeof window === 'undefined') ? this : window); - -if (!PDFJS.workerSrc && typeof document !== 'undefined') { - // workerSrc is not set -- using last script url to define default location - PDFJS.workerSrc = (function () { - 'use strict'; - var scriptTagContainer = document.body || - document.getElementsByTagName('head')[0]; - var pdfjsSrc = scriptTagContainer.lastChild.src; - return pdfjsSrc && pdfjsSrc.replace(/\.js$/i, '.worker.js'); - })(); -} - - diff --git a/public/assets/plugins/angular-pdf/example/js/lib/pdf.worker.js b/public/assets/plugins/angular-pdf/example/js/lib/pdf.worker.js deleted file mode 100644 index c025c14..0000000 --- a/public/assets/plugins/angular-pdf/example/js/lib/pdf.worker.js +++ /dev/null @@ -1,39372 +0,0 @@ -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ -/* Copyright 2012 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*jshint globalstrict: false */ -/* globals PDFJS */ - -// Initializing PDFJS global object (if still undefined) -if (typeof PDFJS === 'undefined') { - (typeof window !== 'undefined' ? window : this).PDFJS = {}; -} - -PDFJS.version = '1.1.159'; -PDFJS.build = '82536f8'; - -(function pdfjsWrapper() { - // Use strict in our context only - users might not want it - 'use strict'; - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ -/* Copyright 2012 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* globals Cmd, ColorSpace, Dict, MozBlobBuilder, Name, PDFJS, Ref, URL, - Promise */ - -'use strict'; - -var globalScope = (typeof window === 'undefined') ? this : window; - -var isWorker = (typeof window === 'undefined'); - -var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; - -var TextRenderingMode = { - FILL: 0, - STROKE: 1, - FILL_STROKE: 2, - INVISIBLE: 3, - FILL_ADD_TO_PATH: 4, - STROKE_ADD_TO_PATH: 5, - FILL_STROKE_ADD_TO_PATH: 6, - ADD_TO_PATH: 7, - FILL_STROKE_MASK: 3, - ADD_TO_PATH_FLAG: 4 -}; - -var ImageKind = { - GRAYSCALE_1BPP: 1, - RGB_24BPP: 2, - RGBA_32BPP: 3 -}; - -var AnnotationType = { - WIDGET: 1, - TEXT: 2, - LINK: 3 -}; - -var StreamType = { - UNKNOWN: 0, - FLATE: 1, - LZW: 2, - DCT: 3, - JPX: 4, - JBIG: 5, - A85: 6, - AHX: 7, - CCF: 8, - RL: 9 -}; - -var FontType = { - UNKNOWN: 0, - TYPE1: 1, - TYPE1C: 2, - CIDFONTTYPE0: 3, - CIDFONTTYPE0C: 4, - TRUETYPE: 5, - CIDFONTTYPE2: 6, - TYPE3: 7, - OPENTYPE: 8, - TYPE0: 9, - MMTYPE1: 10 -}; - -// The global PDFJS object exposes the API -// In production, it will be declared outside a global wrapper -// In development, it will be declared here -if (!globalScope.PDFJS) { - globalScope.PDFJS = {}; -} - -globalScope.PDFJS.pdfBug = false; - -PDFJS.VERBOSITY_LEVELS = { - errors: 0, - warnings: 1, - infos: 5 -}; - -// All the possible operations for an operator list. -var OPS = PDFJS.OPS = { - // Intentionally start from 1 so it is easy to spot bad operators that will be - // 0's. - dependency: 1, - setLineWidth: 2, - setLineCap: 3, - setLineJoin: 4, - setMiterLimit: 5, - setDash: 6, - setRenderingIntent: 7, - setFlatness: 8, - setGState: 9, - save: 10, - restore: 11, - transform: 12, - moveTo: 13, - lineTo: 14, - curveTo: 15, - curveTo2: 16, - curveTo3: 17, - closePath: 18, - rectangle: 19, - stroke: 20, - closeStroke: 21, - fill: 22, - eoFill: 23, - fillStroke: 24, - eoFillStroke: 25, - closeFillStroke: 26, - closeEOFillStroke: 27, - endPath: 28, - clip: 29, - eoClip: 30, - beginText: 31, - endText: 32, - setCharSpacing: 33, - setWordSpacing: 34, - setHScale: 35, - setLeading: 36, - setFont: 37, - setTextRenderingMode: 38, - setTextRise: 39, - moveText: 40, - setLeadingMoveText: 41, - setTextMatrix: 42, - nextLine: 43, - showText: 44, - showSpacedText: 45, - nextLineShowText: 46, - nextLineSetSpacingShowText: 47, - setCharWidth: 48, - setCharWidthAndBounds: 49, - setStrokeColorSpace: 50, - setFillColorSpace: 51, - setStrokeColor: 52, - setStrokeColorN: 53, - setFillColor: 54, - setFillColorN: 55, - setStrokeGray: 56, - setFillGray: 57, - setStrokeRGBColor: 58, - setFillRGBColor: 59, - setStrokeCMYKColor: 60, - setFillCMYKColor: 61, - shadingFill: 62, - beginInlineImage: 63, - beginImageData: 64, - endInlineImage: 65, - paintXObject: 66, - markPoint: 67, - markPointProps: 68, - beginMarkedContent: 69, - beginMarkedContentProps: 70, - endMarkedContent: 71, - beginCompat: 72, - endCompat: 73, - paintFormXObjectBegin: 74, - paintFormXObjectEnd: 75, - beginGroup: 76, - endGroup: 77, - beginAnnotations: 78, - endAnnotations: 79, - beginAnnotation: 80, - endAnnotation: 81, - paintJpegXObject: 82, - paintImageMaskXObject: 83, - paintImageMaskXObjectGroup: 84, - paintImageXObject: 85, - paintInlineImageXObject: 86, - paintInlineImageXObjectGroup: 87, - paintImageXObjectRepeat: 88, - paintImageMaskXObjectRepeat: 89, - paintSolidColorImageMask: 90, - constructPath: 91 -}; - -// A notice for devs. These are good for things that are helpful to devs, such -// as warning that Workers were disabled, which is important to devs but not -// end users. -function info(msg) { - if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.infos) { - console.log('Info: ' + msg); - } -} - -// Non-fatal warnings. -function warn(msg) { - if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.warnings) { - console.log('Warning: ' + msg); - } -} - -// Fatal errors that should trigger the fallback UI and halt execution by -// throwing an exception. -function error(msg) { - if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.errors) { - console.log('Error: ' + msg); - console.log(backtrace()); - } - UnsupportedManager.notify(UNSUPPORTED_FEATURES.unknown); - throw new Error(msg); -} - -function backtrace() { - try { - throw new Error(); - } catch (e) { - return e.stack ? e.stack.split('\n').slice(2).join('\n') : ''; - } -} - -function assert(cond, msg) { - if (!cond) { - error(msg); - } -} - -var UNSUPPORTED_FEATURES = PDFJS.UNSUPPORTED_FEATURES = { - unknown: 'unknown', - forms: 'forms', - javaScript: 'javaScript', - smask: 'smask', - shadingPattern: 'shadingPattern', - font: 'font' -}; - -var UnsupportedManager = PDFJS.UnsupportedManager = - (function UnsupportedManagerClosure() { - var listeners = []; - return { - listen: function (cb) { - listeners.push(cb); - }, - notify: function (featureId) { - warn('Unsupported feature "' + featureId + '"'); - for (var i = 0, ii = listeners.length; i < ii; i++) { - listeners[i](featureId); - } - } - }; -})(); - -// Combines two URLs. The baseUrl shall be absolute URL. If the url is an -// absolute URL, it will be returned as is. -function combineUrl(baseUrl, url) { - if (!url) { - return baseUrl; - } - if (/^[a-z][a-z0-9+\-.]*:/i.test(url)) { - return url; - } - var i; - if (url.charAt(0) === '/') { - // absolute path - i = baseUrl.indexOf('://'); - if (url.charAt(1) === '/') { - ++i; - } else { - i = baseUrl.indexOf('/', i + 3); - } - return baseUrl.substring(0, i) + url; - } else { - // relative path - var pathLength = baseUrl.length; - i = baseUrl.lastIndexOf('#'); - pathLength = i >= 0 ? i : pathLength; - i = baseUrl.lastIndexOf('?', pathLength); - pathLength = i >= 0 ? i : pathLength; - var prefixLength = baseUrl.lastIndexOf('/', pathLength); - return baseUrl.substring(0, prefixLength + 1) + url; - } -} - -// Validates if URL is safe and allowed, e.g. to avoid XSS. -function isValidUrl(url, allowRelative) { - if (!url) { - return false; - } - // RFC 3986 (http://tools.ietf.org/html/rfc3986#section-3.1) - // scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) - var protocol = /^[a-z][a-z0-9+\-.]*(?=:)/i.exec(url); - if (!protocol) { - return allowRelative; - } - protocol = protocol[0].toLowerCase(); - switch (protocol) { - case 'http': - case 'https': - case 'ftp': - case 'mailto': - case 'tel': - return true; - default: - return false; - } -} -PDFJS.isValidUrl = isValidUrl; - -function shadow(obj, prop, value) { - Object.defineProperty(obj, prop, { value: value, - enumerable: true, - configurable: true, - writable: false }); - return value; -} -PDFJS.shadow = shadow; - -var PasswordResponses = PDFJS.PasswordResponses = { - NEED_PASSWORD: 1, - INCORRECT_PASSWORD: 2 -}; - -var PasswordException = (function PasswordExceptionClosure() { - function PasswordException(msg, code) { - this.name = 'PasswordException'; - this.message = msg; - this.code = code; - } - - PasswordException.prototype = new Error(); - PasswordException.constructor = PasswordException; - - return PasswordException; -})(); -PDFJS.PasswordException = PasswordException; - -var UnknownErrorException = (function UnknownErrorExceptionClosure() { - function UnknownErrorException(msg, details) { - this.name = 'UnknownErrorException'; - this.message = msg; - this.details = details; - } - - UnknownErrorException.prototype = new Error(); - UnknownErrorException.constructor = UnknownErrorException; - - return UnknownErrorException; -})(); -PDFJS.UnknownErrorException = UnknownErrorException; - -var InvalidPDFException = (function InvalidPDFExceptionClosure() { - function InvalidPDFException(msg) { - this.name = 'InvalidPDFException'; - this.message = msg; - } - - InvalidPDFException.prototype = new Error(); - InvalidPDFException.constructor = InvalidPDFException; - - return InvalidPDFException; -})(); -PDFJS.InvalidPDFException = InvalidPDFException; - -var MissingPDFException = (function MissingPDFExceptionClosure() { - function MissingPDFException(msg) { - this.name = 'MissingPDFException'; - this.message = msg; - } - - MissingPDFException.prototype = new Error(); - MissingPDFException.constructor = MissingPDFException; - - return MissingPDFException; -})(); -PDFJS.MissingPDFException = MissingPDFException; - -var UnexpectedResponseException = - (function UnexpectedResponseExceptionClosure() { - function UnexpectedResponseException(msg, status) { - this.name = 'UnexpectedResponseException'; - this.message = msg; - this.status = status; - } - - UnexpectedResponseException.prototype = new Error(); - UnexpectedResponseException.constructor = UnexpectedResponseException; - - return UnexpectedResponseException; -})(); -PDFJS.UnexpectedResponseException = UnexpectedResponseException; - -var NotImplementedException = (function NotImplementedExceptionClosure() { - function NotImplementedException(msg) { - this.message = msg; - } - - NotImplementedException.prototype = new Error(); - NotImplementedException.prototype.name = 'NotImplementedException'; - NotImplementedException.constructor = NotImplementedException; - - return NotImplementedException; -})(); - -var MissingDataException = (function MissingDataExceptionClosure() { - function MissingDataException(begin, end) { - this.begin = begin; - this.end = end; - this.message = 'Missing data [' + begin + ', ' + end + ')'; - } - - MissingDataException.prototype = new Error(); - MissingDataException.prototype.name = 'MissingDataException'; - MissingDataException.constructor = MissingDataException; - - return MissingDataException; -})(); - -var XRefParseException = (function XRefParseExceptionClosure() { - function XRefParseException(msg) { - this.message = msg; - } - - XRefParseException.prototype = new Error(); - XRefParseException.prototype.name = 'XRefParseException'; - XRefParseException.constructor = XRefParseException; - - return XRefParseException; -})(); - - -function bytesToString(bytes) { - assert(bytes !== null && typeof bytes === 'object' && - bytes.length !== undefined, 'Invalid argument for bytesToString'); - var length = bytes.length; - var MAX_ARGUMENT_COUNT = 8192; - if (length < MAX_ARGUMENT_COUNT) { - return String.fromCharCode.apply(null, bytes); - } - var strBuf = []; - for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { - var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); - var chunk = bytes.subarray(i, chunkEnd); - strBuf.push(String.fromCharCode.apply(null, chunk)); - } - return strBuf.join(''); -} - -function stringToBytes(str) { - assert(typeof str === 'string', 'Invalid argument for stringToBytes'); - var length = str.length; - var bytes = new Uint8Array(length); - for (var i = 0; i < length; ++i) { - bytes[i] = str.charCodeAt(i) & 0xFF; - } - return bytes; -} - -function string32(value) { - return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff, - (value >> 8) & 0xff, value & 0xff); -} - -function log2(x) { - var n = 1, i = 0; - while (x > n) { - n <<= 1; - i++; - } - return i; -} - -function readInt8(data, start) { - return (data[start] << 24) >> 24; -} - -function readUint16(data, offset) { - return (data[offset] << 8) | data[offset + 1]; -} - -function readUint32(data, offset) { - return ((data[offset] << 24) | (data[offset + 1] << 16) | - (data[offset + 2] << 8) | data[offset + 3]) >>> 0; -} - -// Lazy test the endianness of the platform -// NOTE: This will be 'true' for simulated TypedArrays -function isLittleEndian() { - var buffer8 = new Uint8Array(2); - buffer8[0] = 1; - var buffer16 = new Uint16Array(buffer8.buffer); - return (buffer16[0] === 1); -} - -Object.defineProperty(PDFJS, 'isLittleEndian', { - configurable: true, - get: function PDFJS_isLittleEndian() { - return shadow(PDFJS, 'isLittleEndian', isLittleEndian()); - } -}); - - // Lazy test if the userAgant support CanvasTypedArrays -function hasCanvasTypedArrays() { - var canvas = document.createElement('canvas'); - canvas.width = canvas.height = 1; - var ctx = canvas.getContext('2d'); - var imageData = ctx.createImageData(1, 1); - return (typeof imageData.data.buffer !== 'undefined'); -} - -Object.defineProperty(PDFJS, 'hasCanvasTypedArrays', { - configurable: true, - get: function PDFJS_hasCanvasTypedArrays() { - return shadow(PDFJS, 'hasCanvasTypedArrays', hasCanvasTypedArrays()); - } -}); - -var Uint32ArrayView = (function Uint32ArrayViewClosure() { - - function Uint32ArrayView(buffer, length) { - this.buffer = buffer; - this.byteLength = buffer.length; - this.length = length === undefined ? (this.byteLength >> 2) : length; - ensureUint32ArrayViewProps(this.length); - } - Uint32ArrayView.prototype = Object.create(null); - - var uint32ArrayViewSetters = 0; - function createUint32ArrayProp(index) { - return { - get: function () { - var buffer = this.buffer, offset = index << 2; - return (buffer[offset] | (buffer[offset + 1] << 8) | - (buffer[offset + 2] << 16) | (buffer[offset + 3] << 24)) >>> 0; - }, - set: function (value) { - var buffer = this.buffer, offset = index << 2; - buffer[offset] = value & 255; - buffer[offset + 1] = (value >> 8) & 255; - buffer[offset + 2] = (value >> 16) & 255; - buffer[offset + 3] = (value >>> 24) & 255; - } - }; - } - - function ensureUint32ArrayViewProps(length) { - while (uint32ArrayViewSetters < length) { - Object.defineProperty(Uint32ArrayView.prototype, - uint32ArrayViewSetters, - createUint32ArrayProp(uint32ArrayViewSetters)); - uint32ArrayViewSetters++; - } - } - - return Uint32ArrayView; -})(); - -var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; - -var Util = PDFJS.Util = (function UtilClosure() { - function Util() {} - - var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')']; - - // makeCssRgb() can be called thousands of times. Using |rgbBuf| avoids - // creating many intermediate strings. - Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { - rgbBuf[1] = r; - rgbBuf[3] = g; - rgbBuf[5] = b; - return rgbBuf.join(''); - }; - - // Concatenates two transformation matrices together and returns the result. - Util.transform = function Util_transform(m1, m2) { - return [ - m1[0] * m2[0] + m1[2] * m2[1], - m1[1] * m2[0] + m1[3] * m2[1], - m1[0] * m2[2] + m1[2] * m2[3], - m1[1] * m2[2] + m1[3] * m2[3], - m1[0] * m2[4] + m1[2] * m2[5] + m1[4], - m1[1] * m2[4] + m1[3] * m2[5] + m1[5] - ]; - }; - - // For 2d affine transforms - Util.applyTransform = function Util_applyTransform(p, m) { - var xt = p[0] * m[0] + p[1] * m[2] + m[4]; - var yt = p[0] * m[1] + p[1] * m[3] + m[5]; - return [xt, yt]; - }; - - Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { - var d = m[0] * m[3] - m[1] * m[2]; - var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; - var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; - return [xt, yt]; - }; - - // Applies the transform to the rectangle and finds the minimum axially - // aligned bounding box. - Util.getAxialAlignedBoundingBox = - function Util_getAxialAlignedBoundingBox(r, m) { - - var p1 = Util.applyTransform(r, m); - var p2 = Util.applyTransform(r.slice(2, 4), m); - var p3 = Util.applyTransform([r[0], r[3]], m); - var p4 = Util.applyTransform([r[2], r[1]], m); - return [ - Math.min(p1[0], p2[0], p3[0], p4[0]), - Math.min(p1[1], p2[1], p3[1], p4[1]), - Math.max(p1[0], p2[0], p3[0], p4[0]), - Math.max(p1[1], p2[1], p3[1], p4[1]) - ]; - }; - - Util.inverseTransform = function Util_inverseTransform(m) { - var d = m[0] * m[3] - m[1] * m[2]; - return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, - (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; - }; - - // Apply a generic 3d matrix M on a 3-vector v: - // | a b c | | X | - // | d e f | x | Y | - // | g h i | | Z | - // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i], - // with v as [X,Y,Z] - Util.apply3dTransform = function Util_apply3dTransform(m, v) { - return [ - m[0] * v[0] + m[1] * v[1] + m[2] * v[2], - m[3] * v[0] + m[4] * v[1] + m[5] * v[2], - m[6] * v[0] + m[7] * v[1] + m[8] * v[2] - ]; - }; - - // This calculation uses Singular Value Decomposition. - // The SVD can be represented with formula A = USV. We are interested in the - // matrix S here because it represents the scale values. - Util.singularValueDecompose2dScale = - function Util_singularValueDecompose2dScale(m) { - - var transpose = [m[0], m[2], m[1], m[3]]; - - // Multiply matrix m with its transpose. - var a = m[0] * transpose[0] + m[1] * transpose[2]; - var b = m[0] * transpose[1] + m[1] * transpose[3]; - var c = m[2] * transpose[0] + m[3] * transpose[2]; - var d = m[2] * transpose[1] + m[3] * transpose[3]; - - // Solve the second degree polynomial to get roots. - var first = (a + d) / 2; - var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; - var sx = first + second || 1; - var sy = first - second || 1; - - // Scale values are the square roots of the eigenvalues. - return [Math.sqrt(sx), Math.sqrt(sy)]; - }; - - // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2) - // For coordinate systems whose origin lies in the bottom-left, this - // means normalization to (BL,TR) ordering. For systems with origin in the - // top-left, this means (TL,BR) ordering. - Util.normalizeRect = function Util_normalizeRect(rect) { - var r = rect.slice(0); // clone rect - if (rect[0] > rect[2]) { - r[0] = rect[2]; - r[2] = rect[0]; - } - if (rect[1] > rect[3]) { - r[1] = rect[3]; - r[3] = rect[1]; - } - return r; - }; - - // Returns a rectangle [x1, y1, x2, y2] corresponding to the - // intersection of rect1 and rect2. If no intersection, returns 'false' - // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2] - Util.intersect = function Util_intersect(rect1, rect2) { - function compare(a, b) { - return a - b; - } - - // Order points along the axes - var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), - orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), - result = []; - - rect1 = Util.normalizeRect(rect1); - rect2 = Util.normalizeRect(rect2); - - // X: first and second points belong to different rectangles? - if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) || - (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) { - // Intersection must be between second and third points - result[0] = orderedX[1]; - result[2] = orderedX[2]; - } else { - return false; - } - - // Y: first and second points belong to different rectangles? - if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) || - (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) { - // Intersection must be between second and third points - result[1] = orderedY[1]; - result[3] = orderedY[2]; - } else { - return false; - } - - return result; - }; - - Util.sign = function Util_sign(num) { - return num < 0 ? -1 : 1; - }; - - Util.appendToArray = function Util_appendToArray(arr1, arr2) { - Array.prototype.push.apply(arr1, arr2); - }; - - Util.prependToArray = function Util_prependToArray(arr1, arr2) { - Array.prototype.unshift.apply(arr1, arr2); - }; - - Util.extendObj = function extendObj(obj1, obj2) { - for (var key in obj2) { - obj1[key] = obj2[key]; - } - }; - - Util.getInheritableProperty = function Util_getInheritableProperty(dict, - name) { - while (dict && !dict.has(name)) { - dict = dict.get('Parent'); - } - if (!dict) { - return null; - } - return dict.get(name); - }; - - Util.inherit = function Util_inherit(sub, base, prototype) { - sub.prototype = Object.create(base.prototype); - sub.prototype.constructor = sub; - for (var prop in prototype) { - sub.prototype[prop] = prototype[prop]; - } - }; - - Util.loadScript = function Util_loadScript(src, callback) { - var script = document.createElement('script'); - var loaded = false; - script.setAttribute('src', src); - if (callback) { - script.onload = function() { - if (!loaded) { - callback(); - } - loaded = true; - }; - } - document.getElementsByTagName('head')[0].appendChild(script); - }; - - return Util; -})(); - -/** - * PDF page viewport created based on scale, rotation and offset. - * @class - * @alias PDFJS.PageViewport - */ -var PageViewport = PDFJS.PageViewport = (function PageViewportClosure() { - /** - * @constructor - * @private - * @param viewBox {Array} xMin, yMin, xMax and yMax coordinates. - * @param scale {number} scale of the viewport. - * @param rotation {number} rotations of the viewport in degrees. - * @param offsetX {number} offset X - * @param offsetY {number} offset Y - * @param dontFlip {boolean} if true, axis Y will not be flipped. - */ - function PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) { - this.viewBox = viewBox; - this.scale = scale; - this.rotation = rotation; - this.offsetX = offsetX; - this.offsetY = offsetY; - - // creating transform to convert pdf coordinate system to the normal - // canvas like coordinates taking in account scale and rotation - var centerX = (viewBox[2] + viewBox[0]) / 2; - var centerY = (viewBox[3] + viewBox[1]) / 2; - var rotateA, rotateB, rotateC, rotateD; - rotation = rotation % 360; - rotation = rotation < 0 ? rotation + 360 : rotation; - switch (rotation) { - case 180: - rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1; - break; - case 90: - rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0; - break; - case 270: - rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0; - break; - //case 0: - default: - rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1; - break; - } - - if (dontFlip) { - rotateC = -rotateC; rotateD = -rotateD; - } - - var offsetCanvasX, offsetCanvasY; - var width, height; - if (rotateA === 0) { - offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; - offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; - width = Math.abs(viewBox[3] - viewBox[1]) * scale; - height = Math.abs(viewBox[2] - viewBox[0]) * scale; - } else { - offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; - offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; - width = Math.abs(viewBox[2] - viewBox[0]) * scale; - height = Math.abs(viewBox[3] - viewBox[1]) * scale; - } - // creating transform for the following operations: - // translate(-centerX, -centerY), rotate and flip vertically, - // scale, and translate(offsetCanvasX, offsetCanvasY) - this.transform = [ - rotateA * scale, - rotateB * scale, - rotateC * scale, - rotateD * scale, - offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, - offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY - ]; - - this.width = width; - this.height = height; - this.fontScale = scale; - } - PageViewport.prototype = /** @lends PDFJS.PageViewport.prototype */ { - /** - * Clones viewport with additional properties. - * @param args {Object} (optional) If specified, may contain the 'scale' or - * 'rotation' properties to override the corresponding properties in - * the cloned viewport. - * @returns {PDFJS.PageViewport} Cloned viewport. - */ - clone: function PageViewPort_clone(args) { - args = args || {}; - var scale = 'scale' in args ? args.scale : this.scale; - var rotation = 'rotation' in args ? args.rotation : this.rotation; - return new PageViewport(this.viewBox.slice(), scale, rotation, - this.offsetX, this.offsetY, args.dontFlip); - }, - /** - * Converts PDF point to the viewport coordinates. For examples, useful for - * converting PDF location into canvas pixel coordinates. - * @param x {number} X coordinate. - * @param y {number} Y coordinate. - * @returns {Object} Object that contains 'x' and 'y' properties of the - * point in the viewport coordinate space. - * @see {@link convertToPdfPoint} - * @see {@link convertToViewportRectangle} - */ - convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) { - return Util.applyTransform([x, y], this.transform); - }, - /** - * Converts PDF rectangle to the viewport coordinates. - * @param rect {Array} xMin, yMin, xMax and yMax coordinates. - * @returns {Array} Contains corresponding coordinates of the rectangle - * in the viewport coordinate space. - * @see {@link convertToViewportPoint} - */ - convertToViewportRectangle: - function PageViewport_convertToViewportRectangle(rect) { - var tl = Util.applyTransform([rect[0], rect[1]], this.transform); - var br = Util.applyTransform([rect[2], rect[3]], this.transform); - return [tl[0], tl[1], br[0], br[1]]; - }, - /** - * Converts viewport coordinates to the PDF location. For examples, useful - * for converting canvas pixel location into PDF one. - * @param x {number} X coordinate. - * @param y {number} Y coordinate. - * @returns {Object} Object that contains 'x' and 'y' properties of the - * point in the PDF coordinate space. - * @see {@link convertToViewportPoint} - */ - convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) { - return Util.applyInverseTransform([x, y], this.transform); - } - }; - return PageViewport; -})(); - -var PDFStringTranslateTable = [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, - 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, - 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, - 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC -]; - -function stringToPDFString(str) { - var i, n = str.length, strBuf = []; - if (str[0] === '\xFE' && str[1] === '\xFF') { - // UTF16BE BOM - for (i = 2; i < n; i += 2) { - strBuf.push(String.fromCharCode( - (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1))); - } - } else { - for (i = 0; i < n; ++i) { - var code = PDFStringTranslateTable[str.charCodeAt(i)]; - strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); - } - } - return strBuf.join(''); -} - -function stringToUTF8String(str) { - return decodeURIComponent(escape(str)); -} - -function utf8StringToString(str) { - return unescape(encodeURIComponent(str)); -} - -function isEmptyObj(obj) { - for (var key in obj) { - return false; - } - return true; -} - -function isBool(v) { - return typeof v === 'boolean'; -} - -function isInt(v) { - return typeof v === 'number' && ((v | 0) === v); -} - -function isNum(v) { - return typeof v === 'number'; -} - -function isString(v) { - return typeof v === 'string'; -} - -function isName(v) { - return v instanceof Name; -} - -function isCmd(v, cmd) { - return v instanceof Cmd && (cmd === undefined || v.cmd === cmd); -} - -function isDict(v, type) { - if (!(v instanceof Dict)) { - return false; - } - if (!type) { - return true; - } - var dictType = v.get('Type'); - return isName(dictType) && dictType.name === type; -} - -function isArray(v) { - return v instanceof Array; -} - -function isStream(v) { - return typeof v === 'object' && v !== null && v.getBytes !== undefined; -} - -function isArrayBuffer(v) { - return typeof v === 'object' && v !== null && v.byteLength !== undefined; -} - -function isRef(v) { - return v instanceof Ref; -} - -/** - * Promise Capability object. - * - * @typedef {Object} PromiseCapability - * @property {Promise} promise - A promise object. - * @property {function} resolve - Fullfills the promise. - * @property {function} reject - Rejects the promise. - */ - -/** - * Creates a promise capability object. - * @alias PDFJS.createPromiseCapability - * - * @return {PromiseCapability} A capability object contains: - * - a Promise, resolve and reject methods. - */ -function createPromiseCapability() { - var capability = {}; - capability.promise = new Promise(function (resolve, reject) { - capability.resolve = resolve; - capability.reject = reject; - }); - return capability; -} - -PDFJS.createPromiseCapability = createPromiseCapability; - -/** - * Polyfill for Promises: - * The following promise implementation tries to generally implement the - * Promise/A+ spec. Some notable differences from other promise libaries are: - * - There currently isn't a seperate deferred and promise object. - * - Unhandled rejections eventually show an error if they aren't handled. - * - * Based off of the work in: - * https://bugzilla.mozilla.org/show_bug.cgi?id=810490 - */ -(function PromiseClosure() { - if (globalScope.Promise) { - // Promises existing in the DOM/Worker, checking presence of all/resolve - if (typeof globalScope.Promise.all !== 'function') { - globalScope.Promise.all = function (iterable) { - var count = 0, results = [], resolve, reject; - var promise = new globalScope.Promise(function (resolve_, reject_) { - resolve = resolve_; - reject = reject_; - }); - iterable.forEach(function (p, i) { - count++; - p.then(function (result) { - results[i] = result; - count--; - if (count === 0) { - resolve(results); - } - }, reject); - }); - if (count === 0) { - resolve(results); - } - return promise; - }; - } - if (typeof globalScope.Promise.resolve !== 'function') { - globalScope.Promise.resolve = function (value) { - return new globalScope.Promise(function (resolve) { resolve(value); }); - }; - } - if (typeof globalScope.Promise.reject !== 'function') { - globalScope.Promise.reject = function (reason) { - return new globalScope.Promise(function (resolve, reject) { - reject(reason); - }); - }; - } - if (typeof globalScope.Promise.prototype.catch !== 'function') { - globalScope.Promise.prototype.catch = function (onReject) { - return globalScope.Promise.prototype.then(undefined, onReject); - }; - } - return; - } - var STATUS_PENDING = 0; - var STATUS_RESOLVED = 1; - var STATUS_REJECTED = 2; - - // In an attempt to avoid silent exceptions, unhandled rejections are - // tracked and if they aren't handled in a certain amount of time an - // error is logged. - var REJECTION_TIMEOUT = 500; - - var HandlerManager = { - handlers: [], - running: false, - unhandledRejections: [], - pendingRejectionCheck: false, - - scheduleHandlers: function scheduleHandlers(promise) { - if (promise._status === STATUS_PENDING) { - return; - } - - this.handlers = this.handlers.concat(promise._handlers); - promise._handlers = []; - - if (this.running) { - return; - } - this.running = true; - - setTimeout(this.runHandlers.bind(this), 0); - }, - - runHandlers: function runHandlers() { - var RUN_TIMEOUT = 1; // ms - var timeoutAt = Date.now() + RUN_TIMEOUT; - while (this.handlers.length > 0) { - var handler = this.handlers.shift(); - - var nextStatus = handler.thisPromise._status; - var nextValue = handler.thisPromise._value; - - try { - if (nextStatus === STATUS_RESOLVED) { - if (typeof handler.onResolve === 'function') { - nextValue = handler.onResolve(nextValue); - } - } else if (typeof handler.onReject === 'function') { - nextValue = handler.onReject(nextValue); - nextStatus = STATUS_RESOLVED; - - if (handler.thisPromise._unhandledRejection) { - this.removeUnhandeledRejection(handler.thisPromise); - } - } - } catch (ex) { - nextStatus = STATUS_REJECTED; - nextValue = ex; - } - - handler.nextPromise._updateStatus(nextStatus, nextValue); - if (Date.now() >= timeoutAt) { - break; - } - } - - if (this.handlers.length > 0) { - setTimeout(this.runHandlers.bind(this), 0); - return; - } - - this.running = false; - }, - - addUnhandledRejection: function addUnhandledRejection(promise) { - this.unhandledRejections.push({ - promise: promise, - time: Date.now() - }); - this.scheduleRejectionCheck(); - }, - - removeUnhandeledRejection: function removeUnhandeledRejection(promise) { - promise._unhandledRejection = false; - for (var i = 0; i < this.unhandledRejections.length; i++) { - if (this.unhandledRejections[i].promise === promise) { - this.unhandledRejections.splice(i); - i--; - } - } - }, - - scheduleRejectionCheck: function scheduleRejectionCheck() { - if (this.pendingRejectionCheck) { - return; - } - this.pendingRejectionCheck = true; - setTimeout(function rejectionCheck() { - this.pendingRejectionCheck = false; - var now = Date.now(); - for (var i = 0; i < this.unhandledRejections.length; i++) { - if (now - this.unhandledRejections[i].time > REJECTION_TIMEOUT) { - var unhandled = this.unhandledRejections[i].promise._value; - var msg = 'Unhandled rejection: ' + unhandled; - if (unhandled.stack) { - msg += '\n' + unhandled.stack; - } - warn(msg); - this.unhandledRejections.splice(i); - i--; - } - } - if (this.unhandledRejections.length) { - this.scheduleRejectionCheck(); - } - }.bind(this), REJECTION_TIMEOUT); - } - }; - - function Promise(resolver) { - this._status = STATUS_PENDING; - this._handlers = []; - try { - resolver.call(this, this._resolve.bind(this), this._reject.bind(this)); - } catch (e) { - this._reject(e); - } - } - /** - * Builds a promise that is resolved when all the passed in promises are - * resolved. - * @param {array} array of data and/or promises to wait for. - * @return {Promise} New dependant promise. - */ - Promise.all = function Promise_all(promises) { - var resolveAll, rejectAll; - var deferred = new Promise(function (resolve, reject) { - resolveAll = resolve; - rejectAll = reject; - }); - var unresolved = promises.length; - var results = []; - if (unresolved === 0) { - resolveAll(results); - return deferred; - } - function reject(reason) { - if (deferred._status === STATUS_REJECTED) { - return; - } - results = []; - rejectAll(reason); - } - for (var i = 0, ii = promises.length; i < ii; ++i) { - var promise = promises[i]; - var resolve = (function(i) { - return function(value) { - if (deferred._status === STATUS_REJECTED) { - return; - } - results[i] = value; - unresolved--; - if (unresolved === 0) { - resolveAll(results); - } - }; - })(i); - if (Promise.isPromise(promise)) { - promise.then(resolve, reject); - } else { - resolve(promise); - } - } - return deferred; - }; - - /** - * Checks if the value is likely a promise (has a 'then' function). - * @return {boolean} true if value is thenable - */ - Promise.isPromise = function Promise_isPromise(value) { - return value && typeof value.then === 'function'; - }; - - /** - * Creates resolved promise - * @param value resolve value - * @returns {Promise} - */ - Promise.resolve = function Promise_resolve(value) { - return new Promise(function (resolve) { resolve(value); }); - }; - - /** - * Creates rejected promise - * @param reason rejection value - * @returns {Promise} - */ - Promise.reject = function Promise_reject(reason) { - return new Promise(function (resolve, reject) { reject(reason); }); - }; - - Promise.prototype = { - _status: null, - _value: null, - _handlers: null, - _unhandledRejection: null, - - _updateStatus: function Promise__updateStatus(status, value) { - if (this._status === STATUS_RESOLVED || - this._status === STATUS_REJECTED) { - return; - } - - if (status === STATUS_RESOLVED && - Promise.isPromise(value)) { - value.then(this._updateStatus.bind(this, STATUS_RESOLVED), - this._updateStatus.bind(this, STATUS_REJECTED)); - return; - } - - this._status = status; - this._value = value; - - if (status === STATUS_REJECTED && this._handlers.length === 0) { - this._unhandledRejection = true; - HandlerManager.addUnhandledRejection(this); - } - - HandlerManager.scheduleHandlers(this); - }, - - _resolve: function Promise_resolve(value) { - this._updateStatus(STATUS_RESOLVED, value); - }, - - _reject: function Promise_reject(reason) { - this._updateStatus(STATUS_REJECTED, reason); - }, - - then: function Promise_then(onResolve, onReject) { - var nextPromise = new Promise(function (resolve, reject) { - this.resolve = resolve; - this.reject = reject; - }); - this._handlers.push({ - thisPromise: this, - onResolve: onResolve, - onReject: onReject, - nextPromise: nextPromise - }); - HandlerManager.scheduleHandlers(this); - return nextPromise; - }, - - catch: function Promise_catch(onReject) { - return this.then(undefined, onReject); - } - }; - - globalScope.Promise = Promise; -})(); - -var StatTimer = (function StatTimerClosure() { - function rpad(str, pad, length) { - while (str.length < length) { - str += pad; - } - return str; - } - function StatTimer() { - this.started = {}; - this.times = []; - this.enabled = true; - } - StatTimer.prototype = { - time: function StatTimer_time(name) { - if (!this.enabled) { - return; - } - if (name in this.started) { - warn('Timer is already running for ' + name); - } - this.started[name] = Date.now(); - }, - timeEnd: function StatTimer_timeEnd(name) { - if (!this.enabled) { - return; - } - if (!(name in this.started)) { - warn('Timer has not been started for ' + name); - } - this.times.push({ - 'name': name, - 'start': this.started[name], - 'end': Date.now() - }); - // Remove timer from started so it can be called again. - delete this.started[name]; - }, - toString: function StatTimer_toString() { - var i, ii; - var times = this.times; - var out = ''; - // Find the longest name for padding purposes. - var longest = 0; - for (i = 0, ii = times.length; i < ii; ++i) { - var name = times[i]['name']; - if (name.length > longest) { - longest = name.length; - } - } - for (i = 0, ii = times.length; i < ii; ++i) { - var span = times[i]; - var duration = span.end - span.start; - out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\n'; - } - return out; - } - }; - return StatTimer; -})(); - -PDFJS.createBlob = function createBlob(data, contentType) { - if (typeof Blob !== 'undefined') { - return new Blob([data], { type: contentType }); - } - // Blob builder is deprecated in FF14 and removed in FF18. - var bb = new MozBlobBuilder(); - bb.append(data); - return bb.getBlob(contentType); -}; - -PDFJS.createObjectURL = (function createObjectURLClosure() { - // Blob/createObjectURL is not available, falling back to data schema. - var digits = - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; - - return function createObjectURL(data, contentType) { - if (!PDFJS.disableCreateObjectURL && - typeof URL !== 'undefined' && URL.createObjectURL) { - var blob = PDFJS.createBlob(data, contentType); - return URL.createObjectURL(blob); - } - - var buffer = 'data:' + contentType + ';base64,'; - for (var i = 0, ii = data.length; i < ii; i += 3) { - var b1 = data[i] & 0xFF; - var b2 = data[i + 1] & 0xFF; - var b3 = data[i + 2] & 0xFF; - var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4); - var d3 = i + 1 < ii ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64; - var d4 = i + 2 < ii ? (b3 & 0x3F) : 64; - buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; - } - return buffer; - }; -})(); - -function MessageHandler(name, comObj) { - this.name = name; - this.comObj = comObj; - this.callbackIndex = 1; - this.postMessageTransfers = true; - var callbacksCapabilities = this.callbacksCapabilities = {}; - var ah = this.actionHandler = {}; - - ah['console_log'] = [function ahConsoleLog(data) { - console.log.apply(console, data); - }]; - ah['console_error'] = [function ahConsoleError(data) { - console.error.apply(console, data); - }]; - ah['_unsupported_feature'] = [function ah_unsupportedFeature(data) { - UnsupportedManager.notify(data); - }]; - - comObj.onmessage = function messageHandlerComObjOnMessage(event) { - var data = event.data; - if (data.isReply) { - var callbackId = data.callbackId; - if (data.callbackId in callbacksCapabilities) { - var callback = callbacksCapabilities[callbackId]; - delete callbacksCapabilities[callbackId]; - if ('error' in data) { - callback.reject(data.error); - } else { - callback.resolve(data.data); - } - } else { - error('Cannot resolve callback ' + callbackId); - } - } else if (data.action in ah) { - var action = ah[data.action]; - if (data.callbackId) { - Promise.resolve().then(function () { - return action[0].call(action[1], data.data); - }).then(function (result) { - comObj.postMessage({ - isReply: true, - callbackId: data.callbackId, - data: result - }); - }, function (reason) { - comObj.postMessage({ - isReply: true, - callbackId: data.callbackId, - error: reason - }); - }); - } else { - action[0].call(action[1], data.data); - } - } else { - error('Unknown action from worker: ' + data.action); - } - }; -} - -MessageHandler.prototype = { - on: function messageHandlerOn(actionName, handler, scope) { - var ah = this.actionHandler; - if (ah[actionName]) { - error('There is already an actionName called "' + actionName + '"'); - } - ah[actionName] = [handler, scope]; - }, - /** - * Sends a message to the comObj to invoke the action with the supplied data. - * @param {String} actionName Action to call. - * @param {JSON} data JSON data to send. - * @param {Array} [transfers] Optional list of transfers/ArrayBuffers - */ - send: function messageHandlerSend(actionName, data, transfers) { - var message = { - action: actionName, - data: data - }; - this.postMessage(message, transfers); - }, - /** - * Sends a message to the comObj to invoke the action with the supplied data. - * Expects that other side will callback with the response. - * @param {String} actionName Action to call. - * @param {JSON} data JSON data to send. - * @param {Array} [transfers] Optional list of transfers/ArrayBuffers. - * @returns {Promise} Promise to be resolved with response data. - */ - sendWithPromise: - function messageHandlerSendWithPromise(actionName, data, transfers) { - var callbackId = this.callbackIndex++; - var message = { - action: actionName, - data: data, - callbackId: callbackId - }; - var capability = createPromiseCapability(); - this.callbacksCapabilities[callbackId] = capability; - try { - this.postMessage(message, transfers); - } catch (e) { - capability.reject(e); - } - return capability.promise; - }, - /** - * Sends raw message to the comObj. - * @private - * @param message {Object} Raw message. - * @param transfers List of transfers/ArrayBuffers, or undefined. - */ - postMessage: function (message, transfers) { - if (transfers && this.postMessageTransfers) { - this.comObj.postMessage(message, transfers); - } else { - this.comObj.postMessage(message); - } - } -}; - -function loadJpegStream(id, imageUrl, objs) { - var img = new Image(); - img.onload = (function loadJpegStream_onloadClosure() { - objs.resolve(id, img); - }); - img.onerror = (function loadJpegStream_onerrorClosure() { - objs.resolve(id, null); - warn('Error during JPEG image loading'); - }); - img.src = imageUrl; -} - - - - -var NetworkManager = (function NetworkManagerClosure() { - - var OK_RESPONSE = 200; - var PARTIAL_CONTENT_RESPONSE = 206; - - function NetworkManager(url, args) { - this.url = url; - args = args || {}; - this.isHttp = /^https?:/i.test(url); - this.httpHeaders = (this.isHttp && args.httpHeaders) || {}; - this.withCredentials = args.withCredentials || false; - this.getXhr = args.getXhr || - function NetworkManager_getXhr() { - return new XMLHttpRequest(); - }; - - this.currXhrId = 0; - this.pendingRequests = {}; - this.loadedRequests = {}; - } - - function getArrayBuffer(xhr) { - var data = xhr.response; - if (typeof data !== 'string') { - return data; - } - var length = data.length; - var array = new Uint8Array(length); - for (var i = 0; i < length; i++) { - array[i] = data.charCodeAt(i) & 0xFF; - } - return array.buffer; - } - - NetworkManager.prototype = { - requestRange: function NetworkManager_requestRange(begin, end, listeners) { - var args = { - begin: begin, - end: end - }; - for (var prop in listeners) { - args[prop] = listeners[prop]; - } - return this.request(args); - }, - - requestFull: function NetworkManager_requestFull(listeners) { - return this.request(listeners); - }, - - request: function NetworkManager_request(args) { - var xhr = this.getXhr(); - var xhrId = this.currXhrId++; - var pendingRequest = this.pendingRequests[xhrId] = { - xhr: xhr - }; - - xhr.open('GET', this.url); - xhr.withCredentials = this.withCredentials; - for (var property in this.httpHeaders) { - var value = this.httpHeaders[property]; - if (typeof value === 'undefined') { - continue; - } - xhr.setRequestHeader(property, value); - } - if (this.isHttp && 'begin' in args && 'end' in args) { - var rangeStr = args.begin + '-' + (args.end - 1); - xhr.setRequestHeader('Range', 'bytes=' + rangeStr); - pendingRequest.expectedStatus = 206; - } else { - pendingRequest.expectedStatus = 200; - } - - if (args.onProgressiveData) { - // Some legacy browsers might throw an exception. - try { - xhr.responseType = 'moz-chunked-arraybuffer'; - } catch(e) {} - if (xhr.responseType === 'moz-chunked-arraybuffer') { - pendingRequest.onProgressiveData = args.onProgressiveData; - pendingRequest.mozChunked = true; - } else { - xhr.responseType = 'arraybuffer'; - } - } else { - xhr.responseType = 'arraybuffer'; - } - - if (args.onError) { - xhr.onerror = function(evt) { - args.onError(xhr.status); - }; - } - xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); - xhr.onprogress = this.onProgress.bind(this, xhrId); - - pendingRequest.onHeadersReceived = args.onHeadersReceived; - pendingRequest.onDone = args.onDone; - pendingRequest.onError = args.onError; - pendingRequest.onProgress = args.onProgress; - - xhr.send(null); - - return xhrId; - }, - - onProgress: function NetworkManager_onProgress(xhrId, evt) { - var pendingRequest = this.pendingRequests[xhrId]; - if (!pendingRequest) { - // Maybe abortRequest was called... - return; - } - - if (pendingRequest.mozChunked) { - var chunk = getArrayBuffer(pendingRequest.xhr); - pendingRequest.onProgressiveData(chunk); - } - - var onProgress = pendingRequest.onProgress; - if (onProgress) { - onProgress(evt); - } - }, - - onStateChange: function NetworkManager_onStateChange(xhrId, evt) { - var pendingRequest = this.pendingRequests[xhrId]; - if (!pendingRequest) { - // Maybe abortRequest was called... - return; - } - - var xhr = pendingRequest.xhr; - if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { - pendingRequest.onHeadersReceived(); - delete pendingRequest.onHeadersReceived; - } - - if (xhr.readyState !== 4) { - return; - } - - if (!(xhrId in this.pendingRequests)) { - // The XHR request might have been aborted in onHeadersReceived() - // callback, in which case we should abort request - return; - } - - delete this.pendingRequests[xhrId]; - - // success status == 0 can be on ftp, file and other protocols - if (xhr.status === 0 && this.isHttp) { - if (pendingRequest.onError) { - pendingRequest.onError(xhr.status); - } - return; - } - var xhrStatus = xhr.status || OK_RESPONSE; - - // From http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2: - // "A server MAY ignore the Range header". This means it's possible to - // get a 200 rather than a 206 response from a range request. - var ok_response_on_range_request = - xhrStatus === OK_RESPONSE && - pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE; - - if (!ok_response_on_range_request && - xhrStatus !== pendingRequest.expectedStatus) { - if (pendingRequest.onError) { - pendingRequest.onError(xhr.status); - } - return; - } - - this.loadedRequests[xhrId] = true; - - var chunk = getArrayBuffer(xhr); - if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { - var rangeHeader = xhr.getResponseHeader('Content-Range'); - var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); - var begin = parseInt(matches[1], 10); - pendingRequest.onDone({ - begin: begin, - chunk: chunk - }); - } else if (pendingRequest.onProgressiveData) { - pendingRequest.onDone(null); - } else { - pendingRequest.onDone({ - begin: 0, - chunk: chunk - }); - } - }, - - hasPendingRequests: function NetworkManager_hasPendingRequests() { - for (var xhrId in this.pendingRequests) { - return true; - } - return false; - }, - - getRequestXhr: function NetworkManager_getXhr(xhrId) { - return this.pendingRequests[xhrId].xhr; - }, - - isStreamingRequest: function NetworkManager_isStreamingRequest(xhrId) { - return !!(this.pendingRequests[xhrId].onProgressiveData); - }, - - isPendingRequest: function NetworkManager_isPendingRequest(xhrId) { - return xhrId in this.pendingRequests; - }, - - isLoadedRequest: function NetworkManager_isLoadedRequest(xhrId) { - return xhrId in this.loadedRequests; - }, - - abortAllRequests: function NetworkManager_abortAllRequests() { - for (var xhrId in this.pendingRequests) { - this.abortRequest(xhrId | 0); - } - }, - - abortRequest: function NetworkManager_abortRequest(xhrId) { - var xhr = this.pendingRequests[xhrId].xhr; - delete this.pendingRequests[xhrId]; - xhr.abort(); - } - }; - - return NetworkManager; -})(); - - -var ChunkedStream = (function ChunkedStreamClosure() { - function ChunkedStream(length, chunkSize, manager) { - this.bytes = new Uint8Array(length); - this.start = 0; - this.pos = 0; - this.end = length; - this.chunkSize = chunkSize; - this.loadedChunks = []; - this.numChunksLoaded = 0; - this.numChunks = Math.ceil(length / chunkSize); - this.manager = manager; - this.progressiveDataLength = 0; - this.lastSuccessfulEnsureByteChunk = -1; // a single-entry cache - } - - // required methods for a stream. if a particular stream does not - // implement these, an error should be thrown - ChunkedStream.prototype = { - - getMissingChunks: function ChunkedStream_getMissingChunks() { - var chunks = []; - for (var chunk = 0, n = this.numChunks; chunk < n; ++chunk) { - if (!this.loadedChunks[chunk]) { - chunks.push(chunk); - } - } - return chunks; - }, - - getBaseStreams: function ChunkedStream_getBaseStreams() { - return [this]; - }, - - allChunksLoaded: function ChunkedStream_allChunksLoaded() { - return this.numChunksLoaded === this.numChunks; - }, - - onReceiveData: function ChunkedStream_onReceiveData(begin, chunk) { - var end = begin + chunk.byteLength; - - assert(begin % this.chunkSize === 0, 'Bad begin offset: ' + begin); - // Using this.length is inaccurate here since this.start can be moved - // See ChunkedStream.moveStart() - var length = this.bytes.length; - assert(end % this.chunkSize === 0 || end === length, - 'Bad end offset: ' + end); - - this.bytes.set(new Uint8Array(chunk), begin); - var chunkSize = this.chunkSize; - var beginChunk = Math.floor(begin / chunkSize); - var endChunk = Math.floor((end - 1) / chunkSize) + 1; - var curChunk; - - for (curChunk = beginChunk; curChunk < endChunk; ++curChunk) { - if (!this.loadedChunks[curChunk]) { - this.loadedChunks[curChunk] = true; - ++this.numChunksLoaded; - } - } - }, - - onReceiveProgressiveData: - function ChunkedStream_onReceiveProgressiveData(data) { - var position = this.progressiveDataLength; - var beginChunk = Math.floor(position / this.chunkSize); - - this.bytes.set(new Uint8Array(data), position); - position += data.byteLength; - this.progressiveDataLength = position; - var endChunk = position >= this.end ? this.numChunks : - Math.floor(position / this.chunkSize); - var curChunk; - for (curChunk = beginChunk; curChunk < endChunk; ++curChunk) { - if (!this.loadedChunks[curChunk]) { - this.loadedChunks[curChunk] = true; - ++this.numChunksLoaded; - } - } - }, - - ensureByte: function ChunkedStream_ensureByte(pos) { - var chunk = Math.floor(pos / this.chunkSize); - if (chunk === this.lastSuccessfulEnsureByteChunk) { - return; - } - - if (!this.loadedChunks[chunk]) { - throw new MissingDataException(pos, pos + 1); - } - this.lastSuccessfulEnsureByteChunk = chunk; - }, - - ensureRange: function ChunkedStream_ensureRange(begin, end) { - if (begin >= end) { - return; - } - - if (end <= this.progressiveDataLength) { - return; - } - - var chunkSize = this.chunkSize; - var beginChunk = Math.floor(begin / chunkSize); - var endChunk = Math.floor((end - 1) / chunkSize) + 1; - for (var chunk = beginChunk; chunk < endChunk; ++chunk) { - if (!this.loadedChunks[chunk]) { - throw new MissingDataException(begin, end); - } - } - }, - - nextEmptyChunk: function ChunkedStream_nextEmptyChunk(beginChunk) { - var chunk, n; - for (chunk = beginChunk, n = this.numChunks; chunk < n; ++chunk) { - if (!this.loadedChunks[chunk]) { - return chunk; - } - } - // Wrap around to beginning - for (chunk = 0; chunk < beginChunk; ++chunk) { - if (!this.loadedChunks[chunk]) { - return chunk; - } - } - return null; - }, - - hasChunk: function ChunkedStream_hasChunk(chunk) { - return !!this.loadedChunks[chunk]; - }, - - get length() { - return this.end - this.start; - }, - - get isEmpty() { - return this.length === 0; - }, - - getByte: function ChunkedStream_getByte() { - var pos = this.pos; - if (pos >= this.end) { - return -1; - } - this.ensureByte(pos); - return this.bytes[this.pos++]; - }, - - getUint16: function ChunkedStream_getUint16() { - var b0 = this.getByte(); - var b1 = this.getByte(); - if (b0 === -1 || b1 === -1) { - return -1; - } - return (b0 << 8) + b1; - }, - - getInt32: function ChunkedStream_getInt32() { - var b0 = this.getByte(); - var b1 = this.getByte(); - var b2 = this.getByte(); - var b3 = this.getByte(); - return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; - }, - - // returns subarray of original buffer - // should only be read - getBytes: function ChunkedStream_getBytes(length) { - var bytes = this.bytes; - var pos = this.pos; - var strEnd = this.end; - - if (!length) { - this.ensureRange(pos, strEnd); - return bytes.subarray(pos, strEnd); - } - - var end = pos + length; - if (end > strEnd) { - end = strEnd; - } - this.ensureRange(pos, end); - - this.pos = end; - return bytes.subarray(pos, end); - }, - - peekByte: function ChunkedStream_peekByte() { - var peekedByte = this.getByte(); - this.pos--; - return peekedByte; - }, - - peekBytes: function ChunkedStream_peekBytes(length) { - var bytes = this.getBytes(length); - this.pos -= bytes.length; - return bytes; - }, - - getByteRange: function ChunkedStream_getBytes(begin, end) { - this.ensureRange(begin, end); - return this.bytes.subarray(begin, end); - }, - - skip: function ChunkedStream_skip(n) { - if (!n) { - n = 1; - } - this.pos += n; - }, - - reset: function ChunkedStream_reset() { - this.pos = this.start; - }, - - moveStart: function ChunkedStream_moveStart() { - this.start = this.pos; - }, - - makeSubStream: function ChunkedStream_makeSubStream(start, length, dict) { - this.ensureRange(start, start + length); - - function ChunkedStreamSubstream() {} - ChunkedStreamSubstream.prototype = Object.create(this); - ChunkedStreamSubstream.prototype.getMissingChunks = function() { - var chunkSize = this.chunkSize; - var beginChunk = Math.floor(this.start / chunkSize); - var endChunk = Math.floor((this.end - 1) / chunkSize) + 1; - var missingChunks = []; - for (var chunk = beginChunk; chunk < endChunk; ++chunk) { - if (!this.loadedChunks[chunk]) { - missingChunks.push(chunk); - } - } - return missingChunks; - }; - var subStream = new ChunkedStreamSubstream(); - subStream.pos = subStream.start = start; - subStream.end = start + length || this.end; - subStream.dict = dict; - return subStream; - }, - - isStream: true - }; - - return ChunkedStream; -})(); - -var ChunkedStreamManager = (function ChunkedStreamManagerClosure() { - - function ChunkedStreamManager(length, chunkSize, url, args) { - this.stream = new ChunkedStream(length, chunkSize, this); - this.length = length; - this.chunkSize = chunkSize; - this.url = url; - this.disableAutoFetch = args.disableAutoFetch; - var msgHandler = this.msgHandler = args.msgHandler; - - if (args.chunkedViewerLoading) { - msgHandler.on('OnDataRange', this.onReceiveData.bind(this)); - msgHandler.on('OnDataProgress', this.onProgress.bind(this)); - this.sendRequest = function ChunkedStreamManager_sendRequest(begin, end) { - msgHandler.send('RequestDataRange', { begin: begin, end: end }); - }; - } else { - - var getXhr = function getXhr() { - return new XMLHttpRequest(); - }; - this.networkManager = new NetworkManager(this.url, { - getXhr: getXhr, - httpHeaders: args.httpHeaders, - withCredentials: args.withCredentials - }); - this.sendRequest = function ChunkedStreamManager_sendRequest(begin, end) { - this.networkManager.requestRange(begin, end, { - onDone: this.onReceiveData.bind(this), - onProgress: this.onProgress.bind(this) - }); - }; - } - - this.currRequestId = 0; - - this.chunksNeededByRequest = {}; - this.requestsByChunk = {}; - this.callbacksByRequest = {}; - this.progressiveDataLength = 0; - - this._loadedStreamCapability = createPromiseCapability(); - - if (args.initialData) { - this.onReceiveData({chunk: args.initialData}); - } - } - - ChunkedStreamManager.prototype = { - onLoadedStream: function ChunkedStreamManager_getLoadedStream() { - return this._loadedStreamCapability.promise; - }, - - // Get all the chunks that are not yet loaded and groups them into - // contiguous ranges to load in as few requests as possible - requestAllChunks: function ChunkedStreamManager_requestAllChunks() { - var missingChunks = this.stream.getMissingChunks(); - this.requestChunks(missingChunks); - return this._loadedStreamCapability.promise; - }, - - requestChunks: function ChunkedStreamManager_requestChunks(chunks, - callback) { - var requestId = this.currRequestId++; - - var chunksNeeded; - var i, ii; - this.chunksNeededByRequest[requestId] = chunksNeeded = {}; - for (i = 0, ii = chunks.length; i < ii; i++) { - if (!this.stream.hasChunk(chunks[i])) { - chunksNeeded[chunks[i]] = true; - } - } - - if (isEmptyObj(chunksNeeded)) { - if (callback) { - callback(); - } - return; - } - - this.callbacksByRequest[requestId] = callback; - - var chunksToRequest = []; - for (var chunk in chunksNeeded) { - chunk = chunk | 0; - if (!(chunk in this.requestsByChunk)) { - this.requestsByChunk[chunk] = []; - chunksToRequest.push(chunk); - } - this.requestsByChunk[chunk].push(requestId); - } - - if (!chunksToRequest.length) { - return; - } - - var groupedChunksToRequest = this.groupChunks(chunksToRequest); - - for (i = 0; i < groupedChunksToRequest.length; ++i) { - var groupedChunk = groupedChunksToRequest[i]; - var begin = groupedChunk.beginChunk * this.chunkSize; - var end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length); - this.sendRequest(begin, end); - } - }, - - getStream: function ChunkedStreamManager_getStream() { - return this.stream; - }, - - // Loads any chunks in the requested range that are not yet loaded - requestRange: function ChunkedStreamManager_requestRange( - begin, end, callback) { - - end = Math.min(end, this.length); - - var beginChunk = this.getBeginChunk(begin); - var endChunk = this.getEndChunk(end); - - var chunks = []; - for (var chunk = beginChunk; chunk < endChunk; ++chunk) { - chunks.push(chunk); - } - - this.requestChunks(chunks, callback); - }, - - requestRanges: function ChunkedStreamManager_requestRanges(ranges, - callback) { - ranges = ranges || []; - var chunksToRequest = []; - - for (var i = 0; i < ranges.length; i++) { - var beginChunk = this.getBeginChunk(ranges[i].begin); - var endChunk = this.getEndChunk(ranges[i].end); - for (var chunk = beginChunk; chunk < endChunk; ++chunk) { - if (chunksToRequest.indexOf(chunk) < 0) { - chunksToRequest.push(chunk); - } - } - } - - chunksToRequest.sort(function(a, b) { return a - b; }); - this.requestChunks(chunksToRequest, callback); - }, - - // Groups a sorted array of chunks into as few continguous larger - // chunks as possible - groupChunks: function ChunkedStreamManager_groupChunks(chunks) { - var groupedChunks = []; - var beginChunk = -1; - var prevChunk = -1; - for (var i = 0; i < chunks.length; ++i) { - var chunk = chunks[i]; - - if (beginChunk < 0) { - beginChunk = chunk; - } - - if (prevChunk >= 0 && prevChunk + 1 !== chunk) { - groupedChunks.push({ beginChunk: beginChunk, - endChunk: prevChunk + 1 }); - beginChunk = chunk; - } - if (i + 1 === chunks.length) { - groupedChunks.push({ beginChunk: beginChunk, - endChunk: chunk + 1 }); - } - - prevChunk = chunk; - } - return groupedChunks; - }, - - onProgress: function ChunkedStreamManager_onProgress(args) { - var bytesLoaded = (this.stream.numChunksLoaded * this.chunkSize + - args.loaded); - this.msgHandler.send('DocProgress', { - loaded: bytesLoaded, - total: this.length - }); - }, - - onReceiveData: function ChunkedStreamManager_onReceiveData(args) { - var chunk = args.chunk; - var isProgressive = args.begin === undefined; - var begin = isProgressive ? this.progressiveDataLength : args.begin; - var end = begin + chunk.byteLength; - - var beginChunk = Math.floor(begin / this.chunkSize); - var endChunk = end < this.length ? Math.floor(end / this.chunkSize) : - Math.ceil(end / this.chunkSize); - - if (isProgressive) { - this.stream.onReceiveProgressiveData(chunk); - this.progressiveDataLength = end; - } else { - this.stream.onReceiveData(begin, chunk); - } - - if (this.stream.allChunksLoaded()) { - this._loadedStreamCapability.resolve(this.stream); - } - - var loadedRequests = []; - var i, requestId; - for (chunk = beginChunk; chunk < endChunk; ++chunk) { - // The server might return more chunks than requested - var requestIds = this.requestsByChunk[chunk] || []; - delete this.requestsByChunk[chunk]; - - for (i = 0; i < requestIds.length; ++i) { - requestId = requestIds[i]; - var chunksNeeded = this.chunksNeededByRequest[requestId]; - if (chunk in chunksNeeded) { - delete chunksNeeded[chunk]; - } - - if (!isEmptyObj(chunksNeeded)) { - continue; - } - - loadedRequests.push(requestId); - } - } - - // If there are no pending requests, automatically fetch the next - // unfetched chunk of the PDF - if (!this.disableAutoFetch && isEmptyObj(this.requestsByChunk)) { - var nextEmptyChunk; - if (this.stream.numChunksLoaded === 1) { - // This is a special optimization so that after fetching the first - // chunk, rather than fetching the second chunk, we fetch the last - // chunk. - var lastChunk = this.stream.numChunks - 1; - if (!this.stream.hasChunk(lastChunk)) { - nextEmptyChunk = lastChunk; - } - } else { - nextEmptyChunk = this.stream.nextEmptyChunk(endChunk); - } - if (isInt(nextEmptyChunk)) { - this.requestChunks([nextEmptyChunk]); - } - } - - for (i = 0; i < loadedRequests.length; ++i) { - requestId = loadedRequests[i]; - var callback = this.callbacksByRequest[requestId]; - delete this.callbacksByRequest[requestId]; - if (callback) { - callback(); - } - } - - this.msgHandler.send('DocProgress', { - loaded: this.stream.numChunksLoaded * this.chunkSize, - total: this.length - }); - }, - - onError: function ChunkedStreamManager_onError(err) { - this._loadedStreamCapability.reject(err); - }, - - getBeginChunk: function ChunkedStreamManager_getBeginChunk(begin) { - var chunk = Math.floor(begin / this.chunkSize); - return chunk; - }, - - getEndChunk: function ChunkedStreamManager_getEndChunk(end) { - if (end % this.chunkSize === 0) { - return end / this.chunkSize; - } - - // 0 -> 0 - // 1 -> 1 - // 99 -> 1 - // 100 -> 1 - // 101 -> 2 - var chunk = Math.floor((end - 1) / this.chunkSize) + 1; - return chunk; - } - }; - - return ChunkedStreamManager; -})(); - - -// The maximum number of bytes fetched per range request -var RANGE_CHUNK_SIZE = 65536; - -// TODO(mack): Make use of PDFJS.Util.inherit() when it becomes available -var BasePdfManager = (function BasePdfManagerClosure() { - function BasePdfManager() { - throw new Error('Cannot initialize BaseManagerManager'); - } - - BasePdfManager.prototype = { - onLoadedStream: function BasePdfManager_onLoadedStream() { - throw new NotImplementedException(); - }, - - ensureDoc: function BasePdfManager_ensureDoc(prop, args) { - return this.ensure(this.pdfDocument, prop, args); - }, - - ensureXRef: function BasePdfManager_ensureXRef(prop, args) { - return this.ensure(this.pdfDocument.xref, prop, args); - }, - - ensureCatalog: function BasePdfManager_ensureCatalog(prop, args) { - return this.ensure(this.pdfDocument.catalog, prop, args); - }, - - getPage: function BasePdfManager_pagePage(pageIndex) { - return this.pdfDocument.getPage(pageIndex); - }, - - cleanup: function BasePdfManager_cleanup() { - return this.pdfDocument.cleanup(); - }, - - ensure: function BasePdfManager_ensure(obj, prop, args) { - return new NotImplementedException(); - }, - - requestRange: function BasePdfManager_ensure(begin, end) { - return new NotImplementedException(); - }, - - requestLoadedStream: function BasePdfManager_requestLoadedStream() { - return new NotImplementedException(); - }, - - sendProgressiveData: function BasePdfManager_sendProgressiveData(chunk) { - return new NotImplementedException(); - }, - - updatePassword: function BasePdfManager_updatePassword(password) { - this.pdfDocument.xref.password = this.password = password; - if (this._passwordChangedCapability) { - this._passwordChangedCapability.resolve(); - } - }, - - passwordChanged: function BasePdfManager_passwordChanged() { - this._passwordChangedCapability = createPromiseCapability(); - return this._passwordChangedCapability.promise; - }, - - terminate: function BasePdfManager_terminate() { - return new NotImplementedException(); - } - }; - - return BasePdfManager; -})(); - -var LocalPdfManager = (function LocalPdfManagerClosure() { - function LocalPdfManager(data, password) { - var stream = new Stream(data); - this.pdfDocument = new PDFDocument(this, stream, password); - this._loadedStreamCapability = createPromiseCapability(); - this._loadedStreamCapability.resolve(stream); - } - - LocalPdfManager.prototype = Object.create(BasePdfManager.prototype); - LocalPdfManager.prototype.constructor = LocalPdfManager; - - LocalPdfManager.prototype.ensure = - function LocalPdfManager_ensure(obj, prop, args) { - return new Promise(function (resolve, reject) { - try { - var value = obj[prop]; - var result; - if (typeof value === 'function') { - result = value.apply(obj, args); - } else { - result = value; - } - resolve(result); - } catch (e) { - reject(e); - } - }); - }; - - LocalPdfManager.prototype.requestRange = - function LocalPdfManager_requestRange(begin, end) { - return Promise.resolve(); - }; - - LocalPdfManager.prototype.requestLoadedStream = - function LocalPdfManager_requestLoadedStream() { - }; - - LocalPdfManager.prototype.onLoadedStream = - function LocalPdfManager_getLoadedStream() { - return this._loadedStreamCapability.promise; - }; - - LocalPdfManager.prototype.terminate = - function LocalPdfManager_terminate() { - return; - }; - - return LocalPdfManager; -})(); - -var NetworkPdfManager = (function NetworkPdfManagerClosure() { - function NetworkPdfManager(args, msgHandler) { - - this.msgHandler = msgHandler; - - var params = { - msgHandler: msgHandler, - httpHeaders: args.httpHeaders, - withCredentials: args.withCredentials, - chunkedViewerLoading: args.chunkedViewerLoading, - disableAutoFetch: args.disableAutoFetch, - initialData: args.initialData - }; - this.streamManager = new ChunkedStreamManager(args.length, RANGE_CHUNK_SIZE, - args.url, params); - - this.pdfDocument = new PDFDocument(this, this.streamManager.getStream(), - args.password); - } - - NetworkPdfManager.prototype = Object.create(BasePdfManager.prototype); - NetworkPdfManager.prototype.constructor = NetworkPdfManager; - - NetworkPdfManager.prototype.ensure = - function NetworkPdfManager_ensure(obj, prop, args) { - var pdfManager = this; - - return new Promise(function (resolve, reject) { - function ensureHelper() { - try { - var result; - var value = obj[prop]; - if (typeof value === 'function') { - result = value.apply(obj, args); - } else { - result = value; - } - resolve(result); - } catch(e) { - if (!(e instanceof MissingDataException)) { - reject(e); - return; - } - pdfManager.streamManager.requestRange(e.begin, e.end, ensureHelper); - } - } - - ensureHelper(); - }); - }; - - NetworkPdfManager.prototype.requestRange = - function NetworkPdfManager_requestRange(begin, end) { - return new Promise(function (resolve) { - this.streamManager.requestRange(begin, end, function() { - resolve(); - }); - }.bind(this)); - }; - - NetworkPdfManager.prototype.requestLoadedStream = - function NetworkPdfManager_requestLoadedStream() { - this.streamManager.requestAllChunks(); - }; - - NetworkPdfManager.prototype.sendProgressiveData = - function NetworkPdfManager_sendProgressiveData(chunk) { - this.streamManager.onReceiveData({ chunk: chunk }); - }; - - NetworkPdfManager.prototype.onLoadedStream = - function NetworkPdfManager_getLoadedStream() { - return this.streamManager.onLoadedStream(); - }; - - NetworkPdfManager.prototype.terminate = - function NetworkPdfManager_terminate() { - this.streamManager.networkManager.abortAllRequests(); - }; - - return NetworkPdfManager; -})(); - - -var Page = (function PageClosure() { - - var LETTER_SIZE_MEDIABOX = [0, 0, 612, 792]; - - function Page(pdfManager, xref, pageIndex, pageDict, ref, fontCache) { - this.pdfManager = pdfManager; - this.pageIndex = pageIndex; - this.pageDict = pageDict; - this.xref = xref; - this.ref = ref; - this.fontCache = fontCache; - this.idCounters = { - obj: 0 - }; - this.resourcesPromise = null; - } - - Page.prototype = { - getPageProp: function Page_getPageProp(key) { - return this.pageDict.get(key); - }, - - getInheritedPageProp: function Page_inheritPageProp(key) { - var dict = this.pageDict; - var value = dict.get(key); - while (value === undefined) { - dict = dict.get('Parent'); - if (!dict) { - break; - } - value = dict.get(key); - } - return value; - }, - - get content() { - return this.getPageProp('Contents'); - }, - - get resources() { - var value = this.getInheritedPageProp('Resources'); - // For robustness: The spec states that a \Resources entry has to be - // present, but can be empty. Some document omit it still. In this case - // return an empty dictionary: - if (value === undefined) { - value = Dict.empty; - } - return shadow(this, 'resources', value); - }, - - get mediaBox() { - var obj = this.getInheritedPageProp('MediaBox'); - // Reset invalid media box to letter size. - if (!isArray(obj) || obj.length !== 4) { - obj = LETTER_SIZE_MEDIABOX; - } - return shadow(this, 'mediaBox', obj); - }, - - get view() { - var mediaBox = this.mediaBox; - var cropBox = this.getInheritedPageProp('CropBox'); - if (!isArray(cropBox) || cropBox.length !== 4) { - return shadow(this, 'view', mediaBox); - } - - // From the spec, 6th ed., p.963: - // "The crop, bleed, trim, and art boxes should not ordinarily - // extend beyond the boundaries of the media box. If they do, they are - // effectively reduced to their intersection with the media box." - cropBox = Util.intersect(cropBox, mediaBox); - if (!cropBox) { - return shadow(this, 'view', mediaBox); - } - return shadow(this, 'view', cropBox); - }, - - get annotationRefs() { - return shadow(this, 'annotationRefs', - this.getInheritedPageProp('Annots')); - }, - - get rotate() { - var rotate = this.getInheritedPageProp('Rotate') || 0; - // Normalize rotation so it's a multiple of 90 and between 0 and 270 - if (rotate % 90 !== 0) { - rotate = 0; - } else if (rotate >= 360) { - rotate = rotate % 360; - } else if (rotate < 0) { - // The spec doesn't cover negatives, assume its counterclockwise - // rotation. The following is the other implementation of modulo. - rotate = ((rotate % 360) + 360) % 360; - } - return shadow(this, 'rotate', rotate); - }, - - getContentStream: function Page_getContentStream() { - var content = this.content; - var stream; - if (isArray(content)) { - // fetching items - var xref = this.xref; - var i, n = content.length; - var streams = []; - for (i = 0; i < n; ++i) { - streams.push(xref.fetchIfRef(content[i])); - } - stream = new StreamsSequenceStream(streams); - } else if (isStream(content)) { - stream = content; - } else { - // replacing non-existent page content with empty one - stream = new NullStream(); - } - return stream; - }, - - loadResources: function Page_loadResources(keys) { - if (!this.resourcesPromise) { - // TODO: add async getInheritedPageProp and remove this. - this.resourcesPromise = this.pdfManager.ensure(this, 'resources'); - } - return this.resourcesPromise.then(function resourceSuccess() { - var objectLoader = new ObjectLoader(this.resources.map, - keys, - this.xref); - return objectLoader.load(); - }.bind(this)); - }, - - getOperatorList: function Page_getOperatorList(handler, intent) { - var self = this; - - var pdfManager = this.pdfManager; - var contentStreamPromise = pdfManager.ensure(this, 'getContentStream', - []); - var resourcesPromise = this.loadResources([ - 'ExtGState', - 'ColorSpace', - 'Pattern', - 'Shading', - 'XObject', - 'Font' - // ProcSet - // Properties - ]); - - var partialEvaluator = new PartialEvaluator(pdfManager, this.xref, - handler, this.pageIndex, - 'p' + this.pageIndex + '_', - this.idCounters, - this.fontCache); - - var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]); - var pageListPromise = dataPromises.then(function(data) { - var contentStream = data[0]; - var opList = new OperatorList(intent, handler, self.pageIndex); - - handler.send('StartRenderPage', { - transparency: partialEvaluator.hasBlendModes(self.resources), - pageIndex: self.pageIndex, - intent: intent - }); - return partialEvaluator.getOperatorList(contentStream, self.resources, - opList).then(function () { - return opList; - }); - }); - - var annotationsPromise = pdfManager.ensure(this, 'annotations'); - return Promise.all([pageListPromise, annotationsPromise]).then( - function(datas) { - var pageOpList = datas[0]; - var annotations = datas[1]; - - if (annotations.length === 0) { - pageOpList.flush(true); - return pageOpList; - } - - var annotationsReadyPromise = Annotation.appendToOperatorList( - annotations, pageOpList, pdfManager, partialEvaluator, intent); - return annotationsReadyPromise.then(function () { - pageOpList.flush(true); - return pageOpList; - }); - }); - }, - - extractTextContent: function Page_extractTextContent() { - var handler = { - on: function nullHandlerOn() {}, - send: function nullHandlerSend() {} - }; - - var self = this; - - var pdfManager = this.pdfManager; - var contentStreamPromise = pdfManager.ensure(this, 'getContentStream', - []); - - var resourcesPromise = this.loadResources([ - 'ExtGState', - 'XObject', - 'Font' - ]); - - var dataPromises = Promise.all([contentStreamPromise, - resourcesPromise]); - return dataPromises.then(function(data) { - var contentStream = data[0]; - var partialEvaluator = new PartialEvaluator(pdfManager, self.xref, - handler, self.pageIndex, - 'p' + self.pageIndex + '_', - self.idCounters, - self.fontCache); - - return partialEvaluator.getTextContent(contentStream, - self.resources); - }); - }, - - getAnnotationsData: function Page_getAnnotationsData() { - var annotations = this.annotations; - var annotationsData = []; - for (var i = 0, n = annotations.length; i < n; ++i) { - annotationsData.push(annotations[i].getData()); - } - return annotationsData; - }, - - get annotations() { - var annotations = []; - var annotationRefs = (this.annotationRefs || []); - for (var i = 0, n = annotationRefs.length; i < n; ++i) { - var annotationRef = annotationRefs[i]; - var annotation = Annotation.fromRef(this.xref, annotationRef); - if (annotation) { - annotations.push(annotation); - } - } - return shadow(this, 'annotations', annotations); - } - }; - - return Page; -})(); - -/** - * The `PDFDocument` holds all the data of the PDF file. Compared to the - * `PDFDoc`, this one doesn't have any job management code. - * Right now there exists one PDFDocument on the main thread + one object - * for each worker. If there is no worker support enabled, there are two - * `PDFDocument` objects on the main thread created. - */ -var PDFDocument = (function PDFDocumentClosure() { - var FINGERPRINT_FIRST_BYTES = 1024; - var EMPTY_FINGERPRINT = '\x00\x00\x00\x00\x00\x00\x00' + - '\x00\x00\x00\x00\x00\x00\x00\x00\x00'; - - function PDFDocument(pdfManager, arg, password) { - if (isStream(arg)) { - init.call(this, pdfManager, arg, password); - } else if (isArrayBuffer(arg)) { - init.call(this, pdfManager, new Stream(arg), password); - } else { - error('PDFDocument: Unknown argument type'); - } - } - - function init(pdfManager, stream, password) { - assert(stream.length > 0, 'stream must have data'); - this.pdfManager = pdfManager; - this.stream = stream; - var xref = new XRef(this.stream, password, pdfManager); - this.xref = xref; - } - - function find(stream, needle, limit, backwards) { - var pos = stream.pos; - var end = stream.end; - var strBuf = []; - if (pos + limit > end) { - limit = end - pos; - } - for (var n = 0; n < limit; ++n) { - strBuf.push(String.fromCharCode(stream.getByte())); - } - var str = strBuf.join(''); - stream.pos = pos; - var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle); - if (index === -1) { - return false; /* not found */ - } - stream.pos += index; - return true; /* found */ - } - - var DocumentInfoValidators = { - get entries() { - // Lazily build this since all the validation functions below are not - // defined until after this file loads. - return shadow(this, 'entries', { - Title: isString, - Author: isString, - Subject: isString, - Keywords: isString, - Creator: isString, - Producer: isString, - CreationDate: isString, - ModDate: isString, - Trapped: isName - }); - } - }; - - PDFDocument.prototype = { - parse: function PDFDocument_parse(recoveryMode) { - this.setup(recoveryMode); - try { - // checking if AcroForm is present - this.acroForm = this.catalog.catDict.get('AcroForm'); - if (this.acroForm) { - this.xfa = this.acroForm.get('XFA'); - var fields = this.acroForm.get('Fields'); - if ((!fields || !isArray(fields) || fields.length === 0) && - !this.xfa) { - // no fields and no XFA -- not a form (?) - this.acroForm = null; - } - } - } catch (ex) { - info('Something wrong with AcroForm entry'); - this.acroForm = null; - } - }, - - get linearization() { - var linearization = null; - if (this.stream.length) { - try { - linearization = Linearization.create(this.stream); - } catch (err) { - if (err instanceof MissingDataException) { - throw err; - } - info(err); - } - } - // shadow the prototype getter with a data property - return shadow(this, 'linearization', linearization); - }, - get startXRef() { - var stream = this.stream; - var startXRef = 0; - var linearization = this.linearization; - if (linearization) { - // Find end of first obj. - stream.reset(); - if (find(stream, 'endobj', 1024)) { - startXRef = stream.pos + 6; - } - } else { - // Find startxref by jumping backward from the end of the file. - var step = 1024; - var found = false, pos = stream.end; - while (!found && pos > 0) { - pos -= step - 'startxref'.length; - if (pos < 0) { - pos = 0; - } - stream.pos = pos; - found = find(stream, 'startxref', step, true); - } - if (found) { - stream.skip(9); - var ch; - do { - ch = stream.getByte(); - } while (Lexer.isSpace(ch)); - var str = ''; - while (ch >= 0x20 && ch <= 0x39) { // < '9' - str += String.fromCharCode(ch); - ch = stream.getByte(); - } - startXRef = parseInt(str, 10); - if (isNaN(startXRef)) { - startXRef = 0; - } - } - } - // shadow the prototype getter with a data property - return shadow(this, 'startXRef', startXRef); - }, - get mainXRefEntriesOffset() { - var mainXRefEntriesOffset = 0; - var linearization = this.linearization; - if (linearization) { - mainXRefEntriesOffset = linearization.mainXRefEntriesOffset; - } - // shadow the prototype getter with a data property - return shadow(this, 'mainXRefEntriesOffset', mainXRefEntriesOffset); - }, - // Find the header, remove leading garbage and setup the stream - // starting from the header. - checkHeader: function PDFDocument_checkHeader() { - var stream = this.stream; - stream.reset(); - if (find(stream, '%PDF-', 1024)) { - // Found the header, trim off any garbage before it. - stream.moveStart(); - // Reading file format version - var MAX_VERSION_LENGTH = 12; - var version = '', ch; - while ((ch = stream.getByte()) > 0x20) { // SPACE - if (version.length >= MAX_VERSION_LENGTH) { - break; - } - version += String.fromCharCode(ch); - } - // removing "%PDF-"-prefix - this.pdfFormatVersion = version.substring(5); - return; - } - // May not be a PDF file, continue anyway. - }, - parseStartXRef: function PDFDocument_parseStartXRef() { - var startXRef = this.startXRef; - this.xref.setStartXRef(startXRef); - }, - setup: function PDFDocument_setup(recoveryMode) { - this.xref.parse(recoveryMode); - this.catalog = new Catalog(this.pdfManager, this.xref); - }, - get numPages() { - var linearization = this.linearization; - var num = linearization ? linearization.numPages : this.catalog.numPages; - // shadow the prototype getter - return shadow(this, 'numPages', num); - }, - get documentInfo() { - var docInfo = { - PDFFormatVersion: this.pdfFormatVersion, - IsAcroFormPresent: !!this.acroForm, - IsXFAPresent: !!this.xfa - }; - var infoDict; - try { - infoDict = this.xref.trailer.get('Info'); - } catch (err) { - info('The document information dictionary is invalid.'); - } - if (infoDict) { - var validEntries = DocumentInfoValidators.entries; - // Only fill the document info with valid entries from the spec. - for (var key in validEntries) { - if (infoDict.has(key)) { - var value = infoDict.get(key); - // Make sure the value conforms to the spec. - if (validEntries[key](value)) { - docInfo[key] = (typeof value !== 'string' ? - value : stringToPDFString(value)); - } else { - info('Bad value in document info for "' + key + '"'); - } - } - } - } - return shadow(this, 'documentInfo', docInfo); - }, - get fingerprint() { - var xref = this.xref, idArray, hash, fileID = ''; - - if (xref.trailer.has('ID')) { - idArray = xref.trailer.get('ID'); - } - if (idArray && isArray(idArray) && idArray[0] !== EMPTY_FINGERPRINT) { - hash = stringToBytes(idArray[0]); - } else { - if (this.stream.ensureRange) { - this.stream.ensureRange(0, - Math.min(FINGERPRINT_FIRST_BYTES, this.stream.end)); - } - hash = calculateMD5(this.stream.bytes.subarray(0, - FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES); - } - - for (var i = 0, n = hash.length; i < n; i++) { - var hex = hash[i].toString(16); - fileID += hex.length === 1 ? '0' + hex : hex; - } - - return shadow(this, 'fingerprint', fileID); - }, - - getPage: function PDFDocument_getPage(pageIndex) { - return this.catalog.getPage(pageIndex); - }, - - cleanup: function PDFDocument_cleanup() { - return this.catalog.cleanup(); - } - }; - - return PDFDocument; -})(); - - -var Name = (function NameClosure() { - function Name(name) { - this.name = name; - } - - Name.prototype = {}; - - var nameCache = {}; - - Name.get = function Name_get(name) { - var nameValue = nameCache[name]; - return (nameValue ? nameValue : (nameCache[name] = new Name(name))); - }; - - return Name; -})(); - -var Cmd = (function CmdClosure() { - function Cmd(cmd) { - this.cmd = cmd; - } - - Cmd.prototype = {}; - - var cmdCache = {}; - - Cmd.get = function Cmd_get(cmd) { - var cmdValue = cmdCache[cmd]; - return (cmdValue ? cmdValue : (cmdCache[cmd] = new Cmd(cmd))); - }; - - return Cmd; -})(); - -var Dict = (function DictClosure() { - var nonSerializable = function nonSerializableClosure() { - return nonSerializable; // creating closure on some variable - }; - - var GETALL_DICTIONARY_TYPES_WHITELIST = { - 'Background': true, - 'ExtGState': true, - 'Halftone': true, - 'Layout': true, - 'Mask': true, - 'Pagination': true, - 'Printing': true - }; - - function isRecursionAllowedFor(dict) { - if (!isName(dict.Type)) { - return true; - } - var dictType = dict.Type.name; - return GETALL_DICTIONARY_TYPES_WHITELIST[dictType] === true; - } - - // xref is optional - function Dict(xref) { - // Map should only be used internally, use functions below to access. - this.map = Object.create(null); - this.xref = xref; - this.objId = null; - this.__nonSerializable__ = nonSerializable; // disable cloning of the Dict - } - - Dict.prototype = { - assignXref: function Dict_assignXref(newXref) { - this.xref = newXref; - }, - - // automatically dereferences Ref objects - get: function Dict_get(key1, key2, key3) { - var value; - var xref = this.xref; - if (typeof (value = this.map[key1]) !== 'undefined' || key1 in this.map || - typeof key2 === 'undefined') { - return xref ? xref.fetchIfRef(value) : value; - } - if (typeof (value = this.map[key2]) !== 'undefined' || key2 in this.map || - typeof key3 === 'undefined') { - return xref ? xref.fetchIfRef(value) : value; - } - value = this.map[key3] || null; - return xref ? xref.fetchIfRef(value) : value; - }, - - // Same as get(), but returns a promise and uses fetchIfRefAsync(). - getAsync: function Dict_getAsync(key1, key2, key3) { - var value; - var xref = this.xref; - if (typeof (value = this.map[key1]) !== 'undefined' || key1 in this.map || - typeof key2 === 'undefined') { - if (xref) { - return xref.fetchIfRefAsync(value); - } - return Promise.resolve(value); - } - if (typeof (value = this.map[key2]) !== 'undefined' || key2 in this.map || - typeof key3 === 'undefined') { - if (xref) { - return xref.fetchIfRefAsync(value); - } - return Promise.resolve(value); - } - value = this.map[key3] || null; - if (xref) { - return xref.fetchIfRefAsync(value); - } - return Promise.resolve(value); - }, - - // no dereferencing - getRaw: function Dict_getRaw(key) { - return this.map[key]; - }, - - // creates new map and dereferences all Refs - getAll: function Dict_getAll() { - var all = Object.create(null); - var queue = null; - var key, obj; - for (key in this.map) { - obj = this.get(key); - if (obj instanceof Dict) { - if (isRecursionAllowedFor(obj)) { - (queue || (queue = [])).push({target: all, key: key, obj: obj}); - } else { - all[key] = this.getRaw(key); - } - } else { - all[key] = obj; - } - } - if (!queue) { - return all; - } - - // trying to take cyclic references into the account - var processed = Object.create(null); - while (queue.length > 0) { - var item = queue.shift(); - var itemObj = item.obj; - var objId = itemObj.objId; - if (objId && objId in processed) { - item.target[item.key] = processed[objId]; - continue; - } - var dereferenced = Object.create(null); - for (key in itemObj.map) { - obj = itemObj.get(key); - if (obj instanceof Dict) { - if (isRecursionAllowedFor(obj)) { - queue.push({target: dereferenced, key: key, obj: obj}); - } else { - dereferenced[key] = itemObj.getRaw(key); - } - } else { - dereferenced[key] = obj; - } - } - if (objId) { - processed[objId] = dereferenced; - } - item.target[item.key] = dereferenced; - } - return all; - }, - - getKeys: function Dict_getKeys() { - return Object.keys(this.map); - }, - - set: function Dict_set(key, value) { - this.map[key] = value; - }, - - has: function Dict_has(key) { - return key in this.map; - }, - - forEach: function Dict_forEach(callback) { - for (var key in this.map) { - callback(key, this.get(key)); - } - } - }; - - Dict.empty = new Dict(null); - - return Dict; -})(); - -var Ref = (function RefClosure() { - function Ref(num, gen) { - this.num = num; - this.gen = gen; - } - - Ref.prototype = { - toString: function Ref_toString() { - // This function is hot, so we make the string as compact as possible. - // |this.gen| is almost always zero, so we treat that case specially. - var str = this.num + 'R'; - if (this.gen !== 0) { - str += this.gen; - } - return str; - } - }; - - return Ref; -})(); - -// The reference is identified by number and generation. -// This structure stores only one instance of the reference. -var RefSet = (function RefSetClosure() { - function RefSet() { - this.dict = {}; - } - - RefSet.prototype = { - has: function RefSet_has(ref) { - return ref.toString() in this.dict; - }, - - put: function RefSet_put(ref) { - this.dict[ref.toString()] = true; - }, - - remove: function RefSet_remove(ref) { - delete this.dict[ref.toString()]; - } - }; - - return RefSet; -})(); - -var RefSetCache = (function RefSetCacheClosure() { - function RefSetCache() { - this.dict = Object.create(null); - } - - RefSetCache.prototype = { - get: function RefSetCache_get(ref) { - return this.dict[ref.toString()]; - }, - - has: function RefSetCache_has(ref) { - return ref.toString() in this.dict; - }, - - put: function RefSetCache_put(ref, obj) { - this.dict[ref.toString()] = obj; - }, - - putAlias: function RefSetCache_putAlias(ref, aliasRef) { - this.dict[ref.toString()] = this.get(aliasRef); - }, - - forEach: function RefSetCache_forEach(fn, thisArg) { - for (var i in this.dict) { - fn.call(thisArg, this.dict[i]); - } - }, - - clear: function RefSetCache_clear() { - this.dict = Object.create(null); - } - }; - - return RefSetCache; -})(); - -var Catalog = (function CatalogClosure() { - function Catalog(pdfManager, xref) { - this.pdfManager = pdfManager; - this.xref = xref; - this.catDict = xref.getCatalogObj(); - this.fontCache = new RefSetCache(); - assert(isDict(this.catDict), - 'catalog object is not a dictionary'); - - this.pagePromises = []; - } - - Catalog.prototype = { - get metadata() { - var streamRef = this.catDict.getRaw('Metadata'); - if (!isRef(streamRef)) { - return shadow(this, 'metadata', null); - } - - var encryptMetadata = (!this.xref.encrypt ? false : - this.xref.encrypt.encryptMetadata); - - var stream = this.xref.fetch(streamRef, !encryptMetadata); - var metadata; - if (stream && isDict(stream.dict)) { - var type = stream.dict.get('Type'); - var subtype = stream.dict.get('Subtype'); - - if (isName(type) && isName(subtype) && - type.name === 'Metadata' && subtype.name === 'XML') { - // XXX: This should examine the charset the XML document defines, - // however since there are currently no real means to decode - // arbitrary charsets, let's just hope that the author of the PDF - // was reasonable enough to stick with the XML default charset, - // which is UTF-8. - try { - metadata = stringToUTF8String(bytesToString(stream.getBytes())); - } catch (e) { - info('Skipping invalid metadata.'); - } - } - } - - return shadow(this, 'metadata', metadata); - }, - get toplevelPagesDict() { - var pagesObj = this.catDict.get('Pages'); - assert(isDict(pagesObj), 'invalid top-level pages dictionary'); - // shadow the prototype getter - return shadow(this, 'toplevelPagesDict', pagesObj); - }, - get documentOutline() { - var obj = null; - try { - obj = this.readDocumentOutline(); - } catch (ex) { - if (ex instanceof MissingDataException) { - throw ex; - } - warn('Unable to read document outline'); - } - return shadow(this, 'documentOutline', obj); - }, - readDocumentOutline: function Catalog_readDocumentOutline() { - var xref = this.xref; - var obj = this.catDict.get('Outlines'); - var root = { items: [] }; - if (isDict(obj)) { - obj = obj.getRaw('First'); - var processed = new RefSet(); - if (isRef(obj)) { - var queue = [{obj: obj, parent: root}]; - // to avoid recursion keeping track of the items - // in the processed dictionary - processed.put(obj); - while (queue.length > 0) { - var i = queue.shift(); - var outlineDict = xref.fetchIfRef(i.obj); - if (outlineDict === null) { - continue; - } - if (!outlineDict.has('Title')) { - error('Invalid outline item'); - } - var dest = outlineDict.get('A'); - if (dest) { - dest = dest.get('D'); - } else if (outlineDict.has('Dest')) { - dest = outlineDict.getRaw('Dest'); - if (isName(dest)) { - dest = dest.name; - } - } - var title = outlineDict.get('Title'); - var outlineItem = { - dest: dest, - title: stringToPDFString(title), - color: outlineDict.get('C') || [0, 0, 0], - count: outlineDict.get('Count'), - bold: !!(outlineDict.get('F') & 2), - italic: !!(outlineDict.get('F') & 1), - items: [] - }; - i.parent.items.push(outlineItem); - obj = outlineDict.getRaw('First'); - if (isRef(obj) && !processed.has(obj)) { - queue.push({obj: obj, parent: outlineItem}); - processed.put(obj); - } - obj = outlineDict.getRaw('Next'); - if (isRef(obj) && !processed.has(obj)) { - queue.push({obj: obj, parent: i.parent}); - processed.put(obj); - } - } - } - } - return (root.items.length > 0 ? root.items : null); - }, - get numPages() { - var obj = this.toplevelPagesDict.get('Count'); - assert( - isInt(obj), - 'page count in top level pages object is not an integer' - ); - // shadow the prototype getter - return shadow(this, 'num', obj); - }, - get destinations() { - function fetchDestination(dest) { - return isDict(dest) ? dest.get('D') : dest; - } - - var xref = this.xref; - var dests = {}, nameTreeRef, nameDictionaryRef; - var obj = this.catDict.get('Names'); - if (obj && obj.has('Dests')) { - nameTreeRef = obj.getRaw('Dests'); - } else if (this.catDict.has('Dests')) { - nameDictionaryRef = this.catDict.get('Dests'); - } - - if (nameDictionaryRef) { - // reading simple destination dictionary - obj = nameDictionaryRef; - obj.forEach(function catalogForEach(key, value) { - if (!value) { - return; - } - dests[key] = fetchDestination(value); - }); - } - if (nameTreeRef) { - var nameTree = new NameTree(nameTreeRef, xref); - var names = nameTree.getAll(); - for (var name in names) { - if (!names.hasOwnProperty(name)) { - continue; - } - dests[name] = fetchDestination(names[name]); - } - } - return shadow(this, 'destinations', dests); - }, - getDestination: function Catalog_getDestination(destinationId) { - function fetchDestination(dest) { - return isDict(dest) ? dest.get('D') : dest; - } - - var xref = this.xref; - var dest, nameTreeRef, nameDictionaryRef; - var obj = this.catDict.get('Names'); - if (obj && obj.has('Dests')) { - nameTreeRef = obj.getRaw('Dests'); - } else if (this.catDict.has('Dests')) { - nameDictionaryRef = this.catDict.get('Dests'); - } - - if (nameDictionaryRef) { - // reading simple destination dictionary - obj = nameDictionaryRef; - obj.forEach(function catalogForEach(key, value) { - if (!value) { - return; - } - if (key === destinationId) { - dest = fetchDestination(value); - } - }); - } - if (nameTreeRef) { - var nameTree = new NameTree(nameTreeRef, xref); - dest = fetchDestination(nameTree.get(destinationId)); - } - return dest; - }, - get attachments() { - var xref = this.xref; - var attachments = null, nameTreeRef; - var obj = this.catDict.get('Names'); - if (obj) { - nameTreeRef = obj.getRaw('EmbeddedFiles'); - } - - if (nameTreeRef) { - var nameTree = new NameTree(nameTreeRef, xref); - var names = nameTree.getAll(); - for (var name in names) { - if (!names.hasOwnProperty(name)) { - continue; - } - var fs = new FileSpec(names[name], xref); - if (!attachments) { - attachments = {}; - } - attachments[stringToPDFString(name)] = fs.serializable; - } - } - return shadow(this, 'attachments', attachments); - }, - get javaScript() { - var xref = this.xref; - var obj = this.catDict.get('Names'); - - var javaScript = []; - if (obj && obj.has('JavaScript')) { - var nameTree = new NameTree(obj.getRaw('JavaScript'), xref); - var names = nameTree.getAll(); - for (var name in names) { - if (!names.hasOwnProperty(name)) { - continue; - } - // We don't really use the JavaScript right now. This code is - // defensive so we don't cause errors on document load. - var jsDict = names[name]; - if (!isDict(jsDict)) { - continue; - } - var type = jsDict.get('S'); - if (!isName(type) || type.name !== 'JavaScript') { - continue; - } - var js = jsDict.get('JS'); - if (!isString(js) && !isStream(js)) { - continue; - } - if (isStream(js)) { - js = bytesToString(js.getBytes()); - } - javaScript.push(stringToPDFString(js)); - } - } - - // Append OpenAction actions to javaScript array - var openactionDict = this.catDict.get('OpenAction'); - if (isDict(openactionDict)) { - var objType = openactionDict.get('Type'); - var actionType = openactionDict.get('S'); - var action = openactionDict.get('N'); - var isPrintAction = (isName(objType) && objType.name === 'Action' && - isName(actionType) && actionType.name === 'Named' && - isName(action) && action.name === 'Print'); - - if (isPrintAction) { - javaScript.push('print(true);'); - } - } - - return shadow(this, 'javaScript', javaScript); - }, - - cleanup: function Catalog_cleanup() { - var promises = []; - this.fontCache.forEach(function (promise) { - promises.push(promise); - }); - return Promise.all(promises).then(function (translatedFonts) { - for (var i = 0, ii = translatedFonts.length; i < ii; i++) { - var font = translatedFonts[i].dict; - delete font.translated; - } - this.fontCache.clear(); - }.bind(this)); - }, - - getPage: function Catalog_getPage(pageIndex) { - if (!(pageIndex in this.pagePromises)) { - this.pagePromises[pageIndex] = this.getPageDict(pageIndex).then( - function (a) { - var dict = a[0]; - var ref = a[1]; - return new Page(this.pdfManager, this.xref, pageIndex, dict, ref, - this.fontCache); - }.bind(this) - ); - } - return this.pagePromises[pageIndex]; - }, - - getPageDict: function Catalog_getPageDict(pageIndex) { - var capability = createPromiseCapability(); - var nodesToVisit = [this.catDict.getRaw('Pages')]; - var currentPageIndex = 0; - var xref = this.xref; - var checkAllKids = false; - - function next() { - while (nodesToVisit.length) { - var currentNode = nodesToVisit.pop(); - - if (isRef(currentNode)) { - xref.fetchAsync(currentNode).then(function (obj) { - if (isDict(obj, 'Page') || (isDict(obj) && !obj.has('Kids'))) { - if (pageIndex === currentPageIndex) { - capability.resolve([obj, currentNode]); - } else { - currentPageIndex++; - next(); - } - return; - } - nodesToVisit.push(obj); - next(); - }, capability.reject); - return; - } - - // Must be a child page dictionary. - assert( - isDict(currentNode), - 'page dictionary kid reference points to wrong type of object' - ); - var count = currentNode.get('Count'); - // If the current node doesn't have any children, avoid getting stuck - // in an empty node further down in the tree (see issue5644.pdf). - if (count === 0) { - checkAllKids = true; - } - // Skip nodes where the page can't be. - if (currentPageIndex + count <= pageIndex) { - currentPageIndex += count; - continue; - } - - var kids = currentNode.get('Kids'); - assert(isArray(kids), 'page dictionary kids object is not an array'); - if (!checkAllKids && count === kids.length) { - // Nodes that don't have the page have been skipped and this is the - // bottom of the tree which means the page requested must be a - // descendant of this pages node. Ideally we would just resolve the - // promise with the page ref here, but there is the case where more - // pages nodes could link to single a page (see issue 3666 pdf). To - // handle this push it back on the queue so if it is a pages node it - // will be descended into. - nodesToVisit = [kids[pageIndex - currentPageIndex]]; - currentPageIndex = pageIndex; - continue; - } else { - for (var last = kids.length - 1; last >= 0; last--) { - nodesToVisit.push(kids[last]); - } - } - } - capability.reject('Page index ' + pageIndex + ' not found.'); - } - next(); - return capability.promise; - }, - - getPageIndex: function Catalog_getPageIndex(ref) { - // The page tree nodes have the count of all the leaves below them. To get - // how many pages are before we just have to walk up the tree and keep - // adding the count of siblings to the left of the node. - var xref = this.xref; - function pagesBeforeRef(kidRef) { - var total = 0; - var parentRef; - return xref.fetchAsync(kidRef).then(function (node) { - if (!node) { - return null; - } - parentRef = node.getRaw('Parent'); - return node.getAsync('Parent'); - }).then(function (parent) { - if (!parent) { - return null; - } - return parent.getAsync('Kids'); - }).then(function (kids) { - if (!kids) { - return null; - } - var kidPromises = []; - var found = false; - for (var i = 0; i < kids.length; i++) { - var kid = kids[i]; - assert(isRef(kid), 'kids must be a ref'); - if (kid.num === kidRef.num) { - found = true; - break; - } - kidPromises.push(xref.fetchAsync(kid).then(function (kid) { - if (kid.has('Count')) { - var count = kid.get('Count'); - total += count; - } else { // page leaf node - total++; - } - })); - } - if (!found) { - error('kid ref not found in parents kids'); - } - return Promise.all(kidPromises).then(function () { - return [total, parentRef]; - }); - }); - } - - var total = 0; - function next(ref) { - return pagesBeforeRef(ref).then(function (args) { - if (!args) { - return total; - } - var count = args[0]; - var parentRef = args[1]; - total += count; - return next(parentRef); - }); - } - - return next(ref); - } - }; - - return Catalog; -})(); - -var XRef = (function XRefClosure() { - function XRef(stream, password) { - this.stream = stream; - this.entries = []; - this.xrefstms = {}; - // prepare the XRef cache - this.cache = []; - this.password = password; - this.stats = { - streamTypes: [], - fontTypes: [] - }; - } - - XRef.prototype = { - setStartXRef: function XRef_setStartXRef(startXRef) { - // Store the starting positions of xref tables as we process them - // so we can recover from missing data errors - this.startXRefQueue = [startXRef]; - }, - - parse: function XRef_parse(recoveryMode) { - var trailerDict; - if (!recoveryMode) { - trailerDict = this.readXRef(); - } else { - warn('Indexing all PDF objects'); - trailerDict = this.indexObjects(); - } - trailerDict.assignXref(this); - this.trailer = trailerDict; - var encrypt = trailerDict.get('Encrypt'); - if (encrypt) { - var ids = trailerDict.get('ID'); - var fileId = (ids && ids.length) ? ids[0] : ''; - this.encrypt = new CipherTransformFactory(encrypt, fileId, - this.password); - } - - // get the root dictionary (catalog) object - if (!(this.root = trailerDict.get('Root'))) { - error('Invalid root reference'); - } - }, - - processXRefTable: function XRef_processXRefTable(parser) { - if (!('tableState' in this)) { - // Stores state of the table as we process it so we can resume - // from middle of table in case of missing data error - this.tableState = { - entryNum: 0, - streamPos: parser.lexer.stream.pos, - parserBuf1: parser.buf1, - parserBuf2: parser.buf2 - }; - } - - var obj = this.readXRefTable(parser); - - // Sanity check - if (!isCmd(obj, 'trailer')) { - error('Invalid XRef table: could not find trailer dictionary'); - } - // Read trailer dictionary, e.g. - // trailer - // << /Size 22 - // /Root 20R - // /Info 10R - // /ID [ <81b14aafa313db63dbd6f981e49f94f4> ] - // >> - // The parser goes through the entire stream << ... >> and provides - // a getter interface for the key-value table - var dict = parser.getObj(); - - // The pdflib PDF generator can generate a nested trailer dictionary - if (!isDict(dict) && dict.dict) { - dict = dict.dict; - } - if (!isDict(dict)) { - error('Invalid XRef table: could not parse trailer dictionary'); - } - delete this.tableState; - - return dict; - }, - - readXRefTable: function XRef_readXRefTable(parser) { - // Example of cross-reference table: - // xref - // 0 1 <-- subsection header (first obj #, obj count) - // 0000000000 65535 f <-- actual object (offset, generation #, f/n) - // 23 2 <-- subsection header ... and so on ... - // 0000025518 00002 n - // 0000025635 00000 n - // trailer - // ... - - var stream = parser.lexer.stream; - var tableState = this.tableState; - stream.pos = tableState.streamPos; - parser.buf1 = tableState.parserBuf1; - parser.buf2 = tableState.parserBuf2; - - // Outer loop is over subsection headers - var obj; - - while (true) { - if (!('firstEntryNum' in tableState) || !('entryCount' in tableState)) { - if (isCmd(obj = parser.getObj(), 'trailer')) { - break; - } - tableState.firstEntryNum = obj; - tableState.entryCount = parser.getObj(); - } - - var first = tableState.firstEntryNum; - var count = tableState.entryCount; - if (!isInt(first) || !isInt(count)) { - error('Invalid XRef table: wrong types in subsection header'); - } - // Inner loop is over objects themselves - for (var i = tableState.entryNum; i < count; i++) { - tableState.streamPos = stream.pos; - tableState.entryNum = i; - tableState.parserBuf1 = parser.buf1; - tableState.parserBuf2 = parser.buf2; - - var entry = {}; - entry.offset = parser.getObj(); - entry.gen = parser.getObj(); - var type = parser.getObj(); - - if (isCmd(type, 'f')) { - entry.free = true; - } else if (isCmd(type, 'n')) { - entry.uncompressed = true; - } - - // Validate entry obj - if (!isInt(entry.offset) || !isInt(entry.gen) || - !(entry.free || entry.uncompressed)) { - error('Invalid entry in XRef subsection: ' + first + ', ' + count); - } - - if (!this.entries[i + first]) { - this.entries[i + first] = entry; - } - } - - tableState.entryNum = 0; - tableState.streamPos = stream.pos; - tableState.parserBuf1 = parser.buf1; - tableState.parserBuf2 = parser.buf2; - delete tableState.firstEntryNum; - delete tableState.entryCount; - } - - // Per issue 3248: hp scanners generate bad XRef - if (first === 1 && this.entries[1] && this.entries[1].free) { - // shifting the entries - this.entries.shift(); - } - - // Sanity check: as per spec, first object must be free - if (this.entries[0] && !this.entries[0].free) { - error('Invalid XRef table: unexpected first object'); - } - return obj; - }, - - processXRefStream: function XRef_processXRefStream(stream) { - if (!('streamState' in this)) { - // Stores state of the stream as we process it so we can resume - // from middle of stream in case of missing data error - var streamParameters = stream.dict; - var byteWidths = streamParameters.get('W'); - var range = streamParameters.get('Index'); - if (!range) { - range = [0, streamParameters.get('Size')]; - } - - this.streamState = { - entryRanges: range, - byteWidths: byteWidths, - entryNum: 0, - streamPos: stream.pos - }; - } - this.readXRefStream(stream); - delete this.streamState; - - return stream.dict; - }, - - readXRefStream: function XRef_readXRefStream(stream) { - var i, j; - var streamState = this.streamState; - stream.pos = streamState.streamPos; - - var byteWidths = streamState.byteWidths; - var typeFieldWidth = byteWidths[0]; - var offsetFieldWidth = byteWidths[1]; - var generationFieldWidth = byteWidths[2]; - - var entryRanges = streamState.entryRanges; - while (entryRanges.length > 0) { - var first = entryRanges[0]; - var n = entryRanges[1]; - - if (!isInt(first) || !isInt(n)) { - error('Invalid XRef range fields: ' + first + ', ' + n); - } - if (!isInt(typeFieldWidth) || !isInt(offsetFieldWidth) || - !isInt(generationFieldWidth)) { - error('Invalid XRef entry fields length: ' + first + ', ' + n); - } - for (i = streamState.entryNum; i < n; ++i) { - streamState.entryNum = i; - streamState.streamPos = stream.pos; - - var type = 0, offset = 0, generation = 0; - for (j = 0; j < typeFieldWidth; ++j) { - type = (type << 8) | stream.getByte(); - } - // if type field is absent, its default value is 1 - if (typeFieldWidth === 0) { - type = 1; - } - for (j = 0; j < offsetFieldWidth; ++j) { - offset = (offset << 8) | stream.getByte(); - } - for (j = 0; j < generationFieldWidth; ++j) { - generation = (generation << 8) | stream.getByte(); - } - var entry = {}; - entry.offset = offset; - entry.gen = generation; - switch (type) { - case 0: - entry.free = true; - break; - case 1: - entry.uncompressed = true; - break; - case 2: - break; - default: - error('Invalid XRef entry type: ' + type); - } - if (!this.entries[first + i]) { - this.entries[first + i] = entry; - } - } - - streamState.entryNum = 0; - streamState.streamPos = stream.pos; - entryRanges.splice(0, 2); - } - }, - - indexObjects: function XRef_indexObjects() { - // Simple scan through the PDF content to find objects, - // trailers and XRef streams. - function readToken(data, offset) { - var token = '', ch = data[offset]; - while (ch !== 13 && ch !== 10) { - if (++offset >= data.length) { - break; - } - token += String.fromCharCode(ch); - ch = data[offset]; - } - return token; - } - function skipUntil(data, offset, what) { - var length = what.length, dataLength = data.length; - var skipped = 0; - // finding byte sequence - while (offset < dataLength) { - var i = 0; - while (i < length && data[offset + i] === what[i]) { - ++i; - } - if (i >= length) { - break; // sequence found - } - offset++; - skipped++; - } - return skipped; - } - var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]); - var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, - 101, 102]); - var endobjBytes = new Uint8Array([101, 110, 100, 111, 98, 106]); - var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]); - - var stream = this.stream; - stream.pos = 0; - var buffer = stream.getBytes(); - var position = stream.start, length = buffer.length; - var trailers = [], xrefStms = []; - while (position < length) { - var ch = buffer[position]; - if (ch === 32 || ch === 9 || ch === 13 || ch === 10) { - ++position; - continue; - } - if (ch === 37) { // %-comment - do { - ++position; - if (position >= length) { - break; - } - ch = buffer[position]; - } while (ch !== 13 && ch !== 10); - continue; - } - var token = readToken(buffer, position); - var m; - if (token === 'xref') { - position += skipUntil(buffer, position, trailerBytes); - trailers.push(position); - position += skipUntil(buffer, position, startxrefBytes); - } else if ((m = /^(\d+)\s+(\d+)\s+obj\b/.exec(token))) { - if (typeof this.entries[m[1]] === 'undefined') { - this.entries[m[1]] = { - offset: position, - gen: m[2] | 0, - uncompressed: true - }; - } - var contentLength = skipUntil(buffer, position, endobjBytes) + 7; - var content = buffer.subarray(position, position + contentLength); - - // checking XRef stream suspect - // (it shall have '/XRef' and next char is not a letter) - var xrefTagOffset = skipUntil(content, 0, xrefBytes); - if (xrefTagOffset < contentLength && - content[xrefTagOffset + 5] < 64) { - xrefStms.push(position); - this.xrefstms[position] = 1; // don't read it recursively - } - - position += contentLength; - } else { - position += token.length + 1; - } - } - // reading XRef streams - var i, ii; - for (i = 0, ii = xrefStms.length; i < ii; ++i) { - this.startXRefQueue.push(xrefStms[i]); - this.readXRef(/* recoveryMode */ true); - } - // finding main trailer - var dict; - for (i = 0, ii = trailers.length; i < ii; ++i) { - stream.pos = trailers[i]; - var parser = new Parser(new Lexer(stream), true, this); - var obj = parser.getObj(); - if (!isCmd(obj, 'trailer')) { - continue; - } - // read the trailer dictionary - if (!isDict(dict = parser.getObj())) { - continue; - } - // taking the first one with 'ID' - if (dict.has('ID')) { - return dict; - } - } - // no tailer with 'ID', taking last one (if exists) - if (dict) { - return dict; - } - // nothing helps - // calling error() would reject worker with an UnknownErrorException. - throw new InvalidPDFException('Invalid PDF structure'); - }, - - readXRef: function XRef_readXRef(recoveryMode) { - var stream = this.stream; - - try { - while (this.startXRefQueue.length) { - var startXRef = this.startXRefQueue[0]; - - stream.pos = startXRef + stream.start; - - var parser = new Parser(new Lexer(stream), true, this); - var obj = parser.getObj(); - var dict; - - // Get dictionary - if (isCmd(obj, 'xref')) { - // Parse end-of-file XRef - dict = this.processXRefTable(parser); - if (!this.topDict) { - this.topDict = dict; - } - - // Recursively get other XRefs 'XRefStm', if any - obj = dict.get('XRefStm'); - if (isInt(obj)) { - var pos = obj; - // ignore previously loaded xref streams - // (possible infinite recursion) - if (!(pos in this.xrefstms)) { - this.xrefstms[pos] = 1; - this.startXRefQueue.push(pos); - } - } - } else if (isInt(obj)) { - // Parse in-stream XRef - if (!isInt(parser.getObj()) || - !isCmd(parser.getObj(), 'obj') || - !isStream(obj = parser.getObj())) { - error('Invalid XRef stream'); - } - dict = this.processXRefStream(obj); - if (!this.topDict) { - this.topDict = dict; - } - if (!dict) { - error('Failed to read XRef stream'); - } - } else { - error('Invalid XRef stream header'); - } - - // Recursively get previous dictionary, if any - obj = dict.get('Prev'); - if (isInt(obj)) { - this.startXRefQueue.push(obj); - } else if (isRef(obj)) { - // The spec says Prev must not be a reference, i.e. "/Prev NNN" - // This is a fallback for non-compliant PDFs, i.e. "/Prev NNN 0 R" - this.startXRefQueue.push(obj.num); - } - - this.startXRefQueue.shift(); - } - - return this.topDict; - } catch (e) { - if (e instanceof MissingDataException) { - throw e; - } - info('(while reading XRef): ' + e); - } - - if (recoveryMode) { - return; - } - throw new XRefParseException(); - }, - - getEntry: function XRef_getEntry(i) { - var xrefEntry = this.entries[i]; - if (xrefEntry && !xrefEntry.free && xrefEntry.offset) { - return xrefEntry; - } - return null; - }, - - fetchIfRef: function XRef_fetchIfRef(obj) { - if (!isRef(obj)) { - return obj; - } - return this.fetch(obj); - }, - - fetch: function XRef_fetch(ref, suppressEncryption) { - assert(isRef(ref), 'ref object is not a reference'); - var num = ref.num; - if (num in this.cache) { - var cacheEntry = this.cache[num]; - return cacheEntry; - } - - var xrefEntry = this.getEntry(num); - - // the referenced entry can be free - if (xrefEntry === null) { - return (this.cache[num] = null); - } - - if (xrefEntry.uncompressed) { - xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption); - } else { - xrefEntry = this.fetchCompressed(xrefEntry, suppressEncryption); - } - if (isDict(xrefEntry)){ - xrefEntry.objId = ref.toString(); - } else if (isStream(xrefEntry)) { - xrefEntry.dict.objId = ref.toString(); - } - return xrefEntry; - }, - - fetchUncompressed: function XRef_fetchUncompressed(ref, xrefEntry, - suppressEncryption) { - var gen = ref.gen; - var num = ref.num; - if (xrefEntry.gen !== gen) { - error('inconsistent generation in XRef'); - } - var stream = this.stream.makeSubStream(xrefEntry.offset + - this.stream.start); - var parser = new Parser(new Lexer(stream), true, this); - var obj1 = parser.getObj(); - var obj2 = parser.getObj(); - var obj3 = parser.getObj(); - if (!isInt(obj1) || parseInt(obj1, 10) !== num || - !isInt(obj2) || parseInt(obj2, 10) !== gen || - !isCmd(obj3)) { - error('bad XRef entry'); - } - if (!isCmd(obj3, 'obj')) { - // some bad PDFs use "obj1234" and really mean 1234 - if (obj3.cmd.indexOf('obj') === 0) { - num = parseInt(obj3.cmd.substring(3), 10); - if (!isNaN(num)) { - return num; - } - } - error('bad XRef entry'); - } - if (this.encrypt && !suppressEncryption) { - xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen)); - } else { - xrefEntry = parser.getObj(); - } - if (!isStream(xrefEntry)) { - this.cache[num] = xrefEntry; - } - return xrefEntry; - }, - - fetchCompressed: function XRef_fetchCompressed(xrefEntry, - suppressEncryption) { - var tableOffset = xrefEntry.offset; - var stream = this.fetch(new Ref(tableOffset, 0)); - if (!isStream(stream)) { - error('bad ObjStm stream'); - } - var first = stream.dict.get('First'); - var n = stream.dict.get('N'); - if (!isInt(first) || !isInt(n)) { - error('invalid first and n parameters for ObjStm stream'); - } - var parser = new Parser(new Lexer(stream), false, this); - parser.allowStreams = true; - var i, entries = [], num, nums = []; - // read the object numbers to populate cache - for (i = 0; i < n; ++i) { - num = parser.getObj(); - if (!isInt(num)) { - error('invalid object number in the ObjStm stream: ' + num); - } - nums.push(num); - var offset = parser.getObj(); - if (!isInt(offset)) { - error('invalid object offset in the ObjStm stream: ' + offset); - } - } - // read stream objects for cache - for (i = 0; i < n; ++i) { - entries.push(parser.getObj()); - num = nums[i]; - var entry = this.entries[num]; - if (entry && entry.offset === tableOffset && entry.gen === i) { - this.cache[num] = entries[i]; - } - } - xrefEntry = entries[xrefEntry.gen]; - if (xrefEntry === undefined) { - error('bad XRef entry for compressed object'); - } - return xrefEntry; - }, - - fetchIfRefAsync: function XRef_fetchIfRefAsync(obj) { - if (!isRef(obj)) { - return Promise.resolve(obj); - } - return this.fetchAsync(obj); - }, - - fetchAsync: function XRef_fetchAsync(ref, suppressEncryption) { - var streamManager = this.stream.manager; - var xref = this; - return new Promise(function tryFetch(resolve, reject) { - try { - resolve(xref.fetch(ref, suppressEncryption)); - } catch (e) { - if (e instanceof MissingDataException) { - streamManager.requestRange(e.begin, e.end, function () { - tryFetch(resolve, reject); - }); - return; - } - reject(e); - } - }); - }, - - getCatalogObj: function XRef_getCatalogObj() { - return this.root; - } - }; - - return XRef; -})(); - -/** - * A NameTree is like a Dict but has some advantageous properties, see the - * spec (7.9.6) for more details. - * TODO: implement all the Dict functions and make this more efficent. - */ -var NameTree = (function NameTreeClosure() { - function NameTree(root, xref) { - this.root = root; - this.xref = xref; - } - - NameTree.prototype = { - getAll: function NameTree_getAll() { - var dict = {}; - if (!this.root) { - return dict; - } - var xref = this.xref; - // reading name tree - var processed = new RefSet(); - processed.put(this.root); - var queue = [this.root]; - while (queue.length > 0) { - var i, n; - var obj = xref.fetchIfRef(queue.shift()); - if (!isDict(obj)) { - continue; - } - if (obj.has('Kids')) { - var kids = obj.get('Kids'); - for (i = 0, n = kids.length; i < n; i++) { - var kid = kids[i]; - if (processed.has(kid)) { - error('invalid destinations'); - } - queue.push(kid); - processed.put(kid); - } - continue; - } - var names = obj.get('Names'); - if (names) { - for (i = 0, n = names.length; i < n; i += 2) { - dict[names[i]] = xref.fetchIfRef(names[i + 1]); - } - } - } - return dict; - }, - - get: function NameTree_get(destinationId) { - if (!this.root) { - return null; - } - - var xref = this.xref; - var kidsOrNames = xref.fetchIfRef(this.root); - var loopCount = 0; - var MAX_NAMES_LEVELS = 10; - var l, r, m; - - // Perform a binary search to quickly find the entry that - // contains the named destination we are looking for. - while (kidsOrNames.has('Kids')) { - loopCount++; - if (loopCount > MAX_NAMES_LEVELS) { - warn('Search depth limit for named destionations has been reached.'); - return null; - } - - var kids = kidsOrNames.get('Kids'); - if (!isArray(kids)) { - return null; - } - - l = 0; - r = kids.length - 1; - while (l <= r) { - m = (l + r) >> 1; - var kid = xref.fetchIfRef(kids[m]); - var limits = kid.get('Limits'); - - if (destinationId < limits[0]) { - r = m - 1; - } else if (destinationId > limits[1]) { - l = m + 1; - } else { - kidsOrNames = xref.fetchIfRef(kids[m]); - break; - } - } - if (l > r) { - return null; - } - } - - // If we get here, then we have found the right entry. Now - // go through the named destinations in the Named dictionary - // until we find the exact destination we're looking for. - var names = kidsOrNames.get('Names'); - if (isArray(names)) { - // Perform a binary search to reduce the lookup time. - l = 0; - r = names.length - 2; - while (l <= r) { - // Check only even indices (0, 2, 4, ...) because the - // odd indices contain the actual D array. - m = (l + r) & ~1; - if (destinationId < names[m]) { - r = m - 2; - } else if (destinationId > names[m]) { - l = m + 2; - } else { - return xref.fetchIfRef(names[m + 1]); - } - } - } - return null; - } - }; - return NameTree; -})(); - -/** - * "A PDF file can refer to the contents of another file by using a File - * Specification (PDF 1.1)", see the spec (7.11) for more details. - * NOTE: Only embedded files are supported (as part of the attachments support) - * TODO: support the 'URL' file system (with caching if !/V), portable - * collections attributes and related files (/RF) - */ -var FileSpec = (function FileSpecClosure() { - function FileSpec(root, xref) { - if (!root || !isDict(root)) { - return; - } - this.xref = xref; - this.root = root; - if (root.has('FS')) { - this.fs = root.get('FS'); - } - this.description = root.has('Desc') ? - stringToPDFString(root.get('Desc')) : - ''; - if (root.has('RF')) { - warn('Related file specifications are not supported'); - } - this.contentAvailable = true; - if (!root.has('EF')) { - this.contentAvailable = false; - warn('Non-embedded file specifications are not supported'); - } - } - - function pickPlatformItem(dict) { - // Look for the filename in this order: - // UF, F, Unix, Mac, DOS - if (dict.has('UF')) { - return dict.get('UF'); - } else if (dict.has('F')) { - return dict.get('F'); - } else if (dict.has('Unix')) { - return dict.get('Unix'); - } else if (dict.has('Mac')) { - return dict.get('Mac'); - } else if (dict.has('DOS')) { - return dict.get('DOS'); - } else { - return null; - } - } - - FileSpec.prototype = { - get filename() { - if (!this._filename && this.root) { - var filename = pickPlatformItem(this.root) || 'unnamed'; - this._filename = stringToPDFString(filename). - replace(/\\\\/g, '\\'). - replace(/\\\//g, '/'). - replace(/\\/g, '/'); - } - return this._filename; - }, - get content() { - if (!this.contentAvailable) { - return null; - } - if (!this.contentRef && this.root) { - this.contentRef = pickPlatformItem(this.root.get('EF')); - } - var content = null; - if (this.contentRef) { - var xref = this.xref; - var fileObj = xref.fetchIfRef(this.contentRef); - if (fileObj && isStream(fileObj)) { - content = fileObj.getBytes(); - } else { - warn('Embedded file specification points to non-existing/invalid ' + - 'content'); - } - } else { - warn('Embedded file specification does not have a content'); - } - return content; - }, - get serializable() { - return { - filename: this.filename, - content: this.content - }; - } - }; - return FileSpec; -})(); - -/** - * A helper for loading missing data in object graphs. It traverses the graph - * depth first and queues up any objects that have missing data. Once it has - * has traversed as many objects that are available it attempts to bundle the - * missing data requests and then resume from the nodes that weren't ready. - * - * NOTE: It provides protection from circular references by keeping track of - * of loaded references. However, you must be careful not to load any graphs - * that have references to the catalog or other pages since that will cause the - * entire PDF document object graph to be traversed. - */ -var ObjectLoader = (function() { - function mayHaveChildren(value) { - return isRef(value) || isDict(value) || isArray(value) || isStream(value); - } - - function addChildren(node, nodesToVisit) { - var value; - if (isDict(node) || isStream(node)) { - var map; - if (isDict(node)) { - map = node.map; - } else { - map = node.dict.map; - } - for (var key in map) { - value = map[key]; - if (mayHaveChildren(value)) { - nodesToVisit.push(value); - } - } - } else if (isArray(node)) { - for (var i = 0, ii = node.length; i < ii; i++) { - value = node[i]; - if (mayHaveChildren(value)) { - nodesToVisit.push(value); - } - } - } - } - - function ObjectLoader(obj, keys, xref) { - this.obj = obj; - this.keys = keys; - this.xref = xref; - this.refSet = null; - } - - ObjectLoader.prototype = { - load: function ObjectLoader_load() { - var keys = this.keys; - this.capability = createPromiseCapability(); - // Don't walk the graph if all the data is already loaded. - if (!(this.xref.stream instanceof ChunkedStream) || - this.xref.stream.getMissingChunks().length === 0) { - this.capability.resolve(); - return this.capability.promise; - } - - this.refSet = new RefSet(); - // Setup the initial nodes to visit. - var nodesToVisit = []; - for (var i = 0; i < keys.length; i++) { - nodesToVisit.push(this.obj[keys[i]]); - } - - this.walk(nodesToVisit); - return this.capability.promise; - }, - - walk: function ObjectLoader_walk(nodesToVisit) { - var nodesToRevisit = []; - var pendingRequests = []; - // DFS walk of the object graph. - while (nodesToVisit.length) { - var currentNode = nodesToVisit.pop(); - - // Only references or chunked streams can cause missing data exceptions. - if (isRef(currentNode)) { - // Skip nodes that have already been visited. - if (this.refSet.has(currentNode)) { - continue; - } - try { - var ref = currentNode; - this.refSet.put(ref); - currentNode = this.xref.fetch(currentNode); - } catch (e) { - if (!(e instanceof MissingDataException)) { - throw e; - } - nodesToRevisit.push(currentNode); - pendingRequests.push({ begin: e.begin, end: e.end }); - } - } - if (currentNode && currentNode.getBaseStreams) { - var baseStreams = currentNode.getBaseStreams(); - var foundMissingData = false; - for (var i = 0; i < baseStreams.length; i++) { - var stream = baseStreams[i]; - if (stream.getMissingChunks && stream.getMissingChunks().length) { - foundMissingData = true; - pendingRequests.push({ - begin: stream.start, - end: stream.end - }); - } - } - if (foundMissingData) { - nodesToRevisit.push(currentNode); - } - } - - addChildren(currentNode, nodesToVisit); - } - - if (pendingRequests.length) { - this.xref.stream.manager.requestRanges(pendingRequests, - function pendingRequestCallback() { - nodesToVisit = nodesToRevisit; - for (var i = 0; i < nodesToRevisit.length; i++) { - var node = nodesToRevisit[i]; - // Remove any reference nodes from the currrent refset so they - // aren't skipped when we revist them. - if (isRef(node)) { - this.refSet.remove(node); - } - } - this.walk(nodesToVisit); - }.bind(this)); - return; - } - // Everything is loaded. - this.refSet = null; - this.capability.resolve(); - } - }; - - return ObjectLoader; -})(); - - -var ISOAdobeCharset = [ - '.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', - 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', - 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', - 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', - 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', - 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', - 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', - 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', - 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', - 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', - 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', - 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', - 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', - 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', - 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', - 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', - 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', - 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', - 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', - 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', - 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', - 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', - 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', - 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', - 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', - 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', - 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', - 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', - 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', - 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', - 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', - 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', - 'ugrave', 'yacute', 'ydieresis', 'zcaron' -]; - -var ExpertCharset = [ - '.notdef', 'space', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', - 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', - 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', - 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', - 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', - 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', - 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', - 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', - 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', - 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', - 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', - 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', - 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', - 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', - 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', - 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', - 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', - 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', - 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', - 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', - 'Cedillasmall', 'onequarter', 'onehalf', 'threequarters', - 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', - 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', - 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', - 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', - 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', - 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', - 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', - 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', - 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', - 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', - 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', - 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', - 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', - 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', - 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', - 'Ydieresissmall' -]; - -var ExpertSubsetCharset = [ - '.notdef', 'space', 'dollaroldstyle', 'dollarsuperior', - 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', - 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', - 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', - 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', - 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', - 'threequartersemdash', 'periodsuperior', 'asuperior', 'bsuperior', - 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', - 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', - 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', - 'parenrightinferior', 'hyphensuperior', 'colonmonetary', 'onefitted', - 'rupiah', 'centoldstyle', 'figuredash', 'hypheninferior', 'onequarter', - 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', - 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', - 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', - 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', - 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', - 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', - 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', - 'periodinferior', 'commainferior' -]; - - -var DEFAULT_ICON_SIZE = 22; // px -var SUPPORTED_TYPES = ['Link', 'Text', 'Widget']; - -var Annotation = (function AnnotationClosure() { - // 12.5.5: Algorithm: Appearance streams - function getTransformMatrix(rect, bbox, matrix) { - var bounds = Util.getAxialAlignedBoundingBox(bbox, matrix); - var minX = bounds[0]; - var minY = bounds[1]; - var maxX = bounds[2]; - var maxY = bounds[3]; - - if (minX === maxX || minY === maxY) { - // From real-life file, bbox was [0, 0, 0, 0]. In this case, - // just apply the transform for rect - return [1, 0, 0, 1, rect[0], rect[1]]; - } - - var xRatio = (rect[2] - rect[0]) / (maxX - minX); - var yRatio = (rect[3] - rect[1]) / (maxY - minY); - return [ - xRatio, - 0, - 0, - yRatio, - rect[0] - minX * xRatio, - rect[1] - minY * yRatio - ]; - } - - function getDefaultAppearance(dict) { - var appearanceState = dict.get('AP'); - if (!isDict(appearanceState)) { - return; - } - - var appearance; - var appearances = appearanceState.get('N'); - if (isDict(appearances)) { - var as = dict.get('AS'); - if (as && appearances.has(as.name)) { - appearance = appearances.get(as.name); - } - } else { - appearance = appearances; - } - return appearance; - } - - function Annotation(params) { - var dict = params.dict; - var data = this.data = {}; - - data.subtype = dict.get('Subtype').name; - var rect = dict.get('Rect') || [0, 0, 0, 0]; - data.rect = Util.normalizeRect(rect); - data.annotationFlags = dict.get('F'); - - var color = dict.get('C'); - if (!color) { - // The PDF spec does not mention how a missing color array is interpreted. - // Adobe Reader seems to default to black in this case. - data.color = [0, 0, 0]; - } else if (isArray(color)) { - switch (color.length) { - case 0: - // Empty array denotes transparent border. - data.color = null; - break; - case 1: - // TODO: implement DeviceGray - break; - case 3: - data.color = color; - break; - case 4: - // TODO: implement DeviceCMYK - break; - } - } - - // Some types of annotations have border style dict which has more - // info than the border array - if (dict.has('BS')) { - var borderStyle = dict.get('BS'); - data.borderWidth = borderStyle.has('W') ? borderStyle.get('W') : 1; - } else { - var borderArray = dict.get('Border') || [0, 0, 1]; - data.borderWidth = borderArray[2] || 0; - - // TODO: implement proper support for annotations with line dash patterns. - var dashArray = borderArray[3]; - if (data.borderWidth > 0 && dashArray) { - if (!isArray(dashArray)) { - // Ignore the border if dashArray is not actually an array, - // this is consistent with the behaviour in Adobe Reader. - data.borderWidth = 0; - } else { - var dashArrayLength = dashArray.length; - if (dashArrayLength > 0) { - // According to the PDF specification: the elements in a dashArray - // shall be numbers that are nonnegative and not all equal to zero. - var isInvalid = false; - var numPositive = 0; - for (var i = 0; i < dashArrayLength; i++) { - var validNumber = (+dashArray[i] >= 0); - if (!validNumber) { - isInvalid = true; - break; - } else if (dashArray[i] > 0) { - numPositive++; - } - } - if (isInvalid || numPositive === 0) { - data.borderWidth = 0; - } - } - } - } - } - - this.appearance = getDefaultAppearance(dict); - data.hasAppearance = !!this.appearance; - data.id = params.ref.num; - } - - Annotation.prototype = { - - getData: function Annotation_getData() { - return this.data; - }, - - isInvisible: function Annotation_isInvisible() { - var data = this.data; - if (data && SUPPORTED_TYPES.indexOf(data.subtype) !== -1) { - return false; - } else { - return !!(data && - data.annotationFlags && // Default: not invisible - data.annotationFlags & 0x1); // Invisible - } - }, - - isViewable: function Annotation_isViewable() { - var data = this.data; - return !!(!this.isInvisible() && - data && - (!data.annotationFlags || - !(data.annotationFlags & 0x22)) && // Hidden or NoView - data.rect); // rectangle is necessary - }, - - isPrintable: function Annotation_isPrintable() { - var data = this.data; - return !!(!this.isInvisible() && - data && - data.annotationFlags && // Default: not printable - data.annotationFlags & 0x4 && // Print - !(data.annotationFlags & 0x2) && // Hidden - data.rect); // rectangle is necessary - }, - - loadResources: function Annotation_loadResources(keys) { - return new Promise(function (resolve, reject) { - this.appearance.dict.getAsync('Resources').then(function (resources) { - if (!resources) { - resolve(); - return; - } - var objectLoader = new ObjectLoader(resources.map, - keys, - resources.xref); - objectLoader.load().then(function() { - resolve(resources); - }, reject); - }, reject); - }.bind(this)); - }, - - getOperatorList: function Annotation_getOperatorList(evaluator) { - - if (!this.appearance) { - return Promise.resolve(new OperatorList()); - } - - var data = this.data; - - var appearanceDict = this.appearance.dict; - var resourcesPromise = this.loadResources([ - 'ExtGState', - 'ColorSpace', - 'Pattern', - 'Shading', - 'XObject', - 'Font' - // ProcSet - // Properties - ]); - var bbox = appearanceDict.get('BBox') || [0, 0, 1, 1]; - var matrix = appearanceDict.get('Matrix') || [1, 0, 0, 1, 0 ,0]; - var transform = getTransformMatrix(data.rect, bbox, matrix); - var self = this; - - return resourcesPromise.then(function(resources) { - var opList = new OperatorList(); - opList.addOp(OPS.beginAnnotation, [data.rect, transform, matrix]); - return evaluator.getOperatorList(self.appearance, resources, opList). - then(function () { - opList.addOp(OPS.endAnnotation, []); - self.appearance.reset(); - return opList; - }); - }); - } - }; - - Annotation.getConstructor = - function Annotation_getConstructor(subtype, fieldType) { - - if (!subtype) { - return; - } - - // TODO(mack): Implement FreeText annotations - if (subtype === 'Link') { - return LinkAnnotation; - } else if (subtype === 'Text') { - return TextAnnotation; - } else if (subtype === 'Widget') { - if (!fieldType) { - return; - } - - if (fieldType === 'Tx') { - return TextWidgetAnnotation; - } else { - return WidgetAnnotation; - } - } else { - return Annotation; - } - }; - - Annotation.fromRef = function Annotation_fromRef(xref, ref) { - - var dict = xref.fetchIfRef(ref); - if (!isDict(dict)) { - return; - } - - var subtype = dict.get('Subtype'); - subtype = isName(subtype) ? subtype.name : ''; - if (!subtype) { - return; - } - - var fieldType = Util.getInheritableProperty(dict, 'FT'); - fieldType = isName(fieldType) ? fieldType.name : ''; - - var Constructor = Annotation.getConstructor(subtype, fieldType); - if (!Constructor) { - return; - } - - var params = { - dict: dict, - ref: ref, - }; - - var annotation = new Constructor(params); - - if (annotation.isViewable() || annotation.isPrintable()) { - return annotation; - } else { - if (SUPPORTED_TYPES.indexOf(subtype) === -1) { - warn('unimplemented annotation type: ' + subtype); - } - } - }; - - Annotation.appendToOperatorList = function Annotation_appendToOperatorList( - annotations, opList, pdfManager, partialEvaluator, intent) { - - function reject(e) { - annotationsReadyCapability.reject(e); - } - - var annotationsReadyCapability = createPromiseCapability(); - - var annotationPromises = []; - for (var i = 0, n = annotations.length; i < n; ++i) { - if (intent === 'display' && annotations[i].isViewable() || - intent === 'print' && annotations[i].isPrintable()) { - annotationPromises.push( - annotations[i].getOperatorList(partialEvaluator)); - } - } - Promise.all(annotationPromises).then(function(datas) { - opList.addOp(OPS.beginAnnotations, []); - for (var i = 0, n = datas.length; i < n; ++i) { - var annotOpList = datas[i]; - opList.addOpList(annotOpList); - } - opList.addOp(OPS.endAnnotations, []); - annotationsReadyCapability.resolve(); - }, reject); - - return annotationsReadyCapability.promise; - }; - - return Annotation; -})(); - -var WidgetAnnotation = (function WidgetAnnotationClosure() { - - function WidgetAnnotation(params) { - Annotation.call(this, params); - - var dict = params.dict; - var data = this.data; - - data.fieldValue = stringToPDFString( - Util.getInheritableProperty(dict, 'V') || ''); - data.alternativeText = stringToPDFString(dict.get('TU') || ''); - data.defaultAppearance = Util.getInheritableProperty(dict, 'DA') || ''; - var fieldType = Util.getInheritableProperty(dict, 'FT'); - data.fieldType = isName(fieldType) ? fieldType.name : ''; - data.fieldFlags = Util.getInheritableProperty(dict, 'Ff') || 0; - this.fieldResources = Util.getInheritableProperty(dict, 'DR') || Dict.empty; - - // Building the full field name by collecting the field and - // its ancestors 'T' data and joining them using '.'. - var fieldName = []; - var namedItem = dict; - var ref = params.ref; - while (namedItem) { - var parent = namedItem.get('Parent'); - var parentRef = namedItem.getRaw('Parent'); - var name = namedItem.get('T'); - if (name) { - fieldName.unshift(stringToPDFString(name)); - } else if (parent && ref) { - // The field name is absent, that means more than one field - // with the same name may exist. Replacing the empty name - // with the '`' plus index in the parent's 'Kids' array. - // This is not in the PDF spec but necessary to id the - // the input controls. - var kids = parent.get('Kids'); - var j, jj; - for (j = 0, jj = kids.length; j < jj; j++) { - var kidRef = kids[j]; - if (kidRef.num === ref.num && kidRef.gen === ref.gen) { - break; - } - } - fieldName.unshift('`' + j); - } - namedItem = parent; - ref = parentRef; - } - data.fullName = fieldName.join('.'); - } - - var parent = Annotation.prototype; - Util.inherit(WidgetAnnotation, Annotation, { - isViewable: function WidgetAnnotation_isViewable() { - if (this.data.fieldType === 'Sig') { - warn('unimplemented annotation type: Widget signature'); - return false; - } - - return parent.isViewable.call(this); - } - }); - - return WidgetAnnotation; -})(); - -var TextWidgetAnnotation = (function TextWidgetAnnotationClosure() { - function TextWidgetAnnotation(params) { - WidgetAnnotation.call(this, params); - - this.data.textAlignment = Util.getInheritableProperty(params.dict, 'Q'); - this.data.annotationType = AnnotationType.WIDGET; - this.data.hasHtml = !this.data.hasAppearance && !!this.data.fieldValue; - } - - Util.inherit(TextWidgetAnnotation, WidgetAnnotation, { - getOperatorList: function TextWidgetAnnotation_getOperatorList(evaluator) { - if (this.appearance) { - return Annotation.prototype.getOperatorList.call(this, evaluator); - } - - var opList = new OperatorList(); - var data = this.data; - - // Even if there is an appearance stream, ignore it. This is the - // behaviour used by Adobe Reader. - if (!data.defaultAppearance) { - return Promise.resolve(opList); - } - - var stream = new Stream(stringToBytes(data.defaultAppearance)); - return evaluator.getOperatorList(stream, this.fieldResources, opList). - then(function () { - return opList; - }); - } - }); - - return TextWidgetAnnotation; -})(); - -var InteractiveAnnotation = (function InteractiveAnnotationClosure() { - function InteractiveAnnotation(params) { - Annotation.call(this, params); - - this.data.hasHtml = true; - } - - Util.inherit(InteractiveAnnotation, Annotation, { }); - - return InteractiveAnnotation; -})(); - -var TextAnnotation = (function TextAnnotationClosure() { - function TextAnnotation(params) { - InteractiveAnnotation.call(this, params); - - var dict = params.dict; - var data = this.data; - - var content = dict.get('Contents'); - var title = dict.get('T'); - data.annotationType = AnnotationType.TEXT; - data.content = stringToPDFString(content || ''); - data.title = stringToPDFString(title || ''); - - if (data.hasAppearance) { - data.name = 'NoIcon'; - } else { - data.rect[1] = data.rect[3] - DEFAULT_ICON_SIZE; - data.rect[2] = data.rect[0] + DEFAULT_ICON_SIZE; - data.name = dict.has('Name') ? dict.get('Name').name : 'Note'; - } - - if (dict.has('C')) { - data.hasBgColor = true; - } - } - - Util.inherit(TextAnnotation, InteractiveAnnotation, { }); - - return TextAnnotation; -})(); - -var LinkAnnotation = (function LinkAnnotationClosure() { - function LinkAnnotation(params) { - InteractiveAnnotation.call(this, params); - - var dict = params.dict; - var data = this.data; - data.annotationType = AnnotationType.LINK; - - var action = dict.get('A'); - if (action && isDict(action)) { - var linkType = action.get('S').name; - if (linkType === 'URI') { - var url = action.get('URI'); - if (isName(url)) { - // Some bad PDFs do not put parentheses around relative URLs. - url = '/' + url.name; - } else if (url) { - url = addDefaultProtocolToUrl(url); - } - // TODO: pdf spec mentions urls can be relative to a Base - // entry in the dictionary. - if (!isValidUrl(url, false)) { - url = ''; - } - // According to ISO 32000-1:2008, section 12.6.4.7, - // URI should to be encoded in 7-bit ASCII. - // Some bad PDFs may have URIs in UTF-8 encoding, see Bugzilla 1122280. - try { - data.url = stringToUTF8String(url); - } catch (e) { - // Fall back to a simple copy. - data.url = url; - } - } else if (linkType === 'GoTo') { - data.dest = action.get('D'); - } else if (linkType === 'GoToR') { - var urlDict = action.get('F'); - if (isDict(urlDict)) { - // We assume that the 'url' is a Filspec dictionary - // and fetch the url without checking any further - url = urlDict.get('F') || ''; - } - - // TODO: pdf reference says that GoToR - // can also have 'NewWindow' attribute - if (!isValidUrl(url, false)) { - url = ''; - } - data.url = url; - data.dest = action.get('D'); - } else if (linkType === 'Named') { - data.action = action.get('N').name; - } else { - warn('unrecognized link type: ' + linkType); - } - } else if (dict.has('Dest')) { - // simple destination link - var dest = dict.get('Dest'); - data.dest = isName(dest) ? dest.name : dest; - } - } - - // Lets URLs beginning with 'www.' default to using the 'http://' protocol. - function addDefaultProtocolToUrl(url) { - if (url && url.indexOf('www.') === 0) { - return ('http://' + url); - } - return url; - } - - Util.inherit(LinkAnnotation, InteractiveAnnotation, { }); - - return LinkAnnotation; -})(); - - -var PDFFunction = (function PDFFunctionClosure() { - var CONSTRUCT_SAMPLED = 0; - var CONSTRUCT_INTERPOLATED = 2; - var CONSTRUCT_STICHED = 3; - var CONSTRUCT_POSTSCRIPT = 4; - - return { - getSampleArray: function PDFFunction_getSampleArray(size, outputSize, bps, - str) { - var i, ii; - var length = 1; - for (i = 0, ii = size.length; i < ii; i++) { - length *= size[i]; - } - length *= outputSize; - - var array = new Array(length); - var codeSize = 0; - var codeBuf = 0; - // 32 is a valid bps so shifting won't work - var sampleMul = 1.0 / (Math.pow(2.0, bps) - 1); - - var strBytes = str.getBytes((length * bps + 7) / 8); - var strIdx = 0; - for (i = 0; i < length; i++) { - while (codeSize < bps) { - codeBuf <<= 8; - codeBuf |= strBytes[strIdx++]; - codeSize += 8; - } - codeSize -= bps; - array[i] = (codeBuf >> codeSize) * sampleMul; - codeBuf &= (1 << codeSize) - 1; - } - return array; - }, - - getIR: function PDFFunction_getIR(xref, fn) { - var dict = fn.dict; - if (!dict) { - dict = fn; - } - - var types = [this.constructSampled, - null, - this.constructInterpolated, - this.constructStiched, - this.constructPostScript]; - - var typeNum = dict.get('FunctionType'); - var typeFn = types[typeNum]; - if (!typeFn) { - error('Unknown type of function'); - } - - return typeFn.call(this, fn, dict, xref); - }, - - fromIR: function PDFFunction_fromIR(IR) { - var type = IR[0]; - switch (type) { - case CONSTRUCT_SAMPLED: - return this.constructSampledFromIR(IR); - case CONSTRUCT_INTERPOLATED: - return this.constructInterpolatedFromIR(IR); - case CONSTRUCT_STICHED: - return this.constructStichedFromIR(IR); - //case CONSTRUCT_POSTSCRIPT: - default: - return this.constructPostScriptFromIR(IR); - } - }, - - parse: function PDFFunction_parse(xref, fn) { - var IR = this.getIR(xref, fn); - return this.fromIR(IR); - }, - - parseArray: function PDFFunction_parseArray(xref, fnObj) { - if (!isArray(fnObj)) { - // not an array -- parsing as regular function - return this.parse(xref, fnObj); - } - - var fnArray = []; - for (var j = 0, jj = fnObj.length; j < jj; j++) { - var obj = xref.fetchIfRef(fnObj[j]); - fnArray.push(PDFFunction.parse(xref, obj)); - } - return function (src, srcOffset, dest, destOffset) { - for (var i = 0, ii = fnArray.length; i < ii; i++) { - fnArray[i](src, srcOffset, dest, destOffset + i); - } - }; - }, - - constructSampled: function PDFFunction_constructSampled(str, dict) { - function toMultiArray(arr) { - var inputLength = arr.length; - var out = []; - var index = 0; - for (var i = 0; i < inputLength; i += 2) { - out[index] = [arr[i], arr[i + 1]]; - ++index; - } - return out; - } - var domain = dict.get('Domain'); - var range = dict.get('Range'); - - if (!domain || !range) { - error('No domain or range'); - } - - var inputSize = domain.length / 2; - var outputSize = range.length / 2; - - domain = toMultiArray(domain); - range = toMultiArray(range); - - var size = dict.get('Size'); - var bps = dict.get('BitsPerSample'); - var order = dict.get('Order') || 1; - if (order !== 1) { - // No description how cubic spline interpolation works in PDF32000:2008 - // As in poppler, ignoring order, linear interpolation may work as good - info('No support for cubic spline interpolation: ' + order); - } - - var encode = dict.get('Encode'); - if (!encode) { - encode = []; - for (var i = 0; i < inputSize; ++i) { - encode.push(0); - encode.push(size[i] - 1); - } - } - encode = toMultiArray(encode); - - var decode = dict.get('Decode'); - if (!decode) { - decode = range; - } else { - decode = toMultiArray(decode); - } - - var samples = this.getSampleArray(size, outputSize, bps, str); - - return [ - CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, - outputSize, Math.pow(2, bps) - 1, range - ]; - }, - - constructSampledFromIR: function PDFFunction_constructSampledFromIR(IR) { - // See chapter 3, page 109 of the PDF reference - function interpolate(x, xmin, xmax, ymin, ymax) { - return ymin + ((x - xmin) * ((ymax - ymin) / (xmax - xmin))); - } - - return function constructSampledFromIRResult(src, srcOffset, - dest, destOffset) { - // See chapter 3, page 110 of the PDF reference. - var m = IR[1]; - var domain = IR[2]; - var encode = IR[3]; - var decode = IR[4]; - var samples = IR[5]; - var size = IR[6]; - var n = IR[7]; - //var mask = IR[8]; - var range = IR[9]; - - // Building the cube vertices: its part and sample index - // http://rjwagner49.com/Mathematics/Interpolation.pdf - var cubeVertices = 1 << m; - var cubeN = new Float64Array(cubeVertices); - var cubeVertex = new Uint32Array(cubeVertices); - var i, j; - for (j = 0; j < cubeVertices; j++) { - cubeN[j] = 1; - } - - var k = n, pos = 1; - // Map x_i to y_j for 0 <= i < m using the sampled function. - for (i = 0; i < m; ++i) { - // x_i' = min(max(x_i, Domain_2i), Domain_2i+1) - var domain_2i = domain[i][0]; - var domain_2i_1 = domain[i][1]; - var xi = Math.min(Math.max(src[srcOffset +i], domain_2i), - domain_2i_1); - - // e_i = Interpolate(x_i', Domain_2i, Domain_2i+1, - // Encode_2i, Encode_2i+1) - var e = interpolate(xi, domain_2i, domain_2i_1, - encode[i][0], encode[i][1]); - - // e_i' = min(max(e_i, 0), Size_i - 1) - var size_i = size[i]; - e = Math.min(Math.max(e, 0), size_i - 1); - - // Adjusting the cube: N and vertex sample index - var e0 = e < size_i - 1 ? Math.floor(e) : e - 1; // e1 = e0 + 1; - var n0 = e0 + 1 - e; // (e1 - e) / (e1 - e0); - var n1 = e - e0; // (e - e0) / (e1 - e0); - var offset0 = e0 * k; - var offset1 = offset0 + k; // e1 * k - for (j = 0; j < cubeVertices; j++) { - if (j & pos) { - cubeN[j] *= n1; - cubeVertex[j] += offset1; - } else { - cubeN[j] *= n0; - cubeVertex[j] += offset0; - } - } - - k *= size_i; - pos <<= 1; - } - - for (j = 0; j < n; ++j) { - // Sum all cube vertices' samples portions - var rj = 0; - for (i = 0; i < cubeVertices; i++) { - rj += samples[cubeVertex[i] + j] * cubeN[i]; - } - - // r_j' = Interpolate(r_j, 0, 2^BitsPerSample - 1, - // Decode_2j, Decode_2j+1) - rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]); - - // y_j = min(max(r_j, range_2j), range_2j+1) - dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), - range[j][1]); - } - }; - }, - - constructInterpolated: function PDFFunction_constructInterpolated(str, - dict) { - var c0 = dict.get('C0') || [0]; - var c1 = dict.get('C1') || [1]; - var n = dict.get('N'); - - if (!isArray(c0) || !isArray(c1)) { - error('Illegal dictionary for interpolated function'); - } - - var length = c0.length; - var diff = []; - for (var i = 0; i < length; ++i) { - diff.push(c1[i] - c0[i]); - } - - return [CONSTRUCT_INTERPOLATED, c0, diff, n]; - }, - - constructInterpolatedFromIR: - function PDFFunction_constructInterpolatedFromIR(IR) { - var c0 = IR[1]; - var diff = IR[2]; - var n = IR[3]; - - var length = diff.length; - - return function constructInterpolatedFromIRResult(src, srcOffset, - dest, destOffset) { - var x = n === 1 ? src[srcOffset] : Math.pow(src[srcOffset], n); - - for (var j = 0; j < length; ++j) { - dest[destOffset + j] = c0[j] + (x * diff[j]); - } - }; - }, - - constructStiched: function PDFFunction_constructStiched(fn, dict, xref) { - var domain = dict.get('Domain'); - - if (!domain) { - error('No domain'); - } - - var inputSize = domain.length / 2; - if (inputSize !== 1) { - error('Bad domain for stiched function'); - } - - var fnRefs = dict.get('Functions'); - var fns = []; - for (var i = 0, ii = fnRefs.length; i < ii; ++i) { - fns.push(PDFFunction.getIR(xref, xref.fetchIfRef(fnRefs[i]))); - } - - var bounds = dict.get('Bounds'); - var encode = dict.get('Encode'); - - return [CONSTRUCT_STICHED, domain, bounds, encode, fns]; - }, - - constructStichedFromIR: function PDFFunction_constructStichedFromIR(IR) { - var domain = IR[1]; - var bounds = IR[2]; - var encode = IR[3]; - var fnsIR = IR[4]; - var fns = []; - var tmpBuf = new Float32Array(1); - - for (var i = 0, ii = fnsIR.length; i < ii; i++) { - fns.push(PDFFunction.fromIR(fnsIR[i])); - } - - return function constructStichedFromIRResult(src, srcOffset, - dest, destOffset) { - var clip = function constructStichedFromIRClip(v, min, max) { - if (v > max) { - v = max; - } else if (v < min) { - v = min; - } - return v; - }; - - // clip to domain - var v = clip(src[srcOffset], domain[0], domain[1]); - // calulate which bound the value is in - for (var i = 0, ii = bounds.length; i < ii; ++i) { - if (v < bounds[i]) { - break; - } - } - - // encode value into domain of function - var dmin = domain[0]; - if (i > 0) { - dmin = bounds[i - 1]; - } - var dmax = domain[1]; - if (i < bounds.length) { - dmax = bounds[i]; - } - - var rmin = encode[2 * i]; - var rmax = encode[2 * i + 1]; - - tmpBuf[0] = rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin); - - // call the appropriate function - fns[i](tmpBuf, 0, dest, destOffset); - }; - }, - - constructPostScript: function PDFFunction_constructPostScript(fn, dict, - xref) { - var domain = dict.get('Domain'); - var range = dict.get('Range'); - - if (!domain) { - error('No domain.'); - } - - if (!range) { - error('No range.'); - } - - var lexer = new PostScriptLexer(fn); - var parser = new PostScriptParser(lexer); - var code = parser.parse(); - - return [CONSTRUCT_POSTSCRIPT, domain, range, code]; - }, - - constructPostScriptFromIR: function PDFFunction_constructPostScriptFromIR( - IR) { - var domain = IR[1]; - var range = IR[2]; - var code = IR[3]; - - var compiled = (new PostScriptCompiler()).compile(code, domain, range); - if (compiled) { - // Compiled function consists of simple expressions such as addition, - // subtraction, Math.max, and also contains 'var' and 'return' - // statements. See the generation in the PostScriptCompiler below. - /*jshint -W054 */ - return new Function('src', 'srcOffset', 'dest', 'destOffset', compiled); - } - - info('Unable to compile PS function'); - - var numOutputs = range.length >> 1; - var numInputs = domain.length >> 1; - var evaluator = new PostScriptEvaluator(code); - // Cache the values for a big speed up, the cache size is limited though - // since the number of possible values can be huge from a PS function. - var cache = {}; - // The MAX_CACHE_SIZE is set to ~4x the maximum number of distinct values - // seen in our tests. - var MAX_CACHE_SIZE = 2048 * 4; - var cache_available = MAX_CACHE_SIZE; - var tmpBuf = new Float32Array(numInputs); - - return function constructPostScriptFromIRResult(src, srcOffset, - dest, destOffset) { - var i, value; - var key = ''; - var input = tmpBuf; - for (i = 0; i < numInputs; i++) { - value = src[srcOffset + i]; - input[i] = value; - key += value + '_'; - } - - var cachedValue = cache[key]; - if (cachedValue !== undefined) { - dest.set(cachedValue, destOffset); - return; - } - - var output = new Float32Array(numOutputs); - var stack = evaluator.execute(input); - var stackIndex = stack.length - numOutputs; - for (i = 0; i < numOutputs; i++) { - value = stack[stackIndex + i]; - var bound = range[i * 2]; - if (value < bound) { - value = bound; - } else { - bound = range[i * 2 +1]; - if (value > bound) { - value = bound; - } - } - output[i] = value; - } - if (cache_available > 0) { - cache_available--; - cache[key] = output; - } - dest.set(output, destOffset); - }; - } - }; -})(); - -function isPDFFunction(v) { - var fnDict; - if (typeof v !== 'object') { - return false; - } else if (isDict(v)) { - fnDict = v; - } else if (isStream(v)) { - fnDict = v.dict; - } else { - return false; - } - return fnDict.has('FunctionType'); -} - -var PostScriptStack = (function PostScriptStackClosure() { - var MAX_STACK_SIZE = 100; - function PostScriptStack(initialStack) { - this.stack = !initialStack ? [] : - Array.prototype.slice.call(initialStack, 0); - } - - PostScriptStack.prototype = { - push: function PostScriptStack_push(value) { - if (this.stack.length >= MAX_STACK_SIZE) { - error('PostScript function stack overflow.'); - } - this.stack.push(value); - }, - pop: function PostScriptStack_pop() { - if (this.stack.length <= 0) { - error('PostScript function stack underflow.'); - } - return this.stack.pop(); - }, - copy: function PostScriptStack_copy(n) { - if (this.stack.length + n >= MAX_STACK_SIZE) { - error('PostScript function stack overflow.'); - } - var stack = this.stack; - for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) { - stack.push(stack[i]); - } - }, - index: function PostScriptStack_index(n) { - this.push(this.stack[this.stack.length - n - 1]); - }, - // rotate the last n stack elements p times - roll: function PostScriptStack_roll(n, p) { - var stack = this.stack; - var l = stack.length - n; - var r = stack.length - 1, c = l + (p - Math.floor(p / n) * n), i, j, t; - for (i = l, j = r; i < j; i++, j--) { - t = stack[i]; stack[i] = stack[j]; stack[j] = t; - } - for (i = l, j = c - 1; i < j; i++, j--) { - t = stack[i]; stack[i] = stack[j]; stack[j] = t; - } - for (i = c, j = r; i < j; i++, j--) { - t = stack[i]; stack[i] = stack[j]; stack[j] = t; - } - } - }; - return PostScriptStack; -})(); -var PostScriptEvaluator = (function PostScriptEvaluatorClosure() { - function PostScriptEvaluator(operators) { - this.operators = operators; - } - PostScriptEvaluator.prototype = { - execute: function PostScriptEvaluator_execute(initialStack) { - var stack = new PostScriptStack(initialStack); - var counter = 0; - var operators = this.operators; - var length = operators.length; - var operator, a, b; - while (counter < length) { - operator = operators[counter++]; - if (typeof operator === 'number') { - // Operator is really an operand and should be pushed to the stack. - stack.push(operator); - continue; - } - switch (operator) { - // non standard ps operators - case 'jz': // jump if false - b = stack.pop(); - a = stack.pop(); - if (!a) { - counter = b; - } - break; - case 'j': // jump - a = stack.pop(); - counter = a; - break; - - // all ps operators in alphabetical order (excluding if/ifelse) - case 'abs': - a = stack.pop(); - stack.push(Math.abs(a)); - break; - case 'add': - b = stack.pop(); - a = stack.pop(); - stack.push(a + b); - break; - case 'and': - b = stack.pop(); - a = stack.pop(); - if (isBool(a) && isBool(b)) { - stack.push(a && b); - } else { - stack.push(a & b); - } - break; - case 'atan': - a = stack.pop(); - stack.push(Math.atan(a)); - break; - case 'bitshift': - b = stack.pop(); - a = stack.pop(); - if (a > 0) { - stack.push(a << b); - } else { - stack.push(a >> b); - } - break; - case 'ceiling': - a = stack.pop(); - stack.push(Math.ceil(a)); - break; - case 'copy': - a = stack.pop(); - stack.copy(a); - break; - case 'cos': - a = stack.pop(); - stack.push(Math.cos(a)); - break; - case 'cvi': - a = stack.pop() | 0; - stack.push(a); - break; - case 'cvr': - // noop - break; - case 'div': - b = stack.pop(); - a = stack.pop(); - stack.push(a / b); - break; - case 'dup': - stack.copy(1); - break; - case 'eq': - b = stack.pop(); - a = stack.pop(); - stack.push(a === b); - break; - case 'exch': - stack.roll(2, 1); - break; - case 'exp': - b = stack.pop(); - a = stack.pop(); - stack.push(Math.pow(a, b)); - break; - case 'false': - stack.push(false); - break; - case 'floor': - a = stack.pop(); - stack.push(Math.floor(a)); - break; - case 'ge': - b = stack.pop(); - a = stack.pop(); - stack.push(a >= b); - break; - case 'gt': - b = stack.pop(); - a = stack.pop(); - stack.push(a > b); - break; - case 'idiv': - b = stack.pop(); - a = stack.pop(); - stack.push((a / b) | 0); - break; - case 'index': - a = stack.pop(); - stack.index(a); - break; - case 'le': - b = stack.pop(); - a = stack.pop(); - stack.push(a <= b); - break; - case 'ln': - a = stack.pop(); - stack.push(Math.log(a)); - break; - case 'log': - a = stack.pop(); - stack.push(Math.log(a) / Math.LN10); - break; - case 'lt': - b = stack.pop(); - a = stack.pop(); - stack.push(a < b); - break; - case 'mod': - b = stack.pop(); - a = stack.pop(); - stack.push(a % b); - break; - case 'mul': - b = stack.pop(); - a = stack.pop(); - stack.push(a * b); - break; - case 'ne': - b = stack.pop(); - a = stack.pop(); - stack.push(a !== b); - break; - case 'neg': - a = stack.pop(); - stack.push(-a); - break; - case 'not': - a = stack.pop(); - if (isBool(a)) { - stack.push(!a); - } else { - stack.push(~a); - } - break; - case 'or': - b = stack.pop(); - a = stack.pop(); - if (isBool(a) && isBool(b)) { - stack.push(a || b); - } else { - stack.push(a | b); - } - break; - case 'pop': - stack.pop(); - break; - case 'roll': - b = stack.pop(); - a = stack.pop(); - stack.roll(a, b); - break; - case 'round': - a = stack.pop(); - stack.push(Math.round(a)); - break; - case 'sin': - a = stack.pop(); - stack.push(Math.sin(a)); - break; - case 'sqrt': - a = stack.pop(); - stack.push(Math.sqrt(a)); - break; - case 'sub': - b = stack.pop(); - a = stack.pop(); - stack.push(a - b); - break; - case 'true': - stack.push(true); - break; - case 'truncate': - a = stack.pop(); - a = a < 0 ? Math.ceil(a) : Math.floor(a); - stack.push(a); - break; - case 'xor': - b = stack.pop(); - a = stack.pop(); - if (isBool(a) && isBool(b)) { - stack.push(a !== b); - } else { - stack.push(a ^ b); - } - break; - default: - error('Unknown operator ' + operator); - break; - } - } - return stack.stack; - } - }; - return PostScriptEvaluator; -})(); - -// Most of the PDFs functions consist of simple operations such as: -// roll, exch, sub, cvr, pop, index, dup, mul, if, gt, add. -// -// We can compile most of such programs, and at the same moment, we can -// optimize some expressions using basic math properties. Keeping track of -// min/max values will allow us to avoid extra Math.min/Math.max calls. -var PostScriptCompiler = (function PostScriptCompilerClosure() { - function AstNode(type) { - this.type = type; - } - AstNode.prototype.visit = function (visitor) { - throw new Error('abstract method'); - }; - - function AstArgument(index, min, max) { - AstNode.call(this, 'args'); - this.index = index; - this.min = min; - this.max = max; - } - AstArgument.prototype = Object.create(AstNode.prototype); - AstArgument.prototype.visit = function (visitor) { - visitor.visitArgument(this); - }; - - function AstLiteral(number) { - AstNode.call(this, 'literal'); - this.number = number; - this.min = number; - this.max = number; - } - AstLiteral.prototype = Object.create(AstNode.prototype); - AstLiteral.prototype.visit = function (visitor) { - visitor.visitLiteral(this); - }; - - function AstBinaryOperation(op, arg1, arg2, min, max) { - AstNode.call(this, 'binary'); - this.op = op; - this.arg1 = arg1; - this.arg2 = arg2; - this.min = min; - this.max = max; - } - AstBinaryOperation.prototype = Object.create(AstNode.prototype); - AstBinaryOperation.prototype.visit = function (visitor) { - visitor.visitBinaryOperation(this); - }; - - function AstMin(arg, max) { - AstNode.call(this, 'max'); - this.arg = arg; - this.min = arg.min; - this.max = max; - } - AstMin.prototype = Object.create(AstNode.prototype); - AstMin.prototype.visit = function (visitor) { - visitor.visitMin(this); - }; - - function AstVariable(index, min, max) { - AstNode.call(this, 'var'); - this.index = index; - this.min = min; - this.max = max; - } - AstVariable.prototype = Object.create(AstNode.prototype); - AstVariable.prototype.visit = function (visitor) { - visitor.visitVariable(this); - }; - - function AstVariableDefinition(variable, arg) { - AstNode.call(this, 'definition'); - this.variable = variable; - this.arg = arg; - } - AstVariableDefinition.prototype = Object.create(AstNode.prototype); - AstVariableDefinition.prototype.visit = function (visitor) { - visitor.visitVariableDefinition(this); - }; - - function ExpressionBuilderVisitor() { - this.parts = []; - } - ExpressionBuilderVisitor.prototype = { - visitArgument: function (arg) { - this.parts.push('Math.max(', arg.min, ', Math.min(', - arg.max, ', src[srcOffset + ', arg.index, ']))'); - }, - visitVariable: function (variable) { - this.parts.push('v', variable.index); - }, - visitLiteral: function (literal) { - this.parts.push(literal.number); - }, - visitBinaryOperation: function (operation) { - this.parts.push('('); - operation.arg1.visit(this); - this.parts.push(' ', operation.op, ' '); - operation.arg2.visit(this); - this.parts.push(')'); - }, - visitVariableDefinition: function (definition) { - this.parts.push('var '); - definition.variable.visit(this); - this.parts.push(' = '); - definition.arg.visit(this); - this.parts.push(';'); - }, - visitMin: function (max) { - this.parts.push('Math.min('); - max.arg.visit(this); - this.parts.push(', ', max.max, ')'); - }, - toString: function () { - return this.parts.join(''); - } - }; - - function buildAddOperation(num1, num2) { - if (num2.type === 'literal' && num2.number === 0) { - // optimization: second operand is 0 - return num1; - } - if (num1.type === 'literal' && num1.number === 0) { - // optimization: first operand is 0 - return num2; - } - if (num2.type === 'literal' && num1.type === 'literal') { - // optimization: operands operand are literals - return new AstLiteral(num1.number + num2.number); - } - return new AstBinaryOperation('+', num1, num2, - num1.min + num2.min, num1.max + num2.max); - } - - function buildMulOperation(num1, num2) { - if (num2.type === 'literal') { - // optimization: second operands is a literal... - if (num2.number === 0) { - return new AstLiteral(0); // and it's 0 - } else if (num2.number === 1) { - return num1; // and it's 1 - } else if (num1.type === 'literal') { - // ... and first operands is a literal too - return new AstLiteral(num1.number * num2.number); - } - } - if (num1.type === 'literal') { - // optimization: first operands is a literal... - if (num1.number === 0) { - return new AstLiteral(0); // and it's 0 - } else if (num1.number === 1) { - return num2; // and it's 1 - } - } - var min = Math.min(num1.min * num2.min, num1.min * num2.max, - num1.max * num2.min, num1.max * num2.max); - var max = Math.max(num1.min * num2.min, num1.min * num2.max, - num1.max * num2.min, num1.max * num2.max); - return new AstBinaryOperation('*', num1, num2, min, max); - } - - function buildSubOperation(num1, num2) { - if (num2.type === 'literal') { - // optimization: second operands is a literal... - if (num2.number === 0) { - return num1; // ... and it's 0 - } else if (num1.type === 'literal') { - // ... and first operands is a literal too - return new AstLiteral(num1.number - num2.number); - } - } - if (num2.type === 'binary' && num2.op === '-' && - num1.type === 'literal' && num1.number === 1 && - num2.arg1.type === 'literal' && num2.arg1.number === 1) { - // optimization for case: 1 - (1 - x) - return num2.arg2; - } - return new AstBinaryOperation('-', num1, num2, - num1.min - num2.max, num1.max - num2.min); - } - - function buildMinOperation(num1, max) { - if (num1.min >= max) { - // optimization: num1 min value is not less than required max - return new AstLiteral(max); // just returning max - } else if (num1.max <= max) { - // optimization: num1 max value is not greater than required max - return num1; // just returning an argument - } - return new AstMin(num1, max); - } - - function PostScriptCompiler() {} - PostScriptCompiler.prototype = { - compile: function PostScriptCompiler_compile(code, domain, range) { - var stack = []; - var i, ii; - var instructions = []; - var inputSize = domain.length >> 1, outputSize = range.length >> 1; - var lastRegister = 0; - var n, j, min, max; - var num1, num2, ast1, ast2, tmpVar, item; - for (i = 0; i < inputSize; i++) { - stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1])); - } - - for (i = 0, ii = code.length; i < ii; i++) { - item = code[i]; - if (typeof item === 'number') { - stack.push(new AstLiteral(item)); - continue; - } - - switch (item) { - case 'add': - if (stack.length < 2) { - return null; - } - num2 = stack.pop(); - num1 = stack.pop(); - stack.push(buildAddOperation(num1, num2)); - break; - case 'cvr': - if (stack.length < 1) { - return null; - } - break; - case 'mul': - if (stack.length < 2) { - return null; - } - num2 = stack.pop(); - num1 = stack.pop(); - stack.push(buildMulOperation(num1, num2)); - break; - case 'sub': - if (stack.length < 2) { - return null; - } - num2 = stack.pop(); - num1 = stack.pop(); - stack.push(buildSubOperation(num1, num2)); - break; - case 'exch': - if (stack.length < 2) { - return null; - } - ast1 = stack.pop(); ast2 = stack.pop(); - stack.push(ast1, ast2); - break; - case 'pop': - if (stack.length < 1) { - return null; - } - stack.pop(); - break; - case 'index': - if (stack.length < 1) { - return null; - } - num1 = stack.pop(); - if (num1.type !== 'literal') { - return null; - } - n = num1.number; - if (n < 0 || (n|0) !== n || stack.length < n) { - return null; - } - ast1 = stack[stack.length - n - 1]; - if (ast1.type === 'literal' || ast1.type === 'var') { - stack.push(ast1); - break; - } - tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max); - stack[stack.length - n - 1] = tmpVar; - stack.push(tmpVar); - instructions.push(new AstVariableDefinition(tmpVar, ast1)); - break; - case 'dup': - if (stack.length < 1) { - return null; - } - if (typeof code[i + 1] === 'number' && code[i + 2] === 'gt' && - code[i + 3] === i + 7 && code[i + 4] === 'jz' && - code[i + 5] === 'pop' && code[i + 6] === code[i + 1]) { - // special case of the commands sequence for the min operation - num1 = stack.pop(); - stack.push(buildMinOperation(num1, code[i + 1])); - i += 6; - break; - } - ast1 = stack[stack.length - 1]; - if (ast1.type === 'literal' || ast1.type === 'var') { - // we don't have to save into intermediate variable a literal or - // variable. - stack.push(ast1); - break; - } - tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max); - stack[stack.length - 1] = tmpVar; - stack.push(tmpVar); - instructions.push(new AstVariableDefinition(tmpVar, ast1)); - break; - case 'roll': - if (stack.length < 2) { - return null; - } - num2 = stack.pop(); - num1 = stack.pop(); - if (num2.type !== 'literal' || num1.type !== 'literal') { - // both roll operands must be numbers - return null; - } - j = num2.number; - n = num1.number; - if (n <= 0 || (n|0) !== n || (j|0) !== j || stack.length < n) { - // ... and integers - return null; - } - j = ((j % n) + n) % n; - if (j === 0) { - break; // just skipping -- there are nothing to rotate - } - Array.prototype.push.apply(stack, - stack.splice(stack.length - n, n - j)); - break; - default: - return null; // unsupported operator - } - } - - if (stack.length !== outputSize) { - return null; - } - - var result = []; - instructions.forEach(function (instruction) { - var statementBuilder = new ExpressionBuilderVisitor(); - instruction.visit(statementBuilder); - result.push(statementBuilder.toString()); - }); - stack.forEach(function (expr, i) { - var statementBuilder = new ExpressionBuilderVisitor(); - expr.visit(statementBuilder); - var min = range[i * 2], max = range[i * 2 + 1]; - var out = [statementBuilder.toString()]; - if (min > expr.min) { - out.unshift('Math.max(', min, ', '); - out.push(')'); - } - if (max < expr.max) { - out.unshift('Math.min(', max, ', '); - out.push(')'); - } - out.unshift('dest[destOffset + ', i, '] = '); - out.push(';'); - result.push(out.join('')); - }); - return result.join('\n'); - } - }; - - return PostScriptCompiler; -})(); - - -var ColorSpace = (function ColorSpaceClosure() { - // Constructor should define this.numComps, this.defaultColor, this.name - function ColorSpace() { - error('should not call ColorSpace constructor'); - } - - ColorSpace.prototype = { - /** - * Converts the color value to the RGB color. The color components are - * located in the src array starting from the srcOffset. Returns the array - * of the rgb components, each value ranging from [0,255]. - */ - getRgb: function ColorSpace_getRgb(src, srcOffset) { - var rgb = new Uint8Array(3); - this.getRgbItem(src, srcOffset, rgb, 0); - return rgb; - }, - /** - * Converts the color value to the RGB color, similar to the getRgb method. - * The result placed into the dest array starting from the destOffset. - */ - getRgbItem: function ColorSpace_getRgbItem(src, srcOffset, - dest, destOffset) { - error('Should not call ColorSpace.getRgbItem'); - }, - /** - * Converts the specified number of the color values to the RGB colors. - * The colors are located in the src array starting from the srcOffset. - * The result is placed into the dest array starting from the destOffset. - * The src array items shall be in [0,2^bits) range, the dest array items - * will be in [0,255] range. alpha01 indicates how many alpha components - * there are in the dest array; it will be either 0 (RGB array) or 1 (RGBA - * array). - */ - getRgbBuffer: function ColorSpace_getRgbBuffer(src, srcOffset, count, - dest, destOffset, bits, - alpha01) { - error('Should not call ColorSpace.getRgbBuffer'); - }, - /** - * Determines the number of bytes required to store the result of the - * conversion done by the getRgbBuffer method. As in getRgbBuffer, - * |alpha01| is either 0 (RGB output) or 1 (RGBA output). - */ - getOutputLength: function ColorSpace_getOutputLength(inputLength, - alpha01) { - error('Should not call ColorSpace.getOutputLength'); - }, - /** - * Returns true if source data will be equal the result/output data. - */ - isPassthrough: function ColorSpace_isPassthrough(bits) { - return false; - }, - /** - * Fills in the RGB colors in the destination buffer. alpha01 indicates - * how many alpha components there are in the dest array; it will be either - * 0 (RGB array) or 1 (RGBA array). - */ - fillRgb: function ColorSpace_fillRgb(dest, originalWidth, - originalHeight, width, height, - actualHeight, bpc, comps, alpha01) { - var count = originalWidth * originalHeight; - var rgbBuf = null; - var numComponentColors = 1 << bpc; - var needsResizing = originalHeight !== height || originalWidth !== width; - var i, ii; - - if (this.isPassthrough(bpc)) { - rgbBuf = comps; - } else if (this.numComps === 1 && count > numComponentColors && - this.name !== 'DeviceGray' && this.name !== 'DeviceRGB') { - // Optimization: create a color map when there is just one component and - // we are converting more colors than the size of the color map. We - // don't build the map if the colorspace is gray or rgb since those - // methods are faster than building a map. This mainly offers big speed - // ups for indexed and alternate colorspaces. - // - // TODO it may be worth while to cache the color map. While running - // testing I never hit a cache so I will leave that out for now (perhaps - // we are reparsing colorspaces too much?). - var allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : - new Uint16Array(numComponentColors); - var key; - for (i = 0; i < numComponentColors; i++) { - allColors[i] = i; - } - var colorMap = new Uint8Array(numComponentColors * 3); - this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, - /* alpha01 = */ 0); - - var destPos, rgbPos; - if (!needsResizing) { - // Fill in the RGB values directly into |dest|. - destPos = 0; - for (i = 0; i < count; ++i) { - key = comps[i] * 3; - dest[destPos++] = colorMap[key]; - dest[destPos++] = colorMap[key + 1]; - dest[destPos++] = colorMap[key + 2]; - destPos += alpha01; - } - } else { - rgbBuf = new Uint8Array(count * 3); - rgbPos = 0; - for (i = 0; i < count; ++i) { - key = comps[i] * 3; - rgbBuf[rgbPos++] = colorMap[key]; - rgbBuf[rgbPos++] = colorMap[key + 1]; - rgbBuf[rgbPos++] = colorMap[key + 2]; - } - } - } else { - if (!needsResizing) { - // Fill in the RGB values directly into |dest|. - this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, - alpha01); - } else { - rgbBuf = new Uint8Array(count * 3); - this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, - /* alpha01 = */ 0); - } - } - - if (rgbBuf) { - if (needsResizing) { - PDFImage.resize(rgbBuf, bpc, 3, originalWidth, originalHeight, width, - height, dest, alpha01); - } else { - rgbPos = 0; - destPos = 0; - for (i = 0, ii = width * actualHeight; i < ii; i++) { - dest[destPos++] = rgbBuf[rgbPos++]; - dest[destPos++] = rgbBuf[rgbPos++]; - dest[destPos++] = rgbBuf[rgbPos++]; - destPos += alpha01; - } - } - } - }, - /** - * True if the colorspace has components in the default range of [0, 1]. - * This should be true for all colorspaces except for lab color spaces - * which are [0,100], [-128, 127], [-128, 127]. - */ - usesZeroToOneRange: true - }; - - ColorSpace.parse = function ColorSpace_parse(cs, xref, res) { - var IR = ColorSpace.parseToIR(cs, xref, res); - if (IR instanceof AlternateCS) { - return IR; - } - return ColorSpace.fromIR(IR); - }; - - ColorSpace.fromIR = function ColorSpace_fromIR(IR) { - var name = isArray(IR) ? IR[0] : IR; - var whitePoint, blackPoint, gamma; - - switch (name) { - case 'DeviceGrayCS': - return this.singletons.gray; - case 'DeviceRgbCS': - return this.singletons.rgb; - case 'DeviceCmykCS': - return this.singletons.cmyk; - case 'CalGrayCS': - whitePoint = IR[1].WhitePoint; - blackPoint = IR[1].BlackPoint; - gamma = IR[1].Gamma; - return new CalGrayCS(whitePoint, blackPoint, gamma); - case 'CalRGBCS': - whitePoint = IR[1].WhitePoint; - blackPoint = IR[1].BlackPoint; - gamma = IR[1].Gamma; - var matrix = IR[1].Matrix; - return new CalRGBCS(whitePoint, blackPoint, gamma, matrix); - case 'PatternCS': - var basePatternCS = IR[1]; - if (basePatternCS) { - basePatternCS = ColorSpace.fromIR(basePatternCS); - } - return new PatternCS(basePatternCS); - case 'IndexedCS': - var baseIndexedCS = IR[1]; - var hiVal = IR[2]; - var lookup = IR[3]; - return new IndexedCS(ColorSpace.fromIR(baseIndexedCS), hiVal, lookup); - case 'AlternateCS': - var numComps = IR[1]; - var alt = IR[2]; - var tintFnIR = IR[3]; - - return new AlternateCS(numComps, ColorSpace.fromIR(alt), - PDFFunction.fromIR(tintFnIR)); - case 'LabCS': - whitePoint = IR[1].WhitePoint; - blackPoint = IR[1].BlackPoint; - var range = IR[1].Range; - return new LabCS(whitePoint, blackPoint, range); - default: - error('Unknown name ' + name); - } - return null; - }; - - ColorSpace.parseToIR = function ColorSpace_parseToIR(cs, xref, res) { - if (isName(cs)) { - var colorSpaces = res.get('ColorSpace'); - if (isDict(colorSpaces)) { - var refcs = colorSpaces.get(cs.name); - if (refcs) { - cs = refcs; - } - } - } - - cs = xref.fetchIfRef(cs); - var mode; - - if (isName(cs)) { - mode = cs.name; - this.mode = mode; - - switch (mode) { - case 'DeviceGray': - case 'G': - return 'DeviceGrayCS'; - case 'DeviceRGB': - case 'RGB': - return 'DeviceRgbCS'; - case 'DeviceCMYK': - case 'CMYK': - return 'DeviceCmykCS'; - case 'Pattern': - return ['PatternCS', null]; - default: - error('unrecognized colorspace ' + mode); - } - } else if (isArray(cs)) { - mode = cs[0].name; - this.mode = mode; - var numComps, params; - - switch (mode) { - case 'DeviceGray': - case 'G': - return 'DeviceGrayCS'; - case 'DeviceRGB': - case 'RGB': - return 'DeviceRgbCS'; - case 'DeviceCMYK': - case 'CMYK': - return 'DeviceCmykCS'; - case 'CalGray': - params = xref.fetchIfRef(cs[1]).getAll(); - return ['CalGrayCS', params]; - case 'CalRGB': - params = xref.fetchIfRef(cs[1]).getAll(); - return ['CalRGBCS', params]; - case 'ICCBased': - var stream = xref.fetchIfRef(cs[1]); - var dict = stream.dict; - numComps = dict.get('N'); - if (numComps === 1) { - return 'DeviceGrayCS'; - } else if (numComps === 3) { - return 'DeviceRgbCS'; - } else if (numComps === 4) { - return 'DeviceCmykCS'; - } - break; - case 'Pattern': - var basePatternCS = cs[1]; - if (basePatternCS) { - basePatternCS = ColorSpace.parseToIR(basePatternCS, xref, res); - } - return ['PatternCS', basePatternCS]; - case 'Indexed': - case 'I': - var baseIndexedCS = ColorSpace.parseToIR(cs[1], xref, res); - var hiVal = cs[2] + 1; - var lookup = xref.fetchIfRef(cs[3]); - if (isStream(lookup)) { - lookup = lookup.getBytes(); - } - return ['IndexedCS', baseIndexedCS, hiVal, lookup]; - case 'Separation': - case 'DeviceN': - var name = cs[1]; - numComps = 1; - if (isName(name)) { - numComps = 1; - } else if (isArray(name)) { - numComps = name.length; - } - var alt = ColorSpace.parseToIR(cs[2], xref, res); - var tintFnIR = PDFFunction.getIR(xref, xref.fetchIfRef(cs[3])); - return ['AlternateCS', numComps, alt, tintFnIR]; - case 'Lab': - params = cs[1].getAll(); - return ['LabCS', params]; - default: - error('unimplemented color space object "' + mode + '"'); - } - } else { - error('unrecognized color space object: "' + cs + '"'); - } - return null; - }; - /** - * Checks if a decode map matches the default decode map for a color space. - * This handles the general decode maps where there are two values per - * component. e.g. [0, 1, 0, 1, 0, 1] for a RGB color. - * This does not handle Lab, Indexed, or Pattern decode maps since they are - * slightly different. - * @param {Array} decode Decode map (usually from an image). - * @param {Number} n Number of components the color space has. - */ - ColorSpace.isDefaultDecode = function ColorSpace_isDefaultDecode(decode, n) { - if (!decode) { - return true; - } - - if (n * 2 !== decode.length) { - warn('The decode map is not the correct length'); - return true; - } - for (var i = 0, ii = decode.length; i < ii; i += 2) { - if (decode[i] !== 0 || decode[i + 1] !== 1) { - return false; - } - } - return true; - }; - - ColorSpace.singletons = { - get gray() { - return shadow(this, 'gray', new DeviceGrayCS()); - }, - get rgb() { - return shadow(this, 'rgb', new DeviceRgbCS()); - }, - get cmyk() { - return shadow(this, 'cmyk', new DeviceCmykCS()); - } - }; - - return ColorSpace; -})(); - -/** - * Alternate color space handles both Separation and DeviceN color spaces. A - * Separation color space is actually just a DeviceN with one color component. - * Both color spaces use a tinting function to convert colors to a base color - * space. - */ -var AlternateCS = (function AlternateCSClosure() { - function AlternateCS(numComps, base, tintFn) { - this.name = 'Alternate'; - this.numComps = numComps; - this.defaultColor = new Float32Array(numComps); - for (var i = 0; i < numComps; ++i) { - this.defaultColor[i] = 1; - } - this.base = base; - this.tintFn = tintFn; - this.tmpBuf = new Float32Array(base.numComps); - } - - AlternateCS.prototype = { - getRgb: ColorSpace.prototype.getRgb, - getRgbItem: function AlternateCS_getRgbItem(src, srcOffset, - dest, destOffset) { - var tmpBuf = this.tmpBuf; - this.tintFn(src, srcOffset, tmpBuf, 0); - this.base.getRgbItem(tmpBuf, 0, dest, destOffset); - }, - getRgbBuffer: function AlternateCS_getRgbBuffer(src, srcOffset, count, - dest, destOffset, bits, - alpha01) { - var tintFn = this.tintFn; - var base = this.base; - var scale = 1 / ((1 << bits) - 1); - var baseNumComps = base.numComps; - var usesZeroToOneRange = base.usesZeroToOneRange; - var isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && - alpha01 === 0; - var pos = isPassthrough ? destOffset : 0; - var baseBuf = isPassthrough ? dest : new Uint8Array(baseNumComps * count); - var numComps = this.numComps; - - var scaled = new Float32Array(numComps); - var tinted = new Float32Array(baseNumComps); - var i, j; - if (usesZeroToOneRange) { - for (i = 0; i < count; i++) { - for (j = 0; j < numComps; j++) { - scaled[j] = src[srcOffset++] * scale; - } - tintFn(scaled, 0, tinted, 0); - for (j = 0; j < baseNumComps; j++) { - baseBuf[pos++] = tinted[j] * 255; - } - } - } else { - for (i = 0; i < count; i++) { - for (j = 0; j < numComps; j++) { - scaled[j] = src[srcOffset++] * scale; - } - tintFn(scaled, 0, tinted, 0); - base.getRgbItem(tinted, 0, baseBuf, pos); - pos += baseNumComps; - } - } - if (!isPassthrough) { - base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01); - } - }, - getOutputLength: function AlternateCS_getOutputLength(inputLength, - alpha01) { - return this.base.getOutputLength(inputLength * - this.base.numComps / this.numComps, - alpha01); - }, - isPassthrough: ColorSpace.prototype.isPassthrough, - fillRgb: ColorSpace.prototype.fillRgb, - isDefaultDecode: function AlternateCS_isDefaultDecode(decodeMap) { - return ColorSpace.isDefaultDecode(decodeMap, this.numComps); - }, - usesZeroToOneRange: true - }; - - return AlternateCS; -})(); - -var PatternCS = (function PatternCSClosure() { - function PatternCS(baseCS) { - this.name = 'Pattern'; - this.base = baseCS; - } - PatternCS.prototype = {}; - - return PatternCS; -})(); - -var IndexedCS = (function IndexedCSClosure() { - function IndexedCS(base, highVal, lookup) { - this.name = 'Indexed'; - this.numComps = 1; - this.defaultColor = new Uint8Array([0]); - this.base = base; - this.highVal = highVal; - - var baseNumComps = base.numComps; - var length = baseNumComps * highVal; - var lookupArray; - - if (isStream(lookup)) { - lookupArray = new Uint8Array(length); - var bytes = lookup.getBytes(length); - lookupArray.set(bytes); - } else if (isString(lookup)) { - lookupArray = new Uint8Array(length); - for (var i = 0; i < length; ++i) { - lookupArray[i] = lookup.charCodeAt(i); - } - } else if (lookup instanceof Uint8Array || lookup instanceof Array) { - lookupArray = lookup; - } else { - error('Unrecognized lookup table: ' + lookup); - } - this.lookup = lookupArray; - } - - IndexedCS.prototype = { - getRgb: ColorSpace.prototype.getRgb, - getRgbItem: function IndexedCS_getRgbItem(src, srcOffset, - dest, destOffset) { - var numComps = this.base.numComps; - var start = src[srcOffset] * numComps; - this.base.getRgbItem(this.lookup, start, dest, destOffset); - }, - getRgbBuffer: function IndexedCS_getRgbBuffer(src, srcOffset, count, - dest, destOffset, bits, - alpha01) { - var base = this.base; - var numComps = base.numComps; - var outputDelta = base.getOutputLength(numComps, alpha01); - var lookup = this.lookup; - - for (var i = 0; i < count; ++i) { - var lookupPos = src[srcOffset++] * numComps; - base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01); - destOffset += outputDelta; - } - }, - getOutputLength: function IndexedCS_getOutputLength(inputLength, alpha01) { - return this.base.getOutputLength(inputLength * this.base.numComps, - alpha01); - }, - isPassthrough: ColorSpace.prototype.isPassthrough, - fillRgb: ColorSpace.prototype.fillRgb, - isDefaultDecode: function IndexedCS_isDefaultDecode(decodeMap) { - // indexed color maps shouldn't be changed - return true; - }, - usesZeroToOneRange: true - }; - return IndexedCS; -})(); - -var DeviceGrayCS = (function DeviceGrayCSClosure() { - function DeviceGrayCS() { - this.name = 'DeviceGray'; - this.numComps = 1; - this.defaultColor = new Float32Array([0]); - } - - DeviceGrayCS.prototype = { - getRgb: ColorSpace.prototype.getRgb, - getRgbItem: function DeviceGrayCS_getRgbItem(src, srcOffset, - dest, destOffset) { - var c = (src[srcOffset] * 255) | 0; - c = c < 0 ? 0 : c > 255 ? 255 : c; - dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c; - }, - getRgbBuffer: function DeviceGrayCS_getRgbBuffer(src, srcOffset, count, - dest, destOffset, bits, - alpha01) { - var scale = 255 / ((1 << bits) - 1); - var j = srcOffset, q = destOffset; - for (var i = 0; i < count; ++i) { - var c = (scale * src[j++]) | 0; - dest[q++] = c; - dest[q++] = c; - dest[q++] = c; - q += alpha01; - } - }, - getOutputLength: function DeviceGrayCS_getOutputLength(inputLength, - alpha01) { - return inputLength * (3 + alpha01); - }, - isPassthrough: ColorSpace.prototype.isPassthrough, - fillRgb: ColorSpace.prototype.fillRgb, - isDefaultDecode: function DeviceGrayCS_isDefaultDecode(decodeMap) { - return ColorSpace.isDefaultDecode(decodeMap, this.numComps); - }, - usesZeroToOneRange: true - }; - return DeviceGrayCS; -})(); - -var DeviceRgbCS = (function DeviceRgbCSClosure() { - function DeviceRgbCS() { - this.name = 'DeviceRGB'; - this.numComps = 3; - this.defaultColor = new Float32Array([0, 0, 0]); - } - DeviceRgbCS.prototype = { - getRgb: ColorSpace.prototype.getRgb, - getRgbItem: function DeviceRgbCS_getRgbItem(src, srcOffset, - dest, destOffset) { - var r = (src[srcOffset] * 255) | 0; - var g = (src[srcOffset + 1] * 255) | 0; - var b = (src[srcOffset + 2] * 255) | 0; - dest[destOffset] = r < 0 ? 0 : r > 255 ? 255 : r; - dest[destOffset + 1] = g < 0 ? 0 : g > 255 ? 255 : g; - dest[destOffset + 2] = b < 0 ? 0 : b > 255 ? 255 : b; - }, - getRgbBuffer: function DeviceRgbCS_getRgbBuffer(src, srcOffset, count, - dest, destOffset, bits, - alpha01) { - if (bits === 8 && alpha01 === 0) { - dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset); - return; - } - var scale = 255 / ((1 << bits) - 1); - var j = srcOffset, q = destOffset; - for (var i = 0; i < count; ++i) { - dest[q++] = (scale * src[j++]) | 0; - dest[q++] = (scale * src[j++]) | 0; - dest[q++] = (scale * src[j++]) | 0; - q += alpha01; - } - }, - getOutputLength: function DeviceRgbCS_getOutputLength(inputLength, - alpha01) { - return (inputLength * (3 + alpha01) / 3) | 0; - }, - isPassthrough: function DeviceRgbCS_isPassthrough(bits) { - return bits === 8; - }, - fillRgb: ColorSpace.prototype.fillRgb, - isDefaultDecode: function DeviceRgbCS_isDefaultDecode(decodeMap) { - return ColorSpace.isDefaultDecode(decodeMap, this.numComps); - }, - usesZeroToOneRange: true - }; - return DeviceRgbCS; -})(); - -var DeviceCmykCS = (function DeviceCmykCSClosure() { - // The coefficients below was found using numerical analysis: the method of - // steepest descent for the sum((f_i - color_value_i)^2) for r/g/b colors, - // where color_value is the tabular value from the table of sampled RGB colors - // from CMYK US Web Coated (SWOP) colorspace, and f_i is the corresponding - // CMYK color conversion using the estimation below: - // f(A, B,.. N) = Acc+Bcm+Ccy+Dck+c+Fmm+Gmy+Hmk+Im+Jyy+Kyk+Ly+Mkk+Nk+255 - function convertToRgb(src, srcOffset, srcScale, dest, destOffset) { - var c = src[srcOffset + 0] * srcScale; - var m = src[srcOffset + 1] * srcScale; - var y = src[srcOffset + 2] * srcScale; - var k = src[srcOffset + 3] * srcScale; - - var r = - (c * (-4.387332384609988 * c + 54.48615194189176 * m + - 18.82290502165302 * y + 212.25662451639585 * k + - -285.2331026137004) + - m * (1.7149763477362134 * m - 5.6096736904047315 * y + - -17.873870861415444 * k - 5.497006427196366) + - y * (-2.5217340131683033 * y - 21.248923337353073 * k + - 17.5119270841813) + - k * (-21.86122147463605 * k - 189.48180835922747) + 255) | 0; - var g = - (c * (8.841041422036149 * c + 60.118027045597366 * m + - 6.871425592049007 * y + 31.159100130055922 * k + - -79.2970844816548) + - m * (-15.310361306967817 * m + 17.575251261109482 * y + - 131.35250912493976 * k - 190.9453302588951) + - y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + - k * (-20.737325471181034 * k - 187.80453709719578) + 255) | 0; - var b = - (c * (0.8842522430003296 * c + 8.078677503112928 * m + - 30.89978309703729 * y - 0.23883238689178934 * k + - -14.183576799673286) + - m * (10.49593273432072 * m + 63.02378494754052 * y + - 50.606957656360734 * k - 112.23884253719248) + - y * (0.03296041114873217 * y + 115.60384449646641 * k + - -193.58209356861505) + - k * (-22.33816807309886 * k - 180.12613974708367) + 255) | 0; - - dest[destOffset] = r > 255 ? 255 : r < 0 ? 0 : r; - dest[destOffset + 1] = g > 255 ? 255 : g < 0 ? 0 : g; - dest[destOffset + 2] = b > 255 ? 255 : b < 0 ? 0 : b; - } - - function DeviceCmykCS() { - this.name = 'DeviceCMYK'; - this.numComps = 4; - this.defaultColor = new Float32Array([0, 0, 0, 1]); - } - DeviceCmykCS.prototype = { - getRgb: ColorSpace.prototype.getRgb, - getRgbItem: function DeviceCmykCS_getRgbItem(src, srcOffset, - dest, destOffset) { - convertToRgb(src, srcOffset, 1, dest, destOffset); - }, - getRgbBuffer: function DeviceCmykCS_getRgbBuffer(src, srcOffset, count, - dest, destOffset, bits, - alpha01) { - var scale = 1 / ((1 << bits) - 1); - for (var i = 0; i < count; i++) { - convertToRgb(src, srcOffset, scale, dest, destOffset); - srcOffset += 4; - destOffset += 3 + alpha01; - } - }, - getOutputLength: function DeviceCmykCS_getOutputLength(inputLength, - alpha01) { - return (inputLength / 4 * (3 + alpha01)) | 0; - }, - isPassthrough: ColorSpace.prototype.isPassthrough, - fillRgb: ColorSpace.prototype.fillRgb, - isDefaultDecode: function DeviceCmykCS_isDefaultDecode(decodeMap) { - return ColorSpace.isDefaultDecode(decodeMap, this.numComps); - }, - usesZeroToOneRange: true - }; - - return DeviceCmykCS; -})(); - -// -// CalGrayCS: Based on "PDF Reference, Sixth Ed", p.245 -// -var CalGrayCS = (function CalGrayCSClosure() { - function CalGrayCS(whitePoint, blackPoint, gamma) { - this.name = 'CalGray'; - this.numComps = 1; - this.defaultColor = new Float32Array([0]); - - if (!whitePoint) { - error('WhitePoint missing - required for color space CalGray'); - } - blackPoint = blackPoint || [0, 0, 0]; - gamma = gamma || 1; - - // Translate arguments to spec variables. - this.XW = whitePoint[0]; - this.YW = whitePoint[1]; - this.ZW = whitePoint[2]; - - this.XB = blackPoint[0]; - this.YB = blackPoint[1]; - this.ZB = blackPoint[2]; - - this.G = gamma; - - // Validate variables as per spec. - if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) { - error('Invalid WhitePoint components for ' + this.name + - ', no fallback available'); - } - - if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { - info('Invalid BlackPoint for ' + this.name + ', falling back to default'); - this.XB = this.YB = this.ZB = 0; - } - - if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) { - warn(this.name + ', BlackPoint: XB: ' + this.XB + ', YB: ' + this.YB + - ', ZB: ' + this.ZB + ', only default values are supported.'); - } - - if (this.G < 1) { - info('Invalid Gamma: ' + this.G + ' for ' + this.name + - ', falling back to default'); - this.G = 1; - } - } - - function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) { - // A represents a gray component of a calibrated gray space. - // A <---> AG in the spec - var A = src[srcOffset] * scale; - var AG = Math.pow(A, cs.G); - - // Computes L as per spec. ( = cs.YW * AG ) - // Except if other than default BlackPoint values are used. - var L = cs.YW * AG; - // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html, Ch 4. - // Convert values to rgb range [0, 255]. - var val = Math.max(295.8 * Math.pow(L, 0.333333333333333333) - 40.8, 0) | 0; - dest[destOffset] = val; - dest[destOffset + 1] = val; - dest[destOffset + 2] = val; - } - - CalGrayCS.prototype = { - getRgb: ColorSpace.prototype.getRgb, - getRgbItem: function CalGrayCS_getRgbItem(src, srcOffset, - dest, destOffset) { - convertToRgb(this, src, srcOffset, dest, destOffset, 1); - }, - getRgbBuffer: function CalGrayCS_getRgbBuffer(src, srcOffset, count, - dest, destOffset, bits, - alpha01) { - var scale = 1 / ((1 << bits) - 1); - - for (var i = 0; i < count; ++i) { - convertToRgb(this, src, srcOffset, dest, destOffset, scale); - srcOffset += 1; - destOffset += 3 + alpha01; - } - }, - getOutputLength: function CalGrayCS_getOutputLength(inputLength, alpha01) { - return inputLength * (3 + alpha01); - }, - isPassthrough: ColorSpace.prototype.isPassthrough, - fillRgb: ColorSpace.prototype.fillRgb, - isDefaultDecode: function CalGrayCS_isDefaultDecode(decodeMap) { - return ColorSpace.isDefaultDecode(decodeMap, this.numComps); - }, - usesZeroToOneRange: true - }; - return CalGrayCS; -})(); - -// -// CalRGBCS: Based on "PDF Reference, Sixth Ed", p.247 -// -var CalRGBCS = (function CalRGBCSClosure() { - - // See http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html for these - // matrices. - var BRADFORD_SCALE_MATRIX = new Float32Array([ - 0.8951, 0.2664, -0.1614, - -0.7502, 1.7135, 0.0367, - 0.0389, -0.0685, 1.0296]); - - var BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([ - 0.9869929, -0.1470543, 0.1599627, - 0.4323053, 0.5183603, 0.0492912, - -0.0085287, 0.0400428, 0.9684867]); - - // See http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html. - var SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([ - 3.2404542, -1.5371385, -0.4985314, - -0.9692660, 1.8760108, 0.0415560, - 0.0556434, -0.2040259, 1.0572252]); - - var FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]); - - var tempNormalizeMatrix = new Float32Array(3); - var tempConvertMatrix1 = new Float32Array(3); - var tempConvertMatrix2 = new Float32Array(3); - - var DECODE_L_CONSTANT = Math.pow(((8 + 16) / 116), 3) / 8.0; - - function CalRGBCS(whitePoint, blackPoint, gamma, matrix) { - this.name = 'CalRGB'; - this.numComps = 3; - this.defaultColor = new Float32Array(3); - - if (!whitePoint) { - error('WhitePoint missing - required for color space CalRGB'); - } - blackPoint = blackPoint || new Float32Array(3); - gamma = gamma || new Float32Array([1, 1, 1]); - matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]); - - // Translate arguments to spec variables. - var XW = whitePoint[0]; - var YW = whitePoint[1]; - var ZW = whitePoint[2]; - this.whitePoint = whitePoint; - - var XB = blackPoint[0]; - var YB = blackPoint[1]; - var ZB = blackPoint[2]; - this.blackPoint = blackPoint; - - this.GR = gamma[0]; - this.GG = gamma[1]; - this.GB = gamma[2]; - - this.MXA = matrix[0]; - this.MYA = matrix[1]; - this.MZA = matrix[2]; - this.MXB = matrix[3]; - this.MYB = matrix[4]; - this.MZB = matrix[5]; - this.MXC = matrix[6]; - this.MYC = matrix[7]; - this.MZC = matrix[8]; - - // Validate variables as per spec. - if (XW < 0 || ZW < 0 || YW !== 1) { - error('Invalid WhitePoint components for ' + this.name + - ', no fallback available'); - } - - if (XB < 0 || YB < 0 || ZB < 0) { - info('Invalid BlackPoint for ' + this.name + ' [' + XB + ', ' + YB + - ', ' + ZB + '], falling back to default'); - this.blackPoint = new Float32Array(3); - } - - if (this.GR < 0 || this.GG < 0 || this.GB < 0) { - info('Invalid Gamma [' + this.GR + ', ' + this.GG + ', ' + this.GB + - '] for ' + this.name + ', falling back to default'); - this.GR = this.GG = this.GB = 1; - } - - if (this.MXA < 0 || this.MYA < 0 || this.MZA < 0 || - this.MXB < 0 || this.MYB < 0 || this.MZB < 0 || - this.MXC < 0 || this.MYC < 0 || this.MZC < 0) { - info('Invalid Matrix for ' + this.name + ' [' + - this.MXA + ', ' + this.MYA + ', ' + this.MZA + - this.MXB + ', ' + this.MYB + ', ' + this.MZB + - this.MXC + ', ' + this.MYC + ', ' + this.MZC + - '], falling back to default'); - this.MXA = this.MYB = this.MZC = 1; - this.MXB = this.MYA = this.MZA = this.MXC = this.MYC = this.MZB = 0; - } - } - - function matrixProduct(a, b, result) { - result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; - result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2]; - result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2]; - } - - function convertToFlat(sourceWhitePoint, LMS, result) { - result[0] = LMS[0] * 1 / sourceWhitePoint[0]; - result[1] = LMS[1] * 1 / sourceWhitePoint[1]; - result[2] = LMS[2] * 1 / sourceWhitePoint[2]; - } - - function convertToD65(sourceWhitePoint, LMS, result) { - var D65X = 0.95047; - var D65Y = 1; - var D65Z = 1.08883; - - result[0] = LMS[0] * D65X / sourceWhitePoint[0]; - result[1] = LMS[1] * D65Y / sourceWhitePoint[1]; - result[2] = LMS[2] * D65Z / sourceWhitePoint[2]; - } - - function sRGBTransferFunction(color) { - // See http://en.wikipedia.org/wiki/SRGB. - if (color <= 0.0031308){ - return adjustToRange(0, 1, 12.92 * color); - } - - return adjustToRange(0, 1, (1 + 0.055) * Math.pow(color, 1 / 2.4) - 0.055); - } - - function adjustToRange(min, max, value) { - return Math.max(min, Math.min(max, value)); - } - - function decodeL(L) { - if (L < 0) { - return -decodeL(-L); - } - - if (L > 8.0) { - return Math.pow(((L + 16) / 116), 3); - } - - return L * DECODE_L_CONSTANT; - } - - function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) { - - // In case the blackPoint is already the default blackPoint then there is - // no need to do compensation. - if (sourceBlackPoint[0] === 0 && - sourceBlackPoint[1] === 0 && - sourceBlackPoint[2] === 0) { - result[0] = XYZ_Flat[0]; - result[1] = XYZ_Flat[1]; - result[2] = XYZ_Flat[2]; - return; - } - - // For the blackPoint calculation details, please see - // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/ - // AdobeBPC.pdf. - // The destination blackPoint is the default blackPoint [0, 0, 0]. - var zeroDecodeL = decodeL(0); - - var X_DST = zeroDecodeL; - var X_SRC = decodeL(sourceBlackPoint[0]); - - var Y_DST = zeroDecodeL; - var Y_SRC = decodeL(sourceBlackPoint[1]); - - var Z_DST = zeroDecodeL; - var Z_SRC = decodeL(sourceBlackPoint[2]); - - var X_Scale = (1 - X_DST) / (1 - X_SRC); - var X_Offset = 1 - X_Scale; - - var Y_Scale = (1 - Y_DST) / (1 - Y_SRC); - var Y_Offset = 1 - Y_Scale; - - var Z_Scale = (1 - Z_DST) / (1 - Z_SRC); - var Z_Offset = 1 - Z_Scale; - - result[0] = XYZ_Flat[0] * X_Scale + X_Offset; - result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset; - result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset; - } - - function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) { - - // In case the whitePoint is already flat then there is no need to do - // normalization. - if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) { - result[0] = XYZ_In[0]; - result[1] = XYZ_In[1]; - result[2] = XYZ_In[2]; - return; - } - - var LMS = result; - matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS); - - var LMS_Flat = tempNormalizeMatrix; - convertToFlat(sourceWhitePoint, LMS, LMS_Flat); - - matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result); - } - - function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) { - - var LMS = result; - matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS); - - var LMS_D65 = tempNormalizeMatrix; - convertToD65(sourceWhitePoint, LMS, LMS_D65); - - matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result); - } - - function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) { - // A, B and C represent a red, green and blue components of a calibrated - // rgb space. - var A = adjustToRange(0, 1, src[srcOffset] * scale); - var B = adjustToRange(0, 1, src[srcOffset + 1] * scale); - var C = adjustToRange(0, 1, src[srcOffset + 2] * scale); - - // A <---> AGR in the spec - // B <---> BGG in the spec - // C <---> CGB in the spec - var AGR = Math.pow(A, cs.GR); - var BGG = Math.pow(B, cs.GG); - var CGB = Math.pow(C, cs.GB); - - // Computes intermediate variables L, M, N as per spec. - // To decode X, Y, Z values map L, M, N directly to them. - var X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB; - var Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB; - var Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB; - - // The following calculations are based on this document: - // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/ - // AdobeBPC.pdf. - var XYZ = tempConvertMatrix1; - XYZ[0] = X; - XYZ[1] = Y; - XYZ[2] = Z; - var XYZ_Flat = tempConvertMatrix2; - - normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat); - - var XYZ_Black = tempConvertMatrix1; - compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black); - - var XYZ_D65 = tempConvertMatrix2; - normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65); - - var SRGB = tempConvertMatrix1; - matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB); - - var sR = sRGBTransferFunction(SRGB[0]); - var sG = sRGBTransferFunction(SRGB[1]); - var sB = sRGBTransferFunction(SRGB[2]); - - // Convert the values to rgb range [0, 255]. - dest[destOffset] = Math.round(sR * 255); - dest[destOffset + 1] = Math.round(sG * 255); - dest[destOffset + 2] = Math.round(sB * 255); - } - - CalRGBCS.prototype = { - getRgb: function CalRGBCS_getRgb(src, srcOffset) { - var rgb = new Uint8Array(3); - this.getRgbItem(src, srcOffset, rgb, 0); - return rgb; - }, - getRgbItem: function CalRGBCS_getRgbItem(src, srcOffset, - dest, destOffset) { - convertToRgb(this, src, srcOffset, dest, destOffset, 1); - }, - getRgbBuffer: function CalRGBCS_getRgbBuffer(src, srcOffset, count, - dest, destOffset, bits, - alpha01) { - var scale = 1 / ((1 << bits) - 1); - - for (var i = 0; i < count; ++i) { - convertToRgb(this, src, srcOffset, dest, destOffset, scale); - srcOffset += 3; - destOffset += 3 + alpha01; - } - }, - getOutputLength: function CalRGBCS_getOutputLength(inputLength, alpha01) { - return (inputLength * (3 + alpha01) / 3) | 0; - }, - isPassthrough: ColorSpace.prototype.isPassthrough, - fillRgb: ColorSpace.prototype.fillRgb, - isDefaultDecode: function CalRGBCS_isDefaultDecode(decodeMap) { - return ColorSpace.isDefaultDecode(decodeMap, this.numComps); - }, - usesZeroToOneRange: true - }; - return CalRGBCS; -})(); - -// -// LabCS: Based on "PDF Reference, Sixth Ed", p.250 -// -var LabCS = (function LabCSClosure() { - function LabCS(whitePoint, blackPoint, range) { - this.name = 'Lab'; - this.numComps = 3; - this.defaultColor = new Float32Array([0, 0, 0]); - - if (!whitePoint) { - error('WhitePoint missing - required for color space Lab'); - } - blackPoint = blackPoint || [0, 0, 0]; - range = range || [-100, 100, -100, 100]; - - // Translate args to spec variables - this.XW = whitePoint[0]; - this.YW = whitePoint[1]; - this.ZW = whitePoint[2]; - this.amin = range[0]; - this.amax = range[1]; - this.bmin = range[2]; - this.bmax = range[3]; - - // These are here just for completeness - the spec doesn't offer any - // formulas that use BlackPoint in Lab - this.XB = blackPoint[0]; - this.YB = blackPoint[1]; - this.ZB = blackPoint[2]; - - // Validate vars as per spec - if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) { - error('Invalid WhitePoint components, no fallback available'); - } - - if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { - info('Invalid BlackPoint, falling back to default'); - this.XB = this.YB = this.ZB = 0; - } - - if (this.amin > this.amax || this.bmin > this.bmax) { - info('Invalid Range, falling back to defaults'); - this.amin = -100; - this.amax = 100; - this.bmin = -100; - this.bmax = 100; - } - } - - // Function g(x) from spec - function fn_g(x) { - if (x >= 6 / 29) { - return x * x * x; - } else { - return (108 / 841) * (x - 4 / 29); - } - } - - function decode(value, high1, low2, high2) { - return low2 + (value) * (high2 - low2) / (high1); - } - - // If decoding is needed maxVal should be 2^bits per component - 1. - function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) { - // XXX: Lab input is in the range of [0, 100], [amin, amax], [bmin, bmax] - // not the usual [0, 1]. If a command like setFillColor is used the src - // values will already be within the correct range. However, if we are - // converting an image we have to map the values to the correct range given - // above. - // Ls,as,bs <---> L*,a*,b* in the spec - var Ls = src[srcOffset]; - var as = src[srcOffset + 1]; - var bs = src[srcOffset + 2]; - if (maxVal !== false) { - Ls = decode(Ls, maxVal, 0, 100); - as = decode(as, maxVal, cs.amin, cs.amax); - bs = decode(bs, maxVal, cs.bmin, cs.bmax); - } - - // Adjust limits of 'as' and 'bs' - as = as > cs.amax ? cs.amax : as < cs.amin ? cs.amin : as; - bs = bs > cs.bmax ? cs.bmax : bs < cs.bmin ? cs.bmin : bs; - - // Computes intermediate variables X,Y,Z as per spec - var M = (Ls + 16) / 116; - var L = M + (as / 500); - var N = M - (bs / 200); - - var X = cs.XW * fn_g(L); - var Y = cs.YW * fn_g(M); - var Z = cs.ZW * fn_g(N); - - var r, g, b; - // Using different conversions for D50 and D65 white points, - // per http://www.color.org/srgb.pdf - if (cs.ZW < 1) { - // Assuming D50 (X=0.9642, Y=1.00, Z=0.8249) - r = X * 3.1339 + Y * -1.6170 + Z * -0.4906; - g = X * -0.9785 + Y * 1.9160 + Z * 0.0333; - b = X * 0.0720 + Y * -0.2290 + Z * 1.4057; - } else { - // Assuming D65 (X=0.9505, Y=1.00, Z=1.0888) - r = X * 3.2406 + Y * -1.5372 + Z * -0.4986; - g = X * -0.9689 + Y * 1.8758 + Z * 0.0415; - b = X * 0.0557 + Y * -0.2040 + Z * 1.0570; - } - // clamp color values to [0,1] range then convert to [0,255] range. - dest[destOffset] = r <= 0 ? 0 : r >= 1 ? 255 : Math.sqrt(r) * 255 | 0; - dest[destOffset + 1] = g <= 0 ? 0 : g >= 1 ? 255 : Math.sqrt(g) * 255 | 0; - dest[destOffset + 2] = b <= 0 ? 0 : b >= 1 ? 255 : Math.sqrt(b) * 255 | 0; - } - - LabCS.prototype = { - getRgb: ColorSpace.prototype.getRgb, - getRgbItem: function LabCS_getRgbItem(src, srcOffset, dest, destOffset) { - convertToRgb(this, src, srcOffset, false, dest, destOffset); - }, - getRgbBuffer: function LabCS_getRgbBuffer(src, srcOffset, count, - dest, destOffset, bits, - alpha01) { - var maxVal = (1 << bits) - 1; - for (var i = 0; i < count; i++) { - convertToRgb(this, src, srcOffset, maxVal, dest, destOffset); - srcOffset += 3; - destOffset += 3 + alpha01; - } - }, - getOutputLength: function LabCS_getOutputLength(inputLength, alpha01) { - return (inputLength * (3 + alpha01) / 3) | 0; - }, - isPassthrough: ColorSpace.prototype.isPassthrough, - fillRgb: ColorSpace.prototype.fillRgb, - isDefaultDecode: function LabCS_isDefaultDecode(decodeMap) { - // XXX: Decoding is handled with the lab conversion because of the strange - // ranges that are used. - return true; - }, - usesZeroToOneRange: false - }; - return LabCS; -})(); - - -var ARCFourCipher = (function ARCFourCipherClosure() { - function ARCFourCipher(key) { - this.a = 0; - this.b = 0; - var s = new Uint8Array(256); - var i, j = 0, tmp, keyLength = key.length; - for (i = 0; i < 256; ++i) { - s[i] = i; - } - for (i = 0; i < 256; ++i) { - tmp = s[i]; - j = (j + tmp + key[i % keyLength]) & 0xFF; - s[i] = s[j]; - s[j] = tmp; - } - this.s = s; - } - - ARCFourCipher.prototype = { - encryptBlock: function ARCFourCipher_encryptBlock(data) { - var i, n = data.length, tmp, tmp2; - var a = this.a, b = this.b, s = this.s; - var output = new Uint8Array(n); - for (i = 0; i < n; ++i) { - a = (a + 1) & 0xFF; - tmp = s[a]; - b = (b + tmp) & 0xFF; - tmp2 = s[b]; - s[a] = tmp2; - s[b] = tmp; - output[i] = data[i] ^ s[(tmp + tmp2) & 0xFF]; - } - this.a = a; - this.b = b; - return output; - } - }; - ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock; - - return ARCFourCipher; -})(); - -var calculateMD5 = (function calculateMD5Closure() { - var r = new Uint8Array([ - 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, - 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, - 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, - 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]); - - var k = new Int32Array([ - -680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, - -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, - 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, - 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, - 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, - 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, - -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, - -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, - -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, - -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, - -145523070, -1120210379, 718787259, -343485551]); - - function hash(data, offset, length) { - var h0 = 1732584193, h1 = -271733879, h2 = -1732584194, h3 = 271733878; - // pre-processing - var paddedLength = (length + 72) & ~63; // data + 9 extra bytes - var padded = new Uint8Array(paddedLength); - var i, j, n; - for (i = 0; i < length; ++i) { - padded[i] = data[offset++]; - } - padded[i++] = 0x80; - n = paddedLength - 8; - while (i < n) { - padded[i++] = 0; - } - padded[i++] = (length << 3) & 0xFF; - padded[i++] = (length >> 5) & 0xFF; - padded[i++] = (length >> 13) & 0xFF; - padded[i++] = (length >> 21) & 0xFF; - padded[i++] = (length >>> 29) & 0xFF; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - var w = new Int32Array(16); - for (i = 0; i < paddedLength;) { - for (j = 0; j < 16; ++j, i += 4) { - w[j] = (padded[i] | (padded[i + 1] << 8) | - (padded[i + 2] << 16) | (padded[i + 3] << 24)); - } - var a = h0, b = h1, c = h2, d = h3, f, g; - for (j = 0; j < 64; ++j) { - if (j < 16) { - f = (b & c) | ((~b) & d); - g = j; - } else if (j < 32) { - f = (d & b) | ((~d) & c); - g = (5 * j + 1) & 15; - } else if (j < 48) { - f = b ^ c ^ d; - g = (3 * j + 5) & 15; - } else { - f = c ^ (b | (~d)); - g = (7 * j) & 15; - } - var tmp = d, rotateArg = (a + f + k[j] + w[g]) | 0, rotate = r[j]; - d = c; - c = b; - b = (b + ((rotateArg << rotate) | (rotateArg >>> (32 - rotate)))) | 0; - a = tmp; - } - h0 = (h0 + a) | 0; - h1 = (h1 + b) | 0; - h2 = (h2 + c) | 0; - h3 = (h3 + d) | 0; - } - return new Uint8Array([ - h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >>> 24) & 0xFF, - h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >>> 24) & 0xFF, - h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >>> 24) & 0xFF, - h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >>> 24) & 0xFF - ]); - } - - return hash; -})(); -var Word64 = (function Word64Closure() { - function Word64(highInteger, lowInteger) { - this.high = highInteger | 0; - this.low = lowInteger | 0; - } - Word64.prototype = { - and: function Word64_and(word) { - this.high &= word.high; - this.low &= word.low; - }, - xor: function Word64_xor(word) { - this.high ^= word.high; - this.low ^= word.low; - }, - - or: function Word64_or(word) { - this.high |= word.high; - this.low |= word.low; - }, - - shiftRight: function Word64_shiftRight(places) { - if (places >= 32) { - this.low = (this.high >>> (places - 32)) | 0; - this.high = 0; - } else { - this.low = (this.low >>> places) | (this.high << (32 - places)); - this.high = (this.high >>> places) | 0; - } - }, - - shiftLeft: function Word64_shiftLeft(places) { - if (places >= 32) { - this.high = this.low << (places - 32); - this.low = 0; - } else { - this.high = (this.high << places) | (this.low >>> (32 - places)); - this.low = this.low << places; - } - }, - - rotateRight: function Word64_rotateRight(places) { - var low, high; - if (places & 32) { - high = this.low; - low = this.high; - } else { - low = this.low; - high = this.high; - } - places &= 31; - this.low = (low >>> places) | (high << (32 - places)); - this.high = (high >>> places) | (low << (32 - places)); - }, - - not: function Word64_not() { - this.high = ~this.high; - this.low = ~this.low; - }, - - add: function Word64_add(word) { - var lowAdd = (this.low >>> 0) + (word.low >>> 0); - var highAdd = (this.high >>> 0) + (word.high >>> 0); - if (lowAdd > 0xFFFFFFFF) { - highAdd += 1; - } - this.low = lowAdd | 0; - this.high = highAdd | 0; - }, - - copyTo: function Word64_copyTo(bytes, offset) { - bytes[offset] = (this.high >>> 24) & 0xFF; - bytes[offset + 1] = (this.high >> 16) & 0xFF; - bytes[offset + 2] = (this.high >> 8) & 0xFF; - bytes[offset + 3] = this.high & 0xFF; - bytes[offset + 4] = (this.low >>> 24) & 0xFF; - bytes[offset + 5] = (this.low >> 16) & 0xFF; - bytes[offset + 6] = (this.low >> 8) & 0xFF; - bytes[offset + 7] = this.low & 0xFF; - }, - - assign: function Word64_assign(word) { - this.high = word.high; - this.low = word.low; - } - }; - return Word64; -})(); - -var calculateSHA256 = (function calculateSHA256Closure() { - function rotr(x, n) { - return (x >>> n) | (x << 32 - n); - } - - function ch(x, y, z) { - return (x & y) ^ (~x & z); - } - - function maj(x, y, z) { - return (x & y) ^ (x & z) ^ (y & z); - } - - function sigma(x) { - return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22); - } - - function sigmaPrime(x) { - return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25); - } - - function littleSigma(x) { - return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3; - } - - function littleSigmaPrime(x) { - return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10; - } - - var k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, - 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, - 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, - 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, - 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, - 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, - 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, - 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, - 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]; - - function hash(data, offset, length) { - // initial hash values - var h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, - h3 = 0xa54ff53a, h4 = 0x510e527f, h5 = 0x9b05688c, - h6 = 0x1f83d9ab, h7 = 0x5be0cd19; - // pre-processing - var paddedLength = Math.ceil((length + 9) / 64) * 64; - var padded = new Uint8Array(paddedLength); - var i, j, n; - for (i = 0; i < length; ++i) { - padded[i] = data[offset++]; - } - padded[i++] = 0x80; - n = paddedLength - 8; - while (i < n) { - padded[i++] = 0; - } - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = (length >>> 29) & 0xFF; - padded[i++] = (length >> 21) & 0xFF; - padded[i++] = (length >> 13) & 0xFF; - padded[i++] = (length >> 5) & 0xFF; - padded[i++] = (length << 3) & 0xFF; - var w = new Uint32Array(64); - // for each 512 bit block - for (i = 0; i < paddedLength;) { - for (j = 0; j < 16; ++j) { - w[j] = (padded[i] << 24 | (padded[i + 1] << 16) | - (padded[i + 2] << 8) | (padded[i + 3])); - i += 4; - } - - for (j = 16; j < 64; ++j) { - w[j] = littleSigmaPrime(w[j - 2]) + w[j - 7] + - littleSigma(w[j - 15]) + w[j - 16] | 0; - } - var a = h0, b = h1, c = h2, d = h3, e = h4, - f = h5, g = h6, h = h7, t1, t2; - for (j = 0; j < 64; ++j) { - t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j]; - t2 = sigma(a) + maj(a, b, c); - h = g; - g = f; - f = e; - e = (d + t1) | 0; - d = c; - c = b; - b = a; - a = (t1 + t2) | 0; - } - h0 = (h0 + a) | 0; - h1 = (h1 + b) | 0; - h2 = (h2 + c) | 0; - h3 = (h3 + d) | 0; - h4 = (h4 + e) | 0; - h5 = (h5 + f) | 0; - h6 = (h6 + g) | 0; - h7 = (h7 + h) | 0; - } - return new Uint8Array([ - (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, (h0) & 0xFF, - (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, (h1) & 0xFF, - (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, (h2) & 0xFF, - (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, (h3) & 0xFF, - (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, (h4) & 0xFF, - (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, (h5) & 0xFF, - (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, (h6) & 0xFF, - (h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, (h7) & 0xFF - ]); - } - - return hash; -})(); - -var calculateSHA512 = (function calculateSHA512Closure() { - function ch(result, x, y, z, tmp) { - result.assign(x); - result.and(y); - tmp.assign(x); - tmp.not(); - tmp.and(z); - result.xor(tmp); - } - - function maj(result, x, y, z, tmp) { - result.assign(x); - result.and(y); - tmp.assign(x); - tmp.and(z); - result.xor(tmp); - tmp.assign(y); - tmp.and(z); - result.xor(tmp); - } - - function sigma(result, x, tmp) { - result.assign(x); - result.rotateRight(28); - tmp.assign(x); - tmp.rotateRight(34); - result.xor(tmp); - tmp.assign(x); - tmp.rotateRight(39); - result.xor(tmp); - } - - function sigmaPrime(result, x, tmp) { - result.assign(x); - result.rotateRight(14); - tmp.assign(x); - tmp.rotateRight(18); - result.xor(tmp); - tmp.assign(x); - tmp.rotateRight(41); - result.xor(tmp); - } - - function littleSigma(result, x, tmp) { - result.assign(x); - result.rotateRight(1); - tmp.assign(x); - tmp.rotateRight(8); - result.xor(tmp); - tmp.assign(x); - tmp.shiftRight(7); - result.xor(tmp); - } - - function littleSigmaPrime(result, x, tmp) { - result.assign(x); - result.rotateRight(19); - tmp.assign(x); - tmp.rotateRight(61); - result.xor(tmp); - tmp.assign(x); - tmp.shiftRight(6); - result.xor(tmp); - } - - var k = [ - new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), - new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), - new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), - new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), - new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), - new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), - new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), - new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), - new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), - new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), - new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), - new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), - new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), - new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), - new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), - new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), - new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), - new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), - new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), - new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), - new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), - new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), - new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), - new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), - new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), - new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), - new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), - new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), - new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), - new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), - new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), - new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), - new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), - new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), - new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), - new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), - new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), - new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), - new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), - new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)]; - - function hash(data, offset, length, mode384) { - mode384 = !!mode384; - // initial hash values - var h0, h1, h2, h3, h4, h5, h6, h7; - if (!mode384) { - h0 = new Word64(0x6a09e667, 0xf3bcc908); - h1 = new Word64(0xbb67ae85, 0x84caa73b); - h2 = new Word64(0x3c6ef372, 0xfe94f82b); - h3 = new Word64(0xa54ff53a, 0x5f1d36f1); - h4 = new Word64(0x510e527f, 0xade682d1); - h5 = new Word64(0x9b05688c, 0x2b3e6c1f); - h6 = new Word64(0x1f83d9ab, 0xfb41bd6b); - h7 = new Word64(0x5be0cd19, 0x137e2179); - } - else { - // SHA384 is exactly the same - // except with different starting values and a trimmed result - h0 = new Word64(0xcbbb9d5d, 0xc1059ed8); - h1 = new Word64(0x629a292a, 0x367cd507); - h2 = new Word64(0x9159015a, 0x3070dd17); - h3 = new Word64(0x152fecd8, 0xf70e5939); - h4 = new Word64(0x67332667, 0xffc00b31); - h5 = new Word64(0x8eb44a87, 0x68581511); - h6 = new Word64(0xdb0c2e0d, 0x64f98fa7); - h7 = new Word64(0x47b5481d, 0xbefa4fa4); - } - - // pre-processing - var paddedLength = Math.ceil((length + 17) / 128) * 128; - var padded = new Uint8Array(paddedLength); - var i, j, n; - for (i = 0; i < length; ++i) { - padded[i] = data[offset++]; - } - padded[i++] = 0x80; - n = paddedLength - 16; - while (i < n) { - padded[i++] = 0; - } - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = 0; - padded[i++] = (length >>> 29) & 0xFF; - padded[i++] = (length >> 21) & 0xFF; - padded[i++] = (length >> 13) & 0xFF; - padded[i++] = (length >> 5) & 0xFF; - padded[i++] = (length << 3) & 0xFF; - - var w = new Array(80); - for (i = 0; i < 80; i++) { - w[i] = new Word64(0, 0); - } - var a = new Word64(0, 0), b = new Word64(0, 0), c = new Word64(0, 0); - var d = new Word64(0, 0), e = new Word64(0, 0), f = new Word64(0, 0); - var g = new Word64(0, 0), h = new Word64(0, 0); - var t1 = new Word64(0, 0), t2 = new Word64(0, 0); - var tmp1 = new Word64(0, 0), tmp2 = new Word64(0, 0), tmp3; - - // for each 1024 bit block - for (i = 0; i < paddedLength;) { - for (j = 0; j < 16; ++j) { - w[j].high = (padded[i] << 24) | (padded[i + 1] << 16) | - (padded[i + 2] << 8) | (padded[i + 3]); - w[j].low = (padded[i + 4]) << 24 | (padded[i + 5]) << 16 | - (padded[i + 6]) << 8 | (padded[i + 7]); - i += 8; - } - for (j = 16; j < 80; ++j) { - tmp3 = w[j]; - littleSigmaPrime(tmp3, w[j - 2], tmp2); - tmp3.add(w[j - 7]); - littleSigma(tmp1, w[j - 15], tmp2); - tmp3.add(tmp1); - tmp3.add(w[j - 16]); - } - - a.assign(h0); b.assign(h1); c.assign(h2); d.assign(h3); - e.assign(h4); f.assign(h5); g.assign(h6); h.assign(h7); - for (j = 0; j < 80; ++j) { - t1.assign(h); - sigmaPrime(tmp1, e, tmp2); - t1.add(tmp1); - ch(tmp1, e, f, g, tmp2); - t1.add(tmp1); - t1.add(k[j]); - t1.add(w[j]); - - sigma(t2, a, tmp2); - maj(tmp1, a, b, c, tmp2); - t2.add(tmp1); - - tmp3 = h; - h = g; - g = f; - f = e; - d.add(t1); - e = d; - d = c; - c = b; - b = a; - tmp3.assign(t1); - tmp3.add(t2); - a = tmp3; - } - h0.add(a); - h1.add(b); - h2.add(c); - h3.add(d); - h4.add(e); - h5.add(f); - h6.add(g); - h7.add(h); - } - - var result; - if (!mode384) { - result = new Uint8Array(64); - h0.copyTo(result,0); - h1.copyTo(result,8); - h2.copyTo(result,16); - h3.copyTo(result,24); - h4.copyTo(result,32); - h5.copyTo(result,40); - h6.copyTo(result,48); - h7.copyTo(result,56); - } - else { - result = new Uint8Array(48); - h0.copyTo(result,0); - h1.copyTo(result,8); - h2.copyTo(result,16); - h3.copyTo(result,24); - h4.copyTo(result,32); - h5.copyTo(result,40); - } - return result; - } - - return hash; -})(); -var calculateSHA384 = (function calculateSHA384Closure() { - function hash(data, offset, length) { - return calculateSHA512(data, offset, length, true); - } - - return hash; -})(); -var NullCipher = (function NullCipherClosure() { - function NullCipher() { - } - - NullCipher.prototype = { - decryptBlock: function NullCipher_decryptBlock(data) { - return data; - } - }; - - return NullCipher; -})(); - -var AES128Cipher = (function AES128CipherClosure() { - var rcon = new Uint8Array([ - 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, - 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, - 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, - 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, - 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, - 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, - 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, - 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, - 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, - 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, - 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, - 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, - 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, - 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, - 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, - 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, - 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, - 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, - 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, - 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, - 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, - 0x74, 0xe8, 0xcb, 0x8d]); - - var s = new Uint8Array([ - 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, - 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, - 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, - 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, - 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, - 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, - 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, - 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, - 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, - 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, - 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, - 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, - 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, - 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, - 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, - 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, - 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, - 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, - 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, - 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, - 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, - 0xb0, 0x54, 0xbb, 0x16]); - - var inv_s = new Uint8Array([ - 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, - 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, - 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, - 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, - 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, - 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, - 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, - 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, - 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, - 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, - 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, - 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, - 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, - 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, - 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, - 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, - 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, - 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, - 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, - 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, - 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, - 0x55, 0x21, 0x0c, 0x7d]); - var mixCol = new Uint8Array(256); - for (var i = 0; i < 256; i++) { - if (i < 128) { - mixCol[i] = i << 1; - } else { - mixCol[i] = (i << 1) ^ 0x1b; - } - } - var mix = new Uint32Array([ - 0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, - 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, - 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, - 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, - 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, - 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, - 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, - 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, - 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, - 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, - 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, - 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, - 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, - 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, - 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, - 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, - 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, - 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, - 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, - 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, - 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, - 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, - 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, - 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, - 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, - 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, - 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, - 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, - 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, - 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, - 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, - 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, - 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, - 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, - 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, - 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, - 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, - 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, - 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, - 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, - 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, - 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, - 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]); - - function expandKey128(cipherKey) { - var b = 176, result = new Uint8Array(b); - result.set(cipherKey); - for (var j = 16, i = 1; j < b; ++i) { - // RotWord - var t1 = result[j - 3], t2 = result[j - 2], - t3 = result[j - 1], t4 = result[j - 4]; - // SubWord - t1 = s[t1]; - t2 = s[t2]; - t3 = s[t3]; - t4 = s[t4]; - // Rcon - t1 = t1 ^ rcon[i]; - for (var n = 0; n < 4; ++n) { - result[j] = (t1 ^= result[j - 16]); - j++; - result[j] = (t2 ^= result[j - 16]); - j++; - result[j] = (t3 ^= result[j - 16]); - j++; - result[j] = (t4 ^= result[j - 16]); - j++; - } - } - return result; - } - - function decrypt128(input, key) { - var state = new Uint8Array(16); - state.set(input); - var i, j, k; - var t, u, v; - // AddRoundKey - for (j = 0, k = 160; j < 16; ++j, ++k) { - state[j] ^= key[k]; - } - for (i = 9; i >= 1; --i) { - // InvShiftRows - t = state[13]; - state[13] = state[9]; - state[9] = state[5]; - state[5] = state[1]; - state[1] = t; - t = state[14]; - u = state[10]; - state[14] = state[6]; - state[10] = state[2]; - state[6] = t; - state[2] = u; - t = state[15]; - u = state[11]; - v = state[7]; - state[15] = state[3]; - state[11] = t; - state[7] = u; - state[3] = v; - // InvSubBytes - for (j = 0; j < 16; ++j) { - state[j] = inv_s[state[j]]; - } - // AddRoundKey - for (j = 0, k = i * 16; j < 16; ++j, ++k) { - state[j] ^= key[k]; - } - // InvMixColumns - for (j = 0; j < 16; j += 4) { - var s0 = mix[state[j]], s1 = mix[state[j + 1]], - s2 = mix[state[j + 2]], s3 = mix[state[j + 3]]; - t = (s0 ^ (s1 >>> 8) ^ (s1 << 24) ^ (s2 >>> 16) ^ (s2 << 16) ^ - (s3 >>> 24) ^ (s3 << 8)); - state[j] = (t >>> 24) & 0xFF; - state[j + 1] = (t >> 16) & 0xFF; - state[j + 2] = (t >> 8) & 0xFF; - state[j + 3] = t & 0xFF; - } - } - // InvShiftRows - t = state[13]; - state[13] = state[9]; - state[9] = state[5]; - state[5] = state[1]; - state[1] = t; - t = state[14]; - u = state[10]; - state[14] = state[6]; - state[10] = state[2]; - state[6] = t; - state[2] = u; - t = state[15]; - u = state[11]; - v = state[7]; - state[15] = state[3]; - state[11] = t; - state[7] = u; - state[3] = v; - for (j = 0; j < 16; ++j) { - // InvSubBytes - state[j] = inv_s[state[j]]; - // AddRoundKey - state[j] ^= key[j]; - } - return state; - } - - function encrypt128(input, key) { - var t, u, v, k; - var state = new Uint8Array(16); - state.set(input); - for (j = 0; j < 16; ++j) { - // AddRoundKey - state[j] ^= key[j]; - } - - for (i = 1; i < 10; i++) { - //SubBytes - for (j = 0; j < 16; ++j) { - state[j] = s[state[j]]; - } - //ShiftRows - v = state[1]; - state[1] = state[5]; - state[5] = state[9]; - state[9] = state[13]; - state[13] = v; - v = state[2]; - u = state[6]; - state[2] = state[10]; - state[6] = state[14]; - state[10] = v; - state[14] = u; - v = state[3]; - u = state[7]; - t = state[11]; - state[3] = state[15]; - state[7] = v; - state[11] = u; - state[15] = t; - //MixColumns - for (var j = 0; j < 16; j += 4) { - var s0 = state[j + 0], s1 = state[j + 1]; - var s2 = state[j + 2], s3 = state[j + 3]; - t = s0 ^ s1 ^ s2 ^ s3; - state[j + 0] ^= t ^ mixCol[s0 ^ s1]; - state[j + 1] ^= t ^ mixCol[s1 ^ s2]; - state[j + 2] ^= t ^ mixCol[s2 ^ s3]; - state[j + 3] ^= t ^ mixCol[s3 ^ s0]; - } - //AddRoundKey - for (j = 0, k = i * 16; j < 16; ++j, ++k) { - state[j] ^= key[k]; - } - } - - //SubBytes - for (j = 0; j < 16; ++j) { - state[j] = s[state[j]]; - } - //ShiftRows - v = state[1]; - state[1] = state[5]; - state[5] = state[9]; - state[9] = state[13]; - state[13] = v; - v = state[2]; - u = state[6]; - state[2] = state[10]; - state[6] = state[14]; - state[10] = v; - state[14] = u; - v = state[3]; - u = state[7]; - t = state[11]; - state[3] = state[15]; - state[7] = v; - state[11] = u; - state[15] = t; - //AddRoundKey - for (j = 0, k = 160; j < 16; ++j, ++k) { - state[j] ^= key[k]; - } - return state; - } - - function AES128Cipher(key) { - this.key = expandKey128(key); - this.buffer = new Uint8Array(16); - this.bufferPosition = 0; - } - - function decryptBlock2(data, finalize) { - var i, j, ii, sourceLength = data.length, - buffer = this.buffer, bufferLength = this.bufferPosition, - result = [], iv = this.iv; - for (i = 0; i < sourceLength; ++i) { - buffer[bufferLength] = data[i]; - ++bufferLength; - if (bufferLength < 16) { - continue; - } - // buffer is full, decrypting - var plain = decrypt128(buffer, this.key); - // xor-ing the IV vector to get plain text - for (j = 0; j < 16; ++j) { - plain[j] ^= iv[j]; - } - iv = buffer; - result.push(plain); - buffer = new Uint8Array(16); - bufferLength = 0; - } - // saving incomplete buffer - this.buffer = buffer; - this.bufferLength = bufferLength; - this.iv = iv; - if (result.length === 0) { - return new Uint8Array([]); - } - // combining plain text blocks into one - var outputLength = 16 * result.length; - if (finalize) { - // undo a padding that is described in RFC 2898 - var lastBlock = result[result.length - 1]; - var psLen = lastBlock[15]; - if (psLen <= 16) { - for (i = 15, ii = 16 - psLen; i >= ii; --i) { - if (lastBlock[i] !== psLen) { - // Invalid padding, assume that the block has no padding. - psLen = 0; - break; - } - } - outputLength -= psLen; - result[result.length - 1] = lastBlock.subarray(0, 16 - psLen); - } - } - var output = new Uint8Array(outputLength); - for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { - output.set(result[i], j); - } - return output; - } - - AES128Cipher.prototype = { - decryptBlock: function AES128Cipher_decryptBlock(data, finalize) { - var i, sourceLength = data.length; - var buffer = this.buffer, bufferLength = this.bufferPosition; - // waiting for IV values -- they are at the start of the stream - for (i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) { - buffer[bufferLength] = data[i]; - } - if (bufferLength < 16) { - // need more data - this.bufferLength = bufferLength; - return new Uint8Array([]); - } - this.iv = buffer; - this.buffer = new Uint8Array(16); - this.bufferLength = 0; - // starting decryption - this.decryptBlock = decryptBlock2; - return this.decryptBlock(data.subarray(16), finalize); - }, - encrypt: function AES128Cipher_encrypt(data, iv) { - var i, j, ii, sourceLength = data.length, - buffer = this.buffer, bufferLength = this.bufferPosition, - result = []; - if (!iv) { - iv = new Uint8Array(16); - } - for (i = 0; i < sourceLength; ++i) { - buffer[bufferLength] = data[i]; - ++bufferLength; - if (bufferLength < 16) { - continue; - } - for (j = 0; j < 16; ++j) { - buffer[j] ^= iv[j]; - } - - // buffer is full, encrypting - var cipher = encrypt128(buffer, this.key); - iv = cipher; - result.push(cipher); - buffer = new Uint8Array(16); - bufferLength = 0; - } - // saving incomplete buffer - this.buffer = buffer; - this.bufferLength = bufferLength; - this.iv = iv; - if (result.length === 0) { - return new Uint8Array([]); - } - // combining plain text blocks into one - var outputLength = 16 * result.length; - var output = new Uint8Array(outputLength); - for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { - output.set(result[i], j); - } - return output; - } - }; - - return AES128Cipher; -})(); - -var AES256Cipher = (function AES256CipherClosure() { - var rcon = new Uint8Array([ - 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, - 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, - 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, - 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, - 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, - 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, - 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, - 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, - 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, - 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, - 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, - 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, - 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, - 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, - 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, - 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, - 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, - 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, - 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, - 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, - 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, - 0x74, 0xe8, 0xcb, 0x8d]); - - var s = new Uint8Array([ - 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, - 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, - 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, - 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, - 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, - 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, - 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, - 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, - 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, - 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, - 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, - 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, - 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, - 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, - 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, - 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, - 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, - 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, - 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, - 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, - 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, - 0xb0, 0x54, 0xbb, 0x16]); - - var inv_s = new Uint8Array([ - 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, - 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, - 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, - 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, - 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, - 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, - 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, - 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, - 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, - 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, - 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, - 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, - 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, - 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, - 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, - 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, - 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, - 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, - 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, - 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, - 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, - 0x55, 0x21, 0x0c, 0x7d]); - - var mixCol = new Uint8Array(256); - for (var i = 0; i < 256; i++) { - if (i < 128) { - mixCol[i] = i << 1; - } else { - mixCol[i] = (i << 1) ^ 0x1b; - } - } - var mix = new Uint32Array([ - 0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, - 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, - 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, - 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, - 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, - 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, - 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, - 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, - 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, - 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, - 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, - 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, - 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, - 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, - 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, - 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, - 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, - 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, - 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, - 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, - 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, - 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, - 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, - 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, - 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, - 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, - 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, - 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, - 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, - 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, - 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, - 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, - 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, - 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, - 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, - 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, - 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, - 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, - 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, - 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, - 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, - 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, - 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]); - - function expandKey256(cipherKey) { - var b = 240, result = new Uint8Array(b); - var r = 1; - - result.set(cipherKey); - for (var j = 32, i = 1; j < b; ++i) { - if (j % 32 === 16) { - t1 = s[t1]; - t2 = s[t2]; - t3 = s[t3]; - t4 = s[t4]; - } else if (j % 32 === 0) { - // RotWord - var t1 = result[j - 3], t2 = result[j - 2], - t3 = result[j - 1], t4 = result[j - 4]; - // SubWord - t1 = s[t1]; - t2 = s[t2]; - t3 = s[t3]; - t4 = s[t4]; - // Rcon - t1 = t1 ^ r; - if ((r <<= 1) >= 256) { - r = (r ^ 0x1b) & 0xFF; - } - } - - for (var n = 0; n < 4; ++n) { - result[j] = (t1 ^= result[j - 32]); - j++; - result[j] = (t2 ^= result[j - 32]); - j++; - result[j] = (t3 ^= result[j - 32]); - j++; - result[j] = (t4 ^= result[j - 32]); - j++; - } - } - return result; - } - - function decrypt256(input, key) { - var state = new Uint8Array(16); - state.set(input); - var i, j, k; - var t, u, v; - // AddRoundKey - for (j = 0, k = 224; j < 16; ++j, ++k) { - state[j] ^= key[k]; - } - for (i = 13; i >= 1; --i) { - // InvShiftRows - t = state[13]; - state[13] = state[9]; - state[9] = state[5]; - state[5] = state[1]; - state[1] = t; - t = state[14]; - u = state[10]; - state[14] = state[6]; - state[10] = state[2]; - state[6] = t; - state[2] = u; - t = state[15]; - u = state[11]; - v = state[7]; - state[15] = state[3]; - state[11] = t; - state[7] = u; - state[3] = v; - // InvSubBytes - for (j = 0; j < 16; ++j) { - state[j] = inv_s[state[j]]; - } - // AddRoundKey - for (j = 0, k = i * 16; j < 16; ++j, ++k) { - state[j] ^= key[k]; - } - // InvMixColumns - for (j = 0; j < 16; j += 4) { - var s0 = mix[state[j]], s1 = mix[state[j + 1]], - s2 = mix[state[j + 2]], s3 = mix[state[j + 3]]; - t = (s0 ^ (s1 >>> 8) ^ (s1 << 24) ^ (s2 >>> 16) ^ (s2 << 16) ^ - (s3 >>> 24) ^ (s3 << 8)); - state[j] = (t >>> 24) & 0xFF; - state[j + 1] = (t >> 16) & 0xFF; - state[j + 2] = (t >> 8) & 0xFF; - state[j + 3] = t & 0xFF; - } - } - // InvShiftRows - t = state[13]; - state[13] = state[9]; - state[9] = state[5]; - state[5] = state[1]; - state[1] = t; - t = state[14]; - u = state[10]; - state[14] = state[6]; - state[10] = state[2]; - state[6] = t; - state[2] = u; - t = state[15]; - u = state[11]; - v = state[7]; - state[15] = state[3]; - state[11] = t; - state[7] = u; - state[3] = v; - for (j = 0; j < 16; ++j) { - // InvSubBytes - state[j] = inv_s[state[j]]; - // AddRoundKey - state[j] ^= key[j]; - } - return state; - } - - function encrypt256(input, key) { - var t, u, v, k; - var state = new Uint8Array(16); - state.set(input); - for (j = 0; j < 16; ++j) { - // AddRoundKey - state[j] ^= key[j]; - } - - for (i = 1; i < 14; i++) { - //SubBytes - for (j = 0; j < 16; ++j) { - state[j] = s[state[j]]; - } - //ShiftRows - v = state[1]; - state[1] = state[5]; - state[5] = state[9]; - state[9] = state[13]; - state[13] = v; - v = state[2]; - u = state[6]; - state[2] = state[10]; - state[6] = state[14]; - state[10] = v; - state[14] = u; - v = state[3]; - u = state[7]; - t = state[11]; - state[3] = state[15]; - state[7] = v; - state[11] = u; - state[15] = t; - //MixColumns - for (var j = 0; j < 16; j += 4) { - var s0 = state[j + 0], s1 = state[j + 1]; - var s2 = state[j + 2], s3 = state[j + 3]; - t = s0 ^ s1 ^ s2 ^ s3; - state[j + 0] ^= t ^ mixCol[s0 ^ s1]; - state[j + 1] ^= t ^ mixCol[s1 ^ s2]; - state[j + 2] ^= t ^ mixCol[s2 ^ s3]; - state[j + 3] ^= t ^ mixCol[s3 ^ s0]; - } - //AddRoundKey - for (j = 0, k = i * 16; j < 16; ++j, ++k) { - state[j] ^= key[k]; - } - } - - //SubBytes - for (j = 0; j < 16; ++j) { - state[j] = s[state[j]]; - } - //ShiftRows - v = state[1]; - state[1] = state[5]; - state[5] = state[9]; - state[9] = state[13]; - state[13] = v; - v = state[2]; - u = state[6]; - state[2] = state[10]; - state[6] = state[14]; - state[10] = v; - state[14] = u; - v = state[3]; - u = state[7]; - t = state[11]; - state[3] = state[15]; - state[7] = v; - state[11] = u; - state[15] = t; - //AddRoundKey - for (j = 0, k = 224; j < 16; ++j, ++k) { - state[j] ^= key[k]; - } - - return state; - - } - - function AES256Cipher(key) { - this.key = expandKey256(key); - this.buffer = new Uint8Array(16); - this.bufferPosition = 0; - } - - function decryptBlock2(data, finalize) { - var i, j, ii, sourceLength = data.length, - buffer = this.buffer, bufferLength = this.bufferPosition, - result = [], iv = this.iv; - - for (i = 0; i < sourceLength; ++i) { - buffer[bufferLength] = data[i]; - ++bufferLength; - if (bufferLength < 16) { - continue; - } - // buffer is full, decrypting - var plain = decrypt256(buffer, this.key); - // xor-ing the IV vector to get plain text - for (j = 0; j < 16; ++j) { - plain[j] ^= iv[j]; - } - iv = buffer; - result.push(plain); - buffer = new Uint8Array(16); - bufferLength = 0; - } - // saving incomplete buffer - this.buffer = buffer; - this.bufferLength = bufferLength; - this.iv = iv; - if (result.length === 0) { - return new Uint8Array([]); - } - // combining plain text blocks into one - var outputLength = 16 * result.length; - if (finalize) { - // undo a padding that is described in RFC 2898 - var lastBlock = result[result.length - 1]; - var psLen = lastBlock[15]; - if (psLen <= 16) { - for (i = 15, ii = 16 - psLen; i >= ii; --i) { - if (lastBlock[i] !== psLen) { - // Invalid padding, assume that the block has no padding. - psLen = 0; - break; - } - } - outputLength -= psLen; - result[result.length - 1] = lastBlock.subarray(0, 16 - psLen); - } - } - var output = new Uint8Array(outputLength); - for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { - output.set(result[i], j); - } - return output; - - } - - AES256Cipher.prototype = { - decryptBlock: function AES256Cipher_decryptBlock(data, finalize, iv) { - var i, sourceLength = data.length; - var buffer = this.buffer, bufferLength = this.bufferPosition; - // if not supplied an IV wait for IV values - // they are at the start of the stream - if (iv) { - this.iv = iv; - } else { - for (i = 0; bufferLength < 16 && - i < sourceLength; ++i, ++bufferLength) { - buffer[bufferLength] = data[i]; - } - if (bufferLength < 16) { - //need more data - this.bufferLength = bufferLength; - return new Uint8Array([]); - } - this.iv = buffer; - data = data.subarray(16); - } - this.buffer = new Uint8Array(16); - this.bufferLength = 0; - // starting decryption - this.decryptBlock = decryptBlock2; - return this.decryptBlock(data, finalize); - }, - encrypt: function AES256Cipher_encrypt(data, iv) { - var i, j, ii, sourceLength = data.length, - buffer = this.buffer, bufferLength = this.bufferPosition, - result = []; - if (!iv) { - iv = new Uint8Array(16); - } - for (i = 0; i < sourceLength; ++i) { - buffer[bufferLength] = data[i]; - ++bufferLength; - if (bufferLength < 16) { - continue; - } - for (j = 0; j < 16; ++j) { - buffer[j] ^= iv[j]; - } - - // buffer is full, encrypting - var cipher = encrypt256(buffer, this.key); - this.iv = cipher; - result.push(cipher); - buffer = new Uint8Array(16); - bufferLength = 0; - } - // saving incomplete buffer - this.buffer = buffer; - this.bufferLength = bufferLength; - this.iv = iv; - if (result.length === 0) { - return new Uint8Array([]); - } - // combining plain text blocks into one - var outputLength = 16 * result.length; - var output = new Uint8Array(outputLength); - for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { - output.set(result[i], j); - } - return output; - } - }; - - return AES256Cipher; -})(); - -var PDF17 = (function PDF17Closure() { - - function compareByteArrays(array1, array2) { - if (array1.length !== array2.length) { - return false; - } - for (var i = 0; i < array1.length; i++) { - if (array1[i] !== array2[i]) { - return false; - } - } - return true; - } - - function PDF17() { - } - - PDF17.prototype = { - checkOwnerPassword: function PDF17_checkOwnerPassword(password, - ownerValidationSalt, - userBytes, - ownerPassword) { - var hashData = new Uint8Array(password.length + 56); - hashData.set(password, 0); - hashData.set(ownerValidationSalt, password.length); - hashData.set(userBytes, password.length + ownerValidationSalt.length); - var result = calculateSHA256(hashData, 0, hashData.length); - return compareByteArrays(result, ownerPassword); - }, - checkUserPassword: function PDF17_checkUserPassword(password, - userValidationSalt, - userPassword) { - var hashData = new Uint8Array(password.length + 8); - hashData.set(password, 0); - hashData.set(userValidationSalt, password.length); - var result = calculateSHA256(hashData, 0, hashData.length); - return compareByteArrays(result, userPassword); - }, - getOwnerKey: function PDF17_getOwnerKey(password, ownerKeySalt, userBytes, - ownerEncryption) { - var hashData = new Uint8Array(password.length + 56); - hashData.set(password, 0); - hashData.set(ownerKeySalt, password.length); - hashData.set(userBytes, password.length + ownerKeySalt.length); - var key = calculateSHA256(hashData, 0, hashData.length); - var cipher = new AES256Cipher(key); - return cipher.decryptBlock(ownerEncryption, - false, - new Uint8Array(16)); - - }, - getUserKey: function PDF17_getUserKey(password, userKeySalt, - userEncryption) { - var hashData = new Uint8Array(password.length + 8); - hashData.set(password, 0); - hashData.set(userKeySalt, password.length); - //key is the decryption key for the UE string - var key = calculateSHA256(hashData, 0, hashData.length); - var cipher = new AES256Cipher(key); - return cipher.decryptBlock(userEncryption, - false, - new Uint8Array(16)); - } - }; - return PDF17; -})(); - -var PDF20 = (function PDF20Closure() { - - function concatArrays(array1, array2) { - var t = new Uint8Array(array1.length + array2.length); - t.set(array1, 0); - t.set(array2, array1.length); - return t; - } - - function calculatePDF20Hash(password, input, userBytes) { - //This refers to Algorithm 2.B as defined in ISO 32000-2 - var k = calculateSHA256(input, 0, input.length).subarray(0, 32); - var e = [0]; - var i = 0; - while (i < 64 || e[e.length - 1] > i - 32) { - var arrayLength = password.length + k.length + userBytes.length; - - var k1 = new Uint8Array(arrayLength * 64); - var array = concatArrays(password, k); - array = concatArrays(array, userBytes); - for (var j = 0, pos = 0; j < 64; j++, pos += arrayLength) { - k1.set(array, pos); - } - //AES128 CBC NO PADDING with - //first 16 bytes of k as the key and the second 16 as the iv. - var cipher = new AES128Cipher(k.subarray(0, 16)); - e = cipher.encrypt(k1, k.subarray(16, 32)); - //Now we have to take the first 16 bytes of an unsigned - //big endian integer... and compute the remainder - //modulo 3.... That is a fairly large number and - //JavaScript isn't going to handle that well... - //So we're using a trick that allows us to perform - //modulo math byte by byte - var remainder = 0; - for (var z = 0; z < 16; z++) { - remainder *= (256 % 3); - remainder %= 3; - remainder += ((e[z] >>> 0) % 3); - remainder %= 3; - } - if (remainder === 0) { - k = calculateSHA256(e, 0, e.length); - } - else if (remainder === 1) { - k = calculateSHA384(e, 0, e.length); - } - else if (remainder === 2) { - k = calculateSHA512(e, 0, e.length); - } - i++; - } - return k.subarray(0, 32); - } - - function PDF20() { - } - - function compareByteArrays(array1, array2) { - if (array1.length !== array2.length) { - return false; - } - for (var i = 0; i < array1.length; i++) { - if (array1[i] !== array2[i]) { - return false; - } - } - return true; - } - - PDF20.prototype = { - hash: function PDF20_hash(password, concatBytes, userBytes) { - return calculatePDF20Hash(password, concatBytes, userBytes); - }, - checkOwnerPassword: function PDF20_checkOwnerPassword(password, - ownerValidationSalt, - userBytes, - ownerPassword) { - var hashData = new Uint8Array(password.length + 56); - hashData.set(password, 0); - hashData.set(ownerValidationSalt, password.length); - hashData.set(userBytes, password.length + ownerValidationSalt.length); - var result = calculatePDF20Hash(password, hashData, userBytes); - return compareByteArrays(result, ownerPassword); - }, - checkUserPassword: function PDF20_checkUserPassword(password, - userValidationSalt, - userPassword) { - var hashData = new Uint8Array(password.length + 8); - hashData.set(password, 0); - hashData.set(userValidationSalt, password.length); - var result = calculatePDF20Hash(password, hashData, []); - return compareByteArrays(result, userPassword); - }, - getOwnerKey: function PDF20_getOwnerKey(password, ownerKeySalt, userBytes, - ownerEncryption) { - var hashData = new Uint8Array(password.length + 56); - hashData.set(password, 0); - hashData.set(ownerKeySalt, password.length); - hashData.set(userBytes, password.length + ownerKeySalt.length); - var key = calculatePDF20Hash(password, hashData, userBytes); - var cipher = new AES256Cipher(key); - return cipher.decryptBlock(ownerEncryption, - false, - new Uint8Array(16)); - - }, - getUserKey: function PDF20_getUserKey(password, userKeySalt, - userEncryption) { - var hashData = new Uint8Array(password.length + 8); - hashData.set(password, 0); - hashData.set(userKeySalt, password.length); - //key is the decryption key for the UE string - var key = calculatePDF20Hash(password, hashData, []); - var cipher = new AES256Cipher(key); - return cipher.decryptBlock(userEncryption, - false, - new Uint8Array(16)); - } - }; - return PDF20; -})(); - -var CipherTransform = (function CipherTransformClosure() { - function CipherTransform(stringCipherConstructor, streamCipherConstructor) { - this.stringCipherConstructor = stringCipherConstructor; - this.streamCipherConstructor = streamCipherConstructor; - } - - CipherTransform.prototype = { - createStream: function CipherTransform_createStream(stream, length) { - var cipher = new this.streamCipherConstructor(); - return new DecryptStream(stream, length, - function cipherTransformDecryptStream(data, finalize) { - return cipher.decryptBlock(data, finalize); - } - ); - }, - decryptString: function CipherTransform_decryptString(s) { - var cipher = new this.stringCipherConstructor(); - var data = stringToBytes(s); - data = cipher.decryptBlock(data, true); - return bytesToString(data); - } - }; - return CipherTransform; -})(); - -var CipherTransformFactory = (function CipherTransformFactoryClosure() { - var defaultPasswordBytes = new Uint8Array([ - 0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41, - 0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08, - 0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80, - 0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]); - - function createEncryptionKey20(revision, password, ownerPassword, - ownerValidationSalt, ownerKeySalt, uBytes, - userPassword, userValidationSalt, userKeySalt, - ownerEncryption, userEncryption, perms) { - if (password) { - var passwordLength = Math.min(127, password.length); - password = password.subarray(0, passwordLength); - } else { - password = []; - } - var pdfAlgorithm; - if (revision === 6) { - pdfAlgorithm = new PDF20(); - } else { - pdfAlgorithm = new PDF17(); - } - - if (pdfAlgorithm) { - if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, - userPassword)) { - return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption); - } else if (pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, - uBytes, - ownerPassword)) { - return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, - ownerEncryption); - } - } - - return null; - } - - function prepareKeyData(fileId, password, ownerPassword, userPassword, - flags, revision, keyLength, encryptMetadata) { - var hashDataSize = 40 + ownerPassword.length + fileId.length; - var hashData = new Uint8Array(hashDataSize), i = 0, j, n; - if (password) { - n = Math.min(32, password.length); - for (; i < n; ++i) { - hashData[i] = password[i]; - } - } - j = 0; - while (i < 32) { - hashData[i++] = defaultPasswordBytes[j++]; - } - // as now the padded password in the hashData[0..i] - for (j = 0, n = ownerPassword.length; j < n; ++j) { - hashData[i++] = ownerPassword[j]; - } - hashData[i++] = flags & 0xFF; - hashData[i++] = (flags >> 8) & 0xFF; - hashData[i++] = (flags >> 16) & 0xFF; - hashData[i++] = (flags >>> 24) & 0xFF; - for (j = 0, n = fileId.length; j < n; ++j) { - hashData[i++] = fileId[j]; - } - if (revision >= 4 && !encryptMetadata) { - hashData[i++] = 0xFF; - hashData[i++] = 0xFF; - hashData[i++] = 0xFF; - hashData[i++] = 0xFF; - } - var hash = calculateMD5(hashData, 0, i); - var keyLengthInBytes = keyLength >> 3; - if (revision >= 3) { - for (j = 0; j < 50; ++j) { - hash = calculateMD5(hash, 0, keyLengthInBytes); - } - } - var encryptionKey = hash.subarray(0, keyLengthInBytes); - var cipher, checkData; - - if (revision >= 3) { - for (i = 0; i < 32; ++i) { - hashData[i] = defaultPasswordBytes[i]; - } - for (j = 0, n = fileId.length; j < n; ++j) { - hashData[i++] = fileId[j]; - } - cipher = new ARCFourCipher(encryptionKey); - checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i)); - n = encryptionKey.length; - var derivedKey = new Uint8Array(n), k; - for (j = 1; j <= 19; ++j) { - for (k = 0; k < n; ++k) { - derivedKey[k] = encryptionKey[k] ^ j; - } - cipher = new ARCFourCipher(derivedKey); - checkData = cipher.encryptBlock(checkData); - } - for (j = 0, n = checkData.length; j < n; ++j) { - if (userPassword[j] !== checkData[j]) { - return null; - } - } - } else { - cipher = new ARCFourCipher(encryptionKey); - checkData = cipher.encryptBlock(defaultPasswordBytes); - for (j = 0, n = checkData.length; j < n; ++j) { - if (userPassword[j] !== checkData[j]) { - return null; - } - } - } - return encryptionKey; - } - - function decodeUserPassword(password, ownerPassword, revision, keyLength) { - var hashData = new Uint8Array(32), i = 0, j, n; - n = Math.min(32, password.length); - for (; i < n; ++i) { - hashData[i] = password[i]; - } - j = 0; - while (i < 32) { - hashData[i++] = defaultPasswordBytes[j++]; - } - var hash = calculateMD5(hashData, 0, i); - var keyLengthInBytes = keyLength >> 3; - if (revision >= 3) { - for (j = 0; j < 50; ++j) { - hash = calculateMD5(hash, 0, hash.length); - } - } - - var cipher, userPassword; - if (revision >= 3) { - userPassword = ownerPassword; - var derivedKey = new Uint8Array(keyLengthInBytes), k; - for (j = 19; j >= 0; j--) { - for (k = 0; k < keyLengthInBytes; ++k) { - derivedKey[k] = hash[k] ^ j; - } - cipher = new ARCFourCipher(derivedKey); - userPassword = cipher.encryptBlock(userPassword); - } - } else { - cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes)); - userPassword = cipher.encryptBlock(ownerPassword); - } - return userPassword; - } - - var identityName = Name.get('Identity'); - - function CipherTransformFactory(dict, fileId, password) { - var filter = dict.get('Filter'); - if (!isName(filter) || filter.name !== 'Standard') { - error('unknown encryption method'); - } - this.dict = dict; - var algorithm = dict.get('V'); - if (!isInt(algorithm) || - (algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && - algorithm !== 5)) { - error('unsupported encryption algorithm'); - } - this.algorithm = algorithm; - var keyLength = dict.get('Length') || 40; - if (!isInt(keyLength) || - keyLength < 40 || (keyLength % 8) !== 0) { - error('invalid key length'); - } - - // prepare keys - var ownerPassword = stringToBytes(dict.get('O')).subarray(0, 32); - var userPassword = stringToBytes(dict.get('U')).subarray(0, 32); - var flags = dict.get('P'); - var revision = dict.get('R'); - // meaningful when V is 4 or 5 - var encryptMetadata = ((algorithm === 4 || algorithm === 5) && - dict.get('EncryptMetadata') !== false); - this.encryptMetadata = encryptMetadata; - - var fileIdBytes = stringToBytes(fileId); - var passwordBytes; - if (password) { - if (revision === 6) { - try { - password = utf8StringToString(password); - } catch (ex) { - warn('CipherTransformFactory: ' + - 'Unable to convert UTF8 encoded password.'); - } - } - passwordBytes = stringToBytes(password); - } - - var encryptionKey; - if (algorithm !== 5) { - encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, - ownerPassword, userPassword, flags, - revision, keyLength, encryptMetadata); - } - else { - var ownerValidationSalt = stringToBytes(dict.get('O')).subarray(32, 40); - var ownerKeySalt = stringToBytes(dict.get('O')).subarray(40, 48); - var uBytes = stringToBytes(dict.get('U')).subarray(0, 48); - var userValidationSalt = stringToBytes(dict.get('U')).subarray(32, 40); - var userKeySalt = stringToBytes(dict.get('U')).subarray(40, 48); - var ownerEncryption = stringToBytes(dict.get('OE')); - var userEncryption = stringToBytes(dict.get('UE')); - var perms = stringToBytes(dict.get('Perms')); - encryptionKey = - createEncryptionKey20(revision, passwordBytes, - ownerPassword, ownerValidationSalt, - ownerKeySalt, uBytes, - userPassword, userValidationSalt, - userKeySalt, ownerEncryption, - userEncryption, perms); - } - if (!encryptionKey && !password) { - throw new PasswordException('No password given', - PasswordResponses.NEED_PASSWORD); - } else if (!encryptionKey && password) { - // Attempting use the password as an owner password - var decodedPassword = decodeUserPassword(passwordBytes, ownerPassword, - revision, keyLength); - encryptionKey = prepareKeyData(fileIdBytes, decodedPassword, - ownerPassword, userPassword, flags, - revision, keyLength, encryptMetadata); - } - - if (!encryptionKey) { - throw new PasswordException('Incorrect Password', - PasswordResponses.INCORRECT_PASSWORD); - } - - this.encryptionKey = encryptionKey; - - if (algorithm >= 4) { - this.cf = dict.get('CF'); - this.stmf = dict.get('StmF') || identityName; - this.strf = dict.get('StrF') || identityName; - this.eff = dict.get('EFF') || this.stmf; - } - } - - function buildObjectKey(num, gen, encryptionKey, isAes) { - var key = new Uint8Array(encryptionKey.length + 9), i, n; - for (i = 0, n = encryptionKey.length; i < n; ++i) { - key[i] = encryptionKey[i]; - } - key[i++] = num & 0xFF; - key[i++] = (num >> 8) & 0xFF; - key[i++] = (num >> 16) & 0xFF; - key[i++] = gen & 0xFF; - key[i++] = (gen >> 8) & 0xFF; - if (isAes) { - key[i++] = 0x73; - key[i++] = 0x41; - key[i++] = 0x6C; - key[i++] = 0x54; - } - var hash = calculateMD5(key, 0, i); - return hash.subarray(0, Math.min(encryptionKey.length + 5, 16)); - } - - function buildCipherConstructor(cf, name, num, gen, key) { - var cryptFilter = cf.get(name.name); - var cfm; - if (cryptFilter !== null && cryptFilter !== undefined) { - cfm = cryptFilter.get('CFM'); - } - if (!cfm || cfm.name === 'None') { - return function cipherTransformFactoryBuildCipherConstructorNone() { - return new NullCipher(); - }; - } - if ('V2' === cfm.name) { - return function cipherTransformFactoryBuildCipherConstructorV2() { - return new ARCFourCipher(buildObjectKey(num, gen, key, false)); - }; - } - if ('AESV2' === cfm.name) { - return function cipherTransformFactoryBuildCipherConstructorAESV2() { - return new AES128Cipher(buildObjectKey(num, gen, key, true)); - }; - } - if ('AESV3' === cfm.name) { - return function cipherTransformFactoryBuildCipherConstructorAESV3() { - return new AES256Cipher(key); - }; - } - error('Unknown crypto method'); - } - - CipherTransformFactory.prototype = { - createCipherTransform: - function CipherTransformFactory_createCipherTransform(num, gen) { - if (this.algorithm === 4 || this.algorithm === 5) { - return new CipherTransform( - buildCipherConstructor(this.cf, this.stmf, - num, gen, this.encryptionKey), - buildCipherConstructor(this.cf, this.strf, - num, gen, this.encryptionKey)); - } - // algorithms 1 and 2 - var key = buildObjectKey(num, gen, this.encryptionKey, false); - var cipherConstructor = function buildCipherCipherConstructor() { - return new ARCFourCipher(key); - }; - return new CipherTransform(cipherConstructor, cipherConstructor); - } - }; - - return CipherTransformFactory; -})(); - - -var PatternType = { - FUNCTION_BASED: 1, - AXIAL: 2, - RADIAL: 3, - FREE_FORM_MESH: 4, - LATTICE_FORM_MESH: 5, - COONS_PATCH_MESH: 6, - TENSOR_PATCH_MESH: 7 -}; - -var Pattern = (function PatternClosure() { - // Constructor should define this.getPattern - function Pattern() { - error('should not call Pattern constructor'); - } - - Pattern.prototype = { - // Input: current Canvas context - // Output: the appropriate fillStyle or strokeStyle - getPattern: function Pattern_getPattern(ctx) { - error('Should not call Pattern.getStyle: ' + ctx); - } - }; - - Pattern.parseShading = function Pattern_parseShading(shading, matrix, xref, - res) { - - var dict = isStream(shading) ? shading.dict : shading; - var type = dict.get('ShadingType'); - - try { - switch (type) { - case PatternType.AXIAL: - case PatternType.RADIAL: - // Both radial and axial shadings are handled by RadialAxial shading. - return new Shadings.RadialAxial(dict, matrix, xref, res); - case PatternType.FREE_FORM_MESH: - case PatternType.LATTICE_FORM_MESH: - case PatternType.COONS_PATCH_MESH: - case PatternType.TENSOR_PATCH_MESH: - return new Shadings.Mesh(shading, matrix, xref, res); - default: - throw new Error('Unknown PatternType: ' + type); - } - } catch (ex) { - if (ex instanceof MissingDataException) { - throw ex; - } - UnsupportedManager.notify(UNSUPPORTED_FEATURES.shadingPattern); - warn(ex); - return new Shadings.Dummy(); - } - }; - return Pattern; -})(); - -var Shadings = {}; - -// A small number to offset the first/last color stops so we can insert ones to -// support extend. Number.MIN_VALUE appears to be too small and breaks the -// extend. 1e-7 works in FF but chrome seems to use an even smaller sized number -// internally so we have to go bigger. -Shadings.SMALL_NUMBER = 1e-2; - -// Radial and axial shading have very similar implementations -// If needed, the implementations can be broken into two classes -Shadings.RadialAxial = (function RadialAxialClosure() { - function RadialAxial(dict, matrix, xref, res) { - this.matrix = matrix; - this.coordsArr = dict.get('Coords'); - this.shadingType = dict.get('ShadingType'); - this.type = 'Pattern'; - var cs = dict.get('ColorSpace', 'CS'); - cs = ColorSpace.parse(cs, xref, res); - this.cs = cs; - - var t0 = 0.0, t1 = 1.0; - if (dict.has('Domain')) { - var domainArr = dict.get('Domain'); - t0 = domainArr[0]; - t1 = domainArr[1]; - } - - var extendStart = false, extendEnd = false; - if (dict.has('Extend')) { - var extendArr = dict.get('Extend'); - extendStart = extendArr[0]; - extendEnd = extendArr[1]; - } - - if (this.shadingType === PatternType.RADIAL && - (!extendStart || !extendEnd)) { - // Radial gradient only currently works if either circle is fully within - // the other circle. - var x1 = this.coordsArr[0]; - var y1 = this.coordsArr[1]; - var r1 = this.coordsArr[2]; - var x2 = this.coordsArr[3]; - var y2 = this.coordsArr[4]; - var r2 = this.coordsArr[5]; - var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); - if (r1 <= r2 + distance && - r2 <= r1 + distance) { - warn('Unsupported radial gradient.'); - } - } - - this.extendStart = extendStart; - this.extendEnd = extendEnd; - - var fnObj = dict.get('Function'); - var fn = PDFFunction.parseArray(xref, fnObj); - - // 10 samples seems good enough for now, but probably won't work - // if there are sharp color changes. Ideally, we would implement - // the spec faithfully and add lossless optimizations. - var diff = t1 - t0; - var step = diff / 10; - - var colorStops = this.colorStops = []; - - // Protect against bad domains so we don't end up in an infinte loop below. - if (t0 >= t1 || step <= 0) { - // Acrobat doesn't seem to handle these cases so we'll ignore for - // now. - info('Bad shading domain.'); - return; - } - - var color = new Float32Array(cs.numComps), ratio = new Float32Array(1); - var rgbColor; - for (var i = t0; i <= t1; i += step) { - ratio[0] = i; - fn(ratio, 0, color, 0); - rgbColor = cs.getRgb(color, 0); - var cssColor = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); - colorStops.push([(i - t0) / diff, cssColor]); - } - - var background = 'transparent'; - if (dict.has('Background')) { - rgbColor = cs.getRgb(dict.get('Background'), 0); - background = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); - } - - if (!extendStart) { - // Insert a color stop at the front and offset the first real color stop - // so it doesn't conflict with the one we insert. - colorStops.unshift([0, background]); - colorStops[1][0] += Shadings.SMALL_NUMBER; - } - if (!extendEnd) { - // Same idea as above in extendStart but for the end. - colorStops[colorStops.length - 1][0] -= Shadings.SMALL_NUMBER; - colorStops.push([1, background]); - } - - this.colorStops = colorStops; - } - - RadialAxial.prototype = { - getIR: function RadialAxial_getIR() { - var coordsArr = this.coordsArr; - var shadingType = this.shadingType; - var type, p0, p1, r0, r1; - if (shadingType === PatternType.AXIAL) { - p0 = [coordsArr[0], coordsArr[1]]; - p1 = [coordsArr[2], coordsArr[3]]; - r0 = null; - r1 = null; - type = 'axial'; - } else if (shadingType === PatternType.RADIAL) { - p0 = [coordsArr[0], coordsArr[1]]; - p1 = [coordsArr[3], coordsArr[4]]; - r0 = coordsArr[2]; - r1 = coordsArr[5]; - type = 'radial'; - } else { - error('getPattern type unknown: ' + shadingType); - } - - var matrix = this.matrix; - if (matrix) { - p0 = Util.applyTransform(p0, matrix); - p1 = Util.applyTransform(p1, matrix); - } - - return ['RadialAxial', type, this.colorStops, p0, p1, r0, r1]; - } - }; - - return RadialAxial; -})(); - -// All mesh shading. For now, they will be presented as set of the triangles -// to be drawn on the canvas and rgb color for each vertex. -Shadings.Mesh = (function MeshClosure() { - function MeshStreamReader(stream, context) { - this.stream = stream; - this.context = context; - this.buffer = 0; - this.bufferLength = 0; - - var numComps = context.numComps; - this.tmpCompsBuf = new Float32Array(numComps); - var csNumComps = context.colorSpace; - this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : - this.tmpCompsBuf; - } - MeshStreamReader.prototype = { - get hasData() { - if (this.stream.end) { - return this.stream.pos < this.stream.end; - } - if (this.bufferLength > 0) { - return true; - } - var nextByte = this.stream.getByte(); - if (nextByte < 0) { - return false; - } - this.buffer = nextByte; - this.bufferLength = 8; - return true; - }, - readBits: function MeshStreamReader_readBits(n) { - var buffer = this.buffer; - var bufferLength = this.bufferLength; - if (n === 32) { - if (bufferLength === 0) { - return ((this.stream.getByte() << 24) | - (this.stream.getByte() << 16) | (this.stream.getByte() << 8) | - this.stream.getByte()) >>> 0; - } - buffer = (buffer << 24) | (this.stream.getByte() << 16) | - (this.stream.getByte() << 8) | this.stream.getByte(); - var nextByte = this.stream.getByte(); - this.buffer = nextByte & ((1 << bufferLength) - 1); - return ((buffer << (8 - bufferLength)) | - ((nextByte & 0xFF) >> bufferLength)) >>> 0; - } - if (n === 8 && bufferLength === 0) { - return this.stream.getByte(); - } - while (bufferLength < n) { - buffer = (buffer << 8) | this.stream.getByte(); - bufferLength += 8; - } - bufferLength -= n; - this.bufferLength = bufferLength; - this.buffer = buffer & ((1 << bufferLength) - 1); - return buffer >> bufferLength; - }, - align: function MeshStreamReader_align() { - this.buffer = 0; - this.bufferLength = 0; - }, - readFlag: function MeshStreamReader_readFlag() { - return this.readBits(this.context.bitsPerFlag); - }, - readCoordinate: function MeshStreamReader_readCoordinate() { - var bitsPerCoordinate = this.context.bitsPerCoordinate; - var xi = this.readBits(bitsPerCoordinate); - var yi = this.readBits(bitsPerCoordinate); - var decode = this.context.decode; - var scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : - 2.3283064365386963e-10; // 2 ^ -32 - return [ - xi * scale * (decode[1] - decode[0]) + decode[0], - yi * scale * (decode[3] - decode[2]) + decode[2] - ]; - }, - readComponents: function MeshStreamReader_readComponents() { - var numComps = this.context.numComps; - var bitsPerComponent = this.context.bitsPerComponent; - var scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : - 2.3283064365386963e-10; // 2 ^ -32 - var decode = this.context.decode; - var components = this.tmpCompsBuf; - for (var i = 0, j = 4; i < numComps; i++, j += 2) { - var ci = this.readBits(bitsPerComponent); - components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j]; - } - var color = this.tmpCsCompsBuf; - if (this.context.colorFn) { - this.context.colorFn(components, 0, color, 0); - } - return this.context.colorSpace.getRgb(color, 0); - } - }; - - function decodeType4Shading(mesh, reader) { - var coords = mesh.coords; - var colors = mesh.colors; - var operators = []; - var ps = []; // not maintaining cs since that will match ps - var verticesLeft = 0; // assuming we have all data to start a new triangle - while (reader.hasData) { - var f = reader.readFlag(); - var coord = reader.readCoordinate(); - var color = reader.readComponents(); - if (verticesLeft === 0) { // ignoring flags if we started a triangle - assert(0 <= f && f <= 2, 'Unknown type4 flag'); - switch (f) { - case 0: - verticesLeft = 3; - break; - case 1: - ps.push(ps[ps.length - 2], ps[ps.length - 1]); - verticesLeft = 1; - break; - case 2: - ps.push(ps[ps.length - 3], ps[ps.length - 1]); - verticesLeft = 1; - break; - } - operators.push(f); - } - ps.push(coords.length); - coords.push(coord); - colors.push(color); - verticesLeft--; - - reader.align(); - } - - var psPacked = new Int32Array(ps); - - mesh.figures.push({ - type: 'triangles', - coords: psPacked, - colors: psPacked - }); - } - - function decodeType5Shading(mesh, reader, verticesPerRow) { - var coords = mesh.coords; - var colors = mesh.colors; - var ps = []; // not maintaining cs since that will match ps - while (reader.hasData) { - var coord = reader.readCoordinate(); - var color = reader.readComponents(); - ps.push(coords.length); - coords.push(coord); - colors.push(color); - } - - var psPacked = new Int32Array(ps); - - mesh.figures.push({ - type: 'lattice', - coords: psPacked, - colors: psPacked, - verticesPerRow: verticesPerRow - }); - } - - var MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3; - var MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20; - - var TRIANGLE_DENSITY = 20; // count of triangles per entire mesh bounds - - var getB = (function getBClosure() { - function buildB(count) { - var lut = []; - for (var i = 0; i <= count; i++) { - var t = i / count, t_ = 1 - t; - lut.push(new Float32Array([t_ * t_ * t_, 3 * t * t_ * t_, - 3 * t * t * t_, t * t * t])); - } - return lut; - } - var cache = []; - return function getB(count) { - if (!cache[count]) { - cache[count] = buildB(count); - } - return cache[count]; - }; - })(); - - function buildFigureFromPatch(mesh, index) { - var figure = mesh.figures[index]; - assert(figure.type === 'patch', 'Unexpected patch mesh figure'); - - var coords = mesh.coords, colors = mesh.colors; - var pi = figure.coords; - var ci = figure.colors; - - var figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], - coords[pi[12]][0], coords[pi[15]][0]); - var figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], - coords[pi[12]][1], coords[pi[15]][1]); - var figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], - coords[pi[12]][0], coords[pi[15]][0]); - var figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], - coords[pi[12]][1], coords[pi[15]][1]); - var splitXBy = Math.ceil((figureMaxX - figureMinX) * TRIANGLE_DENSITY / - (mesh.bounds[2] - mesh.bounds[0])); - splitXBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, - Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy)); - var splitYBy = Math.ceil((figureMaxY - figureMinY) * TRIANGLE_DENSITY / - (mesh.bounds[3] - mesh.bounds[1])); - splitYBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, - Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy)); - - var verticesPerRow = splitXBy + 1; - var figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow); - var figureColors = new Int32Array((splitYBy + 1) * verticesPerRow); - var k = 0; - var cl = new Uint8Array(3), cr = new Uint8Array(3); - var c0 = colors[ci[0]], c1 = colors[ci[1]], - c2 = colors[ci[2]], c3 = colors[ci[3]]; - var bRow = getB(splitYBy), bCol = getB(splitXBy); - for (var row = 0; row <= splitYBy; row++) { - cl[0] = ((c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy) | 0; - cl[1] = ((c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy) | 0; - cl[2] = ((c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy) | 0; - - cr[0] = ((c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy) | 0; - cr[1] = ((c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy) | 0; - cr[2] = ((c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy) | 0; - - for (var col = 0; col <= splitXBy; col++, k++) { - if ((row === 0 || row === splitYBy) && - (col === 0 || col === splitXBy)) { - continue; - } - var x = 0, y = 0; - var q = 0; - for (var i = 0; i <= 3; i++) { - for (var j = 0; j <= 3; j++, q++) { - var m = bRow[row][i] * bCol[col][j]; - x += coords[pi[q]][0] * m; - y += coords[pi[q]][1] * m; - } - } - figureCoords[k] = coords.length; - coords.push([x, y]); - figureColors[k] = colors.length; - var newColor = new Uint8Array(3); - newColor[0] = ((cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy) | 0; - newColor[1] = ((cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy) | 0; - newColor[2] = ((cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy) | 0; - colors.push(newColor); - } - } - figureCoords[0] = pi[0]; - figureColors[0] = ci[0]; - figureCoords[splitXBy] = pi[3]; - figureColors[splitXBy] = ci[1]; - figureCoords[verticesPerRow * splitYBy] = pi[12]; - figureColors[verticesPerRow * splitYBy] = ci[2]; - figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15]; - figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3]; - - mesh.figures[index] = { - type: 'lattice', - coords: figureCoords, - colors: figureColors, - verticesPerRow: verticesPerRow - }; - } - - function decodeType6Shading(mesh, reader) { - // A special case of Type 7. The p11, p12, p21, p22 automatically filled - var coords = mesh.coords; - var colors = mesh.colors; - var ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33 - var cs = new Int32Array(4); // c00, c30, c03, c33 - while (reader.hasData) { - var f = reader.readFlag(); - assert(0 <= f && f <= 3, 'Unknown type6 flag'); - var i, ii; - var pi = coords.length; - for (i = 0, ii = (f !== 0 ? 8 : 12); i < ii; i++) { - coords.push(reader.readCoordinate()); - } - var ci = colors.length; - for (i = 0, ii = (f !== 0 ? 2 : 4); i < ii; i++) { - colors.push(reader.readComponents()); - } - var tmp1, tmp2, tmp3, tmp4; - switch (f) { - case 0: - ps[12] = pi + 3; ps[13] = pi + 4; ps[14] = pi + 5; ps[15] = pi + 6; - ps[ 8] = pi + 2; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 7; - ps[ 4] = pi + 1; /* calculated below */ ps[ 7] = pi + 8; - ps[ 0] = pi; ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9; - cs[2] = ci + 1; cs[3] = ci + 2; - cs[0] = ci; cs[1] = ci + 3; - break; - case 1: - tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15]; - ps[12] = pi + 5; ps[13] = pi + 4; ps[14] = pi + 3; ps[15] = pi + 2; - ps[ 8] = pi + 6; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 1; - ps[ 4] = pi + 7; /* calculated below */ ps[ 7] = pi; - ps[ 0] = tmp1; ps[ 1] = tmp2; ps[ 2] = tmp3; ps[ 3] = tmp4; - tmp1 = cs[2]; tmp2 = cs[3]; - cs[2] = ci + 1; cs[3] = ci; - cs[0] = tmp1; cs[1] = tmp2; - break; - case 2: - ps[12] = ps[15]; ps[13] = pi + 7; ps[14] = pi + 6; ps[15] = pi + 5; - ps[ 8] = ps[11]; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 4; - ps[ 4] = ps[7]; /* calculated below */ ps[ 7] = pi + 3; - ps[ 0] = ps[3]; ps[ 1] = pi; ps[ 2] = pi + 1; ps[ 3] = pi + 2; - cs[2] = cs[3]; cs[3] = ci + 1; - cs[0] = cs[1]; cs[1] = ci; - break; - case 3: - ps[12] = ps[0]; ps[13] = ps[1]; ps[14] = ps[2]; ps[15] = ps[3]; - ps[ 8] = pi; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 7; - ps[ 4] = pi + 1; /* calculated below */ ps[ 7] = pi + 6; - ps[ 0] = pi + 2; ps[ 1] = pi + 3; ps[ 2] = pi + 4; ps[ 3] = pi + 5; - cs[2] = cs[0]; cs[3] = cs[1]; - cs[0] = ci; cs[1] = ci + 1; - break; - } - // set p11, p12, p21, p22 - ps[5] = coords.length; - coords.push([ - (-4 * coords[ps[0]][0] - coords[ps[15]][0] + - 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + - 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, - (-4 * coords[ps[0]][1] - coords[ps[15]][1] + - 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + - 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9 - ]); - ps[6] = coords.length; - coords.push([ - (-4 * coords[ps[3]][0] - coords[ps[12]][0] + - 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + - 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, - (-4 * coords[ps[3]][1] - coords[ps[12]][1] + - 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + - 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9 - ]); - ps[9] = coords.length; - coords.push([ - (-4 * coords[ps[12]][0] - coords[ps[3]][0] + - 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + - 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, - (-4 * coords[ps[12]][1] - coords[ps[3]][1] + - 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + - 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9 - ]); - ps[10] = coords.length; - coords.push([ - (-4 * coords[ps[15]][0] - coords[ps[0]][0] + - 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + - 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, - (-4 * coords[ps[15]][1] - coords[ps[0]][1] + - 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + - 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9 - ]); - mesh.figures.push({ - type: 'patch', - coords: new Int32Array(ps), // making copies of ps and cs - colors: new Int32Array(cs) - }); - } - } - - function decodeType7Shading(mesh, reader) { - var coords = mesh.coords; - var colors = mesh.colors; - var ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33 - var cs = new Int32Array(4); // c00, c30, c03, c33 - while (reader.hasData) { - var f = reader.readFlag(); - assert(0 <= f && f <= 3, 'Unknown type7 flag'); - var i, ii; - var pi = coords.length; - for (i = 0, ii = (f !== 0 ? 12 : 16); i < ii; i++) { - coords.push(reader.readCoordinate()); - } - var ci = colors.length; - for (i = 0, ii = (f !== 0 ? 2 : 4); i < ii; i++) { - colors.push(reader.readComponents()); - } - var tmp1, tmp2, tmp3, tmp4; - switch (f) { - case 0: - ps[12] = pi + 3; ps[13] = pi + 4; ps[14] = pi + 5; ps[15] = pi + 6; - ps[ 8] = pi + 2; ps[ 9] = pi + 13; ps[10] = pi + 14; ps[11] = pi + 7; - ps[ 4] = pi + 1; ps[ 5] = pi + 12; ps[ 6] = pi + 15; ps[ 7] = pi + 8; - ps[ 0] = pi; ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9; - cs[2] = ci + 1; cs[3] = ci + 2; - cs[0] = ci; cs[1] = ci + 3; - break; - case 1: - tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15]; - ps[12] = pi + 5; ps[13] = pi + 4; ps[14] = pi + 3; ps[15] = pi + 2; - ps[ 8] = pi + 6; ps[ 9] = pi + 11; ps[10] = pi + 10; ps[11] = pi + 1; - ps[ 4] = pi + 7; ps[ 5] = pi + 8; ps[ 6] = pi + 9; ps[ 7] = pi; - ps[ 0] = tmp1; ps[ 1] = tmp2; ps[ 2] = tmp3; ps[ 3] = tmp4; - tmp1 = cs[2]; tmp2 = cs[3]; - cs[2] = ci + 1; cs[3] = ci; - cs[0] = tmp1; cs[1] = tmp2; - break; - case 2: - ps[12] = ps[15]; ps[13] = pi + 7; ps[14] = pi + 6; ps[15] = pi + 5; - ps[ 8] = ps[11]; ps[ 9] = pi + 8; ps[10] = pi + 11; ps[11] = pi + 4; - ps[ 4] = ps[7]; ps[ 5] = pi + 9; ps[ 6] = pi + 10; ps[ 7] = pi + 3; - ps[ 0] = ps[3]; ps[ 1] = pi; ps[ 2] = pi + 1; ps[ 3] = pi + 2; - cs[2] = cs[3]; cs[3] = ci + 1; - cs[0] = cs[1]; cs[1] = ci; - break; - case 3: - ps[12] = ps[0]; ps[13] = ps[1]; ps[14] = ps[2]; ps[15] = ps[3]; - ps[ 8] = pi; ps[ 9] = pi + 9; ps[10] = pi + 8; ps[11] = pi + 7; - ps[ 4] = pi + 1; ps[ 5] = pi + 10; ps[ 6] = pi + 11; ps[ 7] = pi + 6; - ps[ 0] = pi + 2; ps[ 1] = pi + 3; ps[ 2] = pi + 4; ps[ 3] = pi + 5; - cs[2] = cs[0]; cs[3] = cs[1]; - cs[0] = ci; cs[1] = ci + 1; - break; - } - mesh.figures.push({ - type: 'patch', - coords: new Int32Array(ps), // making copies of ps and cs - colors: new Int32Array(cs) - }); - } - } - - function updateBounds(mesh) { - var minX = mesh.coords[0][0], minY = mesh.coords[0][1], - maxX = minX, maxY = minY; - for (var i = 1, ii = mesh.coords.length; i < ii; i++) { - var x = mesh.coords[i][0], y = mesh.coords[i][1]; - minX = minX > x ? x : minX; - minY = minY > y ? y : minY; - maxX = maxX < x ? x : maxX; - maxY = maxY < y ? y : maxY; - } - mesh.bounds = [minX, minY, maxX, maxY]; - } - - function packData(mesh) { - var i, ii, j, jj; - - var coords = mesh.coords; - var coordsPacked = new Float32Array(coords.length * 2); - for (i = 0, j = 0, ii = coords.length; i < ii; i++) { - var xy = coords[i]; - coordsPacked[j++] = xy[0]; - coordsPacked[j++] = xy[1]; - } - mesh.coords = coordsPacked; - - var colors = mesh.colors; - var colorsPacked = new Uint8Array(colors.length * 3); - for (i = 0, j = 0, ii = colors.length; i < ii; i++) { - var c = colors[i]; - colorsPacked[j++] = c[0]; - colorsPacked[j++] = c[1]; - colorsPacked[j++] = c[2]; - } - mesh.colors = colorsPacked; - - var figures = mesh.figures; - for (i = 0, ii = figures.length; i < ii; i++) { - var figure = figures[i], ps = figure.coords, cs = figure.colors; - for (j = 0, jj = ps.length; j < jj; j++) { - ps[j] *= 2; - cs[j] *= 3; - } - } - } - - function Mesh(stream, matrix, xref, res) { - assert(isStream(stream), 'Mesh data is not a stream'); - var dict = stream.dict; - this.matrix = matrix; - this.shadingType = dict.get('ShadingType'); - this.type = 'Pattern'; - this.bbox = dict.get('BBox'); - var cs = dict.get('ColorSpace', 'CS'); - cs = ColorSpace.parse(cs, xref, res); - this.cs = cs; - this.background = dict.has('Background') ? - cs.getRgb(dict.get('Background'), 0) : null; - - var fnObj = dict.get('Function'); - var fn = fnObj ? PDFFunction.parseArray(xref, fnObj) : null; - - this.coords = []; - this.colors = []; - this.figures = []; - - var decodeContext = { - bitsPerCoordinate: dict.get('BitsPerCoordinate'), - bitsPerComponent: dict.get('BitsPerComponent'), - bitsPerFlag: dict.get('BitsPerFlag'), - decode: dict.get('Decode'), - colorFn: fn, - colorSpace: cs, - numComps: fn ? 1 : cs.numComps - }; - var reader = new MeshStreamReader(stream, decodeContext); - - var patchMesh = false; - switch (this.shadingType) { - case PatternType.FREE_FORM_MESH: - decodeType4Shading(this, reader); - break; - case PatternType.LATTICE_FORM_MESH: - var verticesPerRow = dict.get('VerticesPerRow') | 0; - assert(verticesPerRow >= 2, 'Invalid VerticesPerRow'); - decodeType5Shading(this, reader, verticesPerRow); - break; - case PatternType.COONS_PATCH_MESH: - decodeType6Shading(this, reader); - patchMesh = true; - break; - case PatternType.TENSOR_PATCH_MESH: - decodeType7Shading(this, reader); - patchMesh = true; - break; - default: - error('Unsupported mesh type.'); - break; - } - - if (patchMesh) { - // dirty bounds calculation for determining, how dense shall be triangles - updateBounds(this); - for (var i = 0, ii = this.figures.length; i < ii; i++) { - buildFigureFromPatch(this, i); - } - } - // calculate bounds - updateBounds(this); - - packData(this); - } - - Mesh.prototype = { - getIR: function Mesh_getIR() { - return ['Mesh', this.shadingType, this.coords, this.colors, this.figures, - this.bounds, this.matrix, this.bbox, this.background]; - } - }; - - return Mesh; -})(); - -Shadings.Dummy = (function DummyClosure() { - function Dummy() { - this.type = 'Pattern'; - } - - Dummy.prototype = { - getIR: function Dummy_getIR() { - return ['Dummy']; - } - }; - return Dummy; -})(); - -function getTilingPatternIR(operatorList, dict, args) { - var matrix = dict.get('Matrix'); - var bbox = dict.get('BBox'); - var xstep = dict.get('XStep'); - var ystep = dict.get('YStep'); - var paintType = dict.get('PaintType'); - var tilingType = dict.get('TilingType'); - - return [ - 'TilingPattern', args, operatorList, matrix, bbox, xstep, ystep, - paintType, tilingType - ]; -} - - -var PartialEvaluator = (function PartialEvaluatorClosure() { - function PartialEvaluator(pdfManager, xref, handler, pageIndex, - uniquePrefix, idCounters, fontCache) { - this.pdfManager = pdfManager; - this.xref = xref; - this.handler = handler; - this.pageIndex = pageIndex; - this.uniquePrefix = uniquePrefix; - this.idCounters = idCounters; - this.fontCache = fontCache; - } - - // Trying to minimize Date.now() usage and check every 100 time - var TIME_SLOT_DURATION_MS = 20; - var CHECK_TIME_EVERY = 100; - function TimeSlotManager() { - this.reset(); - } - TimeSlotManager.prototype = { - check: function TimeSlotManager_check() { - if (++this.checked < CHECK_TIME_EVERY) { - return false; - } - this.checked = 0; - return this.endTime <= Date.now(); - }, - reset: function TimeSlotManager_reset() { - this.endTime = Date.now() + TIME_SLOT_DURATION_MS; - this.checked = 0; - } - }; - - var deferred = Promise.resolve(); - - var TILING_PATTERN = 1, SHADING_PATTERN = 2; - - PartialEvaluator.prototype = { - hasBlendModes: function PartialEvaluator_hasBlendModes(resources) { - if (!isDict(resources)) { - return false; - } - - var processed = Object.create(null); - if (resources.objId) { - processed[resources.objId] = true; - } - - var nodes = [resources]; - while (nodes.length) { - var key; - var node = nodes.shift(); - // First check the current resources for blend modes. - var graphicStates = node.get('ExtGState'); - if (isDict(graphicStates)) { - graphicStates = graphicStates.getAll(); - for (key in graphicStates) { - var graphicState = graphicStates[key]; - var bm = graphicState['BM']; - if (isName(bm) && bm.name !== 'Normal') { - return true; - } - } - } - // Descend into the XObjects to look for more resources and blend modes. - var xObjects = node.get('XObject'); - if (!isDict(xObjects)) { - continue; - } - xObjects = xObjects.getAll(); - for (key in xObjects) { - var xObject = xObjects[key]; - if (!isStream(xObject)) { - continue; - } - if (xObject.dict.objId) { - if (processed[xObject.dict.objId]) { - // stream has objId and is processed already - continue; - } - processed[xObject.dict.objId] = true; - } - var xResources = xObject.dict.get('Resources'); - // Checking objId to detect an infinite loop. - if (isDict(xResources) && - (!xResources.objId || !processed[xResources.objId])) { - nodes.push(xResources); - if (xResources.objId) { - processed[xResources.objId] = true; - } - } - } - } - return false; - }, - - buildFormXObject: function PartialEvaluator_buildFormXObject(resources, - xobj, smask, - operatorList, - initialState) { - var matrix = xobj.dict.get('Matrix'); - var bbox = xobj.dict.get('BBox'); - var group = xobj.dict.get('Group'); - if (group) { - var groupOptions = { - matrix: matrix, - bbox: bbox, - smask: smask, - isolated: false, - knockout: false - }; - - var groupSubtype = group.get('S'); - var colorSpace; - if (isName(groupSubtype) && groupSubtype.name === 'Transparency') { - groupOptions.isolated = (group.get('I') || false); - groupOptions.knockout = (group.get('K') || false); - colorSpace = (group.has('CS') ? - ColorSpace.parse(group.get('CS'), this.xref, resources) : null); - } - - if (smask && smask.backdrop) { - colorSpace = colorSpace || ColorSpace.singletons.rgb; - smask.backdrop = colorSpace.getRgb(smask.backdrop, 0); - } - - operatorList.addOp(OPS.beginGroup, [groupOptions]); - } - - operatorList.addOp(OPS.paintFormXObjectBegin, [matrix, bbox]); - - return this.getOperatorList(xobj, - (xobj.dict.get('Resources') || resources), operatorList, initialState). - then(function () { - operatorList.addOp(OPS.paintFormXObjectEnd, []); - - if (group) { - operatorList.addOp(OPS.endGroup, [groupOptions]); - } - }); - }, - - buildPaintImageXObject: - function PartialEvaluator_buildPaintImageXObject(resources, image, - inline, operatorList, - cacheKey, imageCache) { - var self = this; - var dict = image.dict; - var w = dict.get('Width', 'W'); - var h = dict.get('Height', 'H'); - - if (!(w && isNum(w)) || !(h && isNum(h))) { - warn('Image dimensions are missing, or not numbers.'); - return; - } - if (PDFJS.maxImageSize !== -1 && w * h > PDFJS.maxImageSize) { - warn('Image exceeded maximum allowed size and was removed.'); - return; - } - - var imageMask = (dict.get('ImageMask', 'IM') || false); - var imgData, args; - if (imageMask) { - // This depends on a tmpCanvas being filled with the - // current fillStyle, such that processing the pixel - // data can't be done here. Instead of creating a - // complete PDFImage, only read the information needed - // for later. - - var width = dict.get('Width', 'W'); - var height = dict.get('Height', 'H'); - var bitStrideLength = (width + 7) >> 3; - var imgArray = image.getBytes(bitStrideLength * height); - var decode = dict.get('Decode', 'D'); - var inverseDecode = (!!decode && decode[0] > 0); - - imgData = PDFImage.createMask(imgArray, width, height, - image instanceof DecodeStream, - inverseDecode); - imgData.cached = true; - args = [imgData]; - operatorList.addOp(OPS.paintImageMaskXObject, args); - if (cacheKey) { - imageCache[cacheKey] = { - fn: OPS.paintImageMaskXObject, - args: args - }; - } - return; - } - - var softMask = (dict.get('SMask', 'SM') || false); - var mask = (dict.get('Mask') || false); - - var SMALL_IMAGE_DIMENSIONS = 200; - // Inlining small images into the queue as RGB data - if (inline && !softMask && !mask && !(image instanceof JpegStream) && - (w + h) < SMALL_IMAGE_DIMENSIONS) { - var imageObj = new PDFImage(this.xref, resources, image, - inline, null, null); - // We force the use of RGBA_32BPP images here, because we can't handle - // any other kind. - imgData = imageObj.createImageData(/* forceRGBA = */ true); - operatorList.addOp(OPS.paintInlineImageXObject, [imgData]); - return; - } - - // If there is no imageMask, create the PDFImage and a lot - // of image processing can be done here. - var uniquePrefix = (this.uniquePrefix || ''); - var objId = 'img_' + uniquePrefix + (++this.idCounters.obj); - operatorList.addDependency(objId); - args = [objId, w, h]; - - if (!softMask && !mask && image instanceof JpegStream && - image.isNativelySupported(this.xref, resources)) { - // These JPEGs don't need any more processing so we can just send it. - operatorList.addOp(OPS.paintJpegXObject, args); - this.handler.send('obj', - [objId, this.pageIndex, 'JpegStream', image.getIR()]); - return; - } - - PDFImage.buildImage(self.handler, self.xref, resources, image, inline). - then(function(imageObj) { - var imgData = imageObj.createImageData(/* forceRGBA = */ false); - self.handler.send('obj', [objId, self.pageIndex, 'Image', imgData], - [imgData.data.buffer]); - }).then(undefined, function (reason) { - warn('Unable to decode image: ' + reason); - self.handler.send('obj', [objId, self.pageIndex, 'Image', null]); - }); - - operatorList.addOp(OPS.paintImageXObject, args); - if (cacheKey) { - imageCache[cacheKey] = { - fn: OPS.paintImageXObject, - args: args - }; - } - }, - - handleSMask: function PartialEvaluator_handleSmask(smask, resources, - operatorList, - stateManager) { - var smaskContent = smask.get('G'); - var smaskOptions = { - subtype: smask.get('S').name, - backdrop: smask.get('BC') - }; - return this.buildFormXObject(resources, smaskContent, smaskOptions, - operatorList, stateManager.state.clone()); - }, - - handleTilingType: - function PartialEvaluator_handleTilingType(fn, args, resources, - pattern, patternDict, - operatorList) { - // Create an IR of the pattern code. - var tilingOpList = new OperatorList(); - return this.getOperatorList(pattern, - (patternDict.get('Resources') || resources), tilingOpList). - then(function () { - // Add the dependencies to the parent operator list so they are - // resolved before sub operator list is executed synchronously. - operatorList.addDependencies(tilingOpList.dependencies); - operatorList.addOp(fn, getTilingPatternIR({ - fnArray: tilingOpList.fnArray, - argsArray: tilingOpList.argsArray - }, patternDict, args)); - }); - }, - - handleSetFont: - function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, - operatorList, state) { - // TODO(mack): Not needed? - var fontName; - if (fontArgs) { - fontArgs = fontArgs.slice(); - fontName = fontArgs[0].name; - } - - var self = this; - return this.loadFont(fontName, fontRef, this.xref, resources).then( - function (translated) { - if (!translated.font.isType3Font) { - return translated; - } - return translated.loadType3Data(self, resources, operatorList).then( - function () { - return translated; - }); - }).then(function (translated) { - state.font = translated.font; - translated.send(self.handler); - return translated.loadedName; - }); - }, - - handleText: function PartialEvaluator_handleText(chars, state) { - var font = state.font; - var glyphs = font.charsToGlyphs(chars); - var isAddToPathSet = !!(state.textRenderingMode & - TextRenderingMode.ADD_TO_PATH_FLAG); - if (font.data && (isAddToPathSet || PDFJS.disableFontFace)) { - var buildPath = function (fontChar) { - if (!font.renderer.hasBuiltPath(fontChar)) { - var path = font.renderer.getPathJs(fontChar); - this.handler.send('commonobj', [ - font.loadedName + '_path_' + fontChar, - 'FontPath', - path - ]); - } - }.bind(this); - - for (var i = 0, ii = glyphs.length; i < ii; i++) { - var glyph = glyphs[i]; - if (glyph === null) { - continue; - } - buildPath(glyph.fontChar); - - // If the glyph has an accent we need to build a path for its - // fontChar too, otherwise CanvasGraphics_paintChar will fail. - var accent = glyph.accent; - if (accent && accent.fontChar) { - buildPath(accent.fontChar); - } - } - } - - return glyphs; - }, - - setGState: function PartialEvaluator_setGState(resources, gState, - operatorList, xref, - stateManager) { - // This array holds the converted/processed state data. - var gStateObj = []; - var gStateMap = gState.map; - var self = this; - var promise = Promise.resolve(); - for (var key in gStateMap) { - var value = gStateMap[key]; - switch (key) { - case 'Type': - break; - case 'LW': - case 'LC': - case 'LJ': - case 'ML': - case 'D': - case 'RI': - case 'FL': - case 'CA': - case 'ca': - gStateObj.push([key, value]); - break; - case 'Font': - promise = promise.then(function () { - return self.handleSetFont(resources, null, value[0], - operatorList, stateManager.state). - then(function (loadedName) { - operatorList.addDependency(loadedName); - gStateObj.push([key, [loadedName, value[1]]]); - }); - }); - break; - case 'BM': - gStateObj.push([key, value]); - break; - case 'SMask': - if (isName(value) && value.name === 'None') { - gStateObj.push([key, false]); - break; - } - var dict = xref.fetchIfRef(value); - if (isDict(dict)) { - promise = promise.then(function () { - return self.handleSMask(dict, resources, operatorList, - stateManager); - }); - gStateObj.push([key, true]); - } else { - warn('Unsupported SMask type'); - } - - break; - // Only generate info log messages for the following since - // they are unlikely to have a big impact on the rendering. - case 'OP': - case 'op': - case 'OPM': - case 'BG': - case 'BG2': - case 'UCR': - case 'UCR2': - case 'TR': - case 'TR2': - case 'HT': - case 'SM': - case 'SA': - case 'AIS': - case 'TK': - // TODO implement these operators. - info('graphic state operator ' + key); - break; - default: - info('Unknown graphic state operator ' + key); - break; - } - } - return promise.then(function () { - if (gStateObj.length >= 0) { - operatorList.addOp(OPS.setGState, [gStateObj]); - } - }); - }, - - loadFont: function PartialEvaluator_loadFont(fontName, font, xref, - resources) { - - function errorFont() { - return Promise.resolve(new TranslatedFont('g_font_error', - new ErrorFont('Font ' + fontName + ' is not available'), font)); - } - var fontRef; - if (font) { // Loading by ref. - assert(isRef(font)); - fontRef = font; - } else { // Loading by name. - var fontRes = resources.get('Font'); - if (fontRes) { - fontRef = fontRes.getRaw(fontName); - } else { - warn('fontRes not available'); - return errorFont(); - } - } - if (!fontRef) { - warn('fontRef not available'); - return errorFont(); - } - - if (this.fontCache.has(fontRef)) { - return this.fontCache.get(fontRef); - } - - font = xref.fetchIfRef(fontRef); - if (!isDict(font)) { - return errorFont(); - } - - // We are holding font.translated references just for fontRef that are not - // dictionaries (Dict). See explanation below. - if (font.translated) { - return font.translated; - } - - var fontCapability = createPromiseCapability(); - - var preEvaluatedFont = this.preEvaluateFont(font, xref); - var descriptor = preEvaluatedFont.descriptor; - var fontID = fontRef.num + '_' + fontRef.gen; - if (isDict(descriptor)) { - if (!descriptor.fontAliases) { - descriptor.fontAliases = Object.create(null); - } - - var fontAliases = descriptor.fontAliases; - var hash = preEvaluatedFont.hash; - if (fontAliases[hash]) { - var aliasFontRef = fontAliases[hash].aliasRef; - if (aliasFontRef && this.fontCache.has(aliasFontRef)) { - this.fontCache.putAlias(fontRef, aliasFontRef); - return this.fontCache.get(fontRef); - } - } - - if (!fontAliases[hash]) { - fontAliases[hash] = { - fontID: Font.getFontID() - }; - } - - fontAliases[hash].aliasRef = fontRef; - fontID = fontAliases[hash].fontID; - } - - // Workaround for bad PDF generators that don't reference fonts - // properly, i.e. by not using an object identifier. - // Check if the fontRef is a Dict (as opposed to a standard object), - // in which case we don't cache the font and instead reference it by - // fontName in font.loadedName below. - var fontRefIsDict = isDict(fontRef); - if (!fontRefIsDict) { - this.fontCache.put(fontRef, fontCapability.promise); - } - - // Keep track of each font we translated so the caller can - // load them asynchronously before calling display on a page. - font.loadedName = 'g_font_' + (fontRefIsDict ? - fontName.replace(/\W/g, '') : fontID); - - font.translated = fontCapability.promise; - - // TODO move promises into translate font - var translatedPromise; - try { - translatedPromise = Promise.resolve( - this.translateFont(preEvaluatedFont, xref)); - } catch (e) { - translatedPromise = Promise.reject(e); - } - - translatedPromise.then(function (translatedFont) { - if (translatedFont.fontType !== undefined) { - var xrefFontStats = xref.stats.fontTypes; - xrefFontStats[translatedFont.fontType] = true; - } - - fontCapability.resolve(new TranslatedFont(font.loadedName, - translatedFont, font)); - }, function (reason) { - // TODO fontCapability.reject? - UnsupportedManager.notify(UNSUPPORTED_FEATURES.font); - - try { - // error, but it's still nice to have font type reported - var descriptor = preEvaluatedFont.descriptor; - var fontFile3 = descriptor && descriptor.get('FontFile3'); - var subtype = fontFile3 && fontFile3.get('Subtype'); - var fontType = getFontType(preEvaluatedFont.type, - subtype && subtype.name); - var xrefFontStats = xref.stats.fontTypes; - xrefFontStats[fontType] = true; - } catch (ex) { } - - fontCapability.resolve(new TranslatedFont(font.loadedName, - new ErrorFont(reason instanceof Error ? reason.message : reason), - font)); - }); - return fontCapability.promise; - }, - - buildPath: function PartialEvaluator_buildPath(operatorList, fn, args) { - var lastIndex = operatorList.length - 1; - if (!args) { - args = []; - } - if (lastIndex < 0 || - operatorList.fnArray[lastIndex] !== OPS.constructPath) { - operatorList.addOp(OPS.constructPath, [[fn], args]); - } else { - var opArgs = operatorList.argsArray[lastIndex]; - opArgs[0].push(fn); - Array.prototype.push.apply(opArgs[1], args); - } - }, - - handleColorN: function PartialEvaluator_handleColorN(operatorList, fn, args, - cs, patterns, resources, xref) { - // compile tiling patterns - var patternName = args[args.length - 1]; - // SCN/scn applies patterns along with normal colors - var pattern; - if (isName(patternName) && - (pattern = patterns.get(patternName.name))) { - var dict = (isStream(pattern) ? pattern.dict : pattern); - var typeNum = dict.get('PatternType'); - - if (typeNum === TILING_PATTERN) { - var color = cs.base ? cs.base.getRgb(args, 0) : null; - return this.handleTilingType(fn, color, resources, pattern, - dict, operatorList); - } else if (typeNum === SHADING_PATTERN) { - var shading = dict.get('Shading'); - var matrix = dict.get('Matrix'); - pattern = Pattern.parseShading(shading, matrix, xref, resources); - operatorList.addOp(fn, pattern.getIR()); - return Promise.resolve(); - } else { - return Promise.reject('Unknown PatternType: ' + typeNum); - } - } - // TODO shall we fail here? - operatorList.addOp(fn, args); - return Promise.resolve(); - }, - - getOperatorList: function PartialEvaluator_getOperatorList(stream, - resources, - operatorList, - initialState) { - - var self = this; - var xref = this.xref; - var imageCache = {}; - - assert(operatorList); - - resources = (resources || Dict.empty); - var xobjs = (resources.get('XObject') || Dict.empty); - var patterns = (resources.get('Pattern') || Dict.empty); - var stateManager = new StateManager(initialState || new EvalState()); - var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); - var timeSlotManager = new TimeSlotManager(); - - return new Promise(function next(resolve, reject) { - timeSlotManager.reset(); - var stop, operation = {}, i, ii, cs; - while (!(stop = timeSlotManager.check())) { - // The arguments parsed by read() are used beyond this loop, so we - // cannot reuse the same array on each iteration. Therefore we pass - // in |null| as the initial value (see the comment on - // EvaluatorPreprocessor_read() for why). - operation.args = null; - if (!(preprocessor.read(operation))) { - break; - } - var args = operation.args; - var fn = operation.fn; - - switch (fn | 0) { - case OPS.paintXObject: - if (args[0].code) { - break; - } - // eagerly compile XForm objects - var name = args[0].name; - if (imageCache[name] !== undefined) { - operatorList.addOp(imageCache[name].fn, imageCache[name].args); - args = null; - continue; - } - - var xobj = xobjs.get(name); - if (xobj) { - assert(isStream(xobj), 'XObject should be a stream'); - - var type = xobj.dict.get('Subtype'); - assert(isName(type), - 'XObject should have a Name subtype'); - - if (type.name === 'Form') { - stateManager.save(); - return self.buildFormXObject(resources, xobj, null, - operatorList, - stateManager.state.clone()). - then(function () { - stateManager.restore(); - next(resolve, reject); - }, reject); - } else if (type.name === 'Image') { - self.buildPaintImageXObject(resources, xobj, false, - operatorList, name, imageCache); - args = null; - continue; - } else if (type.name === 'PS') { - // PostScript XObjects are unused when viewing documents. - // See section 4.7.1 of Adobe's PDF reference. - info('Ignored XObject subtype PS'); - continue; - } else { - error('Unhandled XObject subtype ' + type.name); - } - } - break; - case OPS.setFont: - var fontSize = args[1]; - // eagerly collect all fonts - return self.handleSetFont(resources, args, null, - operatorList, stateManager.state). - then(function (loadedName) { - operatorList.addDependency(loadedName); - operatorList.addOp(OPS.setFont, [loadedName, fontSize]); - next(resolve, reject); - }, reject); - case OPS.endInlineImage: - var cacheKey = args[0].cacheKey; - if (cacheKey) { - var cacheEntry = imageCache[cacheKey]; - if (cacheEntry !== undefined) { - operatorList.addOp(cacheEntry.fn, cacheEntry.args); - args = null; - continue; - } - } - self.buildPaintImageXObject(resources, args[0], true, - operatorList, cacheKey, imageCache); - args = null; - continue; - case OPS.showText: - args[0] = self.handleText(args[0], stateManager.state); - break; - case OPS.showSpacedText: - var arr = args[0]; - var combinedGlyphs = []; - var arrLength = arr.length; - for (i = 0; i < arrLength; ++i) { - var arrItem = arr[i]; - if (isString(arrItem)) { - Array.prototype.push.apply(combinedGlyphs, - self.handleText(arrItem, stateManager.state)); - } else if (isNum(arrItem)) { - combinedGlyphs.push(arrItem); - } - } - args[0] = combinedGlyphs; - fn = OPS.showText; - break; - case OPS.nextLineShowText: - operatorList.addOp(OPS.nextLine); - args[0] = self.handleText(args[0], stateManager.state); - fn = OPS.showText; - break; - case OPS.nextLineSetSpacingShowText: - operatorList.addOp(OPS.nextLine); - operatorList.addOp(OPS.setWordSpacing, [args.shift()]); - operatorList.addOp(OPS.setCharSpacing, [args.shift()]); - args[0] = self.handleText(args[0], stateManager.state); - fn = OPS.showText; - break; - case OPS.setTextRenderingMode: - stateManager.state.textRenderingMode = args[0]; - break; - - case OPS.setFillColorSpace: - stateManager.state.fillColorSpace = - ColorSpace.parse(args[0], xref, resources); - continue; - case OPS.setStrokeColorSpace: - stateManager.state.strokeColorSpace = - ColorSpace.parse(args[0], xref, resources); - continue; - case OPS.setFillColor: - cs = stateManager.state.fillColorSpace; - args = cs.getRgb(args, 0); - fn = OPS.setFillRGBColor; - break; - case OPS.setStrokeColor: - cs = stateManager.state.strokeColorSpace; - args = cs.getRgb(args, 0); - fn = OPS.setStrokeRGBColor; - break; - case OPS.setFillGray: - stateManager.state.fillColorSpace = ColorSpace.singletons.gray; - args = ColorSpace.singletons.gray.getRgb(args, 0); - fn = OPS.setFillRGBColor; - break; - case OPS.setStrokeGray: - stateManager.state.strokeColorSpace = ColorSpace.singletons.gray; - args = ColorSpace.singletons.gray.getRgb(args, 0); - fn = OPS.setStrokeRGBColor; - break; - case OPS.setFillCMYKColor: - stateManager.state.fillColorSpace = ColorSpace.singletons.cmyk; - args = ColorSpace.singletons.cmyk.getRgb(args, 0); - fn = OPS.setFillRGBColor; - break; - case OPS.setStrokeCMYKColor: - stateManager.state.strokeColorSpace = ColorSpace.singletons.cmyk; - args = ColorSpace.singletons.cmyk.getRgb(args, 0); - fn = OPS.setStrokeRGBColor; - break; - case OPS.setFillRGBColor: - stateManager.state.fillColorSpace = ColorSpace.singletons.rgb; - args = ColorSpace.singletons.rgb.getRgb(args, 0); - break; - case OPS.setStrokeRGBColor: - stateManager.state.strokeColorSpace = ColorSpace.singletons.rgb; - args = ColorSpace.singletons.rgb.getRgb(args, 0); - break; - case OPS.setFillColorN: - cs = stateManager.state.fillColorSpace; - if (cs.name === 'Pattern') { - return self.handleColorN(operatorList, OPS.setFillColorN, - args, cs, patterns, resources, xref).then(function() { - next(resolve, reject); - }, reject); - } - args = cs.getRgb(args, 0); - fn = OPS.setFillRGBColor; - break; - case OPS.setStrokeColorN: - cs = stateManager.state.strokeColorSpace; - if (cs.name === 'Pattern') { - return self.handleColorN(operatorList, OPS.setStrokeColorN, - args, cs, patterns, resources, xref).then(function() { - next(resolve, reject); - }, reject); - } - args = cs.getRgb(args, 0); - fn = OPS.setStrokeRGBColor; - break; - - case OPS.shadingFill: - var shadingRes = resources.get('Shading'); - if (!shadingRes) { - error('No shading resource found'); - } - - var shading = shadingRes.get(args[0].name); - if (!shading) { - error('No shading object found'); - } - - var shadingFill = Pattern.parseShading(shading, null, xref, - resources); - var patternIR = shadingFill.getIR(); - args = [patternIR]; - fn = OPS.shadingFill; - break; - case OPS.setGState: - var dictName = args[0]; - var extGState = resources.get('ExtGState'); - - if (!isDict(extGState) || !extGState.has(dictName.name)) { - break; - } - - var gState = extGState.get(dictName.name); - return self.setGState(resources, gState, operatorList, xref, - stateManager).then(function() { - next(resolve, reject); - }, reject); - case OPS.moveTo: - case OPS.lineTo: - case OPS.curveTo: - case OPS.curveTo2: - case OPS.curveTo3: - case OPS.closePath: - self.buildPath(operatorList, fn, args); - continue; - case OPS.rectangle: - self.buildPath(operatorList, fn, args); - continue; - } - operatorList.addOp(fn, args); - } - if (stop) { - deferred.then(function () { - next(resolve, reject); - }); - return; - } - // Some PDFs don't close all restores inside object/form. - // Closing those for them. - for (i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) { - operatorList.addOp(OPS.restore, []); - } - resolve(); - }); - }, - - getTextContent: function PartialEvaluator_getTextContent(stream, resources, - stateManager) { - - stateManager = (stateManager || new StateManager(new TextState())); - - var textContent = { - items: [], - styles: Object.create(null) - }; - var bidiTexts = textContent.items; - var SPACE_FACTOR = 0.3; - var MULTI_SPACE_FACTOR = 1.5; - - var self = this; - var xref = this.xref; - - resources = (xref.fetchIfRef(resources) || Dict.empty); - - // The xobj is parsed iff it's needed, e.g. if there is a `DO` cmd. - var xobjs = null; - var xobjsCache = {}; - - var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); - - var textState; - - function newTextChunk() { - var font = textState.font; - if (!(font.loadedName in textContent.styles)) { - textContent.styles[font.loadedName] = { - fontFamily: font.fallbackName, - ascent: font.ascent, - descent: font.descent, - vertical: font.vertical - }; - } - return { - // |str| is initially an array which we push individual chars to, and - // then runBidi() overwrites it with the final string. - str: [], - dir: null, - width: 0, - height: 0, - transform: null, - fontName: font.loadedName - }; - } - - function runBidi(textChunk) { - var str = textChunk.str.join(''); - var bidiResult = PDFJS.bidi(str, -1, textState.font.vertical); - textChunk.str = bidiResult.str; - textChunk.dir = bidiResult.dir; - return textChunk; - } - - function handleSetFont(fontName, fontRef) { - return self.loadFont(fontName, fontRef, xref, resources). - then(function (translated) { - textState.font = translated.font; - textState.fontMatrix = translated.font.fontMatrix || - FONT_IDENTITY_MATRIX; - }); - } - - function buildTextGeometry(chars, textChunk) { - var font = textState.font; - textChunk = textChunk || newTextChunk(); - if (!textChunk.transform) { - // 9.4.4 Text Space Details - var tsm = [textState.fontSize * textState.textHScale, 0, - 0, textState.fontSize, - 0, textState.textRise]; - - if (font.isType3Font && - textState.fontMatrix !== FONT_IDENTITY_MATRIX && - textState.fontSize === 1) { - var glyphHeight = font.bbox[3] - font.bbox[1]; - if (glyphHeight > 0) { - glyphHeight = glyphHeight * textState.fontMatrix[3]; - tsm[3] *= glyphHeight; - } - } - - var trm = textChunk.transform = Util.transform(textState.ctm, - Util.transform(textState.textMatrix, tsm)); - if (!font.vertical) { - textChunk.height = Math.sqrt(trm[2] * trm[2] + trm[3] * trm[3]); - } else { - textChunk.width = Math.sqrt(trm[0] * trm[0] + trm[1] * trm[1]); - } - } - var width = 0; - var height = 0; - var glyphs = font.charsToGlyphs(chars); - var defaultVMetrics = font.defaultVMetrics; - for (var i = 0; i < glyphs.length; i++) { - var glyph = glyphs[i]; - if (!glyph) { // Previous glyph was a space. - width += textState.wordSpacing * textState.textHScale; - continue; - } - var vMetricX = null; - var vMetricY = null; - var glyphWidth = null; - if (font.vertical) { - if (glyph.vmetric) { - glyphWidth = glyph.vmetric[0]; - vMetricX = glyph.vmetric[1]; - vMetricY = glyph.vmetric[2]; - } else { - glyphWidth = glyph.width; - vMetricX = glyph.width * 0.5; - vMetricY = defaultVMetrics[2]; - } - } else { - glyphWidth = glyph.width; - } - - var glyphUnicode = glyph.unicode; - if (NormalizedUnicodes[glyphUnicode] !== undefined) { - glyphUnicode = NormalizedUnicodes[glyphUnicode]; - } - glyphUnicode = reverseIfRtl(glyphUnicode); - - // The following will calculate the x and y of the individual glyphs. - // if (font.vertical) { - // tsm[4] -= vMetricX * Math.abs(textState.fontSize) * - // textState.fontMatrix[0]; - // tsm[5] -= vMetricY * textState.fontSize * - // textState.fontMatrix[0]; - // } - // var trm = Util.transform(textState.textMatrix, tsm); - // var pt = Util.applyTransform([trm[4], trm[5]], textState.ctm); - // var x = pt[0]; - // var y = pt[1]; - - var charSpacing = 0; - if (textChunk.str.length > 0) { - // Apply char spacing only when there are chars. - // As a result there is only spacing between glyphs. - charSpacing = textState.charSpacing; - } - - var tx = 0; - var ty = 0; - if (!font.vertical) { - var w0 = glyphWidth * textState.fontMatrix[0]; - tx = (w0 * textState.fontSize + charSpacing) * - textState.textHScale; - width += tx; - } else { - var w1 = glyphWidth * textState.fontMatrix[0]; - ty = w1 * textState.fontSize + charSpacing; - height += ty; - } - textState.translateTextMatrix(tx, ty); - - textChunk.str.push(glyphUnicode); - } - - var a = textState.textLineMatrix[0]; - var b = textState.textLineMatrix[1]; - var scaleLineX = Math.sqrt(a * a + b * b); - a = textState.ctm[0]; - b = textState.ctm[1]; - var scaleCtmX = Math.sqrt(a * a + b * b); - if (!font.vertical) { - textChunk.width += width * scaleCtmX * scaleLineX; - } else { - textChunk.height += Math.abs(height * scaleCtmX * scaleLineX); - } - return textChunk; - } - - var timeSlotManager = new TimeSlotManager(); - - return new Promise(function next(resolve, reject) { - timeSlotManager.reset(); - var stop, operation = {}, args = []; - while (!(stop = timeSlotManager.check())) { - // The arguments parsed by read() are not used beyond this loop, so - // we can reuse the same array on every iteration, thus avoiding - // unnecessary allocations. - args.length = 0; - operation.args = args; - if (!(preprocessor.read(operation))) { - break; - } - textState = stateManager.state; - var fn = operation.fn; - args = operation.args; - - switch (fn | 0) { - case OPS.setFont: - textState.fontSize = args[1]; - return handleSetFont(args[0].name).then(function() { - next(resolve, reject); - }, reject); - case OPS.setTextRise: - textState.textRise = args[0]; - break; - case OPS.setHScale: - textState.textHScale = args[0] / 100; - break; - case OPS.setLeading: - textState.leading = args[0]; - break; - case OPS.moveText: - textState.translateTextLineMatrix(args[0], args[1]); - textState.textMatrix = textState.textLineMatrix.slice(); - break; - case OPS.setLeadingMoveText: - textState.leading = -args[1]; - textState.translateTextLineMatrix(args[0], args[1]); - textState.textMatrix = textState.textLineMatrix.slice(); - break; - case OPS.nextLine: - textState.carriageReturn(); - break; - case OPS.setTextMatrix: - textState.setTextMatrix(args[0], args[1], args[2], args[3], - args[4], args[5]); - textState.setTextLineMatrix(args[0], args[1], args[2], args[3], - args[4], args[5]); - break; - case OPS.setCharSpacing: - textState.charSpacing = args[0]; - break; - case OPS.setWordSpacing: - textState.wordSpacing = args[0]; - break; - case OPS.beginText: - textState.textMatrix = IDENTITY_MATRIX.slice(); - textState.textLineMatrix = IDENTITY_MATRIX.slice(); - break; - case OPS.showSpacedText: - var items = args[0]; - var textChunk = newTextChunk(); - var offset; - for (var j = 0, jj = items.length; j < jj; j++) { - if (typeof items[j] === 'string') { - buildTextGeometry(items[j], textChunk); - } else { - var val = items[j] / 1000; - if (!textState.font.vertical) { - offset = -val * textState.fontSize * textState.textHScale * - textState.textMatrix[0]; - textState.translateTextMatrix(offset, 0); - textChunk.width += offset; - } else { - offset = -val * textState.fontSize * - textState.textMatrix[3]; - textState.translateTextMatrix(0, offset); - textChunk.height += offset; - } - if (items[j] < 0 && textState.font.spaceWidth > 0) { - var fakeSpaces = -items[j] / textState.font.spaceWidth; - if (fakeSpaces > MULTI_SPACE_FACTOR) { - fakeSpaces = Math.round(fakeSpaces); - while (fakeSpaces--) { - textChunk.str.push(' '); - } - } else if (fakeSpaces > SPACE_FACTOR) { - textChunk.str.push(' '); - } - } - } - } - bidiTexts.push(runBidi(textChunk)); - break; - case OPS.showText: - bidiTexts.push(runBidi(buildTextGeometry(args[0]))); - break; - case OPS.nextLineShowText: - textState.carriageReturn(); - bidiTexts.push(runBidi(buildTextGeometry(args[0]))); - break; - case OPS.nextLineSetSpacingShowText: - textState.wordSpacing = args[0]; - textState.charSpacing = args[1]; - textState.carriageReturn(); - bidiTexts.push(runBidi(buildTextGeometry(args[2]))); - break; - case OPS.paintXObject: - if (args[0].code) { - break; - } - - if (!xobjs) { - xobjs = (resources.get('XObject') || Dict.empty); - } - - var name = args[0].name; - if (xobjsCache.key === name) { - if (xobjsCache.texts) { - Util.appendToArray(bidiTexts, xobjsCache.texts.items); - Util.extendObj(textContent.styles, xobjsCache.texts.styles); - } - break; - } - - var xobj = xobjs.get(name); - if (!xobj) { - break; - } - assert(isStream(xobj), 'XObject should be a stream'); - - var type = xobj.dict.get('Subtype'); - assert(isName(type), - 'XObject should have a Name subtype'); - - if ('Form' !== type.name) { - xobjsCache.key = name; - xobjsCache.texts = null; - break; - } - - stateManager.save(); - var matrix = xobj.dict.get('Matrix'); - if (isArray(matrix) && matrix.length === 6) { - stateManager.transform(matrix); - } - - return self.getTextContent(xobj, - xobj.dict.get('Resources') || resources, stateManager). - then(function (formTextContent) { - Util.appendToArray(bidiTexts, formTextContent.items); - Util.extendObj(textContent.styles, formTextContent.styles); - stateManager.restore(); - - xobjsCache.key = name; - xobjsCache.texts = formTextContent; - - next(resolve, reject); - }, reject); - case OPS.setGState: - var dictName = args[0]; - var extGState = resources.get('ExtGState'); - - if (!isDict(extGState) || !extGState.has(dictName.name)) { - break; - } - - var gsStateMap = extGState.get(dictName.name); - var gsStateFont = null; - for (var key in gsStateMap) { - if (key === 'Font') { - assert(!gsStateFont); - gsStateFont = gsStateMap[key]; - } - } - if (gsStateFont) { - textState.fontSize = gsStateFont[1]; - return handleSetFont(gsStateFont[0]).then(function() { - next(resolve, reject); - }, reject); - } - break; - } // switch - } // while - if (stop) { - deferred.then(function () { - next(resolve, reject); - }); - return; - } - resolve(textContent); - }); - }, - - extractDataStructures: function - partialEvaluatorExtractDataStructures(dict, baseDict, - xref, properties) { - // 9.10.2 - var toUnicode = (dict.get('ToUnicode') || baseDict.get('ToUnicode')); - if (toUnicode) { - properties.toUnicode = this.readToUnicode(toUnicode); - } - if (properties.composite) { - // CIDSystemInfo helps to match CID to glyphs - var cidSystemInfo = dict.get('CIDSystemInfo'); - if (isDict(cidSystemInfo)) { - properties.cidSystemInfo = { - registry: cidSystemInfo.get('Registry'), - ordering: cidSystemInfo.get('Ordering'), - supplement: cidSystemInfo.get('Supplement') - }; - } - - var cidToGidMap = dict.get('CIDToGIDMap'); - if (isStream(cidToGidMap)) { - properties.cidToGidMap = this.readCidToGidMap(cidToGidMap); - } - } - - // Based on 9.6.6 of the spec the encoding can come from multiple places - // and depends on the font type. The base encoding and differences are - // read here, but the encoding that is actually used is chosen during - // glyph mapping in the font. - // TODO: Loading the built in encoding in the font would allow the - // differences to be merged in here not require us to hold on to it. - var differences = []; - var baseEncodingName = null; - var encoding; - if (dict.has('Encoding')) { - encoding = dict.get('Encoding'); - if (isDict(encoding)) { - baseEncodingName = encoding.get('BaseEncoding'); - baseEncodingName = (isName(baseEncodingName) ? - baseEncodingName.name : null); - // Load the differences between the base and original - if (encoding.has('Differences')) { - var diffEncoding = encoding.get('Differences'); - var index = 0; - for (var j = 0, jj = diffEncoding.length; j < jj; j++) { - var data = diffEncoding[j]; - if (isNum(data)) { - index = data; - } else if (isName(data)) { - differences[index++] = data.name; - } else if (isRef(data)) { - diffEncoding[j--] = xref.fetch(data); - continue; - } else { - error('Invalid entry in \'Differences\' array: ' + data); - } - } - } - } else if (isName(encoding)) { - baseEncodingName = encoding.name; - } else { - error('Encoding is not a Name nor a Dict'); - } - // According to table 114 if the encoding is a named encoding it must be - // one of these predefined encodings. - if ((baseEncodingName !== 'MacRomanEncoding' && - baseEncodingName !== 'MacExpertEncoding' && - baseEncodingName !== 'WinAnsiEncoding')) { - baseEncodingName = null; - } - } - - if (baseEncodingName) { - properties.defaultEncoding = Encodings[baseEncodingName].slice(); - } else { - encoding = (properties.type === 'TrueType' ? - Encodings.WinAnsiEncoding : Encodings.StandardEncoding); - // The Symbolic attribute can be misused for regular fonts - // Heuristic: we have to check if the font is a standard one also - if (!!(properties.flags & FontFlags.Symbolic)) { - encoding = Encodings.MacRomanEncoding; - if (!properties.file) { - if (/Symbol/i.test(properties.name)) { - encoding = Encodings.SymbolSetEncoding; - } else if (/Dingbats/i.test(properties.name)) { - encoding = Encodings.ZapfDingbatsEncoding; - } - } - } - properties.defaultEncoding = encoding; - } - - properties.differences = differences; - properties.baseEncodingName = baseEncodingName; - properties.dict = dict; - }, - - readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) { - var cmap, cmapObj = toUnicode; - if (isName(cmapObj)) { - cmap = CMapFactory.create(cmapObj, - { url: PDFJS.cMapUrl, packed: PDFJS.cMapPacked }, null); - if (cmap instanceof IdentityCMap) { - return new IdentityToUnicodeMap(0, 0xFFFF); - } - return new ToUnicodeMap(cmap.getMap()); - } else if (isStream(cmapObj)) { - cmap = CMapFactory.create(cmapObj, - { url: PDFJS.cMapUrl, packed: PDFJS.cMapPacked }, null); - if (cmap instanceof IdentityCMap) { - return new IdentityToUnicodeMap(0, 0xFFFF); - } - cmap = cmap.getMap(); - // Convert UTF-16BE - // NOTE: cmap can be a sparse array, so use forEach instead of for(;;) - // to iterate over all keys. - cmap.forEach(function(token, i) { - var str = []; - for (var k = 0; k < token.length; k += 2) { - var w1 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1); - if ((w1 & 0xF800) !== 0xD800) { // w1 < 0xD800 || w1 > 0xDFFF - str.push(w1); - continue; - } - k += 2; - var w2 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1); - str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000); - } - cmap[i] = String.fromCharCode.apply(String, str); - }); - return new ToUnicodeMap(cmap); - } - return null; - }, - - readCidToGidMap: function PartialEvaluator_readCidToGidMap(cidToGidStream) { - // Extract the encoding from the CIDToGIDMap - var glyphsData = cidToGidStream.getBytes(); - - // Set encoding 0 to later verify the font has an encoding - var result = []; - for (var j = 0, jj = glyphsData.length; j < jj; j++) { - var glyphID = (glyphsData[j++] << 8) | glyphsData[j]; - if (glyphID === 0) { - continue; - } - var code = j >> 1; - result[code] = glyphID; - } - return result; - }, - - extractWidths: function PartialEvaluator_extractWidths(dict, xref, - descriptor, - properties) { - var glyphsWidths = []; - var defaultWidth = 0; - var glyphsVMetrics = []; - var defaultVMetrics; - var i, ii, j, jj, start, code, widths; - if (properties.composite) { - defaultWidth = dict.get('DW') || 1000; - - widths = dict.get('W'); - if (widths) { - for (i = 0, ii = widths.length; i < ii; i++) { - start = widths[i++]; - code = xref.fetchIfRef(widths[i]); - if (isArray(code)) { - for (j = 0, jj = code.length; j < jj; j++) { - glyphsWidths[start++] = code[j]; - } - } else { - var width = widths[++i]; - for (j = start; j <= code; j++) { - glyphsWidths[j] = width; - } - } - } - } - - if (properties.vertical) { - var vmetrics = (dict.get('DW2') || [880, -1000]); - defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]]; - vmetrics = dict.get('W2'); - if (vmetrics) { - for (i = 0, ii = vmetrics.length; i < ii; i++) { - start = vmetrics[i++]; - code = xref.fetchIfRef(vmetrics[i]); - if (isArray(code)) { - for (j = 0, jj = code.length; j < jj; j++) { - glyphsVMetrics[start++] = [code[j++], code[j++], code[j]]; - } - } else { - var vmetric = [vmetrics[++i], vmetrics[++i], vmetrics[++i]]; - for (j = start; j <= code; j++) { - glyphsVMetrics[j] = vmetric; - } - } - } - } - } - } else { - var firstChar = properties.firstChar; - widths = dict.get('Widths'); - if (widths) { - j = firstChar; - for (i = 0, ii = widths.length; i < ii; i++) { - glyphsWidths[j++] = widths[i]; - } - defaultWidth = (parseFloat(descriptor.get('MissingWidth')) || 0); - } else { - // Trying get the BaseFont metrics (see comment above). - var baseFontName = dict.get('BaseFont'); - if (isName(baseFontName)) { - var metrics = this.getBaseFontMetrics(baseFontName.name); - - glyphsWidths = this.buildCharCodeToWidth(metrics.widths, - properties); - defaultWidth = metrics.defaultWidth; - } - } - } - - // Heuristic: detection of monospace font by checking all non-zero widths - var isMonospace = true; - var firstWidth = defaultWidth; - for (var glyph in glyphsWidths) { - var glyphWidth = glyphsWidths[glyph]; - if (!glyphWidth) { - continue; - } - if (!firstWidth) { - firstWidth = glyphWidth; - continue; - } - if (firstWidth !== glyphWidth) { - isMonospace = false; - break; - } - } - if (isMonospace) { - properties.flags |= FontFlags.FixedPitch; - } - - properties.defaultWidth = defaultWidth; - properties.widths = glyphsWidths; - properties.defaultVMetrics = defaultVMetrics; - properties.vmetrics = glyphsVMetrics; - }, - - isSerifFont: function PartialEvaluator_isSerifFont(baseFontName) { - // Simulating descriptor flags attribute - var fontNameWoStyle = baseFontName.split('-')[0]; - return (fontNameWoStyle in serifFonts) || - (fontNameWoStyle.search(/serif/gi) !== -1); - }, - - getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) { - var defaultWidth = 0; - var widths = []; - var monospace = false; - var lookupName = (stdFontMap[name] || name); - - if (!(lookupName in Metrics)) { - // Use default fonts for looking up font metrics if the passed - // font is not a base font - if (this.isSerifFont(name)) { - lookupName = 'Times-Roman'; - } else { - lookupName = 'Helvetica'; - } - } - var glyphWidths = Metrics[lookupName]; - - if (isNum(glyphWidths)) { - defaultWidth = glyphWidths; - monospace = true; - } else { - widths = glyphWidths; - } - - return { - defaultWidth: defaultWidth, - monospace: monospace, - widths: widths - }; - }, - - buildCharCodeToWidth: - function PartialEvaluator_bulildCharCodeToWidth(widthsByGlyphName, - properties) { - var widths = Object.create(null); - var differences = properties.differences; - var encoding = properties.defaultEncoding; - for (var charCode = 0; charCode < 256; charCode++) { - if (charCode in differences && - widthsByGlyphName[differences[charCode]]) { - widths[charCode] = widthsByGlyphName[differences[charCode]]; - continue; - } - if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) { - widths[charCode] = widthsByGlyphName[encoding[charCode]]; - continue; - } - } - return widths; - }, - - preEvaluateFont: function PartialEvaluator_preEvaluateFont(dict, xref) { - var baseDict = dict; - var type = dict.get('Subtype'); - assert(isName(type), 'invalid font Subtype'); - - var composite = false; - var uint8array; - if (type.name === 'Type0') { - // If font is a composite - // - get the descendant font - // - set the type according to the descendant font - // - get the FontDescriptor from the descendant font - var df = dict.get('DescendantFonts'); - if (!df) { - error('Descendant fonts are not specified'); - } - dict = (isArray(df) ? xref.fetchIfRef(df[0]) : df); - - type = dict.get('Subtype'); - assert(isName(type), 'invalid font Subtype'); - composite = true; - } - - var descriptor = dict.get('FontDescriptor'); - if (descriptor) { - var hash = new MurmurHash3_64(); - var encoding = baseDict.getRaw('Encoding'); - if (isName(encoding)) { - hash.update(encoding.name); - } else if (isRef(encoding)) { - hash.update(encoding.num + '_' + encoding.gen); - } else if (isDict(encoding)) { - var keys = encoding.getKeys(); - for (var i = 0, ii = keys.length; i < ii; i++) { - var entry = encoding.getRaw(keys[i]); - if (isName(entry)) { - hash.update(entry.name); - } else if (isRef(entry)) { - hash.update(entry.num + '_' + entry.gen); - } else if (isArray(entry)) { // 'Differences' entry. - // Ideally we should check the contents of the array, but to avoid - // parsing it here and then again in |extractDataStructures|, - // we only use the array length for now (fixes bug1157493.pdf). - hash.update(entry.length.toString()); - } - } - } - - var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode'); - if (isStream(toUnicode)) { - var stream = toUnicode.str || toUnicode; - uint8array = stream.buffer ? - new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : - new Uint8Array(stream.bytes.buffer, - stream.start, stream.end - stream.start); - hash.update(uint8array); - - } else if (isName(toUnicode)) { - hash.update(toUnicode.name); - } - - var widths = dict.get('Widths') || baseDict.get('Widths'); - if (widths) { - uint8array = new Uint8Array(new Uint32Array(widths).buffer); - hash.update(uint8array); - } - } - - return { - descriptor: descriptor, - dict: dict, - baseDict: baseDict, - composite: composite, - type: type.name, - hash: hash ? hash.hexdigest() : '' - }; - }, - - translateFont: function PartialEvaluator_translateFont(preEvaluatedFont, - xref) { - var baseDict = preEvaluatedFont.baseDict; - var dict = preEvaluatedFont.dict; - var composite = preEvaluatedFont.composite; - var descriptor = preEvaluatedFont.descriptor; - var type = preEvaluatedFont.type; - var maxCharIndex = (composite ? 0xFFFF : 0xFF); - var properties; - - if (!descriptor) { - if (type === 'Type3') { - // FontDescriptor is only required for Type3 fonts when the document - // is a tagged pdf. Create a barbebones one to get by. - descriptor = new Dict(null); - descriptor.set('FontName', Name.get(type)); - descriptor.set('FontBBox', dict.get('FontBBox')); - } else { - // Before PDF 1.5 if the font was one of the base 14 fonts, having a - // FontDescriptor was not required. - // This case is here for compatibility. - var baseFontName = dict.get('BaseFont'); - if (!isName(baseFontName)) { - error('Base font is not specified'); - } - - // Using base font name as a font name. - baseFontName = baseFontName.name.replace(/[,_]/g, '-'); - var metrics = this.getBaseFontMetrics(baseFontName); - - // Simulating descriptor flags attribute - var fontNameWoStyle = baseFontName.split('-')[0]; - var flags = - (this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) | - (metrics.monospace ? FontFlags.FixedPitch : 0) | - (symbolsFonts[fontNameWoStyle] ? FontFlags.Symbolic : - FontFlags.Nonsymbolic); - - properties = { - type: type, - name: baseFontName, - widths: metrics.widths, - defaultWidth: metrics.defaultWidth, - flags: flags, - firstChar: 0, - lastChar: maxCharIndex - }; - this.extractDataStructures(dict, dict, xref, properties); - properties.widths = this.buildCharCodeToWidth(metrics.widths, - properties); - return new Font(baseFontName, null, properties); - } - } - - // According to the spec if 'FontDescriptor' is declared, 'FirstChar', - // 'LastChar' and 'Widths' should exist too, but some PDF encoders seem - // to ignore this rule when a variant of a standart font is used. - // TODO Fill the width array depending on which of the base font this is - // a variant. - var firstChar = (dict.get('FirstChar') || 0); - var lastChar = (dict.get('LastChar') || maxCharIndex); - - var fontName = descriptor.get('FontName'); - var baseFont = dict.get('BaseFont'); - // Some bad PDFs have a string as the font name. - if (isString(fontName)) { - fontName = Name.get(fontName); - } - if (isString(baseFont)) { - baseFont = Name.get(baseFont); - } - - if (type !== 'Type3') { - var fontNameStr = fontName && fontName.name; - var baseFontStr = baseFont && baseFont.name; - if (fontNameStr !== baseFontStr) { - info('The FontDescriptor\'s FontName is "' + fontNameStr + - '" but should be the same as the Font\'s BaseFont "' + - baseFontStr + '"'); - // Workaround for cases where e.g. fontNameStr = 'Arial' and - // baseFontStr = 'Arial,Bold' (needed when no font file is embedded). - if (fontNameStr && baseFontStr && - baseFontStr.indexOf(fontNameStr) === 0) { - fontName = baseFont; - } - } - } - fontName = (fontName || baseFont); - - assert(isName(fontName), 'invalid font name'); - - var fontFile = descriptor.get('FontFile', 'FontFile2', 'FontFile3'); - if (fontFile) { - if (fontFile.dict) { - var subtype = fontFile.dict.get('Subtype'); - if (subtype) { - subtype = subtype.name; - } - var length1 = fontFile.dict.get('Length1'); - var length2 = fontFile.dict.get('Length2'); - } - } - - properties = { - type: type, - name: fontName.name, - subtype: subtype, - file: fontFile, - length1: length1, - length2: length2, - loadedName: baseDict.loadedName, - composite: composite, - wideChars: composite, - fixedPitch: false, - fontMatrix: (dict.get('FontMatrix') || FONT_IDENTITY_MATRIX), - firstChar: firstChar || 0, - lastChar: (lastChar || maxCharIndex), - bbox: descriptor.get('FontBBox'), - ascent: descriptor.get('Ascent'), - descent: descriptor.get('Descent'), - xHeight: descriptor.get('XHeight'), - capHeight: descriptor.get('CapHeight'), - flags: descriptor.get('Flags'), - italicAngle: descriptor.get('ItalicAngle'), - coded: false - }; - - if (composite) { - var cidEncoding = baseDict.get('Encoding'); - if (isName(cidEncoding)) { - properties.cidEncoding = cidEncoding.name; - } - properties.cMap = CMapFactory.create(cidEncoding, - { url: PDFJS.cMapUrl, packed: PDFJS.cMapPacked }, null); - properties.vertical = properties.cMap.vertical; - } - this.extractDataStructures(dict, baseDict, xref, properties); - this.extractWidths(dict, xref, descriptor, properties); - - if (type === 'Type3') { - properties.isType3Font = true; - } - - return new Font(fontName.name, fontFile, properties); - } - }; - - return PartialEvaluator; -})(); - -var TranslatedFont = (function TranslatedFontClosure() { - function TranslatedFont(loadedName, font, dict) { - this.loadedName = loadedName; - this.font = font; - this.dict = dict; - this.type3Loaded = null; - this.sent = false; - } - TranslatedFont.prototype = { - send: function (handler) { - if (this.sent) { - return; - } - var fontData = this.font.exportData(); - handler.send('commonobj', [ - this.loadedName, - 'Font', - fontData - ]); - this.sent = true; - }, - loadType3Data: function (evaluator, resources, parentOperatorList) { - assert(this.font.isType3Font); - - if (this.type3Loaded) { - return this.type3Loaded; - } - - var translatedFont = this.font; - var loadCharProcsPromise = Promise.resolve(); - var charProcs = this.dict.get('CharProcs').getAll(); - var fontResources = this.dict.get('Resources') || resources; - var charProcKeys = Object.keys(charProcs); - var charProcOperatorList = {}; - for (var i = 0, n = charProcKeys.length; i < n; ++i) { - loadCharProcsPromise = loadCharProcsPromise.then(function (key) { - var glyphStream = charProcs[key]; - var operatorList = new OperatorList(); - return evaluator.getOperatorList(glyphStream, fontResources, - operatorList).then(function () { - charProcOperatorList[key] = operatorList.getIR(); - - // Add the dependencies to the parent operator list so they are - // resolved before sub operator list is executed synchronously. - parentOperatorList.addDependencies(operatorList.dependencies); - }, function (reason) { - warn('Type3 font resource \"' + key + '\" is not available'); - var operatorList = new OperatorList(); - charProcOperatorList[key] = operatorList.getIR(); - }); - }.bind(this, charProcKeys[i])); - } - this.type3Loaded = loadCharProcsPromise.then(function () { - translatedFont.charProcOperatorList = charProcOperatorList; - }); - return this.type3Loaded; - } - }; - return TranslatedFont; -})(); - -var OperatorList = (function OperatorListClosure() { - var CHUNK_SIZE = 1000; - var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5; // close to chunk size - - function getTransfers(queue) { - var transfers = []; - var fnArray = queue.fnArray, argsArray = queue.argsArray; - for (var i = 0, ii = queue.length; i < ii; i++) { - switch (fnArray[i]) { - case OPS.paintInlineImageXObject: - case OPS.paintInlineImageXObjectGroup: - case OPS.paintImageMaskXObject: - var arg = argsArray[i][0]; // first param in imgData - if (!arg.cached) { - transfers.push(arg.data.buffer); - } - break; - } - } - return transfers; - } - - function OperatorList(intent, messageHandler, pageIndex) { - this.messageHandler = messageHandler; - this.fnArray = []; - this.argsArray = []; - this.dependencies = {}; - this.pageIndex = pageIndex; - this.intent = intent; - } - - OperatorList.prototype = { - get length() { - return this.argsArray.length; - }, - - addOp: function(fn, args) { - this.fnArray.push(fn); - this.argsArray.push(args); - if (this.messageHandler) { - if (this.fnArray.length >= CHUNK_SIZE) { - this.flush(); - } else if (this.fnArray.length >= CHUNK_SIZE_ABOUT && - (fn === OPS.restore || fn === OPS.endText)) { - // heuristic to flush on boundary of restore or endText - this.flush(); - } - } - }, - - addDependency: function(dependency) { - if (dependency in this.dependencies) { - return; - } - this.dependencies[dependency] = true; - this.addOp(OPS.dependency, [dependency]); - }, - - addDependencies: function(dependencies) { - for (var key in dependencies) { - this.addDependency(key); - } - }, - - addOpList: function(opList) { - Util.extendObj(this.dependencies, opList.dependencies); - for (var i = 0, ii = opList.length; i < ii; i++) { - this.addOp(opList.fnArray[i], opList.argsArray[i]); - } - }, - - getIR: function() { - return { - fnArray: this.fnArray, - argsArray: this.argsArray, - length: this.length - }; - }, - - flush: function(lastChunk) { - if (this.intent !== 'oplist') { - new QueueOptimizer().optimize(this); - } - var transfers = getTransfers(this); - this.messageHandler.send('RenderPageChunk', { - operatorList: { - fnArray: this.fnArray, - argsArray: this.argsArray, - lastChunk: lastChunk, - length: this.length - }, - pageIndex: this.pageIndex, - intent: this.intent - }, transfers); - this.dependencies = {}; - this.fnArray.length = 0; - this.argsArray.length = 0; - } - }; - - return OperatorList; -})(); - -var StateManager = (function StateManagerClosure() { - function StateManager(initialState) { - this.state = initialState; - this.stateStack = []; - } - StateManager.prototype = { - save: function () { - var old = this.state; - this.stateStack.push(this.state); - this.state = old.clone(); - }, - restore: function () { - var prev = this.stateStack.pop(); - if (prev) { - this.state = prev; - } - }, - transform: function (args) { - this.state.ctm = Util.transform(this.state.ctm, args); - } - }; - return StateManager; -})(); - -var TextState = (function TextStateClosure() { - function TextState() { - this.ctm = new Float32Array(IDENTITY_MATRIX); - this.fontSize = 0; - this.font = null; - this.fontMatrix = FONT_IDENTITY_MATRIX; - this.textMatrix = IDENTITY_MATRIX.slice(); - this.textLineMatrix = IDENTITY_MATRIX.slice(); - this.charSpacing = 0; - this.wordSpacing = 0; - this.leading = 0; - this.textHScale = 1; - this.textRise = 0; - } - - TextState.prototype = { - setTextMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) { - var m = this.textMatrix; - m[0] = a; m[1] = b; m[2] = c; m[3] = d; m[4] = e; m[5] = f; - }, - setTextLineMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) { - var m = this.textLineMatrix; - m[0] = a; m[1] = b; m[2] = c; m[3] = d; m[4] = e; m[5] = f; - }, - translateTextMatrix: function TextState_translateTextMatrix(x, y) { - var m = this.textMatrix; - m[4] = m[0] * x + m[2] * y + m[4]; - m[5] = m[1] * x + m[3] * y + m[5]; - }, - translateTextLineMatrix: function TextState_translateTextMatrix(x, y) { - var m = this.textLineMatrix; - m[4] = m[0] * x + m[2] * y + m[4]; - m[5] = m[1] * x + m[3] * y + m[5]; - }, - calcRenderMatrix: function TextState_calcRendeMatrix(ctm) { - // 9.4.4 Text Space Details - var tsm = [this.fontSize * this.textHScale, 0, - 0, this.fontSize, - 0, this.textRise]; - return Util.transform(ctm, Util.transform(this.textMatrix, tsm)); - }, - carriageReturn: function TextState_carriageReturn() { - this.translateTextLineMatrix(0, -this.leading); - this.textMatrix = this.textLineMatrix.slice(); - }, - clone: function TextState_clone() { - var clone = Object.create(this); - clone.textMatrix = this.textMatrix.slice(); - clone.textLineMatrix = this.textLineMatrix.slice(); - clone.fontMatrix = this.fontMatrix.slice(); - return clone; - } - }; - return TextState; -})(); - -var EvalState = (function EvalStateClosure() { - function EvalState() { - this.ctm = new Float32Array(IDENTITY_MATRIX); - this.font = null; - this.textRenderingMode = TextRenderingMode.FILL; - this.fillColorSpace = ColorSpace.singletons.gray; - this.strokeColorSpace = ColorSpace.singletons.gray; - } - EvalState.prototype = { - clone: function CanvasExtraState_clone() { - return Object.create(this); - }, - }; - return EvalState; -})(); - -var EvaluatorPreprocessor = (function EvaluatorPreprocessorClosure() { - // Specifies properties for each command - // - // If variableArgs === true: [0, `numArgs`] expected - // If variableArgs === false: exactly `numArgs` expected - var OP_MAP = { - // Graphic state - w: { id: OPS.setLineWidth, numArgs: 1, variableArgs: false }, - J: { id: OPS.setLineCap, numArgs: 1, variableArgs: false }, - j: { id: OPS.setLineJoin, numArgs: 1, variableArgs: false }, - M: { id: OPS.setMiterLimit, numArgs: 1, variableArgs: false }, - d: { id: OPS.setDash, numArgs: 2, variableArgs: false }, - ri: { id: OPS.setRenderingIntent, numArgs: 1, variableArgs: false }, - i: { id: OPS.setFlatness, numArgs: 1, variableArgs: false }, - gs: { id: OPS.setGState, numArgs: 1, variableArgs: false }, - q: { id: OPS.save, numArgs: 0, variableArgs: false }, - Q: { id: OPS.restore, numArgs: 0, variableArgs: false }, - cm: { id: OPS.transform, numArgs: 6, variableArgs: false }, - - // Path - m: { id: OPS.moveTo, numArgs: 2, variableArgs: false }, - l: { id: OPS.lineTo, numArgs: 2, variableArgs: false }, - c: { id: OPS.curveTo, numArgs: 6, variableArgs: false }, - v: { id: OPS.curveTo2, numArgs: 4, variableArgs: false }, - y: { id: OPS.curveTo3, numArgs: 4, variableArgs: false }, - h: { id: OPS.closePath, numArgs: 0, variableArgs: false }, - re: { id: OPS.rectangle, numArgs: 4, variableArgs: false }, - S: { id: OPS.stroke, numArgs: 0, variableArgs: false }, - s: { id: OPS.closeStroke, numArgs: 0, variableArgs: false }, - f: { id: OPS.fill, numArgs: 0, variableArgs: false }, - F: { id: OPS.fill, numArgs: 0, variableArgs: false }, - 'f*': { id: OPS.eoFill, numArgs: 0, variableArgs: false }, - B: { id: OPS.fillStroke, numArgs: 0, variableArgs: false }, - 'B*': { id: OPS.eoFillStroke, numArgs: 0, variableArgs: false }, - b: { id: OPS.closeFillStroke, numArgs: 0, variableArgs: false }, - 'b*': { id: OPS.closeEOFillStroke, numArgs: 0, variableArgs: false }, - n: { id: OPS.endPath, numArgs: 0, variableArgs: false }, - - // Clipping - W: { id: OPS.clip, numArgs: 0, variableArgs: false }, - 'W*': { id: OPS.eoClip, numArgs: 0, variableArgs: false }, - - // Text - BT: { id: OPS.beginText, numArgs: 0, variableArgs: false }, - ET: { id: OPS.endText, numArgs: 0, variableArgs: false }, - Tc: { id: OPS.setCharSpacing, numArgs: 1, variableArgs: false }, - Tw: { id: OPS.setWordSpacing, numArgs: 1, variableArgs: false }, - Tz: { id: OPS.setHScale, numArgs: 1, variableArgs: false }, - TL: { id: OPS.setLeading, numArgs: 1, variableArgs: false }, - Tf: { id: OPS.setFont, numArgs: 2, variableArgs: false }, - Tr: { id: OPS.setTextRenderingMode, numArgs: 1, variableArgs: false }, - Ts: { id: OPS.setTextRise, numArgs: 1, variableArgs: false }, - Td: { id: OPS.moveText, numArgs: 2, variableArgs: false }, - TD: { id: OPS.setLeadingMoveText, numArgs: 2, variableArgs: false }, - Tm: { id: OPS.setTextMatrix, numArgs: 6, variableArgs: false }, - 'T*': { id: OPS.nextLine, numArgs: 0, variableArgs: false }, - Tj: { id: OPS.showText, numArgs: 1, variableArgs: false }, - TJ: { id: OPS.showSpacedText, numArgs: 1, variableArgs: false }, - '\'': { id: OPS.nextLineShowText, numArgs: 1, variableArgs: false }, - '"': { id: OPS.nextLineSetSpacingShowText, numArgs: 3, - variableArgs: false }, - - // Type3 fonts - d0: { id: OPS.setCharWidth, numArgs: 2, variableArgs: false }, - d1: { id: OPS.setCharWidthAndBounds, numArgs: 6, variableArgs: false }, - - // Color - CS: { id: OPS.setStrokeColorSpace, numArgs: 1, variableArgs: false }, - cs: { id: OPS.setFillColorSpace, numArgs: 1, variableArgs: false }, - SC: { id: OPS.setStrokeColor, numArgs: 4, variableArgs: true }, - SCN: { id: OPS.setStrokeColorN, numArgs: 33, variableArgs: true }, - sc: { id: OPS.setFillColor, numArgs: 4, variableArgs: true }, - scn: { id: OPS.setFillColorN, numArgs: 33, variableArgs: true }, - G: { id: OPS.setStrokeGray, numArgs: 1, variableArgs: false }, - g: { id: OPS.setFillGray, numArgs: 1, variableArgs: false }, - RG: { id: OPS.setStrokeRGBColor, numArgs: 3, variableArgs: false }, - rg: { id: OPS.setFillRGBColor, numArgs: 3, variableArgs: false }, - K: { id: OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: false }, - k: { id: OPS.setFillCMYKColor, numArgs: 4, variableArgs: false }, - - // Shading - sh: { id: OPS.shadingFill, numArgs: 1, variableArgs: false }, - - // Images - BI: { id: OPS.beginInlineImage, numArgs: 0, variableArgs: false }, - ID: { id: OPS.beginImageData, numArgs: 0, variableArgs: false }, - EI: { id: OPS.endInlineImage, numArgs: 1, variableArgs: false }, - - // XObjects - Do: { id: OPS.paintXObject, numArgs: 1, variableArgs: false }, - MP: { id: OPS.markPoint, numArgs: 1, variableArgs: false }, - DP: { id: OPS.markPointProps, numArgs: 2, variableArgs: false }, - BMC: { id: OPS.beginMarkedContent, numArgs: 1, variableArgs: false }, - BDC: { id: OPS.beginMarkedContentProps, numArgs: 2, - variableArgs: false }, - EMC: { id: OPS.endMarkedContent, numArgs: 0, variableArgs: false }, - - // Compatibility - BX: { id: OPS.beginCompat, numArgs: 0, variableArgs: false }, - EX: { id: OPS.endCompat, numArgs: 0, variableArgs: false }, - - // (reserved partial commands for the lexer) - BM: null, - BD: null, - 'true': null, - fa: null, - fal: null, - fals: null, - 'false': null, - nu: null, - nul: null, - 'null': null - }; - - function EvaluatorPreprocessor(stream, xref, stateManager) { - // TODO(mduan): pass array of knownCommands rather than OP_MAP - // dictionary - this.parser = new Parser(new Lexer(stream, OP_MAP), false, xref); - this.stateManager = stateManager; - this.nonProcessedArgs = []; - } - - EvaluatorPreprocessor.prototype = { - get savedStatesDepth() { - return this.stateManager.stateStack.length; - }, - - // |operation| is an object with two fields: - // - // - |fn| is an out param. - // - // - |args| is an inout param. On entry, it should have one of two values. - // - // - An empty array. This indicates that the caller is providing the - // array in which the args will be stored in. The caller should use - // this value if it can reuse a single array for each call to read(). - // - // - |null|. This indicates that the caller needs this function to create - // the array in which any args are stored in. If there are zero args, - // this function will leave |operation.args| as |null| (thus avoiding - // allocations that would occur if we used an empty array to represent - // zero arguments). Otherwise, it will replace |null| with a new array - // containing the arguments. The caller should use this value if it - // cannot reuse an array for each call to read(). - // - // These two modes are present because this function is very hot and so - // avoiding allocations where possible is worthwhile. - // - read: function EvaluatorPreprocessor_read(operation) { - var args = operation.args; - while (true) { - var obj = this.parser.getObj(); - if (isCmd(obj)) { - var cmd = obj.cmd; - // Check that the command is valid - var opSpec = OP_MAP[cmd]; - if (!opSpec) { - warn('Unknown command "' + cmd + '"'); - continue; - } - - var fn = opSpec.id; - var numArgs = opSpec.numArgs; - var argsLength = args !== null ? args.length : 0; - - if (!opSpec.variableArgs) { - // Postscript commands can be nested, e.g. /F2 /GS2 gs 5.711 Tf - if (argsLength !== numArgs) { - var nonProcessedArgs = this.nonProcessedArgs; - while (argsLength > numArgs) { - nonProcessedArgs.push(args.shift()); - argsLength--; - } - while (argsLength < numArgs && nonProcessedArgs.length !== 0) { - if (!args) { - args = []; - } - args.unshift(nonProcessedArgs.pop()); - argsLength++; - } - } - - if (argsLength < numArgs) { - // If we receive too few args, it's not possible to possible - // to execute the command, so skip the command - info('Command ' + fn + ': because expected ' + - numArgs + ' args, but received ' + argsLength + - ' args; skipping'); - args = null; - continue; - } - } else if (argsLength > numArgs) { - info('Command ' + fn + ': expected [0,' + numArgs + - '] args, but received ' + argsLength + ' args'); - } - - // TODO figure out how to type-check vararg functions - this.preprocessCommand(fn, args); - - operation.fn = fn; - operation.args = args; - return true; - } else { - if (isEOF(obj)) { - return false; // no more commands - } - // argument - if (obj !== null) { - if (!args) { - args = []; - } - args.push((obj instanceof Dict ? obj.getAll() : obj)); - assert(args.length <= 33, 'Too many arguments'); - } - } - } - }, - - preprocessCommand: - function EvaluatorPreprocessor_preprocessCommand(fn, args) { - switch (fn | 0) { - case OPS.save: - this.stateManager.save(); - break; - case OPS.restore: - this.stateManager.restore(); - break; - case OPS.transform: - this.stateManager.transform(args); - break; - } - } - }; - return EvaluatorPreprocessor; -})(); - -var QueueOptimizer = (function QueueOptimizerClosure() { - function addState(parentState, pattern, fn) { - var state = parentState; - for (var i = 0, ii = pattern.length - 1; i < ii; i++) { - var item = pattern[i]; - state = (state[item] || (state[item] = [])); - } - state[pattern[pattern.length - 1]] = fn; - } - - function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, - argsArray) { - // Handles special case of mainly LaTeX documents which use image masks to - // draw lines with the current fill style. - // 'count' groups of (save, transform, paintImageMaskXObject, restore)+ - // have been found at iFirstSave. - var iFirstPIMXO = iFirstSave + 2; - for (var i = 0; i < count; i++) { - var arg = argsArray[iFirstPIMXO + 4 * i]; - var imageMask = arg.length === 1 && arg[0]; - if (imageMask && imageMask.width === 1 && imageMask.height === 1 && - (!imageMask.data.length || - (imageMask.data.length === 1 && imageMask.data[0] === 0))) { - fnArray[iFirstPIMXO + 4 * i] = OPS.paintSolidColorImageMask; - continue; - } - break; - } - return count - i; - } - - var InitialState = []; - - // This replaces (save, transform, paintInlineImageXObject, restore)+ - // sequences with one |paintInlineImageXObjectGroup| operation. - addState(InitialState, - [OPS.save, OPS.transform, OPS.paintInlineImageXObject, OPS.restore], - function foundInlineImageGroup(context) { - var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10; - var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200; - var MAX_WIDTH = 1000; - var IMAGE_PADDING = 1; - - var fnArray = context.fnArray, argsArray = context.argsArray; - var curr = context.iCurr; - var iFirstSave = curr - 3; - var iFirstTransform = curr - 2; - var iFirstPIIXO = curr - 1; - - // Look for the quartets. - var i = iFirstSave + 4; - var ii = fnArray.length; - while (i + 3 < ii) { - if (fnArray[i] !== OPS.save || - fnArray[i + 1] !== OPS.transform || - fnArray[i + 2] !== OPS.paintInlineImageXObject || - fnArray[i + 3] !== OPS.restore) { - break; // ops don't match - } - i += 4; - } - - // At this point, i is the index of the first op past the last valid - // quartet. - var count = Math.min((i - iFirstSave) / 4, - MAX_IMAGES_IN_INLINE_IMAGES_BLOCK); - if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) { - return i; - } - - // assuming that heights of those image is too small (~1 pixel) - // packing as much as possible by lines - var maxX = 0; - var map = [], maxLineHeight = 0; - var currentX = IMAGE_PADDING, currentY = IMAGE_PADDING; - var q; - for (q = 0; q < count; q++) { - var transform = argsArray[iFirstTransform + (q << 2)]; - var img = argsArray[iFirstPIIXO + (q << 2)][0]; - if (currentX + img.width > MAX_WIDTH) { - // starting new line - maxX = Math.max(maxX, currentX); - currentY += maxLineHeight + 2 * IMAGE_PADDING; - currentX = 0; - maxLineHeight = 0; - } - map.push({ - transform: transform, - x: currentX, y: currentY, - w: img.width, h: img.height - }); - currentX += img.width + 2 * IMAGE_PADDING; - maxLineHeight = Math.max(maxLineHeight, img.height); - } - var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING; - var imgHeight = currentY + maxLineHeight + IMAGE_PADDING; - var imgData = new Uint8Array(imgWidth * imgHeight * 4); - var imgRowSize = imgWidth << 2; - for (q = 0; q < count; q++) { - var data = argsArray[iFirstPIIXO + (q << 2)][0].data; - // Copy image by lines and extends pixels into padding. - var rowSize = map[q].w << 2; - var dataOffset = 0; - var offset = (map[q].x + map[q].y * imgWidth) << 2; - imgData.set(data.subarray(0, rowSize), offset - imgRowSize); - for (var k = 0, kk = map[q].h; k < kk; k++) { - imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset); - dataOffset += rowSize; - offset += imgRowSize; - } - imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset); - while (offset >= 0) { - data[offset - 4] = data[offset]; - data[offset - 3] = data[offset + 1]; - data[offset - 2] = data[offset + 2]; - data[offset - 1] = data[offset + 3]; - data[offset + rowSize] = data[offset + rowSize - 4]; - data[offset + rowSize + 1] = data[offset + rowSize - 3]; - data[offset + rowSize + 2] = data[offset + rowSize - 2]; - data[offset + rowSize + 3] = data[offset + rowSize - 1]; - offset -= imgRowSize; - } - } - - // Replace queue items. - fnArray.splice(iFirstSave, count * 4, OPS.paintInlineImageXObjectGroup); - argsArray.splice(iFirstSave, count * 4, - [{ width: imgWidth, height: imgHeight, kind: ImageKind.RGBA_32BPP, - data: imgData }, map]); - - return iFirstSave + 1; - }); - - // This replaces (save, transform, paintImageMaskXObject, restore)+ - // sequences with one |paintImageMaskXObjectGroup| or one - // |paintImageMaskXObjectRepeat| operation. - addState(InitialState, - [OPS.save, OPS.transform, OPS.paintImageMaskXObject, OPS.restore], - function foundImageMaskGroup(context) { - var MIN_IMAGES_IN_MASKS_BLOCK = 10; - var MAX_IMAGES_IN_MASKS_BLOCK = 100; - var MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000; - - var fnArray = context.fnArray, argsArray = context.argsArray; - var curr = context.iCurr; - var iFirstSave = curr - 3; - var iFirstTransform = curr - 2; - var iFirstPIMXO = curr - 1; - - // Look for the quartets. - var i = iFirstSave + 4; - var ii = fnArray.length; - while (i + 3 < ii) { - if (fnArray[i] !== OPS.save || - fnArray[i + 1] !== OPS.transform || - fnArray[i + 2] !== OPS.paintImageMaskXObject || - fnArray[i + 3] !== OPS.restore) { - break; // ops don't match - } - i += 4; - } - - // At this point, i is the index of the first op past the last valid - // quartet. - var count = (i - iFirstSave) / 4; - count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, - argsArray); - if (count < MIN_IMAGES_IN_MASKS_BLOCK) { - return i; - } - - var q; - var isSameImage = false; - var iTransform, transformArgs; - var firstPIMXOArg0 = argsArray[iFirstPIMXO][0]; - if (argsArray[iFirstTransform][1] === 0 && - argsArray[iFirstTransform][2] === 0) { - isSameImage = true; - var firstTransformArg0 = argsArray[iFirstTransform][0]; - var firstTransformArg3 = argsArray[iFirstTransform][3]; - iTransform = iFirstTransform + 4; - var iPIMXO = iFirstPIMXO + 4; - for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) { - transformArgs = argsArray[iTransform]; - if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || - transformArgs[0] !== firstTransformArg0 || - transformArgs[1] !== 0 || - transformArgs[2] !== 0 || - transformArgs[3] !== firstTransformArg3) { - if (q < MIN_IMAGES_IN_MASKS_BLOCK) { - isSameImage = false; - } else { - count = q; - } - break; // different image or transform - } - } - } - - if (isSameImage) { - count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK); - var positions = new Float32Array(count * 2); - iTransform = iFirstTransform; - for (q = 0; q < count; q++, iTransform += 4) { - transformArgs = argsArray[iTransform]; - positions[(q << 1)] = transformArgs[4]; - positions[(q << 1) + 1] = transformArgs[5]; - } - - // Replace queue items. - fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectRepeat); - argsArray.splice(iFirstSave, count * 4, - [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]); - } else { - count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK); - var images = []; - for (q = 0; q < count; q++) { - transformArgs = argsArray[iFirstTransform + (q << 2)]; - var maskParams = argsArray[iFirstPIMXO + (q << 2)][0]; - images.push({ data: maskParams.data, width: maskParams.width, - height: maskParams.height, - transform: transformArgs }); - } - - // Replace queue items. - fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectGroup); - argsArray.splice(iFirstSave, count * 4, [images]); - } - - return iFirstSave + 1; - }); - - // This replaces (save, transform, paintImageXObject, restore)+ sequences - // with one paintImageXObjectRepeat operation, if the |transform| and - // |paintImageXObjectRepeat| ops are appropriate. - addState(InitialState, - [OPS.save, OPS.transform, OPS.paintImageXObject, OPS.restore], - function (context) { - var MIN_IMAGES_IN_BLOCK = 3; - var MAX_IMAGES_IN_BLOCK = 1000; - - var fnArray = context.fnArray, argsArray = context.argsArray; - var curr = context.iCurr; - var iFirstSave = curr - 3; - var iFirstTransform = curr - 2; - var iFirstPIXO = curr - 1; - var iFirstRestore = curr; - - if (argsArray[iFirstTransform][1] !== 0 || - argsArray[iFirstTransform][2] !== 0) { - return iFirstRestore + 1; // transform has the wrong form - } - - // Look for the quartets. - var firstPIXOArg0 = argsArray[iFirstPIXO][0]; - var firstTransformArg0 = argsArray[iFirstTransform][0]; - var firstTransformArg3 = argsArray[iFirstTransform][3]; - var i = iFirstSave + 4; - var ii = fnArray.length; - while (i + 3 < ii) { - if (fnArray[i] !== OPS.save || - fnArray[i + 1] !== OPS.transform || - fnArray[i + 2] !== OPS.paintImageXObject || - fnArray[i + 3] !== OPS.restore) { - break; // ops don't match - } - if (argsArray[i + 1][0] !== firstTransformArg0 || - argsArray[i + 1][1] !== 0 || - argsArray[i + 1][2] !== 0 || - argsArray[i + 1][3] !== firstTransformArg3) { - break; // transforms don't match - } - if (argsArray[i + 2][0] !== firstPIXOArg0) { - break; // images don't match - } - i += 4; - } - - // At this point, i is the index of the first op past the last valid - // quartet. - var count = Math.min((i - iFirstSave) / 4, MAX_IMAGES_IN_BLOCK); - if (count < MIN_IMAGES_IN_BLOCK) { - return i; - } - - // Extract the (x,y) positions from all of the matching transforms. - var positions = new Float32Array(count * 2); - var iTransform = iFirstTransform; - for (var q = 0; q < count; q++, iTransform += 4) { - var transformArgs = argsArray[iTransform]; - positions[(q << 1)] = transformArgs[4]; - positions[(q << 1) + 1] = transformArgs[5]; - } - - // Replace queue items. - var args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, - positions]; - fnArray.splice(iFirstSave, count * 4, OPS.paintImageXObjectRepeat); - argsArray.splice(iFirstSave, count * 4, args); - - return iFirstSave + 1; - }); - - // This replaces (beginText, setFont, setTextMatrix, showText, endText)+ - // sequences with (beginText, setFont, (setTextMatrix, showText)+, endText)+ - // sequences, if the font for each one is the same. - addState(InitialState, - [OPS.beginText, OPS.setFont, OPS.setTextMatrix, OPS.showText, OPS.endText], - function (context) { - var MIN_CHARS_IN_BLOCK = 3; - var MAX_CHARS_IN_BLOCK = 1000; - - var fnArray = context.fnArray, argsArray = context.argsArray; - var curr = context.iCurr; - var iFirstBeginText = curr - 4; - var iFirstSetFont = curr - 3; - var iFirstSetTextMatrix = curr - 2; - var iFirstShowText = curr - 1; - var iFirstEndText = curr; - - // Look for the quintets. - var firstSetFontArg0 = argsArray[iFirstSetFont][0]; - var firstSetFontArg1 = argsArray[iFirstSetFont][1]; - var i = iFirstBeginText + 5; - var ii = fnArray.length; - while (i + 4 < ii) { - if (fnArray[i] !== OPS.beginText || - fnArray[i + 1] !== OPS.setFont || - fnArray[i + 2] !== OPS.setTextMatrix || - fnArray[i + 3] !== OPS.showText || - fnArray[i + 4] !== OPS.endText) { - break; // ops don't match - } - if (argsArray[i + 1][0] !== firstSetFontArg0 || - argsArray[i + 1][1] !== firstSetFontArg1) { - break; // fonts don't match - } - i += 5; - } - - // At this point, i is the index of the first op past the last valid - // quintet. - var count = Math.min(((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK); - if (count < MIN_CHARS_IN_BLOCK) { - return i; - } - - // If the preceding quintet is (, setFont, setTextMatrix, - // showText, endText), include that as well. (E.g. might be - // |dependency|.) - var iFirst = iFirstBeginText; - if (iFirstBeginText >= 4 && - fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && - fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && - fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && - fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && - argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && - argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) { - count++; - iFirst -= 5; - } - - // Remove (endText, beginText, setFont) trios. - var iEndText = iFirst + 4; - for (var q = 1; q < count; q++) { - fnArray.splice(iEndText, 3); - argsArray.splice(iEndText, 3); - iEndText += 2; - } - - return iEndText + 1; - }); - - function QueueOptimizer() {} - - QueueOptimizer.prototype = { - optimize: function QueueOptimizer_optimize(queue) { - var fnArray = queue.fnArray, argsArray = queue.argsArray; - var context = { - iCurr: 0, - fnArray: fnArray, - argsArray: argsArray - }; - var state; - var i = 0, ii = fnArray.length; - while (i < ii) { - state = (state || InitialState)[fnArray[i]]; - if (typeof state === 'function') { // we found some handler - context.iCurr = i; - // state() returns the index of the first non-matching op (if we - // didn't match) or the first op past the modified ops (if we did - // match and replace). - i = state(context); - state = undefined; // reset the state machine - ii = context.fnArray.length; - } else { - i++; - } - } - } - }; - return QueueOptimizer; -})(); - - -var BUILT_IN_CMAPS = [ -// << Start unicode maps. -'Adobe-GB1-UCS2', -'Adobe-CNS1-UCS2', -'Adobe-Japan1-UCS2', -'Adobe-Korea1-UCS2', -// >> End unicode maps. -'78-EUC-H', -'78-EUC-V', -'78-H', -'78-RKSJ-H', -'78-RKSJ-V', -'78-V', -'78ms-RKSJ-H', -'78ms-RKSJ-V', -'83pv-RKSJ-H', -'90ms-RKSJ-H', -'90ms-RKSJ-V', -'90msp-RKSJ-H', -'90msp-RKSJ-V', -'90pv-RKSJ-H', -'90pv-RKSJ-V', -'Add-H', -'Add-RKSJ-H', -'Add-RKSJ-V', -'Add-V', -'Adobe-CNS1-0', -'Adobe-CNS1-1', -'Adobe-CNS1-2', -'Adobe-CNS1-3', -'Adobe-CNS1-4', -'Adobe-CNS1-5', -'Adobe-CNS1-6', -'Adobe-GB1-0', -'Adobe-GB1-1', -'Adobe-GB1-2', -'Adobe-GB1-3', -'Adobe-GB1-4', -'Adobe-GB1-5', -'Adobe-Japan1-0', -'Adobe-Japan1-1', -'Adobe-Japan1-2', -'Adobe-Japan1-3', -'Adobe-Japan1-4', -'Adobe-Japan1-5', -'Adobe-Japan1-6', -'Adobe-Korea1-0', -'Adobe-Korea1-1', -'Adobe-Korea1-2', -'B5-H', -'B5-V', -'B5pc-H', -'B5pc-V', -'CNS-EUC-H', -'CNS-EUC-V', -'CNS1-H', -'CNS1-V', -'CNS2-H', -'CNS2-V', -'ETHK-B5-H', -'ETHK-B5-V', -'ETen-B5-H', -'ETen-B5-V', -'ETenms-B5-H', -'ETenms-B5-V', -'EUC-H', -'EUC-V', -'Ext-H', -'Ext-RKSJ-H', -'Ext-RKSJ-V', -'Ext-V', -'GB-EUC-H', -'GB-EUC-V', -'GB-H', -'GB-V', -'GBK-EUC-H', -'GBK-EUC-V', -'GBK2K-H', -'GBK2K-V', -'GBKp-EUC-H', -'GBKp-EUC-V', -'GBT-EUC-H', -'GBT-EUC-V', -'GBT-H', -'GBT-V', -'GBTpc-EUC-H', -'GBTpc-EUC-V', -'GBpc-EUC-H', -'GBpc-EUC-V', -'H', -'HKdla-B5-H', -'HKdla-B5-V', -'HKdlb-B5-H', -'HKdlb-B5-V', -'HKgccs-B5-H', -'HKgccs-B5-V', -'HKm314-B5-H', -'HKm314-B5-V', -'HKm471-B5-H', -'HKm471-B5-V', -'HKscs-B5-H', -'HKscs-B5-V', -'Hankaku', -'Hiragana', -'KSC-EUC-H', -'KSC-EUC-V', -'KSC-H', -'KSC-Johab-H', -'KSC-Johab-V', -'KSC-V', -'KSCms-UHC-H', -'KSCms-UHC-HW-H', -'KSCms-UHC-HW-V', -'KSCms-UHC-V', -'KSCpc-EUC-H', -'KSCpc-EUC-V', -'Katakana', -'NWP-H', -'NWP-V', -'RKSJ-H', -'RKSJ-V', -'Roman', -'UniCNS-UCS2-H', -'UniCNS-UCS2-V', -'UniCNS-UTF16-H', -'UniCNS-UTF16-V', -'UniCNS-UTF32-H', -'UniCNS-UTF32-V', -'UniCNS-UTF8-H', -'UniCNS-UTF8-V', -'UniGB-UCS2-H', -'UniGB-UCS2-V', -'UniGB-UTF16-H', -'UniGB-UTF16-V', -'UniGB-UTF32-H', -'UniGB-UTF32-V', -'UniGB-UTF8-H', -'UniGB-UTF8-V', -'UniJIS-UCS2-H', -'UniJIS-UCS2-HW-H', -'UniJIS-UCS2-HW-V', -'UniJIS-UCS2-V', -'UniJIS-UTF16-H', -'UniJIS-UTF16-V', -'UniJIS-UTF32-H', -'UniJIS-UTF32-V', -'UniJIS-UTF8-H', -'UniJIS-UTF8-V', -'UniJIS2004-UTF16-H', -'UniJIS2004-UTF16-V', -'UniJIS2004-UTF32-H', -'UniJIS2004-UTF32-V', -'UniJIS2004-UTF8-H', -'UniJIS2004-UTF8-V', -'UniJISPro-UCS2-HW-V', -'UniJISPro-UCS2-V', -'UniJISPro-UTF8-V', -'UniJISX0213-UTF32-H', -'UniJISX0213-UTF32-V', -'UniJISX02132004-UTF32-H', -'UniJISX02132004-UTF32-V', -'UniKS-UCS2-H', -'UniKS-UCS2-V', -'UniKS-UTF16-H', -'UniKS-UTF16-V', -'UniKS-UTF32-H', -'UniKS-UTF32-V', -'UniKS-UTF8-H', -'UniKS-UTF8-V', -'V', -'WP-Symbol']; - -// CMap, not to be confused with TrueType's cmap. -var CMap = (function CMapClosure() { - function CMap(builtInCMap) { - // Codespace ranges are stored as follows: - // [[1BytePairs], [2BytePairs], [3BytePairs], [4BytePairs]] - // where nBytePairs are ranges e.g. [low1, high1, low2, high2, ...] - this.codespaceRanges = [[], [], [], []]; - this.numCodespaceRanges = 0; - // Map entries have one of two forms. - // - cid chars are 16-bit unsigned integers, stored as integers. - // - bf chars are variable-length byte sequences, stored as strings, with - // one byte per character. - this._map = []; - this.name = ''; - this.vertical = false; - this.useCMap = null; - this.builtInCMap = builtInCMap; - } - CMap.prototype = { - addCodespaceRange: function(n, low, high) { - this.codespaceRanges[n - 1].push(low, high); - this.numCodespaceRanges++; - }, - - mapCidRange: function(low, high, dstLow) { - while (low <= high) { - this._map[low++] = dstLow++; - } - }, - - mapBfRange: function(low, high, dstLow) { - var lastByte = dstLow.length - 1; - while (low <= high) { - this._map[low++] = dstLow; - // Only the last byte has to be incremented. - dstLow = dstLow.substr(0, lastByte) + - String.fromCharCode(dstLow.charCodeAt(lastByte) + 1); - } - }, - - mapBfRangeToArray: function(low, high, array) { - var i = 0, ii = array.length; - while (low <= high && i < ii) { - this._map[low] = array[i++]; - ++low; - } - }, - - // This is used for both bf and cid chars. - mapOne: function(src, dst) { - this._map[src] = dst; - }, - - lookup: function(code) { - return this._map[code]; - }, - - contains: function(code) { - return this._map[code] !== undefined; - }, - - forEach: function(callback) { - // Most maps have fewer than 65536 entries, and for those we use normal - // array iteration. But really sparse tables are possible -- e.g. with - // indices in the *billions*. For such tables we use for..in, which isn't - // ideal because it stringifies the indices for all present elements, but - // it does avoid iterating over every undefined entry. - var map = this._map; - var length = map.length; - var i; - if (length <= 0x10000) { - for (i = 0; i < length; i++) { - if (map[i] !== undefined) { - callback(i, map[i]); - } - } - } else { - for (i in this._map) { - callback(i, map[i]); - } - } - }, - - charCodeOf: function(value) { - return this._map.indexOf(value); - }, - - getMap: function() { - return this._map; - }, - - readCharCode: function(str, offset, out) { - var c = 0; - var codespaceRanges = this.codespaceRanges; - var codespaceRangesLen = this.codespaceRanges.length; - // 9.7.6.2 CMap Mapping - // The code length is at most 4. - for (var n = 0; n < codespaceRangesLen; n++) { - c = ((c << 8) | str.charCodeAt(offset + n)) >>> 0; - // Check each codespace range to see if it falls within. - var codespaceRange = codespaceRanges[n]; - for (var k = 0, kk = codespaceRange.length; k < kk;) { - var low = codespaceRange[k++]; - var high = codespaceRange[k++]; - if (c >= low && c <= high) { - out.charcode = c; - out.length = n + 1; - return; - } - } - } - out.charcode = 0; - out.length = 1; - }, - - get isIdentityCMap() { - if (!(this.name === 'Identity-H' || this.name === 'Identity-V')) { - return false; - } - if (this._map.length !== 0x10000) { - return false; - } - for (var i = 0; i < 0x10000; i++) { - if (this._map[i] !== i) { - return false; - } - } - return true; - } - }; - return CMap; -})(); - -// A special case of CMap, where the _map array implicitly has a length of -// 65536 and each element is equal to its index. -var IdentityCMap = (function IdentityCMapClosure() { - function IdentityCMap(vertical, n) { - CMap.call(this); - this.vertical = vertical; - this.addCodespaceRange(n, 0, 0xffff); - } - Util.inherit(IdentityCMap, CMap, {}); - - IdentityCMap.prototype = { - addCodespaceRange: CMap.prototype.addCodespaceRange, - - mapCidRange: function(low, high, dstLow) { - error('should not call mapCidRange'); - }, - - mapBfRange: function(low, high, dstLow) { - error('should not call mapBfRange'); - }, - - mapBfRangeToArray: function(low, high, array) { - error('should not call mapBfRangeToArray'); - }, - - mapOne: function(src, dst) { - error('should not call mapCidOne'); - }, - - lookup: function(code) { - return (isInt(code) && code <= 0xffff) ? code : undefined; - }, - - contains: function(code) { - return isInt(code) && code <= 0xffff; - }, - - forEach: function(callback) { - for (var i = 0; i <= 0xffff; i++) { - callback(i, i); - } - }, - - charCodeOf: function(value) { - return (isInt(value) && value <= 0xffff) ? value : -1; - }, - - getMap: function() { - // Sometimes identity maps must be instantiated, but it's rare. - var map = new Array(0x10000); - for (var i = 0; i <= 0xffff; i++) { - map[i] = i; - } - return map; - }, - - readCharCode: CMap.prototype.readCharCode, - - get isIdentityCMap() { - error('should not access .isIdentityCMap'); - } - }; - - return IdentityCMap; -})(); - -var BinaryCMapReader = (function BinaryCMapReaderClosure() { - function fetchBinaryData(url) { - var nonBinaryRequest = PDFJS.disableWorker; - var request = new XMLHttpRequest(); - request.open('GET', url, false); - if (!nonBinaryRequest) { - try { - request.responseType = 'arraybuffer'; - nonBinaryRequest = request.responseType !== 'arraybuffer'; - } catch (e) { - nonBinaryRequest = true; - } - } - if (nonBinaryRequest && request.overrideMimeType) { - request.overrideMimeType('text/plain; charset=x-user-defined'); - } - request.send(null); - if (nonBinaryRequest ? !request.responseText : !request.response) { - error('Unable to get binary cMap at: ' + url); - } - if (nonBinaryRequest) { - var data = Array.prototype.map.call(request.responseText, function (ch) { - return ch.charCodeAt(0) & 255; - }); - return new Uint8Array(data); - } - return new Uint8Array(request.response); - } - - function hexToInt(a, size) { - var n = 0; - for (var i = 0; i <= size; i++) { - n = (n << 8) | a[i]; - } - return n >>> 0; - } - - function hexToStr(a, size) { - // This code is hot. Special-case some common values to avoid creating an - // object with subarray(). - if (size === 1) { - return String.fromCharCode(a[0], a[1]); - } - if (size === 3) { - return String.fromCharCode(a[0], a[1], a[2], a[3]); - } - return String.fromCharCode.apply(null, a.subarray(0, size + 1)); - } - - function addHex(a, b, size) { - var c = 0; - for (var i = size; i >= 0; i--) { - c += a[i] + b[i]; - a[i] = c & 255; - c >>= 8; - } - } - - function incHex(a, size) { - var c = 1; - for (var i = size; i >= 0 && c > 0; i--) { - c += a[i]; - a[i] = c & 255; - c >>= 8; - } - } - - var MAX_NUM_SIZE = 16; - var MAX_ENCODED_NUM_SIZE = 19; // ceil(MAX_NUM_SIZE * 7 / 8) - - function BinaryCMapStream(data) { - this.buffer = data; - this.pos = 0; - this.end = data.length; - this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE); - } - - BinaryCMapStream.prototype = { - readByte: function () { - if (this.pos >= this.end) { - return -1; - } - return this.buffer[this.pos++]; - }, - readNumber: function () { - var n = 0; - var last; - do { - var b = this.readByte(); - if (b < 0) { - error('unexpected EOF in bcmap'); - } - last = !(b & 0x80); - n = (n << 7) | (b & 0x7F); - } while (!last); - return n; - }, - readSigned: function () { - var n = this.readNumber(); - return (n & 1) ? ~(n >>> 1) : n >>> 1; - }, - readHex: function (num, size) { - num.set(this.buffer.subarray(this.pos, - this.pos + size + 1)); - this.pos += size + 1; - }, - readHexNumber: function (num, size) { - var last; - var stack = this.tmpBuf, sp = 0; - do { - var b = this.readByte(); - if (b < 0) { - error('unexpected EOF in bcmap'); - } - last = !(b & 0x80); - stack[sp++] = b & 0x7F; - } while (!last); - var i = size, buffer = 0, bufferSize = 0; - while (i >= 0) { - while (bufferSize < 8 && stack.length > 0) { - buffer = (stack[--sp] << bufferSize) | buffer; - bufferSize += 7; - } - num[i] = buffer & 255; - i--; - buffer >>= 8; - bufferSize -= 8; - } - }, - readHexSigned: function (num, size) { - this.readHexNumber(num, size); - var sign = num[size] & 1 ? 255 : 0; - var c = 0; - for (var i = 0; i <= size; i++) { - c = ((c & 1) << 8) | num[i]; - num[i] = (c >> 1) ^ sign; - } - }, - readString: function () { - var len = this.readNumber(); - var s = ''; - for (var i = 0; i < len; i++) { - s += String.fromCharCode(this.readNumber()); - } - return s; - } - }; - - function processBinaryCMap(url, cMap, extend) { - var data = fetchBinaryData(url); - var stream = new BinaryCMapStream(data); - - var header = stream.readByte(); - cMap.vertical = !!(header & 1); - - var useCMap = null; - var start = new Uint8Array(MAX_NUM_SIZE); - var end = new Uint8Array(MAX_NUM_SIZE); - var char = new Uint8Array(MAX_NUM_SIZE); - var charCode = new Uint8Array(MAX_NUM_SIZE); - var tmp = new Uint8Array(MAX_NUM_SIZE); - var code; - - var b; - while ((b = stream.readByte()) >= 0) { - var type = b >> 5; - if (type === 7) { // metadata, e.g. comment or usecmap - switch (b & 0x1F) { - case 0: - stream.readString(); // skipping comment - break; - case 1: - useCMap = stream.readString(); - break; - } - continue; - } - var sequence = !!(b & 0x10); - var dataSize = b & 15; - - assert(dataSize + 1 <= MAX_NUM_SIZE); - - var ucs2DataSize = 1; - var subitemsCount = stream.readNumber(); - var i; - switch (type) { - case 0: // codespacerange - stream.readHex(start, dataSize); - stream.readHexNumber(end, dataSize); - addHex(end, start, dataSize); - cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), - hexToInt(end, dataSize)); - for (i = 1; i < subitemsCount; i++) { - incHex(end, dataSize); - stream.readHexNumber(start, dataSize); - addHex(start, end, dataSize); - stream.readHexNumber(end, dataSize); - addHex(end, start, dataSize); - cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), - hexToInt(end, dataSize)); - } - break; - case 1: // notdefrange - stream.readHex(start, dataSize); - stream.readHexNumber(end, dataSize); - addHex(end, start, dataSize); - code = stream.readNumber(); - // undefined range, skipping - for (i = 1; i < subitemsCount; i++) { - incHex(end, dataSize); - stream.readHexNumber(start, dataSize); - addHex(start, end, dataSize); - stream.readHexNumber(end, dataSize); - addHex(end, start, dataSize); - code = stream.readNumber(); - // nop - } - break; - case 2: // cidchar - stream.readHex(char, dataSize); - code = stream.readNumber(); - cMap.mapOne(hexToInt(char, dataSize), code); - for (i = 1; i < subitemsCount; i++) { - incHex(char, dataSize); - if (!sequence) { - stream.readHexNumber(tmp, dataSize); - addHex(char, tmp, dataSize); - } - code = stream.readSigned() + (code + 1); - cMap.mapOne(hexToInt(char, dataSize), code); - } - break; - case 3: // cidrange - stream.readHex(start, dataSize); - stream.readHexNumber(end, dataSize); - addHex(end, start, dataSize); - code = stream.readNumber(); - cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), - code); - for (i = 1; i < subitemsCount; i++) { - incHex(end, dataSize); - if (!sequence) { - stream.readHexNumber(start, dataSize); - addHex(start, end, dataSize); - } else { - start.set(end); - } - stream.readHexNumber(end, dataSize); - addHex(end, start, dataSize); - code = stream.readNumber(); - cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), - code); - } - break; - case 4: // bfchar - stream.readHex(char, ucs2DataSize); - stream.readHex(charCode, dataSize); - cMap.mapOne(hexToInt(char, ucs2DataSize), - hexToStr(charCode, dataSize)); - for (i = 1; i < subitemsCount; i++) { - incHex(char, ucs2DataSize); - if (!sequence) { - stream.readHexNumber(tmp, ucs2DataSize); - addHex(char, tmp, ucs2DataSize); - } - incHex(charCode, dataSize); - stream.readHexSigned(tmp, dataSize); - addHex(charCode, tmp, dataSize); - cMap.mapOne(hexToInt(char, ucs2DataSize), - hexToStr(charCode, dataSize)); - } - break; - case 5: // bfrange - stream.readHex(start, ucs2DataSize); - stream.readHexNumber(end, ucs2DataSize); - addHex(end, start, ucs2DataSize); - stream.readHex(charCode, dataSize); - cMap.mapBfRange(hexToInt(start, ucs2DataSize), - hexToInt(end, ucs2DataSize), - hexToStr(charCode, dataSize)); - for (i = 1; i < subitemsCount; i++) { - incHex(end, ucs2DataSize); - if (!sequence) { - stream.readHexNumber(start, ucs2DataSize); - addHex(start, end, ucs2DataSize); - } else { - start.set(end); - } - stream.readHexNumber(end, ucs2DataSize); - addHex(end, start, ucs2DataSize); - stream.readHex(charCode, dataSize); - cMap.mapBfRange(hexToInt(start, ucs2DataSize), - hexToInt(end, ucs2DataSize), - hexToStr(charCode, dataSize)); - } - break; - default: - error('Unknown type: ' + type); - break; - } - } - - if (useCMap) { - extend(useCMap); - } - return cMap; - } - - function BinaryCMapReader() {} - - BinaryCMapReader.prototype = { - read: processBinaryCMap - }; - - return BinaryCMapReader; -})(); - -var CMapFactory = (function CMapFactoryClosure() { - function strToInt(str) { - var a = 0; - for (var i = 0; i < str.length; i++) { - a = (a << 8) | str.charCodeAt(i); - } - return a >>> 0; - } - - function expectString(obj) { - if (!isString(obj)) { - error('Malformed CMap: expected string.'); - } - } - - function expectInt(obj) { - if (!isInt(obj)) { - error('Malformed CMap: expected int.'); - } - } - - function parseBfChar(cMap, lexer) { - while (true) { - var obj = lexer.getObj(); - if (isEOF(obj)) { - break; - } - if (isCmd(obj, 'endbfchar')) { - return; - } - expectString(obj); - var src = strToInt(obj); - obj = lexer.getObj(); - // TODO are /dstName used? - expectString(obj); - var dst = obj; - cMap.mapOne(src, dst); - } - } - - function parseBfRange(cMap, lexer) { - while (true) { - var obj = lexer.getObj(); - if (isEOF(obj)) { - break; - } - if (isCmd(obj, 'endbfrange')) { - return; - } - expectString(obj); - var low = strToInt(obj); - obj = lexer.getObj(); - expectString(obj); - var high = strToInt(obj); - obj = lexer.getObj(); - if (isInt(obj) || isString(obj)) { - var dstLow = isInt(obj) ? String.fromCharCode(obj) : obj; - cMap.mapBfRange(low, high, dstLow); - } else if (isCmd(obj, '[')) { - obj = lexer.getObj(); - var array = []; - while (!isCmd(obj, ']') && !isEOF(obj)) { - array.push(obj); - obj = lexer.getObj(); - } - cMap.mapBfRangeToArray(low, high, array); - } else { - break; - } - } - error('Invalid bf range.'); - } - - function parseCidChar(cMap, lexer) { - while (true) { - var obj = lexer.getObj(); - if (isEOF(obj)) { - break; - } - if (isCmd(obj, 'endcidchar')) { - return; - } - expectString(obj); - var src = strToInt(obj); - obj = lexer.getObj(); - expectInt(obj); - var dst = obj; - cMap.mapOne(src, dst); - } - } - - function parseCidRange(cMap, lexer) { - while (true) { - var obj = lexer.getObj(); - if (isEOF(obj)) { - break; - } - if (isCmd(obj, 'endcidrange')) { - return; - } - expectString(obj); - var low = strToInt(obj); - obj = lexer.getObj(); - expectString(obj); - var high = strToInt(obj); - obj = lexer.getObj(); - expectInt(obj); - var dstLow = obj; - cMap.mapCidRange(low, high, dstLow); - } - } - - function parseCodespaceRange(cMap, lexer) { - while (true) { - var obj = lexer.getObj(); - if (isEOF(obj)) { - break; - } - if (isCmd(obj, 'endcodespacerange')) { - return; - } - if (!isString(obj)) { - break; - } - var low = strToInt(obj); - obj = lexer.getObj(); - if (!isString(obj)) { - break; - } - var high = strToInt(obj); - cMap.addCodespaceRange(obj.length, low, high); - } - error('Invalid codespace range.'); - } - - function parseWMode(cMap, lexer) { - var obj = lexer.getObj(); - if (isInt(obj)) { - cMap.vertical = !!obj; - } - } - - function parseCMapName(cMap, lexer) { - var obj = lexer.getObj(); - if (isName(obj) && isString(obj.name)) { - cMap.name = obj.name; - } - } - - function parseCMap(cMap, lexer, builtInCMapParams, useCMap) { - var previous; - var embededUseCMap; - objLoop: while (true) { - var obj = lexer.getObj(); - if (isEOF(obj)) { - break; - } else if (isName(obj)) { - if (obj.name === 'WMode') { - parseWMode(cMap, lexer); - } else if (obj.name === 'CMapName') { - parseCMapName(cMap, lexer); - } - previous = obj; - } else if (isCmd(obj)) { - switch (obj.cmd) { - case 'endcmap': - break objLoop; - case 'usecmap': - if (isName(previous)) { - embededUseCMap = previous.name; - } - break; - case 'begincodespacerange': - parseCodespaceRange(cMap, lexer); - break; - case 'beginbfchar': - parseBfChar(cMap, lexer); - break; - case 'begincidchar': - parseCidChar(cMap, lexer); - break; - case 'beginbfrange': - parseBfRange(cMap, lexer); - break; - case 'begincidrange': - parseCidRange(cMap, lexer); - break; - } - } - } - - if (!useCMap && embededUseCMap) { - // Load the usecmap definition from the file only if there wasn't one - // specified. - useCMap = embededUseCMap; - } - if (useCMap) { - extendCMap(cMap, builtInCMapParams, useCMap); - } - } - - function extendCMap(cMap, builtInCMapParams, useCMap) { - cMap.useCMap = createBuiltInCMap(useCMap, builtInCMapParams); - // If there aren't any code space ranges defined clone all the parent ones - // into this cMap. - if (cMap.numCodespaceRanges === 0) { - var useCodespaceRanges = cMap.useCMap.codespaceRanges; - for (var i = 0; i < useCodespaceRanges.length; i++) { - cMap.codespaceRanges[i] = useCodespaceRanges[i].slice(); - } - cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges; - } - // Merge the map into the current one, making sure not to override - // any previously defined entries. - cMap.useCMap.forEach(function(key, value) { - if (!cMap.contains(key)) { - cMap.mapOne(key, cMap.useCMap.lookup(key)); - } - }); - } - - function parseBinaryCMap(name, builtInCMapParams) { - var url = builtInCMapParams.url + name + '.bcmap'; - var cMap = new CMap(true); - new BinaryCMapReader().read(url, cMap, function (useCMap) { - extendCMap(cMap, builtInCMapParams, useCMap); - }); - return cMap; - } - - function createBuiltInCMap(name, builtInCMapParams) { - if (name === 'Identity-H') { - return new IdentityCMap(false, 2); - } else if (name === 'Identity-V') { - return new IdentityCMap(true, 2); - } - if (BUILT_IN_CMAPS.indexOf(name) === -1) { - error('Unknown cMap name: ' + name); - } - assert(builtInCMapParams, 'built-in cMap parameters are not provided'); - - if (builtInCMapParams.packed) { - return parseBinaryCMap(name, builtInCMapParams); - } - - var request = new XMLHttpRequest(); - var url = builtInCMapParams.url + name; - request.open('GET', url, false); - request.send(null); - if (!request.responseText) { - error('Unable to get cMap at: ' + url); - } - var cMap = new CMap(true); - var lexer = new Lexer(new StringStream(request.responseText)); - parseCMap(cMap, lexer, builtInCMapParams, null); - return cMap; - } - - return { - create: function (encoding, builtInCMapParams, useCMap) { - if (isName(encoding)) { - return createBuiltInCMap(encoding.name, builtInCMapParams); - } else if (isStream(encoding)) { - var cMap = new CMap(); - var lexer = new Lexer(encoding); - try { - parseCMap(cMap, lexer, builtInCMapParams, useCMap); - } catch (e) { - warn('Invalid CMap data. ' + e); - } - if (cMap.isIdentityCMap) { - return createBuiltInCMap(cMap.name, builtInCMapParams); - } - return cMap; - } - error('Encoding required.'); - } - }; -})(); - - -// Unicode Private Use Area -var PRIVATE_USE_OFFSET_START = 0xE000; -var PRIVATE_USE_OFFSET_END = 0xF8FF; -var SKIP_PRIVATE_USE_RANGE_F000_TO_F01F = false; - -// PDF Glyph Space Units are one Thousandth of a TextSpace Unit -// except for Type 3 fonts -var PDF_GLYPH_SPACE_UNITS = 1000; - -// Hinting is currently disabled due to unknown problems on windows -// in tracemonkey and various other pdfs with type1 fonts. -var HINTING_ENABLED = false; - -// Accented charactars are not displayed properly on windows, using this flag -// to control analysis of seac charstrings. -var SEAC_ANALYSIS_ENABLED = false; - -var FontFlags = { - FixedPitch: 1, - Serif: 2, - Symbolic: 4, - Script: 8, - Nonsymbolic: 32, - Italic: 64, - AllCap: 65536, - SmallCap: 131072, - ForceBold: 262144 -}; - -var Encodings = { - ExpertEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'exclamsmall', 'Hungarumlautsmall', '', 'dollaroldstyle', - 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', - 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', - 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', - 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', - 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', - 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', - 'questionsmall', '', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', - 'esuperior', '', '', 'isuperior', '', '', 'lsuperior', 'msuperior', - 'nsuperior', 'osuperior', '', '', 'rsuperior', 'ssuperior', 'tsuperior', - '', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', - 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', - 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', - 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', - 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', - 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', - 'onefitted', 'rupiah', 'Tildesmall', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', - '', '', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', - 'Caronsmall', '', 'Dotaccentsmall', '', '', 'Macronsmall', '', '', - 'figuredash', 'hypheninferior', '', '', 'Ogoneksmall', 'Ringsmall', - 'Cedillasmall', '', '', '', 'onequarter', 'onehalf', 'threequarters', - 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', - 'seveneighths', 'onethird', 'twothirds', '', '', 'zerosuperior', - 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', - 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', - 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', - 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', - 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', - 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', - 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', - 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', - 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', - 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', - 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', - 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', - 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', - 'Ydieresissmall'], - MacExpertEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'exclamsmall', 'Hungarumlautsmall', 'centoldstyle', - 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', - 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', - 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', - 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', - 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', - 'nineoldstyle', 'colon', 'semicolon', '', 'threequartersemdash', '', - 'questionsmall', '', '', '', '', 'Ethsmall', '', '', 'onequarter', - 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', - 'seveneighths', 'onethird', 'twothirds', '', '', '', '', '', '', 'ff', - 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 'parenrightinferior', - 'Circumflexsmall', 'hypheninferior', 'Gravesmall', 'Asmall', 'Bsmall', - 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', - 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', - 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', - 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', - 'Tildesmall', '', '', 'asuperior', 'centsuperior', '', '', '', '', - 'Aacutesmall', 'Agravesmall', 'Acircumflexsmall', 'Adieresissmall', - 'Atildesmall', 'Aringsmall', 'Ccedillasmall', 'Eacutesmall', 'Egravesmall', - 'Ecircumflexsmall', 'Edieresissmall', 'Iacutesmall', 'Igravesmall', - 'Icircumflexsmall', 'Idieresissmall', 'Ntildesmall', 'Oacutesmall', - 'Ogravesmall', 'Ocircumflexsmall', 'Odieresissmall', 'Otildesmall', - 'Uacutesmall', 'Ugravesmall', 'Ucircumflexsmall', 'Udieresissmall', '', - 'eightsuperior', 'fourinferior', 'threeinferior', 'sixinferior', - 'eightinferior', 'seveninferior', 'Scaronsmall', '', 'centinferior', - 'twoinferior', '', 'Dieresissmall', '', 'Caronsmall', 'osuperior', - 'fiveinferior', '', 'commainferior', 'periodinferior', 'Yacutesmall', '', - 'dollarinferior', '', 'Thornsmall', '', 'nineinferior', 'zeroinferior', - 'Zcaronsmall', 'AEsmall', 'Oslashsmall', 'questiondownsmall', - 'oneinferior', 'Lslashsmall', '', '', '', '', '', '', 'Cedillasmall', '', - '', '', '', '', 'OEsmall', 'figuredash', 'hyphensuperior', '', '', '', '', - 'exclamdownsmall', '', 'Ydieresissmall', '', 'onesuperior', 'twosuperior', - 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', - 'sevensuperior', 'ninesuperior', 'zerosuperior', '', 'esuperior', - 'rsuperior', 'tsuperior', '', '', 'isuperior', 'ssuperior', 'dsuperior', - '', '', '', '', '', 'lsuperior', 'Ogoneksmall', 'Brevesmall', - 'Macronsmall', 'bsuperior', 'nsuperior', 'msuperior', 'commasuperior', - 'periodsuperior', 'Dotaccentsmall', 'Ringsmall'], - MacRomanEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', - 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', - 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', - 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', - 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', - 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', - 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', - 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', - 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', - 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '', - 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', - 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde', - 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', - 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', - 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', - 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', - 'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', - 'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', - 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', - 'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', - 'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', - 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', - 'guillemotright', 'ellipsis', 'space', 'Agrave', 'Atilde', 'Otilde', 'OE', - 'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', - 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', - 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', - 'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand', - 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', - 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', - 'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', - 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', - 'ogonek', 'caron'], - StandardEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', - 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', - 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', - 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', - 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', - 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', - 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', - 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', - 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdown', - 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', - 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', - 'guilsinglright', 'fi', 'fl', '', 'endash', 'dagger', 'daggerdbl', - 'periodcentered', '', 'paragraph', 'bullet', 'quotesinglbase', - 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', - 'perthousand', '', 'questiondown', '', 'grave', 'acute', 'circumflex', - 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', '', 'ring', 'cedilla', - '', 'hungarumlaut', 'ogonek', 'caron', 'emdash', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', 'AE', '', 'ordfeminine', '', '', - '', '', 'Lslash', 'Oslash', 'OE', 'ordmasculine', '', '', '', '', '', 'ae', - '', '', '', 'dotlessi', '', '', 'lslash', 'oslash', 'oe', 'germandbls'], - WinAnsiEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', - 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', - 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', - 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', - 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', - 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', - 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', - 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', - 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', - 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', - 'bullet', 'Euro', 'bullet', 'quotesinglbase', 'florin', 'quotedblbase', - 'ellipsis', 'dagger', 'daggerdbl', 'circumflex', 'perthousand', 'Scaron', - 'guilsinglleft', 'OE', 'bullet', 'Zcaron', 'bullet', 'bullet', 'quoteleft', - 'quoteright', 'quotedblleft', 'quotedblright', 'bullet', 'endash', - 'emdash', 'tilde', 'trademark', 'scaron', 'guilsinglright', 'oe', 'bullet', - 'zcaron', 'Ydieresis', 'space', 'exclamdown', 'cent', 'sterling', - 'currency', 'yen', 'brokenbar', 'section', 'dieresis', 'copyright', - 'ordfeminine', 'guillemotleft', 'logicalnot', 'hyphen', 'registered', - 'macron', 'degree', 'plusminus', 'twosuperior', 'threesuperior', 'acute', - 'mu', 'paragraph', 'periodcentered', 'cedilla', 'onesuperior', - 'ordmasculine', 'guillemotright', 'onequarter', 'onehalf', 'threequarters', - 'questiondown', 'Agrave', 'Aacute', 'Acircumflex', 'Atilde', 'Adieresis', - 'Aring', 'AE', 'Ccedilla', 'Egrave', 'Eacute', 'Ecircumflex', 'Edieresis', - 'Igrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Eth', 'Ntilde', 'Ograve', - 'Oacute', 'Ocircumflex', 'Otilde', 'Odieresis', 'multiply', 'Oslash', - 'Ugrave', 'Uacute', 'Ucircumflex', 'Udieresis', 'Yacute', 'Thorn', - 'germandbls', 'agrave', 'aacute', 'acircumflex', 'atilde', 'adieresis', - 'aring', 'ae', 'ccedilla', 'egrave', 'eacute', 'ecircumflex', 'edieresis', - 'igrave', 'iacute', 'icircumflex', 'idieresis', 'eth', 'ntilde', 'ograve', - 'oacute', 'ocircumflex', 'otilde', 'odieresis', 'divide', 'oslash', - 'ugrave', 'uacute', 'ucircumflex', 'udieresis', 'yacute', 'thorn', - 'ydieresis'], - SymbolSetEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'exclam', 'universal', 'numbersign', 'existential', 'percent', - 'ampersand', 'suchthat', 'parenleft', 'parenright', 'asteriskmath', 'plus', - 'comma', 'minus', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', - 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', - 'equal', 'greater', 'question', 'congruent', 'Alpha', 'Beta', 'Chi', - 'Delta', 'Epsilon', 'Phi', 'Gamma', 'Eta', 'Iota', 'theta1', 'Kappa', - 'Lambda', 'Mu', 'Nu', 'Omicron', 'Pi', 'Theta', 'Rho', 'Sigma', 'Tau', - 'Upsilon', 'sigma1', 'Omega', 'Xi', 'Psi', 'Zeta', 'bracketleft', - 'therefore', 'bracketright', 'perpendicular', 'underscore', 'radicalex', - 'alpha', 'beta', 'chi', 'delta', 'epsilon', 'phi', 'gamma', 'eta', 'iota', - 'phi1', 'kappa', 'lambda', 'mu', 'nu', 'omicron', 'pi', 'theta', 'rho', - 'sigma', 'tau', 'upsilon', 'omega1', 'omega', 'xi', 'psi', 'zeta', - 'braceleft', 'bar', 'braceright', 'similar', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', 'Euro', 'Upsilon1', 'minute', 'lessequal', - 'fraction', 'infinity', 'florin', 'club', 'diamond', 'heart', 'spade', - 'arrowboth', 'arrowleft', 'arrowup', 'arrowright', 'arrowdown', 'degree', - 'plusminus', 'second', 'greaterequal', 'multiply', 'proportional', - 'partialdiff', 'bullet', 'divide', 'notequal', 'equivalence', - 'approxequal', 'ellipsis', 'arrowvertex', 'arrowhorizex', 'carriagereturn', - 'aleph', 'Ifraktur', 'Rfraktur', 'weierstrass', 'circlemultiply', - 'circleplus', 'emptyset', 'intersection', 'union', 'propersuperset', - 'reflexsuperset', 'notsubset', 'propersubset', 'reflexsubset', 'element', - 'notelement', 'angle', 'gradient', 'registerserif', 'copyrightserif', - 'trademarkserif', 'product', 'radical', 'dotmath', 'logicalnot', - 'logicaland', 'logicalor', 'arrowdblboth', 'arrowdblleft', 'arrowdblup', - 'arrowdblright', 'arrowdbldown', 'lozenge', 'angleleft', 'registersans', - 'copyrightsans', 'trademarksans', 'summation', 'parenlefttp', - 'parenleftex', 'parenleftbt', 'bracketlefttp', 'bracketleftex', - 'bracketleftbt', 'bracelefttp', 'braceleftmid', 'braceleftbt', 'braceex', - '', 'angleright', 'integral', 'integraltp', 'integralex', 'integralbt', - 'parenrighttp', 'parenrightex', 'parenrightbt', 'bracketrighttp', - 'bracketrightex', 'bracketrightbt', 'bracerighttp', 'bracerightmid', - 'bracerightbt'], - ZapfDingbatsEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', - 'space', 'a1', 'a2', 'a202', 'a3', 'a4', 'a5', 'a119', 'a118', 'a117', - 'a11', 'a12', 'a13', 'a14', 'a15', 'a16', 'a105', 'a17', 'a18', 'a19', - 'a20', 'a21', 'a22', 'a23', 'a24', 'a25', 'a26', 'a27', 'a28', 'a6', 'a7', - 'a8', 'a9', 'a10', 'a29', 'a30', 'a31', 'a32', 'a33', 'a34', 'a35', 'a36', - 'a37', 'a38', 'a39', 'a40', 'a41', 'a42', 'a43', 'a44', 'a45', 'a46', - 'a47', 'a48', 'a49', 'a50', 'a51', 'a52', 'a53', 'a54', 'a55', 'a56', - 'a57', 'a58', 'a59', 'a60', 'a61', 'a62', 'a63', 'a64', 'a65', 'a66', - 'a67', 'a68', 'a69', 'a70', 'a71', 'a72', 'a73', 'a74', 'a203', 'a75', - 'a204', 'a76', 'a77', 'a78', 'a79', 'a81', 'a82', 'a83', 'a84', 'a97', - 'a98', 'a99', 'a100', '', 'a89', 'a90', 'a93', 'a94', 'a91', 'a92', 'a205', - 'a85', 'a206', 'a86', 'a87', 'a88', 'a95', 'a96', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', '', '', '', 'a101', 'a102', 'a103', - 'a104', 'a106', 'a107', 'a108', 'a112', 'a111', 'a110', 'a109', 'a120', - 'a121', 'a122', 'a123', 'a124', 'a125', 'a126', 'a127', 'a128', 'a129', - 'a130', 'a131', 'a132', 'a133', 'a134', 'a135', 'a136', 'a137', 'a138', - 'a139', 'a140', 'a141', 'a142', 'a143', 'a144', 'a145', 'a146', 'a147', - 'a148', 'a149', 'a150', 'a151', 'a152', 'a153', 'a154', 'a155', 'a156', - 'a157', 'a158', 'a159', 'a160', 'a161', 'a163', 'a164', 'a196', 'a165', - 'a192', 'a166', 'a167', 'a168', 'a169', 'a170', 'a171', 'a172', 'a173', - 'a162', 'a174', 'a175', 'a176', 'a177', 'a178', 'a179', 'a193', 'a180', - 'a199', 'a181', 'a200', 'a182', '', 'a201', 'a183', 'a184', 'a197', 'a185', - 'a194', 'a198', 'a186', 'a195', 'a187', 'a188', 'a189', 'a190', 'a191'] -}; - -/** - * Hold a map of decoded fonts and of the standard fourteen Type1 - * fonts and their acronyms. - */ -var stdFontMap = { - 'ArialNarrow': 'Helvetica', - 'ArialNarrow-Bold': 'Helvetica-Bold', - 'ArialNarrow-BoldItalic': 'Helvetica-BoldOblique', - 'ArialNarrow-Italic': 'Helvetica-Oblique', - 'ArialBlack': 'Helvetica', - 'ArialBlack-Bold': 'Helvetica-Bold', - 'ArialBlack-BoldItalic': 'Helvetica-BoldOblique', - 'ArialBlack-Italic': 'Helvetica-Oblique', - 'Arial': 'Helvetica', - 'Arial-Bold': 'Helvetica-Bold', - 'Arial-BoldItalic': 'Helvetica-BoldOblique', - 'Arial-Italic': 'Helvetica-Oblique', - 'Arial-BoldItalicMT': 'Helvetica-BoldOblique', - 'Arial-BoldMT': 'Helvetica-Bold', - 'Arial-ItalicMT': 'Helvetica-Oblique', - 'ArialMT': 'Helvetica', - 'Courier-Bold': 'Courier-Bold', - 'Courier-BoldItalic': 'Courier-BoldOblique', - 'Courier-Italic': 'Courier-Oblique', - 'CourierNew': 'Courier', - 'CourierNew-Bold': 'Courier-Bold', - 'CourierNew-BoldItalic': 'Courier-BoldOblique', - 'CourierNew-Italic': 'Courier-Oblique', - 'CourierNewPS-BoldItalicMT': 'Courier-BoldOblique', - 'CourierNewPS-BoldMT': 'Courier-Bold', - 'CourierNewPS-ItalicMT': 'Courier-Oblique', - 'CourierNewPSMT': 'Courier', - 'Helvetica': 'Helvetica', - 'Helvetica-Bold': 'Helvetica-Bold', - 'Helvetica-BoldItalic': 'Helvetica-BoldOblique', - 'Helvetica-BoldOblique': 'Helvetica-BoldOblique', - 'Helvetica-Italic': 'Helvetica-Oblique', - 'Helvetica-Oblique':'Helvetica-Oblique', - 'Symbol-Bold': 'Symbol', - 'Symbol-BoldItalic': 'Symbol', - 'Symbol-Italic': 'Symbol', - 'TimesNewRoman': 'Times-Roman', - 'TimesNewRoman-Bold': 'Times-Bold', - 'TimesNewRoman-BoldItalic': 'Times-BoldItalic', - 'TimesNewRoman-Italic': 'Times-Italic', - 'TimesNewRomanPS': 'Times-Roman', - 'TimesNewRomanPS-Bold': 'Times-Bold', - 'TimesNewRomanPS-BoldItalic': 'Times-BoldItalic', - 'TimesNewRomanPS-BoldItalicMT': 'Times-BoldItalic', - 'TimesNewRomanPS-BoldMT': 'Times-Bold', - 'TimesNewRomanPS-Italic': 'Times-Italic', - 'TimesNewRomanPS-ItalicMT': 'Times-Italic', - 'TimesNewRomanPSMT': 'Times-Roman', - 'TimesNewRomanPSMT-Bold': 'Times-Bold', - 'TimesNewRomanPSMT-BoldItalic': 'Times-BoldItalic', - 'TimesNewRomanPSMT-Italic': 'Times-Italic' -}; - -/** - * Holds the map of the non-standard fonts that might be included as a standard - * fonts without glyph data. - */ -var nonStdFontMap = { - 'CenturyGothic': 'Helvetica', - 'CenturyGothic-Bold': 'Helvetica-Bold', - 'CenturyGothic-BoldItalic': 'Helvetica-BoldOblique', - 'CenturyGothic-Italic': 'Helvetica-Oblique', - 'ComicSansMS': 'Comic Sans MS', - 'ComicSansMS-Bold': 'Comic Sans MS-Bold', - 'ComicSansMS-BoldItalic': 'Comic Sans MS-BoldItalic', - 'ComicSansMS-Italic': 'Comic Sans MS-Italic', - 'LucidaConsole': 'Courier', - 'LucidaConsole-Bold': 'Courier-Bold', - 'LucidaConsole-BoldItalic': 'Courier-BoldOblique', - 'LucidaConsole-Italic': 'Courier-Oblique', - 'MS-Gothic': 'MS Gothic', - 'MS-Gothic-Bold': 'MS Gothic-Bold', - 'MS-Gothic-BoldItalic': 'MS Gothic-BoldItalic', - 'MS-Gothic-Italic': 'MS Gothic-Italic', - 'MS-Mincho': 'MS Mincho', - 'MS-Mincho-Bold': 'MS Mincho-Bold', - 'MS-Mincho-BoldItalic': 'MS Mincho-BoldItalic', - 'MS-Mincho-Italic': 'MS Mincho-Italic', - 'MS-PGothic': 'MS PGothic', - 'MS-PGothic-Bold': 'MS PGothic-Bold', - 'MS-PGothic-BoldItalic': 'MS PGothic-BoldItalic', - 'MS-PGothic-Italic': 'MS PGothic-Italic', - 'MS-PMincho': 'MS PMincho', - 'MS-PMincho-Bold': 'MS PMincho-Bold', - 'MS-PMincho-BoldItalic': 'MS PMincho-BoldItalic', - 'MS-PMincho-Italic': 'MS PMincho-Italic', - 'Wingdings': 'ZapfDingbats' -}; - -var serifFonts = { - 'Adobe Jenson': true, 'Adobe Text': true, 'Albertus': true, - 'Aldus': true, 'Alexandria': true, 'Algerian': true, - 'American Typewriter': true, 'Antiqua': true, 'Apex': true, - 'Arno': true, 'Aster': true, 'Aurora': true, - 'Baskerville': true, 'Bell': true, 'Bembo': true, - 'Bembo Schoolbook': true, 'Benguiat': true, 'Berkeley Old Style': true, - 'Bernhard Modern': true, 'Berthold City': true, 'Bodoni': true, - 'Bauer Bodoni': true, 'Book Antiqua': true, 'Bookman': true, - 'Bordeaux Roman': true, 'Californian FB': true, 'Calisto': true, - 'Calvert': true, 'Capitals': true, 'Cambria': true, - 'Cartier': true, 'Caslon': true, 'Catull': true, - 'Centaur': true, 'Century Old Style': true, 'Century Schoolbook': true, - 'Chaparral': true, 'Charis SIL': true, 'Cheltenham': true, - 'Cholla Slab': true, 'Clarendon': true, 'Clearface': true, - 'Cochin': true, 'Colonna': true, 'Computer Modern': true, - 'Concrete Roman': true, 'Constantia': true, 'Cooper Black': true, - 'Corona': true, 'Ecotype': true, 'Egyptienne': true, - 'Elephant': true, 'Excelsior': true, 'Fairfield': true, - 'FF Scala': true, 'Folkard': true, 'Footlight': true, - 'FreeSerif': true, 'Friz Quadrata': true, 'Garamond': true, - 'Gentium': true, 'Georgia': true, 'Gloucester': true, - 'Goudy Old Style': true, 'Goudy Schoolbook': true, 'Goudy Pro Font': true, - 'Granjon': true, 'Guardian Egyptian': true, 'Heather': true, - 'Hercules': true, 'High Tower Text': true, 'Hiroshige': true, - 'Hoefler Text': true, 'Humana Serif': true, 'Imprint': true, - 'Ionic No. 5': true, 'Janson': true, 'Joanna': true, - 'Korinna': true, 'Lexicon': true, 'Liberation Serif': true, - 'Linux Libertine': true, 'Literaturnaya': true, 'Lucida': true, - 'Lucida Bright': true, 'Melior': true, 'Memphis': true, - 'Miller': true, 'Minion': true, 'Modern': true, - 'Mona Lisa': true, 'Mrs Eaves': true, 'MS Serif': true, - 'Museo Slab': true, 'New York': true, 'Nimbus Roman': true, - 'NPS Rawlinson Roadway': true, 'Palatino': true, 'Perpetua': true, - 'Plantin': true, 'Plantin Schoolbook': true, 'Playbill': true, - 'Poor Richard': true, 'Rawlinson Roadway': true, 'Renault': true, - 'Requiem': true, 'Rockwell': true, 'Roman': true, - 'Rotis Serif': true, 'Sabon': true, 'Scala': true, - 'Seagull': true, 'Sistina': true, 'Souvenir': true, - 'STIX': true, 'Stone Informal': true, 'Stone Serif': true, - 'Sylfaen': true, 'Times': true, 'Trajan': true, - 'Trinité': true, 'Trump Mediaeval': true, 'Utopia': true, - 'Vale Type': true, 'Bitstream Vera': true, 'Vera Serif': true, - 'Versailles': true, 'Wanted': true, 'Weiss': true, - 'Wide Latin': true, 'Windsor': true, 'XITS': true -}; - -var symbolsFonts = { - 'Dingbats': true, 'Symbol': true, 'ZapfDingbats': true -}; - -// Glyph map for well-known standard fonts. Sometimes Ghostscript uses CID fonts -// but does not embed the CID to GID mapping. The mapping is incomplete for all -// glyphs, but common for some set of the standard fonts. -var GlyphMapForStandardFonts = { - '2': 10, '3': 32, '4': 33, '5': 34, '6': 35, '7': 36, '8': 37, '9': 38, - '10': 39, '11': 40, '12': 41, '13': 42, '14': 43, '15': 44, '16': 45, - '17': 46, '18': 47, '19': 48, '20': 49, '21': 50, '22': 51, '23': 52, - '24': 53, '25': 54, '26': 55, '27': 56, '28': 57, '29': 58, '30': 894, - '31': 60, '32': 61, '33': 62, '34': 63, '35': 64, '36': 65, '37': 66, - '38': 67, '39': 68, '40': 69, '41': 70, '42': 71, '43': 72, '44': 73, - '45': 74, '46': 75, '47': 76, '48': 77, '49': 78, '50': 79, '51': 80, - '52': 81, '53': 82, '54': 83, '55': 84, '56': 85, '57': 86, '58': 87, - '59': 88, '60': 89, '61': 90, '62': 91, '63': 92, '64': 93, '65': 94, - '66': 95, '67': 96, '68': 97, '69': 98, '70': 99, '71': 100, '72': 101, - '73': 102, '74': 103, '75': 104, '76': 105, '77': 106, '78': 107, '79': 108, - '80': 109, '81': 110, '82': 111, '83': 112, '84': 113, '85': 114, '86': 115, - '87': 116, '88': 117, '89': 118, '90': 119, '91': 120, '92': 121, '93': 122, - '94': 123, '95': 124, '96': 125, '97': 126, '98': 196, '99': 197, '100': 199, - '101': 201, '102': 209, '103': 214, '104': 220, '105': 225, '106': 224, - '107': 226, '108': 228, '109': 227, '110': 229, '111': 231, '112': 233, - '113': 232, '114': 234, '115': 235, '116': 237, '117': 236, '118': 238, - '119': 239, '120': 241, '121': 243, '122': 242, '123': 244, '124': 246, - '125': 245, '126': 250, '127': 249, '128': 251, '129': 252, '130': 8224, - '131': 176, '132': 162, '133': 163, '134': 167, '135': 8226, '136': 182, - '137': 223, '138': 174, '139': 169, '140': 8482, '141': 180, '142': 168, - '143': 8800, '144': 198, '145': 216, '146': 8734, '147': 177, '148': 8804, - '149': 8805, '150': 165, '151': 181, '152': 8706, '153': 8721, '154': 8719, - '156': 8747, '157': 170, '158': 186, '159': 8486, '160': 230, '161': 248, - '162': 191, '163': 161, '164': 172, '165': 8730, '166': 402, '167': 8776, - '168': 8710, '169': 171, '170': 187, '171': 8230, '210': 218, '223': 711, - '224': 321, '225': 322, '227': 353, '229': 382, '234': 253, '252': 263, - '253': 268, '254': 269, '258': 258, '260': 260, '261': 261, '265': 280, - '266': 281, '268': 283, '269': 313, '275': 323, '276': 324, '278': 328, - '284': 345, '285': 346, '286': 347, '292': 367, '295': 377, '296': 378, - '298': 380, '305': 963, - '306': 964, '307': 966, '308': 8215, '309': 8252, '310': 8319, '311': 8359, - '312': 8592, '313': 8593, '337': 9552, '493': 1039, '494': 1040, '705': 1524, - '706': 8362, '710': 64288, '711': 64298, '759': 1617, '761': 1776, - '763': 1778, '775': 1652, '777': 1764, '778': 1780, '779': 1781, '780': 1782, - '782': 771, '783': 64726, '786': 8363, '788': 8532, '790': 768, '791': 769, - '792': 768, '795': 803, '797': 64336, '798': 64337, '799': 64342, - '800': 64343, '801': 64344, '802': 64345, '803': 64362, '804': 64363, - '805': 64364, '2424': 7821, '2425': 7822, '2426': 7823, '2427': 7824, - '2428': 7825, '2429': 7826, '2430': 7827, '2433': 7682, '2678': 8045, - '2679': 8046, '2830': 1552, '2838': 686, '2840': 751, '2842': 753, - '2843': 754, '2844': 755, '2846': 757, '2856': 767, '2857': 848, '2858': 849, - '2862': 853, '2863': 854, '2864': 855, '2865': 861, '2866': 862, '2906': 7460, - '2908': 7462, '2909': 7463, '2910': 7464, '2912': 7466, '2913': 7467, - '2914': 7468, '2916': 7470, '2917': 7471, '2918': 7472, '2920': 7474, - '2921': 7475, '2922': 7476, '2924': 7478, '2925': 7479, '2926': 7480, - '2928': 7482, '2929': 7483, '2930': 7484, '2932': 7486, '2933': 7487, - '2934': 7488, '2936': 7490, '2937': 7491, '2938': 7492, '2940': 7494, - '2941': 7495, '2942': 7496, '2944': 7498, '2946': 7500, '2948': 7502, - '2950': 7504, '2951': 7505, '2952': 7506, '2954': 7508, '2955': 7509, - '2956': 7510, '2958': 7512, '2959': 7513, '2960': 7514, '2962': 7516, - '2963': 7517, '2964': 7518, '2966': 7520, '2967': 7521, '2968': 7522, - '2970': 7524, '2971': 7525, '2972': 7526, '2974': 7528, '2975': 7529, - '2976': 7530, '2978': 1537, '2979': 1538, '2980': 1539, '2982': 1549, - '2983': 1551, '2984': 1552, '2986': 1554, '2987': 1555, '2988': 1556, - '2990': 1623, '2991': 1624, '2995': 1775, '2999': 1791, '3002': 64290, - '3003': 64291, '3004': 64292, '3006': 64294, '3007': 64295, '3008': 64296, - '3011': 1900, '3014': 8223, '3015': 8244, '3017': 7532, '3018': 7533, - '3019': 7534, '3075': 7590, '3076': 7591, '3079': 7594, '3080': 7595, - '3083': 7598, '3084': 7599, '3087': 7602, '3088': 7603, '3091': 7606, - '3092': 7607, '3095': 7610, '3096': 7611, '3099': 7614, '3100': 7615, - '3103': 7618, '3104': 7619, '3107': 8337, '3108': 8338, '3116': 1884, - '3119': 1885, '3120': 1885, '3123': 1886, '3124': 1886, '3127': 1887, - '3128': 1887, '3131': 1888, '3132': 1888, '3135': 1889, '3136': 1889, - '3139': 1890, '3140': 1890, '3143': 1891, '3144': 1891, '3147': 1892, - '3148': 1892, '3153': 580, '3154': 581, '3157': 584, '3158': 585, '3161': 588, - '3162': 589, '3165': 891, '3166': 892, '3169': 1274, '3170': 1275, - '3173': 1278, '3174': 1279, '3181': 7622, '3182': 7623, '3282': 11799, - '3316': 578, '3379': 42785, '3393': 1159, '3416': 8377 -}; - -// Some characters, e.g. copyrightserif, are mapped to the private use area and -// might not be displayed using standard fonts. Mapping/hacking well-known chars -// to the similar equivalents in the normal characters range. -var SpecialPUASymbols = { - '63721': 0x00A9, // copyrightsans (0xF8E9) => copyright - '63193': 0x00A9, // copyrightserif (0xF6D9) => copyright - '63720': 0x00AE, // registersans (0xF8E8) => registered - '63194': 0x00AE, // registerserif (0xF6DA) => registered - '63722': 0x2122, // trademarksans (0xF8EA) => trademark - '63195': 0x2122, // trademarkserif (0xF6DB) => trademark - '63729': 0x23A7, // bracelefttp (0xF8F1) - '63730': 0x23A8, // braceleftmid (0xF8F2) - '63731': 0x23A9, // braceleftbt (0xF8F3) - '63740': 0x23AB, // bracerighttp (0xF8FC) - '63741': 0x23AC, // bracerightmid (0xF8FD) - '63742': 0x23AD, // bracerightbt (0xF8FE) - '63726': 0x23A1, // bracketlefttp (0xF8EE) - '63727': 0x23A2, // bracketleftex (0xF8EF) - '63728': 0x23A3, // bracketleftbt (0xF8F0) - '63737': 0x23A4, // bracketrighttp (0xF8F9) - '63738': 0x23A5, // bracketrightex (0xF8FA) - '63739': 0x23A6, // bracketrightbt (0xF8FB) - '63723': 0x239B, // parenlefttp (0xF8EB) - '63724': 0x239C, // parenleftex (0xF8EC) - '63725': 0x239D, // parenleftbt (0xF8ED) - '63734': 0x239E, // parenrighttp (0xF8F6) - '63735': 0x239F, // parenrightex (0xF8F7) - '63736': 0x23A0, // parenrightbt (0xF8F8) -}; -function mapSpecialUnicodeValues(code) { - if (code >= 0xFFF0 && code <= 0xFFFF) { // Specials unicode block. - return 0; - } else if (code >= 0xF600 && code <= 0xF8FF) { - return (SpecialPUASymbols[code] || code); - } - return code; -} - -var UnicodeRanges = [ - { 'begin': 0x0000, 'end': 0x007F }, // Basic Latin - { 'begin': 0x0080, 'end': 0x00FF }, // Latin-1 Supplement - { 'begin': 0x0100, 'end': 0x017F }, // Latin Extended-A - { 'begin': 0x0180, 'end': 0x024F }, // Latin Extended-B - { 'begin': 0x0250, 'end': 0x02AF }, // IPA Extensions - { 'begin': 0x02B0, 'end': 0x02FF }, // Spacing Modifier Letters - { 'begin': 0x0300, 'end': 0x036F }, // Combining Diacritical Marks - { 'begin': 0x0370, 'end': 0x03FF }, // Greek and Coptic - { 'begin': 0x2C80, 'end': 0x2CFF }, // Coptic - { 'begin': 0x0400, 'end': 0x04FF }, // Cyrillic - { 'begin': 0x0530, 'end': 0x058F }, // Armenian - { 'begin': 0x0590, 'end': 0x05FF }, // Hebrew - { 'begin': 0xA500, 'end': 0xA63F }, // Vai - { 'begin': 0x0600, 'end': 0x06FF }, // Arabic - { 'begin': 0x07C0, 'end': 0x07FF }, // NKo - { 'begin': 0x0900, 'end': 0x097F }, // Devanagari - { 'begin': 0x0980, 'end': 0x09FF }, // Bengali - { 'begin': 0x0A00, 'end': 0x0A7F }, // Gurmukhi - { 'begin': 0x0A80, 'end': 0x0AFF }, // Gujarati - { 'begin': 0x0B00, 'end': 0x0B7F }, // Oriya - { 'begin': 0x0B80, 'end': 0x0BFF }, // Tamil - { 'begin': 0x0C00, 'end': 0x0C7F }, // Telugu - { 'begin': 0x0C80, 'end': 0x0CFF }, // Kannada - { 'begin': 0x0D00, 'end': 0x0D7F }, // Malayalam - { 'begin': 0x0E00, 'end': 0x0E7F }, // Thai - { 'begin': 0x0E80, 'end': 0x0EFF }, // Lao - { 'begin': 0x10A0, 'end': 0x10FF }, // Georgian - { 'begin': 0x1B00, 'end': 0x1B7F }, // Balinese - { 'begin': 0x1100, 'end': 0x11FF }, // Hangul Jamo - { 'begin': 0x1E00, 'end': 0x1EFF }, // Latin Extended Additional - { 'begin': 0x1F00, 'end': 0x1FFF }, // Greek Extended - { 'begin': 0x2000, 'end': 0x206F }, // General Punctuation - { 'begin': 0x2070, 'end': 0x209F }, // Superscripts And Subscripts - { 'begin': 0x20A0, 'end': 0x20CF }, // Currency Symbol - { 'begin': 0x20D0, 'end': 0x20FF }, // Combining Diacritical Marks For Symbols - { 'begin': 0x2100, 'end': 0x214F }, // Letterlike Symbols - { 'begin': 0x2150, 'end': 0x218F }, // Number Forms - { 'begin': 0x2190, 'end': 0x21FF }, // Arrows - { 'begin': 0x2200, 'end': 0x22FF }, // Mathematical Operators - { 'begin': 0x2300, 'end': 0x23FF }, // Miscellaneous Technical - { 'begin': 0x2400, 'end': 0x243F }, // Control Pictures - { 'begin': 0x2440, 'end': 0x245F }, // Optical Character Recognition - { 'begin': 0x2460, 'end': 0x24FF }, // Enclosed Alphanumerics - { 'begin': 0x2500, 'end': 0x257F }, // Box Drawing - { 'begin': 0x2580, 'end': 0x259F }, // Block Elements - { 'begin': 0x25A0, 'end': 0x25FF }, // Geometric Shapes - { 'begin': 0x2600, 'end': 0x26FF }, // Miscellaneous Symbols - { 'begin': 0x2700, 'end': 0x27BF }, // Dingbats - { 'begin': 0x3000, 'end': 0x303F }, // CJK Symbols And Punctuation - { 'begin': 0x3040, 'end': 0x309F }, // Hiragana - { 'begin': 0x30A0, 'end': 0x30FF }, // Katakana - { 'begin': 0x3100, 'end': 0x312F }, // Bopomofo - { 'begin': 0x3130, 'end': 0x318F }, // Hangul Compatibility Jamo - { 'begin': 0xA840, 'end': 0xA87F }, // Phags-pa - { 'begin': 0x3200, 'end': 0x32FF }, // Enclosed CJK Letters And Months - { 'begin': 0x3300, 'end': 0x33FF }, // CJK Compatibility - { 'begin': 0xAC00, 'end': 0xD7AF }, // Hangul Syllables - { 'begin': 0xD800, 'end': 0xDFFF }, // Non-Plane 0 * - { 'begin': 0x10900, 'end': 0x1091F }, // Phoenicia - { 'begin': 0x4E00, 'end': 0x9FFF }, // CJK Unified Ideographs - { 'begin': 0xE000, 'end': 0xF8FF }, // Private Use Area (plane 0) - { 'begin': 0x31C0, 'end': 0x31EF }, // CJK Strokes - { 'begin': 0xFB00, 'end': 0xFB4F }, // Alphabetic Presentation Forms - { 'begin': 0xFB50, 'end': 0xFDFF }, // Arabic Presentation Forms-A - { 'begin': 0xFE20, 'end': 0xFE2F }, // Combining Half Marks - { 'begin': 0xFE10, 'end': 0xFE1F }, // Vertical Forms - { 'begin': 0xFE50, 'end': 0xFE6F }, // Small Form Variants - { 'begin': 0xFE70, 'end': 0xFEFF }, // Arabic Presentation Forms-B - { 'begin': 0xFF00, 'end': 0xFFEF }, // Halfwidth And Fullwidth Forms - { 'begin': 0xFFF0, 'end': 0xFFFF }, // Specials - { 'begin': 0x0F00, 'end': 0x0FFF }, // Tibetan - { 'begin': 0x0700, 'end': 0x074F }, // Syriac - { 'begin': 0x0780, 'end': 0x07BF }, // Thaana - { 'begin': 0x0D80, 'end': 0x0DFF }, // Sinhala - { 'begin': 0x1000, 'end': 0x109F }, // Myanmar - { 'begin': 0x1200, 'end': 0x137F }, // Ethiopic - { 'begin': 0x13A0, 'end': 0x13FF }, // Cherokee - { 'begin': 0x1400, 'end': 0x167F }, // Unified Canadian Aboriginal Syllabics - { 'begin': 0x1680, 'end': 0x169F }, // Ogham - { 'begin': 0x16A0, 'end': 0x16FF }, // Runic - { 'begin': 0x1780, 'end': 0x17FF }, // Khmer - { 'begin': 0x1800, 'end': 0x18AF }, // Mongolian - { 'begin': 0x2800, 'end': 0x28FF }, // Braille Patterns - { 'begin': 0xA000, 'end': 0xA48F }, // Yi Syllables - { 'begin': 0x1700, 'end': 0x171F }, // Tagalog - { 'begin': 0x10300, 'end': 0x1032F }, // Old Italic - { 'begin': 0x10330, 'end': 0x1034F }, // Gothic - { 'begin': 0x10400, 'end': 0x1044F }, // Deseret - { 'begin': 0x1D000, 'end': 0x1D0FF }, // Byzantine Musical Symbols - { 'begin': 0x1D400, 'end': 0x1D7FF }, // Mathematical Alphanumeric Symbols - { 'begin': 0xFF000, 'end': 0xFFFFD }, // Private Use (plane 15) - { 'begin': 0xFE00, 'end': 0xFE0F }, // Variation Selectors - { 'begin': 0xE0000, 'end': 0xE007F }, // Tags - { 'begin': 0x1900, 'end': 0x194F }, // Limbu - { 'begin': 0x1950, 'end': 0x197F }, // Tai Le - { 'begin': 0x1980, 'end': 0x19DF }, // New Tai Lue - { 'begin': 0x1A00, 'end': 0x1A1F }, // Buginese - { 'begin': 0x2C00, 'end': 0x2C5F }, // Glagolitic - { 'begin': 0x2D30, 'end': 0x2D7F }, // Tifinagh - { 'begin': 0x4DC0, 'end': 0x4DFF }, // Yijing Hexagram Symbols - { 'begin': 0xA800, 'end': 0xA82F }, // Syloti Nagri - { 'begin': 0x10000, 'end': 0x1007F }, // Linear B Syllabary - { 'begin': 0x10140, 'end': 0x1018F }, // Ancient Greek Numbers - { 'begin': 0x10380, 'end': 0x1039F }, // Ugaritic - { 'begin': 0x103A0, 'end': 0x103DF }, // Old Persian - { 'begin': 0x10450, 'end': 0x1047F }, // Shavian - { 'begin': 0x10480, 'end': 0x104AF }, // Osmanya - { 'begin': 0x10800, 'end': 0x1083F }, // Cypriot Syllabary - { 'begin': 0x10A00, 'end': 0x10A5F }, // Kharoshthi - { 'begin': 0x1D300, 'end': 0x1D35F }, // Tai Xuan Jing Symbols - { 'begin': 0x12000, 'end': 0x123FF }, // Cuneiform - { 'begin': 0x1D360, 'end': 0x1D37F }, // Counting Rod Numerals - { 'begin': 0x1B80, 'end': 0x1BBF }, // Sundanese - { 'begin': 0x1C00, 'end': 0x1C4F }, // Lepcha - { 'begin': 0x1C50, 'end': 0x1C7F }, // Ol Chiki - { 'begin': 0xA880, 'end': 0xA8DF }, // Saurashtra - { 'begin': 0xA900, 'end': 0xA92F }, // Kayah Li - { 'begin': 0xA930, 'end': 0xA95F }, // Rejang - { 'begin': 0xAA00, 'end': 0xAA5F }, // Cham - { 'begin': 0x10190, 'end': 0x101CF }, // Ancient Symbols - { 'begin': 0x101D0, 'end': 0x101FF }, // Phaistos Disc - { 'begin': 0x102A0, 'end': 0x102DF }, // Carian - { 'begin': 0x1F030, 'end': 0x1F09F } // Domino Tiles -]; - -var MacStandardGlyphOrdering = [ - '.notdef', '.null', 'nonmarkingreturn', 'space', 'exclam', 'quotedbl', - 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', - 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', - 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', - 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', - 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', - 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', - 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', - 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', - 'asciitilde', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', - 'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', - 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', - 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', - 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex', - 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet', - 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', - 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', - 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi', - 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', - 'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin', - 'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis', - 'nonbreakingspace', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', - 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', - 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency', - 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', - 'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex', - 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', - 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', - 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', - 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', - 'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar', - 'Eth', 'eth', 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply', - 'onesuperior', 'twosuperior', 'threesuperior', 'onehalf', 'onequarter', - 'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla', - 'scedilla', 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat']; - -function getUnicodeRangeFor(value) { - for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) { - var range = UnicodeRanges[i]; - if (value >= range.begin && value < range.end) { - return i; - } - } - return -1; -} - -function isRTLRangeFor(value) { - var range = UnicodeRanges[13]; - if (value >= range.begin && value < range.end) { - return true; - } - range = UnicodeRanges[11]; - if (value >= range.begin && value < range.end) { - return true; - } - return false; -} - -// The normalization table is obtained by filtering the Unicode characters -// database with entries. -var NormalizedUnicodes = { - '\u00A8': '\u0020\u0308', - '\u00AF': '\u0020\u0304', - '\u00B4': '\u0020\u0301', - '\u00B5': '\u03BC', - '\u00B8': '\u0020\u0327', - '\u0132': '\u0049\u004A', - '\u0133': '\u0069\u006A', - '\u013F': '\u004C\u00B7', - '\u0140': '\u006C\u00B7', - '\u0149': '\u02BC\u006E', - '\u017F': '\u0073', - '\u01C4': '\u0044\u017D', - '\u01C5': '\u0044\u017E', - '\u01C6': '\u0064\u017E', - '\u01C7': '\u004C\u004A', - '\u01C8': '\u004C\u006A', - '\u01C9': '\u006C\u006A', - '\u01CA': '\u004E\u004A', - '\u01CB': '\u004E\u006A', - '\u01CC': '\u006E\u006A', - '\u01F1': '\u0044\u005A', - '\u01F2': '\u0044\u007A', - '\u01F3': '\u0064\u007A', - '\u02D8': '\u0020\u0306', - '\u02D9': '\u0020\u0307', - '\u02DA': '\u0020\u030A', - '\u02DB': '\u0020\u0328', - '\u02DC': '\u0020\u0303', - '\u02DD': '\u0020\u030B', - '\u037A': '\u0020\u0345', - '\u0384': '\u0020\u0301', - '\u03D0': '\u03B2', - '\u03D1': '\u03B8', - '\u03D2': '\u03A5', - '\u03D5': '\u03C6', - '\u03D6': '\u03C0', - '\u03F0': '\u03BA', - '\u03F1': '\u03C1', - '\u03F2': '\u03C2', - '\u03F4': '\u0398', - '\u03F5': '\u03B5', - '\u03F9': '\u03A3', - '\u0587': '\u0565\u0582', - '\u0675': '\u0627\u0674', - '\u0676': '\u0648\u0674', - '\u0677': '\u06C7\u0674', - '\u0678': '\u064A\u0674', - '\u0E33': '\u0E4D\u0E32', - '\u0EB3': '\u0ECD\u0EB2', - '\u0EDC': '\u0EAB\u0E99', - '\u0EDD': '\u0EAB\u0EA1', - '\u0F77': '\u0FB2\u0F81', - '\u0F79': '\u0FB3\u0F81', - '\u1E9A': '\u0061\u02BE', - '\u1FBD': '\u0020\u0313', - '\u1FBF': '\u0020\u0313', - '\u1FC0': '\u0020\u0342', - '\u1FFE': '\u0020\u0314', - '\u2002': '\u0020', - '\u2003': '\u0020', - '\u2004': '\u0020', - '\u2005': '\u0020', - '\u2006': '\u0020', - '\u2008': '\u0020', - '\u2009': '\u0020', - '\u200A': '\u0020', - '\u2017': '\u0020\u0333', - '\u2024': '\u002E', - '\u2025': '\u002E\u002E', - '\u2026': '\u002E\u002E\u002E', - '\u2033': '\u2032\u2032', - '\u2034': '\u2032\u2032\u2032', - '\u2036': '\u2035\u2035', - '\u2037': '\u2035\u2035\u2035', - '\u203C': '\u0021\u0021', - '\u203E': '\u0020\u0305', - '\u2047': '\u003F\u003F', - '\u2048': '\u003F\u0021', - '\u2049': '\u0021\u003F', - '\u2057': '\u2032\u2032\u2032\u2032', - '\u205F': '\u0020', - '\u20A8': '\u0052\u0073', - '\u2100': '\u0061\u002F\u0063', - '\u2101': '\u0061\u002F\u0073', - '\u2103': '\u00B0\u0043', - '\u2105': '\u0063\u002F\u006F', - '\u2106': '\u0063\u002F\u0075', - '\u2107': '\u0190', - '\u2109': '\u00B0\u0046', - '\u2116': '\u004E\u006F', - '\u2121': '\u0054\u0045\u004C', - '\u2135': '\u05D0', - '\u2136': '\u05D1', - '\u2137': '\u05D2', - '\u2138': '\u05D3', - '\u213B': '\u0046\u0041\u0058', - '\u2160': '\u0049', - '\u2161': '\u0049\u0049', - '\u2162': '\u0049\u0049\u0049', - '\u2163': '\u0049\u0056', - '\u2164': '\u0056', - '\u2165': '\u0056\u0049', - '\u2166': '\u0056\u0049\u0049', - '\u2167': '\u0056\u0049\u0049\u0049', - '\u2168': '\u0049\u0058', - '\u2169': '\u0058', - '\u216A': '\u0058\u0049', - '\u216B': '\u0058\u0049\u0049', - '\u216C': '\u004C', - '\u216D': '\u0043', - '\u216E': '\u0044', - '\u216F': '\u004D', - '\u2170': '\u0069', - '\u2171': '\u0069\u0069', - '\u2172': '\u0069\u0069\u0069', - '\u2173': '\u0069\u0076', - '\u2174': '\u0076', - '\u2175': '\u0076\u0069', - '\u2176': '\u0076\u0069\u0069', - '\u2177': '\u0076\u0069\u0069\u0069', - '\u2178': '\u0069\u0078', - '\u2179': '\u0078', - '\u217A': '\u0078\u0069', - '\u217B': '\u0078\u0069\u0069', - '\u217C': '\u006C', - '\u217D': '\u0063', - '\u217E': '\u0064', - '\u217F': '\u006D', - '\u222C': '\u222B\u222B', - '\u222D': '\u222B\u222B\u222B', - '\u222F': '\u222E\u222E', - '\u2230': '\u222E\u222E\u222E', - '\u2474': '\u0028\u0031\u0029', - '\u2475': '\u0028\u0032\u0029', - '\u2476': '\u0028\u0033\u0029', - '\u2477': '\u0028\u0034\u0029', - '\u2478': '\u0028\u0035\u0029', - '\u2479': '\u0028\u0036\u0029', - '\u247A': '\u0028\u0037\u0029', - '\u247B': '\u0028\u0038\u0029', - '\u247C': '\u0028\u0039\u0029', - '\u247D': '\u0028\u0031\u0030\u0029', - '\u247E': '\u0028\u0031\u0031\u0029', - '\u247F': '\u0028\u0031\u0032\u0029', - '\u2480': '\u0028\u0031\u0033\u0029', - '\u2481': '\u0028\u0031\u0034\u0029', - '\u2482': '\u0028\u0031\u0035\u0029', - '\u2483': '\u0028\u0031\u0036\u0029', - '\u2484': '\u0028\u0031\u0037\u0029', - '\u2485': '\u0028\u0031\u0038\u0029', - '\u2486': '\u0028\u0031\u0039\u0029', - '\u2487': '\u0028\u0032\u0030\u0029', - '\u2488': '\u0031\u002E', - '\u2489': '\u0032\u002E', - '\u248A': '\u0033\u002E', - '\u248B': '\u0034\u002E', - '\u248C': '\u0035\u002E', - '\u248D': '\u0036\u002E', - '\u248E': '\u0037\u002E', - '\u248F': '\u0038\u002E', - '\u2490': '\u0039\u002E', - '\u2491': '\u0031\u0030\u002E', - '\u2492': '\u0031\u0031\u002E', - '\u2493': '\u0031\u0032\u002E', - '\u2494': '\u0031\u0033\u002E', - '\u2495': '\u0031\u0034\u002E', - '\u2496': '\u0031\u0035\u002E', - '\u2497': '\u0031\u0036\u002E', - '\u2498': '\u0031\u0037\u002E', - '\u2499': '\u0031\u0038\u002E', - '\u249A': '\u0031\u0039\u002E', - '\u249B': '\u0032\u0030\u002E', - '\u249C': '\u0028\u0061\u0029', - '\u249D': '\u0028\u0062\u0029', - '\u249E': '\u0028\u0063\u0029', - '\u249F': '\u0028\u0064\u0029', - '\u24A0': '\u0028\u0065\u0029', - '\u24A1': '\u0028\u0066\u0029', - '\u24A2': '\u0028\u0067\u0029', - '\u24A3': '\u0028\u0068\u0029', - '\u24A4': '\u0028\u0069\u0029', - '\u24A5': '\u0028\u006A\u0029', - '\u24A6': '\u0028\u006B\u0029', - '\u24A7': '\u0028\u006C\u0029', - '\u24A8': '\u0028\u006D\u0029', - '\u24A9': '\u0028\u006E\u0029', - '\u24AA': '\u0028\u006F\u0029', - '\u24AB': '\u0028\u0070\u0029', - '\u24AC': '\u0028\u0071\u0029', - '\u24AD': '\u0028\u0072\u0029', - '\u24AE': '\u0028\u0073\u0029', - '\u24AF': '\u0028\u0074\u0029', - '\u24B0': '\u0028\u0075\u0029', - '\u24B1': '\u0028\u0076\u0029', - '\u24B2': '\u0028\u0077\u0029', - '\u24B3': '\u0028\u0078\u0029', - '\u24B4': '\u0028\u0079\u0029', - '\u24B5': '\u0028\u007A\u0029', - '\u2A0C': '\u222B\u222B\u222B\u222B', - '\u2A74': '\u003A\u003A\u003D', - '\u2A75': '\u003D\u003D', - '\u2A76': '\u003D\u003D\u003D', - '\u2E9F': '\u6BCD', - '\u2EF3': '\u9F9F', - '\u2F00': '\u4E00', - '\u2F01': '\u4E28', - '\u2F02': '\u4E36', - '\u2F03': '\u4E3F', - '\u2F04': '\u4E59', - '\u2F05': '\u4E85', - '\u2F06': '\u4E8C', - '\u2F07': '\u4EA0', - '\u2F08': '\u4EBA', - '\u2F09': '\u513F', - '\u2F0A': '\u5165', - '\u2F0B': '\u516B', - '\u2F0C': '\u5182', - '\u2F0D': '\u5196', - '\u2F0E': '\u51AB', - '\u2F0F': '\u51E0', - '\u2F10': '\u51F5', - '\u2F11': '\u5200', - '\u2F12': '\u529B', - '\u2F13': '\u52F9', - '\u2F14': '\u5315', - '\u2F15': '\u531A', - '\u2F16': '\u5338', - '\u2F17': '\u5341', - '\u2F18': '\u535C', - '\u2F19': '\u5369', - '\u2F1A': '\u5382', - '\u2F1B': '\u53B6', - '\u2F1C': '\u53C8', - '\u2F1D': '\u53E3', - '\u2F1E': '\u56D7', - '\u2F1F': '\u571F', - '\u2F20': '\u58EB', - '\u2F21': '\u5902', - '\u2F22': '\u590A', - '\u2F23': '\u5915', - '\u2F24': '\u5927', - '\u2F25': '\u5973', - '\u2F26': '\u5B50', - '\u2F27': '\u5B80', - '\u2F28': '\u5BF8', - '\u2F29': '\u5C0F', - '\u2F2A': '\u5C22', - '\u2F2B': '\u5C38', - '\u2F2C': '\u5C6E', - '\u2F2D': '\u5C71', - '\u2F2E': '\u5DDB', - '\u2F2F': '\u5DE5', - '\u2F30': '\u5DF1', - '\u2F31': '\u5DFE', - '\u2F32': '\u5E72', - '\u2F33': '\u5E7A', - '\u2F34': '\u5E7F', - '\u2F35': '\u5EF4', - '\u2F36': '\u5EFE', - '\u2F37': '\u5F0B', - '\u2F38': '\u5F13', - '\u2F39': '\u5F50', - '\u2F3A': '\u5F61', - '\u2F3B': '\u5F73', - '\u2F3C': '\u5FC3', - '\u2F3D': '\u6208', - '\u2F3E': '\u6236', - '\u2F3F': '\u624B', - '\u2F40': '\u652F', - '\u2F41': '\u6534', - '\u2F42': '\u6587', - '\u2F43': '\u6597', - '\u2F44': '\u65A4', - '\u2F45': '\u65B9', - '\u2F46': '\u65E0', - '\u2F47': '\u65E5', - '\u2F48': '\u66F0', - '\u2F49': '\u6708', - '\u2F4A': '\u6728', - '\u2F4B': '\u6B20', - '\u2F4C': '\u6B62', - '\u2F4D': '\u6B79', - '\u2F4E': '\u6BB3', - '\u2F4F': '\u6BCB', - '\u2F50': '\u6BD4', - '\u2F51': '\u6BDB', - '\u2F52': '\u6C0F', - '\u2F53': '\u6C14', - '\u2F54': '\u6C34', - '\u2F55': '\u706B', - '\u2F56': '\u722A', - '\u2F57': '\u7236', - '\u2F58': '\u723B', - '\u2F59': '\u723F', - '\u2F5A': '\u7247', - '\u2F5B': '\u7259', - '\u2F5C': '\u725B', - '\u2F5D': '\u72AC', - '\u2F5E': '\u7384', - '\u2F5F': '\u7389', - '\u2F60': '\u74DC', - '\u2F61': '\u74E6', - '\u2F62': '\u7518', - '\u2F63': '\u751F', - '\u2F64': '\u7528', - '\u2F65': '\u7530', - '\u2F66': '\u758B', - '\u2F67': '\u7592', - '\u2F68': '\u7676', - '\u2F69': '\u767D', - '\u2F6A': '\u76AE', - '\u2F6B': '\u76BF', - '\u2F6C': '\u76EE', - '\u2F6D': '\u77DB', - '\u2F6E': '\u77E2', - '\u2F6F': '\u77F3', - '\u2F70': '\u793A', - '\u2F71': '\u79B8', - '\u2F72': '\u79BE', - '\u2F73': '\u7A74', - '\u2F74': '\u7ACB', - '\u2F75': '\u7AF9', - '\u2F76': '\u7C73', - '\u2F77': '\u7CF8', - '\u2F78': '\u7F36', - '\u2F79': '\u7F51', - '\u2F7A': '\u7F8A', - '\u2F7B': '\u7FBD', - '\u2F7C': '\u8001', - '\u2F7D': '\u800C', - '\u2F7E': '\u8012', - '\u2F7F': '\u8033', - '\u2F80': '\u807F', - '\u2F81': '\u8089', - '\u2F82': '\u81E3', - '\u2F83': '\u81EA', - '\u2F84': '\u81F3', - '\u2F85': '\u81FC', - '\u2F86': '\u820C', - '\u2F87': '\u821B', - '\u2F88': '\u821F', - '\u2F89': '\u826E', - '\u2F8A': '\u8272', - '\u2F8B': '\u8278', - '\u2F8C': '\u864D', - '\u2F8D': '\u866B', - '\u2F8E': '\u8840', - '\u2F8F': '\u884C', - '\u2F90': '\u8863', - '\u2F91': '\u897E', - '\u2F92': '\u898B', - '\u2F93': '\u89D2', - '\u2F94': '\u8A00', - '\u2F95': '\u8C37', - '\u2F96': '\u8C46', - '\u2F97': '\u8C55', - '\u2F98': '\u8C78', - '\u2F99': '\u8C9D', - '\u2F9A': '\u8D64', - '\u2F9B': '\u8D70', - '\u2F9C': '\u8DB3', - '\u2F9D': '\u8EAB', - '\u2F9E': '\u8ECA', - '\u2F9F': '\u8F9B', - '\u2FA0': '\u8FB0', - '\u2FA1': '\u8FB5', - '\u2FA2': '\u9091', - '\u2FA3': '\u9149', - '\u2FA4': '\u91C6', - '\u2FA5': '\u91CC', - '\u2FA6': '\u91D1', - '\u2FA7': '\u9577', - '\u2FA8': '\u9580', - '\u2FA9': '\u961C', - '\u2FAA': '\u96B6', - '\u2FAB': '\u96B9', - '\u2FAC': '\u96E8', - '\u2FAD': '\u9751', - '\u2FAE': '\u975E', - '\u2FAF': '\u9762', - '\u2FB0': '\u9769', - '\u2FB1': '\u97CB', - '\u2FB2': '\u97ED', - '\u2FB3': '\u97F3', - '\u2FB4': '\u9801', - '\u2FB5': '\u98A8', - '\u2FB6': '\u98DB', - '\u2FB7': '\u98DF', - '\u2FB8': '\u9996', - '\u2FB9': '\u9999', - '\u2FBA': '\u99AC', - '\u2FBB': '\u9AA8', - '\u2FBC': '\u9AD8', - '\u2FBD': '\u9ADF', - '\u2FBE': '\u9B25', - '\u2FBF': '\u9B2F', - '\u2FC0': '\u9B32', - '\u2FC1': '\u9B3C', - '\u2FC2': '\u9B5A', - '\u2FC3': '\u9CE5', - '\u2FC4': '\u9E75', - '\u2FC5': '\u9E7F', - '\u2FC6': '\u9EA5', - '\u2FC7': '\u9EBB', - '\u2FC8': '\u9EC3', - '\u2FC9': '\u9ECD', - '\u2FCA': '\u9ED1', - '\u2FCB': '\u9EF9', - '\u2FCC': '\u9EFD', - '\u2FCD': '\u9F0E', - '\u2FCE': '\u9F13', - '\u2FCF': '\u9F20', - '\u2FD0': '\u9F3B', - '\u2FD1': '\u9F4A', - '\u2FD2': '\u9F52', - '\u2FD3': '\u9F8D', - '\u2FD4': '\u9F9C', - '\u2FD5': '\u9FA0', - '\u3036': '\u3012', - '\u3038': '\u5341', - '\u3039': '\u5344', - '\u303A': '\u5345', - '\u309B': '\u0020\u3099', - '\u309C': '\u0020\u309A', - '\u3131': '\u1100', - '\u3132': '\u1101', - '\u3133': '\u11AA', - '\u3134': '\u1102', - '\u3135': '\u11AC', - '\u3136': '\u11AD', - '\u3137': '\u1103', - '\u3138': '\u1104', - '\u3139': '\u1105', - '\u313A': '\u11B0', - '\u313B': '\u11B1', - '\u313C': '\u11B2', - '\u313D': '\u11B3', - '\u313E': '\u11B4', - '\u313F': '\u11B5', - '\u3140': '\u111A', - '\u3141': '\u1106', - '\u3142': '\u1107', - '\u3143': '\u1108', - '\u3144': '\u1121', - '\u3145': '\u1109', - '\u3146': '\u110A', - '\u3147': '\u110B', - '\u3148': '\u110C', - '\u3149': '\u110D', - '\u314A': '\u110E', - '\u314B': '\u110F', - '\u314C': '\u1110', - '\u314D': '\u1111', - '\u314E': '\u1112', - '\u314F': '\u1161', - '\u3150': '\u1162', - '\u3151': '\u1163', - '\u3152': '\u1164', - '\u3153': '\u1165', - '\u3154': '\u1166', - '\u3155': '\u1167', - '\u3156': '\u1168', - '\u3157': '\u1169', - '\u3158': '\u116A', - '\u3159': '\u116B', - '\u315A': '\u116C', - '\u315B': '\u116D', - '\u315C': '\u116E', - '\u315D': '\u116F', - '\u315E': '\u1170', - '\u315F': '\u1171', - '\u3160': '\u1172', - '\u3161': '\u1173', - '\u3162': '\u1174', - '\u3163': '\u1175', - '\u3164': '\u1160', - '\u3165': '\u1114', - '\u3166': '\u1115', - '\u3167': '\u11C7', - '\u3168': '\u11C8', - '\u3169': '\u11CC', - '\u316A': '\u11CE', - '\u316B': '\u11D3', - '\u316C': '\u11D7', - '\u316D': '\u11D9', - '\u316E': '\u111C', - '\u316F': '\u11DD', - '\u3170': '\u11DF', - '\u3171': '\u111D', - '\u3172': '\u111E', - '\u3173': '\u1120', - '\u3174': '\u1122', - '\u3175': '\u1123', - '\u3176': '\u1127', - '\u3177': '\u1129', - '\u3178': '\u112B', - '\u3179': '\u112C', - '\u317A': '\u112D', - '\u317B': '\u112E', - '\u317C': '\u112F', - '\u317D': '\u1132', - '\u317E': '\u1136', - '\u317F': '\u1140', - '\u3180': '\u1147', - '\u3181': '\u114C', - '\u3182': '\u11F1', - '\u3183': '\u11F2', - '\u3184': '\u1157', - '\u3185': '\u1158', - '\u3186': '\u1159', - '\u3187': '\u1184', - '\u3188': '\u1185', - '\u3189': '\u1188', - '\u318A': '\u1191', - '\u318B': '\u1192', - '\u318C': '\u1194', - '\u318D': '\u119E', - '\u318E': '\u11A1', - '\u3200': '\u0028\u1100\u0029', - '\u3201': '\u0028\u1102\u0029', - '\u3202': '\u0028\u1103\u0029', - '\u3203': '\u0028\u1105\u0029', - '\u3204': '\u0028\u1106\u0029', - '\u3205': '\u0028\u1107\u0029', - '\u3206': '\u0028\u1109\u0029', - '\u3207': '\u0028\u110B\u0029', - '\u3208': '\u0028\u110C\u0029', - '\u3209': '\u0028\u110E\u0029', - '\u320A': '\u0028\u110F\u0029', - '\u320B': '\u0028\u1110\u0029', - '\u320C': '\u0028\u1111\u0029', - '\u320D': '\u0028\u1112\u0029', - '\u320E': '\u0028\u1100\u1161\u0029', - '\u320F': '\u0028\u1102\u1161\u0029', - '\u3210': '\u0028\u1103\u1161\u0029', - '\u3211': '\u0028\u1105\u1161\u0029', - '\u3212': '\u0028\u1106\u1161\u0029', - '\u3213': '\u0028\u1107\u1161\u0029', - '\u3214': '\u0028\u1109\u1161\u0029', - '\u3215': '\u0028\u110B\u1161\u0029', - '\u3216': '\u0028\u110C\u1161\u0029', - '\u3217': '\u0028\u110E\u1161\u0029', - '\u3218': '\u0028\u110F\u1161\u0029', - '\u3219': '\u0028\u1110\u1161\u0029', - '\u321A': '\u0028\u1111\u1161\u0029', - '\u321B': '\u0028\u1112\u1161\u0029', - '\u321C': '\u0028\u110C\u116E\u0029', - '\u321D': '\u0028\u110B\u1169\u110C\u1165\u11AB\u0029', - '\u321E': '\u0028\u110B\u1169\u1112\u116E\u0029', - '\u3220': '\u0028\u4E00\u0029', - '\u3221': '\u0028\u4E8C\u0029', - '\u3222': '\u0028\u4E09\u0029', - '\u3223': '\u0028\u56DB\u0029', - '\u3224': '\u0028\u4E94\u0029', - '\u3225': '\u0028\u516D\u0029', - '\u3226': '\u0028\u4E03\u0029', - '\u3227': '\u0028\u516B\u0029', - '\u3228': '\u0028\u4E5D\u0029', - '\u3229': '\u0028\u5341\u0029', - '\u322A': '\u0028\u6708\u0029', - '\u322B': '\u0028\u706B\u0029', - '\u322C': '\u0028\u6C34\u0029', - '\u322D': '\u0028\u6728\u0029', - '\u322E': '\u0028\u91D1\u0029', - '\u322F': '\u0028\u571F\u0029', - '\u3230': '\u0028\u65E5\u0029', - '\u3231': '\u0028\u682A\u0029', - '\u3232': '\u0028\u6709\u0029', - '\u3233': '\u0028\u793E\u0029', - '\u3234': '\u0028\u540D\u0029', - '\u3235': '\u0028\u7279\u0029', - '\u3236': '\u0028\u8CA1\u0029', - '\u3237': '\u0028\u795D\u0029', - '\u3238': '\u0028\u52B4\u0029', - '\u3239': '\u0028\u4EE3\u0029', - '\u323A': '\u0028\u547C\u0029', - '\u323B': '\u0028\u5B66\u0029', - '\u323C': '\u0028\u76E3\u0029', - '\u323D': '\u0028\u4F01\u0029', - '\u323E': '\u0028\u8CC7\u0029', - '\u323F': '\u0028\u5354\u0029', - '\u3240': '\u0028\u796D\u0029', - '\u3241': '\u0028\u4F11\u0029', - '\u3242': '\u0028\u81EA\u0029', - '\u3243': '\u0028\u81F3\u0029', - '\u32C0': '\u0031\u6708', - '\u32C1': '\u0032\u6708', - '\u32C2': '\u0033\u6708', - '\u32C3': '\u0034\u6708', - '\u32C4': '\u0035\u6708', - '\u32C5': '\u0036\u6708', - '\u32C6': '\u0037\u6708', - '\u32C7': '\u0038\u6708', - '\u32C8': '\u0039\u6708', - '\u32C9': '\u0031\u0030\u6708', - '\u32CA': '\u0031\u0031\u6708', - '\u32CB': '\u0031\u0032\u6708', - '\u3358': '\u0030\u70B9', - '\u3359': '\u0031\u70B9', - '\u335A': '\u0032\u70B9', - '\u335B': '\u0033\u70B9', - '\u335C': '\u0034\u70B9', - '\u335D': '\u0035\u70B9', - '\u335E': '\u0036\u70B9', - '\u335F': '\u0037\u70B9', - '\u3360': '\u0038\u70B9', - '\u3361': '\u0039\u70B9', - '\u3362': '\u0031\u0030\u70B9', - '\u3363': '\u0031\u0031\u70B9', - '\u3364': '\u0031\u0032\u70B9', - '\u3365': '\u0031\u0033\u70B9', - '\u3366': '\u0031\u0034\u70B9', - '\u3367': '\u0031\u0035\u70B9', - '\u3368': '\u0031\u0036\u70B9', - '\u3369': '\u0031\u0037\u70B9', - '\u336A': '\u0031\u0038\u70B9', - '\u336B': '\u0031\u0039\u70B9', - '\u336C': '\u0032\u0030\u70B9', - '\u336D': '\u0032\u0031\u70B9', - '\u336E': '\u0032\u0032\u70B9', - '\u336F': '\u0032\u0033\u70B9', - '\u3370': '\u0032\u0034\u70B9', - '\u33E0': '\u0031\u65E5', - '\u33E1': '\u0032\u65E5', - '\u33E2': '\u0033\u65E5', - '\u33E3': '\u0034\u65E5', - '\u33E4': '\u0035\u65E5', - '\u33E5': '\u0036\u65E5', - '\u33E6': '\u0037\u65E5', - '\u33E7': '\u0038\u65E5', - '\u33E8': '\u0039\u65E5', - '\u33E9': '\u0031\u0030\u65E5', - '\u33EA': '\u0031\u0031\u65E5', - '\u33EB': '\u0031\u0032\u65E5', - '\u33EC': '\u0031\u0033\u65E5', - '\u33ED': '\u0031\u0034\u65E5', - '\u33EE': '\u0031\u0035\u65E5', - '\u33EF': '\u0031\u0036\u65E5', - '\u33F0': '\u0031\u0037\u65E5', - '\u33F1': '\u0031\u0038\u65E5', - '\u33F2': '\u0031\u0039\u65E5', - '\u33F3': '\u0032\u0030\u65E5', - '\u33F4': '\u0032\u0031\u65E5', - '\u33F5': '\u0032\u0032\u65E5', - '\u33F6': '\u0032\u0033\u65E5', - '\u33F7': '\u0032\u0034\u65E5', - '\u33F8': '\u0032\u0035\u65E5', - '\u33F9': '\u0032\u0036\u65E5', - '\u33FA': '\u0032\u0037\u65E5', - '\u33FB': '\u0032\u0038\u65E5', - '\u33FC': '\u0032\u0039\u65E5', - '\u33FD': '\u0033\u0030\u65E5', - '\u33FE': '\u0033\u0031\u65E5', - '\uFB00': '\u0066\u0066', - '\uFB01': '\u0066\u0069', - '\uFB02': '\u0066\u006C', - '\uFB03': '\u0066\u0066\u0069', - '\uFB04': '\u0066\u0066\u006C', - '\uFB05': '\u017F\u0074', - '\uFB06': '\u0073\u0074', - '\uFB13': '\u0574\u0576', - '\uFB14': '\u0574\u0565', - '\uFB15': '\u0574\u056B', - '\uFB16': '\u057E\u0576', - '\uFB17': '\u0574\u056D', - '\uFB4F': '\u05D0\u05DC', - '\uFB50': '\u0671', - '\uFB51': '\u0671', - '\uFB52': '\u067B', - '\uFB53': '\u067B', - '\uFB54': '\u067B', - '\uFB55': '\u067B', - '\uFB56': '\u067E', - '\uFB57': '\u067E', - '\uFB58': '\u067E', - '\uFB59': '\u067E', - '\uFB5A': '\u0680', - '\uFB5B': '\u0680', - '\uFB5C': '\u0680', - '\uFB5D': '\u0680', - '\uFB5E': '\u067A', - '\uFB5F': '\u067A', - '\uFB60': '\u067A', - '\uFB61': '\u067A', - '\uFB62': '\u067F', - '\uFB63': '\u067F', - '\uFB64': '\u067F', - '\uFB65': '\u067F', - '\uFB66': '\u0679', - '\uFB67': '\u0679', - '\uFB68': '\u0679', - '\uFB69': '\u0679', - '\uFB6A': '\u06A4', - '\uFB6B': '\u06A4', - '\uFB6C': '\u06A4', - '\uFB6D': '\u06A4', - '\uFB6E': '\u06A6', - '\uFB6F': '\u06A6', - '\uFB70': '\u06A6', - '\uFB71': '\u06A6', - '\uFB72': '\u0684', - '\uFB73': '\u0684', - '\uFB74': '\u0684', - '\uFB75': '\u0684', - '\uFB76': '\u0683', - '\uFB77': '\u0683', - '\uFB78': '\u0683', - '\uFB79': '\u0683', - '\uFB7A': '\u0686', - '\uFB7B': '\u0686', - '\uFB7C': '\u0686', - '\uFB7D': '\u0686', - '\uFB7E': '\u0687', - '\uFB7F': '\u0687', - '\uFB80': '\u0687', - '\uFB81': '\u0687', - '\uFB82': '\u068D', - '\uFB83': '\u068D', - '\uFB84': '\u068C', - '\uFB85': '\u068C', - '\uFB86': '\u068E', - '\uFB87': '\u068E', - '\uFB88': '\u0688', - '\uFB89': '\u0688', - '\uFB8A': '\u0698', - '\uFB8B': '\u0698', - '\uFB8C': '\u0691', - '\uFB8D': '\u0691', - '\uFB8E': '\u06A9', - '\uFB8F': '\u06A9', - '\uFB90': '\u06A9', - '\uFB91': '\u06A9', - '\uFB92': '\u06AF', - '\uFB93': '\u06AF', - '\uFB94': '\u06AF', - '\uFB95': '\u06AF', - '\uFB96': '\u06B3', - '\uFB97': '\u06B3', - '\uFB98': '\u06B3', - '\uFB99': '\u06B3', - '\uFB9A': '\u06B1', - '\uFB9B': '\u06B1', - '\uFB9C': '\u06B1', - '\uFB9D': '\u06B1', - '\uFB9E': '\u06BA', - '\uFB9F': '\u06BA', - '\uFBA0': '\u06BB', - '\uFBA1': '\u06BB', - '\uFBA2': '\u06BB', - '\uFBA3': '\u06BB', - '\uFBA4': '\u06C0', - '\uFBA5': '\u06C0', - '\uFBA6': '\u06C1', - '\uFBA7': '\u06C1', - '\uFBA8': '\u06C1', - '\uFBA9': '\u06C1', - '\uFBAA': '\u06BE', - '\uFBAB': '\u06BE', - '\uFBAC': '\u06BE', - '\uFBAD': '\u06BE', - '\uFBAE': '\u06D2', - '\uFBAF': '\u06D2', - '\uFBB0': '\u06D3', - '\uFBB1': '\u06D3', - '\uFBD3': '\u06AD', - '\uFBD4': '\u06AD', - '\uFBD5': '\u06AD', - '\uFBD6': '\u06AD', - '\uFBD7': '\u06C7', - '\uFBD8': '\u06C7', - '\uFBD9': '\u06C6', - '\uFBDA': '\u06C6', - '\uFBDB': '\u06C8', - '\uFBDC': '\u06C8', - '\uFBDD': '\u0677', - '\uFBDE': '\u06CB', - '\uFBDF': '\u06CB', - '\uFBE0': '\u06C5', - '\uFBE1': '\u06C5', - '\uFBE2': '\u06C9', - '\uFBE3': '\u06C9', - '\uFBE4': '\u06D0', - '\uFBE5': '\u06D0', - '\uFBE6': '\u06D0', - '\uFBE7': '\u06D0', - '\uFBE8': '\u0649', - '\uFBE9': '\u0649', - '\uFBEA': '\u0626\u0627', - '\uFBEB': '\u0626\u0627', - '\uFBEC': '\u0626\u06D5', - '\uFBED': '\u0626\u06D5', - '\uFBEE': '\u0626\u0648', - '\uFBEF': '\u0626\u0648', - '\uFBF0': '\u0626\u06C7', - '\uFBF1': '\u0626\u06C7', - '\uFBF2': '\u0626\u06C6', - '\uFBF3': '\u0626\u06C6', - '\uFBF4': '\u0626\u06C8', - '\uFBF5': '\u0626\u06C8', - '\uFBF6': '\u0626\u06D0', - '\uFBF7': '\u0626\u06D0', - '\uFBF8': '\u0626\u06D0', - '\uFBF9': '\u0626\u0649', - '\uFBFA': '\u0626\u0649', - '\uFBFB': '\u0626\u0649', - '\uFBFC': '\u06CC', - '\uFBFD': '\u06CC', - '\uFBFE': '\u06CC', - '\uFBFF': '\u06CC', - '\uFC00': '\u0626\u062C', - '\uFC01': '\u0626\u062D', - '\uFC02': '\u0626\u0645', - '\uFC03': '\u0626\u0649', - '\uFC04': '\u0626\u064A', - '\uFC05': '\u0628\u062C', - '\uFC06': '\u0628\u062D', - '\uFC07': '\u0628\u062E', - '\uFC08': '\u0628\u0645', - '\uFC09': '\u0628\u0649', - '\uFC0A': '\u0628\u064A', - '\uFC0B': '\u062A\u062C', - '\uFC0C': '\u062A\u062D', - '\uFC0D': '\u062A\u062E', - '\uFC0E': '\u062A\u0645', - '\uFC0F': '\u062A\u0649', - '\uFC10': '\u062A\u064A', - '\uFC11': '\u062B\u062C', - '\uFC12': '\u062B\u0645', - '\uFC13': '\u062B\u0649', - '\uFC14': '\u062B\u064A', - '\uFC15': '\u062C\u062D', - '\uFC16': '\u062C\u0645', - '\uFC17': '\u062D\u062C', - '\uFC18': '\u062D\u0645', - '\uFC19': '\u062E\u062C', - '\uFC1A': '\u062E\u062D', - '\uFC1B': '\u062E\u0645', - '\uFC1C': '\u0633\u062C', - '\uFC1D': '\u0633\u062D', - '\uFC1E': '\u0633\u062E', - '\uFC1F': '\u0633\u0645', - '\uFC20': '\u0635\u062D', - '\uFC21': '\u0635\u0645', - '\uFC22': '\u0636\u062C', - '\uFC23': '\u0636\u062D', - '\uFC24': '\u0636\u062E', - '\uFC25': '\u0636\u0645', - '\uFC26': '\u0637\u062D', - '\uFC27': '\u0637\u0645', - '\uFC28': '\u0638\u0645', - '\uFC29': '\u0639\u062C', - '\uFC2A': '\u0639\u0645', - '\uFC2B': '\u063A\u062C', - '\uFC2C': '\u063A\u0645', - '\uFC2D': '\u0641\u062C', - '\uFC2E': '\u0641\u062D', - '\uFC2F': '\u0641\u062E', - '\uFC30': '\u0641\u0645', - '\uFC31': '\u0641\u0649', - '\uFC32': '\u0641\u064A', - '\uFC33': '\u0642\u062D', - '\uFC34': '\u0642\u0645', - '\uFC35': '\u0642\u0649', - '\uFC36': '\u0642\u064A', - '\uFC37': '\u0643\u0627', - '\uFC38': '\u0643\u062C', - '\uFC39': '\u0643\u062D', - '\uFC3A': '\u0643\u062E', - '\uFC3B': '\u0643\u0644', - '\uFC3C': '\u0643\u0645', - '\uFC3D': '\u0643\u0649', - '\uFC3E': '\u0643\u064A', - '\uFC3F': '\u0644\u062C', - '\uFC40': '\u0644\u062D', - '\uFC41': '\u0644\u062E', - '\uFC42': '\u0644\u0645', - '\uFC43': '\u0644\u0649', - '\uFC44': '\u0644\u064A', - '\uFC45': '\u0645\u062C', - '\uFC46': '\u0645\u062D', - '\uFC47': '\u0645\u062E', - '\uFC48': '\u0645\u0645', - '\uFC49': '\u0645\u0649', - '\uFC4A': '\u0645\u064A', - '\uFC4B': '\u0646\u062C', - '\uFC4C': '\u0646\u062D', - '\uFC4D': '\u0646\u062E', - '\uFC4E': '\u0646\u0645', - '\uFC4F': '\u0646\u0649', - '\uFC50': '\u0646\u064A', - '\uFC51': '\u0647\u062C', - '\uFC52': '\u0647\u0645', - '\uFC53': '\u0647\u0649', - '\uFC54': '\u0647\u064A', - '\uFC55': '\u064A\u062C', - '\uFC56': '\u064A\u062D', - '\uFC57': '\u064A\u062E', - '\uFC58': '\u064A\u0645', - '\uFC59': '\u064A\u0649', - '\uFC5A': '\u064A\u064A', - '\uFC5B': '\u0630\u0670', - '\uFC5C': '\u0631\u0670', - '\uFC5D': '\u0649\u0670', - '\uFC5E': '\u0020\u064C\u0651', - '\uFC5F': '\u0020\u064D\u0651', - '\uFC60': '\u0020\u064E\u0651', - '\uFC61': '\u0020\u064F\u0651', - '\uFC62': '\u0020\u0650\u0651', - '\uFC63': '\u0020\u0651\u0670', - '\uFC64': '\u0626\u0631', - '\uFC65': '\u0626\u0632', - '\uFC66': '\u0626\u0645', - '\uFC67': '\u0626\u0646', - '\uFC68': '\u0626\u0649', - '\uFC69': '\u0626\u064A', - '\uFC6A': '\u0628\u0631', - '\uFC6B': '\u0628\u0632', - '\uFC6C': '\u0628\u0645', - '\uFC6D': '\u0628\u0646', - '\uFC6E': '\u0628\u0649', - '\uFC6F': '\u0628\u064A', - '\uFC70': '\u062A\u0631', - '\uFC71': '\u062A\u0632', - '\uFC72': '\u062A\u0645', - '\uFC73': '\u062A\u0646', - '\uFC74': '\u062A\u0649', - '\uFC75': '\u062A\u064A', - '\uFC76': '\u062B\u0631', - '\uFC77': '\u062B\u0632', - '\uFC78': '\u062B\u0645', - '\uFC79': '\u062B\u0646', - '\uFC7A': '\u062B\u0649', - '\uFC7B': '\u062B\u064A', - '\uFC7C': '\u0641\u0649', - '\uFC7D': '\u0641\u064A', - '\uFC7E': '\u0642\u0649', - '\uFC7F': '\u0642\u064A', - '\uFC80': '\u0643\u0627', - '\uFC81': '\u0643\u0644', - '\uFC82': '\u0643\u0645', - '\uFC83': '\u0643\u0649', - '\uFC84': '\u0643\u064A', - '\uFC85': '\u0644\u0645', - '\uFC86': '\u0644\u0649', - '\uFC87': '\u0644\u064A', - '\uFC88': '\u0645\u0627', - '\uFC89': '\u0645\u0645', - '\uFC8A': '\u0646\u0631', - '\uFC8B': '\u0646\u0632', - '\uFC8C': '\u0646\u0645', - '\uFC8D': '\u0646\u0646', - '\uFC8E': '\u0646\u0649', - '\uFC8F': '\u0646\u064A', - '\uFC90': '\u0649\u0670', - '\uFC91': '\u064A\u0631', - '\uFC92': '\u064A\u0632', - '\uFC93': '\u064A\u0645', - '\uFC94': '\u064A\u0646', - '\uFC95': '\u064A\u0649', - '\uFC96': '\u064A\u064A', - '\uFC97': '\u0626\u062C', - '\uFC98': '\u0626\u062D', - '\uFC99': '\u0626\u062E', - '\uFC9A': '\u0626\u0645', - '\uFC9B': '\u0626\u0647', - '\uFC9C': '\u0628\u062C', - '\uFC9D': '\u0628\u062D', - '\uFC9E': '\u0628\u062E', - '\uFC9F': '\u0628\u0645', - '\uFCA0': '\u0628\u0647', - '\uFCA1': '\u062A\u062C', - '\uFCA2': '\u062A\u062D', - '\uFCA3': '\u062A\u062E', - '\uFCA4': '\u062A\u0645', - '\uFCA5': '\u062A\u0647', - '\uFCA6': '\u062B\u0645', - '\uFCA7': '\u062C\u062D', - '\uFCA8': '\u062C\u0645', - '\uFCA9': '\u062D\u062C', - '\uFCAA': '\u062D\u0645', - '\uFCAB': '\u062E\u062C', - '\uFCAC': '\u062E\u0645', - '\uFCAD': '\u0633\u062C', - '\uFCAE': '\u0633\u062D', - '\uFCAF': '\u0633\u062E', - '\uFCB0': '\u0633\u0645', - '\uFCB1': '\u0635\u062D', - '\uFCB2': '\u0635\u062E', - '\uFCB3': '\u0635\u0645', - '\uFCB4': '\u0636\u062C', - '\uFCB5': '\u0636\u062D', - '\uFCB6': '\u0636\u062E', - '\uFCB7': '\u0636\u0645', - '\uFCB8': '\u0637\u062D', - '\uFCB9': '\u0638\u0645', - '\uFCBA': '\u0639\u062C', - '\uFCBB': '\u0639\u0645', - '\uFCBC': '\u063A\u062C', - '\uFCBD': '\u063A\u0645', - '\uFCBE': '\u0641\u062C', - '\uFCBF': '\u0641\u062D', - '\uFCC0': '\u0641\u062E', - '\uFCC1': '\u0641\u0645', - '\uFCC2': '\u0642\u062D', - '\uFCC3': '\u0642\u0645', - '\uFCC4': '\u0643\u062C', - '\uFCC5': '\u0643\u062D', - '\uFCC6': '\u0643\u062E', - '\uFCC7': '\u0643\u0644', - '\uFCC8': '\u0643\u0645', - '\uFCC9': '\u0644\u062C', - '\uFCCA': '\u0644\u062D', - '\uFCCB': '\u0644\u062E', - '\uFCCC': '\u0644\u0645', - '\uFCCD': '\u0644\u0647', - '\uFCCE': '\u0645\u062C', - '\uFCCF': '\u0645\u062D', - '\uFCD0': '\u0645\u062E', - '\uFCD1': '\u0645\u0645', - '\uFCD2': '\u0646\u062C', - '\uFCD3': '\u0646\u062D', - '\uFCD4': '\u0646\u062E', - '\uFCD5': '\u0646\u0645', - '\uFCD6': '\u0646\u0647', - '\uFCD7': '\u0647\u062C', - '\uFCD8': '\u0647\u0645', - '\uFCD9': '\u0647\u0670', - '\uFCDA': '\u064A\u062C', - '\uFCDB': '\u064A\u062D', - '\uFCDC': '\u064A\u062E', - '\uFCDD': '\u064A\u0645', - '\uFCDE': '\u064A\u0647', - '\uFCDF': '\u0626\u0645', - '\uFCE0': '\u0626\u0647', - '\uFCE1': '\u0628\u0645', - '\uFCE2': '\u0628\u0647', - '\uFCE3': '\u062A\u0645', - '\uFCE4': '\u062A\u0647', - '\uFCE5': '\u062B\u0645', - '\uFCE6': '\u062B\u0647', - '\uFCE7': '\u0633\u0645', - '\uFCE8': '\u0633\u0647', - '\uFCE9': '\u0634\u0645', - '\uFCEA': '\u0634\u0647', - '\uFCEB': '\u0643\u0644', - '\uFCEC': '\u0643\u0645', - '\uFCED': '\u0644\u0645', - '\uFCEE': '\u0646\u0645', - '\uFCEF': '\u0646\u0647', - '\uFCF0': '\u064A\u0645', - '\uFCF1': '\u064A\u0647', - '\uFCF2': '\u0640\u064E\u0651', - '\uFCF3': '\u0640\u064F\u0651', - '\uFCF4': '\u0640\u0650\u0651', - '\uFCF5': '\u0637\u0649', - '\uFCF6': '\u0637\u064A', - '\uFCF7': '\u0639\u0649', - '\uFCF8': '\u0639\u064A', - '\uFCF9': '\u063A\u0649', - '\uFCFA': '\u063A\u064A', - '\uFCFB': '\u0633\u0649', - '\uFCFC': '\u0633\u064A', - '\uFCFD': '\u0634\u0649', - '\uFCFE': '\u0634\u064A', - '\uFCFF': '\u062D\u0649', - '\uFD00': '\u062D\u064A', - '\uFD01': '\u062C\u0649', - '\uFD02': '\u062C\u064A', - '\uFD03': '\u062E\u0649', - '\uFD04': '\u062E\u064A', - '\uFD05': '\u0635\u0649', - '\uFD06': '\u0635\u064A', - '\uFD07': '\u0636\u0649', - '\uFD08': '\u0636\u064A', - '\uFD09': '\u0634\u062C', - '\uFD0A': '\u0634\u062D', - '\uFD0B': '\u0634\u062E', - '\uFD0C': '\u0634\u0645', - '\uFD0D': '\u0634\u0631', - '\uFD0E': '\u0633\u0631', - '\uFD0F': '\u0635\u0631', - '\uFD10': '\u0636\u0631', - '\uFD11': '\u0637\u0649', - '\uFD12': '\u0637\u064A', - '\uFD13': '\u0639\u0649', - '\uFD14': '\u0639\u064A', - '\uFD15': '\u063A\u0649', - '\uFD16': '\u063A\u064A', - '\uFD17': '\u0633\u0649', - '\uFD18': '\u0633\u064A', - '\uFD19': '\u0634\u0649', - '\uFD1A': '\u0634\u064A', - '\uFD1B': '\u062D\u0649', - '\uFD1C': '\u062D\u064A', - '\uFD1D': '\u062C\u0649', - '\uFD1E': '\u062C\u064A', - '\uFD1F': '\u062E\u0649', - '\uFD20': '\u062E\u064A', - '\uFD21': '\u0635\u0649', - '\uFD22': '\u0635\u064A', - '\uFD23': '\u0636\u0649', - '\uFD24': '\u0636\u064A', - '\uFD25': '\u0634\u062C', - '\uFD26': '\u0634\u062D', - '\uFD27': '\u0634\u062E', - '\uFD28': '\u0634\u0645', - '\uFD29': '\u0634\u0631', - '\uFD2A': '\u0633\u0631', - '\uFD2B': '\u0635\u0631', - '\uFD2C': '\u0636\u0631', - '\uFD2D': '\u0634\u062C', - '\uFD2E': '\u0634\u062D', - '\uFD2F': '\u0634\u062E', - '\uFD30': '\u0634\u0645', - '\uFD31': '\u0633\u0647', - '\uFD32': '\u0634\u0647', - '\uFD33': '\u0637\u0645', - '\uFD34': '\u0633\u062C', - '\uFD35': '\u0633\u062D', - '\uFD36': '\u0633\u062E', - '\uFD37': '\u0634\u062C', - '\uFD38': '\u0634\u062D', - '\uFD39': '\u0634\u062E', - '\uFD3A': '\u0637\u0645', - '\uFD3B': '\u0638\u0645', - '\uFD3C': '\u0627\u064B', - '\uFD3D': '\u0627\u064B', - '\uFD50': '\u062A\u062C\u0645', - '\uFD51': '\u062A\u062D\u062C', - '\uFD52': '\u062A\u062D\u062C', - '\uFD53': '\u062A\u062D\u0645', - '\uFD54': '\u062A\u062E\u0645', - '\uFD55': '\u062A\u0645\u062C', - '\uFD56': '\u062A\u0645\u062D', - '\uFD57': '\u062A\u0645\u062E', - '\uFD58': '\u062C\u0645\u062D', - '\uFD59': '\u062C\u0645\u062D', - '\uFD5A': '\u062D\u0645\u064A', - '\uFD5B': '\u062D\u0645\u0649', - '\uFD5C': '\u0633\u062D\u062C', - '\uFD5D': '\u0633\u062C\u062D', - '\uFD5E': '\u0633\u062C\u0649', - '\uFD5F': '\u0633\u0645\u062D', - '\uFD60': '\u0633\u0645\u062D', - '\uFD61': '\u0633\u0645\u062C', - '\uFD62': '\u0633\u0645\u0645', - '\uFD63': '\u0633\u0645\u0645', - '\uFD64': '\u0635\u062D\u062D', - '\uFD65': '\u0635\u062D\u062D', - '\uFD66': '\u0635\u0645\u0645', - '\uFD67': '\u0634\u062D\u0645', - '\uFD68': '\u0634\u062D\u0645', - '\uFD69': '\u0634\u062C\u064A', - '\uFD6A': '\u0634\u0645\u062E', - '\uFD6B': '\u0634\u0645\u062E', - '\uFD6C': '\u0634\u0645\u0645', - '\uFD6D': '\u0634\u0645\u0645', - '\uFD6E': '\u0636\u062D\u0649', - '\uFD6F': '\u0636\u062E\u0645', - '\uFD70': '\u0636\u062E\u0645', - '\uFD71': '\u0637\u0645\u062D', - '\uFD72': '\u0637\u0645\u062D', - '\uFD73': '\u0637\u0645\u0645', - '\uFD74': '\u0637\u0645\u064A', - '\uFD75': '\u0639\u062C\u0645', - '\uFD76': '\u0639\u0645\u0645', - '\uFD77': '\u0639\u0645\u0645', - '\uFD78': '\u0639\u0645\u0649', - '\uFD79': '\u063A\u0645\u0645', - '\uFD7A': '\u063A\u0645\u064A', - '\uFD7B': '\u063A\u0645\u0649', - '\uFD7C': '\u0641\u062E\u0645', - '\uFD7D': '\u0641\u062E\u0645', - '\uFD7E': '\u0642\u0645\u062D', - '\uFD7F': '\u0642\u0645\u0645', - '\uFD80': '\u0644\u062D\u0645', - '\uFD81': '\u0644\u062D\u064A', - '\uFD82': '\u0644\u062D\u0649', - '\uFD83': '\u0644\u062C\u062C', - '\uFD84': '\u0644\u062C\u062C', - '\uFD85': '\u0644\u062E\u0645', - '\uFD86': '\u0644\u062E\u0645', - '\uFD87': '\u0644\u0645\u062D', - '\uFD88': '\u0644\u0645\u062D', - '\uFD89': '\u0645\u062D\u062C', - '\uFD8A': '\u0645\u062D\u0645', - '\uFD8B': '\u0645\u062D\u064A', - '\uFD8C': '\u0645\u062C\u062D', - '\uFD8D': '\u0645\u062C\u0645', - '\uFD8E': '\u0645\u062E\u062C', - '\uFD8F': '\u0645\u062E\u0645', - '\uFD92': '\u0645\u062C\u062E', - '\uFD93': '\u0647\u0645\u062C', - '\uFD94': '\u0647\u0645\u0645', - '\uFD95': '\u0646\u062D\u0645', - '\uFD96': '\u0646\u062D\u0649', - '\uFD97': '\u0646\u062C\u0645', - '\uFD98': '\u0646\u062C\u0645', - '\uFD99': '\u0646\u062C\u0649', - '\uFD9A': '\u0646\u0645\u064A', - '\uFD9B': '\u0646\u0645\u0649', - '\uFD9C': '\u064A\u0645\u0645', - '\uFD9D': '\u064A\u0645\u0645', - '\uFD9E': '\u0628\u062E\u064A', - '\uFD9F': '\u062A\u062C\u064A', - '\uFDA0': '\u062A\u062C\u0649', - '\uFDA1': '\u062A\u062E\u064A', - '\uFDA2': '\u062A\u062E\u0649', - '\uFDA3': '\u062A\u0645\u064A', - '\uFDA4': '\u062A\u0645\u0649', - '\uFDA5': '\u062C\u0645\u064A', - '\uFDA6': '\u062C\u062D\u0649', - '\uFDA7': '\u062C\u0645\u0649', - '\uFDA8': '\u0633\u062E\u0649', - '\uFDA9': '\u0635\u062D\u064A', - '\uFDAA': '\u0634\u062D\u064A', - '\uFDAB': '\u0636\u062D\u064A', - '\uFDAC': '\u0644\u062C\u064A', - '\uFDAD': '\u0644\u0645\u064A', - '\uFDAE': '\u064A\u062D\u064A', - '\uFDAF': '\u064A\u062C\u064A', - '\uFDB0': '\u064A\u0645\u064A', - '\uFDB1': '\u0645\u0645\u064A', - '\uFDB2': '\u0642\u0645\u064A', - '\uFDB3': '\u0646\u062D\u064A', - '\uFDB4': '\u0642\u0645\u062D', - '\uFDB5': '\u0644\u062D\u0645', - '\uFDB6': '\u0639\u0645\u064A', - '\uFDB7': '\u0643\u0645\u064A', - '\uFDB8': '\u0646\u062C\u062D', - '\uFDB9': '\u0645\u062E\u064A', - '\uFDBA': '\u0644\u062C\u0645', - '\uFDBB': '\u0643\u0645\u0645', - '\uFDBC': '\u0644\u062C\u0645', - '\uFDBD': '\u0646\u062C\u062D', - '\uFDBE': '\u062C\u062D\u064A', - '\uFDBF': '\u062D\u062C\u064A', - '\uFDC0': '\u0645\u062C\u064A', - '\uFDC1': '\u0641\u0645\u064A', - '\uFDC2': '\u0628\u062D\u064A', - '\uFDC3': '\u0643\u0645\u0645', - '\uFDC4': '\u0639\u062C\u0645', - '\uFDC5': '\u0635\u0645\u0645', - '\uFDC6': '\u0633\u062E\u064A', - '\uFDC7': '\u0646\u062C\u064A', - '\uFE49': '\u203E', - '\uFE4A': '\u203E', - '\uFE4B': '\u203E', - '\uFE4C': '\u203E', - '\uFE4D': '\u005F', - '\uFE4E': '\u005F', - '\uFE4F': '\u005F', - '\uFE80': '\u0621', - '\uFE81': '\u0622', - '\uFE82': '\u0622', - '\uFE83': '\u0623', - '\uFE84': '\u0623', - '\uFE85': '\u0624', - '\uFE86': '\u0624', - '\uFE87': '\u0625', - '\uFE88': '\u0625', - '\uFE89': '\u0626', - '\uFE8A': '\u0626', - '\uFE8B': '\u0626', - '\uFE8C': '\u0626', - '\uFE8D': '\u0627', - '\uFE8E': '\u0627', - '\uFE8F': '\u0628', - '\uFE90': '\u0628', - '\uFE91': '\u0628', - '\uFE92': '\u0628', - '\uFE93': '\u0629', - '\uFE94': '\u0629', - '\uFE95': '\u062A', - '\uFE96': '\u062A', - '\uFE97': '\u062A', - '\uFE98': '\u062A', - '\uFE99': '\u062B', - '\uFE9A': '\u062B', - '\uFE9B': '\u062B', - '\uFE9C': '\u062B', - '\uFE9D': '\u062C', - '\uFE9E': '\u062C', - '\uFE9F': '\u062C', - '\uFEA0': '\u062C', - '\uFEA1': '\u062D', - '\uFEA2': '\u062D', - '\uFEA3': '\u062D', - '\uFEA4': '\u062D', - '\uFEA5': '\u062E', - '\uFEA6': '\u062E', - '\uFEA7': '\u062E', - '\uFEA8': '\u062E', - '\uFEA9': '\u062F', - '\uFEAA': '\u062F', - '\uFEAB': '\u0630', - '\uFEAC': '\u0630', - '\uFEAD': '\u0631', - '\uFEAE': '\u0631', - '\uFEAF': '\u0632', - '\uFEB0': '\u0632', - '\uFEB1': '\u0633', - '\uFEB2': '\u0633', - '\uFEB3': '\u0633', - '\uFEB4': '\u0633', - '\uFEB5': '\u0634', - '\uFEB6': '\u0634', - '\uFEB7': '\u0634', - '\uFEB8': '\u0634', - '\uFEB9': '\u0635', - '\uFEBA': '\u0635', - '\uFEBB': '\u0635', - '\uFEBC': '\u0635', - '\uFEBD': '\u0636', - '\uFEBE': '\u0636', - '\uFEBF': '\u0636', - '\uFEC0': '\u0636', - '\uFEC1': '\u0637', - '\uFEC2': '\u0637', - '\uFEC3': '\u0637', - '\uFEC4': '\u0637', - '\uFEC5': '\u0638', - '\uFEC6': '\u0638', - '\uFEC7': '\u0638', - '\uFEC8': '\u0638', - '\uFEC9': '\u0639', - '\uFECA': '\u0639', - '\uFECB': '\u0639', - '\uFECC': '\u0639', - '\uFECD': '\u063A', - '\uFECE': '\u063A', - '\uFECF': '\u063A', - '\uFED0': '\u063A', - '\uFED1': '\u0641', - '\uFED2': '\u0641', - '\uFED3': '\u0641', - '\uFED4': '\u0641', - '\uFED5': '\u0642', - '\uFED6': '\u0642', - '\uFED7': '\u0642', - '\uFED8': '\u0642', - '\uFED9': '\u0643', - '\uFEDA': '\u0643', - '\uFEDB': '\u0643', - '\uFEDC': '\u0643', - '\uFEDD': '\u0644', - '\uFEDE': '\u0644', - '\uFEDF': '\u0644', - '\uFEE0': '\u0644', - '\uFEE1': '\u0645', - '\uFEE2': '\u0645', - '\uFEE3': '\u0645', - '\uFEE4': '\u0645', - '\uFEE5': '\u0646', - '\uFEE6': '\u0646', - '\uFEE7': '\u0646', - '\uFEE8': '\u0646', - '\uFEE9': '\u0647', - '\uFEEA': '\u0647', - '\uFEEB': '\u0647', - '\uFEEC': '\u0647', - '\uFEED': '\u0648', - '\uFEEE': '\u0648', - '\uFEEF': '\u0649', - '\uFEF0': '\u0649', - '\uFEF1': '\u064A', - '\uFEF2': '\u064A', - '\uFEF3': '\u064A', - '\uFEF4': '\u064A', - '\uFEF5': '\u0644\u0622', - '\uFEF6': '\u0644\u0622', - '\uFEF7': '\u0644\u0623', - '\uFEF8': '\u0644\u0623', - '\uFEF9': '\u0644\u0625', - '\uFEFA': '\u0644\u0625', - '\uFEFB': '\u0644\u0627', - '\uFEFC': '\u0644\u0627' -}; - -function reverseIfRtl(chars) { - var charsLength = chars.length; - //reverse an arabic ligature - if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) { - return chars; - } - var s = ''; - for (var ii = charsLength - 1; ii >= 0; ii--) { - s += chars[ii]; - } - return s; -} - -function adjustWidths(properties) { - if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) { - return; - } - // adjusting width to fontMatrix scale - var scale = 0.001 / properties.fontMatrix[0]; - var glyphsWidths = properties.widths; - for (var glyph in glyphsWidths) { - glyphsWidths[glyph] *= scale; - } - properties.defaultWidth *= scale; -} - -function getFontType(type, subtype) { - switch (type) { - case 'Type1': - return subtype === 'Type1C' ? FontType.TYPE1C : FontType.TYPE1; - case 'CIDFontType0': - return subtype === 'CIDFontType0C' ? FontType.CIDFONTTYPE0C : - FontType.CIDFONTTYPE0; - case 'OpenType': - return FontType.OPENTYPE; - case 'TrueType': - return FontType.TRUETYPE; - case 'CIDFontType2': - return FontType.CIDFONTTYPE2; - case 'MMType1': - return FontType.MMTYPE1; - case 'Type0': - return FontType.TYPE0; - default: - return FontType.UNKNOWN; - } -} - -var Glyph = (function GlyphClosure() { - function Glyph(fontChar, unicode, accent, width, vmetric, operatorListId) { - this.fontChar = fontChar; - this.unicode = unicode; - this.accent = accent; - this.width = width; - this.vmetric = vmetric; - this.operatorListId = operatorListId; - } - - Glyph.prototype.matchesForCache = - function(fontChar, unicode, accent, width, vmetric, operatorListId) { - return this.fontChar === fontChar && - this.unicode === unicode && - this.accent === accent && - this.width === width && - this.vmetric === vmetric && - this.operatorListId === operatorListId; - }; - - return Glyph; -})(); - -var ToUnicodeMap = (function ToUnicodeMapClosure() { - function ToUnicodeMap(cmap) { - // The elements of this._map can be integers or strings, depending on how - // |cmap| was created. - this._map = cmap; - } - - ToUnicodeMap.prototype = { - get length() { - return this._map.length; - }, - - forEach: function(callback) { - for (var charCode in this._map) { - callback(charCode, this._map[charCode].charCodeAt(0)); - } - }, - - has: function(i) { - return this._map[i] !== undefined; - }, - - get: function(i) { - return this._map[i]; - }, - - charCodeOf: function(v) { - return this._map.indexOf(v); - } - }; - - return ToUnicodeMap; -})(); - -var IdentityToUnicodeMap = (function IdentityToUnicodeMapClosure() { - function IdentityToUnicodeMap(firstChar, lastChar) { - this.firstChar = firstChar; - this.lastChar = lastChar; - } - - IdentityToUnicodeMap.prototype = { - get length() { - return (this.lastChar + 1) - this.firstChar; - }, - - forEach: function (callback) { - for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) { - callback(i, i); - } - }, - - has: function (i) { - return this.firstChar <= i && i <= this.lastChar; - }, - - get: function (i) { - if (this.firstChar <= i && i <= this.lastChar) { - return String.fromCharCode(i); - } - return undefined; - }, - - charCodeOf: function (v) { - error('should not call .charCodeOf'); - } - }; - - return IdentityToUnicodeMap; -})(); - -var OpenTypeFileBuilder = (function OpenTypeFileBuilderClosure() { - function writeInt16(dest, offset, num) { - dest[offset] = (num >> 8) & 0xFF; - dest[offset + 1] = num & 0xFF; - } - - function writeInt32(dest, offset, num) { - dest[offset] = (num >> 24) & 0xFF; - dest[offset + 1] = (num >> 16) & 0xFF; - dest[offset + 2] = (num >> 8) & 0xFF; - dest[offset + 3] = num & 0xFF; - } - - function writeData(dest, offset, data) { - var i, ii; - if (data instanceof Uint8Array) { - dest.set(data, offset); - } else if (typeof data === 'string') { - for (i = 0, ii = data.length; i < ii; i++) { - dest[offset++] = data.charCodeAt(i) & 0xFF; - } - } else { - // treating everything else as array - for (i = 0, ii = data.length; i < ii; i++) { - dest[offset++] = data[i] & 0xFF; - } - } - } - - function OpenTypeFileBuilder(sfnt) { - this.sfnt = sfnt; - this.tables = Object.create(null); - } - - OpenTypeFileBuilder.getSearchParams = - function OpenTypeFileBuilder_getSearchParams(entriesCount, entrySize) { - var maxPower2 = 1, log2 = 0; - while ((maxPower2 ^ entriesCount) > maxPower2) { - maxPower2 <<= 1; - log2++; - } - var searchRange = maxPower2 * entrySize; - return { - range: searchRange, - entry: log2, - rangeShift: entrySize * entriesCount - searchRange - }; - }; - - var OTF_HEADER_SIZE = 12; - var OTF_TABLE_ENTRY_SIZE = 16; - - OpenTypeFileBuilder.prototype = { - toArray: function OpenTypeFileBuilder_toArray() { - var sfnt = this.sfnt; - - // Tables needs to be written by ascendant alphabetic order - var tables = this.tables; - var tablesNames = Object.keys(tables); - tablesNames.sort(); - var numTables = tablesNames.length; - - var i, j, jj, table, tableName; - // layout the tables data - var offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE; - var tableOffsets = [offset]; - for (i = 0; i < numTables; i++) { - table = tables[tablesNames[i]]; - var paddedLength = ((table.length + 3) & ~3) >>> 0; - offset += paddedLength; - tableOffsets.push(offset); - } - - var file = new Uint8Array(offset); - // write the table data first (mostly for checksum) - for (i = 0; i < numTables; i++) { - table = tables[tablesNames[i]]; - writeData(file, tableOffsets[i], table); - } - - // sfnt version (4 bytes) - if (sfnt === 'true') { - // Windows hates the Mac TrueType sfnt version number - sfnt = string32(0x00010000); - } - file[0] = sfnt.charCodeAt(0) & 0xFF; - file[1] = sfnt.charCodeAt(1) & 0xFF; - file[2] = sfnt.charCodeAt(2) & 0xFF; - file[3] = sfnt.charCodeAt(3) & 0xFF; - - // numTables (2 bytes) - writeInt16(file, 4, numTables); - - var searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16); - - // searchRange (2 bytes) - writeInt16(file, 6, searchParams.range); - // entrySelector (2 bytes) - writeInt16(file, 8, searchParams.entry); - // rangeShift (2 bytes) - writeInt16(file, 10, searchParams.rangeShift); - - offset = OTF_HEADER_SIZE; - // writing table entries - for (i = 0; i < numTables; i++) { - tableName = tablesNames[i]; - file[offset] = tableName.charCodeAt(0) & 0xFF; - file[offset + 1] = tableName.charCodeAt(1) & 0xFF; - file[offset + 2] = tableName.charCodeAt(2) & 0xFF; - file[offset + 3] = tableName.charCodeAt(3) & 0xFF; - - // checksum - var checksum = 0; - for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) { - var quad = (file[j] << 24) + (file[j + 1] << 16) + - (file[j + 2] << 8) + file[j + 3]; - checksum = (checksum + quad) | 0; - } - writeInt32(file, offset + 4, checksum); - - // offset - writeInt32(file, offset + 8, tableOffsets[i]); - // length - writeInt32(file, offset + 12, tables[tableName].length); - - offset += OTF_TABLE_ENTRY_SIZE; - } - return file; - }, - - addTable: function OpenTypeFileBuilder_addTable(tag, data) { - if (tag in this.tables) { - throw new Error('Table ' + tag + ' already exists'); - } - this.tables[tag] = data; - } - }; - - return OpenTypeFileBuilder; -})(); - -/** - * 'Font' is the class the outside world should use, it encapsulate all the font - * decoding logics whatever type it is (assuming the font type is supported). - * - * For example to read a Type1 font and to attach it to the document: - * var type1Font = new Font("MyFontName", binaryFile, propertiesObject); - * type1Font.bind(); - */ -var Font = (function FontClosure() { - function Font(name, file, properties) { - var charCode, glyphName, fontChar; - - this.name = name; - this.loadedName = properties.loadedName; - this.isType3Font = properties.isType3Font; - this.sizes = []; - - this.glyphCache = {}; - - var names = name.split('+'); - names = names.length > 1 ? names[1] : names[0]; - names = names.split(/[-,_]/g)[0]; - this.isSerifFont = !!(properties.flags & FontFlags.Serif); - this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic); - this.isMonospace = !!(properties.flags & FontFlags.FixedPitch); - - var type = properties.type; - var subtype = properties.subtype; - this.type = type; - - this.fallbackName = (this.isMonospace ? 'monospace' : - (this.isSerifFont ? 'serif' : 'sans-serif')); - - this.differences = properties.differences; - this.widths = properties.widths; - this.defaultWidth = properties.defaultWidth; - this.composite = properties.composite; - this.wideChars = properties.wideChars; - this.cMap = properties.cMap; - this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS; - this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS; - this.fontMatrix = properties.fontMatrix; - this.bbox = properties.bbox; - - this.toUnicode = properties.toUnicode = this.buildToUnicode(properties); - - this.toFontChar = []; - - if (properties.type === 'Type3') { - for (charCode = 0; charCode < 256; charCode++) { - this.toFontChar[charCode] = (this.differences[charCode] || - properties.defaultEncoding[charCode]); - } - this.fontType = FontType.TYPE3; - return; - } - - this.cidEncoding = properties.cidEncoding; - this.vertical = properties.vertical; - if (this.vertical) { - this.vmetrics = properties.vmetrics; - this.defaultVMetrics = properties.defaultVMetrics; - } - - if (!file || file.isEmpty) { - if (file) { - // Some bad PDF generators will include empty font files, - // attempting to recover by assuming that no file exists. - warn('Font file is empty in "' + name + '" (' + this.loadedName + ')'); - } - - this.missingFile = true; - // The file data is not specified. Trying to fix the font name - // to be used with the canvas.font. - var fontName = name.replace(/[,_]/g, '-'); - var isStandardFont = !!stdFontMap[fontName] || - !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]); - fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName; - - this.bold = (fontName.search(/bold/gi) !== -1); - this.italic = ((fontName.search(/oblique/gi) !== -1) || - (fontName.search(/italic/gi) !== -1)); - - // Use 'name' instead of 'fontName' here because the original - // name ArialBlack for example will be replaced by Helvetica. - this.black = (name.search(/Black/g) !== -1); - - // if at least one width is present, remeasure all chars when exists - this.remeasure = Object.keys(this.widths).length > 0; - if (isStandardFont && type === 'CIDFontType2' && - properties.cidEncoding.indexOf('Identity-') === 0) { - // Standard fonts might be embedded as CID font without glyph mapping. - // Building one based on GlyphMapForStandardFonts. - var map = []; - for (var code in GlyphMapForStandardFonts) { - map[+code] = GlyphMapForStandardFonts[code]; - } - var isIdentityUnicode = this.toUnicode instanceof IdentityToUnicodeMap; - if (!isIdentityUnicode) { - this.toUnicode.forEach(function(charCode, unicodeCharCode) { - map[+charCode] = unicodeCharCode; - }); - } - this.toFontChar = map; - this.toUnicode = new ToUnicodeMap(map); - } else if (/Symbol/i.test(fontName)) { - var symbols = Encodings.SymbolSetEncoding; - for (charCode in symbols) { - fontChar = GlyphsUnicode[symbols[charCode]]; - if (!fontChar) { - continue; - } - this.toFontChar[charCode] = fontChar; - } - for (charCode in properties.differences) { - fontChar = GlyphsUnicode[properties.differences[charCode]]; - if (!fontChar) { - continue; - } - this.toFontChar[charCode] = fontChar; - } - } else if (/Dingbats/i.test(fontName)) { - if (/Wingdings/i.test(name)) { - warn('Wingdings font without embedded font file, ' + - 'falling back to the ZapfDingbats encoding.'); - } - var dingbats = Encodings.ZapfDingbatsEncoding; - for (charCode in dingbats) { - fontChar = DingbatsGlyphsUnicode[dingbats[charCode]]; - if (!fontChar) { - continue; - } - this.toFontChar[charCode] = fontChar; - } - for (charCode in properties.differences) { - fontChar = DingbatsGlyphsUnicode[properties.differences[charCode]]; - if (!fontChar) { - continue; - } - this.toFontChar[charCode] = fontChar; - } - } else if (isStandardFont) { - this.toFontChar = []; - for (charCode in properties.defaultEncoding) { - glyphName = (properties.differences[charCode] || - properties.defaultEncoding[charCode]); - this.toFontChar[charCode] = GlyphsUnicode[glyphName]; - } - } else { - var unicodeCharCode, notCidFont = (type.indexOf('CIDFontType') === -1); - this.toUnicode.forEach(function(charCode, unicodeCharCode) { - if (notCidFont) { - glyphName = (properties.differences[charCode] || - properties.defaultEncoding[charCode]); - unicodeCharCode = (GlyphsUnicode[glyphName] || unicodeCharCode); - } - this.toFontChar[charCode] = unicodeCharCode; - }.bind(this)); - } - this.loadedName = fontName.split('-')[0]; - this.loading = false; - this.fontType = getFontType(type, subtype); - return; - } - - // Some fonts might use wrong font types for Type1C or CIDFontType0C - if (subtype === 'Type1C' && (type !== 'Type1' && type !== 'MMType1')) { - // Some TrueType fonts by mistake claim Type1C - if (isTrueTypeFile(file)) { - subtype = 'TrueType'; - } else { - type = 'Type1'; - } - } - if (subtype === 'CIDFontType0C' && type !== 'CIDFontType0') { - type = 'CIDFontType0'; - } - if (subtype === 'OpenType') { - type = 'OpenType'; - } - // Some CIDFontType0C fonts by mistake claim CIDFontType0. - if (type === 'CIDFontType0') { - subtype = isType1File(file) ? 'CIDFontType0' : 'CIDFontType0C'; - } - - var data; - switch (type) { - case 'MMType1': - info('MMType1 font (' + name + '), falling back to Type1.'); - /* falls through */ - case 'Type1': - case 'CIDFontType0': - this.mimetype = 'font/opentype'; - - var cff = (subtype === 'Type1C' || subtype === 'CIDFontType0C') ? - new CFFFont(file, properties) : new Type1Font(name, file, properties); - - adjustWidths(properties); - - // Wrap the CFF data inside an OTF font file - data = this.convert(name, cff, properties); - break; - - case 'OpenType': - case 'TrueType': - case 'CIDFontType2': - this.mimetype = 'font/opentype'; - - // Repair the TrueType file. It is can be damaged in the point of - // view of the sanitizer - data = this.checkAndRepair(name, file, properties); - if (this.isOpenType) { - type = 'OpenType'; - } - break; - - default: - error('Font ' + type + ' is not supported'); - break; - } - - this.data = data; - this.fontType = getFontType(type, subtype); - - // Transfer some properties again that could change during font conversion - this.fontMatrix = properties.fontMatrix; - this.widths = properties.widths; - this.defaultWidth = properties.defaultWidth; - this.encoding = properties.baseEncoding; - this.seacMap = properties.seacMap; - - this.loading = true; - } - - Font.getFontID = (function () { - var ID = 1; - return function Font_getFontID() { - return String(ID++); - }; - })(); - - function int16(b0, b1) { - return (b0 << 8) + b1; - } - - function int32(b0, b1, b2, b3) { - return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; - } - - function string16(value) { - return String.fromCharCode((value >> 8) & 0xff, value & 0xff); - } - - function safeString16(value) { - // clamp value to the 16-bit int range - value = (value > 0x7FFF ? 0x7FFF : (value < -0x8000 ? -0x8000 : value)); - return String.fromCharCode((value >> 8) & 0xff, value & 0xff); - } - - function isTrueTypeFile(file) { - var header = file.peekBytes(4); - return readUint32(header, 0) === 0x00010000; - } - - function isType1File(file) { - var header = file.peekBytes(2); - // All Type1 font programs must begin with the comment '%!' (0x25 + 0x21). - if (header[0] === 0x25 && header[1] === 0x21) { - return true; - } - // ... obviously some fonts violate that part of the specification, - // please refer to the comment in |Type1Font| below. - if (header[0] === 0x80 && header[1] === 0x01) { // pfb file header. - return true; - } - return false; - } - - /** - * Helper function for |adjustMapping|. - * @return {boolean} - */ - function isProblematicUnicodeLocation(code) { - if (code <= 0x1F) { // Control chars - return true; - } - if (code >= 0x80 && code <= 0x9F) { // Control chars - return true; - } - if ((code >= 0x2000 && code <= 0x200F) || // General punctuation chars - (code >= 0x2028 && code <= 0x202F) || - (code >= 0x2060 && code <= 0x206F)) { - return true; - } - if (code >= 0xFFF0 && code <= 0xFFFF) { // Specials Unicode block - return true; - } - switch (code) { - case 0x7F: // Control char - case 0xA0: // Non breaking space - case 0xAD: // Soft hyphen - case 0x0E33: // Thai character SARA AM - case 0x2011: // Non breaking hyphen - case 0x205F: // Medium mathematical space - case 0x25CC: // Dotted circle (combining mark) - return true; - } - return false; - } - - /** - * Rebuilds the char code to glyph ID map by trying to replace the char codes - * with their unicode value. It also moves char codes that are in known - * problematic locations. - * @return {Object} Two properties: - * 'toFontChar' - maps original char codes(the value that will be read - * from commands such as show text) to the char codes that will be used in the - * font that we build - * 'charCodeToGlyphId' - maps the new font char codes to glyph ids - */ - function adjustMapping(charCodeToGlyphId, properties) { - var toUnicode = properties.toUnicode; - var isSymbolic = !!(properties.flags & FontFlags.Symbolic); - var isIdentityUnicode = - properties.toUnicode instanceof IdentityToUnicodeMap; - var newMap = Object.create(null); - var toFontChar = []; - var usedFontCharCodes = []; - var nextAvailableFontCharCode = PRIVATE_USE_OFFSET_START; - for (var originalCharCode in charCodeToGlyphId) { - originalCharCode |= 0; - var glyphId = charCodeToGlyphId[originalCharCode]; - var fontCharCode = originalCharCode; - // First try to map the value to a unicode position if a non identity map - // was created. - if (!isIdentityUnicode && toUnicode.has(originalCharCode)) { - var unicode = toUnicode.get(fontCharCode); - // TODO: Try to map ligatures to the correct spot. - if (unicode.length === 1) { - fontCharCode = unicode.charCodeAt(0); - } - } - // Try to move control characters, special characters and already mapped - // characters to the private use area since they will not be drawn by - // canvas if left in their current position. Also, move characters if the - // font was symbolic and there is only an identity unicode map since the - // characters probably aren't in the correct position (fixes an issue - // with firefox and thuluthfont). - if ((usedFontCharCodes[fontCharCode] !== undefined || - isProblematicUnicodeLocation(fontCharCode) || - (isSymbolic && isIdentityUnicode)) && - nextAvailableFontCharCode <= PRIVATE_USE_OFFSET_END) { // Room left. - // Loop to try and find a free spot in the private use area. - do { - fontCharCode = nextAvailableFontCharCode++; - - if (SKIP_PRIVATE_USE_RANGE_F000_TO_F01F && fontCharCode === 0xF000) { - fontCharCode = 0xF020; - nextAvailableFontCharCode = fontCharCode + 1; - } - - } while (usedFontCharCodes[fontCharCode] !== undefined && - nextAvailableFontCharCode <= PRIVATE_USE_OFFSET_END); - } - - newMap[fontCharCode] = glyphId; - toFontChar[originalCharCode] = fontCharCode; - usedFontCharCodes[fontCharCode] = true; - } - return { - toFontChar: toFontChar, - charCodeToGlyphId: newMap, - nextAvailableFontCharCode: nextAvailableFontCharCode - }; - } - - function getRanges(glyphs) { - // Array.sort() sorts by characters, not numerically, so convert to an - // array of characters. - var codes = []; - for (var charCode in glyphs) { - codes.push({ fontCharCode: charCode | 0, glyphId: glyphs[charCode] }); - } - codes.sort(function fontGetRangesSort(a, b) { - return a.fontCharCode - b.fontCharCode; - }); - - // Split the sorted codes into ranges. - var ranges = []; - var length = codes.length; - for (var n = 0; n < length; ) { - var start = codes[n].fontCharCode; - var codeIndices = [codes[n].glyphId]; - ++n; - var end = start; - while (n < length && end + 1 === codes[n].fontCharCode) { - codeIndices.push(codes[n].glyphId); - ++end; - ++n; - if (end === 0xFFFF) { - break; - } - } - ranges.push([start, end, codeIndices]); - } - - return ranges; - } - - function createCmapTable(glyphs) { - var ranges = getRanges(glyphs); - var numTables = ranges[ranges.length - 1][1] > 0xFFFF ? 2 : 1; - var cmap = '\x00\x00' + // version - string16(numTables) + // numTables - '\x00\x03' + // platformID - '\x00\x01' + // encodingID - string32(4 + numTables * 8); // start of the table record - - var i, ii, j, jj; - for (i = ranges.length - 1; i >= 0; --i) { - if (ranges[i][0] <= 0xFFFF) { break; } - } - var bmpLength = i + 1; - - if (ranges[i][0] < 0xFFFF && ranges[i][1] === 0xFFFF) { - ranges[i][1] = 0xFFFE; - } - var trailingRangesCount = ranges[i][1] < 0xFFFF ? 1 : 0; - var segCount = bmpLength + trailingRangesCount; - var searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2); - - // Fill up the 4 parallel arrays describing the segments. - var startCount = ''; - var endCount = ''; - var idDeltas = ''; - var idRangeOffsets = ''; - var glyphsIds = ''; - var bias = 0; - - var range, start, end, codes; - for (i = 0, ii = bmpLength; i < ii; i++) { - range = ranges[i]; - start = range[0]; - end = range[1]; - startCount += string16(start); - endCount += string16(end); - codes = range[2]; - var contiguous = true; - for (j = 1, jj = codes.length; j < jj; ++j) { - if (codes[j] !== codes[j - 1] + 1) { - contiguous = false; - break; - } - } - if (!contiguous) { - var offset = (segCount - i) * 2 + bias * 2; - bias += (end - start + 1); - - idDeltas += string16(0); - idRangeOffsets += string16(offset); - - for (j = 0, jj = codes.length; j < jj; ++j) { - glyphsIds += string16(codes[j]); - } - } else { - var startCode = codes[0]; - - idDeltas += string16((startCode - start) & 0xFFFF); - idRangeOffsets += string16(0); - } - } - - if (trailingRangesCount > 0) { - endCount += '\xFF\xFF'; - startCount += '\xFF\xFF'; - idDeltas += '\x00\x01'; - idRangeOffsets += '\x00\x00'; - } - - var format314 = '\x00\x00' + // language - string16(2 * segCount) + - string16(searchParams.range) + - string16(searchParams.entry) + - string16(searchParams.rangeShift) + - endCount + '\x00\x00' + startCount + - idDeltas + idRangeOffsets + glyphsIds; - - var format31012 = ''; - var header31012 = ''; - if (numTables > 1) { - cmap += '\x00\x03' + // platformID - '\x00\x0A' + // encodingID - string32(4 + numTables * 8 + - 4 + format314.length); // start of the table record - format31012 = ''; - for (i = 0, ii = ranges.length; i < ii; i++) { - range = ranges[i]; - start = range[0]; - codes = range[2]; - var code = codes[0]; - for (j = 1, jj = codes.length; j < jj; ++j) { - if (codes[j] !== codes[j - 1] + 1) { - end = range[0] + j - 1; - format31012 += string32(start) + // startCharCode - string32(end) + // endCharCode - string32(code); // startGlyphID - start = end + 1; - code = codes[j]; - } - } - format31012 += string32(start) + // startCharCode - string32(range[1]) + // endCharCode - string32(code); // startGlyphID - } - header31012 = '\x00\x0C' + // format - '\x00\x00' + // reserved - string32(format31012.length + 16) + // length - '\x00\x00\x00\x00' + // language - string32(format31012.length / 12); // nGroups - } - - return cmap + '\x00\x04' + // format - string16(format314.length + 4) + // length - format314 + header31012 + format31012; - } - - function validateOS2Table(os2) { - var stream = new Stream(os2.data); - var version = stream.getUint16(); - // TODO verify all OS/2 tables fields, but currently we validate only those - // that give us issues - stream.getBytes(60); // skipping type, misc sizes, panose, unicode ranges - var selection = stream.getUint16(); - if (version < 4 && (selection & 0x0300)) { - return false; - } - var firstChar = stream.getUint16(); - var lastChar = stream.getUint16(); - if (firstChar > lastChar) { - return false; - } - stream.getBytes(6); // skipping sTypoAscender/Descender/LineGap - var usWinAscent = stream.getUint16(); - if (usWinAscent === 0) { // makes font unreadable by windows - return false; - } - - // OS/2 appears to be valid, resetting some fields - os2.data[8] = os2.data[9] = 0; // IE rejects fonts if fsType != 0 - return true; - } - - function createOS2Table(properties, charstrings, override) { - override = override || { - unitsPerEm: 0, - yMax: 0, - yMin: 0, - ascent: 0, - descent: 0 - }; - - var ulUnicodeRange1 = 0; - var ulUnicodeRange2 = 0; - var ulUnicodeRange3 = 0; - var ulUnicodeRange4 = 0; - - var firstCharIndex = null; - var lastCharIndex = 0; - - if (charstrings) { - for (var code in charstrings) { - code |= 0; - if (firstCharIndex > code || !firstCharIndex) { - firstCharIndex = code; - } - if (lastCharIndex < code) { - lastCharIndex = code; - } - - var position = getUnicodeRangeFor(code); - if (position < 32) { - ulUnicodeRange1 |= 1 << position; - } else if (position < 64) { - ulUnicodeRange2 |= 1 << position - 32; - } else if (position < 96) { - ulUnicodeRange3 |= 1 << position - 64; - } else if (position < 123) { - ulUnicodeRange4 |= 1 << position - 96; - } else { - error('Unicode ranges Bits > 123 are reserved for internal usage'); - } - } - } else { - // TODO - firstCharIndex = 0; - lastCharIndex = 255; - } - - var bbox = properties.bbox || [0, 0, 0, 0]; - var unitsPerEm = (override.unitsPerEm || - 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0]); - - // if the font units differ to the PDF glyph space units - // then scale up the values - var scale = (properties.ascentScaled ? 1.0 : - unitsPerEm / PDF_GLYPH_SPACE_UNITS); - - var typoAscent = (override.ascent || - Math.round(scale * (properties.ascent || bbox[3]))); - var typoDescent = (override.descent || - Math.round(scale * (properties.descent || bbox[1]))); - if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) { - typoDescent = -typoDescent; // fixing incorrect descent - } - var winAscent = override.yMax || typoAscent; - var winDescent = -override.yMin || -typoDescent; - - return '\x00\x03' + // version - '\x02\x24' + // xAvgCharWidth - '\x01\xF4' + // usWeightClass - '\x00\x05' + // usWidthClass - '\x00\x00' + // fstype (0 to let the font loads via font-face on IE) - '\x02\x8A' + // ySubscriptXSize - '\x02\xBB' + // ySubscriptYSize - '\x00\x00' + // ySubscriptXOffset - '\x00\x8C' + // ySubscriptYOffset - '\x02\x8A' + // ySuperScriptXSize - '\x02\xBB' + // ySuperScriptYSize - '\x00\x00' + // ySuperScriptXOffset - '\x01\xDF' + // ySuperScriptYOffset - '\x00\x31' + // yStrikeOutSize - '\x01\x02' + // yStrikeOutPosition - '\x00\x00' + // sFamilyClass - '\x00\x00\x06' + - String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + - '\x00\x00\x00\x00\x00\x00' + // Panose - string32(ulUnicodeRange1) + // ulUnicodeRange1 (Bits 0-31) - string32(ulUnicodeRange2) + // ulUnicodeRange2 (Bits 32-63) - string32(ulUnicodeRange3) + // ulUnicodeRange3 (Bits 64-95) - string32(ulUnicodeRange4) + // ulUnicodeRange4 (Bits 96-127) - '\x2A\x32\x31\x2A' + // achVendID - string16(properties.italicAngle ? 1 : 0) + // fsSelection - string16(firstCharIndex || - properties.firstChar) + // usFirstCharIndex - string16(lastCharIndex || properties.lastChar) + // usLastCharIndex - string16(typoAscent) + // sTypoAscender - string16(typoDescent) + // sTypoDescender - '\x00\x64' + // sTypoLineGap (7%-10% of the unitsPerEM value) - string16(winAscent) + // usWinAscent - string16(winDescent) + // usWinDescent - '\x00\x00\x00\x00' + // ulCodePageRange1 (Bits 0-31) - '\x00\x00\x00\x00' + // ulCodePageRange2 (Bits 32-63) - string16(properties.xHeight) + // sxHeight - string16(properties.capHeight) + // sCapHeight - string16(0) + // usDefaultChar - string16(firstCharIndex || properties.firstChar) + // usBreakChar - '\x00\x03'; // usMaxContext - } - - function createPostTable(properties) { - var angle = Math.floor(properties.italicAngle * (Math.pow(2, 16))); - return ('\x00\x03\x00\x00' + // Version number - string32(angle) + // italicAngle - '\x00\x00' + // underlinePosition - '\x00\x00' + // underlineThickness - string32(properties.fixedPitch) + // isFixedPitch - '\x00\x00\x00\x00' + // minMemType42 - '\x00\x00\x00\x00' + // maxMemType42 - '\x00\x00\x00\x00' + // minMemType1 - '\x00\x00\x00\x00'); // maxMemType1 - } - - function createNameTable(name, proto) { - if (!proto) { - proto = [[], []]; // no strings and unicode strings - } - - var strings = [ - proto[0][0] || 'Original licence', // 0.Copyright - proto[0][1] || name, // 1.Font family - proto[0][2] || 'Unknown', // 2.Font subfamily (font weight) - proto[0][3] || 'uniqueID', // 3.Unique ID - proto[0][4] || name, // 4.Full font name - proto[0][5] || 'Version 0.11', // 5.Version - proto[0][6] || '', // 6.Postscript name - proto[0][7] || 'Unknown', // 7.Trademark - proto[0][8] || 'Unknown', // 8.Manufacturer - proto[0][9] || 'Unknown' // 9.Designer - ]; - - // Mac want 1-byte per character strings while Windows want - // 2-bytes per character, so duplicate the names table - var stringsUnicode = []; - var i, ii, j, jj, str; - for (i = 0, ii = strings.length; i < ii; i++) { - str = proto[1][i] || strings[i]; - - var strBufUnicode = []; - for (j = 0, jj = str.length; j < jj; j++) { - strBufUnicode.push(string16(str.charCodeAt(j))); - } - stringsUnicode.push(strBufUnicode.join('')); - } - - var names = [strings, stringsUnicode]; - var platforms = ['\x00\x01', '\x00\x03']; - var encodings = ['\x00\x00', '\x00\x01']; - var languages = ['\x00\x00', '\x04\x09']; - - var namesRecordCount = strings.length * platforms.length; - var nameTable = - '\x00\x00' + // format - string16(namesRecordCount) + // Number of names Record - string16(namesRecordCount * 12 + 6); // Storage - - // Build the name records field - var strOffset = 0; - for (i = 0, ii = platforms.length; i < ii; i++) { - var strs = names[i]; - for (j = 0, jj = strs.length; j < jj; j++) { - str = strs[j]; - var nameRecord = - platforms[i] + // platform ID - encodings[i] + // encoding ID - languages[i] + // language ID - string16(j) + // name ID - string16(str.length) + - string16(strOffset); - nameTable += nameRecord; - strOffset += str.length; - } - } - - nameTable += strings.join('') + stringsUnicode.join(''); - return nameTable; - } - - Font.prototype = { - name: null, - font: null, - mimetype: null, - encoding: null, - get renderer() { - var renderer = FontRendererFactory.create(this); - return shadow(this, 'renderer', renderer); - }, - - exportData: function Font_exportData() { - var data = {}; - for (var i in this) { - if (this.hasOwnProperty(i)) { - data[i] = this[i]; - } - } - return data; - }, - - checkAndRepair: function Font_checkAndRepair(name, font, properties) { - function readTableEntry(file) { - var tag = bytesToString(file.getBytes(4)); - - var checksum = file.getInt32(); - var offset = file.getInt32() >>> 0; - var length = file.getInt32() >>> 0; - - // Read the table associated data - var previousPosition = file.pos; - file.pos = file.start ? file.start : 0; - file.skip(offset); - var data = file.getBytes(length); - file.pos = previousPosition; - - if (tag === 'head') { - // clearing checksum adjustment - data[8] = data[9] = data[10] = data[11] = 0; - data[17] |= 0x20; //Set font optimized for cleartype flag - } - - return { - tag: tag, - checksum: checksum, - length: length, - offset: offset, - data: data - }; - } - - function readOpenTypeHeader(ttf) { - return { - version: bytesToString(ttf.getBytes(4)), - numTables: ttf.getUint16(), - searchRange: ttf.getUint16(), - entrySelector: ttf.getUint16(), - rangeShift: ttf.getUint16() - }; - } - - /** - * Read the appropriate subtable from the cmap according to 9.6.6.4 from - * PDF spec - */ - function readCmapTable(cmap, font, isSymbolicFont) { - var segment; - var start = (font.start ? font.start : 0) + cmap.offset; - font.pos = start; - - var version = font.getUint16(); - var numTables = font.getUint16(); - - var potentialTable; - var canBreak = false; - // There's an order of preference in terms of which cmap subtable to - // use: - // - non-symbolic fonts the preference is a 3,1 table then a 1,0 table - // - symbolic fonts the preference is a 3,0 table then a 1,0 table - // The following takes advantage of the fact that the tables are sorted - // to work. - for (var i = 0; i < numTables; i++) { - var platformId = font.getUint16(); - var encodingId = font.getUint16(); - var offset = font.getInt32() >>> 0; - var useTable = false; - - if (platformId === 0 && encodingId === 0) { - useTable = true; - // Continue the loop since there still may be a higher priority - // table. - } else if (platformId === 1 && encodingId === 0) { - useTable = true; - // Continue the loop since there still may be a higher priority - // table. - } else if (platformId === 3 && encodingId === 1 && - (!isSymbolicFont || !potentialTable)) { - useTable = true; - if (!isSymbolicFont) { - canBreak = true; - } - } else if (isSymbolicFont && platformId === 3 && encodingId === 0) { - useTable = true; - canBreak = true; - } - - if (useTable) { - potentialTable = { - platformId: platformId, - encodingId: encodingId, - offset: offset - }; - } - if (canBreak) { - break; - } - } - - if (potentialTable) { - font.pos = start + potentialTable.offset; - } - if (!potentialTable || font.peekByte() === -1) { - warn('Could not find a preferred cmap table.'); - return { - platformId: -1, - encodingId: -1, - mappings: [], - hasShortCmap: false - }; - } - - var format = font.getUint16(); - var length = font.getUint16(); - var language = font.getUint16(); - - var hasShortCmap = false; - var mappings = []; - var j, glyphId; - - // TODO(mack): refactor this cmap subtable reading logic out - if (format === 0) { - for (j = 0; j < 256; j++) { - var index = font.getByte(); - if (!index) { - continue; - } - mappings.push({ - charCode: j, - glyphId: index - }); - } - hasShortCmap = true; - } else if (format === 4) { - // re-creating the table in format 4 since the encoding - // might be changed - var segCount = (font.getUint16() >> 1); - font.getBytes(6); // skipping range fields - var segIndex, segments = []; - for (segIndex = 0; segIndex < segCount; segIndex++) { - segments.push({ end: font.getUint16() }); - } - font.getUint16(); - for (segIndex = 0; segIndex < segCount; segIndex++) { - segments[segIndex].start = font.getUint16(); - } - - for (segIndex = 0; segIndex < segCount; segIndex++) { - segments[segIndex].delta = font.getUint16(); - } - - var offsetsCount = 0; - for (segIndex = 0; segIndex < segCount; segIndex++) { - segment = segments[segIndex]; - var rangeOffset = font.getUint16(); - if (!rangeOffset) { - segment.offsetIndex = -1; - continue; - } - - var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex); - segment.offsetIndex = offsetIndex; - offsetsCount = Math.max(offsetsCount, offsetIndex + - segment.end - segment.start + 1); - } - - var offsets = []; - for (j = 0; j < offsetsCount; j++) { - offsets.push(font.getUint16()); - } - - for (segIndex = 0; segIndex < segCount; segIndex++) { - segment = segments[segIndex]; - start = segment.start; - var end = segment.end; - var delta = segment.delta; - offsetIndex = segment.offsetIndex; - - for (j = start; j <= end; j++) { - if (j === 0xFFFF) { - continue; - } - - glyphId = (offsetIndex < 0 ? - j : offsets[offsetIndex + j - start]); - glyphId = (glyphId + delta) & 0xFFFF; - if (glyphId === 0) { - continue; - } - mappings.push({ - charCode: j, - glyphId: glyphId - }); - } - } - } else if (format === 6) { - // Format 6 is a 2-bytes dense mapping, which means the font data - // lives glue together even if they are pretty far in the unicode - // table. (This looks weird, so I can have missed something), this - // works on Linux but seems to fails on Mac so let's rewrite the - // cmap table to a 3-1-4 style - var firstCode = font.getUint16(); - var entryCount = font.getUint16(); - - for (j = 0; j < entryCount; j++) { - glyphId = font.getUint16(); - var charCode = firstCode + j; - - mappings.push({ - charCode: charCode, - glyphId: glyphId - }); - } - } else { - error('cmap table has unsupported format: ' + format); - } - - // removing duplicate entries - mappings.sort(function (a, b) { - return a.charCode - b.charCode; - }); - for (i = 1; i < mappings.length; i++) { - if (mappings[i - 1].charCode === mappings[i].charCode) { - mappings.splice(i, 1); - i--; - } - } - - return { - platformId: potentialTable.platformId, - encodingId: potentialTable.encodingId, - mappings: mappings, - hasShortCmap: hasShortCmap - }; - } - - function sanitizeMetrics(font, header, metrics, numGlyphs) { - if (!header) { - if (metrics) { - metrics.data = null; - } - return; - } - - font.pos = (font.start ? font.start : 0) + header.offset; - font.pos += header.length - 2; - var numOfMetrics = font.getUint16(); - - if (numOfMetrics > numGlyphs) { - info('The numOfMetrics (' + numOfMetrics + ') should not be ' + - 'greater than the numGlyphs (' + numGlyphs + ')'); - // Reduce numOfMetrics if it is greater than numGlyphs - numOfMetrics = numGlyphs; - header.data[34] = (numOfMetrics & 0xff00) >> 8; - header.data[35] = numOfMetrics & 0x00ff; - } - - var numOfSidebearings = numGlyphs - numOfMetrics; - var numMissing = numOfSidebearings - - ((metrics.length - numOfMetrics * 4) >> 1); - - if (numMissing > 0) { - // For each missing glyph, we set both the width and lsb to 0 (zero). - // Since we need to add two properties for each glyph, this explains - // the use of |numMissing * 2| when initializing the typed array. - var entries = new Uint8Array(metrics.length + numMissing * 2); - entries.set(metrics.data); - metrics.data = entries; - } - } - - function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, - hintsValid) { - if (sourceEnd - sourceStart <= 12) { - // glyph with data less than 12 is invalid one - return 0; - } - var glyf = source.subarray(sourceStart, sourceEnd); - var contoursCount = (glyf[0] << 8) | glyf[1]; - if (contoursCount & 0x8000) { - // complex glyph, writing as is - dest.set(glyf, destStart); - return glyf.length; - } - - var i, j = 10, flagsCount = 0; - for (i = 0; i < contoursCount; i++) { - var endPoint = (glyf[j] << 8) | glyf[j + 1]; - flagsCount = endPoint + 1; - j += 2; - } - // skipping instructions - var instructionsStart = j; - var instructionsLength = (glyf[j] << 8) | glyf[j + 1]; - j += 2 + instructionsLength; - var instructionsEnd = j; - // validating flags - var coordinatesLength = 0; - for (i = 0; i < flagsCount; i++) { - var flag = glyf[j++]; - if (flag & 0xC0) { - // reserved flags must be zero, cleaning up - glyf[j - 1] = flag & 0x3F; - } - var xyLength = ((flag & 2) ? 1 : (flag & 16) ? 0 : 2) + - ((flag & 4) ? 1 : (flag & 32) ? 0 : 2); - coordinatesLength += xyLength; - if (flag & 8) { - var repeat = glyf[j++]; - i += repeat; - coordinatesLength += repeat * xyLength; - } - } - // glyph without coordinates will be rejected - if (coordinatesLength === 0) { - return 0; - } - var glyphDataLength = j + coordinatesLength; - if (glyphDataLength > glyf.length) { - // not enough data for coordinates - return 0; - } - if (!hintsValid && instructionsLength > 0) { - dest.set(glyf.subarray(0, instructionsStart), destStart); - dest.set([0, 0], destStart + instructionsStart); - dest.set(glyf.subarray(instructionsEnd, glyphDataLength), - destStart + instructionsStart + 2); - glyphDataLength -= instructionsLength; - if (glyf.length - glyphDataLength > 3) { - glyphDataLength = (glyphDataLength + 3) & ~3; - } - return glyphDataLength; - } - if (glyf.length - glyphDataLength > 3) { - // truncating and aligning to 4 bytes the long glyph data - glyphDataLength = (glyphDataLength + 3) & ~3; - dest.set(glyf.subarray(0, glyphDataLength), destStart); - return glyphDataLength; - } - // glyph data is fine - dest.set(glyf, destStart); - return glyf.length; - } - - function sanitizeHead(head, numGlyphs, locaLength) { - var data = head.data; - - // Validate version: - // Should always be 0x00010000 - var version = int32(data[0], data[1], data[2], data[3]); - if (version >> 16 !== 1) { - info('Attempting to fix invalid version in head table: ' + version); - data[0] = 0; - data[1] = 1; - data[2] = 0; - data[3] = 0; - } - - var indexToLocFormat = int16(data[50], data[51]); - if (indexToLocFormat < 0 || indexToLocFormat > 1) { - info('Attempting to fix invalid indexToLocFormat in head table: ' + - indexToLocFormat); - - // The value of indexToLocFormat should be 0 if the loca table - // consists of short offsets, and should be 1 if the loca table - // consists of long offsets. - // - // The number of entries in the loca table should be numGlyphs + 1. - // - // Using this information, we can work backwards to deduce if the - // size of each offset in the loca table, and thus figure out the - // appropriate value for indexToLocFormat. - - var numGlyphsPlusOne = numGlyphs + 1; - if (locaLength === numGlyphsPlusOne << 1) { - // 0x0000 indicates the loca table consists of short offsets - data[50] = 0; - data[51] = 0; - } else if (locaLength === numGlyphsPlusOne << 2) { - // 0x0001 indicates the loca table consists of long offsets - data[50] = 0; - data[51] = 1; - } else { - warn('Could not fix indexToLocFormat: ' + indexToLocFormat); - } - } - } - - function sanitizeGlyphLocations(loca, glyf, numGlyphs, - isGlyphLocationsLong, hintsValid, - dupFirstEntry) { - var itemSize, itemDecode, itemEncode; - if (isGlyphLocationsLong) { - itemSize = 4; - itemDecode = function fontItemDecodeLong(data, offset) { - return (data[offset] << 24) | (data[offset + 1] << 16) | - (data[offset + 2] << 8) | data[offset + 3]; - }; - itemEncode = function fontItemEncodeLong(data, offset, value) { - data[offset] = (value >>> 24) & 0xFF; - data[offset + 1] = (value >> 16) & 0xFF; - data[offset + 2] = (value >> 8) & 0xFF; - data[offset + 3] = value & 0xFF; - }; - } else { - itemSize = 2; - itemDecode = function fontItemDecode(data, offset) { - return (data[offset] << 9) | (data[offset + 1] << 1); - }; - itemEncode = function fontItemEncode(data, offset, value) { - data[offset] = (value >> 9) & 0xFF; - data[offset + 1] = (value >> 1) & 0xFF; - }; - } - var locaData = loca.data; - var locaDataSize = itemSize * (1 + numGlyphs); - // is loca.data too short or long? - if (locaData.length !== locaDataSize) { - locaData = new Uint8Array(locaDataSize); - locaData.set(loca.data.subarray(0, locaDataSize)); - loca.data = locaData; - } - // removing the invalid glyphs - var oldGlyfData = glyf.data; - var oldGlyfDataLength = oldGlyfData.length; - var newGlyfData = new Uint8Array(oldGlyfDataLength); - var startOffset = itemDecode(locaData, 0); - var writeOffset = 0; - var missingGlyphData = {}; - itemEncode(locaData, 0, writeOffset); - var i, j; - for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) { - var endOffset = itemDecode(locaData, j); - if (endOffset > oldGlyfDataLength && - ((oldGlyfDataLength + 3) & ~3) === endOffset) { - // Aspose breaks fonts by aligning the glyphs to the qword, but not - // the glyf table size, which makes last glyph out of range. - endOffset = oldGlyfDataLength; - } - if (endOffset > oldGlyfDataLength) { - // glyph end offset points outside glyf data, rejecting the glyph - itemEncode(locaData, j, writeOffset); - startOffset = endOffset; - continue; - } - - if (startOffset === endOffset) { - missingGlyphData[i] = true; - } - - var newLength = sanitizeGlyph(oldGlyfData, startOffset, endOffset, - newGlyfData, writeOffset, hintsValid); - writeOffset += newLength; - itemEncode(locaData, j, writeOffset); - startOffset = endOffset; - } - - if (writeOffset === 0) { - // glyf table cannot be empty -- redoing the glyf and loca tables - // to have single glyph with one point - var simpleGlyph = new Uint8Array( - [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]); - for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) { - itemEncode(locaData, j, simpleGlyph.length); - } - glyf.data = simpleGlyph; - return missingGlyphData; - } - - if (dupFirstEntry) { - var firstEntryLength = itemDecode(locaData, itemSize); - if (newGlyfData.length > firstEntryLength + writeOffset) { - glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset); - } else { - glyf.data = new Uint8Array(firstEntryLength + writeOffset); - glyf.data.set(newGlyfData.subarray(0, writeOffset)); - } - glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset); - itemEncode(loca.data, locaData.length - itemSize, - writeOffset + firstEntryLength); - } else { - glyf.data = newGlyfData.subarray(0, writeOffset); - } - return missingGlyphData; - } - - function readPostScriptTable(post, properties, maxpNumGlyphs) { - var start = (font.start ? font.start : 0) + post.offset; - font.pos = start; - - var length = post.length, end = start + length; - var version = font.getInt32(); - // skip rest to the tables - font.getBytes(28); - - var glyphNames; - var valid = true; - var i; - - switch (version) { - case 0x00010000: - glyphNames = MacStandardGlyphOrdering; - break; - case 0x00020000: - var numGlyphs = font.getUint16(); - if (numGlyphs !== maxpNumGlyphs) { - valid = false; - break; - } - var glyphNameIndexes = []; - for (i = 0; i < numGlyphs; ++i) { - var index = font.getUint16(); - if (index >= 32768) { - valid = false; - break; - } - glyphNameIndexes.push(index); - } - if (!valid) { - break; - } - var customNames = []; - var strBuf = []; - while (font.pos < end) { - var stringLength = font.getByte(); - strBuf.length = stringLength; - for (i = 0; i < stringLength; ++i) { - strBuf[i] = String.fromCharCode(font.getByte()); - } - customNames.push(strBuf.join('')); - } - glyphNames = []; - for (i = 0; i < numGlyphs; ++i) { - var j = glyphNameIndexes[i]; - if (j < 258) { - glyphNames.push(MacStandardGlyphOrdering[j]); - continue; - } - glyphNames.push(customNames[j - 258]); - } - break; - case 0x00030000: - break; - default: - warn('Unknown/unsupported post table version ' + version); - valid = false; - if (properties.defaultEncoding) { - glyphNames = properties.defaultEncoding; - } - break; - } - properties.glyphNames = glyphNames; - return valid; - } - - function readNameTable(nameTable) { - var start = (font.start ? font.start : 0) + nameTable.offset; - font.pos = start; - - var names = [[], []]; - var length = nameTable.length, end = start + length; - var format = font.getUint16(); - var FORMAT_0_HEADER_LENGTH = 6; - if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) { - // unsupported name table format or table "too" small - return names; - } - var numRecords = font.getUint16(); - var stringsStart = font.getUint16(); - var records = []; - var NAME_RECORD_LENGTH = 12; - var i, ii; - - for (i = 0; i < numRecords && - font.pos + NAME_RECORD_LENGTH <= end; i++) { - var r = { - platform: font.getUint16(), - encoding: font.getUint16(), - language: font.getUint16(), - name: font.getUint16(), - length: font.getUint16(), - offset: font.getUint16() - }; - // using only Macintosh and Windows platform/encoding names - if ((r.platform === 1 && r.encoding === 0 && r.language === 0) || - (r.platform === 3 && r.encoding === 1 && r.language === 0x409)) { - records.push(r); - } - } - for (i = 0, ii = records.length; i < ii; i++) { - var record = records[i]; - var pos = start + stringsStart + record.offset; - if (pos + record.length > end) { - continue; // outside of name table, ignoring - } - font.pos = pos; - var nameIndex = record.name; - if (record.encoding) { - // unicode - var str = ''; - for (var j = 0, jj = record.length; j < jj; j += 2) { - str += String.fromCharCode(font.getUint16()); - } - names[1][nameIndex] = str; - } else { - names[0][nameIndex] = bytesToString(font.getBytes(record.length)); - } - } - return names; - } - - var TTOpsStackDeltas = [ - 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, - -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, - 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, - 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, - 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, - -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, - -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, - -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2]; - // 0xC0-DF == -1 and 0xE0-FF == -2 - - function sanitizeTTProgram(table, ttContext) { - var data = table.data; - var i = 0, j, n, b, funcId, pc, lastEndf = 0, lastDeff = 0; - var stack = []; - var callstack = []; - var functionsCalled = []; - var tooComplexToFollowFunctions = - ttContext.tooComplexToFollowFunctions; - var inFDEF = false, ifLevel = 0, inELSE = 0; - for (var ii = data.length; i < ii;) { - var op = data[i++]; - // The TrueType instruction set docs can be found at - // https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html - if (op === 0x40) { // NPUSHB - pushes n bytes - n = data[i++]; - if (inFDEF || inELSE) { - i += n; - } else { - for (j = 0; j < n; j++) { - stack.push(data[i++]); - } - } - } else if (op === 0x41) { // NPUSHW - pushes n words - n = data[i++]; - if (inFDEF || inELSE) { - i += n * 2; - } else { - for (j = 0; j < n; j++) { - b = data[i++]; - stack.push((b << 8) | data[i++]); - } - } - } else if ((op & 0xF8) === 0xB0) { // PUSHB - pushes bytes - n = op - 0xB0 + 1; - if (inFDEF || inELSE) { - i += n; - } else { - for (j = 0; j < n; j++) { - stack.push(data[i++]); - } - } - } else if ((op & 0xF8) === 0xB8) { // PUSHW - pushes words - n = op - 0xB8 + 1; - if (inFDEF || inELSE) { - i += n * 2; - } else { - for (j = 0; j < n; j++) { - b = data[i++]; - stack.push((b << 8) | data[i++]); - } - } - } else if (op === 0x2B && !tooComplexToFollowFunctions) { // CALL - if (!inFDEF && !inELSE) { - // collecting inforamtion about which functions are used - funcId = stack[stack.length - 1]; - ttContext.functionsUsed[funcId] = true; - if (funcId in ttContext.functionsStackDeltas) { - stack.length += ttContext.functionsStackDeltas[funcId]; - } else if (funcId in ttContext.functionsDefined && - functionsCalled.indexOf(funcId) < 0) { - callstack.push({data: data, i: i, stackTop: stack.length - 1}); - functionsCalled.push(funcId); - pc = ttContext.functionsDefined[funcId]; - if (!pc) { - warn('TT: CALL non-existent function'); - ttContext.hintsValid = false; - return; - } - data = pc.data; - i = pc.i; - } - } - } else if (op === 0x2C && !tooComplexToFollowFunctions) { // FDEF - if (inFDEF || inELSE) { - warn('TT: nested FDEFs not allowed'); - tooComplexToFollowFunctions = true; - } - inFDEF = true; - // collecting inforamtion about which functions are defined - lastDeff = i; - funcId = stack.pop(); - ttContext.functionsDefined[funcId] = {data: data, i: i}; - } else if (op === 0x2D) { // ENDF - end of function - if (inFDEF) { - inFDEF = false; - lastEndf = i; - } else { - pc = callstack.pop(); - if (!pc) { - warn('TT: ENDF bad stack'); - ttContext.hintsValid = false; - return; - } - funcId = functionsCalled.pop(); - data = pc.data; - i = pc.i; - ttContext.functionsStackDeltas[funcId] = - stack.length - pc.stackTop; - } - } else if (op === 0x89) { // IDEF - instruction definition - if (inFDEF || inELSE) { - warn('TT: nested IDEFs not allowed'); - tooComplexToFollowFunctions = true; - } - inFDEF = true; - // recording it as a function to track ENDF - lastDeff = i; - } else if (op === 0x58) { // IF - ++ifLevel; - } else if (op === 0x1B) { // ELSE - inELSE = ifLevel; - } else if (op === 0x59) { // EIF - if (inELSE === ifLevel) { - inELSE = 0; - } - --ifLevel; - } else if (op === 0x1C) { // JMPR - if (!inFDEF && !inELSE) { - var offset = stack[stack.length - 1]; - // only jumping forward to prevent infinite loop - if (offset > 0) { - i += offset - 1; - } - } - } - // Adjusting stack not extactly, but just enough to get function id - if (!inFDEF && !inELSE) { - var stackDelta = op <= 0x8E ? TTOpsStackDeltas[op] : - op >= 0xC0 && op <= 0xDF ? -1 : op >= 0xE0 ? -2 : 0; - if (op >= 0x71 && op <= 0x75) { - n = stack.pop(); - if (n === n) { - stackDelta = -n * 2; - } - } - while (stackDelta < 0 && stack.length > 0) { - stack.pop(); - stackDelta++; - } - while (stackDelta > 0) { - stack.push(NaN); // pushing any number into stack - stackDelta--; - } - } - } - ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions; - var content = [data]; - if (i > data.length) { - content.push(new Uint8Array(i - data.length)); - } - if (lastDeff > lastEndf) { - warn('TT: complementing a missing function tail'); - // new function definition started, but not finished - // complete function by [CLEAR, ENDF] - content.push(new Uint8Array([0x22, 0x2D])); - } - foldTTTable(table, content); - } - - function checkInvalidFunctions(ttContext, maxFunctionDefs) { - if (ttContext.tooComplexToFollowFunctions) { - return; - } - if (ttContext.functionsDefined.length > maxFunctionDefs) { - warn('TT: more functions defined than expected'); - ttContext.hintsValid = false; - return; - } - for (var j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) { - if (j > maxFunctionDefs) { - warn('TT: invalid function id: ' + j); - ttContext.hintsValid = false; - return; - } - if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) { - warn('TT: undefined function: ' + j); - ttContext.hintsValid = false; - return; - } - } - } - - function foldTTTable(table, content) { - if (content.length > 1) { - // concatenating the content items - var newLength = 0; - var j, jj; - for (j = 0, jj = content.length; j < jj; j++) { - newLength += content[j].length; - } - newLength = (newLength + 3) & ~3; - var result = new Uint8Array(newLength); - var pos = 0; - for (j = 0, jj = content.length; j < jj; j++) { - result.set(content[j], pos); - pos += content[j].length; - } - table.data = result; - table.length = newLength; - } - } - - function sanitizeTTPrograms(fpgm, prep, cvt) { - var ttContext = { - functionsDefined: [], - functionsUsed: [], - functionsStackDeltas: [], - tooComplexToFollowFunctions: false, - hintsValid: true - }; - if (fpgm) { - sanitizeTTProgram(fpgm, ttContext); - } - if (prep) { - sanitizeTTProgram(prep, ttContext); - } - if (fpgm) { - checkInvalidFunctions(ttContext, maxFunctionDefs); - } - if (cvt && (cvt.length & 1)) { - var cvtData = new Uint8Array(cvt.length + 1); - cvtData.set(cvt.data); - cvt.data = cvtData; - } - return ttContext.hintsValid; - } - - // The following steps modify the original font data, making copy - font = new Stream(new Uint8Array(font.getBytes())); - - var VALID_TABLES = ['OS/2', 'cmap', 'head', 'hhea', 'hmtx', 'maxp', - 'name', 'post', 'loca', 'glyf', 'fpgm', 'prep', 'cvt ', 'CFF ']; - - var header = readOpenTypeHeader(font); - var numTables = header.numTables; - var cff, cffFile; - - var tables = { 'OS/2': null, cmap: null, head: null, hhea: null, - hmtx: null, maxp: null, name: null, post: null }; - var table; - for (var i = 0; i < numTables; i++) { - table = readTableEntry(font); - if (VALID_TABLES.indexOf(table.tag) < 0) { - continue; // skipping table if it's not a required or optional table - } - if (table.length === 0) { - continue; // skipping empty tables - } - tables[table.tag] = table; - } - - var isTrueType = !tables['CFF ']; - if (!isTrueType) { - // OpenType font - if (header.version === 'OTTO' || - !tables.head || !tables.hhea || !tables.maxp || !tables.post) { - // no major tables: throwing everything at CFFFont - cffFile = new Stream(tables['CFF '].data); - cff = new CFFFont(cffFile, properties); - - return this.convert(name, cff, properties); - } - - delete tables.glyf; - delete tables.loca; - delete tables.fpgm; - delete tables.prep; - delete tables['cvt ']; - this.isOpenType = true; - } else { - if (!tables.glyf || !tables.loca) { - error('Required "glyf" or "loca" tables are not found'); - } - this.isOpenType = false; - } - - if (!tables.maxp) { - error('Required "maxp" table is not found'); - } - - font.pos = (font.start || 0) + tables.maxp.offset; - var version = font.getInt32(); - var numGlyphs = font.getUint16(); - var maxFunctionDefs = 0; - if (version >= 0x00010000 && tables.maxp.length >= 22) { - // maxZones can be invalid - font.pos += 8; - var maxZones = font.getUint16(); - if (maxZones > 2) { // reset to 2 if font has invalid maxZones - tables.maxp.data[14] = 0; - tables.maxp.data[15] = 2; - } - font.pos += 4; - maxFunctionDefs = font.getUint16(); - } - - var dupFirstEntry = false; - if (properties.type === 'CIDFontType2' && properties.toUnicode && - properties.toUnicode.get(0) > '\u0000') { - // oracle's defect (see 3427), duplicating first entry - dupFirstEntry = true; - numGlyphs++; - tables.maxp.data[4] = numGlyphs >> 8; - tables.maxp.data[5] = numGlyphs & 255; - } - - var hintsValid = sanitizeTTPrograms(tables.fpgm, tables.prep, - tables['cvt '], maxFunctionDefs); - if (!hintsValid) { - delete tables.fpgm; - delete tables.prep; - delete tables['cvt ']; - } - - // Ensure the hmtx table contains the advance width and - // sidebearings information for numGlyphs in the maxp table - sanitizeMetrics(font, tables.hhea, tables.hmtx, numGlyphs); - - if (!tables.head) { - error('Required "head" table is not found'); - } - - sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0); - - var missingGlyphs = {}; - if (isTrueType) { - var isGlyphLocationsLong = int16(tables.head.data[50], - tables.head.data[51]); - missingGlyphs = sanitizeGlyphLocations(tables.loca, tables.glyf, - numGlyphs, isGlyphLocationsLong, - hintsValid, dupFirstEntry); - } - - if (!tables.hhea) { - error('Required "hhea" table is not found'); - } - - // Sanitizer reduces the glyph advanceWidth to the maxAdvanceWidth - // Sometimes it's 0. That needs to be fixed - if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) { - tables.hhea.data[10] = 0xFF; - tables.hhea.data[11] = 0xFF; - } - - // The 'post' table has glyphs names. - if (tables.post) { - var valid = readPostScriptTable(tables.post, properties, numGlyphs); - if (!valid) { - tables.post = null; - } - } - - var charCodeToGlyphId = [], charCode, toUnicode = properties.toUnicode; - - function hasGlyph(glyphId, charCode) { - if (!missingGlyphs[glyphId]) { - return true; - } - if (charCode >= 0 && toUnicode.has(charCode)) { - return true; - } - return false; - } - - if (properties.type === 'CIDFontType2') { - var cidToGidMap = properties.cidToGidMap || []; - var isCidToGidMapEmpty = cidToGidMap.length === 0; - - properties.cMap.forEach(function(charCode, cid) { - assert(cid <= 0xffff, 'Max size of CID is 65,535'); - var glyphId = -1; - if (isCidToGidMapEmpty) { - glyphId = charCode; - } else if (cidToGidMap[cid] !== undefined) { - glyphId = cidToGidMap[cid]; - } - - if (glyphId >= 0 && glyphId < numGlyphs && - hasGlyph(glyphId, charCode)) { - charCodeToGlyphId[charCode] = glyphId; - } - }); - if (dupFirstEntry) { - charCodeToGlyphId[0] = numGlyphs - 1; - } - } else { - // Most of the following logic in this code branch is based on the - // 9.6.6.4 of the PDF spec. - var cmapTable = readCmapTable(tables.cmap, font, this.isSymbolicFont); - var cmapPlatformId = cmapTable.platformId; - var cmapEncodingId = cmapTable.encodingId; - var cmapMappings = cmapTable.mappings; - var cmapMappingsLength = cmapMappings.length; - var hasEncoding = properties.differences.length || - !!properties.baseEncodingName; - - // The spec seems to imply that if the font is symbolic the encoding - // should be ignored, this doesn't appear to work for 'preistabelle.pdf' - // where the the font is symbolic and it has an encoding. - if (hasEncoding && - (cmapPlatformId === 3 && cmapEncodingId === 1 || - cmapPlatformId === 1 && cmapEncodingId === 0) || - (cmapPlatformId === -1 && cmapEncodingId === -1 && // Temporary hack - !!Encodings[properties.baseEncodingName])) { // Temporary hack - // When no preferred cmap table was found and |baseEncodingName| is - // one of the predefined encodings, we seem to obtain a better - // |charCodeToGlyphId| map from the code below (fixes bug 1057544). - // TODO: Note that this is a hack which should be removed as soon as - // we have proper support for more exotic cmap tables. - - var baseEncoding = []; - if (properties.baseEncodingName === 'MacRomanEncoding' || - properties.baseEncodingName === 'WinAnsiEncoding') { - baseEncoding = Encodings[properties.baseEncodingName]; - } - for (charCode = 0; charCode < 256; charCode++) { - var glyphName; - if (this.differences && charCode in this.differences) { - glyphName = this.differences[charCode]; - } else if (charCode in baseEncoding && - baseEncoding[charCode] !== '') { - glyphName = baseEncoding[charCode]; - } else { - glyphName = Encodings.StandardEncoding[charCode]; - } - if (!glyphName) { - continue; - } - var unicodeOrCharCode; - if (cmapPlatformId === 3 && cmapEncodingId === 1) { - unicodeOrCharCode = GlyphsUnicode[glyphName]; - } else if (cmapPlatformId === 1 && cmapEncodingId === 0) { - // TODO: the encoding needs to be updated with mac os table. - unicodeOrCharCode = Encodings.MacRomanEncoding.indexOf(glyphName); - } - - var found = false; - for (i = 0; i < cmapMappingsLength; ++i) { - if (cmapMappings[i].charCode === unicodeOrCharCode && - hasGlyph(cmapMappings[i].glyphId, unicodeOrCharCode)) { - charCodeToGlyphId[charCode] = cmapMappings[i].glyphId; - found = true; - break; - } - } - if (!found && properties.glyphNames) { - // Try to map using the post table. There are currently no known - // pdfs that this fixes. - var glyphId = properties.glyphNames.indexOf(glyphName); - if (glyphId > 0 && hasGlyph(glyphId, -1)) { - charCodeToGlyphId[charCode] = glyphId; - } - } - } - } else if (cmapPlatformId === 0 && cmapEncodingId === 0) { - // Default Unicode semantics, use the charcodes as is. - for (i = 0; i < cmapMappingsLength; ++i) { - charCodeToGlyphId[cmapMappings[i].charCode] = - cmapMappings[i].glyphId; - } - } else { - // For (3, 0) cmap tables: - // The charcode key being stored in charCodeToGlyphId is the lower - // byte of the two-byte charcodes of the cmap table since according to - // the spec: 'each byte from the string shall be prepended with the - // high byte of the range [of charcodes in the cmap table], to form - // a two-byte character, which shall be used to select the - // associated glyph description from the subtable'. - // - // For (1, 0) cmap tables: - // 'single bytes from the string shall be used to look up the - // associated glyph descriptions from the subtable'. This means - // charcodes in the cmap will be single bytes, so no-op since - // glyph.charCode & 0xFF === glyph.charCode - for (i = 0; i < cmapMappingsLength; ++i) { - charCode = cmapMappings[i].charCode & 0xFF; - charCodeToGlyphId[charCode] = cmapMappings[i].glyphId; - } - } - } - - if (charCodeToGlyphId.length === 0) { - // defines at least one glyph - charCodeToGlyphId[0] = 0; - } - - // Converting glyphs and ids into font's cmap table - var newMapping = adjustMapping(charCodeToGlyphId, properties); - this.toFontChar = newMapping.toFontChar; - tables.cmap = { - tag: 'cmap', - data: createCmapTable(newMapping.charCodeToGlyphId) - }; - - if (!tables['OS/2'] || !validateOS2Table(tables['OS/2'])) { - // extract some more font properties from the OpenType head and - // hhea tables; yMin and descent value are always negative - var override = { - unitsPerEm: int16(tables.head.data[18], tables.head.data[19]), - yMax: int16(tables.head.data[42], tables.head.data[43]), - yMin: int16(tables.head.data[38], tables.head.data[39]) - 0x10000, - ascent: int16(tables.hhea.data[4], tables.hhea.data[5]), - descent: int16(tables.hhea.data[6], tables.hhea.data[7]) - 0x10000 - }; - - tables['OS/2'] = { - tag: 'OS/2', - data: createOS2Table(properties, newMapping.charCodeToGlyphId, - override) - }; - } - - // Rewrite the 'post' table if needed - if (!tables.post) { - tables.post = { - tag: 'post', - data: createPostTable(properties) - }; - } - - if (!isTrueType) { - try { - // Trying to repair CFF file - cffFile = new Stream(tables['CFF '].data); - var parser = new CFFParser(cffFile, properties); - cff = parser.parse(); - var compiler = new CFFCompiler(cff); - tables['CFF '].data = compiler.compile(); - } catch (e) { - warn('Failed to compile font ' + properties.loadedName); - } - } - - // Re-creating 'name' table - if (!tables.name) { - tables.name = { - tag: 'name', - data: createNameTable(this.name) - }; - } else { - // ... using existing 'name' table as prototype - var namePrototype = readNameTable(tables.name); - tables.name.data = createNameTable(name, namePrototype); - } - - var builder = new OpenTypeFileBuilder(header.version); - for (var tableTag in tables) { - builder.addTable(tableTag, tables[tableTag].data); - } - return builder.toArray(); - }, - - convert: function Font_convert(fontName, font, properties) { - // TODO: Check the charstring widths to determine this. - properties.fixedPitch = false; - - var mapping = font.getGlyphMapping(properties); - var newMapping = adjustMapping(mapping, properties); - this.toFontChar = newMapping.toFontChar; - var numGlyphs = font.numGlyphs; - - function getCharCodes(charCodeToGlyphId, glyphId) { - var charCodes = null; - for (var charCode in charCodeToGlyphId) { - if (glyphId === charCodeToGlyphId[charCode]) { - if (!charCodes) { - charCodes = []; - } - charCodes.push(charCode | 0); - } - } - return charCodes; - } - - function createCharCode(charCodeToGlyphId, glyphId) { - for (var charCode in charCodeToGlyphId) { - if (glyphId === charCodeToGlyphId[charCode]) { - return charCode | 0; - } - } - newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = - glyphId; - return newMapping.nextAvailableFontCharCode++; - } - - var seacs = font.seacs; - if (SEAC_ANALYSIS_ENABLED && seacs && seacs.length) { - var matrix = properties.fontMatrix || FONT_IDENTITY_MATRIX; - var charset = font.getCharset(); - var seacMap = Object.create(null); - for (var glyphId in seacs) { - glyphId |= 0; - var seac = seacs[glyphId]; - var baseGlyphName = Encodings.StandardEncoding[seac[2]]; - var accentGlyphName = Encodings.StandardEncoding[seac[3]]; - var baseGlyphId = charset.indexOf(baseGlyphName); - var accentGlyphId = charset.indexOf(accentGlyphName); - if (baseGlyphId < 0 || accentGlyphId < 0) { - continue; - } - var accentOffset = { - x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4], - y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5] - }; - - var charCodes = getCharCodes(mapping, glyphId); - if (!charCodes) { - // There's no point in mapping it if the char code was never mapped - // to begin with. - continue; - } - for (var i = 0, ii = charCodes.length; i < ii; i++) { - var charCode = charCodes[i]; - // Find a fontCharCode that maps to the base and accent glyphs. - // If one doesn't exists, create it. - var charCodeToGlyphId = newMapping.charCodeToGlyphId; - var baseFontCharCode = createCharCode(charCodeToGlyphId, - baseGlyphId); - var accentFontCharCode = createCharCode(charCodeToGlyphId, - accentGlyphId); - seacMap[charCode] = { - baseFontCharCode: baseFontCharCode, - accentFontCharCode: accentFontCharCode, - accentOffset: accentOffset - }; - } - } - properties.seacMap = seacMap; - } - - var unitsPerEm = 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0]; - - var builder = new OpenTypeFileBuilder('\x4F\x54\x54\x4F'); - // PostScript Font Program - builder.addTable('CFF ', font.data); - // OS/2 and Windows Specific metrics - builder.addTable('OS/2', createOS2Table(properties, - newMapping.charCodeToGlyphId)); - // Character to glyphs mapping - builder.addTable('cmap', createCmapTable(newMapping.charCodeToGlyphId)); - // Font header - builder.addTable('head', - '\x00\x01\x00\x00' + // Version number - '\x00\x00\x10\x00' + // fontRevision - '\x00\x00\x00\x00' + // checksumAdjustement - '\x5F\x0F\x3C\xF5' + // magicNumber - '\x00\x00' + // Flags - safeString16(unitsPerEm) + // unitsPerEM - '\x00\x00\x00\x00\x9e\x0b\x7e\x27' + // creation date - '\x00\x00\x00\x00\x9e\x0b\x7e\x27' + // modifification date - '\x00\x00' + // xMin - safeString16(properties.descent) + // yMin - '\x0F\xFF' + // xMax - safeString16(properties.ascent) + // yMax - string16(properties.italicAngle ? 2 : 0) + // macStyle - '\x00\x11' + // lowestRecPPEM - '\x00\x00' + // fontDirectionHint - '\x00\x00' + // indexToLocFormat - '\x00\x00'); // glyphDataFormat - - // Horizontal header - builder.addTable('hhea', - '\x00\x01\x00\x00' + // Version number - safeString16(properties.ascent) + // Typographic Ascent - safeString16(properties.descent) + // Typographic Descent - '\x00\x00' + // Line Gap - '\xFF\xFF' + // advanceWidthMax - '\x00\x00' + // minLeftSidebearing - '\x00\x00' + // minRightSidebearing - '\x00\x00' + // xMaxExtent - safeString16(properties.capHeight) + // caretSlopeRise - safeString16(Math.tan(properties.italicAngle) * - properties.xHeight) + // caretSlopeRun - '\x00\x00' + // caretOffset - '\x00\x00' + // -reserved- - '\x00\x00' + // -reserved- - '\x00\x00' + // -reserved- - '\x00\x00' + // -reserved- - '\x00\x00' + // metricDataFormat - string16(numGlyphs)); // Number of HMetrics - - // Horizontal metrics - builder.addTable('hmtx', (function fontFieldsHmtx() { - var charstrings = font.charstrings; - var cffWidths = font.cff ? font.cff.widths : null; - var hmtx = '\x00\x00\x00\x00'; // Fake .notdef - for (var i = 1, ii = numGlyphs; i < ii; i++) { - var width = 0; - if (charstrings) { - var charstring = charstrings[i - 1]; - width = 'width' in charstring ? charstring.width : 0; - } else if (cffWidths) { - width = Math.ceil(cffWidths[i] || 0); - } - hmtx += string16(width) + string16(0); - } - return hmtx; - })()); - - // Maximum profile - builder.addTable('maxp', - '\x00\x00\x50\x00' + // Version number - string16(numGlyphs)); // Num of glyphs - - // Naming tables - builder.addTable('name', createNameTable(fontName)); - - // PostScript informations - builder.addTable('post', createPostTable(properties)); - - return builder.toArray(); - }, - - /** - * Builds a char code to unicode map based on section 9.10 of the spec. - * @param {Object} properties Font properties object. - * @return {Object} A ToUnicodeMap object. - */ - buildToUnicode: function Font_buildToUnicode(properties) { - // Section 9.10.2 Mapping Character Codes to Unicode Values - if (properties.toUnicode && properties.toUnicode.length !== 0) { - return properties.toUnicode; - } - // According to the spec if the font is a simple font we should only map - // to unicode if the base encoding is MacRoman, MacExpert, or WinAnsi or - // the differences array only contains adobe standard or symbol set names, - // in pratice it seems better to always try to create a toUnicode - // map based of the default encoding. - var toUnicode, charcode; - if (!properties.composite /* is simple font */) { - toUnicode = []; - var encoding = properties.defaultEncoding.slice(); - var baseEncodingName = properties.baseEncodingName; - // Merge in the differences array. - var differences = properties.differences; - for (charcode in differences) { - encoding[charcode] = differences[charcode]; - } - for (charcode in encoding) { - // a) Map the character code to a character name. - var glyphName = encoding[charcode]; - // b) Look up the character name in the Adobe Glyph List (see the - // Bibliography) to obtain the corresponding Unicode value. - if (glyphName === '') { - continue; - } else if (GlyphsUnicode[glyphName] === undefined) { - // (undocumented) c) Few heuristics to recognize unknown glyphs - // NOTE: Adobe Reader does not do this step, but OSX Preview does - var code = 0; - switch (glyphName[0]) { - case 'G': // Gxx glyph - if (glyphName.length === 3) { - code = parseInt(glyphName.substr(1), 16); - } - break; - case 'g': // g00xx glyph - if (glyphName.length === 5) { - code = parseInt(glyphName.substr(1), 16); - } - break; - case 'C': // Cddd glyph - case 'c': // cddd glyph - if (glyphName.length >= 3) { - code = +glyphName.substr(1); - } - break; - } - if (code) { - // If |baseEncodingName| is one the predefined encodings, - // and |code| equals |charcode|, using the glyph defined in the - // baseEncoding seems to yield a better |toUnicode| mapping - // (fixes issue 5070). - if (baseEncodingName && code === +charcode) { - var baseEncoding = Encodings[baseEncodingName]; - if (baseEncoding && (glyphName = baseEncoding[charcode])) { - toUnicode[charcode] = - String.fromCharCode(GlyphsUnicode[glyphName]); - continue; - } - } - toUnicode[charcode] = String.fromCharCode(code); - } - continue; - } - toUnicode[charcode] = String.fromCharCode(GlyphsUnicode[glyphName]); - } - return new ToUnicodeMap(toUnicode); - } - // If the font is a composite font that uses one of the predefined CMaps - // listed in Table 118 (except Identity–H and Identity–V) or whose - // descendant CIDFont uses the Adobe-GB1, Adobe-CNS1, Adobe-Japan1, or - // Adobe-Korea1 character collection: - if (properties.composite && ( - (properties.cMap.builtInCMap && - !(properties.cMap instanceof IdentityCMap)) || - (properties.cidSystemInfo.registry === 'Adobe' && - (properties.cidSystemInfo.ordering === 'GB1' || - properties.cidSystemInfo.ordering === 'CNS1' || - properties.cidSystemInfo.ordering === 'Japan1' || - properties.cidSystemInfo.ordering === 'Korea1')))) { - // Then: - // a) Map the character code to a character identifier (CID) according - // to the font’s CMap. - // b) Obtain the registry and ordering of the character collection used - // by the font’s CMap (for example, Adobe and Japan1) from its - // CIDSystemInfo dictionary. - var registry = properties.cidSystemInfo.registry; - var ordering = properties.cidSystemInfo.ordering; - // c) Construct a second CMap name by concatenating the registry and - // ordering obtained in step (b) in the format registry–ordering–UCS2 - // (for example, Adobe–Japan1–UCS2). - var ucs2CMapName = new Name(registry + '-' + ordering + '-UCS2'); - // d) Obtain the CMap with the name constructed in step (c) (available - // from the ASN Web site; see the Bibliography). - var ucs2CMap = CMapFactory.create(ucs2CMapName, - { url: PDFJS.cMapUrl, packed: PDFJS.cMapPacked }, null); - var cMap = properties.cMap; - toUnicode = []; - cMap.forEach(function(charcode, cid) { - assert(cid <= 0xffff, 'Max size of CID is 65,535'); - // e) Map the CID obtained in step (a) according to the CMap obtained - // in step (d), producing a Unicode value. - var ucs2 = ucs2CMap.lookup(cid); - if (ucs2) { - toUnicode[charcode] = - String.fromCharCode((ucs2.charCodeAt(0) << 8) + - ucs2.charCodeAt(1)); - } - }); - return new ToUnicodeMap(toUnicode); - } - - // The viewer's choice, just use an identity map. - return new IdentityToUnicodeMap(properties.firstChar, - properties.lastChar); - }, - - get spaceWidth() { - if ('_shadowWidth' in this) { - return this._shadowWidth; - } - - // trying to estimate space character width - var possibleSpaceReplacements = ['space', 'minus', 'one', 'i']; - var width; - for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) { - var glyphName = possibleSpaceReplacements[i]; - // if possible, getting width by glyph name - if (glyphName in this.widths) { - width = this.widths[glyphName]; - break; - } - var glyphUnicode = GlyphsUnicode[glyphName]; - // finding the charcode via unicodeToCID map - var charcode = 0; - if (this.composite) { - if (this.cMap.contains(glyphUnicode)) { - charcode = this.cMap.lookup(glyphUnicode); - } - } - // ... via toUnicode map - if (!charcode && 'toUnicode' in this) { - charcode = this.toUnicode.charCodeOf(glyphUnicode); - } - // setting it to unicode if negative or undefined - if (charcode <= 0) { - charcode = glyphUnicode; - } - // trying to get width via charcode - width = this.widths[charcode]; - if (width) { - break; // the non-zero width found - } - } - width = width || this.defaultWidth; - // Do not shadow the property here. See discussion: - // https://github.com/mozilla/pdf.js/pull/2127#discussion_r1662280 - this._shadowWidth = width; - return width; - }, - - charToGlyph: function Font_charToGlyph(charcode) { - var fontCharCode, width, operatorListId; - - var widthCode = charcode; - if (this.cMap && this.cMap.contains(charcode)) { - widthCode = this.cMap.lookup(charcode); - } - width = this.widths[widthCode]; - width = isNum(width) ? width : this.defaultWidth; - var vmetric = this.vmetrics && this.vmetrics[widthCode]; - - var unicode = this.toUnicode.get(charcode) || charcode; - if (typeof unicode === 'number') { - unicode = String.fromCharCode(unicode); - } - - // First try the toFontChar map, if it's not there then try falling - // back to the char code. - fontCharCode = this.toFontChar[charcode] || charcode; - if (this.missingFile) { - fontCharCode = mapSpecialUnicodeValues(fontCharCode); - } - - if (this.isType3Font) { - // Font char code in this case is actually a glyph name. - operatorListId = fontCharCode; - } - - var accent = null; - if (this.seacMap && this.seacMap[charcode]) { - var seac = this.seacMap[charcode]; - fontCharCode = seac.baseFontCharCode; - accent = { - fontChar: String.fromCharCode(seac.accentFontCharCode), - offset: seac.accentOffset - }; - } - - var fontChar = String.fromCharCode(fontCharCode); - - var glyph = this.glyphCache[charcode]; - if (!glyph || - !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric, - operatorListId)) { - glyph = new Glyph(fontChar, unicode, accent, width, vmetric, - operatorListId); - this.glyphCache[charcode] = glyph; - } - return glyph; - }, - - charsToGlyphs: function Font_charsToGlyphs(chars) { - var charsCache = this.charsCache; - var glyphs, glyph, charcode; - - // if we translated this string before, just grab it from the cache - if (charsCache) { - glyphs = charsCache[chars]; - if (glyphs) { - return glyphs; - } - } - - // lazily create the translation cache - if (!charsCache) { - charsCache = this.charsCache = Object.create(null); - } - - glyphs = []; - var charsCacheKey = chars; - var i = 0, ii; - - if (this.cMap) { - // composite fonts have multi-byte strings convert the string from - // single-byte to multi-byte - var c = {}; - while (i < chars.length) { - this.cMap.readCharCode(chars, i, c); - charcode = c.charcode; - var length = c.length; - i += length; - glyph = this.charToGlyph(charcode); - glyphs.push(glyph); - // placing null after each word break charcode (ASCII SPACE) - // Ignore occurences of 0x20 in multiple-byte codes. - if (length === 1 && chars.charCodeAt(i - 1) === 0x20) { - glyphs.push(null); - } - } - } else { - for (i = 0, ii = chars.length; i < ii; ++i) { - charcode = chars.charCodeAt(i); - glyph = this.charToGlyph(charcode); - glyphs.push(glyph); - if (charcode === 0x20) { - glyphs.push(null); - } - } - } - - // Enter the translated string into the cache - return (charsCache[charsCacheKey] = glyphs); - } - }; - - return Font; -})(); - -var ErrorFont = (function ErrorFontClosure() { - function ErrorFont(error) { - this.error = error; - this.loadedName = 'g_font_error'; - this.loading = false; - } - - ErrorFont.prototype = { - charsToGlyphs: function ErrorFont_charsToGlyphs() { - return []; - }, - exportData: function ErrorFont_exportData() { - return {error: this.error}; - } - }; - - return ErrorFont; -})(); - -/** - * Shared logic for building a char code to glyph id mapping for Type1 and - * simple CFF fonts. See section 9.6.6.2 of the spec. - * @param {Object} properties Font properties object. - * @param {Object} builtInEncoding The encoding contained within the actual font - * data. - * @param {Array} Array of glyph names where the index is the glyph ID. - * @returns {Object} A char code to glyph ID map. - */ -function type1FontGlyphMapping(properties, builtInEncoding, glyphNames) { - var charCodeToGlyphId = Object.create(null); - var glyphId, charCode, baseEncoding; - - if (properties.baseEncodingName) { - // If a valid base encoding name was used, the mapping is initialized with - // that. - baseEncoding = Encodings[properties.baseEncodingName]; - for (charCode = 0; charCode < baseEncoding.length; charCode++) { - glyphId = glyphNames.indexOf(baseEncoding[charCode]); - if (glyphId >= 0) { - charCodeToGlyphId[charCode] = glyphId; - } else { - charCodeToGlyphId[charCode] = 0; // notdef - } - } - } else if (!!(properties.flags & FontFlags.Symbolic)) { - // For a symbolic font the encoding should be the fonts built-in - // encoding. - for (charCode in builtInEncoding) { - charCodeToGlyphId[charCode] = builtInEncoding[charCode]; - } - } else { - // For non-symbolic fonts that don't have a base encoding the standard - // encoding should be used. - baseEncoding = Encodings.StandardEncoding; - for (charCode = 0; charCode < baseEncoding.length; charCode++) { - glyphId = glyphNames.indexOf(baseEncoding[charCode]); - if (glyphId >= 0) { - charCodeToGlyphId[charCode] = glyphId; - } else { - charCodeToGlyphId[charCode] = 0; // notdef - } - } - } - - // Lastly, merge in the differences. - var differences = properties.differences; - if (differences) { - for (charCode in differences) { - var glyphName = differences[charCode]; - glyphId = glyphNames.indexOf(glyphName); - if (glyphId >= 0) { - charCodeToGlyphId[charCode] = glyphId; - } else { - charCodeToGlyphId[charCode] = 0; // notdef - } - } - } - return charCodeToGlyphId; -} - -/* - * CharStrings are encoded following the the CharString Encoding sequence - * describe in Chapter 6 of the "Adobe Type1 Font Format" specification. - * The value in a byte indicates a command, a number, or subsequent bytes - * that are to be interpreted in a special way. - * - * CharString Number Encoding: - * A CharString byte containing the values from 32 through 255 inclusive - * indicate an integer. These values are decoded in four ranges. - * - * 1. A CharString byte containing a value, v, between 32 and 246 inclusive, - * indicate the integer v - 139. Thus, the integer values from -107 through - * 107 inclusive may be encoded in single byte. - * - * 2. A CharString byte containing a value, v, between 247 and 250 inclusive, - * indicates an integer involving the next byte, w, according to the formula: - * [(v - 247) x 256] + w + 108 - * - * 3. A CharString byte containing a value, v, between 251 and 254 inclusive, - * indicates an integer involving the next byte, w, according to the formula: - * -[(v - 251) * 256] - w - 108 - * - * 4. A CharString containing the value 255 indicates that the next 4 bytes - * are a two complement signed integer. The first of these bytes contains the - * highest order bits, the second byte contains the next higher order bits - * and the fourth byte contain the lowest order bits. - * - * - * CharString Command Encoding: - * CharStrings commands are encoded in 1 or 2 bytes. - * - * Single byte commands are encoded in 1 byte that contains a value between - * 0 and 31 inclusive. - * If a command byte contains the value 12, then the value in the next byte - * indicates a command. This "escape" mechanism allows many extra commands - * to be encoded and this encoding technique helps to minimize the length of - * the charStrings. - */ -var Type1CharString = (function Type1CharStringClosure() { - var COMMAND_MAP = { - 'hstem': [1], - 'vstem': [3], - 'vmoveto': [4], - 'rlineto': [5], - 'hlineto': [6], - 'vlineto': [7], - 'rrcurveto': [8], - 'callsubr': [10], - 'flex': [12, 35], - 'drop' : [12, 18], - 'endchar': [14], - 'rmoveto': [21], - 'hmoveto': [22], - 'vhcurveto': [30], - 'hvcurveto': [31] - }; - - function Type1CharString() { - this.width = 0; - this.lsb = 0; - this.flexing = false; - this.output = []; - this.stack = []; - } - - Type1CharString.prototype = { - convert: function Type1CharString_convert(encoded, subrs) { - var count = encoded.length; - var error = false; - var wx, sbx, subrNumber; - for (var i = 0; i < count; i++) { - var value = encoded[i]; - if (value < 32) { - if (value === 12) { - value = (value << 8) + encoded[++i]; - } - switch (value) { - case 1: // hstem - if (!HINTING_ENABLED) { - this.stack = []; - break; - } - error = this.executeCommand(2, COMMAND_MAP.hstem); - break; - case 3: // vstem - if (!HINTING_ENABLED) { - this.stack = []; - break; - } - error = this.executeCommand(2, COMMAND_MAP.vstem); - break; - case 4: // vmoveto - if (this.flexing) { - if (this.stack.length < 1) { - error = true; - break; - } - // Add the dx for flex and but also swap the values so they are - // the right order. - var dy = this.stack.pop(); - this.stack.push(0, dy); - break; - } - error = this.executeCommand(1, COMMAND_MAP.vmoveto); - break; - case 5: // rlineto - error = this.executeCommand(2, COMMAND_MAP.rlineto); - break; - case 6: // hlineto - error = this.executeCommand(1, COMMAND_MAP.hlineto); - break; - case 7: // vlineto - error = this.executeCommand(1, COMMAND_MAP.vlineto); - break; - case 8: // rrcurveto - error = this.executeCommand(6, COMMAND_MAP.rrcurveto); - break; - case 9: // closepath - // closepath is a Type1 command that does not take argument and is - // useless in Type2 and it can simply be ignored. - this.stack = []; - break; - case 10: // callsubr - if (this.stack.length < 1) { - error = true; - break; - } - subrNumber = this.stack.pop(); - error = this.convert(subrs[subrNumber], subrs); - break; - case 11: // return - return error; - case 13: // hsbw - if (this.stack.length < 2) { - error = true; - break; - } - // To convert to type2 we have to move the width value to the - // first part of the charstring and then use hmoveto with lsb. - wx = this.stack.pop(); - sbx = this.stack.pop(); - this.lsb = sbx; - this.width = wx; - this.stack.push(wx, sbx); - error = this.executeCommand(2, COMMAND_MAP.hmoveto); - break; - case 14: // endchar - this.output.push(COMMAND_MAP.endchar[0]); - break; - case 21: // rmoveto - if (this.flexing) { - break; - } - error = this.executeCommand(2, COMMAND_MAP.rmoveto); - break; - case 22: // hmoveto - if (this.flexing) { - // Add the dy for flex. - this.stack.push(0); - break; - } - error = this.executeCommand(1, COMMAND_MAP.hmoveto); - break; - case 30: // vhcurveto - error = this.executeCommand(4, COMMAND_MAP.vhcurveto); - break; - case 31: // hvcurveto - error = this.executeCommand(4, COMMAND_MAP.hvcurveto); - break; - case (12 << 8) + 0: // dotsection - // dotsection is a Type1 command to specify some hinting feature - // for dots that do not take a parameter and it can safely be - // ignored for Type2. - this.stack = []; - break; - case (12 << 8) + 1: // vstem3 - if (!HINTING_ENABLED) { - this.stack = []; - break; - } - // [vh]stem3 are Type1 only and Type2 supports [vh]stem with - // multiple parameters, so instead of returning [vh]stem3 take a - // shortcut and return [vhstem] instead. - error = this.executeCommand(2, COMMAND_MAP.vstem); - break; - case (12 << 8) + 2: // hstem3 - if (!HINTING_ENABLED) { - this.stack = []; - break; - } - // See vstem3. - error = this.executeCommand(2, COMMAND_MAP.hstem); - break; - case (12 << 8) + 6: // seac - // seac is like type 2's special endchar but it doesn't use the - // first argument asb, so remove it. - if (SEAC_ANALYSIS_ENABLED) { - this.seac = this.stack.splice(-4, 4); - error = this.executeCommand(0, COMMAND_MAP.endchar); - } else { - error = this.executeCommand(4, COMMAND_MAP.endchar); - } - break; - case (12 << 8) + 7: // sbw - if (this.stack.length < 4) { - error = true; - break; - } - // To convert to type2 we have to move the width value to the - // first part of the charstring and then use rmoveto with - // (dx, dy). The height argument will not be used for vmtx and - // vhea tables reconstruction -- ignoring it. - var wy = this.stack.pop(); - wx = this.stack.pop(); - var sby = this.stack.pop(); - sbx = this.stack.pop(); - this.lsb = sbx; - this.width = wx; - this.stack.push(wx, sbx, sby); - error = this.executeCommand(3, COMMAND_MAP.rmoveto); - break; - case (12 << 8) + 12: // div - if (this.stack.length < 2) { - error = true; - break; - } - var num2 = this.stack.pop(); - var num1 = this.stack.pop(); - this.stack.push(num1 / num2); - break; - case (12 << 8) + 16: // callothersubr - if (this.stack.length < 2) { - error = true; - break; - } - subrNumber = this.stack.pop(); - var numArgs = this.stack.pop(); - if (subrNumber === 0 && numArgs === 3) { - var flexArgs = this.stack.splice(this.stack.length - 17, 17); - this.stack.push( - flexArgs[2] + flexArgs[0], // bcp1x + rpx - flexArgs[3] + flexArgs[1], // bcp1y + rpy - flexArgs[4], // bcp2x - flexArgs[5], // bcp2y - flexArgs[6], // p2x - flexArgs[7], // p2y - flexArgs[8], // bcp3x - flexArgs[9], // bcp3y - flexArgs[10], // bcp4x - flexArgs[11], // bcp4y - flexArgs[12], // p3x - flexArgs[13], // p3y - flexArgs[14] // flexDepth - // 15 = finalx unused by flex - // 16 = finaly unused by flex - ); - error = this.executeCommand(13, COMMAND_MAP.flex, true); - this.flexing = false; - this.stack.push(flexArgs[15], flexArgs[16]); - } else if (subrNumber === 1 && numArgs === 0) { - this.flexing = true; - } - break; - case (12 << 8) + 17: // pop - // Ignore this since it is only used with othersubr. - break; - case (12 << 8) + 33: // setcurrentpoint - // Ignore for now. - this.stack = []; - break; - default: - warn('Unknown type 1 charstring command of "' + value + '"'); - break; - } - if (error) { - break; - } - continue; - } else if (value <= 246) { - value = value - 139; - } else if (value <= 250) { - value = ((value - 247) * 256) + encoded[++i] + 108; - } else if (value <= 254) { - value = -((value - 251) * 256) - encoded[++i] - 108; - } else { - value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | - (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0; - } - this.stack.push(value); - } - return error; - }, - - executeCommand: function(howManyArgs, command, keepStack) { - var stackLength = this.stack.length; - if (howManyArgs > stackLength) { - return true; - } - var start = stackLength - howManyArgs; - for (var i = start; i < stackLength; i++) { - var value = this.stack[i]; - if (value === (value | 0)) { // int - this.output.push(28, (value >> 8) & 0xff, value & 0xff); - } else { // fixed point - value = (65536 * value) | 0; - this.output.push(255, - (value >> 24) & 0xFF, - (value >> 16) & 0xFF, - (value >> 8) & 0xFF, - value & 0xFF); - } - } - this.output.push.apply(this.output, command); - if (keepStack) { - this.stack.splice(start, howManyArgs); - } else { - this.stack.length = 0; - } - return false; - } - }; - - return Type1CharString; -})(); - -/* - * Type1Parser encapsulate the needed code for parsing a Type1 font - * program. Some of its logic depends on the Type2 charstrings - * structure. - * Note: this doesn't really parse the font since that would require evaluation - * of PostScript, but it is possible in most cases to extract what we need - * without a full parse. - */ -var Type1Parser = (function Type1ParserClosure() { - /* - * Decrypt a Sequence of Ciphertext Bytes to Produce the Original Sequence - * of Plaintext Bytes. The function took a key as a parameter which can be - * for decrypting the eexec block of for decoding charStrings. - */ - var EEXEC_ENCRYPT_KEY = 55665; - var CHAR_STRS_ENCRYPT_KEY = 4330; - - function isHexDigit(code) { - return code >= 48 && code <= 57 || // '0'-'9' - code >= 65 && code <= 70 || // 'A'-'F' - code >= 97 && code <= 102; // 'a'-'f' - } - - function decrypt(data, key, discardNumber) { - var r = key | 0, c1 = 52845, c2 = 22719; - var count = data.length; - var decrypted = new Uint8Array(count); - for (var i = 0; i < count; i++) { - var value = data[i]; - decrypted[i] = value ^ (r >> 8); - r = ((value + r) * c1 + c2) & ((1 << 16) - 1); - } - return Array.prototype.slice.call(decrypted, discardNumber); - } - - function decryptAscii(data, key, discardNumber) { - var r = key | 0, c1 = 52845, c2 = 22719; - var count = data.length, maybeLength = count >>> 1; - var decrypted = new Uint8Array(maybeLength); - var i, j; - for (i = 0, j = 0; i < count; i++) { - var digit1 = data[i]; - if (!isHexDigit(digit1)) { - continue; - } - i++; - var digit2; - while (i < count && !isHexDigit(digit2 = data[i])) { - i++; - } - if (i < count) { - var value = parseInt(String.fromCharCode(digit1, digit2), 16); - decrypted[j++] = value ^ (r >> 8); - r = ((value + r) * c1 + c2) & ((1 << 16) - 1); - } - } - return Array.prototype.slice.call(decrypted, discardNumber, j); - } - - function isSpecial(c) { - return c === 0x2F || // '/' - c === 0x5B || c === 0x5D || // '[', ']' - c === 0x7B || c === 0x7D || // '{', '}' - c === 0x28 || c === 0x29; // '(', ')' - } - - function Type1Parser(stream, encrypted) { - if (encrypted) { - var data = stream.getBytes(); - var isBinary = !(isHexDigit(data[0]) && isHexDigit(data[1]) && - isHexDigit(data[2]) && isHexDigit(data[3])); - stream = new Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : - decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)); - } - this.stream = stream; - this.nextChar(); - } - - Type1Parser.prototype = { - readNumberArray: function Type1Parser_readNumberArray() { - this.getToken(); // read '[' or '{' (arrays can start with either) - var array = []; - while (true) { - var token = this.getToken(); - if (token === null || token === ']' || token === '}') { - break; - } - array.push(parseFloat(token || 0)); - } - return array; - }, - - readNumber: function Type1Parser_readNumber() { - var token = this.getToken(); - return parseFloat(token || 0); - }, - - readInt: function Type1Parser_readInt() { - // Use '| 0' to prevent setting a double into length such as the double - // does not flow into the loop variable. - var token = this.getToken(); - return parseInt(token || 0, 10) | 0; - }, - - readBoolean: function Type1Parser_readBoolean() { - var token = this.getToken(); - - // Use 1 and 0 since that's what type2 charstrings use. - return token === 'true' ? 1 : 0; - }, - - nextChar : function Type1_nextChar() { - return (this.currentChar = this.stream.getByte()); - }, - - getToken: function Type1Parser_getToken() { - // Eat whitespace and comments. - var comment = false; - var ch = this.currentChar; - while (true) { - if (ch === -1) { - return null; - } - - if (comment) { - if (ch === 0x0A || ch === 0x0D) { - comment = false; - } - } else if (ch === 0x25) { // '%' - comment = true; - } else if (!Lexer.isSpace(ch)) { - break; - } - ch = this.nextChar(); - } - if (isSpecial(ch)) { - this.nextChar(); - return String.fromCharCode(ch); - } - var token = ''; - do { - token += String.fromCharCode(ch); - ch = this.nextChar(); - } while (ch >= 0 && !Lexer.isSpace(ch) && !isSpecial(ch)); - return token; - }, - - /* - * Returns an object containing a Subrs array and a CharStrings - * array extracted from and eexec encrypted block of data - */ - extractFontProgram: function Type1Parser_extractFontProgram() { - var stream = this.stream; - - var subrs = [], charstrings = []; - var program = { - subrs: [], - charstrings: [], - properties: { - 'privateData': { - 'lenIV': 4 - } - } - }; - var token, length, data, lenIV, encoded; - while ((token = this.getToken()) !== null) { - if (token !== '/') { - continue; - } - token = this.getToken(); - switch (token) { - case 'CharStrings': - // The number immediately following CharStrings must be greater or - // equal to the number of CharStrings. - this.getToken(); - this.getToken(); // read in 'dict' - this.getToken(); // read in 'dup' - this.getToken(); // read in 'begin' - while(true) { - token = this.getToken(); - if (token === null || token === 'end') { - break; - } - - if (token !== '/') { - continue; - } - var glyph = this.getToken(); - length = this.readInt(); - this.getToken(); // read in 'RD' or '-|' - data = stream.makeSubStream(stream.pos, length); - lenIV = program.properties.privateData['lenIV']; - encoded = decrypt(data.getBytes(), CHAR_STRS_ENCRYPT_KEY, lenIV); - // Skip past the required space and binary data. - stream.skip(length); - this.nextChar(); - token = this.getToken(); // read in 'ND' or '|-' - if (token === 'noaccess') { - this.getToken(); // read in 'def' - } - charstrings.push({ - glyph: glyph, - encoded: encoded - }); - } - break; - case 'Subrs': - var num = this.readInt(); - this.getToken(); // read in 'array' - while ((token = this.getToken()) === 'dup') { - var index = this.readInt(); - length = this.readInt(); - this.getToken(); // read in 'RD' or '-|' - data = stream.makeSubStream(stream.pos, length); - lenIV = program.properties.privateData['lenIV']; - encoded = decrypt(data.getBytes(), CHAR_STRS_ENCRYPT_KEY, lenIV); - // Skip past the required space and binary data. - stream.skip(length); - this.nextChar(); - token = this.getToken(); // read in 'NP' or '|' - if (token === 'noaccess') { - this.getToken(); // read in 'put' - } - subrs[index] = encoded; - } - break; - case 'BlueValues': - case 'OtherBlues': - case 'FamilyBlues': - case 'FamilyOtherBlues': - var blueArray = this.readNumberArray(); - // *Blue* values may contain invalid data: disables reading of - // those values when hinting is disabled. - if (blueArray.length > 0 && (blueArray.length % 2) === 0 && - HINTING_ENABLED) { - program.properties.privateData[token] = blueArray; - } - break; - case 'StemSnapH': - case 'StemSnapV': - program.properties.privateData[token] = this.readNumberArray(); - break; - case 'StdHW': - case 'StdVW': - program.properties.privateData[token] = - this.readNumberArray()[0]; - break; - case 'BlueShift': - case 'lenIV': - case 'BlueFuzz': - case 'BlueScale': - case 'LanguageGroup': - case 'ExpansionFactor': - program.properties.privateData[token] = this.readNumber(); - break; - case 'ForceBold': - program.properties.privateData[token] = this.readBoolean(); - break; - } - } - - for (var i = 0; i < charstrings.length; i++) { - glyph = charstrings[i].glyph; - encoded = charstrings[i].encoded; - var charString = new Type1CharString(); - var error = charString.convert(encoded, subrs); - var output = charString.output; - if (error) { - // It seems when FreeType encounters an error while evaluating a glyph - // that it completely ignores the glyph so we'll mimic that behaviour - // here and put an endchar to make the validator happy. - output = [14]; - } - program.charstrings.push({ - glyphName: glyph, - charstring: output, - width: charString.width, - lsb: charString.lsb, - seac: charString.seac - }); - } - - return program; - }, - - extractFontHeader: function Type1Parser_extractFontHeader(properties) { - var token; - while ((token = this.getToken()) !== null) { - if (token !== '/') { - continue; - } - token = this.getToken(); - switch (token) { - case 'FontMatrix': - var matrix = this.readNumberArray(); - properties.fontMatrix = matrix; - break; - case 'Encoding': - var encodingArg = this.getToken(); - var encoding; - if (!/^\d+$/.test(encodingArg)) { - // encoding name is specified - encoding = Encodings[encodingArg]; - } else { - encoding = []; - var size = parseInt(encodingArg, 10) | 0; - this.getToken(); // read in 'array' - - for (var j = 0; j < size; j++) { - token = this.getToken(); - // skipping till first dup or def (e.g. ignoring for statement) - while (token !== 'dup' && token !== 'def') { - token = this.getToken(); - if (token === null) { - return; // invalid header - } - } - if (token === 'def') { - break; // read all array data - } - var index = this.readInt(); - this.getToken(); // read in '/' - var glyph = this.getToken(); - encoding[index] = glyph; - this.getToken(); // read the in 'put' - } - } - properties.builtInEncoding = encoding; - break; - case 'FontBBox': - var fontBBox = this.readNumberArray(); - // adjusting ascent/descent - properties.ascent = fontBBox[3]; - properties.descent = fontBBox[1]; - properties.ascentScaled = true; - break; - } - } - } - }; - - return Type1Parser; -})(); - -/** - * The CFF class takes a Type1 file and wrap it into a - * 'Compact Font Format' which itself embed Type2 charstrings. - */ -var CFFStandardStrings = [ - '.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', - 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', - 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', - 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', - 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', - 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', - 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', - 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', - 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', - 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', - 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', - 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', - 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', - 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', - 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown', - 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', - 'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', - 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', - 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', - 'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', - 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', - 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', - 'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', - 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', - 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', - 'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', - 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', - 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', - 'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', - 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', - 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', - 'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron', 'exclamsmall', - 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', - 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', - 'onedotenleader', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', - 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', - 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'commasuperior', - 'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior', - 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', - 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', - 'tsuperior', 'ff', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', - 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', - 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', - 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', - 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', - 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', - 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', - 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', - 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', - 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'questiondownsmall', 'oneeighth', - 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', - 'zerosuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', - 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', - 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', - 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', - 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', - 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', - 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', - 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', - 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', - 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', - 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', - 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', - 'Thornsmall', 'Ydieresissmall', '001.000', '001.001', '001.002', '001.003', - 'Black', 'Bold', 'Book', 'Light', 'Medium', 'Regular', 'Roman', 'Semibold' -]; - -// Type1Font is also a CIDFontType0. -var Type1Font = function Type1Font(name, file, properties) { - // Some bad generators embed pfb file as is, we have to strip 6-byte headers. - // Also, length1 and length2 might be off by 6 bytes as well. - // http://www.math.ubc.ca/~cass/piscript/type1.pdf - var PFB_HEADER_SIZE = 6; - var headerBlockLength = properties.length1; - var eexecBlockLength = properties.length2; - var pfbHeader = file.peekBytes(PFB_HEADER_SIZE); - var pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01; - if (pfbHeaderPresent) { - file.skip(PFB_HEADER_SIZE); - headerBlockLength = (pfbHeader[5] << 24) | (pfbHeader[4] << 16) | - (pfbHeader[3] << 8) | pfbHeader[2]; - } - - // Get the data block containing glyphs and subrs informations - var headerBlock = new Stream(file.getBytes(headerBlockLength)); - var headerBlockParser = new Type1Parser(headerBlock); - headerBlockParser.extractFontHeader(properties); - - if (pfbHeaderPresent) { - pfbHeader = file.getBytes(PFB_HEADER_SIZE); - eexecBlockLength = (pfbHeader[5] << 24) | (pfbHeader[4] << 16) | - (pfbHeader[3] << 8) | pfbHeader[2]; - } - - // Decrypt the data blocks and retrieve it's content - var eexecBlock = new Stream(file.getBytes(eexecBlockLength)); - var eexecBlockParser = new Type1Parser(eexecBlock, true); - var data = eexecBlockParser.extractFontProgram(); - for (var info in data.properties) { - properties[info] = data.properties[info]; - } - - var charstrings = data.charstrings; - var type2Charstrings = this.getType2Charstrings(charstrings); - var subrs = this.getType2Subrs(data.subrs); - - this.charstrings = charstrings; - this.data = this.wrap(name, type2Charstrings, this.charstrings, - subrs, properties); - this.seacs = this.getSeacs(data.charstrings); -}; - -Type1Font.prototype = { - get numGlyphs() { - return this.charstrings.length + 1; - }, - - getCharset: function Type1Font_getCharset() { - var charset = ['.notdef']; - var charstrings = this.charstrings; - for (var glyphId = 0; glyphId < charstrings.length; glyphId++) { - charset.push(charstrings[glyphId].glyphName); - } - return charset; - }, - - getGlyphMapping: function Type1Font_getGlyphMapping(properties) { - var charstrings = this.charstrings; - var glyphNames = ['.notdef'], glyphId; - for (glyphId = 0; glyphId < charstrings.length; glyphId++) { - glyphNames.push(charstrings[glyphId].glyphName); - } - var encoding = properties.builtInEncoding; - if (encoding) { - var builtInEncoding = {}; - for (var charCode in encoding) { - glyphId = glyphNames.indexOf(encoding[charCode]); - if (glyphId >= 0) { - builtInEncoding[charCode] = glyphId; - } - } - } - - return type1FontGlyphMapping(properties, builtInEncoding, glyphNames); - }, - - getSeacs: function Type1Font_getSeacs(charstrings) { - var i, ii; - var seacMap = []; - for (i = 0, ii = charstrings.length; i < ii; i++) { - var charstring = charstrings[i]; - if (charstring.seac) { - // Offset by 1 for .notdef - seacMap[i + 1] = charstring.seac; - } - } - return seacMap; - }, - - getType2Charstrings: function Type1Font_getType2Charstrings( - type1Charstrings) { - var type2Charstrings = []; - for (var i = 0, ii = type1Charstrings.length; i < ii; i++) { - type2Charstrings.push(type1Charstrings[i].charstring); - } - return type2Charstrings; - }, - - getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) { - var bias = 0; - var count = type1Subrs.length; - if (count < 1133) { - bias = 107; - } else if (count < 33769) { - bias = 1131; - } else { - bias = 32768; - } - - // Add a bunch of empty subrs to deal with the Type2 bias - var type2Subrs = []; - var i; - for (i = 0; i < bias; i++) { - type2Subrs.push([0x0B]); - } - - for (i = 0; i < count; i++) { - type2Subrs.push(type1Subrs[i]); - } - - return type2Subrs; - }, - - wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) { - var cff = new CFF(); - cff.header = new CFFHeader(1, 0, 4, 4); - - cff.names = [name]; - - var topDict = new CFFTopDict(); - // CFF strings IDs 0...390 are predefined names, so refering - // to entries in our own String INDEX starts at SID 391. - topDict.setByName('version', 391); - topDict.setByName('Notice', 392); - topDict.setByName('FullName', 393); - topDict.setByName('FamilyName', 394); - topDict.setByName('Weight', 395); - topDict.setByName('Encoding', null); // placeholder - topDict.setByName('FontMatrix', properties.fontMatrix); - topDict.setByName('FontBBox', properties.bbox); - topDict.setByName('charset', null); // placeholder - topDict.setByName('CharStrings', null); // placeholder - topDict.setByName('Private', null); // placeholder - cff.topDict = topDict; - - var strings = new CFFStrings(); - strings.add('Version 0.11'); // Version - strings.add('See original notice'); // Notice - strings.add(name); // FullName - strings.add(name); // FamilyName - strings.add('Medium'); // Weight - cff.strings = strings; - - cff.globalSubrIndex = new CFFIndex(); - - var count = glyphs.length; - var charsetArray = [0]; - var i, ii; - for (i = 0; i < count; i++) { - var index = CFFStandardStrings.indexOf(charstrings[i].glyphName); - // TODO: Insert the string and correctly map it. Previously it was - // thought mapping names that aren't in the standard strings to .notdef - // was fine, however in issue818 when mapping them all to .notdef the - // adieresis glyph no longer worked. - if (index === -1) { - index = 0; - } - charsetArray.push((index >> 8) & 0xff, index & 0xff); - } - cff.charset = new CFFCharset(false, 0, [], charsetArray); - - var charStringsIndex = new CFFIndex(); - charStringsIndex.add([0x8B, 0x0E]); // .notdef - for (i = 0; i < count; i++) { - charStringsIndex.add(glyphs[i]); - } - cff.charStrings = charStringsIndex; - - var privateDict = new CFFPrivateDict(); - privateDict.setByName('Subrs', null); // placeholder - var fields = [ - 'BlueValues', - 'OtherBlues', - 'FamilyBlues', - 'FamilyOtherBlues', - 'StemSnapH', - 'StemSnapV', - 'BlueShift', - 'BlueFuzz', - 'BlueScale', - 'LanguageGroup', - 'ExpansionFactor', - 'ForceBold', - 'StdHW', - 'StdVW' - ]; - for (i = 0, ii = fields.length; i < ii; i++) { - var field = fields[i]; - if (!properties.privateData.hasOwnProperty(field)) { - continue; - } - var value = properties.privateData[field]; - if (isArray(value)) { - // All of the private dictionary array data in CFF must be stored as - // "delta-encoded" numbers. - for (var j = value.length - 1; j > 0; j--) { - value[j] -= value[j - 1]; // ... difference from previous value - } - } - privateDict.setByName(field, value); - } - cff.topDict.privateDict = privateDict; - - var subrIndex = new CFFIndex(); - for (i = 0, ii = subrs.length; i < ii; i++) { - subrIndex.add(subrs[i]); - } - privateDict.subrsIndex = subrIndex; - - var compiler = new CFFCompiler(cff); - return compiler.compile(); - } -}; - -var CFFFont = (function CFFFontClosure() { - function CFFFont(file, properties) { - this.properties = properties; - - var parser = new CFFParser(file, properties); - this.cff = parser.parse(); - var compiler = new CFFCompiler(this.cff); - this.seacs = this.cff.seacs; - try { - this.data = compiler.compile(); - } catch (e) { - warn('Failed to compile font ' + properties.loadedName); - // There may have just been an issue with the compiler, set the data - // anyway and hope the font loaded. - this.data = file; - } - } - - CFFFont.prototype = { - get numGlyphs() { - return this.cff.charStrings.count; - }, - getCharset: function CFFFont_getCharset() { - return this.cff.charset.charset; - }, - getGlyphMapping: function CFFFont_getGlyphMapping() { - var cff = this.cff; - var properties = this.properties; - var charsets = cff.charset.charset; - var charCodeToGlyphId; - var glyphId; - - if (properties.composite) { - charCodeToGlyphId = Object.create(null); - if (cff.isCIDFont) { - // If the font is actually a CID font then we should use the charset - // to map CIDs to GIDs. - for (glyphId = 0; glyphId < charsets.length; glyphId++) { - var cid = charsets[glyphId]; - var charCode = properties.cMap.charCodeOf(cid); - charCodeToGlyphId[charCode] = glyphId; - } - } else { - // If it is NOT actually a CID font then CIDs should be mapped - // directly to GIDs. - for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) { - charCodeToGlyphId[glyphId] = glyphId; - } - } - return charCodeToGlyphId; - } - - var encoding = cff.encoding ? cff.encoding.encoding : null; - charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets); - return charCodeToGlyphId; - } - }; - - return CFFFont; -})(); - -var CFFParser = (function CFFParserClosure() { - var CharstringValidationData = [ - null, - { id: 'hstem', min: 2, stackClearing: true, stem: true }, - null, - { id: 'vstem', min: 2, stackClearing: true, stem: true }, - { id: 'vmoveto', min: 1, stackClearing: true }, - { id: 'rlineto', min: 2, resetStack: true }, - { id: 'hlineto', min: 1, resetStack: true }, - { id: 'vlineto', min: 1, resetStack: true }, - { id: 'rrcurveto', min: 6, resetStack: true }, - null, - { id: 'callsubr', min: 1, undefStack: true }, - { id: 'return', min: 0, undefStack: true }, - null, // 12 - null, - { id: 'endchar', min: 0, stackClearing: true }, - null, - null, - null, - { id: 'hstemhm', min: 2, stackClearing: true, stem: true }, - { id: 'hintmask', min: 0, stackClearing: true }, - { id: 'cntrmask', min: 0, stackClearing: true }, - { id: 'rmoveto', min: 2, stackClearing: true }, - { id: 'hmoveto', min: 1, stackClearing: true }, - { id: 'vstemhm', min: 2, stackClearing: true, stem: true }, - { id: 'rcurveline', min: 8, resetStack: true }, - { id: 'rlinecurve', min: 8, resetStack: true }, - { id: 'vvcurveto', min: 4, resetStack: true }, - { id: 'hhcurveto', min: 4, resetStack: true }, - null, // shortint - { id: 'callgsubr', min: 1, undefStack: true }, - { id: 'vhcurveto', min: 4, resetStack: true }, - { id: 'hvcurveto', min: 4, resetStack: true } - ]; - var CharstringValidationData12 = [ - null, - null, - null, - { id: 'and', min: 2, stackDelta: -1 }, - { id: 'or', min: 2, stackDelta: -1 }, - { id: 'not', min: 1, stackDelta: 0 }, - null, - null, - null, - { id: 'abs', min: 1, stackDelta: 0 }, - { id: 'add', min: 2, stackDelta: -1, - stackFn: function stack_div(stack, index) { - stack[index - 2] = stack[index - 2] + stack[index - 1]; - } - }, - { id: 'sub', min: 2, stackDelta: -1, - stackFn: function stack_div(stack, index) { - stack[index - 2] = stack[index - 2] - stack[index - 1]; - } - }, - { id: 'div', min: 2, stackDelta: -1, - stackFn: function stack_div(stack, index) { - stack[index - 2] = stack[index - 2] / stack[index - 1]; - } - }, - null, - { id: 'neg', min: 1, stackDelta: 0, - stackFn: function stack_div(stack, index) { - stack[index - 1] = -stack[index - 1]; - } - }, - { id: 'eq', min: 2, stackDelta: -1 }, - null, - null, - { id: 'drop', min: 1, stackDelta: -1 }, - null, - { id: 'put', min: 2, stackDelta: -2 }, - { id: 'get', min: 1, stackDelta: 0 }, - { id: 'ifelse', min: 4, stackDelta: -3 }, - { id: 'random', min: 0, stackDelta: 1 }, - { id: 'mul', min: 2, stackDelta: -1, - stackFn: function stack_div(stack, index) { - stack[index - 2] = stack[index - 2] * stack[index - 1]; - } - }, - null, - { id: 'sqrt', min: 1, stackDelta: 0 }, - { id: 'dup', min: 1, stackDelta: 1 }, - { id: 'exch', min: 2, stackDelta: 0 }, - { id: 'index', min: 2, stackDelta: 0 }, - { id: 'roll', min: 3, stackDelta: -2 }, - null, - null, - null, - { id: 'hflex', min: 7, resetStack: true }, - { id: 'flex', min: 13, resetStack: true }, - { id: 'hflex1', min: 9, resetStack: true }, - { id: 'flex1', min: 11, resetStack: true } - ]; - - function CFFParser(file, properties) { - this.bytes = file.getBytes(); - this.properties = properties; - } - CFFParser.prototype = { - parse: function CFFParser_parse() { - var properties = this.properties; - var cff = new CFF(); - this.cff = cff; - - // The first five sections must be in order, all the others are reached - // via offsets contained in one of the below. - var header = this.parseHeader(); - var nameIndex = this.parseIndex(header.endPos); - var topDictIndex = this.parseIndex(nameIndex.endPos); - var stringIndex = this.parseIndex(topDictIndex.endPos); - var globalSubrIndex = this.parseIndex(stringIndex.endPos); - - var topDictParsed = this.parseDict(topDictIndex.obj.get(0)); - var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings); - - cff.header = header.obj; - cff.names = this.parseNameIndex(nameIndex.obj); - cff.strings = this.parseStringIndex(stringIndex.obj); - cff.topDict = topDict; - cff.globalSubrIndex = globalSubrIndex.obj; - - this.parsePrivateDict(cff.topDict); - - cff.isCIDFont = topDict.hasName('ROS'); - - var charStringOffset = topDict.getByName('CharStrings'); - var charStringsAndSeacs = this.parseCharStrings(charStringOffset); - cff.charStrings = charStringsAndSeacs.charStrings; - cff.seacs = charStringsAndSeacs.seacs; - cff.widths = charStringsAndSeacs.widths; - - var fontMatrix = topDict.getByName('FontMatrix'); - if (fontMatrix) { - properties.fontMatrix = fontMatrix; - } - - var fontBBox = topDict.getByName('FontBBox'); - if (fontBBox) { - // adjusting ascent/descent - properties.ascent = fontBBox[3]; - properties.descent = fontBBox[1]; - properties.ascentScaled = true; - } - - var charset, encoding; - if (cff.isCIDFont) { - var fdArrayIndex = this.parseIndex(topDict.getByName('FDArray')).obj; - for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) { - var dictRaw = fdArrayIndex.get(i); - var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), - cff.strings); - this.parsePrivateDict(fontDict); - cff.fdArray.push(fontDict); - } - // cid fonts don't have an encoding - encoding = null; - charset = this.parseCharsets(topDict.getByName('charset'), - cff.charStrings.count, cff.strings, true); - cff.fdSelect = this.parseFDSelect(topDict.getByName('FDSelect'), - cff.charStrings.count); - } else { - charset = this.parseCharsets(topDict.getByName('charset'), - cff.charStrings.count, cff.strings, false); - encoding = this.parseEncoding(topDict.getByName('Encoding'), - properties, - cff.strings, charset.charset); - } - cff.charset = charset; - cff.encoding = encoding; - - return cff; - }, - parseHeader: function CFFParser_parseHeader() { - var bytes = this.bytes; - var bytesLength = bytes.length; - var offset = 0; - - // Prevent an infinite loop, by checking that the offset is within the - // bounds of the bytes array. Necessary in empty, or invalid, font files. - while (offset < bytesLength && bytes[offset] !== 1) { - ++offset; - } - if (offset >= bytesLength) { - error('Invalid CFF header'); - } else if (offset !== 0) { - info('cff data is shifted'); - bytes = bytes.subarray(offset); - this.bytes = bytes; - } - var major = bytes[0]; - var minor = bytes[1]; - var hdrSize = bytes[2]; - var offSize = bytes[3]; - var header = new CFFHeader(major, minor, hdrSize, offSize); - return { obj: header, endPos: hdrSize }; - }, - parseDict: function CFFParser_parseDict(dict) { - var pos = 0; - - function parseOperand() { - var value = dict[pos++]; - if (value === 30) { - return parseFloatOperand(pos); - } else if (value === 28) { - value = dict[pos++]; - value = ((value << 24) | (dict[pos++] << 16)) >> 16; - return value; - } else if (value === 29) { - value = dict[pos++]; - value = (value << 8) | dict[pos++]; - value = (value << 8) | dict[pos++]; - value = (value << 8) | dict[pos++]; - return value; - } else if (value >= 32 && value <= 246) { - return value - 139; - } else if (value >= 247 && value <= 250) { - return ((value - 247) * 256) + dict[pos++] + 108; - } else if (value >= 251 && value <= 254) { - return -((value - 251) * 256) - dict[pos++] - 108; - } else { - error('255 is not a valid DICT command'); - } - return -1; - } - - function parseFloatOperand() { - var str = ''; - var eof = 15; - var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8', - '9', '.', 'E', 'E-', null, '-']; - var length = dict.length; - while (pos < length) { - var b = dict[pos++]; - var b1 = b >> 4; - var b2 = b & 15; - - if (b1 === eof) { - break; - } - str += lookup[b1]; - - if (b2 === eof) { - break; - } - str += lookup[b2]; - } - return parseFloat(str); - } - - var operands = []; - var entries = []; - - pos = 0; - var end = dict.length; - while (pos < end) { - var b = dict[pos]; - if (b <= 21) { - if (b === 12) { - b = (b << 8) | dict[++pos]; - } - entries.push([b, operands]); - operands = []; - ++pos; - } else { - operands.push(parseOperand()); - } - } - return entries; - }, - parseIndex: function CFFParser_parseIndex(pos) { - var cffIndex = new CFFIndex(); - var bytes = this.bytes; - var count = (bytes[pos++] << 8) | bytes[pos++]; - var offsets = []; - var end = pos; - var i, ii; - - if (count !== 0) { - var offsetSize = bytes[pos++]; - // add 1 for offset to determine size of last object - var startPos = pos + ((count + 1) * offsetSize) - 1; - - for (i = 0, ii = count + 1; i < ii; ++i) { - var offset = 0; - for (var j = 0; j < offsetSize; ++j) { - offset <<= 8; - offset += bytes[pos++]; - } - offsets.push(startPos + offset); - } - end = offsets[count]; - } - for (i = 0, ii = offsets.length - 1; i < ii; ++i) { - var offsetStart = offsets[i]; - var offsetEnd = offsets[i + 1]; - cffIndex.add(bytes.subarray(offsetStart, offsetEnd)); - } - return {obj: cffIndex, endPos: end}; - }, - parseNameIndex: function CFFParser_parseNameIndex(index) { - var names = []; - for (var i = 0, ii = index.count; i < ii; ++i) { - var name = index.get(i); - // OTS doesn't allow names to be over 127 characters. - var length = Math.min(name.length, 127); - var data = []; - // OTS also only permits certain characters in the name. - for (var j = 0; j < length; ++j) { - var c = name[j]; - if (j === 0 && c === 0) { - data[j] = c; - continue; - } - if ((c < 33 || c > 126) || c === 91 /* [ */ || c === 93 /* ] */ || - c === 40 /* ( */ || c === 41 /* ) */ || c === 123 /* { */ || - c === 125 /* } */ || c === 60 /* < */ || c === 62 /* > */ || - c === 47 /* / */ || c === 37 /* % */ || c === 35 /* # */) { - data[j] = 95; - continue; - } - data[j] = c; - } - names.push(bytesToString(data)); - } - return names; - }, - parseStringIndex: function CFFParser_parseStringIndex(index) { - var strings = new CFFStrings(); - for (var i = 0, ii = index.count; i < ii; ++i) { - var data = index.get(i); - strings.add(bytesToString(data)); - } - return strings; - }, - createDict: function CFFParser_createDict(Type, dict, strings) { - var cffDict = new Type(strings); - for (var i = 0, ii = dict.length; i < ii; ++i) { - var pair = dict[i]; - var key = pair[0]; - var value = pair[1]; - cffDict.setByKey(key, value); - } - return cffDict; - }, - parseCharStrings: function CFFParser_parseCharStrings(charStringOffset) { - var charStrings = this.parseIndex(charStringOffset).obj; - var seacs = []; - var widths = []; - var count = charStrings.count; - for (var i = 0; i < count; i++) { - var charstring = charStrings.get(i); - - var stackSize = 0; - var stack = []; - var undefStack = true; - var hints = 0; - var valid = true; - var data = charstring; - var length = data.length; - var firstStackClearing = true; - for (var j = 0; j < length;) { - var value = data[j++]; - var validationCommand = null; - if (value === 12) { - var q = data[j++]; - if (q === 0) { - // The CFF specification state that the 'dotsection' command - // (12, 0) is deprecated and treated as a no-op, but all Type2 - // charstrings processors should support them. Unfortunately - // the font sanitizer don't. As a workaround the sequence (12, 0) - // is replaced by a useless (0, hmoveto). - data[j - 2] = 139; - data[j - 1] = 22; - stackSize = 0; - } else { - validationCommand = CharstringValidationData12[q]; - } - } else if (value === 28) { // number (16 bit) - stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16)) >> 16; - j += 2; - stackSize++; - } else if (value === 14) { - if (stackSize >= 4) { - stackSize -= 4; - if (SEAC_ANALYSIS_ENABLED) { - seacs[i] = stack.slice(stackSize, stackSize + 4); - valid = false; - } - } - validationCommand = CharstringValidationData[value]; - } else if (value >= 32 && value <= 246) { // number - stack[stackSize] = value - 139; - stackSize++; - } else if (value >= 247 && value <= 254) { // number (+1 bytes) - stack[stackSize] = (value < 251 ? - ((value - 247) << 8) + data[j] + 108 : - -((value - 251) << 8) - data[j] - 108); - j++; - stackSize++; - } else if (value === 255) { // number (32 bit) - stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16) | - (data[j + 2] << 8) | data[j + 3]) / 65536; - j += 4; - stackSize++; - } else if (value === 19 || value === 20) { - hints += stackSize >> 1; - j += (hints + 7) >> 3; // skipping right amount of hints flag data - stackSize %= 2; - validationCommand = CharstringValidationData[value]; - } else { - validationCommand = CharstringValidationData[value]; - } - if (validationCommand) { - if (validationCommand.stem) { - hints += stackSize >> 1; - } - if ('min' in validationCommand) { - if (!undefStack && stackSize < validationCommand.min) { - warn('Not enough parameters for ' + validationCommand.id + - '; actual: ' + stackSize + - ', expected: ' + validationCommand.min); - valid = false; - break; - } - } - if (firstStackClearing && validationCommand.stackClearing) { - firstStackClearing = false; - // the optional character width can be found before the first - // stack-clearing command arguments - stackSize -= validationCommand.min; - if (stackSize >= 2 && validationCommand.stem) { - // there are even amount of arguments for stem commands - stackSize %= 2; - } else if (stackSize > 1) { - warn('Found too many parameters for stack-clearing command'); - } - if (stackSize > 0 && stack[stackSize - 1] >= 0) { - widths[i] = stack[stackSize - 1]; - } - } - if ('stackDelta' in validationCommand) { - if ('stackFn' in validationCommand) { - validationCommand.stackFn(stack, stackSize); - } - stackSize += validationCommand.stackDelta; - } else if (validationCommand.stackClearing) { - stackSize = 0; - } else if (validationCommand.resetStack) { - stackSize = 0; - undefStack = false; - } else if (validationCommand.undefStack) { - stackSize = 0; - undefStack = true; - firstStackClearing = false; - } - } - } - if (!valid) { - // resetting invalid charstring to single 'endchar' - charStrings.set(i, new Uint8Array([14])); - } - } - return { charStrings: charStrings, seacs: seacs, widths: widths }; - }, - emptyPrivateDictionary: - function CFFParser_emptyPrivateDictionary(parentDict) { - var privateDict = this.createDict(CFFPrivateDict, [], - parentDict.strings); - parentDict.setByKey(18, [0, 0]); - parentDict.privateDict = privateDict; - }, - parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) { - // no private dict, do nothing - if (!parentDict.hasName('Private')) { - this.emptyPrivateDictionary(parentDict); - return; - } - var privateOffset = parentDict.getByName('Private'); - // make sure the params are formatted correctly - if (!isArray(privateOffset) || privateOffset.length !== 2) { - parentDict.removeByName('Private'); - return; - } - var size = privateOffset[0]; - var offset = privateOffset[1]; - // remove empty dicts or ones that refer to invalid location - if (size === 0 || offset >= this.bytes.length) { - this.emptyPrivateDictionary(parentDict); - return; - } - - var privateDictEnd = offset + size; - var dictData = this.bytes.subarray(offset, privateDictEnd); - var dict = this.parseDict(dictData); - var privateDict = this.createDict(CFFPrivateDict, dict, - parentDict.strings); - parentDict.privateDict = privateDict; - - // Parse the Subrs index also since it's relative to the private dict. - if (!privateDict.getByName('Subrs')) { - return; - } - var subrsOffset = privateDict.getByName('Subrs'); - var relativeOffset = offset + subrsOffset; - // Validate the offset. - if (subrsOffset === 0 || relativeOffset >= this.bytes.length) { - this.emptyPrivateDictionary(parentDict); - return; - } - var subrsIndex = this.parseIndex(relativeOffset); - privateDict.subrsIndex = subrsIndex.obj; - }, - parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) { - if (pos === 0) { - return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, - ISOAdobeCharset); - } else if (pos === 1) { - return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, - ExpertCharset); - } else if (pos === 2) { - return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, - ExpertSubsetCharset); - } - - var bytes = this.bytes; - var start = pos; - var format = bytes[pos++]; - var charset = ['.notdef']; - var id, count, i; - - // subtract 1 for the .notdef glyph - length -= 1; - - switch (format) { - case 0: - for (i = 0; i < length; i++) { - id = (bytes[pos++] << 8) | bytes[pos++]; - charset.push(cid ? id : strings.get(id)); - } - break; - case 1: - while (charset.length <= length) { - id = (bytes[pos++] << 8) | bytes[pos++]; - count = bytes[pos++]; - for (i = 0; i <= count; i++) { - charset.push(cid ? id++ : strings.get(id++)); - } - } - break; - case 2: - while (charset.length <= length) { - id = (bytes[pos++] << 8) | bytes[pos++]; - count = (bytes[pos++] << 8) | bytes[pos++]; - for (i = 0; i <= count; i++) { - charset.push(cid ? id++ : strings.get(id++)); - } - } - break; - default: - error('Unknown charset format'); - } - // Raw won't be needed if we actually compile the charset. - var end = pos; - var raw = bytes.subarray(start, end); - - return new CFFCharset(false, format, charset, raw); - }, - parseEncoding: function CFFParser_parseEncoding(pos, - properties, - strings, - charset) { - var encoding = {}; - var bytes = this.bytes; - var predefined = false; - var hasSupplement = false; - var format, i, ii; - var raw = null; - - function readSupplement() { - var supplementsCount = bytes[pos++]; - for (i = 0; i < supplementsCount; i++) { - var code = bytes[pos++]; - var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff); - encoding[code] = charset.indexOf(strings.get(sid)); - } - } - - if (pos === 0 || pos === 1) { - predefined = true; - format = pos; - var baseEncoding = pos ? Encodings.ExpertEncoding : - Encodings.StandardEncoding; - for (i = 0, ii = charset.length; i < ii; i++) { - var index = baseEncoding.indexOf(charset[i]); - if (index !== -1) { - encoding[index] = i; - } - } - } else { - var dataStart = pos; - format = bytes[pos++]; - switch (format & 0x7f) { - case 0: - var glyphsCount = bytes[pos++]; - for (i = 1; i <= glyphsCount; i++) { - encoding[bytes[pos++]] = i; - } - break; - - case 1: - var rangesCount = bytes[pos++]; - var gid = 1; - for (i = 0; i < rangesCount; i++) { - var start = bytes[pos++]; - var left = bytes[pos++]; - for (var j = start; j <= start + left; j++) { - encoding[j] = gid++; - } - } - break; - - default: - error('Unknow encoding format: ' + format + ' in CFF'); - break; - } - var dataEnd = pos; - if (format & 0x80) { - // The font sanitizer does not support CFF encoding with a - // supplement, since the encoding is not really used to map - // between gid to glyph, let's overwrite what is declared in - // the top dictionary to let the sanitizer think the font use - // StandardEncoding, that's a lie but that's ok. - bytes[dataStart] &= 0x7f; - readSupplement(); - hasSupplement = true; - } - raw = bytes.subarray(dataStart, dataEnd); - } - format = format & 0x7f; - return new CFFEncoding(predefined, format, encoding, raw); - }, - parseFDSelect: function CFFParser_parseFDSelect(pos, length) { - var start = pos; - var bytes = this.bytes; - var format = bytes[pos++]; - var fdSelect = []; - var i; - - switch (format) { - case 0: - for (i = 0; i < length; ++i) { - var id = bytes[pos++]; - fdSelect.push(id); - } - break; - case 3: - var rangesCount = (bytes[pos++] << 8) | bytes[pos++]; - for (i = 0; i < rangesCount; ++i) { - var first = (bytes[pos++] << 8) | bytes[pos++]; - var fdIndex = bytes[pos++]; - var next = (bytes[pos] << 8) | bytes[pos + 1]; - for (var j = first; j < next; ++j) { - fdSelect.push(fdIndex); - } - } - // Advance past the sentinel(next). - pos += 2; - break; - default: - error('Unknown fdselect format ' + format); - break; - } - var end = pos; - return new CFFFDSelect(fdSelect, bytes.subarray(start, end)); - } - }; - return CFFParser; -})(); - -// Compact Font Format -var CFF = (function CFFClosure() { - function CFF() { - this.header = null; - this.names = []; - this.topDict = null; - this.strings = new CFFStrings(); - this.globalSubrIndex = null; - - // The following could really be per font, but since we only have one font - // store them here. - this.encoding = null; - this.charset = null; - this.charStrings = null; - this.fdArray = []; - this.fdSelect = null; - - this.isCIDFont = false; - } - return CFF; -})(); - -var CFFHeader = (function CFFHeaderClosure() { - function CFFHeader(major, minor, hdrSize, offSize) { - this.major = major; - this.minor = minor; - this.hdrSize = hdrSize; - this.offSize = offSize; - } - return CFFHeader; -})(); - -var CFFStrings = (function CFFStringsClosure() { - function CFFStrings() { - this.strings = []; - } - CFFStrings.prototype = { - get: function CFFStrings_get(index) { - if (index >= 0 && index <= 390) { - return CFFStandardStrings[index]; - } - if (index - 391 <= this.strings.length) { - return this.strings[index - 391]; - } - return CFFStandardStrings[0]; - }, - add: function CFFStrings_add(value) { - this.strings.push(value); - }, - get count() { - return this.strings.length; - } - }; - return CFFStrings; -})(); - -var CFFIndex = (function CFFIndexClosure() { - function CFFIndex() { - this.objects = []; - this.length = 0; - } - CFFIndex.prototype = { - add: function CFFIndex_add(data) { - this.length += data.length; - this.objects.push(data); - }, - set: function CFFIndex_set(index, data) { - this.length += data.length - this.objects[index].length; - this.objects[index] = data; - }, - get: function CFFIndex_get(index) { - return this.objects[index]; - }, - get count() { - return this.objects.length; - } - }; - return CFFIndex; -})(); - -var CFFDict = (function CFFDictClosure() { - function CFFDict(tables, strings) { - this.keyToNameMap = tables.keyToNameMap; - this.nameToKeyMap = tables.nameToKeyMap; - this.defaults = tables.defaults; - this.types = tables.types; - this.opcodes = tables.opcodes; - this.order = tables.order; - this.strings = strings; - this.values = {}; - } - CFFDict.prototype = { - // value should always be an array - setByKey: function CFFDict_setByKey(key, value) { - if (!(key in this.keyToNameMap)) { - return false; - } - // ignore empty values - if (value.length === 0) { - return true; - } - var type = this.types[key]; - // remove the array wrapping these types of values - if (type === 'num' || type === 'sid' || type === 'offset') { - value = value[0]; - } - this.values[key] = value; - return true; - }, - setByName: function CFFDict_setByName(name, value) { - if (!(name in this.nameToKeyMap)) { - error('Invalid dictionary name "' + name + '"'); - } - this.values[this.nameToKeyMap[name]] = value; - }, - hasName: function CFFDict_hasName(name) { - return this.nameToKeyMap[name] in this.values; - }, - getByName: function CFFDict_getByName(name) { - if (!(name in this.nameToKeyMap)) { - error('Invalid dictionary name "' + name + '"'); - } - var key = this.nameToKeyMap[name]; - if (!(key in this.values)) { - return this.defaults[key]; - } - return this.values[key]; - }, - removeByName: function CFFDict_removeByName(name) { - delete this.values[this.nameToKeyMap[name]]; - } - }; - CFFDict.createTables = function CFFDict_createTables(layout) { - var tables = { - keyToNameMap: {}, - nameToKeyMap: {}, - defaults: {}, - types: {}, - opcodes: {}, - order: [] - }; - for (var i = 0, ii = layout.length; i < ii; ++i) { - var entry = layout[i]; - var key = isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0]; - tables.keyToNameMap[key] = entry[1]; - tables.nameToKeyMap[entry[1]] = key; - tables.types[key] = entry[2]; - tables.defaults[key] = entry[3]; - tables.opcodes[key] = isArray(entry[0]) ? entry[0] : [entry[0]]; - tables.order.push(key); - } - return tables; - }; - return CFFDict; -})(); - -var CFFTopDict = (function CFFTopDictClosure() { - var layout = [ - [[12, 30], 'ROS', ['sid', 'sid', 'num'], null], - [[12, 20], 'SyntheticBase', 'num', null], - [0, 'version', 'sid', null], - [1, 'Notice', 'sid', null], - [[12, 0], 'Copyright', 'sid', null], - [2, 'FullName', 'sid', null], - [3, 'FamilyName', 'sid', null], - [4, 'Weight', 'sid', null], - [[12, 1], 'isFixedPitch', 'num', 0], - [[12, 2], 'ItalicAngle', 'num', 0], - [[12, 3], 'UnderlinePosition', 'num', -100], - [[12, 4], 'UnderlineThickness', 'num', 50], - [[12, 5], 'PaintType', 'num', 0], - [[12, 6], 'CharstringType', 'num', 2], - [[12, 7], 'FontMatrix', ['num', 'num', 'num', 'num', 'num', 'num'], - [0.001, 0, 0, 0.001, 0, 0]], - [13, 'UniqueID', 'num', null], - [5, 'FontBBox', ['num', 'num', 'num', 'num'], [0, 0, 0, 0]], - [[12, 8], 'StrokeWidth', 'num', 0], - [14, 'XUID', 'array', null], - [15, 'charset', 'offset', 0], - [16, 'Encoding', 'offset', 0], - [17, 'CharStrings', 'offset', 0], - [18, 'Private', ['offset', 'offset'], null], - [[12, 21], 'PostScript', 'sid', null], - [[12, 22], 'BaseFontName', 'sid', null], - [[12, 23], 'BaseFontBlend', 'delta', null], - [[12, 31], 'CIDFontVersion', 'num', 0], - [[12, 32], 'CIDFontRevision', 'num', 0], - [[12, 33], 'CIDFontType', 'num', 0], - [[12, 34], 'CIDCount', 'num', 8720], - [[12, 35], 'UIDBase', 'num', null], - // XXX: CID Fonts on DirectWrite 6.1 only seem to work if FDSelect comes - // before FDArray. - [[12, 37], 'FDSelect', 'offset', null], - [[12, 36], 'FDArray', 'offset', null], - [[12, 38], 'FontName', 'sid', null] - ]; - var tables = null; - function CFFTopDict(strings) { - if (tables === null) { - tables = CFFDict.createTables(layout); - } - CFFDict.call(this, tables, strings); - this.privateDict = null; - } - CFFTopDict.prototype = Object.create(CFFDict.prototype); - return CFFTopDict; -})(); - -var CFFPrivateDict = (function CFFPrivateDictClosure() { - var layout = [ - [6, 'BlueValues', 'delta', null], - [7, 'OtherBlues', 'delta', null], - [8, 'FamilyBlues', 'delta', null], - [9, 'FamilyOtherBlues', 'delta', null], - [[12, 9], 'BlueScale', 'num', 0.039625], - [[12, 10], 'BlueShift', 'num', 7], - [[12, 11], 'BlueFuzz', 'num', 1], - [10, 'StdHW', 'num', null], - [11, 'StdVW', 'num', null], - [[12, 12], 'StemSnapH', 'delta', null], - [[12, 13], 'StemSnapV', 'delta', null], - [[12, 14], 'ForceBold', 'num', 0], - [[12, 17], 'LanguageGroup', 'num', 0], - [[12, 18], 'ExpansionFactor', 'num', 0.06], - [[12, 19], 'initialRandomSeed', 'num', 0], - [20, 'defaultWidthX', 'num', 0], - [21, 'nominalWidthX', 'num', 0], - [19, 'Subrs', 'offset', null] - ]; - var tables = null; - function CFFPrivateDict(strings) { - if (tables === null) { - tables = CFFDict.createTables(layout); - } - CFFDict.call(this, tables, strings); - this.subrsIndex = null; - } - CFFPrivateDict.prototype = Object.create(CFFDict.prototype); - return CFFPrivateDict; -})(); - -var CFFCharsetPredefinedTypes = { - ISO_ADOBE: 0, - EXPERT: 1, - EXPERT_SUBSET: 2 -}; -var CFFCharset = (function CFFCharsetClosure() { - function CFFCharset(predefined, format, charset, raw) { - this.predefined = predefined; - this.format = format; - this.charset = charset; - this.raw = raw; - } - return CFFCharset; -})(); - -var CFFEncoding = (function CFFEncodingClosure() { - function CFFEncoding(predefined, format, encoding, raw) { - this.predefined = predefined; - this.format = format; - this.encoding = encoding; - this.raw = raw; - } - return CFFEncoding; -})(); - -var CFFFDSelect = (function CFFFDSelectClosure() { - function CFFFDSelect(fdSelect, raw) { - this.fdSelect = fdSelect; - this.raw = raw; - } - return CFFFDSelect; -})(); - -// Helper class to keep track of where an offset is within the data and helps -// filling in that offset once it's known. -var CFFOffsetTracker = (function CFFOffsetTrackerClosure() { - function CFFOffsetTracker() { - this.offsets = {}; - } - CFFOffsetTracker.prototype = { - isTracking: function CFFOffsetTracker_isTracking(key) { - return key in this.offsets; - }, - track: function CFFOffsetTracker_track(key, location) { - if (key in this.offsets) { - error('Already tracking location of ' + key); - } - this.offsets[key] = location; - }, - offset: function CFFOffsetTracker_offset(value) { - for (var key in this.offsets) { - this.offsets[key] += value; - } - }, - setEntryLocation: function CFFOffsetTracker_setEntryLocation(key, - values, - output) { - if (!(key in this.offsets)) { - error('Not tracking location of ' + key); - } - var data = output.data; - var dataOffset = this.offsets[key]; - var size = 5; - for (var i = 0, ii = values.length; i < ii; ++i) { - var offset0 = i * size + dataOffset; - var offset1 = offset0 + 1; - var offset2 = offset0 + 2; - var offset3 = offset0 + 3; - var offset4 = offset0 + 4; - // It's easy to screw up offsets so perform this sanity check. - if (data[offset0] !== 0x1d || data[offset1] !== 0 || - data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) { - error('writing to an offset that is not empty'); - } - var value = values[i]; - data[offset0] = 0x1d; - data[offset1] = (value >> 24) & 0xFF; - data[offset2] = (value >> 16) & 0xFF; - data[offset3] = (value >> 8) & 0xFF; - data[offset4] = value & 0xFF; - } - } - }; - return CFFOffsetTracker; -})(); - -// Takes a CFF and converts it to the binary representation. -var CFFCompiler = (function CFFCompilerClosure() { - function CFFCompiler(cff) { - this.cff = cff; - } - CFFCompiler.prototype = { - compile: function CFFCompiler_compile() { - var cff = this.cff; - var output = { - data: [], - length: 0, - add: function CFFCompiler_add(data) { - this.data = this.data.concat(data); - this.length = this.data.length; - } - }; - - // Compile the five entries that must be in order. - var header = this.compileHeader(cff.header); - output.add(header); - - var nameIndex = this.compileNameIndex(cff.names); - output.add(nameIndex); - - if (cff.isCIDFont) { - // The spec is unclear on how font matrices should relate to each other - // when there is one in the main top dict and the sub top dicts. - // Windows handles this differently than linux and osx so we have to - // normalize to work on all. - // Rules based off of some mailing list discussions: - // - If main font has a matrix and subfont doesn't, use the main matrix. - // - If no main font matrix and there is a subfont matrix, use the - // subfont matrix. - // - If both have matrices, concat together. - // - If neither have matrices, use default. - // To make this work on all platforms we move the top matrix into each - // sub top dict and concat if necessary. - if (cff.topDict.hasName('FontMatrix')) { - var base = cff.topDict.getByName('FontMatrix'); - cff.topDict.removeByName('FontMatrix'); - for (var i = 0, ii = cff.fdArray.length; i < ii; i++) { - var subDict = cff.fdArray[i]; - var matrix = base.slice(0); - if (subDict.hasName('FontMatrix')) { - matrix = Util.transform(matrix, subDict.getByName('FontMatrix')); - } - subDict.setByName('FontMatrix', matrix); - } - } - } - - var compiled = this.compileTopDicts([cff.topDict], - output.length, - cff.isCIDFont); - output.add(compiled.output); - var topDictTracker = compiled.trackers[0]; - - var stringIndex = this.compileStringIndex(cff.strings.strings); - output.add(stringIndex); - - var globalSubrIndex = this.compileIndex(cff.globalSubrIndex); - output.add(globalSubrIndex); - - // Now start on the other entries that have no specfic order. - if (cff.encoding && cff.topDict.hasName('Encoding')) { - if (cff.encoding.predefined) { - topDictTracker.setEntryLocation('Encoding', [cff.encoding.format], - output); - } else { - var encoding = this.compileEncoding(cff.encoding); - topDictTracker.setEntryLocation('Encoding', [output.length], output); - output.add(encoding); - } - } - - if (cff.charset && cff.topDict.hasName('charset')) { - if (cff.charset.predefined) { - topDictTracker.setEntryLocation('charset', [cff.charset.format], - output); - } else { - var charset = this.compileCharset(cff.charset); - topDictTracker.setEntryLocation('charset', [output.length], output); - output.add(charset); - } - } - - var charStrings = this.compileCharStrings(cff.charStrings); - topDictTracker.setEntryLocation('CharStrings', [output.length], output); - output.add(charStrings); - - if (cff.isCIDFont) { - // For some reason FDSelect must be in front of FDArray on windows. OSX - // and linux don't seem to care. - topDictTracker.setEntryLocation('FDSelect', [output.length], output); - var fdSelect = this.compileFDSelect(cff.fdSelect.raw); - output.add(fdSelect); - // It is unclear if the sub font dictionary can have CID related - // dictionary keys, but the sanitizer doesn't like them so remove them. - compiled = this.compileTopDicts(cff.fdArray, output.length, true); - topDictTracker.setEntryLocation('FDArray', [output.length], output); - output.add(compiled.output); - var fontDictTrackers = compiled.trackers; - - this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output); - } - - this.compilePrivateDicts([cff.topDict], [topDictTracker], output); - - // If the font data ends with INDEX whose object data is zero-length, - // the sanitizer will bail out. Add a dummy byte to avoid that. - output.add([0]); - - return output.data; - }, - encodeNumber: function CFFCompiler_encodeNumber(value) { - if (parseFloat(value) === parseInt(value, 10) && !isNaN(value)) { // isInt - return this.encodeInteger(value); - } else { - return this.encodeFloat(value); - } - }, - encodeFloat: function CFFCompiler_encodeFloat(num) { - var value = num.toString(); - - // rounding inaccurate doubles - var m = /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(value); - if (m) { - var epsilon = parseFloat('1e' + ((m[2] ? +m[2] : 0) + m[1].length)); - value = (Math.round(num * epsilon) / epsilon).toString(); - } - - var nibbles = ''; - var i, ii; - for (i = 0, ii = value.length; i < ii; ++i) { - var a = value[i]; - if (a === 'e') { - nibbles += value[++i] === '-' ? 'c' : 'b'; - } else if (a === '.') { - nibbles += 'a'; - } else if (a === '-') { - nibbles += 'e'; - } else { - nibbles += a; - } - } - nibbles += (nibbles.length & 1) ? 'f' : 'ff'; - var out = [30]; - for (i = 0, ii = nibbles.length; i < ii; i += 2) { - out.push(parseInt(nibbles.substr(i, 2), 16)); - } - return out; - }, - encodeInteger: function CFFCompiler_encodeInteger(value) { - var code; - if (value >= -107 && value <= 107) { - code = [value + 139]; - } else if (value >= 108 && value <= 1131) { - value = [value - 108]; - code = [(value >> 8) + 247, value & 0xFF]; - } else if (value >= -1131 && value <= -108) { - value = -value - 108; - code = [(value >> 8) + 251, value & 0xFF]; - } else if (value >= -32768 && value <= 32767) { - code = [0x1c, (value >> 8) & 0xFF, value & 0xFF]; - } else { - code = [0x1d, - (value >> 24) & 0xFF, - (value >> 16) & 0xFF, - (value >> 8) & 0xFF, - value & 0xFF]; - } - return code; - }, - compileHeader: function CFFCompiler_compileHeader(header) { - return [ - header.major, - header.minor, - header.hdrSize, - header.offSize - ]; - }, - compileNameIndex: function CFFCompiler_compileNameIndex(names) { - var nameIndex = new CFFIndex(); - for (var i = 0, ii = names.length; i < ii; ++i) { - nameIndex.add(stringToBytes(names[i])); - } - return this.compileIndex(nameIndex); - }, - compileTopDicts: function CFFCompiler_compileTopDicts(dicts, - length, - removeCidKeys) { - var fontDictTrackers = []; - var fdArrayIndex = new CFFIndex(); - for (var i = 0, ii = dicts.length; i < ii; ++i) { - var fontDict = dicts[i]; - if (removeCidKeys) { - fontDict.removeByName('CIDFontVersion'); - fontDict.removeByName('CIDFontRevision'); - fontDict.removeByName('CIDFontType'); - fontDict.removeByName('CIDCount'); - fontDict.removeByName('UIDBase'); - } - var fontDictTracker = new CFFOffsetTracker(); - var fontDictData = this.compileDict(fontDict, fontDictTracker); - fontDictTrackers.push(fontDictTracker); - fdArrayIndex.add(fontDictData); - fontDictTracker.offset(length); - } - fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers); - return { - trackers: fontDictTrackers, - output: fdArrayIndex - }; - }, - compilePrivateDicts: function CFFCompiler_compilePrivateDicts(dicts, - trackers, - output) { - for (var i = 0, ii = dicts.length; i < ii; ++i) { - var fontDict = dicts[i]; - assert(fontDict.privateDict && fontDict.hasName('Private'), - 'There must be an private dictionary.'); - var privateDict = fontDict.privateDict; - var privateDictTracker = new CFFOffsetTracker(); - var privateDictData = this.compileDict(privateDict, privateDictTracker); - - var outputLength = output.length; - privateDictTracker.offset(outputLength); - if (!privateDictData.length) { - // The private dictionary was empty, set the output length to zero to - // ensure the offset length isn't out of bounds in the eyes of the - // sanitizer. - outputLength = 0; - } - - trackers[i].setEntryLocation('Private', - [privateDictData.length, outputLength], - output); - output.add(privateDictData); - - if (privateDict.subrsIndex && privateDict.hasName('Subrs')) { - var subrs = this.compileIndex(privateDict.subrsIndex); - privateDictTracker.setEntryLocation('Subrs', [privateDictData.length], - output); - output.add(subrs); - } - } - }, - compileDict: function CFFCompiler_compileDict(dict, offsetTracker) { - var out = []; - // The dictionary keys must be in a certain order. - var order = dict.order; - for (var i = 0; i < order.length; ++i) { - var key = order[i]; - if (!(key in dict.values)) { - continue; - } - var values = dict.values[key]; - var types = dict.types[key]; - if (!isArray(types)) { - types = [types]; - } - if (!isArray(values)) { - values = [values]; - } - - // Remove any empty dict values. - if (values.length === 0) { - continue; - } - - for (var j = 0, jj = types.length; j < jj; ++j) { - var type = types[j]; - var value = values[j]; - switch (type) { - case 'num': - case 'sid': - out = out.concat(this.encodeNumber(value)); - break; - case 'offset': - // For offsets we just insert a 32bit integer so we don't have to - // deal with figuring out the length of the offset when it gets - // replaced later on by the compiler. - var name = dict.keyToNameMap[key]; - // Some offsets have the offset and the length, so just record the - // position of the first one. - if (!offsetTracker.isTracking(name)) { - offsetTracker.track(name, out.length); - } - out = out.concat([0x1d, 0, 0, 0, 0]); - break; - case 'array': - case 'delta': - out = out.concat(this.encodeNumber(value)); - for (var k = 1, kk = values.length; k < kk; ++k) { - out = out.concat(this.encodeNumber(values[k])); - } - break; - default: - error('Unknown data type of ' + type); - break; - } - } - out = out.concat(dict.opcodes[key]); - } - return out; - }, - compileStringIndex: function CFFCompiler_compileStringIndex(strings) { - var stringIndex = new CFFIndex(); - for (var i = 0, ii = strings.length; i < ii; ++i) { - stringIndex.add(stringToBytes(strings[i])); - } - return this.compileIndex(stringIndex); - }, - compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() { - var globalSubrIndex = this.cff.globalSubrIndex; - this.out.writeByteArray(this.compileIndex(globalSubrIndex)); - }, - compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) { - return this.compileIndex(charStrings); - }, - compileCharset: function CFFCompiler_compileCharset(charset) { - return this.compileTypedArray(charset.raw); - }, - compileEncoding: function CFFCompiler_compileEncoding(encoding) { - return this.compileTypedArray(encoding.raw); - }, - compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) { - return this.compileTypedArray(fdSelect); - }, - compileTypedArray: function CFFCompiler_compileTypedArray(data) { - var out = []; - for (var i = 0, ii = data.length; i < ii; ++i) { - out[i] = data[i]; - } - return out; - }, - compileIndex: function CFFCompiler_compileIndex(index, trackers) { - trackers = trackers || []; - var objects = index.objects; - // First 2 bytes contains the number of objects contained into this index - var count = objects.length; - - // If there is no object, just create an index. This technically - // should just be [0, 0] but OTS has an issue with that. - if (count === 0) { - return [0, 0, 0]; - } - - var data = [(count >> 8) & 0xFF, count & 0xff]; - - var lastOffset = 1, i; - for (i = 0; i < count; ++i) { - lastOffset += objects[i].length; - } - - var offsetSize; - if (lastOffset < 0x100) { - offsetSize = 1; - } else if (lastOffset < 0x10000) { - offsetSize = 2; - } else if (lastOffset < 0x1000000) { - offsetSize = 3; - } else { - offsetSize = 4; - } - - // Next byte contains the offset size use to reference object in the file - data.push(offsetSize); - - // Add another offset after this one because we need a new offset - var relativeOffset = 1; - for (i = 0; i < count + 1; i++) { - if (offsetSize === 1) { - data.push(relativeOffset & 0xFF); - } else if (offsetSize === 2) { - data.push((relativeOffset >> 8) & 0xFF, - relativeOffset & 0xFF); - } else if (offsetSize === 3) { - data.push((relativeOffset >> 16) & 0xFF, - (relativeOffset >> 8) & 0xFF, - relativeOffset & 0xFF); - } else { - data.push((relativeOffset >>> 24) & 0xFF, - (relativeOffset >> 16) & 0xFF, - (relativeOffset >> 8) & 0xFF, - relativeOffset & 0xFF); - } - - if (objects[i]) { - relativeOffset += objects[i].length; - } - } - - for (i = 0; i < count; i++) { - // Notify the tracker where the object will be offset in the data. - if (trackers[i]) { - trackers[i].offset(data.length); - } - for (var j = 0, jj = objects[i].length; j < jj; j++) { - data.push(objects[i][j]); - } - } - return data; - } - }; - return CFFCompiler; -})(); - -// Workaround for seac on Windows. -(function checkSeacSupport() { - if (/Windows/.test(navigator.userAgent)) { - SEAC_ANALYSIS_ENABLED = true; - } -})(); - -// Workaround for Private Use Area characters in Chrome on Windows -// http://code.google.com/p/chromium/issues/detail?id=122465 -// https://github.com/mozilla/pdf.js/issues/1689 -(function checkChromeWindows() { - if (/Windows.*Chrome/.test(navigator.userAgent)) { - SKIP_PRIVATE_USE_RANGE_F000_TO_F01F = true; - } -})(); - - -var FontRendererFactory = (function FontRendererFactoryClosure() { - function getLong(data, offset) { - return (data[offset] << 24) | (data[offset + 1] << 16) | - (data[offset + 2] << 8) | data[offset + 3]; - } - - function getUshort(data, offset) { - return (data[offset] << 8) | data[offset + 1]; - } - - function parseCmap(data, start, end) { - var offset = (getUshort(data, start + 2) === 1 ? - getLong(data, start + 8) : getLong(data, start + 16)); - var format = getUshort(data, start + offset); - var length, ranges, p, i; - if (format === 4) { - length = getUshort(data, start + offset + 2); - var segCount = getUshort(data, start + offset + 6) >> 1; - p = start + offset + 14; - ranges = []; - for (i = 0; i < segCount; i++, p += 2) { - ranges[i] = {end: getUshort(data, p)}; - } - p += 2; - for (i = 0; i < segCount; i++, p += 2) { - ranges[i].start = getUshort(data, p); - } - for (i = 0; i < segCount; i++, p += 2) { - ranges[i].idDelta = getUshort(data, p); - } - for (i = 0; i < segCount; i++, p += 2) { - var idOffset = getUshort(data, p); - if (idOffset === 0) { - continue; - } - ranges[i].ids = []; - for (var j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) { - ranges[i].ids[j] = getUshort(data, p + idOffset); - idOffset += 2; - } - } - return ranges; - } else if (format === 12) { - length = getLong(data, start + offset + 4); - var groups = getLong(data, start + offset + 12); - p = start + offset + 16; - ranges = []; - for (i = 0; i < groups; i++) { - ranges.push({ - start: getLong(data, p), - end: getLong(data, p + 4), - idDelta: getLong(data, p + 8) - getLong(data, p) - }); - p += 12; - } - return ranges; - } - error('not supported cmap: ' + format); - } - - function parseCff(data, start, end) { - var properties = {}; - var parser = new CFFParser(new Stream(data, start, end - start), - properties); - var cff = parser.parse(); - return { - glyphs: cff.charStrings.objects, - subrs: (cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex && - cff.topDict.privateDict.subrsIndex.objects), - gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects - }; - } - - function parseGlyfTable(glyf, loca, isGlyphLocationsLong) { - var itemSize, itemDecode; - if (isGlyphLocationsLong) { - itemSize = 4; - itemDecode = function fontItemDecodeLong(data, offset) { - return (data[offset] << 24) | (data[offset + 1] << 16) | - (data[offset + 2] << 8) | data[offset + 3]; - }; - } else { - itemSize = 2; - itemDecode = function fontItemDecode(data, offset) { - return (data[offset] << 9) | (data[offset + 1] << 1); - }; - } - var glyphs = []; - var startOffset = itemDecode(loca, 0); - for (var j = itemSize; j < loca.length; j += itemSize) { - var endOffset = itemDecode(loca, j); - glyphs.push(glyf.subarray(startOffset, endOffset)); - startOffset = endOffset; - } - return glyphs; - } - - function lookupCmap(ranges, unicode) { - var code = unicode.charCodeAt(0); - var l = 0, r = ranges.length - 1; - while (l < r) { - var c = (l + r + 1) >> 1; - if (code < ranges[c].start) { - r = c - 1; - } else { - l = c; - } - } - if (ranges[l].start <= code && code <= ranges[l].end) { - return (ranges[l].idDelta + (ranges[l].ids ? - ranges[l].ids[code - ranges[l].start] : code)) & 0xFFFF; - } - return 0; - } - - function compileGlyf(code, js, font) { - function moveTo(x, y) { - js.push('c.moveTo(' + x + ',' + y + ');'); - } - function lineTo(x, y) { - js.push('c.lineTo(' + x + ',' + y + ');'); - } - function quadraticCurveTo(xa, ya, x, y) { - js.push('c.quadraticCurveTo(' + xa + ',' + ya + ',' + - x + ',' + y + ');'); - } - - var i = 0; - var numberOfContours = ((code[i] << 24) | (code[i + 1] << 16)) >> 16; - var flags; - var x = 0, y = 0; - i += 10; - if (numberOfContours < 0) { - // composite glyph - do { - flags = (code[i] << 8) | code[i + 1]; - var glyphIndex = (code[i + 2] << 8) | code[i + 3]; - i += 4; - var arg1, arg2; - if ((flags & 0x01)) { - arg1 = ((code[i] << 24) | (code[i + 1] << 16)) >> 16; - arg2 = ((code[i + 2] << 24) | (code[i + 3] << 16)) >> 16; - i += 4; - } else { - arg1 = code[i++]; arg2 = code[i++]; - } - if ((flags & 0x02)) { - x = arg1; - y = arg2; - } else { - x = 0; y = 0; // TODO "they are points" ? - } - var scaleX = 1, scaleY = 1, scale01 = 0, scale10 = 0; - if ((flags & 0x08)) { - scaleX = - scaleY = ((code[i] << 24) | (code[i + 1] << 16)) / 1073741824; - i += 2; - } else if ((flags & 0x40)) { - scaleX = ((code[i] << 24) | (code[i + 1] << 16)) / 1073741824; - scaleY = ((code[i + 2] << 24) | (code[i + 3] << 16)) / 1073741824; - i += 4; - } else if ((flags & 0x80)) { - scaleX = ((code[i] << 24) | (code[i + 1] << 16)) / 1073741824; - scale01 = ((code[i + 2] << 24) | (code[i + 3] << 16)) / 1073741824; - scale10 = ((code[i + 4] << 24) | (code[i + 5] << 16)) / 1073741824; - scaleY = ((code[i + 6] << 24) | (code[i + 7] << 16)) / 1073741824; - i += 8; - } - var subglyph = font.glyphs[glyphIndex]; - if (subglyph) { - js.push('c.save();'); - js.push('c.transform(' + scaleX + ',' + scale01 + ',' + - scale10 + ',' + scaleY + ',' + x + ',' + y + ');'); - compileGlyf(subglyph, js, font); - js.push('c.restore();'); - } - } while ((flags & 0x20)); - } else { - // simple glyph - var endPtsOfContours = []; - var j, jj; - for (j = 0; j < numberOfContours; j++) { - endPtsOfContours.push((code[i] << 8) | code[i + 1]); - i += 2; - } - var instructionLength = (code[i] << 8) | code[i + 1]; - i += 2 + instructionLength; // skipping the instructions - var numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1; - var points = []; - while (points.length < numberOfPoints) { - flags = code[i++]; - var repeat = 1; - if ((flags & 0x08)) { - repeat += code[i++]; - } - while (repeat-- > 0) { - points.push({flags: flags}); - } - } - for (j = 0; j < numberOfPoints; j++) { - switch (points[j].flags & 0x12) { - case 0x00: - x += ((code[i] << 24) | (code[i + 1] << 16)) >> 16; - i += 2; - break; - case 0x02: - x -= code[i++]; - break; - case 0x12: - x += code[i++]; - break; - } - points[j].x = x; - } - for (j = 0; j < numberOfPoints; j++) { - switch (points[j].flags & 0x24) { - case 0x00: - y += ((code[i] << 24) | (code[i + 1] << 16)) >> 16; - i += 2; - break; - case 0x04: - y -= code[i++]; - break; - case 0x24: - y += code[i++]; - break; - } - points[j].y = y; - } - - var startPoint = 0; - for (i = 0; i < numberOfContours; i++) { - var endPoint = endPtsOfContours[i]; - // contours might have implicit points, which is located in the middle - // between two neighboring off-curve points - var contour = points.slice(startPoint, endPoint + 1); - if ((contour[0].flags & 1)) { - contour.push(contour[0]); // using start point at the contour end - } else if ((contour[contour.length - 1].flags & 1)) { - // first is off-curve point, trying to use one from the end - contour.unshift(contour[contour.length - 1]); - } else { - // start and end are off-curve points, creating implicit one - var p = { - flags: 1, - x: (contour[0].x + contour[contour.length - 1].x) / 2, - y: (contour[0].y + contour[contour.length - 1].y) / 2 - }; - contour.unshift(p); - contour.push(p); - } - moveTo(contour[0].x, contour[0].y); - for (j = 1, jj = contour.length; j < jj; j++) { - if ((contour[j].flags & 1)) { - lineTo(contour[j].x, contour[j].y); - } else if ((contour[j + 1].flags & 1)){ - quadraticCurveTo(contour[j].x, contour[j].y, - contour[j + 1].x, contour[j + 1].y); - j++; - } else { - quadraticCurveTo(contour[j].x, contour[j].y, - (contour[j].x + contour[j + 1].x) / 2, - (contour[j].y + contour[j + 1].y) / 2); - } - } - startPoint = endPoint + 1; - } - } - } - - function compileCharString(code, js, font) { - var stack = []; - var x = 0, y = 0; - var stems = 0; - - function moveTo(x, y) { - js.push('c.moveTo(' + x + ',' + y + ');'); - } - function lineTo(x, y) { - js.push('c.lineTo(' + x + ',' + y + ');'); - } - function bezierCurveTo(x1, y1, x2, y2, x, y) { - js.push('c.bezierCurveTo(' + x1 + ',' + y1 + ',' + x2 + ',' + y2 + ',' + - x + ',' + y + ');'); - } - - function parse(code) { - var i = 0; - while (i < code.length) { - var stackClean = false; - var v = code[i++]; - var xa, xb, ya, yb, y1, y2, y3, n, subrCode; - switch (v) { - case 1: // hstem - stems += stack.length >> 1; - stackClean = true; - break; - case 3: // vstem - stems += stack.length >> 1; - stackClean = true; - break; - case 4: // vmoveto - y += stack.pop(); - moveTo(x, y); - stackClean = true; - break; - case 5: // rlineto - while (stack.length > 0) { - x += stack.shift(); - y += stack.shift(); - lineTo(x, y); - } - break; - case 6: // hlineto - while (stack.length > 0) { - x += stack.shift(); - lineTo(x, y); - if (stack.length === 0) { - break; - } - y += stack.shift(); - lineTo(x, y); - } - break; - case 7: // vlineto - while (stack.length > 0) { - y += stack.shift(); - lineTo(x, y); - if (stack.length === 0) { - break; - } - x += stack.shift(); - lineTo(x, y); - } - break; - case 8: // rrcurveto - while (stack.length > 0) { - xa = x + stack.shift(); ya = y + stack.shift(); - xb = xa + stack.shift(); yb = ya + stack.shift(); - x = xb + stack.shift(); y = yb + stack.shift(); - bezierCurveTo(xa, ya, xb, yb, x, y); - } - break; - case 10: // callsubr - n = stack.pop() + font.subrsBias; - subrCode = font.subrs[n]; - if (subrCode) { - parse(subrCode); - } - break; - case 11: // return - return; - case 12: - v = code[i++]; - switch (v) { - case 34: // flex - xa = x + stack.shift(); - xb = xa + stack.shift(); y1 = y + stack.shift(); - x = xb + stack.shift(); - bezierCurveTo(xa, y, xb, y1, x, y1); - xa = x + stack.shift(); - xb = xa + stack.shift(); - x = xb + stack.shift(); - bezierCurveTo(xa, y1, xb, y, x, y); - break; - case 35: // flex - xa = x + stack.shift(); ya = y + stack.shift(); - xb = xa + stack.shift(); yb = ya + stack.shift(); - x = xb + stack.shift(); y = yb + stack.shift(); - bezierCurveTo(xa, ya, xb, yb, x, y); - xa = x + stack.shift(); ya = y + stack.shift(); - xb = xa + stack.shift(); yb = ya + stack.shift(); - x = xb + stack.shift(); y = yb + stack.shift(); - bezierCurveTo(xa, ya, xb, yb, x, y); - stack.pop(); // fd - break; - case 36: // hflex1 - xa = x + stack.shift(); y1 = y + stack.shift(); - xb = xa + stack.shift(); y2 = y1 + stack.shift(); - x = xb + stack.shift(); - bezierCurveTo(xa, y1, xb, y2, x, y2); - xa = x + stack.shift(); - xb = xa + stack.shift(); y3 = y2 + stack.shift(); - x = xb + stack.shift(); - bezierCurveTo(xa, y2, xb, y3, x, y); - break; - case 37: // flex1 - var x0 = x, y0 = y; - xa = x + stack.shift(); ya = y + stack.shift(); - xb = xa + stack.shift(); yb = ya + stack.shift(); - x = xb + stack.shift(); y = yb + stack.shift(); - bezierCurveTo(xa, ya, xb, yb, x, y); - xa = x + stack.shift(); ya = y + stack.shift(); - xb = xa + stack.shift(); yb = ya + stack.shift(); - x = xb; y = yb; - if (Math.abs(x - x0) > Math.abs(y - y0)) { - x += stack.shift(); - } else { - y += stack.shift(); - } - bezierCurveTo(xa, ya, xb, yb, x, y); - break; - default: - error('unknown operator: 12 ' + v); - } - break; - case 14: // endchar - if (stack.length >= 4) { - var achar = stack.pop(); - var bchar = stack.pop(); - y = stack.pop(); - x = stack.pop(); - js.push('c.save();'); - js.push('c.translate('+ x + ',' + y + ');'); - var gid = lookupCmap(font.cmap, String.fromCharCode( - font.glyphNameMap[Encodings.StandardEncoding[achar]])); - compileCharString(font.glyphs[gid], js, font); - js.push('c.restore();'); - - gid = lookupCmap(font.cmap, String.fromCharCode( - font.glyphNameMap[Encodings.StandardEncoding[bchar]])); - compileCharString(font.glyphs[gid], js, font); - } - return; - case 18: // hstemhm - stems += stack.length >> 1; - stackClean = true; - break; - case 19: // hintmask - stems += stack.length >> 1; - i += (stems + 7) >> 3; - stackClean = true; - break; - case 20: // cntrmask - stems += stack.length >> 1; - i += (stems + 7) >> 3; - stackClean = true; - break; - case 21: // rmoveto - y += stack.pop(); - x += stack.pop(); - moveTo(x, y); - stackClean = true; - break; - case 22: // hmoveto - x += stack.pop(); - moveTo(x, y); - stackClean = true; - break; - case 23: // vstemhm - stems += stack.length >> 1; - stackClean = true; - break; - case 24: // rcurveline - while (stack.length > 2) { - xa = x + stack.shift(); ya = y + stack.shift(); - xb = xa + stack.shift(); yb = ya + stack.shift(); - x = xb + stack.shift(); y = yb + stack.shift(); - bezierCurveTo(xa, ya, xb, yb, x, y); - } - x += stack.shift(); - y += stack.shift(); - lineTo(x, y); - break; - case 25: // rlinecurve - while (stack.length > 6) { - x += stack.shift(); - y += stack.shift(); - lineTo(x, y); - } - xa = x + stack.shift(); ya = y + stack.shift(); - xb = xa + stack.shift(); yb = ya + stack.shift(); - x = xb + stack.shift(); y = yb + stack.shift(); - bezierCurveTo(xa, ya, xb, yb, x, y); - break; - case 26: // vvcurveto - if (stack.length % 2) { - x += stack.shift(); - } - while (stack.length > 0) { - xa = x; ya = y + stack.shift(); - xb = xa + stack.shift(); yb = ya + stack.shift(); - x = xb; y = yb + stack.shift(); - bezierCurveTo(xa, ya, xb, yb, x, y); - } - break; - case 27: // hhcurveto - if (stack.length % 2) { - y += stack.shift(); - } - while (stack.length > 0) { - xa = x + stack.shift(); ya = y; - xb = xa + stack.shift(); yb = ya + stack.shift(); - x = xb + stack.shift(); y = yb; - bezierCurveTo(xa, ya, xb, yb, x, y); - } - break; - case 28: - stack.push(((code[i] << 24) | (code[i + 1] << 16)) >> 16); - i += 2; - break; - case 29: // callgsubr - n = stack.pop() + font.gsubrsBias; - subrCode = font.gsubrs[n]; - if (subrCode) { - parse(subrCode); - } - break; - case 30: // vhcurveto - while (stack.length > 0) { - xa = x; ya = y + stack.shift(); - xb = xa + stack.shift(); yb = ya + stack.shift(); - x = xb + stack.shift(); - y = yb + (stack.length === 1 ? stack.shift() : 0); - bezierCurveTo(xa, ya, xb, yb, x, y); - if (stack.length === 0) { - break; - } - - xa = x + stack.shift(); ya = y; - xb = xa + stack.shift(); yb = ya + stack.shift(); - y = yb + stack.shift(); - x = xb + (stack.length === 1 ? stack.shift() : 0); - bezierCurveTo(xa, ya, xb, yb, x, y); - } - break; - case 31: // hvcurveto - while (stack.length > 0) { - xa = x + stack.shift(); ya = y; - xb = xa + stack.shift(); yb = ya + stack.shift(); - y = yb + stack.shift(); - x = xb + (stack.length === 1 ? stack.shift() : 0); - bezierCurveTo(xa, ya, xb, yb, x, y); - if (stack.length === 0) { - break; - } - - xa = x; ya = y + stack.shift(); - xb = xa + stack.shift(); yb = ya + stack.shift(); - x = xb + stack.shift(); - y = yb + (stack.length === 1 ? stack.shift() : 0); - bezierCurveTo(xa, ya, xb, yb, x, y); - } - break; - default: - if (v < 32) { - error('unknown operator: ' + v); - } - if (v < 247) { - stack.push(v - 139); - } else if (v < 251) { - stack.push((v - 247) * 256 + code[i++] + 108); - } else if (v < 255) { - stack.push(-(v - 251) * 256 - code[i++] - 108); - } else { - stack.push(((code[i] << 24) | (code[i + 1] << 16) | - (code[i + 2] << 8) | code[i + 3]) / 65536); - i += 4; - } - break; - } - if (stackClean) { - stack.length = 0; - } - } - } - parse(code); - } - - var noop = ''; - - function CompiledFont(fontMatrix) { - this.compiledGlyphs = {}; - this.fontMatrix = fontMatrix; - } - CompiledFont.prototype = { - getPathJs: function (unicode) { - var gid = lookupCmap(this.cmap, unicode); - var fn = this.compiledGlyphs[gid]; - if (!fn) { - this.compiledGlyphs[gid] = fn = this.compileGlyph(this.glyphs[gid]); - } - return fn; - }, - - compileGlyph: function (code) { - if (!code || code.length === 0 || code[0] === 14) { - return noop; - } - - var js = []; - js.push('c.save();'); - js.push('c.transform(' + this.fontMatrix.join(',') + ');'); - js.push('c.scale(size, -size);'); - - this.compileGlyphImpl(code, js); - - js.push('c.restore();'); - - return js.join('\n'); - }, - - compileGlyphImpl: function () { - error('Children classes should implement this.'); - }, - - hasBuiltPath: function (unicode) { - var gid = lookupCmap(this.cmap, unicode); - return gid in this.compiledGlyphs; - } - }; - - function TrueTypeCompiled(glyphs, cmap, fontMatrix) { - fontMatrix = fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]; - CompiledFont.call(this, fontMatrix); - - this.glyphs = glyphs; - this.cmap = cmap; - - this.compiledGlyphs = []; - } - - Util.inherit(TrueTypeCompiled, CompiledFont, { - compileGlyphImpl: function (code, js) { - compileGlyf(code, js, this); - } - }); - - function Type2Compiled(cffInfo, cmap, fontMatrix, glyphNameMap) { - fontMatrix = fontMatrix || [0.001, 0, 0, 0.001, 0, 0]; - CompiledFont.call(this, fontMatrix); - this.glyphs = cffInfo.glyphs; - this.gsubrs = cffInfo.gsubrs || []; - this.subrs = cffInfo.subrs || []; - this.cmap = cmap; - this.glyphNameMap = glyphNameMap || GlyphsUnicode; - - this.compiledGlyphs = []; - this.gsubrsBias = (this.gsubrs.length < 1240 ? - 107 : (this.gsubrs.length < 33900 ? 1131 : 32768)); - this.subrsBias = (this.subrs.length < 1240 ? - 107 : (this.subrs.length < 33900 ? 1131 : 32768)); - } - - Util.inherit(Type2Compiled, CompiledFont, { - compileGlyphImpl: function (code, js) { - compileCharString(code, js, this); - } - }); - - - return { - create: function FontRendererFactory_create(font) { - var data = new Uint8Array(font.data); - var cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm; - var numTables = getUshort(data, 4); - for (var i = 0, p = 12; i < numTables; i++, p += 16) { - var tag = bytesToString(data.subarray(p, p + 4)); - var offset = getLong(data, p + 8); - var length = getLong(data, p + 12); - switch (tag) { - case 'cmap': - cmap = parseCmap(data, offset, offset + length); - break; - case 'glyf': - glyf = data.subarray(offset, offset + length); - break; - case 'loca': - loca = data.subarray(offset, offset + length); - break; - case 'head': - unitsPerEm = getUshort(data, offset + 18); - indexToLocFormat = getUshort(data, offset + 50); - break; - case 'CFF ': - cff = parseCff(data, offset, offset + length); - break; - } - } - - if (glyf) { - var fontMatrix = (!unitsPerEm ? font.fontMatrix : - [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0]); - return new TrueTypeCompiled( - parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix); - } else { - return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap); - } - } - }; -})(); - - -var GlyphsUnicode = { - A: 0x0041, - AE: 0x00C6, - AEacute: 0x01FC, - AEmacron: 0x01E2, - AEsmall: 0xF7E6, - Aacute: 0x00C1, - Aacutesmall: 0xF7E1, - Abreve: 0x0102, - Abreveacute: 0x1EAE, - Abrevecyrillic: 0x04D0, - Abrevedotbelow: 0x1EB6, - Abrevegrave: 0x1EB0, - Abrevehookabove: 0x1EB2, - Abrevetilde: 0x1EB4, - Acaron: 0x01CD, - Acircle: 0x24B6, - Acircumflex: 0x00C2, - Acircumflexacute: 0x1EA4, - Acircumflexdotbelow: 0x1EAC, - Acircumflexgrave: 0x1EA6, - Acircumflexhookabove: 0x1EA8, - Acircumflexsmall: 0xF7E2, - Acircumflextilde: 0x1EAA, - Acute: 0xF6C9, - Acutesmall: 0xF7B4, - Acyrillic: 0x0410, - Adblgrave: 0x0200, - Adieresis: 0x00C4, - Adieresiscyrillic: 0x04D2, - Adieresismacron: 0x01DE, - Adieresissmall: 0xF7E4, - Adotbelow: 0x1EA0, - Adotmacron: 0x01E0, - Agrave: 0x00C0, - Agravesmall: 0xF7E0, - Ahookabove: 0x1EA2, - Aiecyrillic: 0x04D4, - Ainvertedbreve: 0x0202, - Alpha: 0x0391, - Alphatonos: 0x0386, - Amacron: 0x0100, - Amonospace: 0xFF21, - Aogonek: 0x0104, - Aring: 0x00C5, - Aringacute: 0x01FA, - Aringbelow: 0x1E00, - Aringsmall: 0xF7E5, - Asmall: 0xF761, - Atilde: 0x00C3, - Atildesmall: 0xF7E3, - Aybarmenian: 0x0531, - B: 0x0042, - Bcircle: 0x24B7, - Bdotaccent: 0x1E02, - Bdotbelow: 0x1E04, - Becyrillic: 0x0411, - Benarmenian: 0x0532, - Beta: 0x0392, - Bhook: 0x0181, - Blinebelow: 0x1E06, - Bmonospace: 0xFF22, - Brevesmall: 0xF6F4, - Bsmall: 0xF762, - Btopbar: 0x0182, - C: 0x0043, - Caarmenian: 0x053E, - Cacute: 0x0106, - Caron: 0xF6CA, - Caronsmall: 0xF6F5, - Ccaron: 0x010C, - Ccedilla: 0x00C7, - Ccedillaacute: 0x1E08, - Ccedillasmall: 0xF7E7, - Ccircle: 0x24B8, - Ccircumflex: 0x0108, - Cdot: 0x010A, - Cdotaccent: 0x010A, - Cedillasmall: 0xF7B8, - Chaarmenian: 0x0549, - Cheabkhasiancyrillic: 0x04BC, - Checyrillic: 0x0427, - Chedescenderabkhasiancyrillic: 0x04BE, - Chedescendercyrillic: 0x04B6, - Chedieresiscyrillic: 0x04F4, - Cheharmenian: 0x0543, - Chekhakassiancyrillic: 0x04CB, - Cheverticalstrokecyrillic: 0x04B8, - Chi: 0x03A7, - Chook: 0x0187, - Circumflexsmall: 0xF6F6, - Cmonospace: 0xFF23, - Coarmenian: 0x0551, - Csmall: 0xF763, - D: 0x0044, - DZ: 0x01F1, - DZcaron: 0x01C4, - Daarmenian: 0x0534, - Dafrican: 0x0189, - Dcaron: 0x010E, - Dcedilla: 0x1E10, - Dcircle: 0x24B9, - Dcircumflexbelow: 0x1E12, - Dcroat: 0x0110, - Ddotaccent: 0x1E0A, - Ddotbelow: 0x1E0C, - Decyrillic: 0x0414, - Deicoptic: 0x03EE, - Delta: 0x2206, - Deltagreek: 0x0394, - Dhook: 0x018A, - Dieresis: 0xF6CB, - DieresisAcute: 0xF6CC, - DieresisGrave: 0xF6CD, - Dieresissmall: 0xF7A8, - Digammagreek: 0x03DC, - Djecyrillic: 0x0402, - Dlinebelow: 0x1E0E, - Dmonospace: 0xFF24, - Dotaccentsmall: 0xF6F7, - Dslash: 0x0110, - Dsmall: 0xF764, - Dtopbar: 0x018B, - Dz: 0x01F2, - Dzcaron: 0x01C5, - Dzeabkhasiancyrillic: 0x04E0, - Dzecyrillic: 0x0405, - Dzhecyrillic: 0x040F, - E: 0x0045, - Eacute: 0x00C9, - Eacutesmall: 0xF7E9, - Ebreve: 0x0114, - Ecaron: 0x011A, - Ecedillabreve: 0x1E1C, - Echarmenian: 0x0535, - Ecircle: 0x24BA, - Ecircumflex: 0x00CA, - Ecircumflexacute: 0x1EBE, - Ecircumflexbelow: 0x1E18, - Ecircumflexdotbelow: 0x1EC6, - Ecircumflexgrave: 0x1EC0, - Ecircumflexhookabove: 0x1EC2, - Ecircumflexsmall: 0xF7EA, - Ecircumflextilde: 0x1EC4, - Ecyrillic: 0x0404, - Edblgrave: 0x0204, - Edieresis: 0x00CB, - Edieresissmall: 0xF7EB, - Edot: 0x0116, - Edotaccent: 0x0116, - Edotbelow: 0x1EB8, - Efcyrillic: 0x0424, - Egrave: 0x00C8, - Egravesmall: 0xF7E8, - Eharmenian: 0x0537, - Ehookabove: 0x1EBA, - Eightroman: 0x2167, - Einvertedbreve: 0x0206, - Eiotifiedcyrillic: 0x0464, - Elcyrillic: 0x041B, - Elevenroman: 0x216A, - Emacron: 0x0112, - Emacronacute: 0x1E16, - Emacrongrave: 0x1E14, - Emcyrillic: 0x041C, - Emonospace: 0xFF25, - Encyrillic: 0x041D, - Endescendercyrillic: 0x04A2, - Eng: 0x014A, - Enghecyrillic: 0x04A4, - Enhookcyrillic: 0x04C7, - Eogonek: 0x0118, - Eopen: 0x0190, - Epsilon: 0x0395, - Epsilontonos: 0x0388, - Ercyrillic: 0x0420, - Ereversed: 0x018E, - Ereversedcyrillic: 0x042D, - Escyrillic: 0x0421, - Esdescendercyrillic: 0x04AA, - Esh: 0x01A9, - Esmall: 0xF765, - Eta: 0x0397, - Etarmenian: 0x0538, - Etatonos: 0x0389, - Eth: 0x00D0, - Ethsmall: 0xF7F0, - Etilde: 0x1EBC, - Etildebelow: 0x1E1A, - Euro: 0x20AC, - Ezh: 0x01B7, - Ezhcaron: 0x01EE, - Ezhreversed: 0x01B8, - F: 0x0046, - Fcircle: 0x24BB, - Fdotaccent: 0x1E1E, - Feharmenian: 0x0556, - Feicoptic: 0x03E4, - Fhook: 0x0191, - Fitacyrillic: 0x0472, - Fiveroman: 0x2164, - Fmonospace: 0xFF26, - Fourroman: 0x2163, - Fsmall: 0xF766, - G: 0x0047, - GBsquare: 0x3387, - Gacute: 0x01F4, - Gamma: 0x0393, - Gammaafrican: 0x0194, - Gangiacoptic: 0x03EA, - Gbreve: 0x011E, - Gcaron: 0x01E6, - Gcedilla: 0x0122, - Gcircle: 0x24BC, - Gcircumflex: 0x011C, - Gcommaaccent: 0x0122, - Gdot: 0x0120, - Gdotaccent: 0x0120, - Gecyrillic: 0x0413, - Ghadarmenian: 0x0542, - Ghemiddlehookcyrillic: 0x0494, - Ghestrokecyrillic: 0x0492, - Gheupturncyrillic: 0x0490, - Ghook: 0x0193, - Gimarmenian: 0x0533, - Gjecyrillic: 0x0403, - Gmacron: 0x1E20, - Gmonospace: 0xFF27, - Grave: 0xF6CE, - Gravesmall: 0xF760, - Gsmall: 0xF767, - Gsmallhook: 0x029B, - Gstroke: 0x01E4, - H: 0x0048, - H18533: 0x25CF, - H18543: 0x25AA, - H18551: 0x25AB, - H22073: 0x25A1, - HPsquare: 0x33CB, - Haabkhasiancyrillic: 0x04A8, - Hadescendercyrillic: 0x04B2, - Hardsigncyrillic: 0x042A, - Hbar: 0x0126, - Hbrevebelow: 0x1E2A, - Hcedilla: 0x1E28, - Hcircle: 0x24BD, - Hcircumflex: 0x0124, - Hdieresis: 0x1E26, - Hdotaccent: 0x1E22, - Hdotbelow: 0x1E24, - Hmonospace: 0xFF28, - Hoarmenian: 0x0540, - Horicoptic: 0x03E8, - Hsmall: 0xF768, - Hungarumlaut: 0xF6CF, - Hungarumlautsmall: 0xF6F8, - Hzsquare: 0x3390, - I: 0x0049, - IAcyrillic: 0x042F, - IJ: 0x0132, - IUcyrillic: 0x042E, - Iacute: 0x00CD, - Iacutesmall: 0xF7ED, - Ibreve: 0x012C, - Icaron: 0x01CF, - Icircle: 0x24BE, - Icircumflex: 0x00CE, - Icircumflexsmall: 0xF7EE, - Icyrillic: 0x0406, - Idblgrave: 0x0208, - Idieresis: 0x00CF, - Idieresisacute: 0x1E2E, - Idieresiscyrillic: 0x04E4, - Idieresissmall: 0xF7EF, - Idot: 0x0130, - Idotaccent: 0x0130, - Idotbelow: 0x1ECA, - Iebrevecyrillic: 0x04D6, - Iecyrillic: 0x0415, - Ifraktur: 0x2111, - Igrave: 0x00CC, - Igravesmall: 0xF7EC, - Ihookabove: 0x1EC8, - Iicyrillic: 0x0418, - Iinvertedbreve: 0x020A, - Iishortcyrillic: 0x0419, - Imacron: 0x012A, - Imacroncyrillic: 0x04E2, - Imonospace: 0xFF29, - Iniarmenian: 0x053B, - Iocyrillic: 0x0401, - Iogonek: 0x012E, - Iota: 0x0399, - Iotaafrican: 0x0196, - Iotadieresis: 0x03AA, - Iotatonos: 0x038A, - Ismall: 0xF769, - Istroke: 0x0197, - Itilde: 0x0128, - Itildebelow: 0x1E2C, - Izhitsacyrillic: 0x0474, - Izhitsadblgravecyrillic: 0x0476, - J: 0x004A, - Jaarmenian: 0x0541, - Jcircle: 0x24BF, - Jcircumflex: 0x0134, - Jecyrillic: 0x0408, - Jheharmenian: 0x054B, - Jmonospace: 0xFF2A, - Jsmall: 0xF76A, - K: 0x004B, - KBsquare: 0x3385, - KKsquare: 0x33CD, - Kabashkircyrillic: 0x04A0, - Kacute: 0x1E30, - Kacyrillic: 0x041A, - Kadescendercyrillic: 0x049A, - Kahookcyrillic: 0x04C3, - Kappa: 0x039A, - Kastrokecyrillic: 0x049E, - Kaverticalstrokecyrillic: 0x049C, - Kcaron: 0x01E8, - Kcedilla: 0x0136, - Kcircle: 0x24C0, - Kcommaaccent: 0x0136, - Kdotbelow: 0x1E32, - Keharmenian: 0x0554, - Kenarmenian: 0x053F, - Khacyrillic: 0x0425, - Kheicoptic: 0x03E6, - Khook: 0x0198, - Kjecyrillic: 0x040C, - Klinebelow: 0x1E34, - Kmonospace: 0xFF2B, - Koppacyrillic: 0x0480, - Koppagreek: 0x03DE, - Ksicyrillic: 0x046E, - Ksmall: 0xF76B, - L: 0x004C, - LJ: 0x01C7, - LL: 0xF6BF, - Lacute: 0x0139, - Lambda: 0x039B, - Lcaron: 0x013D, - Lcedilla: 0x013B, - Lcircle: 0x24C1, - Lcircumflexbelow: 0x1E3C, - Lcommaaccent: 0x013B, - Ldot: 0x013F, - Ldotaccent: 0x013F, - Ldotbelow: 0x1E36, - Ldotbelowmacron: 0x1E38, - Liwnarmenian: 0x053C, - Lj: 0x01C8, - Ljecyrillic: 0x0409, - Llinebelow: 0x1E3A, - Lmonospace: 0xFF2C, - Lslash: 0x0141, - Lslashsmall: 0xF6F9, - Lsmall: 0xF76C, - M: 0x004D, - MBsquare: 0x3386, - Macron: 0xF6D0, - Macronsmall: 0xF7AF, - Macute: 0x1E3E, - Mcircle: 0x24C2, - Mdotaccent: 0x1E40, - Mdotbelow: 0x1E42, - Menarmenian: 0x0544, - Mmonospace: 0xFF2D, - Msmall: 0xF76D, - Mturned: 0x019C, - Mu: 0x039C, - N: 0x004E, - NJ: 0x01CA, - Nacute: 0x0143, - Ncaron: 0x0147, - Ncedilla: 0x0145, - Ncircle: 0x24C3, - Ncircumflexbelow: 0x1E4A, - Ncommaaccent: 0x0145, - Ndotaccent: 0x1E44, - Ndotbelow: 0x1E46, - Nhookleft: 0x019D, - Nineroman: 0x2168, - Nj: 0x01CB, - Njecyrillic: 0x040A, - Nlinebelow: 0x1E48, - Nmonospace: 0xFF2E, - Nowarmenian: 0x0546, - Nsmall: 0xF76E, - Ntilde: 0x00D1, - Ntildesmall: 0xF7F1, - Nu: 0x039D, - O: 0x004F, - OE: 0x0152, - OEsmall: 0xF6FA, - Oacute: 0x00D3, - Oacutesmall: 0xF7F3, - Obarredcyrillic: 0x04E8, - Obarreddieresiscyrillic: 0x04EA, - Obreve: 0x014E, - Ocaron: 0x01D1, - Ocenteredtilde: 0x019F, - Ocircle: 0x24C4, - Ocircumflex: 0x00D4, - Ocircumflexacute: 0x1ED0, - Ocircumflexdotbelow: 0x1ED8, - Ocircumflexgrave: 0x1ED2, - Ocircumflexhookabove: 0x1ED4, - Ocircumflexsmall: 0xF7F4, - Ocircumflextilde: 0x1ED6, - Ocyrillic: 0x041E, - Odblacute: 0x0150, - Odblgrave: 0x020C, - Odieresis: 0x00D6, - Odieresiscyrillic: 0x04E6, - Odieresissmall: 0xF7F6, - Odotbelow: 0x1ECC, - Ogoneksmall: 0xF6FB, - Ograve: 0x00D2, - Ogravesmall: 0xF7F2, - Oharmenian: 0x0555, - Ohm: 0x2126, - Ohookabove: 0x1ECE, - Ohorn: 0x01A0, - Ohornacute: 0x1EDA, - Ohorndotbelow: 0x1EE2, - Ohorngrave: 0x1EDC, - Ohornhookabove: 0x1EDE, - Ohorntilde: 0x1EE0, - Ohungarumlaut: 0x0150, - Oi: 0x01A2, - Oinvertedbreve: 0x020E, - Omacron: 0x014C, - Omacronacute: 0x1E52, - Omacrongrave: 0x1E50, - Omega: 0x2126, - Omegacyrillic: 0x0460, - Omegagreek: 0x03A9, - Omegaroundcyrillic: 0x047A, - Omegatitlocyrillic: 0x047C, - Omegatonos: 0x038F, - Omicron: 0x039F, - Omicrontonos: 0x038C, - Omonospace: 0xFF2F, - Oneroman: 0x2160, - Oogonek: 0x01EA, - Oogonekmacron: 0x01EC, - Oopen: 0x0186, - Oslash: 0x00D8, - Oslashacute: 0x01FE, - Oslashsmall: 0xF7F8, - Osmall: 0xF76F, - Ostrokeacute: 0x01FE, - Otcyrillic: 0x047E, - Otilde: 0x00D5, - Otildeacute: 0x1E4C, - Otildedieresis: 0x1E4E, - Otildesmall: 0xF7F5, - P: 0x0050, - Pacute: 0x1E54, - Pcircle: 0x24C5, - Pdotaccent: 0x1E56, - Pecyrillic: 0x041F, - Peharmenian: 0x054A, - Pemiddlehookcyrillic: 0x04A6, - Phi: 0x03A6, - Phook: 0x01A4, - Pi: 0x03A0, - Piwrarmenian: 0x0553, - Pmonospace: 0xFF30, - Psi: 0x03A8, - Psicyrillic: 0x0470, - Psmall: 0xF770, - Q: 0x0051, - Qcircle: 0x24C6, - Qmonospace: 0xFF31, - Qsmall: 0xF771, - R: 0x0052, - Raarmenian: 0x054C, - Racute: 0x0154, - Rcaron: 0x0158, - Rcedilla: 0x0156, - Rcircle: 0x24C7, - Rcommaaccent: 0x0156, - Rdblgrave: 0x0210, - Rdotaccent: 0x1E58, - Rdotbelow: 0x1E5A, - Rdotbelowmacron: 0x1E5C, - Reharmenian: 0x0550, - Rfraktur: 0x211C, - Rho: 0x03A1, - Ringsmall: 0xF6FC, - Rinvertedbreve: 0x0212, - Rlinebelow: 0x1E5E, - Rmonospace: 0xFF32, - Rsmall: 0xF772, - Rsmallinverted: 0x0281, - Rsmallinvertedsuperior: 0x02B6, - S: 0x0053, - SF010000: 0x250C, - SF020000: 0x2514, - SF030000: 0x2510, - SF040000: 0x2518, - SF050000: 0x253C, - SF060000: 0x252C, - SF070000: 0x2534, - SF080000: 0x251C, - SF090000: 0x2524, - SF100000: 0x2500, - SF110000: 0x2502, - SF190000: 0x2561, - SF200000: 0x2562, - SF210000: 0x2556, - SF220000: 0x2555, - SF230000: 0x2563, - SF240000: 0x2551, - SF250000: 0x2557, - SF260000: 0x255D, - SF270000: 0x255C, - SF280000: 0x255B, - SF360000: 0x255E, - SF370000: 0x255F, - SF380000: 0x255A, - SF390000: 0x2554, - SF400000: 0x2569, - SF410000: 0x2566, - SF420000: 0x2560, - SF430000: 0x2550, - SF440000: 0x256C, - SF450000: 0x2567, - SF460000: 0x2568, - SF470000: 0x2564, - SF480000: 0x2565, - SF490000: 0x2559, - SF500000: 0x2558, - SF510000: 0x2552, - SF520000: 0x2553, - SF530000: 0x256B, - SF540000: 0x256A, - Sacute: 0x015A, - Sacutedotaccent: 0x1E64, - Sampigreek: 0x03E0, - Scaron: 0x0160, - Scarondotaccent: 0x1E66, - Scaronsmall: 0xF6FD, - Scedilla: 0x015E, - Schwa: 0x018F, - Schwacyrillic: 0x04D8, - Schwadieresiscyrillic: 0x04DA, - Scircle: 0x24C8, - Scircumflex: 0x015C, - Scommaaccent: 0x0218, - Sdotaccent: 0x1E60, - Sdotbelow: 0x1E62, - Sdotbelowdotaccent: 0x1E68, - Seharmenian: 0x054D, - Sevenroman: 0x2166, - Shaarmenian: 0x0547, - Shacyrillic: 0x0428, - Shchacyrillic: 0x0429, - Sheicoptic: 0x03E2, - Shhacyrillic: 0x04BA, - Shimacoptic: 0x03EC, - Sigma: 0x03A3, - Sixroman: 0x2165, - Smonospace: 0xFF33, - Softsigncyrillic: 0x042C, - Ssmall: 0xF773, - Stigmagreek: 0x03DA, - T: 0x0054, - Tau: 0x03A4, - Tbar: 0x0166, - Tcaron: 0x0164, - Tcedilla: 0x0162, - Tcircle: 0x24C9, - Tcircumflexbelow: 0x1E70, - Tcommaaccent: 0x0162, - Tdotaccent: 0x1E6A, - Tdotbelow: 0x1E6C, - Tecyrillic: 0x0422, - Tedescendercyrillic: 0x04AC, - Tenroman: 0x2169, - Tetsecyrillic: 0x04B4, - Theta: 0x0398, - Thook: 0x01AC, - Thorn: 0x00DE, - Thornsmall: 0xF7FE, - Threeroman: 0x2162, - Tildesmall: 0xF6FE, - Tiwnarmenian: 0x054F, - Tlinebelow: 0x1E6E, - Tmonospace: 0xFF34, - Toarmenian: 0x0539, - Tonefive: 0x01BC, - Tonesix: 0x0184, - Tonetwo: 0x01A7, - Tretroflexhook: 0x01AE, - Tsecyrillic: 0x0426, - Tshecyrillic: 0x040B, - Tsmall: 0xF774, - Twelveroman: 0x216B, - Tworoman: 0x2161, - U: 0x0055, - Uacute: 0x00DA, - Uacutesmall: 0xF7FA, - Ubreve: 0x016C, - Ucaron: 0x01D3, - Ucircle: 0x24CA, - Ucircumflex: 0x00DB, - Ucircumflexbelow: 0x1E76, - Ucircumflexsmall: 0xF7FB, - Ucyrillic: 0x0423, - Udblacute: 0x0170, - Udblgrave: 0x0214, - Udieresis: 0x00DC, - Udieresisacute: 0x01D7, - Udieresisbelow: 0x1E72, - Udieresiscaron: 0x01D9, - Udieresiscyrillic: 0x04F0, - Udieresisgrave: 0x01DB, - Udieresismacron: 0x01D5, - Udieresissmall: 0xF7FC, - Udotbelow: 0x1EE4, - Ugrave: 0x00D9, - Ugravesmall: 0xF7F9, - Uhookabove: 0x1EE6, - Uhorn: 0x01AF, - Uhornacute: 0x1EE8, - Uhorndotbelow: 0x1EF0, - Uhorngrave: 0x1EEA, - Uhornhookabove: 0x1EEC, - Uhorntilde: 0x1EEE, - Uhungarumlaut: 0x0170, - Uhungarumlautcyrillic: 0x04F2, - Uinvertedbreve: 0x0216, - Ukcyrillic: 0x0478, - Umacron: 0x016A, - Umacroncyrillic: 0x04EE, - Umacrondieresis: 0x1E7A, - Umonospace: 0xFF35, - Uogonek: 0x0172, - Upsilon: 0x03A5, - Upsilon1: 0x03D2, - Upsilonacutehooksymbolgreek: 0x03D3, - Upsilonafrican: 0x01B1, - Upsilondieresis: 0x03AB, - Upsilondieresishooksymbolgreek: 0x03D4, - Upsilonhooksymbol: 0x03D2, - Upsilontonos: 0x038E, - Uring: 0x016E, - Ushortcyrillic: 0x040E, - Usmall: 0xF775, - Ustraightcyrillic: 0x04AE, - Ustraightstrokecyrillic: 0x04B0, - Utilde: 0x0168, - Utildeacute: 0x1E78, - Utildebelow: 0x1E74, - V: 0x0056, - Vcircle: 0x24CB, - Vdotbelow: 0x1E7E, - Vecyrillic: 0x0412, - Vewarmenian: 0x054E, - Vhook: 0x01B2, - Vmonospace: 0xFF36, - Voarmenian: 0x0548, - Vsmall: 0xF776, - Vtilde: 0x1E7C, - W: 0x0057, - Wacute: 0x1E82, - Wcircle: 0x24CC, - Wcircumflex: 0x0174, - Wdieresis: 0x1E84, - Wdotaccent: 0x1E86, - Wdotbelow: 0x1E88, - Wgrave: 0x1E80, - Wmonospace: 0xFF37, - Wsmall: 0xF777, - X: 0x0058, - Xcircle: 0x24CD, - Xdieresis: 0x1E8C, - Xdotaccent: 0x1E8A, - Xeharmenian: 0x053D, - Xi: 0x039E, - Xmonospace: 0xFF38, - Xsmall: 0xF778, - Y: 0x0059, - Yacute: 0x00DD, - Yacutesmall: 0xF7FD, - Yatcyrillic: 0x0462, - Ycircle: 0x24CE, - Ycircumflex: 0x0176, - Ydieresis: 0x0178, - Ydieresissmall: 0xF7FF, - Ydotaccent: 0x1E8E, - Ydotbelow: 0x1EF4, - Yericyrillic: 0x042B, - Yerudieresiscyrillic: 0x04F8, - Ygrave: 0x1EF2, - Yhook: 0x01B3, - Yhookabove: 0x1EF6, - Yiarmenian: 0x0545, - Yicyrillic: 0x0407, - Yiwnarmenian: 0x0552, - Ymonospace: 0xFF39, - Ysmall: 0xF779, - Ytilde: 0x1EF8, - Yusbigcyrillic: 0x046A, - Yusbigiotifiedcyrillic: 0x046C, - Yuslittlecyrillic: 0x0466, - Yuslittleiotifiedcyrillic: 0x0468, - Z: 0x005A, - Zaarmenian: 0x0536, - Zacute: 0x0179, - Zcaron: 0x017D, - Zcaronsmall: 0xF6FF, - Zcircle: 0x24CF, - Zcircumflex: 0x1E90, - Zdot: 0x017B, - Zdotaccent: 0x017B, - Zdotbelow: 0x1E92, - Zecyrillic: 0x0417, - Zedescendercyrillic: 0x0498, - Zedieresiscyrillic: 0x04DE, - Zeta: 0x0396, - Zhearmenian: 0x053A, - Zhebrevecyrillic: 0x04C1, - Zhecyrillic: 0x0416, - Zhedescendercyrillic: 0x0496, - Zhedieresiscyrillic: 0x04DC, - Zlinebelow: 0x1E94, - Zmonospace: 0xFF3A, - Zsmall: 0xF77A, - Zstroke: 0x01B5, - a: 0x0061, - aabengali: 0x0986, - aacute: 0x00E1, - aadeva: 0x0906, - aagujarati: 0x0A86, - aagurmukhi: 0x0A06, - aamatragurmukhi: 0x0A3E, - aarusquare: 0x3303, - aavowelsignbengali: 0x09BE, - aavowelsigndeva: 0x093E, - aavowelsigngujarati: 0x0ABE, - abbreviationmarkarmenian: 0x055F, - abbreviationsigndeva: 0x0970, - abengali: 0x0985, - abopomofo: 0x311A, - abreve: 0x0103, - abreveacute: 0x1EAF, - abrevecyrillic: 0x04D1, - abrevedotbelow: 0x1EB7, - abrevegrave: 0x1EB1, - abrevehookabove: 0x1EB3, - abrevetilde: 0x1EB5, - acaron: 0x01CE, - acircle: 0x24D0, - acircumflex: 0x00E2, - acircumflexacute: 0x1EA5, - acircumflexdotbelow: 0x1EAD, - acircumflexgrave: 0x1EA7, - acircumflexhookabove: 0x1EA9, - acircumflextilde: 0x1EAB, - acute: 0x00B4, - acutebelowcmb: 0x0317, - acutecmb: 0x0301, - acutecomb: 0x0301, - acutedeva: 0x0954, - acutelowmod: 0x02CF, - acutetonecmb: 0x0341, - acyrillic: 0x0430, - adblgrave: 0x0201, - addakgurmukhi: 0x0A71, - adeva: 0x0905, - adieresis: 0x00E4, - adieresiscyrillic: 0x04D3, - adieresismacron: 0x01DF, - adotbelow: 0x1EA1, - adotmacron: 0x01E1, - ae: 0x00E6, - aeacute: 0x01FD, - aekorean: 0x3150, - aemacron: 0x01E3, - afii00208: 0x2015, - afii08941: 0x20A4, - afii10017: 0x0410, - afii10018: 0x0411, - afii10019: 0x0412, - afii10020: 0x0413, - afii10021: 0x0414, - afii10022: 0x0415, - afii10023: 0x0401, - afii10024: 0x0416, - afii10025: 0x0417, - afii10026: 0x0418, - afii10027: 0x0419, - afii10028: 0x041A, - afii10029: 0x041B, - afii10030: 0x041C, - afii10031: 0x041D, - afii10032: 0x041E, - afii10033: 0x041F, - afii10034: 0x0420, - afii10035: 0x0421, - afii10036: 0x0422, - afii10037: 0x0423, - afii10038: 0x0424, - afii10039: 0x0425, - afii10040: 0x0426, - afii10041: 0x0427, - afii10042: 0x0428, - afii10043: 0x0429, - afii10044: 0x042A, - afii10045: 0x042B, - afii10046: 0x042C, - afii10047: 0x042D, - afii10048: 0x042E, - afii10049: 0x042F, - afii10050: 0x0490, - afii10051: 0x0402, - afii10052: 0x0403, - afii10053: 0x0404, - afii10054: 0x0405, - afii10055: 0x0406, - afii10056: 0x0407, - afii10057: 0x0408, - afii10058: 0x0409, - afii10059: 0x040A, - afii10060: 0x040B, - afii10061: 0x040C, - afii10062: 0x040E, - afii10063: 0xF6C4, - afii10064: 0xF6C5, - afii10065: 0x0430, - afii10066: 0x0431, - afii10067: 0x0432, - afii10068: 0x0433, - afii10069: 0x0434, - afii10070: 0x0435, - afii10071: 0x0451, - afii10072: 0x0436, - afii10073: 0x0437, - afii10074: 0x0438, - afii10075: 0x0439, - afii10076: 0x043A, - afii10077: 0x043B, - afii10078: 0x043C, - afii10079: 0x043D, - afii10080: 0x043E, - afii10081: 0x043F, - afii10082: 0x0440, - afii10083: 0x0441, - afii10084: 0x0442, - afii10085: 0x0443, - afii10086: 0x0444, - afii10087: 0x0445, - afii10088: 0x0446, - afii10089: 0x0447, - afii10090: 0x0448, - afii10091: 0x0449, - afii10092: 0x044A, - afii10093: 0x044B, - afii10094: 0x044C, - afii10095: 0x044D, - afii10096: 0x044E, - afii10097: 0x044F, - afii10098: 0x0491, - afii10099: 0x0452, - afii10100: 0x0453, - afii10101: 0x0454, - afii10102: 0x0455, - afii10103: 0x0456, - afii10104: 0x0457, - afii10105: 0x0458, - afii10106: 0x0459, - afii10107: 0x045A, - afii10108: 0x045B, - afii10109: 0x045C, - afii10110: 0x045E, - afii10145: 0x040F, - afii10146: 0x0462, - afii10147: 0x0472, - afii10148: 0x0474, - afii10192: 0xF6C6, - afii10193: 0x045F, - afii10194: 0x0463, - afii10195: 0x0473, - afii10196: 0x0475, - afii10831: 0xF6C7, - afii10832: 0xF6C8, - afii10846: 0x04D9, - afii299: 0x200E, - afii300: 0x200F, - afii301: 0x200D, - afii57381: 0x066A, - afii57388: 0x060C, - afii57392: 0x0660, - afii57393: 0x0661, - afii57394: 0x0662, - afii57395: 0x0663, - afii57396: 0x0664, - afii57397: 0x0665, - afii57398: 0x0666, - afii57399: 0x0667, - afii57400: 0x0668, - afii57401: 0x0669, - afii57403: 0x061B, - afii57407: 0x061F, - afii57409: 0x0621, - afii57410: 0x0622, - afii57411: 0x0623, - afii57412: 0x0624, - afii57413: 0x0625, - afii57414: 0x0626, - afii57415: 0x0627, - afii57416: 0x0628, - afii57417: 0x0629, - afii57418: 0x062A, - afii57419: 0x062B, - afii57420: 0x062C, - afii57421: 0x062D, - afii57422: 0x062E, - afii57423: 0x062F, - afii57424: 0x0630, - afii57425: 0x0631, - afii57426: 0x0632, - afii57427: 0x0633, - afii57428: 0x0634, - afii57429: 0x0635, - afii57430: 0x0636, - afii57431: 0x0637, - afii57432: 0x0638, - afii57433: 0x0639, - afii57434: 0x063A, - afii57440: 0x0640, - afii57441: 0x0641, - afii57442: 0x0642, - afii57443: 0x0643, - afii57444: 0x0644, - afii57445: 0x0645, - afii57446: 0x0646, - afii57448: 0x0648, - afii57449: 0x0649, - afii57450: 0x064A, - afii57451: 0x064B, - afii57452: 0x064C, - afii57453: 0x064D, - afii57454: 0x064E, - afii57455: 0x064F, - afii57456: 0x0650, - afii57457: 0x0651, - afii57458: 0x0652, - afii57470: 0x0647, - afii57505: 0x06A4, - afii57506: 0x067E, - afii57507: 0x0686, - afii57508: 0x0698, - afii57509: 0x06AF, - afii57511: 0x0679, - afii57512: 0x0688, - afii57513: 0x0691, - afii57514: 0x06BA, - afii57519: 0x06D2, - afii57534: 0x06D5, - afii57636: 0x20AA, - afii57645: 0x05BE, - afii57658: 0x05C3, - afii57664: 0x05D0, - afii57665: 0x05D1, - afii57666: 0x05D2, - afii57667: 0x05D3, - afii57668: 0x05D4, - afii57669: 0x05D5, - afii57670: 0x05D6, - afii57671: 0x05D7, - afii57672: 0x05D8, - afii57673: 0x05D9, - afii57674: 0x05DA, - afii57675: 0x05DB, - afii57676: 0x05DC, - afii57677: 0x05DD, - afii57678: 0x05DE, - afii57679: 0x05DF, - afii57680: 0x05E0, - afii57681: 0x05E1, - afii57682: 0x05E2, - afii57683: 0x05E3, - afii57684: 0x05E4, - afii57685: 0x05E5, - afii57686: 0x05E6, - afii57687: 0x05E7, - afii57688: 0x05E8, - afii57689: 0x05E9, - afii57690: 0x05EA, - afii57694: 0xFB2A, - afii57695: 0xFB2B, - afii57700: 0xFB4B, - afii57705: 0xFB1F, - afii57716: 0x05F0, - afii57717: 0x05F1, - afii57718: 0x05F2, - afii57723: 0xFB35, - afii57793: 0x05B4, - afii57794: 0x05B5, - afii57795: 0x05B6, - afii57796: 0x05BB, - afii57797: 0x05B8, - afii57798: 0x05B7, - afii57799: 0x05B0, - afii57800: 0x05B2, - afii57801: 0x05B1, - afii57802: 0x05B3, - afii57803: 0x05C2, - afii57804: 0x05C1, - afii57806: 0x05B9, - afii57807: 0x05BC, - afii57839: 0x05BD, - afii57841: 0x05BF, - afii57842: 0x05C0, - afii57929: 0x02BC, - afii61248: 0x2105, - afii61289: 0x2113, - afii61352: 0x2116, - afii61573: 0x202C, - afii61574: 0x202D, - afii61575: 0x202E, - afii61664: 0x200C, - afii63167: 0x066D, - afii64937: 0x02BD, - agrave: 0x00E0, - agujarati: 0x0A85, - agurmukhi: 0x0A05, - ahiragana: 0x3042, - ahookabove: 0x1EA3, - aibengali: 0x0990, - aibopomofo: 0x311E, - aideva: 0x0910, - aiecyrillic: 0x04D5, - aigujarati: 0x0A90, - aigurmukhi: 0x0A10, - aimatragurmukhi: 0x0A48, - ainarabic: 0x0639, - ainfinalarabic: 0xFECA, - aininitialarabic: 0xFECB, - ainmedialarabic: 0xFECC, - ainvertedbreve: 0x0203, - aivowelsignbengali: 0x09C8, - aivowelsigndeva: 0x0948, - aivowelsigngujarati: 0x0AC8, - akatakana: 0x30A2, - akatakanahalfwidth: 0xFF71, - akorean: 0x314F, - alef: 0x05D0, - alefarabic: 0x0627, - alefdageshhebrew: 0xFB30, - aleffinalarabic: 0xFE8E, - alefhamzaabovearabic: 0x0623, - alefhamzaabovefinalarabic: 0xFE84, - alefhamzabelowarabic: 0x0625, - alefhamzabelowfinalarabic: 0xFE88, - alefhebrew: 0x05D0, - aleflamedhebrew: 0xFB4F, - alefmaddaabovearabic: 0x0622, - alefmaddaabovefinalarabic: 0xFE82, - alefmaksuraarabic: 0x0649, - alefmaksurafinalarabic: 0xFEF0, - alefmaksurainitialarabic: 0xFEF3, - alefmaksuramedialarabic: 0xFEF4, - alefpatahhebrew: 0xFB2E, - alefqamatshebrew: 0xFB2F, - aleph: 0x2135, - allequal: 0x224C, - alpha: 0x03B1, - alphatonos: 0x03AC, - amacron: 0x0101, - amonospace: 0xFF41, - ampersand: 0x0026, - ampersandmonospace: 0xFF06, - ampersandsmall: 0xF726, - amsquare: 0x33C2, - anbopomofo: 0x3122, - angbopomofo: 0x3124, - angbracketleft: 0x3008, // This glyph is missing from Adobe's original list. - angbracketright: 0x3009, // This glyph is missing from Adobe's original list. - angkhankhuthai: 0x0E5A, - angle: 0x2220, - anglebracketleft: 0x3008, - anglebracketleftvertical: 0xFE3F, - anglebracketright: 0x3009, - anglebracketrightvertical: 0xFE40, - angleleft: 0x2329, - angleright: 0x232A, - angstrom: 0x212B, - anoteleia: 0x0387, - anudattadeva: 0x0952, - anusvarabengali: 0x0982, - anusvaradeva: 0x0902, - anusvaragujarati: 0x0A82, - aogonek: 0x0105, - apaatosquare: 0x3300, - aparen: 0x249C, - apostrophearmenian: 0x055A, - apostrophemod: 0x02BC, - apple: 0xF8FF, - approaches: 0x2250, - approxequal: 0x2248, - approxequalorimage: 0x2252, - approximatelyequal: 0x2245, - araeaekorean: 0x318E, - araeakorean: 0x318D, - arc: 0x2312, - arighthalfring: 0x1E9A, - aring: 0x00E5, - aringacute: 0x01FB, - aringbelow: 0x1E01, - arrowboth: 0x2194, - arrowdashdown: 0x21E3, - arrowdashleft: 0x21E0, - arrowdashright: 0x21E2, - arrowdashup: 0x21E1, - arrowdblboth: 0x21D4, - arrowdbldown: 0x21D3, - arrowdblleft: 0x21D0, - arrowdblright: 0x21D2, - arrowdblup: 0x21D1, - arrowdown: 0x2193, - arrowdownleft: 0x2199, - arrowdownright: 0x2198, - arrowdownwhite: 0x21E9, - arrowheaddownmod: 0x02C5, - arrowheadleftmod: 0x02C2, - arrowheadrightmod: 0x02C3, - arrowheadupmod: 0x02C4, - arrowhorizex: 0xF8E7, - arrowleft: 0x2190, - arrowleftdbl: 0x21D0, - arrowleftdblstroke: 0x21CD, - arrowleftoverright: 0x21C6, - arrowleftwhite: 0x21E6, - arrowright: 0x2192, - arrowrightdblstroke: 0x21CF, - arrowrightheavy: 0x279E, - arrowrightoverleft: 0x21C4, - arrowrightwhite: 0x21E8, - arrowtableft: 0x21E4, - arrowtabright: 0x21E5, - arrowup: 0x2191, - arrowupdn: 0x2195, - arrowupdnbse: 0x21A8, - arrowupdownbase: 0x21A8, - arrowupleft: 0x2196, - arrowupleftofdown: 0x21C5, - arrowupright: 0x2197, - arrowupwhite: 0x21E7, - arrowvertex: 0xF8E6, - asciicircum: 0x005E, - asciicircummonospace: 0xFF3E, - asciitilde: 0x007E, - asciitildemonospace: 0xFF5E, - ascript: 0x0251, - ascriptturned: 0x0252, - asmallhiragana: 0x3041, - asmallkatakana: 0x30A1, - asmallkatakanahalfwidth: 0xFF67, - asterisk: 0x002A, - asteriskaltonearabic: 0x066D, - asteriskarabic: 0x066D, - asteriskmath: 0x2217, - asteriskmonospace: 0xFF0A, - asterisksmall: 0xFE61, - asterism: 0x2042, - asuperior: 0xF6E9, - asymptoticallyequal: 0x2243, - at: 0x0040, - atilde: 0x00E3, - atmonospace: 0xFF20, - atsmall: 0xFE6B, - aturned: 0x0250, - aubengali: 0x0994, - aubopomofo: 0x3120, - audeva: 0x0914, - augujarati: 0x0A94, - augurmukhi: 0x0A14, - aulengthmarkbengali: 0x09D7, - aumatragurmukhi: 0x0A4C, - auvowelsignbengali: 0x09CC, - auvowelsigndeva: 0x094C, - auvowelsigngujarati: 0x0ACC, - avagrahadeva: 0x093D, - aybarmenian: 0x0561, - ayin: 0x05E2, - ayinaltonehebrew: 0xFB20, - ayinhebrew: 0x05E2, - b: 0x0062, - babengali: 0x09AC, - backslash: 0x005C, - backslashmonospace: 0xFF3C, - badeva: 0x092C, - bagujarati: 0x0AAC, - bagurmukhi: 0x0A2C, - bahiragana: 0x3070, - bahtthai: 0x0E3F, - bakatakana: 0x30D0, - bar: 0x007C, - barmonospace: 0xFF5C, - bbopomofo: 0x3105, - bcircle: 0x24D1, - bdotaccent: 0x1E03, - bdotbelow: 0x1E05, - beamedsixteenthnotes: 0x266C, - because: 0x2235, - becyrillic: 0x0431, - beharabic: 0x0628, - behfinalarabic: 0xFE90, - behinitialarabic: 0xFE91, - behiragana: 0x3079, - behmedialarabic: 0xFE92, - behmeeminitialarabic: 0xFC9F, - behmeemisolatedarabic: 0xFC08, - behnoonfinalarabic: 0xFC6D, - bekatakana: 0x30D9, - benarmenian: 0x0562, - bet: 0x05D1, - beta: 0x03B2, - betasymbolgreek: 0x03D0, - betdagesh: 0xFB31, - betdageshhebrew: 0xFB31, - bethebrew: 0x05D1, - betrafehebrew: 0xFB4C, - bhabengali: 0x09AD, - bhadeva: 0x092D, - bhagujarati: 0x0AAD, - bhagurmukhi: 0x0A2D, - bhook: 0x0253, - bihiragana: 0x3073, - bikatakana: 0x30D3, - bilabialclick: 0x0298, - bindigurmukhi: 0x0A02, - birusquare: 0x3331, - blackcircle: 0x25CF, - blackdiamond: 0x25C6, - blackdownpointingtriangle: 0x25BC, - blackleftpointingpointer: 0x25C4, - blackleftpointingtriangle: 0x25C0, - blacklenticularbracketleft: 0x3010, - blacklenticularbracketleftvertical: 0xFE3B, - blacklenticularbracketright: 0x3011, - blacklenticularbracketrightvertical: 0xFE3C, - blacklowerlefttriangle: 0x25E3, - blacklowerrighttriangle: 0x25E2, - blackrectangle: 0x25AC, - blackrightpointingpointer: 0x25BA, - blackrightpointingtriangle: 0x25B6, - blacksmallsquare: 0x25AA, - blacksmilingface: 0x263B, - blacksquare: 0x25A0, - blackstar: 0x2605, - blackupperlefttriangle: 0x25E4, - blackupperrighttriangle: 0x25E5, - blackuppointingsmalltriangle: 0x25B4, - blackuppointingtriangle: 0x25B2, - blank: 0x2423, - blinebelow: 0x1E07, - block: 0x2588, - bmonospace: 0xFF42, - bobaimaithai: 0x0E1A, - bohiragana: 0x307C, - bokatakana: 0x30DC, - bparen: 0x249D, - bqsquare: 0x33C3, - braceex: 0xF8F4, - braceleft: 0x007B, - braceleftbt: 0xF8F3, - braceleftmid: 0xF8F2, - braceleftmonospace: 0xFF5B, - braceleftsmall: 0xFE5B, - bracelefttp: 0xF8F1, - braceleftvertical: 0xFE37, - braceright: 0x007D, - bracerightbt: 0xF8FE, - bracerightmid: 0xF8FD, - bracerightmonospace: 0xFF5D, - bracerightsmall: 0xFE5C, - bracerighttp: 0xF8FC, - bracerightvertical: 0xFE38, - bracketleft: 0x005B, - bracketleftbt: 0xF8F0, - bracketleftex: 0xF8EF, - bracketleftmonospace: 0xFF3B, - bracketlefttp: 0xF8EE, - bracketright: 0x005D, - bracketrightbt: 0xF8FB, - bracketrightex: 0xF8FA, - bracketrightmonospace: 0xFF3D, - bracketrighttp: 0xF8F9, - breve: 0x02D8, - brevebelowcmb: 0x032E, - brevecmb: 0x0306, - breveinvertedbelowcmb: 0x032F, - breveinvertedcmb: 0x0311, - breveinverteddoublecmb: 0x0361, - bridgebelowcmb: 0x032A, - bridgeinvertedbelowcmb: 0x033A, - brokenbar: 0x00A6, - bstroke: 0x0180, - bsuperior: 0xF6EA, - btopbar: 0x0183, - buhiragana: 0x3076, - bukatakana: 0x30D6, - bullet: 0x2022, - bulletinverse: 0x25D8, - bulletoperator: 0x2219, - bullseye: 0x25CE, - c: 0x0063, - caarmenian: 0x056E, - cabengali: 0x099A, - cacute: 0x0107, - cadeva: 0x091A, - cagujarati: 0x0A9A, - cagurmukhi: 0x0A1A, - calsquare: 0x3388, - candrabindubengali: 0x0981, - candrabinducmb: 0x0310, - candrabindudeva: 0x0901, - candrabindugujarati: 0x0A81, - capslock: 0x21EA, - careof: 0x2105, - caron: 0x02C7, - caronbelowcmb: 0x032C, - caroncmb: 0x030C, - carriagereturn: 0x21B5, - cbopomofo: 0x3118, - ccaron: 0x010D, - ccedilla: 0x00E7, - ccedillaacute: 0x1E09, - ccircle: 0x24D2, - ccircumflex: 0x0109, - ccurl: 0x0255, - cdot: 0x010B, - cdotaccent: 0x010B, - cdsquare: 0x33C5, - cedilla: 0x00B8, - cedillacmb: 0x0327, - cent: 0x00A2, - centigrade: 0x2103, - centinferior: 0xF6DF, - centmonospace: 0xFFE0, - centoldstyle: 0xF7A2, - centsuperior: 0xF6E0, - chaarmenian: 0x0579, - chabengali: 0x099B, - chadeva: 0x091B, - chagujarati: 0x0A9B, - chagurmukhi: 0x0A1B, - chbopomofo: 0x3114, - cheabkhasiancyrillic: 0x04BD, - checkmark: 0x2713, - checyrillic: 0x0447, - chedescenderabkhasiancyrillic: 0x04BF, - chedescendercyrillic: 0x04B7, - chedieresiscyrillic: 0x04F5, - cheharmenian: 0x0573, - chekhakassiancyrillic: 0x04CC, - cheverticalstrokecyrillic: 0x04B9, - chi: 0x03C7, - chieuchacirclekorean: 0x3277, - chieuchaparenkorean: 0x3217, - chieuchcirclekorean: 0x3269, - chieuchkorean: 0x314A, - chieuchparenkorean: 0x3209, - chochangthai: 0x0E0A, - chochanthai: 0x0E08, - chochingthai: 0x0E09, - chochoethai: 0x0E0C, - chook: 0x0188, - cieucacirclekorean: 0x3276, - cieucaparenkorean: 0x3216, - cieuccirclekorean: 0x3268, - cieuckorean: 0x3148, - cieucparenkorean: 0x3208, - cieucuparenkorean: 0x321C, - circle: 0x25CB, - circlecopyrt: 0x00A9, // This glyph is missing from Adobe's original list. - circlemultiply: 0x2297, - circleot: 0x2299, - circleplus: 0x2295, - circlepostalmark: 0x3036, - circlewithlefthalfblack: 0x25D0, - circlewithrighthalfblack: 0x25D1, - circumflex: 0x02C6, - circumflexbelowcmb: 0x032D, - circumflexcmb: 0x0302, - clear: 0x2327, - clickalveolar: 0x01C2, - clickdental: 0x01C0, - clicklateral: 0x01C1, - clickretroflex: 0x01C3, - club: 0x2663, - clubsuitblack: 0x2663, - clubsuitwhite: 0x2667, - cmcubedsquare: 0x33A4, - cmonospace: 0xFF43, - cmsquaredsquare: 0x33A0, - coarmenian: 0x0581, - colon: 0x003A, - colonmonetary: 0x20A1, - colonmonospace: 0xFF1A, - colonsign: 0x20A1, - colonsmall: 0xFE55, - colontriangularhalfmod: 0x02D1, - colontriangularmod: 0x02D0, - comma: 0x002C, - commaabovecmb: 0x0313, - commaaboverightcmb: 0x0315, - commaaccent: 0xF6C3, - commaarabic: 0x060C, - commaarmenian: 0x055D, - commainferior: 0xF6E1, - commamonospace: 0xFF0C, - commareversedabovecmb: 0x0314, - commareversedmod: 0x02BD, - commasmall: 0xFE50, - commasuperior: 0xF6E2, - commaturnedabovecmb: 0x0312, - commaturnedmod: 0x02BB, - compass: 0x263C, - congruent: 0x2245, - contourintegral: 0x222E, - control: 0x2303, - controlACK: 0x0006, - controlBEL: 0x0007, - controlBS: 0x0008, - controlCAN: 0x0018, - controlCR: 0x000D, - controlDC1: 0x0011, - controlDC2: 0x0012, - controlDC3: 0x0013, - controlDC4: 0x0014, - controlDEL: 0x007F, - controlDLE: 0x0010, - controlEM: 0x0019, - controlENQ: 0x0005, - controlEOT: 0x0004, - controlESC: 0x001B, - controlETB: 0x0017, - controlETX: 0x0003, - controlFF: 0x000C, - controlFS: 0x001C, - controlGS: 0x001D, - controlHT: 0x0009, - controlLF: 0x000A, - controlNAK: 0x0015, - controlRS: 0x001E, - controlSI: 0x000F, - controlSO: 0x000E, - controlSOT: 0x0002, - controlSTX: 0x0001, - controlSUB: 0x001A, - controlSYN: 0x0016, - controlUS: 0x001F, - controlVT: 0x000B, - copyright: 0x00A9, - copyrightsans: 0xF8E9, - copyrightserif: 0xF6D9, - cornerbracketleft: 0x300C, - cornerbracketlefthalfwidth: 0xFF62, - cornerbracketleftvertical: 0xFE41, - cornerbracketright: 0x300D, - cornerbracketrighthalfwidth: 0xFF63, - cornerbracketrightvertical: 0xFE42, - corporationsquare: 0x337F, - cosquare: 0x33C7, - coverkgsquare: 0x33C6, - cparen: 0x249E, - cruzeiro: 0x20A2, - cstretched: 0x0297, - curlyand: 0x22CF, - curlyor: 0x22CE, - currency: 0x00A4, - cyrBreve: 0xF6D1, - cyrFlex: 0xF6D2, - cyrbreve: 0xF6D4, - cyrflex: 0xF6D5, - d: 0x0064, - daarmenian: 0x0564, - dabengali: 0x09A6, - dadarabic: 0x0636, - dadeva: 0x0926, - dadfinalarabic: 0xFEBE, - dadinitialarabic: 0xFEBF, - dadmedialarabic: 0xFEC0, - dagesh: 0x05BC, - dageshhebrew: 0x05BC, - dagger: 0x2020, - daggerdbl: 0x2021, - dagujarati: 0x0AA6, - dagurmukhi: 0x0A26, - dahiragana: 0x3060, - dakatakana: 0x30C0, - dalarabic: 0x062F, - dalet: 0x05D3, - daletdagesh: 0xFB33, - daletdageshhebrew: 0xFB33, - dalethebrew: 0x05D3, - dalfinalarabic: 0xFEAA, - dammaarabic: 0x064F, - dammalowarabic: 0x064F, - dammatanaltonearabic: 0x064C, - dammatanarabic: 0x064C, - danda: 0x0964, - dargahebrew: 0x05A7, - dargalefthebrew: 0x05A7, - dasiapneumatacyrilliccmb: 0x0485, - dblGrave: 0xF6D3, - dblanglebracketleft: 0x300A, - dblanglebracketleftvertical: 0xFE3D, - dblanglebracketright: 0x300B, - dblanglebracketrightvertical: 0xFE3E, - dblarchinvertedbelowcmb: 0x032B, - dblarrowleft: 0x21D4, - dblarrowright: 0x21D2, - dbldanda: 0x0965, - dblgrave: 0xF6D6, - dblgravecmb: 0x030F, - dblintegral: 0x222C, - dbllowline: 0x2017, - dbllowlinecmb: 0x0333, - dbloverlinecmb: 0x033F, - dblprimemod: 0x02BA, - dblverticalbar: 0x2016, - dblverticallineabovecmb: 0x030E, - dbopomofo: 0x3109, - dbsquare: 0x33C8, - dcaron: 0x010F, - dcedilla: 0x1E11, - dcircle: 0x24D3, - dcircumflexbelow: 0x1E13, - dcroat: 0x0111, - ddabengali: 0x09A1, - ddadeva: 0x0921, - ddagujarati: 0x0AA1, - ddagurmukhi: 0x0A21, - ddalarabic: 0x0688, - ddalfinalarabic: 0xFB89, - dddhadeva: 0x095C, - ddhabengali: 0x09A2, - ddhadeva: 0x0922, - ddhagujarati: 0x0AA2, - ddhagurmukhi: 0x0A22, - ddotaccent: 0x1E0B, - ddotbelow: 0x1E0D, - decimalseparatorarabic: 0x066B, - decimalseparatorpersian: 0x066B, - decyrillic: 0x0434, - degree: 0x00B0, - dehihebrew: 0x05AD, - dehiragana: 0x3067, - deicoptic: 0x03EF, - dekatakana: 0x30C7, - deleteleft: 0x232B, - deleteright: 0x2326, - delta: 0x03B4, - deltaturned: 0x018D, - denominatorminusonenumeratorbengali: 0x09F8, - dezh: 0x02A4, - dhabengali: 0x09A7, - dhadeva: 0x0927, - dhagujarati: 0x0AA7, - dhagurmukhi: 0x0A27, - dhook: 0x0257, - dialytikatonos: 0x0385, - dialytikatonoscmb: 0x0344, - diamond: 0x2666, - diamondsuitwhite: 0x2662, - dieresis: 0x00A8, - dieresisacute: 0xF6D7, - dieresisbelowcmb: 0x0324, - dieresiscmb: 0x0308, - dieresisgrave: 0xF6D8, - dieresistonos: 0x0385, - dihiragana: 0x3062, - dikatakana: 0x30C2, - dittomark: 0x3003, - divide: 0x00F7, - divides: 0x2223, - divisionslash: 0x2215, - djecyrillic: 0x0452, - dkshade: 0x2593, - dlinebelow: 0x1E0F, - dlsquare: 0x3397, - dmacron: 0x0111, - dmonospace: 0xFF44, - dnblock: 0x2584, - dochadathai: 0x0E0E, - dodekthai: 0x0E14, - dohiragana: 0x3069, - dokatakana: 0x30C9, - dollar: 0x0024, - dollarinferior: 0xF6E3, - dollarmonospace: 0xFF04, - dollaroldstyle: 0xF724, - dollarsmall: 0xFE69, - dollarsuperior: 0xF6E4, - dong: 0x20AB, - dorusquare: 0x3326, - dotaccent: 0x02D9, - dotaccentcmb: 0x0307, - dotbelowcmb: 0x0323, - dotbelowcomb: 0x0323, - dotkatakana: 0x30FB, - dotlessi: 0x0131, - dotlessj: 0xF6BE, - dotlessjstrokehook: 0x0284, - dotmath: 0x22C5, - dottedcircle: 0x25CC, - doubleyodpatah: 0xFB1F, - doubleyodpatahhebrew: 0xFB1F, - downtackbelowcmb: 0x031E, - downtackmod: 0x02D5, - dparen: 0x249F, - dsuperior: 0xF6EB, - dtail: 0x0256, - dtopbar: 0x018C, - duhiragana: 0x3065, - dukatakana: 0x30C5, - dz: 0x01F3, - dzaltone: 0x02A3, - dzcaron: 0x01C6, - dzcurl: 0x02A5, - dzeabkhasiancyrillic: 0x04E1, - dzecyrillic: 0x0455, - dzhecyrillic: 0x045F, - e: 0x0065, - eacute: 0x00E9, - earth: 0x2641, - ebengali: 0x098F, - ebopomofo: 0x311C, - ebreve: 0x0115, - ecandradeva: 0x090D, - ecandragujarati: 0x0A8D, - ecandravowelsigndeva: 0x0945, - ecandravowelsigngujarati: 0x0AC5, - ecaron: 0x011B, - ecedillabreve: 0x1E1D, - echarmenian: 0x0565, - echyiwnarmenian: 0x0587, - ecircle: 0x24D4, - ecircumflex: 0x00EA, - ecircumflexacute: 0x1EBF, - ecircumflexbelow: 0x1E19, - ecircumflexdotbelow: 0x1EC7, - ecircumflexgrave: 0x1EC1, - ecircumflexhookabove: 0x1EC3, - ecircumflextilde: 0x1EC5, - ecyrillic: 0x0454, - edblgrave: 0x0205, - edeva: 0x090F, - edieresis: 0x00EB, - edot: 0x0117, - edotaccent: 0x0117, - edotbelow: 0x1EB9, - eegurmukhi: 0x0A0F, - eematragurmukhi: 0x0A47, - efcyrillic: 0x0444, - egrave: 0x00E8, - egujarati: 0x0A8F, - eharmenian: 0x0567, - ehbopomofo: 0x311D, - ehiragana: 0x3048, - ehookabove: 0x1EBB, - eibopomofo: 0x311F, - eight: 0x0038, - eightarabic: 0x0668, - eightbengali: 0x09EE, - eightcircle: 0x2467, - eightcircleinversesansserif: 0x2791, - eightdeva: 0x096E, - eighteencircle: 0x2471, - eighteenparen: 0x2485, - eighteenperiod: 0x2499, - eightgujarati: 0x0AEE, - eightgurmukhi: 0x0A6E, - eighthackarabic: 0x0668, - eighthangzhou: 0x3028, - eighthnotebeamed: 0x266B, - eightideographicparen: 0x3227, - eightinferior: 0x2088, - eightmonospace: 0xFF18, - eightoldstyle: 0xF738, - eightparen: 0x247B, - eightperiod: 0x248F, - eightpersian: 0x06F8, - eightroman: 0x2177, - eightsuperior: 0x2078, - eightthai: 0x0E58, - einvertedbreve: 0x0207, - eiotifiedcyrillic: 0x0465, - ekatakana: 0x30A8, - ekatakanahalfwidth: 0xFF74, - ekonkargurmukhi: 0x0A74, - ekorean: 0x3154, - elcyrillic: 0x043B, - element: 0x2208, - elevencircle: 0x246A, - elevenparen: 0x247E, - elevenperiod: 0x2492, - elevenroman: 0x217A, - ellipsis: 0x2026, - ellipsisvertical: 0x22EE, - emacron: 0x0113, - emacronacute: 0x1E17, - emacrongrave: 0x1E15, - emcyrillic: 0x043C, - emdash: 0x2014, - emdashvertical: 0xFE31, - emonospace: 0xFF45, - emphasismarkarmenian: 0x055B, - emptyset: 0x2205, - enbopomofo: 0x3123, - encyrillic: 0x043D, - endash: 0x2013, - endashvertical: 0xFE32, - endescendercyrillic: 0x04A3, - eng: 0x014B, - engbopomofo: 0x3125, - enghecyrillic: 0x04A5, - enhookcyrillic: 0x04C8, - enspace: 0x2002, - eogonek: 0x0119, - eokorean: 0x3153, - eopen: 0x025B, - eopenclosed: 0x029A, - eopenreversed: 0x025C, - eopenreversedclosed: 0x025E, - eopenreversedhook: 0x025D, - eparen: 0x24A0, - epsilon: 0x03B5, - epsilontonos: 0x03AD, - equal: 0x003D, - equalmonospace: 0xFF1D, - equalsmall: 0xFE66, - equalsuperior: 0x207C, - equivalence: 0x2261, - erbopomofo: 0x3126, - ercyrillic: 0x0440, - ereversed: 0x0258, - ereversedcyrillic: 0x044D, - escyrillic: 0x0441, - esdescendercyrillic: 0x04AB, - esh: 0x0283, - eshcurl: 0x0286, - eshortdeva: 0x090E, - eshortvowelsigndeva: 0x0946, - eshreversedloop: 0x01AA, - eshsquatreversed: 0x0285, - esmallhiragana: 0x3047, - esmallkatakana: 0x30A7, - esmallkatakanahalfwidth: 0xFF6A, - estimated: 0x212E, - esuperior: 0xF6EC, - eta: 0x03B7, - etarmenian: 0x0568, - etatonos: 0x03AE, - eth: 0x00F0, - etilde: 0x1EBD, - etildebelow: 0x1E1B, - etnahtafoukhhebrew: 0x0591, - etnahtafoukhlefthebrew: 0x0591, - etnahtahebrew: 0x0591, - etnahtalefthebrew: 0x0591, - eturned: 0x01DD, - eukorean: 0x3161, - euro: 0x20AC, - evowelsignbengali: 0x09C7, - evowelsigndeva: 0x0947, - evowelsigngujarati: 0x0AC7, - exclam: 0x0021, - exclamarmenian: 0x055C, - exclamdbl: 0x203C, - exclamdown: 0x00A1, - exclamdownsmall: 0xF7A1, - exclammonospace: 0xFF01, - exclamsmall: 0xF721, - existential: 0x2203, - ezh: 0x0292, - ezhcaron: 0x01EF, - ezhcurl: 0x0293, - ezhreversed: 0x01B9, - ezhtail: 0x01BA, - f: 0x0066, - fadeva: 0x095E, - fagurmukhi: 0x0A5E, - fahrenheit: 0x2109, - fathaarabic: 0x064E, - fathalowarabic: 0x064E, - fathatanarabic: 0x064B, - fbopomofo: 0x3108, - fcircle: 0x24D5, - fdotaccent: 0x1E1F, - feharabic: 0x0641, - feharmenian: 0x0586, - fehfinalarabic: 0xFED2, - fehinitialarabic: 0xFED3, - fehmedialarabic: 0xFED4, - feicoptic: 0x03E5, - female: 0x2640, - ff: 0xFB00, - ffi: 0xFB03, - ffl: 0xFB04, - fi: 0xFB01, - fifteencircle: 0x246E, - fifteenparen: 0x2482, - fifteenperiod: 0x2496, - figuredash: 0x2012, - filledbox: 0x25A0, - filledrect: 0x25AC, - finalkaf: 0x05DA, - finalkafdagesh: 0xFB3A, - finalkafdageshhebrew: 0xFB3A, - finalkafhebrew: 0x05DA, - finalmem: 0x05DD, - finalmemhebrew: 0x05DD, - finalnun: 0x05DF, - finalnunhebrew: 0x05DF, - finalpe: 0x05E3, - finalpehebrew: 0x05E3, - finaltsadi: 0x05E5, - finaltsadihebrew: 0x05E5, - firsttonechinese: 0x02C9, - fisheye: 0x25C9, - fitacyrillic: 0x0473, - five: 0x0035, - fivearabic: 0x0665, - fivebengali: 0x09EB, - fivecircle: 0x2464, - fivecircleinversesansserif: 0x278E, - fivedeva: 0x096B, - fiveeighths: 0x215D, - fivegujarati: 0x0AEB, - fivegurmukhi: 0x0A6B, - fivehackarabic: 0x0665, - fivehangzhou: 0x3025, - fiveideographicparen: 0x3224, - fiveinferior: 0x2085, - fivemonospace: 0xFF15, - fiveoldstyle: 0xF735, - fiveparen: 0x2478, - fiveperiod: 0x248C, - fivepersian: 0x06F5, - fiveroman: 0x2174, - fivesuperior: 0x2075, - fivethai: 0x0E55, - fl: 0xFB02, - florin: 0x0192, - fmonospace: 0xFF46, - fmsquare: 0x3399, - fofanthai: 0x0E1F, - fofathai: 0x0E1D, - fongmanthai: 0x0E4F, - forall: 0x2200, - four: 0x0034, - fourarabic: 0x0664, - fourbengali: 0x09EA, - fourcircle: 0x2463, - fourcircleinversesansserif: 0x278D, - fourdeva: 0x096A, - fourgujarati: 0x0AEA, - fourgurmukhi: 0x0A6A, - fourhackarabic: 0x0664, - fourhangzhou: 0x3024, - fourideographicparen: 0x3223, - fourinferior: 0x2084, - fourmonospace: 0xFF14, - fournumeratorbengali: 0x09F7, - fouroldstyle: 0xF734, - fourparen: 0x2477, - fourperiod: 0x248B, - fourpersian: 0x06F4, - fourroman: 0x2173, - foursuperior: 0x2074, - fourteencircle: 0x246D, - fourteenparen: 0x2481, - fourteenperiod: 0x2495, - fourthai: 0x0E54, - fourthtonechinese: 0x02CB, - fparen: 0x24A1, - fraction: 0x2044, - franc: 0x20A3, - g: 0x0067, - gabengali: 0x0997, - gacute: 0x01F5, - gadeva: 0x0917, - gafarabic: 0x06AF, - gaffinalarabic: 0xFB93, - gafinitialarabic: 0xFB94, - gafmedialarabic: 0xFB95, - gagujarati: 0x0A97, - gagurmukhi: 0x0A17, - gahiragana: 0x304C, - gakatakana: 0x30AC, - gamma: 0x03B3, - gammalatinsmall: 0x0263, - gammasuperior: 0x02E0, - gangiacoptic: 0x03EB, - gbopomofo: 0x310D, - gbreve: 0x011F, - gcaron: 0x01E7, - gcedilla: 0x0123, - gcircle: 0x24D6, - gcircumflex: 0x011D, - gcommaaccent: 0x0123, - gdot: 0x0121, - gdotaccent: 0x0121, - gecyrillic: 0x0433, - gehiragana: 0x3052, - gekatakana: 0x30B2, - geometricallyequal: 0x2251, - gereshaccenthebrew: 0x059C, - gereshhebrew: 0x05F3, - gereshmuqdamhebrew: 0x059D, - germandbls: 0x00DF, - gershayimaccenthebrew: 0x059E, - gershayimhebrew: 0x05F4, - getamark: 0x3013, - ghabengali: 0x0998, - ghadarmenian: 0x0572, - ghadeva: 0x0918, - ghagujarati: 0x0A98, - ghagurmukhi: 0x0A18, - ghainarabic: 0x063A, - ghainfinalarabic: 0xFECE, - ghaininitialarabic: 0xFECF, - ghainmedialarabic: 0xFED0, - ghemiddlehookcyrillic: 0x0495, - ghestrokecyrillic: 0x0493, - gheupturncyrillic: 0x0491, - ghhadeva: 0x095A, - ghhagurmukhi: 0x0A5A, - ghook: 0x0260, - ghzsquare: 0x3393, - gihiragana: 0x304E, - gikatakana: 0x30AE, - gimarmenian: 0x0563, - gimel: 0x05D2, - gimeldagesh: 0xFB32, - gimeldageshhebrew: 0xFB32, - gimelhebrew: 0x05D2, - gjecyrillic: 0x0453, - glottalinvertedstroke: 0x01BE, - glottalstop: 0x0294, - glottalstopinverted: 0x0296, - glottalstopmod: 0x02C0, - glottalstopreversed: 0x0295, - glottalstopreversedmod: 0x02C1, - glottalstopreversedsuperior: 0x02E4, - glottalstopstroke: 0x02A1, - glottalstopstrokereversed: 0x02A2, - gmacron: 0x1E21, - gmonospace: 0xFF47, - gohiragana: 0x3054, - gokatakana: 0x30B4, - gparen: 0x24A2, - gpasquare: 0x33AC, - gradient: 0x2207, - grave: 0x0060, - gravebelowcmb: 0x0316, - gravecmb: 0x0300, - gravecomb: 0x0300, - gravedeva: 0x0953, - gravelowmod: 0x02CE, - gravemonospace: 0xFF40, - gravetonecmb: 0x0340, - greater: 0x003E, - greaterequal: 0x2265, - greaterequalorless: 0x22DB, - greatermonospace: 0xFF1E, - greaterorequivalent: 0x2273, - greaterorless: 0x2277, - greateroverequal: 0x2267, - greatersmall: 0xFE65, - gscript: 0x0261, - gstroke: 0x01E5, - guhiragana: 0x3050, - guillemotleft: 0x00AB, - guillemotright: 0x00BB, - guilsinglleft: 0x2039, - guilsinglright: 0x203A, - gukatakana: 0x30B0, - guramusquare: 0x3318, - gysquare: 0x33C9, - h: 0x0068, - haabkhasiancyrillic: 0x04A9, - haaltonearabic: 0x06C1, - habengali: 0x09B9, - hadescendercyrillic: 0x04B3, - hadeva: 0x0939, - hagujarati: 0x0AB9, - hagurmukhi: 0x0A39, - haharabic: 0x062D, - hahfinalarabic: 0xFEA2, - hahinitialarabic: 0xFEA3, - hahiragana: 0x306F, - hahmedialarabic: 0xFEA4, - haitusquare: 0x332A, - hakatakana: 0x30CF, - hakatakanahalfwidth: 0xFF8A, - halantgurmukhi: 0x0A4D, - hamzaarabic: 0x0621, - hamzalowarabic: 0x0621, - hangulfiller: 0x3164, - hardsigncyrillic: 0x044A, - harpoonleftbarbup: 0x21BC, - harpoonrightbarbup: 0x21C0, - hasquare: 0x33CA, - hatafpatah: 0x05B2, - hatafpatah16: 0x05B2, - hatafpatah23: 0x05B2, - hatafpatah2f: 0x05B2, - hatafpatahhebrew: 0x05B2, - hatafpatahnarrowhebrew: 0x05B2, - hatafpatahquarterhebrew: 0x05B2, - hatafpatahwidehebrew: 0x05B2, - hatafqamats: 0x05B3, - hatafqamats1b: 0x05B3, - hatafqamats28: 0x05B3, - hatafqamats34: 0x05B3, - hatafqamatshebrew: 0x05B3, - hatafqamatsnarrowhebrew: 0x05B3, - hatafqamatsquarterhebrew: 0x05B3, - hatafqamatswidehebrew: 0x05B3, - hatafsegol: 0x05B1, - hatafsegol17: 0x05B1, - hatafsegol24: 0x05B1, - hatafsegol30: 0x05B1, - hatafsegolhebrew: 0x05B1, - hatafsegolnarrowhebrew: 0x05B1, - hatafsegolquarterhebrew: 0x05B1, - hatafsegolwidehebrew: 0x05B1, - hbar: 0x0127, - hbopomofo: 0x310F, - hbrevebelow: 0x1E2B, - hcedilla: 0x1E29, - hcircle: 0x24D7, - hcircumflex: 0x0125, - hdieresis: 0x1E27, - hdotaccent: 0x1E23, - hdotbelow: 0x1E25, - he: 0x05D4, - heart: 0x2665, - heartsuitblack: 0x2665, - heartsuitwhite: 0x2661, - hedagesh: 0xFB34, - hedageshhebrew: 0xFB34, - hehaltonearabic: 0x06C1, - heharabic: 0x0647, - hehebrew: 0x05D4, - hehfinalaltonearabic: 0xFBA7, - hehfinalalttwoarabic: 0xFEEA, - hehfinalarabic: 0xFEEA, - hehhamzaabovefinalarabic: 0xFBA5, - hehhamzaaboveisolatedarabic: 0xFBA4, - hehinitialaltonearabic: 0xFBA8, - hehinitialarabic: 0xFEEB, - hehiragana: 0x3078, - hehmedialaltonearabic: 0xFBA9, - hehmedialarabic: 0xFEEC, - heiseierasquare: 0x337B, - hekatakana: 0x30D8, - hekatakanahalfwidth: 0xFF8D, - hekutaarusquare: 0x3336, - henghook: 0x0267, - herutusquare: 0x3339, - het: 0x05D7, - hethebrew: 0x05D7, - hhook: 0x0266, - hhooksuperior: 0x02B1, - hieuhacirclekorean: 0x327B, - hieuhaparenkorean: 0x321B, - hieuhcirclekorean: 0x326D, - hieuhkorean: 0x314E, - hieuhparenkorean: 0x320D, - hihiragana: 0x3072, - hikatakana: 0x30D2, - hikatakanahalfwidth: 0xFF8B, - hiriq: 0x05B4, - hiriq14: 0x05B4, - hiriq21: 0x05B4, - hiriq2d: 0x05B4, - hiriqhebrew: 0x05B4, - hiriqnarrowhebrew: 0x05B4, - hiriqquarterhebrew: 0x05B4, - hiriqwidehebrew: 0x05B4, - hlinebelow: 0x1E96, - hmonospace: 0xFF48, - hoarmenian: 0x0570, - hohipthai: 0x0E2B, - hohiragana: 0x307B, - hokatakana: 0x30DB, - hokatakanahalfwidth: 0xFF8E, - holam: 0x05B9, - holam19: 0x05B9, - holam26: 0x05B9, - holam32: 0x05B9, - holamhebrew: 0x05B9, - holamnarrowhebrew: 0x05B9, - holamquarterhebrew: 0x05B9, - holamwidehebrew: 0x05B9, - honokhukthai: 0x0E2E, - hookabovecomb: 0x0309, - hookcmb: 0x0309, - hookpalatalizedbelowcmb: 0x0321, - hookretroflexbelowcmb: 0x0322, - hoonsquare: 0x3342, - horicoptic: 0x03E9, - horizontalbar: 0x2015, - horncmb: 0x031B, - hotsprings: 0x2668, - house: 0x2302, - hparen: 0x24A3, - hsuperior: 0x02B0, - hturned: 0x0265, - huhiragana: 0x3075, - huiitosquare: 0x3333, - hukatakana: 0x30D5, - hukatakanahalfwidth: 0xFF8C, - hungarumlaut: 0x02DD, - hungarumlautcmb: 0x030B, - hv: 0x0195, - hyphen: 0x002D, - hypheninferior: 0xF6E5, - hyphenmonospace: 0xFF0D, - hyphensmall: 0xFE63, - hyphensuperior: 0xF6E6, - hyphentwo: 0x2010, - i: 0x0069, - iacute: 0x00ED, - iacyrillic: 0x044F, - ibengali: 0x0987, - ibopomofo: 0x3127, - ibreve: 0x012D, - icaron: 0x01D0, - icircle: 0x24D8, - icircumflex: 0x00EE, - icyrillic: 0x0456, - idblgrave: 0x0209, - ideographearthcircle: 0x328F, - ideographfirecircle: 0x328B, - ideographicallianceparen: 0x323F, - ideographiccallparen: 0x323A, - ideographiccentrecircle: 0x32A5, - ideographicclose: 0x3006, - ideographiccomma: 0x3001, - ideographiccommaleft: 0xFF64, - ideographiccongratulationparen: 0x3237, - ideographiccorrectcircle: 0x32A3, - ideographicearthparen: 0x322F, - ideographicenterpriseparen: 0x323D, - ideographicexcellentcircle: 0x329D, - ideographicfestivalparen: 0x3240, - ideographicfinancialcircle: 0x3296, - ideographicfinancialparen: 0x3236, - ideographicfireparen: 0x322B, - ideographichaveparen: 0x3232, - ideographichighcircle: 0x32A4, - ideographiciterationmark: 0x3005, - ideographiclaborcircle: 0x3298, - ideographiclaborparen: 0x3238, - ideographicleftcircle: 0x32A7, - ideographiclowcircle: 0x32A6, - ideographicmedicinecircle: 0x32A9, - ideographicmetalparen: 0x322E, - ideographicmoonparen: 0x322A, - ideographicnameparen: 0x3234, - ideographicperiod: 0x3002, - ideographicprintcircle: 0x329E, - ideographicreachparen: 0x3243, - ideographicrepresentparen: 0x3239, - ideographicresourceparen: 0x323E, - ideographicrightcircle: 0x32A8, - ideographicsecretcircle: 0x3299, - ideographicselfparen: 0x3242, - ideographicsocietyparen: 0x3233, - ideographicspace: 0x3000, - ideographicspecialparen: 0x3235, - ideographicstockparen: 0x3231, - ideographicstudyparen: 0x323B, - ideographicsunparen: 0x3230, - ideographicsuperviseparen: 0x323C, - ideographicwaterparen: 0x322C, - ideographicwoodparen: 0x322D, - ideographiczero: 0x3007, - ideographmetalcircle: 0x328E, - ideographmooncircle: 0x328A, - ideographnamecircle: 0x3294, - ideographsuncircle: 0x3290, - ideographwatercircle: 0x328C, - ideographwoodcircle: 0x328D, - ideva: 0x0907, - idieresis: 0x00EF, - idieresisacute: 0x1E2F, - idieresiscyrillic: 0x04E5, - idotbelow: 0x1ECB, - iebrevecyrillic: 0x04D7, - iecyrillic: 0x0435, - ieungacirclekorean: 0x3275, - ieungaparenkorean: 0x3215, - ieungcirclekorean: 0x3267, - ieungkorean: 0x3147, - ieungparenkorean: 0x3207, - igrave: 0x00EC, - igujarati: 0x0A87, - igurmukhi: 0x0A07, - ihiragana: 0x3044, - ihookabove: 0x1EC9, - iibengali: 0x0988, - iicyrillic: 0x0438, - iideva: 0x0908, - iigujarati: 0x0A88, - iigurmukhi: 0x0A08, - iimatragurmukhi: 0x0A40, - iinvertedbreve: 0x020B, - iishortcyrillic: 0x0439, - iivowelsignbengali: 0x09C0, - iivowelsigndeva: 0x0940, - iivowelsigngujarati: 0x0AC0, - ij: 0x0133, - ikatakana: 0x30A4, - ikatakanahalfwidth: 0xFF72, - ikorean: 0x3163, - ilde: 0x02DC, - iluyhebrew: 0x05AC, - imacron: 0x012B, - imacroncyrillic: 0x04E3, - imageorapproximatelyequal: 0x2253, - imatragurmukhi: 0x0A3F, - imonospace: 0xFF49, - increment: 0x2206, - infinity: 0x221E, - iniarmenian: 0x056B, - integral: 0x222B, - integralbottom: 0x2321, - integralbt: 0x2321, - integralex: 0xF8F5, - integraltop: 0x2320, - integraltp: 0x2320, - intersection: 0x2229, - intisquare: 0x3305, - invbullet: 0x25D8, - invcircle: 0x25D9, - invsmileface: 0x263B, - iocyrillic: 0x0451, - iogonek: 0x012F, - iota: 0x03B9, - iotadieresis: 0x03CA, - iotadieresistonos: 0x0390, - iotalatin: 0x0269, - iotatonos: 0x03AF, - iparen: 0x24A4, - irigurmukhi: 0x0A72, - ismallhiragana: 0x3043, - ismallkatakana: 0x30A3, - ismallkatakanahalfwidth: 0xFF68, - issharbengali: 0x09FA, - istroke: 0x0268, - isuperior: 0xF6ED, - iterationhiragana: 0x309D, - iterationkatakana: 0x30FD, - itilde: 0x0129, - itildebelow: 0x1E2D, - iubopomofo: 0x3129, - iucyrillic: 0x044E, - ivowelsignbengali: 0x09BF, - ivowelsigndeva: 0x093F, - ivowelsigngujarati: 0x0ABF, - izhitsacyrillic: 0x0475, - izhitsadblgravecyrillic: 0x0477, - j: 0x006A, - jaarmenian: 0x0571, - jabengali: 0x099C, - jadeva: 0x091C, - jagujarati: 0x0A9C, - jagurmukhi: 0x0A1C, - jbopomofo: 0x3110, - jcaron: 0x01F0, - jcircle: 0x24D9, - jcircumflex: 0x0135, - jcrossedtail: 0x029D, - jdotlessstroke: 0x025F, - jecyrillic: 0x0458, - jeemarabic: 0x062C, - jeemfinalarabic: 0xFE9E, - jeeminitialarabic: 0xFE9F, - jeemmedialarabic: 0xFEA0, - jeharabic: 0x0698, - jehfinalarabic: 0xFB8B, - jhabengali: 0x099D, - jhadeva: 0x091D, - jhagujarati: 0x0A9D, - jhagurmukhi: 0x0A1D, - jheharmenian: 0x057B, - jis: 0x3004, - jmonospace: 0xFF4A, - jparen: 0x24A5, - jsuperior: 0x02B2, - k: 0x006B, - kabashkircyrillic: 0x04A1, - kabengali: 0x0995, - kacute: 0x1E31, - kacyrillic: 0x043A, - kadescendercyrillic: 0x049B, - kadeva: 0x0915, - kaf: 0x05DB, - kafarabic: 0x0643, - kafdagesh: 0xFB3B, - kafdageshhebrew: 0xFB3B, - kaffinalarabic: 0xFEDA, - kafhebrew: 0x05DB, - kafinitialarabic: 0xFEDB, - kafmedialarabic: 0xFEDC, - kafrafehebrew: 0xFB4D, - kagujarati: 0x0A95, - kagurmukhi: 0x0A15, - kahiragana: 0x304B, - kahookcyrillic: 0x04C4, - kakatakana: 0x30AB, - kakatakanahalfwidth: 0xFF76, - kappa: 0x03BA, - kappasymbolgreek: 0x03F0, - kapyeounmieumkorean: 0x3171, - kapyeounphieuphkorean: 0x3184, - kapyeounpieupkorean: 0x3178, - kapyeounssangpieupkorean: 0x3179, - karoriisquare: 0x330D, - kashidaautoarabic: 0x0640, - kashidaautonosidebearingarabic: 0x0640, - kasmallkatakana: 0x30F5, - kasquare: 0x3384, - kasraarabic: 0x0650, - kasratanarabic: 0x064D, - kastrokecyrillic: 0x049F, - katahiraprolongmarkhalfwidth: 0xFF70, - kaverticalstrokecyrillic: 0x049D, - kbopomofo: 0x310E, - kcalsquare: 0x3389, - kcaron: 0x01E9, - kcedilla: 0x0137, - kcircle: 0x24DA, - kcommaaccent: 0x0137, - kdotbelow: 0x1E33, - keharmenian: 0x0584, - kehiragana: 0x3051, - kekatakana: 0x30B1, - kekatakanahalfwidth: 0xFF79, - kenarmenian: 0x056F, - kesmallkatakana: 0x30F6, - kgreenlandic: 0x0138, - khabengali: 0x0996, - khacyrillic: 0x0445, - khadeva: 0x0916, - khagujarati: 0x0A96, - khagurmukhi: 0x0A16, - khaharabic: 0x062E, - khahfinalarabic: 0xFEA6, - khahinitialarabic: 0xFEA7, - khahmedialarabic: 0xFEA8, - kheicoptic: 0x03E7, - khhadeva: 0x0959, - khhagurmukhi: 0x0A59, - khieukhacirclekorean: 0x3278, - khieukhaparenkorean: 0x3218, - khieukhcirclekorean: 0x326A, - khieukhkorean: 0x314B, - khieukhparenkorean: 0x320A, - khokhaithai: 0x0E02, - khokhonthai: 0x0E05, - khokhuatthai: 0x0E03, - khokhwaithai: 0x0E04, - khomutthai: 0x0E5B, - khook: 0x0199, - khorakhangthai: 0x0E06, - khzsquare: 0x3391, - kihiragana: 0x304D, - kikatakana: 0x30AD, - kikatakanahalfwidth: 0xFF77, - kiroguramusquare: 0x3315, - kiromeetorusquare: 0x3316, - kirosquare: 0x3314, - kiyeokacirclekorean: 0x326E, - kiyeokaparenkorean: 0x320E, - kiyeokcirclekorean: 0x3260, - kiyeokkorean: 0x3131, - kiyeokparenkorean: 0x3200, - kiyeoksioskorean: 0x3133, - kjecyrillic: 0x045C, - klinebelow: 0x1E35, - klsquare: 0x3398, - kmcubedsquare: 0x33A6, - kmonospace: 0xFF4B, - kmsquaredsquare: 0x33A2, - kohiragana: 0x3053, - kohmsquare: 0x33C0, - kokaithai: 0x0E01, - kokatakana: 0x30B3, - kokatakanahalfwidth: 0xFF7A, - kooposquare: 0x331E, - koppacyrillic: 0x0481, - koreanstandardsymbol: 0x327F, - koroniscmb: 0x0343, - kparen: 0x24A6, - kpasquare: 0x33AA, - ksicyrillic: 0x046F, - ktsquare: 0x33CF, - kturned: 0x029E, - kuhiragana: 0x304F, - kukatakana: 0x30AF, - kukatakanahalfwidth: 0xFF78, - kvsquare: 0x33B8, - kwsquare: 0x33BE, - l: 0x006C, - labengali: 0x09B2, - lacute: 0x013A, - ladeva: 0x0932, - lagujarati: 0x0AB2, - lagurmukhi: 0x0A32, - lakkhangyaothai: 0x0E45, - lamaleffinalarabic: 0xFEFC, - lamalefhamzaabovefinalarabic: 0xFEF8, - lamalefhamzaaboveisolatedarabic: 0xFEF7, - lamalefhamzabelowfinalarabic: 0xFEFA, - lamalefhamzabelowisolatedarabic: 0xFEF9, - lamalefisolatedarabic: 0xFEFB, - lamalefmaddaabovefinalarabic: 0xFEF6, - lamalefmaddaaboveisolatedarabic: 0xFEF5, - lamarabic: 0x0644, - lambda: 0x03BB, - lambdastroke: 0x019B, - lamed: 0x05DC, - lameddagesh: 0xFB3C, - lameddageshhebrew: 0xFB3C, - lamedhebrew: 0x05DC, - lamfinalarabic: 0xFEDE, - lamhahinitialarabic: 0xFCCA, - laminitialarabic: 0xFEDF, - lamjeeminitialarabic: 0xFCC9, - lamkhahinitialarabic: 0xFCCB, - lamlamhehisolatedarabic: 0xFDF2, - lammedialarabic: 0xFEE0, - lammeemhahinitialarabic: 0xFD88, - lammeeminitialarabic: 0xFCCC, - largecircle: 0x25EF, - lbar: 0x019A, - lbelt: 0x026C, - lbopomofo: 0x310C, - lcaron: 0x013E, - lcedilla: 0x013C, - lcircle: 0x24DB, - lcircumflexbelow: 0x1E3D, - lcommaaccent: 0x013C, - ldot: 0x0140, - ldotaccent: 0x0140, - ldotbelow: 0x1E37, - ldotbelowmacron: 0x1E39, - leftangleabovecmb: 0x031A, - lefttackbelowcmb: 0x0318, - less: 0x003C, - lessequal: 0x2264, - lessequalorgreater: 0x22DA, - lessmonospace: 0xFF1C, - lessorequivalent: 0x2272, - lessorgreater: 0x2276, - lessoverequal: 0x2266, - lesssmall: 0xFE64, - lezh: 0x026E, - lfblock: 0x258C, - lhookretroflex: 0x026D, - lira: 0x20A4, - liwnarmenian: 0x056C, - lj: 0x01C9, - ljecyrillic: 0x0459, - ll: 0xF6C0, - lladeva: 0x0933, - llagujarati: 0x0AB3, - llinebelow: 0x1E3B, - llladeva: 0x0934, - llvocalicbengali: 0x09E1, - llvocalicdeva: 0x0961, - llvocalicvowelsignbengali: 0x09E3, - llvocalicvowelsigndeva: 0x0963, - lmiddletilde: 0x026B, - lmonospace: 0xFF4C, - lmsquare: 0x33D0, - lochulathai: 0x0E2C, - logicaland: 0x2227, - logicalnot: 0x00AC, - logicalnotreversed: 0x2310, - logicalor: 0x2228, - lolingthai: 0x0E25, - longs: 0x017F, - lowlinecenterline: 0xFE4E, - lowlinecmb: 0x0332, - lowlinedashed: 0xFE4D, - lozenge: 0x25CA, - lparen: 0x24A7, - lslash: 0x0142, - lsquare: 0x2113, - lsuperior: 0xF6EE, - ltshade: 0x2591, - luthai: 0x0E26, - lvocalicbengali: 0x098C, - lvocalicdeva: 0x090C, - lvocalicvowelsignbengali: 0x09E2, - lvocalicvowelsigndeva: 0x0962, - lxsquare: 0x33D3, - m: 0x006D, - mabengali: 0x09AE, - macron: 0x00AF, - macronbelowcmb: 0x0331, - macroncmb: 0x0304, - macronlowmod: 0x02CD, - macronmonospace: 0xFFE3, - macute: 0x1E3F, - madeva: 0x092E, - magujarati: 0x0AAE, - magurmukhi: 0x0A2E, - mahapakhhebrew: 0x05A4, - mahapakhlefthebrew: 0x05A4, - mahiragana: 0x307E, - maichattawalowleftthai: 0xF895, - maichattawalowrightthai: 0xF894, - maichattawathai: 0x0E4B, - maichattawaupperleftthai: 0xF893, - maieklowleftthai: 0xF88C, - maieklowrightthai: 0xF88B, - maiekthai: 0x0E48, - maiekupperleftthai: 0xF88A, - maihanakatleftthai: 0xF884, - maihanakatthai: 0x0E31, - maitaikhuleftthai: 0xF889, - maitaikhuthai: 0x0E47, - maitholowleftthai: 0xF88F, - maitholowrightthai: 0xF88E, - maithothai: 0x0E49, - maithoupperleftthai: 0xF88D, - maitrilowleftthai: 0xF892, - maitrilowrightthai: 0xF891, - maitrithai: 0x0E4A, - maitriupperleftthai: 0xF890, - maiyamokthai: 0x0E46, - makatakana: 0x30DE, - makatakanahalfwidth: 0xFF8F, - male: 0x2642, - mansyonsquare: 0x3347, - maqafhebrew: 0x05BE, - mars: 0x2642, - masoracirclehebrew: 0x05AF, - masquare: 0x3383, - mbopomofo: 0x3107, - mbsquare: 0x33D4, - mcircle: 0x24DC, - mcubedsquare: 0x33A5, - mdotaccent: 0x1E41, - mdotbelow: 0x1E43, - meemarabic: 0x0645, - meemfinalarabic: 0xFEE2, - meeminitialarabic: 0xFEE3, - meemmedialarabic: 0xFEE4, - meemmeeminitialarabic: 0xFCD1, - meemmeemisolatedarabic: 0xFC48, - meetorusquare: 0x334D, - mehiragana: 0x3081, - meizierasquare: 0x337E, - mekatakana: 0x30E1, - mekatakanahalfwidth: 0xFF92, - mem: 0x05DE, - memdagesh: 0xFB3E, - memdageshhebrew: 0xFB3E, - memhebrew: 0x05DE, - menarmenian: 0x0574, - merkhahebrew: 0x05A5, - merkhakefulahebrew: 0x05A6, - merkhakefulalefthebrew: 0x05A6, - merkhalefthebrew: 0x05A5, - mhook: 0x0271, - mhzsquare: 0x3392, - middledotkatakanahalfwidth: 0xFF65, - middot: 0x00B7, - mieumacirclekorean: 0x3272, - mieumaparenkorean: 0x3212, - mieumcirclekorean: 0x3264, - mieumkorean: 0x3141, - mieumpansioskorean: 0x3170, - mieumparenkorean: 0x3204, - mieumpieupkorean: 0x316E, - mieumsioskorean: 0x316F, - mihiragana: 0x307F, - mikatakana: 0x30DF, - mikatakanahalfwidth: 0xFF90, - minus: 0x2212, - minusbelowcmb: 0x0320, - minuscircle: 0x2296, - minusmod: 0x02D7, - minusplus: 0x2213, - minute: 0x2032, - miribaarusquare: 0x334A, - mirisquare: 0x3349, - mlonglegturned: 0x0270, - mlsquare: 0x3396, - mmcubedsquare: 0x33A3, - mmonospace: 0xFF4D, - mmsquaredsquare: 0x339F, - mohiragana: 0x3082, - mohmsquare: 0x33C1, - mokatakana: 0x30E2, - mokatakanahalfwidth: 0xFF93, - molsquare: 0x33D6, - momathai: 0x0E21, - moverssquare: 0x33A7, - moverssquaredsquare: 0x33A8, - mparen: 0x24A8, - mpasquare: 0x33AB, - mssquare: 0x33B3, - msuperior: 0xF6EF, - mturned: 0x026F, - mu: 0x00B5, - mu1: 0x00B5, - muasquare: 0x3382, - muchgreater: 0x226B, - muchless: 0x226A, - mufsquare: 0x338C, - mugreek: 0x03BC, - mugsquare: 0x338D, - muhiragana: 0x3080, - mukatakana: 0x30E0, - mukatakanahalfwidth: 0xFF91, - mulsquare: 0x3395, - multiply: 0x00D7, - mumsquare: 0x339B, - munahhebrew: 0x05A3, - munahlefthebrew: 0x05A3, - musicalnote: 0x266A, - musicalnotedbl: 0x266B, - musicflatsign: 0x266D, - musicsharpsign: 0x266F, - mussquare: 0x33B2, - muvsquare: 0x33B6, - muwsquare: 0x33BC, - mvmegasquare: 0x33B9, - mvsquare: 0x33B7, - mwmegasquare: 0x33BF, - mwsquare: 0x33BD, - n: 0x006E, - nabengali: 0x09A8, - nabla: 0x2207, - nacute: 0x0144, - nadeva: 0x0928, - nagujarati: 0x0AA8, - nagurmukhi: 0x0A28, - nahiragana: 0x306A, - nakatakana: 0x30CA, - nakatakanahalfwidth: 0xFF85, - napostrophe: 0x0149, - nasquare: 0x3381, - nbopomofo: 0x310B, - nbspace: 0x00A0, - ncaron: 0x0148, - ncedilla: 0x0146, - ncircle: 0x24DD, - ncircumflexbelow: 0x1E4B, - ncommaaccent: 0x0146, - ndotaccent: 0x1E45, - ndotbelow: 0x1E47, - nehiragana: 0x306D, - nekatakana: 0x30CD, - nekatakanahalfwidth: 0xFF88, - newsheqelsign: 0x20AA, - nfsquare: 0x338B, - ngabengali: 0x0999, - ngadeva: 0x0919, - ngagujarati: 0x0A99, - ngagurmukhi: 0x0A19, - ngonguthai: 0x0E07, - nhiragana: 0x3093, - nhookleft: 0x0272, - nhookretroflex: 0x0273, - nieunacirclekorean: 0x326F, - nieunaparenkorean: 0x320F, - nieuncieuckorean: 0x3135, - nieuncirclekorean: 0x3261, - nieunhieuhkorean: 0x3136, - nieunkorean: 0x3134, - nieunpansioskorean: 0x3168, - nieunparenkorean: 0x3201, - nieunsioskorean: 0x3167, - nieuntikeutkorean: 0x3166, - nihiragana: 0x306B, - nikatakana: 0x30CB, - nikatakanahalfwidth: 0xFF86, - nikhahitleftthai: 0xF899, - nikhahitthai: 0x0E4D, - nine: 0x0039, - ninearabic: 0x0669, - ninebengali: 0x09EF, - ninecircle: 0x2468, - ninecircleinversesansserif: 0x2792, - ninedeva: 0x096F, - ninegujarati: 0x0AEF, - ninegurmukhi: 0x0A6F, - ninehackarabic: 0x0669, - ninehangzhou: 0x3029, - nineideographicparen: 0x3228, - nineinferior: 0x2089, - ninemonospace: 0xFF19, - nineoldstyle: 0xF739, - nineparen: 0x247C, - nineperiod: 0x2490, - ninepersian: 0x06F9, - nineroman: 0x2178, - ninesuperior: 0x2079, - nineteencircle: 0x2472, - nineteenparen: 0x2486, - nineteenperiod: 0x249A, - ninethai: 0x0E59, - nj: 0x01CC, - njecyrillic: 0x045A, - nkatakana: 0x30F3, - nkatakanahalfwidth: 0xFF9D, - nlegrightlong: 0x019E, - nlinebelow: 0x1E49, - nmonospace: 0xFF4E, - nmsquare: 0x339A, - nnabengali: 0x09A3, - nnadeva: 0x0923, - nnagujarati: 0x0AA3, - nnagurmukhi: 0x0A23, - nnnadeva: 0x0929, - nohiragana: 0x306E, - nokatakana: 0x30CE, - nokatakanahalfwidth: 0xFF89, - nonbreakingspace: 0x00A0, - nonenthai: 0x0E13, - nonuthai: 0x0E19, - noonarabic: 0x0646, - noonfinalarabic: 0xFEE6, - noonghunnaarabic: 0x06BA, - noonghunnafinalarabic: 0xFB9F, - nooninitialarabic: 0xFEE7, - noonjeeminitialarabic: 0xFCD2, - noonjeemisolatedarabic: 0xFC4B, - noonmedialarabic: 0xFEE8, - noonmeeminitialarabic: 0xFCD5, - noonmeemisolatedarabic: 0xFC4E, - noonnoonfinalarabic: 0xFC8D, - notcontains: 0x220C, - notelement: 0x2209, - notelementof: 0x2209, - notequal: 0x2260, - notgreater: 0x226F, - notgreaternorequal: 0x2271, - notgreaternorless: 0x2279, - notidentical: 0x2262, - notless: 0x226E, - notlessnorequal: 0x2270, - notparallel: 0x2226, - notprecedes: 0x2280, - notsubset: 0x2284, - notsucceeds: 0x2281, - notsuperset: 0x2285, - nowarmenian: 0x0576, - nparen: 0x24A9, - nssquare: 0x33B1, - nsuperior: 0x207F, - ntilde: 0x00F1, - nu: 0x03BD, - nuhiragana: 0x306C, - nukatakana: 0x30CC, - nukatakanahalfwidth: 0xFF87, - nuktabengali: 0x09BC, - nuktadeva: 0x093C, - nuktagujarati: 0x0ABC, - nuktagurmukhi: 0x0A3C, - numbersign: 0x0023, - numbersignmonospace: 0xFF03, - numbersignsmall: 0xFE5F, - numeralsigngreek: 0x0374, - numeralsignlowergreek: 0x0375, - numero: 0x2116, - nun: 0x05E0, - nundagesh: 0xFB40, - nundageshhebrew: 0xFB40, - nunhebrew: 0x05E0, - nvsquare: 0x33B5, - nwsquare: 0x33BB, - nyabengali: 0x099E, - nyadeva: 0x091E, - nyagujarati: 0x0A9E, - nyagurmukhi: 0x0A1E, - o: 0x006F, - oacute: 0x00F3, - oangthai: 0x0E2D, - obarred: 0x0275, - obarredcyrillic: 0x04E9, - obarreddieresiscyrillic: 0x04EB, - obengali: 0x0993, - obopomofo: 0x311B, - obreve: 0x014F, - ocandradeva: 0x0911, - ocandragujarati: 0x0A91, - ocandravowelsigndeva: 0x0949, - ocandravowelsigngujarati: 0x0AC9, - ocaron: 0x01D2, - ocircle: 0x24DE, - ocircumflex: 0x00F4, - ocircumflexacute: 0x1ED1, - ocircumflexdotbelow: 0x1ED9, - ocircumflexgrave: 0x1ED3, - ocircumflexhookabove: 0x1ED5, - ocircumflextilde: 0x1ED7, - ocyrillic: 0x043E, - odblacute: 0x0151, - odblgrave: 0x020D, - odeva: 0x0913, - odieresis: 0x00F6, - odieresiscyrillic: 0x04E7, - odotbelow: 0x1ECD, - oe: 0x0153, - oekorean: 0x315A, - ogonek: 0x02DB, - ogonekcmb: 0x0328, - ograve: 0x00F2, - ogujarati: 0x0A93, - oharmenian: 0x0585, - ohiragana: 0x304A, - ohookabove: 0x1ECF, - ohorn: 0x01A1, - ohornacute: 0x1EDB, - ohorndotbelow: 0x1EE3, - ohorngrave: 0x1EDD, - ohornhookabove: 0x1EDF, - ohorntilde: 0x1EE1, - ohungarumlaut: 0x0151, - oi: 0x01A3, - oinvertedbreve: 0x020F, - okatakana: 0x30AA, - okatakanahalfwidth: 0xFF75, - okorean: 0x3157, - olehebrew: 0x05AB, - omacron: 0x014D, - omacronacute: 0x1E53, - omacrongrave: 0x1E51, - omdeva: 0x0950, - omega: 0x03C9, - omega1: 0x03D6, - omegacyrillic: 0x0461, - omegalatinclosed: 0x0277, - omegaroundcyrillic: 0x047B, - omegatitlocyrillic: 0x047D, - omegatonos: 0x03CE, - omgujarati: 0x0AD0, - omicron: 0x03BF, - omicrontonos: 0x03CC, - omonospace: 0xFF4F, - one: 0x0031, - onearabic: 0x0661, - onebengali: 0x09E7, - onecircle: 0x2460, - onecircleinversesansserif: 0x278A, - onedeva: 0x0967, - onedotenleader: 0x2024, - oneeighth: 0x215B, - onefitted: 0xF6DC, - onegujarati: 0x0AE7, - onegurmukhi: 0x0A67, - onehackarabic: 0x0661, - onehalf: 0x00BD, - onehangzhou: 0x3021, - oneideographicparen: 0x3220, - oneinferior: 0x2081, - onemonospace: 0xFF11, - onenumeratorbengali: 0x09F4, - oneoldstyle: 0xF731, - oneparen: 0x2474, - oneperiod: 0x2488, - onepersian: 0x06F1, - onequarter: 0x00BC, - oneroman: 0x2170, - onesuperior: 0x00B9, - onethai: 0x0E51, - onethird: 0x2153, - oogonek: 0x01EB, - oogonekmacron: 0x01ED, - oogurmukhi: 0x0A13, - oomatragurmukhi: 0x0A4B, - oopen: 0x0254, - oparen: 0x24AA, - openbullet: 0x25E6, - option: 0x2325, - ordfeminine: 0x00AA, - ordmasculine: 0x00BA, - orthogonal: 0x221F, - oshortdeva: 0x0912, - oshortvowelsigndeva: 0x094A, - oslash: 0x00F8, - oslashacute: 0x01FF, - osmallhiragana: 0x3049, - osmallkatakana: 0x30A9, - osmallkatakanahalfwidth: 0xFF6B, - ostrokeacute: 0x01FF, - osuperior: 0xF6F0, - otcyrillic: 0x047F, - otilde: 0x00F5, - otildeacute: 0x1E4D, - otildedieresis: 0x1E4F, - oubopomofo: 0x3121, - overline: 0x203E, - overlinecenterline: 0xFE4A, - overlinecmb: 0x0305, - overlinedashed: 0xFE49, - overlinedblwavy: 0xFE4C, - overlinewavy: 0xFE4B, - overscore: 0x00AF, - ovowelsignbengali: 0x09CB, - ovowelsigndeva: 0x094B, - ovowelsigngujarati: 0x0ACB, - p: 0x0070, - paampssquare: 0x3380, - paasentosquare: 0x332B, - pabengali: 0x09AA, - pacute: 0x1E55, - padeva: 0x092A, - pagedown: 0x21DF, - pageup: 0x21DE, - pagujarati: 0x0AAA, - pagurmukhi: 0x0A2A, - pahiragana: 0x3071, - paiyannoithai: 0x0E2F, - pakatakana: 0x30D1, - palatalizationcyrilliccmb: 0x0484, - palochkacyrillic: 0x04C0, - pansioskorean: 0x317F, - paragraph: 0x00B6, - parallel: 0x2225, - parenleft: 0x0028, - parenleftaltonearabic: 0xFD3E, - parenleftbt: 0xF8ED, - parenleftex: 0xF8EC, - parenleftinferior: 0x208D, - parenleftmonospace: 0xFF08, - parenleftsmall: 0xFE59, - parenleftsuperior: 0x207D, - parenlefttp: 0xF8EB, - parenleftvertical: 0xFE35, - parenright: 0x0029, - parenrightaltonearabic: 0xFD3F, - parenrightbt: 0xF8F8, - parenrightex: 0xF8F7, - parenrightinferior: 0x208E, - parenrightmonospace: 0xFF09, - parenrightsmall: 0xFE5A, - parenrightsuperior: 0x207E, - parenrighttp: 0xF8F6, - parenrightvertical: 0xFE36, - partialdiff: 0x2202, - paseqhebrew: 0x05C0, - pashtahebrew: 0x0599, - pasquare: 0x33A9, - patah: 0x05B7, - patah11: 0x05B7, - patah1d: 0x05B7, - patah2a: 0x05B7, - patahhebrew: 0x05B7, - patahnarrowhebrew: 0x05B7, - patahquarterhebrew: 0x05B7, - patahwidehebrew: 0x05B7, - pazerhebrew: 0x05A1, - pbopomofo: 0x3106, - pcircle: 0x24DF, - pdotaccent: 0x1E57, - pe: 0x05E4, - pecyrillic: 0x043F, - pedagesh: 0xFB44, - pedageshhebrew: 0xFB44, - peezisquare: 0x333B, - pefinaldageshhebrew: 0xFB43, - peharabic: 0x067E, - peharmenian: 0x057A, - pehebrew: 0x05E4, - pehfinalarabic: 0xFB57, - pehinitialarabic: 0xFB58, - pehiragana: 0x307A, - pehmedialarabic: 0xFB59, - pekatakana: 0x30DA, - pemiddlehookcyrillic: 0x04A7, - perafehebrew: 0xFB4E, - percent: 0x0025, - percentarabic: 0x066A, - percentmonospace: 0xFF05, - percentsmall: 0xFE6A, - period: 0x002E, - periodarmenian: 0x0589, - periodcentered: 0x00B7, - periodhalfwidth: 0xFF61, - periodinferior: 0xF6E7, - periodmonospace: 0xFF0E, - periodsmall: 0xFE52, - periodsuperior: 0xF6E8, - perispomenigreekcmb: 0x0342, - perpendicular: 0x22A5, - perthousand: 0x2030, - peseta: 0x20A7, - pfsquare: 0x338A, - phabengali: 0x09AB, - phadeva: 0x092B, - phagujarati: 0x0AAB, - phagurmukhi: 0x0A2B, - phi: 0x03C6, - phi1: 0x03D5, - phieuphacirclekorean: 0x327A, - phieuphaparenkorean: 0x321A, - phieuphcirclekorean: 0x326C, - phieuphkorean: 0x314D, - phieuphparenkorean: 0x320C, - philatin: 0x0278, - phinthuthai: 0x0E3A, - phisymbolgreek: 0x03D5, - phook: 0x01A5, - phophanthai: 0x0E1E, - phophungthai: 0x0E1C, - phosamphaothai: 0x0E20, - pi: 0x03C0, - pieupacirclekorean: 0x3273, - pieupaparenkorean: 0x3213, - pieupcieuckorean: 0x3176, - pieupcirclekorean: 0x3265, - pieupkiyeokkorean: 0x3172, - pieupkorean: 0x3142, - pieupparenkorean: 0x3205, - pieupsioskiyeokkorean: 0x3174, - pieupsioskorean: 0x3144, - pieupsiostikeutkorean: 0x3175, - pieupthieuthkorean: 0x3177, - pieuptikeutkorean: 0x3173, - pihiragana: 0x3074, - pikatakana: 0x30D4, - pisymbolgreek: 0x03D6, - piwrarmenian: 0x0583, - plus: 0x002B, - plusbelowcmb: 0x031F, - pluscircle: 0x2295, - plusminus: 0x00B1, - plusmod: 0x02D6, - plusmonospace: 0xFF0B, - plussmall: 0xFE62, - plussuperior: 0x207A, - pmonospace: 0xFF50, - pmsquare: 0x33D8, - pohiragana: 0x307D, - pointingindexdownwhite: 0x261F, - pointingindexleftwhite: 0x261C, - pointingindexrightwhite: 0x261E, - pointingindexupwhite: 0x261D, - pokatakana: 0x30DD, - poplathai: 0x0E1B, - postalmark: 0x3012, - postalmarkface: 0x3020, - pparen: 0x24AB, - precedes: 0x227A, - prescription: 0x211E, - primemod: 0x02B9, - primereversed: 0x2035, - product: 0x220F, - projective: 0x2305, - prolongedkana: 0x30FC, - propellor: 0x2318, - propersubset: 0x2282, - propersuperset: 0x2283, - proportion: 0x2237, - proportional: 0x221D, - psi: 0x03C8, - psicyrillic: 0x0471, - psilipneumatacyrilliccmb: 0x0486, - pssquare: 0x33B0, - puhiragana: 0x3077, - pukatakana: 0x30D7, - pvsquare: 0x33B4, - pwsquare: 0x33BA, - q: 0x0071, - qadeva: 0x0958, - qadmahebrew: 0x05A8, - qafarabic: 0x0642, - qaffinalarabic: 0xFED6, - qafinitialarabic: 0xFED7, - qafmedialarabic: 0xFED8, - qamats: 0x05B8, - qamats10: 0x05B8, - qamats1a: 0x05B8, - qamats1c: 0x05B8, - qamats27: 0x05B8, - qamats29: 0x05B8, - qamats33: 0x05B8, - qamatsde: 0x05B8, - qamatshebrew: 0x05B8, - qamatsnarrowhebrew: 0x05B8, - qamatsqatanhebrew: 0x05B8, - qamatsqatannarrowhebrew: 0x05B8, - qamatsqatanquarterhebrew: 0x05B8, - qamatsqatanwidehebrew: 0x05B8, - qamatsquarterhebrew: 0x05B8, - qamatswidehebrew: 0x05B8, - qarneyparahebrew: 0x059F, - qbopomofo: 0x3111, - qcircle: 0x24E0, - qhook: 0x02A0, - qmonospace: 0xFF51, - qof: 0x05E7, - qofdagesh: 0xFB47, - qofdageshhebrew: 0xFB47, - qofhebrew: 0x05E7, - qparen: 0x24AC, - quarternote: 0x2669, - qubuts: 0x05BB, - qubuts18: 0x05BB, - qubuts25: 0x05BB, - qubuts31: 0x05BB, - qubutshebrew: 0x05BB, - qubutsnarrowhebrew: 0x05BB, - qubutsquarterhebrew: 0x05BB, - qubutswidehebrew: 0x05BB, - question: 0x003F, - questionarabic: 0x061F, - questionarmenian: 0x055E, - questiondown: 0x00BF, - questiondownsmall: 0xF7BF, - questiongreek: 0x037E, - questionmonospace: 0xFF1F, - questionsmall: 0xF73F, - quotedbl: 0x0022, - quotedblbase: 0x201E, - quotedblleft: 0x201C, - quotedblmonospace: 0xFF02, - quotedblprime: 0x301E, - quotedblprimereversed: 0x301D, - quotedblright: 0x201D, - quoteleft: 0x2018, - quoteleftreversed: 0x201B, - quotereversed: 0x201B, - quoteright: 0x2019, - quoterightn: 0x0149, - quotesinglbase: 0x201A, - quotesingle: 0x0027, - quotesinglemonospace: 0xFF07, - r: 0x0072, - raarmenian: 0x057C, - rabengali: 0x09B0, - racute: 0x0155, - radeva: 0x0930, - radical: 0x221A, - radicalex: 0xF8E5, - radoverssquare: 0x33AE, - radoverssquaredsquare: 0x33AF, - radsquare: 0x33AD, - rafe: 0x05BF, - rafehebrew: 0x05BF, - ragujarati: 0x0AB0, - ragurmukhi: 0x0A30, - rahiragana: 0x3089, - rakatakana: 0x30E9, - rakatakanahalfwidth: 0xFF97, - ralowerdiagonalbengali: 0x09F1, - ramiddlediagonalbengali: 0x09F0, - ramshorn: 0x0264, - ratio: 0x2236, - rbopomofo: 0x3116, - rcaron: 0x0159, - rcedilla: 0x0157, - rcircle: 0x24E1, - rcommaaccent: 0x0157, - rdblgrave: 0x0211, - rdotaccent: 0x1E59, - rdotbelow: 0x1E5B, - rdotbelowmacron: 0x1E5D, - referencemark: 0x203B, - reflexsubset: 0x2286, - reflexsuperset: 0x2287, - registered: 0x00AE, - registersans: 0xF8E8, - registerserif: 0xF6DA, - reharabic: 0x0631, - reharmenian: 0x0580, - rehfinalarabic: 0xFEAE, - rehiragana: 0x308C, - rekatakana: 0x30EC, - rekatakanahalfwidth: 0xFF9A, - resh: 0x05E8, - reshdageshhebrew: 0xFB48, - reshhebrew: 0x05E8, - reversedtilde: 0x223D, - reviahebrew: 0x0597, - reviamugrashhebrew: 0x0597, - revlogicalnot: 0x2310, - rfishhook: 0x027E, - rfishhookreversed: 0x027F, - rhabengali: 0x09DD, - rhadeva: 0x095D, - rho: 0x03C1, - rhook: 0x027D, - rhookturned: 0x027B, - rhookturnedsuperior: 0x02B5, - rhosymbolgreek: 0x03F1, - rhotichookmod: 0x02DE, - rieulacirclekorean: 0x3271, - rieulaparenkorean: 0x3211, - rieulcirclekorean: 0x3263, - rieulhieuhkorean: 0x3140, - rieulkiyeokkorean: 0x313A, - rieulkiyeoksioskorean: 0x3169, - rieulkorean: 0x3139, - rieulmieumkorean: 0x313B, - rieulpansioskorean: 0x316C, - rieulparenkorean: 0x3203, - rieulphieuphkorean: 0x313F, - rieulpieupkorean: 0x313C, - rieulpieupsioskorean: 0x316B, - rieulsioskorean: 0x313D, - rieulthieuthkorean: 0x313E, - rieultikeutkorean: 0x316A, - rieulyeorinhieuhkorean: 0x316D, - rightangle: 0x221F, - righttackbelowcmb: 0x0319, - righttriangle: 0x22BF, - rihiragana: 0x308A, - rikatakana: 0x30EA, - rikatakanahalfwidth: 0xFF98, - ring: 0x02DA, - ringbelowcmb: 0x0325, - ringcmb: 0x030A, - ringhalfleft: 0x02BF, - ringhalfleftarmenian: 0x0559, - ringhalfleftbelowcmb: 0x031C, - ringhalfleftcentered: 0x02D3, - ringhalfright: 0x02BE, - ringhalfrightbelowcmb: 0x0339, - ringhalfrightcentered: 0x02D2, - rinvertedbreve: 0x0213, - rittorusquare: 0x3351, - rlinebelow: 0x1E5F, - rlongleg: 0x027C, - rlonglegturned: 0x027A, - rmonospace: 0xFF52, - rohiragana: 0x308D, - rokatakana: 0x30ED, - rokatakanahalfwidth: 0xFF9B, - roruathai: 0x0E23, - rparen: 0x24AD, - rrabengali: 0x09DC, - rradeva: 0x0931, - rragurmukhi: 0x0A5C, - rreharabic: 0x0691, - rrehfinalarabic: 0xFB8D, - rrvocalicbengali: 0x09E0, - rrvocalicdeva: 0x0960, - rrvocalicgujarati: 0x0AE0, - rrvocalicvowelsignbengali: 0x09C4, - rrvocalicvowelsigndeva: 0x0944, - rrvocalicvowelsigngujarati: 0x0AC4, - rsuperior: 0xF6F1, - rtblock: 0x2590, - rturned: 0x0279, - rturnedsuperior: 0x02B4, - ruhiragana: 0x308B, - rukatakana: 0x30EB, - rukatakanahalfwidth: 0xFF99, - rupeemarkbengali: 0x09F2, - rupeesignbengali: 0x09F3, - rupiah: 0xF6DD, - ruthai: 0x0E24, - rvocalicbengali: 0x098B, - rvocalicdeva: 0x090B, - rvocalicgujarati: 0x0A8B, - rvocalicvowelsignbengali: 0x09C3, - rvocalicvowelsigndeva: 0x0943, - rvocalicvowelsigngujarati: 0x0AC3, - s: 0x0073, - sabengali: 0x09B8, - sacute: 0x015B, - sacutedotaccent: 0x1E65, - sadarabic: 0x0635, - sadeva: 0x0938, - sadfinalarabic: 0xFEBA, - sadinitialarabic: 0xFEBB, - sadmedialarabic: 0xFEBC, - sagujarati: 0x0AB8, - sagurmukhi: 0x0A38, - sahiragana: 0x3055, - sakatakana: 0x30B5, - sakatakanahalfwidth: 0xFF7B, - sallallahoualayhewasallamarabic: 0xFDFA, - samekh: 0x05E1, - samekhdagesh: 0xFB41, - samekhdageshhebrew: 0xFB41, - samekhhebrew: 0x05E1, - saraaathai: 0x0E32, - saraaethai: 0x0E41, - saraaimaimalaithai: 0x0E44, - saraaimaimuanthai: 0x0E43, - saraamthai: 0x0E33, - saraathai: 0x0E30, - saraethai: 0x0E40, - saraiileftthai: 0xF886, - saraiithai: 0x0E35, - saraileftthai: 0xF885, - saraithai: 0x0E34, - saraothai: 0x0E42, - saraueeleftthai: 0xF888, - saraueethai: 0x0E37, - saraueleftthai: 0xF887, - sarauethai: 0x0E36, - sarauthai: 0x0E38, - sarauuthai: 0x0E39, - sbopomofo: 0x3119, - scaron: 0x0161, - scarondotaccent: 0x1E67, - scedilla: 0x015F, - schwa: 0x0259, - schwacyrillic: 0x04D9, - schwadieresiscyrillic: 0x04DB, - schwahook: 0x025A, - scircle: 0x24E2, - scircumflex: 0x015D, - scommaaccent: 0x0219, - sdotaccent: 0x1E61, - sdotbelow: 0x1E63, - sdotbelowdotaccent: 0x1E69, - seagullbelowcmb: 0x033C, - second: 0x2033, - secondtonechinese: 0x02CA, - section: 0x00A7, - seenarabic: 0x0633, - seenfinalarabic: 0xFEB2, - seeninitialarabic: 0xFEB3, - seenmedialarabic: 0xFEB4, - segol: 0x05B6, - segol13: 0x05B6, - segol1f: 0x05B6, - segol2c: 0x05B6, - segolhebrew: 0x05B6, - segolnarrowhebrew: 0x05B6, - segolquarterhebrew: 0x05B6, - segoltahebrew: 0x0592, - segolwidehebrew: 0x05B6, - seharmenian: 0x057D, - sehiragana: 0x305B, - sekatakana: 0x30BB, - sekatakanahalfwidth: 0xFF7E, - semicolon: 0x003B, - semicolonarabic: 0x061B, - semicolonmonospace: 0xFF1B, - semicolonsmall: 0xFE54, - semivoicedmarkkana: 0x309C, - semivoicedmarkkanahalfwidth: 0xFF9F, - sentisquare: 0x3322, - sentosquare: 0x3323, - seven: 0x0037, - sevenarabic: 0x0667, - sevenbengali: 0x09ED, - sevencircle: 0x2466, - sevencircleinversesansserif: 0x2790, - sevendeva: 0x096D, - seveneighths: 0x215E, - sevengujarati: 0x0AED, - sevengurmukhi: 0x0A6D, - sevenhackarabic: 0x0667, - sevenhangzhou: 0x3027, - sevenideographicparen: 0x3226, - seveninferior: 0x2087, - sevenmonospace: 0xFF17, - sevenoldstyle: 0xF737, - sevenparen: 0x247A, - sevenperiod: 0x248E, - sevenpersian: 0x06F7, - sevenroman: 0x2176, - sevensuperior: 0x2077, - seventeencircle: 0x2470, - seventeenparen: 0x2484, - seventeenperiod: 0x2498, - seventhai: 0x0E57, - sfthyphen: 0x00AD, - shaarmenian: 0x0577, - shabengali: 0x09B6, - shacyrillic: 0x0448, - shaddaarabic: 0x0651, - shaddadammaarabic: 0xFC61, - shaddadammatanarabic: 0xFC5E, - shaddafathaarabic: 0xFC60, - shaddakasraarabic: 0xFC62, - shaddakasratanarabic: 0xFC5F, - shade: 0x2592, - shadedark: 0x2593, - shadelight: 0x2591, - shademedium: 0x2592, - shadeva: 0x0936, - shagujarati: 0x0AB6, - shagurmukhi: 0x0A36, - shalshelethebrew: 0x0593, - shbopomofo: 0x3115, - shchacyrillic: 0x0449, - sheenarabic: 0x0634, - sheenfinalarabic: 0xFEB6, - sheeninitialarabic: 0xFEB7, - sheenmedialarabic: 0xFEB8, - sheicoptic: 0x03E3, - sheqel: 0x20AA, - sheqelhebrew: 0x20AA, - sheva: 0x05B0, - sheva115: 0x05B0, - sheva15: 0x05B0, - sheva22: 0x05B0, - sheva2e: 0x05B0, - shevahebrew: 0x05B0, - shevanarrowhebrew: 0x05B0, - shevaquarterhebrew: 0x05B0, - shevawidehebrew: 0x05B0, - shhacyrillic: 0x04BB, - shimacoptic: 0x03ED, - shin: 0x05E9, - shindagesh: 0xFB49, - shindageshhebrew: 0xFB49, - shindageshshindot: 0xFB2C, - shindageshshindothebrew: 0xFB2C, - shindageshsindot: 0xFB2D, - shindageshsindothebrew: 0xFB2D, - shindothebrew: 0x05C1, - shinhebrew: 0x05E9, - shinshindot: 0xFB2A, - shinshindothebrew: 0xFB2A, - shinsindot: 0xFB2B, - shinsindothebrew: 0xFB2B, - shook: 0x0282, - sigma: 0x03C3, - sigma1: 0x03C2, - sigmafinal: 0x03C2, - sigmalunatesymbolgreek: 0x03F2, - sihiragana: 0x3057, - sikatakana: 0x30B7, - sikatakanahalfwidth: 0xFF7C, - siluqhebrew: 0x05BD, - siluqlefthebrew: 0x05BD, - similar: 0x223C, - sindothebrew: 0x05C2, - siosacirclekorean: 0x3274, - siosaparenkorean: 0x3214, - sioscieuckorean: 0x317E, - sioscirclekorean: 0x3266, - sioskiyeokkorean: 0x317A, - sioskorean: 0x3145, - siosnieunkorean: 0x317B, - siosparenkorean: 0x3206, - siospieupkorean: 0x317D, - siostikeutkorean: 0x317C, - six: 0x0036, - sixarabic: 0x0666, - sixbengali: 0x09EC, - sixcircle: 0x2465, - sixcircleinversesansserif: 0x278F, - sixdeva: 0x096C, - sixgujarati: 0x0AEC, - sixgurmukhi: 0x0A6C, - sixhackarabic: 0x0666, - sixhangzhou: 0x3026, - sixideographicparen: 0x3225, - sixinferior: 0x2086, - sixmonospace: 0xFF16, - sixoldstyle: 0xF736, - sixparen: 0x2479, - sixperiod: 0x248D, - sixpersian: 0x06F6, - sixroman: 0x2175, - sixsuperior: 0x2076, - sixteencircle: 0x246F, - sixteencurrencydenominatorbengali: 0x09F9, - sixteenparen: 0x2483, - sixteenperiod: 0x2497, - sixthai: 0x0E56, - slash: 0x002F, - slashmonospace: 0xFF0F, - slong: 0x017F, - slongdotaccent: 0x1E9B, - smileface: 0x263A, - smonospace: 0xFF53, - sofpasuqhebrew: 0x05C3, - softhyphen: 0x00AD, - softsigncyrillic: 0x044C, - sohiragana: 0x305D, - sokatakana: 0x30BD, - sokatakanahalfwidth: 0xFF7F, - soliduslongoverlaycmb: 0x0338, - solidusshortoverlaycmb: 0x0337, - sorusithai: 0x0E29, - sosalathai: 0x0E28, - sosothai: 0x0E0B, - sosuathai: 0x0E2A, - space: 0x0020, - spacehackarabic: 0x0020, - spade: 0x2660, - spadesuitblack: 0x2660, - spadesuitwhite: 0x2664, - sparen: 0x24AE, - squarebelowcmb: 0x033B, - squarecc: 0x33C4, - squarecm: 0x339D, - squarediagonalcrosshatchfill: 0x25A9, - squarehorizontalfill: 0x25A4, - squarekg: 0x338F, - squarekm: 0x339E, - squarekmcapital: 0x33CE, - squareln: 0x33D1, - squarelog: 0x33D2, - squaremg: 0x338E, - squaremil: 0x33D5, - squaremm: 0x339C, - squaremsquared: 0x33A1, - squareorthogonalcrosshatchfill: 0x25A6, - squareupperlefttolowerrightfill: 0x25A7, - squareupperrighttolowerleftfill: 0x25A8, - squareverticalfill: 0x25A5, - squarewhitewithsmallblack: 0x25A3, - srsquare: 0x33DB, - ssabengali: 0x09B7, - ssadeva: 0x0937, - ssagujarati: 0x0AB7, - ssangcieuckorean: 0x3149, - ssanghieuhkorean: 0x3185, - ssangieungkorean: 0x3180, - ssangkiyeokkorean: 0x3132, - ssangnieunkorean: 0x3165, - ssangpieupkorean: 0x3143, - ssangsioskorean: 0x3146, - ssangtikeutkorean: 0x3138, - ssuperior: 0xF6F2, - sterling: 0x00A3, - sterlingmonospace: 0xFFE1, - strokelongoverlaycmb: 0x0336, - strokeshortoverlaycmb: 0x0335, - subset: 0x2282, - subsetnotequal: 0x228A, - subsetorequal: 0x2286, - succeeds: 0x227B, - suchthat: 0x220B, - suhiragana: 0x3059, - sukatakana: 0x30B9, - sukatakanahalfwidth: 0xFF7D, - sukunarabic: 0x0652, - summation: 0x2211, - sun: 0x263C, - superset: 0x2283, - supersetnotequal: 0x228B, - supersetorequal: 0x2287, - svsquare: 0x33DC, - syouwaerasquare: 0x337C, - t: 0x0074, - tabengali: 0x09A4, - tackdown: 0x22A4, - tackleft: 0x22A3, - tadeva: 0x0924, - tagujarati: 0x0AA4, - tagurmukhi: 0x0A24, - taharabic: 0x0637, - tahfinalarabic: 0xFEC2, - tahinitialarabic: 0xFEC3, - tahiragana: 0x305F, - tahmedialarabic: 0xFEC4, - taisyouerasquare: 0x337D, - takatakana: 0x30BF, - takatakanahalfwidth: 0xFF80, - tatweelarabic: 0x0640, - tau: 0x03C4, - tav: 0x05EA, - tavdages: 0xFB4A, - tavdagesh: 0xFB4A, - tavdageshhebrew: 0xFB4A, - tavhebrew: 0x05EA, - tbar: 0x0167, - tbopomofo: 0x310A, - tcaron: 0x0165, - tccurl: 0x02A8, - tcedilla: 0x0163, - tcheharabic: 0x0686, - tchehfinalarabic: 0xFB7B, - tchehinitialarabic: 0xFB7C, - tchehmedialarabic: 0xFB7D, - tcircle: 0x24E3, - tcircumflexbelow: 0x1E71, - tcommaaccent: 0x0163, - tdieresis: 0x1E97, - tdotaccent: 0x1E6B, - tdotbelow: 0x1E6D, - tecyrillic: 0x0442, - tedescendercyrillic: 0x04AD, - teharabic: 0x062A, - tehfinalarabic: 0xFE96, - tehhahinitialarabic: 0xFCA2, - tehhahisolatedarabic: 0xFC0C, - tehinitialarabic: 0xFE97, - tehiragana: 0x3066, - tehjeeminitialarabic: 0xFCA1, - tehjeemisolatedarabic: 0xFC0B, - tehmarbutaarabic: 0x0629, - tehmarbutafinalarabic: 0xFE94, - tehmedialarabic: 0xFE98, - tehmeeminitialarabic: 0xFCA4, - tehmeemisolatedarabic: 0xFC0E, - tehnoonfinalarabic: 0xFC73, - tekatakana: 0x30C6, - tekatakanahalfwidth: 0xFF83, - telephone: 0x2121, - telephoneblack: 0x260E, - telishagedolahebrew: 0x05A0, - telishaqetanahebrew: 0x05A9, - tencircle: 0x2469, - tenideographicparen: 0x3229, - tenparen: 0x247D, - tenperiod: 0x2491, - tenroman: 0x2179, - tesh: 0x02A7, - tet: 0x05D8, - tetdagesh: 0xFB38, - tetdageshhebrew: 0xFB38, - tethebrew: 0x05D8, - tetsecyrillic: 0x04B5, - tevirhebrew: 0x059B, - tevirlefthebrew: 0x059B, - thabengali: 0x09A5, - thadeva: 0x0925, - thagujarati: 0x0AA5, - thagurmukhi: 0x0A25, - thalarabic: 0x0630, - thalfinalarabic: 0xFEAC, - thanthakhatlowleftthai: 0xF898, - thanthakhatlowrightthai: 0xF897, - thanthakhatthai: 0x0E4C, - thanthakhatupperleftthai: 0xF896, - theharabic: 0x062B, - thehfinalarabic: 0xFE9A, - thehinitialarabic: 0xFE9B, - thehmedialarabic: 0xFE9C, - thereexists: 0x2203, - therefore: 0x2234, - theta: 0x03B8, - theta1: 0x03D1, - thetasymbolgreek: 0x03D1, - thieuthacirclekorean: 0x3279, - thieuthaparenkorean: 0x3219, - thieuthcirclekorean: 0x326B, - thieuthkorean: 0x314C, - thieuthparenkorean: 0x320B, - thirteencircle: 0x246C, - thirteenparen: 0x2480, - thirteenperiod: 0x2494, - thonangmonthothai: 0x0E11, - thook: 0x01AD, - thophuthaothai: 0x0E12, - thorn: 0x00FE, - thothahanthai: 0x0E17, - thothanthai: 0x0E10, - thothongthai: 0x0E18, - thothungthai: 0x0E16, - thousandcyrillic: 0x0482, - thousandsseparatorarabic: 0x066C, - thousandsseparatorpersian: 0x066C, - three: 0x0033, - threearabic: 0x0663, - threebengali: 0x09E9, - threecircle: 0x2462, - threecircleinversesansserif: 0x278C, - threedeva: 0x0969, - threeeighths: 0x215C, - threegujarati: 0x0AE9, - threegurmukhi: 0x0A69, - threehackarabic: 0x0663, - threehangzhou: 0x3023, - threeideographicparen: 0x3222, - threeinferior: 0x2083, - threemonospace: 0xFF13, - threenumeratorbengali: 0x09F6, - threeoldstyle: 0xF733, - threeparen: 0x2476, - threeperiod: 0x248A, - threepersian: 0x06F3, - threequarters: 0x00BE, - threequartersemdash: 0xF6DE, - threeroman: 0x2172, - threesuperior: 0x00B3, - threethai: 0x0E53, - thzsquare: 0x3394, - tihiragana: 0x3061, - tikatakana: 0x30C1, - tikatakanahalfwidth: 0xFF81, - tikeutacirclekorean: 0x3270, - tikeutaparenkorean: 0x3210, - tikeutcirclekorean: 0x3262, - tikeutkorean: 0x3137, - tikeutparenkorean: 0x3202, - tilde: 0x02DC, - tildebelowcmb: 0x0330, - tildecmb: 0x0303, - tildecomb: 0x0303, - tildedoublecmb: 0x0360, - tildeoperator: 0x223C, - tildeoverlaycmb: 0x0334, - tildeverticalcmb: 0x033E, - timescircle: 0x2297, - tipehahebrew: 0x0596, - tipehalefthebrew: 0x0596, - tippigurmukhi: 0x0A70, - titlocyrilliccmb: 0x0483, - tiwnarmenian: 0x057F, - tlinebelow: 0x1E6F, - tmonospace: 0xFF54, - toarmenian: 0x0569, - tohiragana: 0x3068, - tokatakana: 0x30C8, - tokatakanahalfwidth: 0xFF84, - tonebarextrahighmod: 0x02E5, - tonebarextralowmod: 0x02E9, - tonebarhighmod: 0x02E6, - tonebarlowmod: 0x02E8, - tonebarmidmod: 0x02E7, - tonefive: 0x01BD, - tonesix: 0x0185, - tonetwo: 0x01A8, - tonos: 0x0384, - tonsquare: 0x3327, - topatakthai: 0x0E0F, - tortoiseshellbracketleft: 0x3014, - tortoiseshellbracketleftsmall: 0xFE5D, - tortoiseshellbracketleftvertical: 0xFE39, - tortoiseshellbracketright: 0x3015, - tortoiseshellbracketrightsmall: 0xFE5E, - tortoiseshellbracketrightvertical: 0xFE3A, - totaothai: 0x0E15, - tpalatalhook: 0x01AB, - tparen: 0x24AF, - trademark: 0x2122, - trademarksans: 0xF8EA, - trademarkserif: 0xF6DB, - tretroflexhook: 0x0288, - triagdn: 0x25BC, - triaglf: 0x25C4, - triagrt: 0x25BA, - triagup: 0x25B2, - ts: 0x02A6, - tsadi: 0x05E6, - tsadidagesh: 0xFB46, - tsadidageshhebrew: 0xFB46, - tsadihebrew: 0x05E6, - tsecyrillic: 0x0446, - tsere: 0x05B5, - tsere12: 0x05B5, - tsere1e: 0x05B5, - tsere2b: 0x05B5, - tserehebrew: 0x05B5, - tserenarrowhebrew: 0x05B5, - tserequarterhebrew: 0x05B5, - tserewidehebrew: 0x05B5, - tshecyrillic: 0x045B, - tsuperior: 0xF6F3, - ttabengali: 0x099F, - ttadeva: 0x091F, - ttagujarati: 0x0A9F, - ttagurmukhi: 0x0A1F, - tteharabic: 0x0679, - ttehfinalarabic: 0xFB67, - ttehinitialarabic: 0xFB68, - ttehmedialarabic: 0xFB69, - tthabengali: 0x09A0, - tthadeva: 0x0920, - tthagujarati: 0x0AA0, - tthagurmukhi: 0x0A20, - tturned: 0x0287, - tuhiragana: 0x3064, - tukatakana: 0x30C4, - tukatakanahalfwidth: 0xFF82, - tusmallhiragana: 0x3063, - tusmallkatakana: 0x30C3, - tusmallkatakanahalfwidth: 0xFF6F, - twelvecircle: 0x246B, - twelveparen: 0x247F, - twelveperiod: 0x2493, - twelveroman: 0x217B, - twentycircle: 0x2473, - twentyhangzhou: 0x5344, - twentyparen: 0x2487, - twentyperiod: 0x249B, - two: 0x0032, - twoarabic: 0x0662, - twobengali: 0x09E8, - twocircle: 0x2461, - twocircleinversesansserif: 0x278B, - twodeva: 0x0968, - twodotenleader: 0x2025, - twodotleader: 0x2025, - twodotleadervertical: 0xFE30, - twogujarati: 0x0AE8, - twogurmukhi: 0x0A68, - twohackarabic: 0x0662, - twohangzhou: 0x3022, - twoideographicparen: 0x3221, - twoinferior: 0x2082, - twomonospace: 0xFF12, - twonumeratorbengali: 0x09F5, - twooldstyle: 0xF732, - twoparen: 0x2475, - twoperiod: 0x2489, - twopersian: 0x06F2, - tworoman: 0x2171, - twostroke: 0x01BB, - twosuperior: 0x00B2, - twothai: 0x0E52, - twothirds: 0x2154, - u: 0x0075, - uacute: 0x00FA, - ubar: 0x0289, - ubengali: 0x0989, - ubopomofo: 0x3128, - ubreve: 0x016D, - ucaron: 0x01D4, - ucircle: 0x24E4, - ucircumflex: 0x00FB, - ucircumflexbelow: 0x1E77, - ucyrillic: 0x0443, - udattadeva: 0x0951, - udblacute: 0x0171, - udblgrave: 0x0215, - udeva: 0x0909, - udieresis: 0x00FC, - udieresisacute: 0x01D8, - udieresisbelow: 0x1E73, - udieresiscaron: 0x01DA, - udieresiscyrillic: 0x04F1, - udieresisgrave: 0x01DC, - udieresismacron: 0x01D6, - udotbelow: 0x1EE5, - ugrave: 0x00F9, - ugujarati: 0x0A89, - ugurmukhi: 0x0A09, - uhiragana: 0x3046, - uhookabove: 0x1EE7, - uhorn: 0x01B0, - uhornacute: 0x1EE9, - uhorndotbelow: 0x1EF1, - uhorngrave: 0x1EEB, - uhornhookabove: 0x1EED, - uhorntilde: 0x1EEF, - uhungarumlaut: 0x0171, - uhungarumlautcyrillic: 0x04F3, - uinvertedbreve: 0x0217, - ukatakana: 0x30A6, - ukatakanahalfwidth: 0xFF73, - ukcyrillic: 0x0479, - ukorean: 0x315C, - umacron: 0x016B, - umacroncyrillic: 0x04EF, - umacrondieresis: 0x1E7B, - umatragurmukhi: 0x0A41, - umonospace: 0xFF55, - underscore: 0x005F, - underscoredbl: 0x2017, - underscoremonospace: 0xFF3F, - underscorevertical: 0xFE33, - underscorewavy: 0xFE4F, - union: 0x222A, - universal: 0x2200, - uogonek: 0x0173, - uparen: 0x24B0, - upblock: 0x2580, - upperdothebrew: 0x05C4, - upsilon: 0x03C5, - upsilondieresis: 0x03CB, - upsilondieresistonos: 0x03B0, - upsilonlatin: 0x028A, - upsilontonos: 0x03CD, - uptackbelowcmb: 0x031D, - uptackmod: 0x02D4, - uragurmukhi: 0x0A73, - uring: 0x016F, - ushortcyrillic: 0x045E, - usmallhiragana: 0x3045, - usmallkatakana: 0x30A5, - usmallkatakanahalfwidth: 0xFF69, - ustraightcyrillic: 0x04AF, - ustraightstrokecyrillic: 0x04B1, - utilde: 0x0169, - utildeacute: 0x1E79, - utildebelow: 0x1E75, - uubengali: 0x098A, - uudeva: 0x090A, - uugujarati: 0x0A8A, - uugurmukhi: 0x0A0A, - uumatragurmukhi: 0x0A42, - uuvowelsignbengali: 0x09C2, - uuvowelsigndeva: 0x0942, - uuvowelsigngujarati: 0x0AC2, - uvowelsignbengali: 0x09C1, - uvowelsigndeva: 0x0941, - uvowelsigngujarati: 0x0AC1, - v: 0x0076, - vadeva: 0x0935, - vagujarati: 0x0AB5, - vagurmukhi: 0x0A35, - vakatakana: 0x30F7, - vav: 0x05D5, - vavdagesh: 0xFB35, - vavdagesh65: 0xFB35, - vavdageshhebrew: 0xFB35, - vavhebrew: 0x05D5, - vavholam: 0xFB4B, - vavholamhebrew: 0xFB4B, - vavvavhebrew: 0x05F0, - vavyodhebrew: 0x05F1, - vcircle: 0x24E5, - vdotbelow: 0x1E7F, - vecyrillic: 0x0432, - veharabic: 0x06A4, - vehfinalarabic: 0xFB6B, - vehinitialarabic: 0xFB6C, - vehmedialarabic: 0xFB6D, - vekatakana: 0x30F9, - venus: 0x2640, - verticalbar: 0x007C, - verticallineabovecmb: 0x030D, - verticallinebelowcmb: 0x0329, - verticallinelowmod: 0x02CC, - verticallinemod: 0x02C8, - vewarmenian: 0x057E, - vhook: 0x028B, - vikatakana: 0x30F8, - viramabengali: 0x09CD, - viramadeva: 0x094D, - viramagujarati: 0x0ACD, - visargabengali: 0x0983, - visargadeva: 0x0903, - visargagujarati: 0x0A83, - vmonospace: 0xFF56, - voarmenian: 0x0578, - voicediterationhiragana: 0x309E, - voicediterationkatakana: 0x30FE, - voicedmarkkana: 0x309B, - voicedmarkkanahalfwidth: 0xFF9E, - vokatakana: 0x30FA, - vparen: 0x24B1, - vtilde: 0x1E7D, - vturned: 0x028C, - vuhiragana: 0x3094, - vukatakana: 0x30F4, - w: 0x0077, - wacute: 0x1E83, - waekorean: 0x3159, - wahiragana: 0x308F, - wakatakana: 0x30EF, - wakatakanahalfwidth: 0xFF9C, - wakorean: 0x3158, - wasmallhiragana: 0x308E, - wasmallkatakana: 0x30EE, - wattosquare: 0x3357, - wavedash: 0x301C, - wavyunderscorevertical: 0xFE34, - wawarabic: 0x0648, - wawfinalarabic: 0xFEEE, - wawhamzaabovearabic: 0x0624, - wawhamzaabovefinalarabic: 0xFE86, - wbsquare: 0x33DD, - wcircle: 0x24E6, - wcircumflex: 0x0175, - wdieresis: 0x1E85, - wdotaccent: 0x1E87, - wdotbelow: 0x1E89, - wehiragana: 0x3091, - weierstrass: 0x2118, - wekatakana: 0x30F1, - wekorean: 0x315E, - weokorean: 0x315D, - wgrave: 0x1E81, - whitebullet: 0x25E6, - whitecircle: 0x25CB, - whitecircleinverse: 0x25D9, - whitecornerbracketleft: 0x300E, - whitecornerbracketleftvertical: 0xFE43, - whitecornerbracketright: 0x300F, - whitecornerbracketrightvertical: 0xFE44, - whitediamond: 0x25C7, - whitediamondcontainingblacksmalldiamond: 0x25C8, - whitedownpointingsmalltriangle: 0x25BF, - whitedownpointingtriangle: 0x25BD, - whiteleftpointingsmalltriangle: 0x25C3, - whiteleftpointingtriangle: 0x25C1, - whitelenticularbracketleft: 0x3016, - whitelenticularbracketright: 0x3017, - whiterightpointingsmalltriangle: 0x25B9, - whiterightpointingtriangle: 0x25B7, - whitesmallsquare: 0x25AB, - whitesmilingface: 0x263A, - whitesquare: 0x25A1, - whitestar: 0x2606, - whitetelephone: 0x260F, - whitetortoiseshellbracketleft: 0x3018, - whitetortoiseshellbracketright: 0x3019, - whiteuppointingsmalltriangle: 0x25B5, - whiteuppointingtriangle: 0x25B3, - wihiragana: 0x3090, - wikatakana: 0x30F0, - wikorean: 0x315F, - wmonospace: 0xFF57, - wohiragana: 0x3092, - wokatakana: 0x30F2, - wokatakanahalfwidth: 0xFF66, - won: 0x20A9, - wonmonospace: 0xFFE6, - wowaenthai: 0x0E27, - wparen: 0x24B2, - wring: 0x1E98, - wsuperior: 0x02B7, - wturned: 0x028D, - wynn: 0x01BF, - x: 0x0078, - xabovecmb: 0x033D, - xbopomofo: 0x3112, - xcircle: 0x24E7, - xdieresis: 0x1E8D, - xdotaccent: 0x1E8B, - xeharmenian: 0x056D, - xi: 0x03BE, - xmonospace: 0xFF58, - xparen: 0x24B3, - xsuperior: 0x02E3, - y: 0x0079, - yaadosquare: 0x334E, - yabengali: 0x09AF, - yacute: 0x00FD, - yadeva: 0x092F, - yaekorean: 0x3152, - yagujarati: 0x0AAF, - yagurmukhi: 0x0A2F, - yahiragana: 0x3084, - yakatakana: 0x30E4, - yakatakanahalfwidth: 0xFF94, - yakorean: 0x3151, - yamakkanthai: 0x0E4E, - yasmallhiragana: 0x3083, - yasmallkatakana: 0x30E3, - yasmallkatakanahalfwidth: 0xFF6C, - yatcyrillic: 0x0463, - ycircle: 0x24E8, - ycircumflex: 0x0177, - ydieresis: 0x00FF, - ydotaccent: 0x1E8F, - ydotbelow: 0x1EF5, - yeharabic: 0x064A, - yehbarreearabic: 0x06D2, - yehbarreefinalarabic: 0xFBAF, - yehfinalarabic: 0xFEF2, - yehhamzaabovearabic: 0x0626, - yehhamzaabovefinalarabic: 0xFE8A, - yehhamzaaboveinitialarabic: 0xFE8B, - yehhamzaabovemedialarabic: 0xFE8C, - yehinitialarabic: 0xFEF3, - yehmedialarabic: 0xFEF4, - yehmeeminitialarabic: 0xFCDD, - yehmeemisolatedarabic: 0xFC58, - yehnoonfinalarabic: 0xFC94, - yehthreedotsbelowarabic: 0x06D1, - yekorean: 0x3156, - yen: 0x00A5, - yenmonospace: 0xFFE5, - yeokorean: 0x3155, - yeorinhieuhkorean: 0x3186, - yerahbenyomohebrew: 0x05AA, - yerahbenyomolefthebrew: 0x05AA, - yericyrillic: 0x044B, - yerudieresiscyrillic: 0x04F9, - yesieungkorean: 0x3181, - yesieungpansioskorean: 0x3183, - yesieungsioskorean: 0x3182, - yetivhebrew: 0x059A, - ygrave: 0x1EF3, - yhook: 0x01B4, - yhookabove: 0x1EF7, - yiarmenian: 0x0575, - yicyrillic: 0x0457, - yikorean: 0x3162, - yinyang: 0x262F, - yiwnarmenian: 0x0582, - ymonospace: 0xFF59, - yod: 0x05D9, - yoddagesh: 0xFB39, - yoddageshhebrew: 0xFB39, - yodhebrew: 0x05D9, - yodyodhebrew: 0x05F2, - yodyodpatahhebrew: 0xFB1F, - yohiragana: 0x3088, - yoikorean: 0x3189, - yokatakana: 0x30E8, - yokatakanahalfwidth: 0xFF96, - yokorean: 0x315B, - yosmallhiragana: 0x3087, - yosmallkatakana: 0x30E7, - yosmallkatakanahalfwidth: 0xFF6E, - yotgreek: 0x03F3, - yoyaekorean: 0x3188, - yoyakorean: 0x3187, - yoyakthai: 0x0E22, - yoyingthai: 0x0E0D, - yparen: 0x24B4, - ypogegrammeni: 0x037A, - ypogegrammenigreekcmb: 0x0345, - yr: 0x01A6, - yring: 0x1E99, - ysuperior: 0x02B8, - ytilde: 0x1EF9, - yturned: 0x028E, - yuhiragana: 0x3086, - yuikorean: 0x318C, - yukatakana: 0x30E6, - yukatakanahalfwidth: 0xFF95, - yukorean: 0x3160, - yusbigcyrillic: 0x046B, - yusbigiotifiedcyrillic: 0x046D, - yuslittlecyrillic: 0x0467, - yuslittleiotifiedcyrillic: 0x0469, - yusmallhiragana: 0x3085, - yusmallkatakana: 0x30E5, - yusmallkatakanahalfwidth: 0xFF6D, - yuyekorean: 0x318B, - yuyeokorean: 0x318A, - yyabengali: 0x09DF, - yyadeva: 0x095F, - z: 0x007A, - zaarmenian: 0x0566, - zacute: 0x017A, - zadeva: 0x095B, - zagurmukhi: 0x0A5B, - zaharabic: 0x0638, - zahfinalarabic: 0xFEC6, - zahinitialarabic: 0xFEC7, - zahiragana: 0x3056, - zahmedialarabic: 0xFEC8, - zainarabic: 0x0632, - zainfinalarabic: 0xFEB0, - zakatakana: 0x30B6, - zaqefgadolhebrew: 0x0595, - zaqefqatanhebrew: 0x0594, - zarqahebrew: 0x0598, - zayin: 0x05D6, - zayindagesh: 0xFB36, - zayindageshhebrew: 0xFB36, - zayinhebrew: 0x05D6, - zbopomofo: 0x3117, - zcaron: 0x017E, - zcircle: 0x24E9, - zcircumflex: 0x1E91, - zcurl: 0x0291, - zdot: 0x017C, - zdotaccent: 0x017C, - zdotbelow: 0x1E93, - zecyrillic: 0x0437, - zedescendercyrillic: 0x0499, - zedieresiscyrillic: 0x04DF, - zehiragana: 0x305C, - zekatakana: 0x30BC, - zero: 0x0030, - zeroarabic: 0x0660, - zerobengali: 0x09E6, - zerodeva: 0x0966, - zerogujarati: 0x0AE6, - zerogurmukhi: 0x0A66, - zerohackarabic: 0x0660, - zeroinferior: 0x2080, - zeromonospace: 0xFF10, - zerooldstyle: 0xF730, - zeropersian: 0x06F0, - zerosuperior: 0x2070, - zerothai: 0x0E50, - zerowidthjoiner: 0xFEFF, - zerowidthnonjoiner: 0x200C, - zerowidthspace: 0x200B, - zeta: 0x03B6, - zhbopomofo: 0x3113, - zhearmenian: 0x056A, - zhebrevecyrillic: 0x04C2, - zhecyrillic: 0x0436, - zhedescendercyrillic: 0x0497, - zhedieresiscyrillic: 0x04DD, - zihiragana: 0x3058, - zikatakana: 0x30B8, - zinorhebrew: 0x05AE, - zlinebelow: 0x1E95, - zmonospace: 0xFF5A, - zohiragana: 0x305E, - zokatakana: 0x30BE, - zparen: 0x24B5, - zretroflexhook: 0x0290, - zstroke: 0x01B6, - zuhiragana: 0x305A, - zukatakana: 0x30BA, - '.notdef': 0x0000 -}; - -var DingbatsGlyphsUnicode = { - space: 0x0020, - a1: 0x2701, - a2: 0x2702, - a202: 0x2703, - a3: 0x2704, - a4: 0x260E, - a5: 0x2706, - a119: 0x2707, - a118: 0x2708, - a117: 0x2709, - a11: 0x261B, - a12: 0x261E, - a13: 0x270C, - a14: 0x270D, - a15: 0x270E, - a16: 0x270F, - a105: 0x2710, - a17: 0x2711, - a18: 0x2712, - a19: 0x2713, - a20: 0x2714, - a21: 0x2715, - a22: 0x2716, - a23: 0x2717, - a24: 0x2718, - a25: 0x2719, - a26: 0x271A, - a27: 0x271B, - a28: 0x271C, - a6: 0x271D, - a7: 0x271E, - a8: 0x271F, - a9: 0x2720, - a10: 0x2721, - a29: 0x2722, - a30: 0x2723, - a31: 0x2724, - a32: 0x2725, - a33: 0x2726, - a34: 0x2727, - a35: 0x2605, - a36: 0x2729, - a37: 0x272A, - a38: 0x272B, - a39: 0x272C, - a40: 0x272D, - a41: 0x272E, - a42: 0x272F, - a43: 0x2730, - a44: 0x2731, - a45: 0x2732, - a46: 0x2733, - a47: 0x2734, - a48: 0x2735, - a49: 0x2736, - a50: 0x2737, - a51: 0x2738, - a52: 0x2739, - a53: 0x273A, - a54: 0x273B, - a55: 0x273C, - a56: 0x273D, - a57: 0x273E, - a58: 0x273F, - a59: 0x2740, - a60: 0x2741, - a61: 0x2742, - a62: 0x2743, - a63: 0x2744, - a64: 0x2745, - a65: 0x2746, - a66: 0x2747, - a67: 0x2748, - a68: 0x2749, - a69: 0x274A, - a70: 0x274B, - a71: 0x25CF, - a72: 0x274D, - a73: 0x25A0, - a74: 0x274F, - a203: 0x2750, - a75: 0x2751, - a204: 0x2752, - a76: 0x25B2, - a77: 0x25BC, - a78: 0x25C6, - a79: 0x2756, - a81: 0x25D7, - a82: 0x2758, - a83: 0x2759, - a84: 0x275A, - a97: 0x275B, - a98: 0x275C, - a99: 0x275D, - a100: 0x275E, - a101: 0x2761, - a102: 0x2762, - a103: 0x2763, - a104: 0x2764, - a106: 0x2765, - a107: 0x2766, - a108: 0x2767, - a112: 0x2663, - a111: 0x2666, - a110: 0x2665, - a109: 0x2660, - a120: 0x2460, - a121: 0x2461, - a122: 0x2462, - a123: 0x2463, - a124: 0x2464, - a125: 0x2465, - a126: 0x2466, - a127: 0x2467, - a128: 0x2468, - a129: 0x2469, - a130: 0x2776, - a131: 0x2777, - a132: 0x2778, - a133: 0x2779, - a134: 0x277A, - a135: 0x277B, - a136: 0x277C, - a137: 0x277D, - a138: 0x277E, - a139: 0x277F, - a140: 0x2780, - a141: 0x2781, - a142: 0x2782, - a143: 0x2783, - a144: 0x2784, - a145: 0x2785, - a146: 0x2786, - a147: 0x2787, - a148: 0x2788, - a149: 0x2789, - a150: 0x278A, - a151: 0x278B, - a152: 0x278C, - a153: 0x278D, - a154: 0x278E, - a155: 0x278F, - a156: 0x2790, - a157: 0x2791, - a158: 0x2792, - a159: 0x2793, - a160: 0x2794, - a161: 0x2192, - a163: 0x2194, - a164: 0x2195, - a196: 0x2798, - a165: 0x2799, - a192: 0x279A, - a166: 0x279B, - a167: 0x279C, - a168: 0x279D, - a169: 0x279E, - a170: 0x279F, - a171: 0x27A0, - a172: 0x27A1, - a173: 0x27A2, - a162: 0x27A3, - a174: 0x27A4, - a175: 0x27A5, - a176: 0x27A6, - a177: 0x27A7, - a178: 0x27A8, - a179: 0x27A9, - a193: 0x27AA, - a180: 0x27AB, - a199: 0x27AC, - a181: 0x27AD, - a200: 0x27AE, - a182: 0x27AF, - a201: 0x27B1, - a183: 0x27B2, - a184: 0x27B3, - a197: 0x27B4, - a185: 0x27B5, - a194: 0x27B6, - a198: 0x27B7, - a186: 0x27B8, - a195: 0x27B9, - a187: 0x27BA, - a188: 0x27BB, - a189: 0x27BC, - a190: 0x27BD, - a191: 0x27BE, - a89: 0x2768, // 0xF8D7 - a90: 0x2769, // 0xF8D8 - a93: 0x276A, // 0xF8D9 - a94: 0x276B, // 0xF8DA - a91: 0x276C, // 0xF8DB - a92: 0x276D, // 0xF8DC - a205: 0x276E, // 0xF8DD - a85: 0x276F, // 0xF8DE - a206: 0x2770, // 0xF8DF - a86: 0x2771, // 0xF8E0 - a87: 0x2772, // 0xF8E1 - a88: 0x2773, // 0xF8E2 - a95: 0x2774, // 0xF8E3 - a96: 0x2775, // 0xF8E4 - '.notdef': 0x0000 -}; - - -var PDFImage = (function PDFImageClosure() { - /** - * Decode the image in the main thread if it supported. Resovles the promise - * when the image data is ready. - */ - function handleImageData(handler, xref, res, image) { - if (image instanceof JpegStream && image.isNativelyDecodable(xref, res)) { - // For natively supported jpegs send them to the main thread for decoding. - var dict = image.dict; - var colorSpace = dict.get('ColorSpace', 'CS'); - colorSpace = ColorSpace.parse(colorSpace, xref, res); - var numComps = colorSpace.numComps; - var decodePromise = handler.sendWithPromise('JpegDecode', - [image.getIR(), numComps]); - return decodePromise.then(function (message) { - var data = message.data; - return new Stream(data, 0, data.length, image.dict); - }); - } else { - return Promise.resolve(image); - } - } - - /** - * Decode and clamp a value. The formula is different from the spec because we - * don't decode to float range [0,1], we decode it in the [0,max] range. - */ - function decodeAndClamp(value, addend, coefficient, max) { - value = addend + value * coefficient; - // Clamp the value to the range - return (value < 0 ? 0 : (value > max ? max : value)); - } - - function PDFImage(xref, res, image, inline, smask, mask, isMask) { - this.image = image; - var dict = image.dict; - if (dict.has('Filter')) { - var filter = dict.get('Filter').name; - if (filter === 'JPXDecode') { - var jpxImage = new JpxImage(); - jpxImage.parseImageProperties(image.stream); - image.stream.reset(); - image.bitsPerComponent = jpxImage.bitsPerComponent; - image.numComps = jpxImage.componentsCount; - } else if (filter === 'JBIG2Decode') { - image.bitsPerComponent = 1; - image.numComps = 1; - } - } - // TODO cache rendered images? - - this.width = dict.get('Width', 'W'); - this.height = dict.get('Height', 'H'); - - if (this.width < 1 || this.height < 1) { - error('Invalid image width: ' + this.width + ' or height: ' + - this.height); - } - - this.interpolate = dict.get('Interpolate', 'I') || false; - this.imageMask = dict.get('ImageMask', 'IM') || false; - this.matte = dict.get('Matte') || false; - - var bitsPerComponent = image.bitsPerComponent; - if (!bitsPerComponent) { - bitsPerComponent = dict.get('BitsPerComponent', 'BPC'); - if (!bitsPerComponent) { - if (this.imageMask) { - bitsPerComponent = 1; - } else { - error('Bits per component missing in image: ' + this.imageMask); - } - } - } - this.bpc = bitsPerComponent; - - if (!this.imageMask) { - var colorSpace = dict.get('ColorSpace', 'CS'); - if (!colorSpace) { - info('JPX images (which do not require color spaces)'); - switch (image.numComps) { - case 1: - colorSpace = Name.get('DeviceGray'); - break; - case 3: - colorSpace = Name.get('DeviceRGB'); - break; - case 4: - colorSpace = Name.get('DeviceCMYK'); - break; - default: - error('JPX images with ' + this.numComps + - ' color components not supported.'); - } - } - this.colorSpace = ColorSpace.parse(colorSpace, xref, res); - this.numComps = this.colorSpace.numComps; - } - - this.decode = dict.get('Decode', 'D'); - this.needsDecode = false; - if (this.decode && - ((this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode)) || - (isMask && !ColorSpace.isDefaultDecode(this.decode, 1)))) { - this.needsDecode = true; - // Do some preprocessing to avoid more math. - var max = (1 << bitsPerComponent) - 1; - this.decodeCoefficients = []; - this.decodeAddends = []; - for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) { - var dmin = this.decode[i]; - var dmax = this.decode[i + 1]; - this.decodeCoefficients[j] = dmax - dmin; - this.decodeAddends[j] = max * dmin; - } - } - - if (smask) { - this.smask = new PDFImage(xref, res, smask, false); - } else if (mask) { - if (isStream(mask)) { - this.mask = new PDFImage(xref, res, mask, false, null, null, true); - } else { - // Color key mask (just an array). - this.mask = mask; - } - } - } - /** - * Handles processing of image data and returns the Promise that is resolved - * with a PDFImage when the image is ready to be used. - */ - PDFImage.buildImage = function PDFImage_buildImage(handler, xref, - res, image, inline) { - var imagePromise = handleImageData(handler, xref, res, image); - var smaskPromise; - var maskPromise; - - var smask = image.dict.get('SMask'); - var mask = image.dict.get('Mask'); - - if (smask) { - smaskPromise = handleImageData(handler, xref, res, smask); - maskPromise = Promise.resolve(null); - } else { - smaskPromise = Promise.resolve(null); - if (mask) { - if (isStream(mask)) { - maskPromise = handleImageData(handler, xref, res, mask); - } else if (isArray(mask)) { - maskPromise = Promise.resolve(mask); - } else { - warn('Unsupported mask format.'); - maskPromise = Promise.resolve(null); - } - } else { - maskPromise = Promise.resolve(null); - } - } - return Promise.all([imagePromise, smaskPromise, maskPromise]).then( - function(results) { - var imageData = results[0]; - var smaskData = results[1]; - var maskData = results[2]; - return new PDFImage(xref, res, imageData, inline, smaskData, maskData); - }); - }; - - /** - * Resize an image using the nearest neighbor algorithm. Currently only - * supports one and three component images. - * @param {TypedArray} pixels The original image with one component. - * @param {Number} bpc Number of bits per component. - * @param {Number} components Number of color components, 1 or 3 is supported. - * @param {Number} w1 Original width. - * @param {Number} h1 Original height. - * @param {Number} w2 New width. - * @param {Number} h2 New height. - * @param {TypedArray} dest (Optional) The destination buffer. - * @param {Number} alpha01 (Optional) Size reserved for the alpha channel. - * @return {TypedArray} Resized image data. - */ - PDFImage.resize = function PDFImage_resize(pixels, bpc, components, - w1, h1, w2, h2, dest, alpha01) { - - if (components !== 1 && components !== 3) { - error('Unsupported component count for resizing.'); - } - - var length = w2 * h2 * components; - var temp = dest ? dest : (bpc <= 8 ? new Uint8Array(length) : - (bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length))); - var xRatio = w1 / w2; - var yRatio = h1 / h2; - var i, j, py, newIndex = 0, oldIndex; - var xScaled = new Uint16Array(w2); - var w1Scanline = w1 * components; - if (alpha01 !== 1) { - alpha01 = 0; - } - - for (j = 0; j < w2; j++) { - xScaled[j] = Math.floor(j * xRatio) * components; - } - - if (components === 1) { - for (i = 0; i < h2; i++) { - py = Math.floor(i * yRatio) * w1Scanline; - for (j = 0; j < w2; j++) { - oldIndex = py + xScaled[j]; - temp[newIndex++] = pixels[oldIndex]; - } - } - } else if (components === 3) { - for (i = 0; i < h2; i++) { - py = Math.floor(i * yRatio) * w1Scanline; - for (j = 0; j < w2; j++) { - oldIndex = py + xScaled[j]; - temp[newIndex++] = pixels[oldIndex++]; - temp[newIndex++] = pixels[oldIndex++]; - temp[newIndex++] = pixels[oldIndex++]; - newIndex += alpha01; - } - } - } - return temp; - }; - - PDFImage.createMask = - function PDFImage_createMask(imgArray, width, height, - imageIsFromDecodeStream, inverseDecode) { - - // |imgArray| might not contain full data for every pixel of the mask, so - // we need to distinguish between |computedLength| and |actualLength|. - // In particular, if inverseDecode is true, then the array we return must - // have a length of |computedLength|. - - var computedLength = ((width + 7) >> 3) * height; - var actualLength = imgArray.byteLength; - var haveFullData = computedLength === actualLength; - var data, i; - - if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) { - // imgArray came from a DecodeStream and its data is in an appropriate - // form, so we can just transfer it. - data = imgArray; - } else if (!inverseDecode) { - data = new Uint8Array(actualLength); - data.set(imgArray); - } else { - data = new Uint8Array(computedLength); - data.set(imgArray); - for (i = actualLength; i < computedLength; i++) { - data[i] = 0xff; - } - } - - // If necessary, invert the original mask data (but not any extra we might - // have added above). It's safe to modify the array -- whether it's the - // original or a copy, we're about to transfer it anyway, so nothing else - // in this thread can be relying on its contents. - if (inverseDecode) { - for (i = 0; i < actualLength; i++) { - data[i] = ~data[i]; - } - } - - return {data: data, width: width, height: height}; - }; - - PDFImage.prototype = { - get drawWidth() { - return Math.max(this.width, - this.smask && this.smask.width || 0, - this.mask && this.mask.width || 0); - }, - - get drawHeight() { - return Math.max(this.height, - this.smask && this.smask.height || 0, - this.mask && this.mask.height || 0); - }, - - decodeBuffer: function PDFImage_decodeBuffer(buffer) { - var bpc = this.bpc; - var numComps = this.numComps; - - var decodeAddends = this.decodeAddends; - var decodeCoefficients = this.decodeCoefficients; - var max = (1 << bpc) - 1; - var i, ii; - - if (bpc === 1) { - // If the buffer needed decode that means it just needs to be inverted. - for (i = 0, ii = buffer.length; i < ii; i++) { - buffer[i] = +!(buffer[i]); - } - return; - } - var index = 0; - for (i = 0, ii = this.width * this.height; i < ii; i++) { - for (var j = 0; j < numComps; j++) { - buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], - decodeCoefficients[j], max); - index++; - } - } - }, - - getComponents: function PDFImage_getComponents(buffer) { - var bpc = this.bpc; - - // This image doesn't require any extra work. - if (bpc === 8) { - return buffer; - } - - var width = this.width; - var height = this.height; - var numComps = this.numComps; - - var length = width * height * numComps; - var bufferPos = 0; - var output = (bpc <= 8 ? new Uint8Array(length) : - (bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length))); - var rowComps = width * numComps; - - var max = (1 << bpc) - 1; - var i = 0, ii, buf; - - if (bpc === 1) { - // Optimization for reading 1 bpc images. - var mask, loop1End, loop2End; - for (var j = 0; j < height; j++) { - loop1End = i + (rowComps & ~7); - loop2End = i + rowComps; - - // unroll loop for all full bytes - while (i < loop1End) { - buf = buffer[bufferPos++]; - output[i] = (buf >> 7) & 1; - output[i + 1] = (buf >> 6) & 1; - output[i + 2] = (buf >> 5) & 1; - output[i + 3] = (buf >> 4) & 1; - output[i + 4] = (buf >> 3) & 1; - output[i + 5] = (buf >> 2) & 1; - output[i + 6] = (buf >> 1) & 1; - output[i + 7] = buf & 1; - i += 8; - } - - // handle remaing bits - if (i < loop2End) { - buf = buffer[bufferPos++]; - mask = 128; - while (i < loop2End) { - output[i++] = +!!(buf & mask); - mask >>= 1; - } - } - } - } else { - // The general case that handles all other bpc values. - var bits = 0; - buf = 0; - for (i = 0, ii = length; i < ii; ++i) { - if (i % rowComps === 0) { - buf = 0; - bits = 0; - } - - while (bits < bpc) { - buf = (buf << 8) | buffer[bufferPos++]; - bits += 8; - } - - var remainingBits = bits - bpc; - var value = buf >> remainingBits; - output[i] = (value < 0 ? 0 : (value > max ? max : value)); - buf = buf & ((1 << remainingBits) - 1); - bits = remainingBits; - } - } - return output; - }, - - fillOpacity: function PDFImage_fillOpacity(rgbaBuf, width, height, - actualHeight, image) { - var smask = this.smask; - var mask = this.mask; - var alphaBuf, sw, sh, i, ii, j; - - if (smask) { - sw = smask.width; - sh = smask.height; - alphaBuf = new Uint8Array(sw * sh); - smask.fillGrayBuffer(alphaBuf); - if (sw !== width || sh !== height) { - alphaBuf = PDFImage.resize(alphaBuf, smask.bpc, 1, sw, sh, width, - height); - } - } else if (mask) { - if (mask instanceof PDFImage) { - sw = mask.width; - sh = mask.height; - alphaBuf = new Uint8Array(sw * sh); - mask.numComps = 1; - mask.fillGrayBuffer(alphaBuf); - - // Need to invert values in rgbaBuf - for (i = 0, ii = sw * sh; i < ii; ++i) { - alphaBuf[i] = 255 - alphaBuf[i]; - } - - if (sw !== width || sh !== height) { - alphaBuf = PDFImage.resize(alphaBuf, mask.bpc, 1, sw, sh, width, - height); - } - } else if (isArray(mask)) { - // Color key mask: if any of the compontents are outside the range - // then they should be painted. - alphaBuf = new Uint8Array(width * height); - var numComps = this.numComps; - for (i = 0, ii = width * height; i < ii; ++i) { - var opacity = 0; - var imageOffset = i * numComps; - for (j = 0; j < numComps; ++j) { - var color = image[imageOffset + j]; - var maskOffset = j * 2; - if (color < mask[maskOffset] || color > mask[maskOffset + 1]) { - opacity = 255; - break; - } - } - alphaBuf[i] = opacity; - } - } else { - error('Unknown mask format.'); - } - } - - if (alphaBuf) { - for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) { - rgbaBuf[j] = alphaBuf[i]; - } - } else { - // No mask. - for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) { - rgbaBuf[j] = 255; - } - } - }, - - undoPreblend: function PDFImage_undoPreblend(buffer, width, height) { - var matte = this.smask && this.smask.matte; - if (!matte) { - return; - } - var matteRgb = this.colorSpace.getRgb(matte, 0); - var matteR = matteRgb[0]; - var matteG = matteRgb[1]; - var matteB = matteRgb[2]; - var length = width * height * 4; - var r, g, b; - for (var i = 0; i < length; i += 4) { - var alpha = buffer[i + 3]; - if (alpha === 0) { - // according formula we have to get Infinity in all components - // making it white (typical paper color) should be okay - buffer[i] = 255; - buffer[i + 1] = 255; - buffer[i + 2] = 255; - continue; - } - var k = 255 / alpha; - r = (buffer[i] - matteR) * k + matteR; - g = (buffer[i + 1] - matteG) * k + matteG; - b = (buffer[i + 2] - matteB) * k + matteB; - buffer[i] = r <= 0 ? 0 : r >= 255 ? 255 : r | 0; - buffer[i + 1] = g <= 0 ? 0 : g >= 255 ? 255 : g | 0; - buffer[i + 2] = b <= 0 ? 0 : b >= 255 ? 255 : b | 0; - } - }, - - createImageData: function PDFImage_createImageData(forceRGBA) { - var drawWidth = this.drawWidth; - var drawHeight = this.drawHeight; - var imgData = { // other fields are filled in below - width: drawWidth, - height: drawHeight - }; - - var numComps = this.numComps; - var originalWidth = this.width; - var originalHeight = this.height; - var bpc = this.bpc; - - // Rows start at byte boundary. - var rowBytes = (originalWidth * numComps * bpc + 7) >> 3; - var imgArray; - - if (!forceRGBA) { - // If it is a 1-bit-per-pixel grayscale (i.e. black-and-white) image - // without any complications, we pass a same-sized copy to the main - // thread rather than expanding by 32x to RGBA form. This saves *lots* - // of memory for many scanned documents. It's also much faster. - // - // Similarly, if it is a 24-bit-per pixel RGB image without any - // complications, we avoid expanding by 1.333x to RGBA form. - var kind; - if (this.colorSpace.name === 'DeviceGray' && bpc === 1) { - kind = ImageKind.GRAYSCALE_1BPP; - } else if (this.colorSpace.name === 'DeviceRGB' && bpc === 8 && - !this.needsDecode) { - kind = ImageKind.RGB_24BPP; - } - if (kind && !this.smask && !this.mask && - drawWidth === originalWidth && drawHeight === originalHeight) { - imgData.kind = kind; - - imgArray = this.getImageBytes(originalHeight * rowBytes); - // If imgArray came from a DecodeStream, we're safe to transfer it - // (and thus neuter it) because it will constitute the entire - // DecodeStream's data. But if it came from a Stream, we need to - // copy it because it'll only be a portion of the Stream's data, and - // the rest will be read later on. - if (this.image instanceof DecodeStream) { - imgData.data = imgArray; - } else { - var newArray = new Uint8Array(imgArray.length); - newArray.set(imgArray); - imgData.data = newArray; - } - if (this.needsDecode) { - // Invert the buffer (which must be grayscale if we reached here). - assert(kind === ImageKind.GRAYSCALE_1BPP); - var buffer = imgData.data; - for (var i = 0, ii = buffer.length; i < ii; i++) { - buffer[i] ^= 0xff; - } - } - return imgData; - } - if (this.image instanceof JpegStream && !this.smask && !this.mask) { - imgData.kind = ImageKind.RGB_24BPP; - imgData.data = this.getImageBytes(originalHeight * rowBytes, - drawWidth, drawHeight, true); - return imgData; - } - } - - imgArray = this.getImageBytes(originalHeight * rowBytes); - // imgArray can be incomplete (e.g. after CCITT fax encoding). - var actualHeight = 0 | (imgArray.length / rowBytes * - drawHeight / originalHeight); - - var comps = this.getComponents(imgArray); - - // If opacity data is present, use RGBA_32BPP form. Otherwise, use the - // more compact RGB_24BPP form if allowable. - var alpha01, maybeUndoPreblend; - if (!forceRGBA && !this.smask && !this.mask) { - imgData.kind = ImageKind.RGB_24BPP; - imgData.data = new Uint8Array(drawWidth * drawHeight * 3); - alpha01 = 0; - maybeUndoPreblend = false; - } else { - imgData.kind = ImageKind.RGBA_32BPP; - imgData.data = new Uint8Array(drawWidth * drawHeight * 4); - alpha01 = 1; - maybeUndoPreblend = true; - - // Color key masking (opacity) must be performed before decoding. - this.fillOpacity(imgData.data, drawWidth, drawHeight, actualHeight, - comps); - } - - if (this.needsDecode) { - this.decodeBuffer(comps); - } - this.colorSpace.fillRgb(imgData.data, originalWidth, originalHeight, - drawWidth, drawHeight, actualHeight, bpc, comps, - alpha01); - if (maybeUndoPreblend) { - this.undoPreblend(imgData.data, drawWidth, actualHeight); - } - - return imgData; - }, - - fillGrayBuffer: function PDFImage_fillGrayBuffer(buffer) { - var numComps = this.numComps; - if (numComps !== 1) { - error('Reading gray scale from a color image: ' + numComps); - } - - var width = this.width; - var height = this.height; - var bpc = this.bpc; - - // rows start at byte boundary - var rowBytes = (width * numComps * bpc + 7) >> 3; - var imgArray = this.getImageBytes(height * rowBytes); - - var comps = this.getComponents(imgArray); - var i, length; - - if (bpc === 1) { - // inline decoding (= inversion) for 1 bpc images - length = width * height; - if (this.needsDecode) { - // invert and scale to {0, 255} - for (i = 0; i < length; ++i) { - buffer[i] = (comps[i] - 1) & 255; - } - } else { - // scale to {0, 255} - for (i = 0; i < length; ++i) { - buffer[i] = (-comps[i]) & 255; - } - } - return; - } - - if (this.needsDecode) { - this.decodeBuffer(comps); - } - length = width * height; - // we aren't using a colorspace so we need to scale the value - var scale = 255 / ((1 << bpc) - 1); - for (i = 0; i < length; ++i) { - buffer[i] = (scale * comps[i]) | 0; - } - }, - - getImageBytes: function PDFImage_getImageBytes(length, - drawWidth, drawHeight, - forceRGB) { - this.image.reset(); - this.image.drawWidth = drawWidth || this.width; - this.image.drawHeight = drawHeight || this.height; - this.image.forceRGB = !!forceRGB; - return this.image.getBytes(length); - } - }; - return PDFImage; -})(); - - -// The Metrics object contains glyph widths (in glyph space units). -// As per PDF spec, for most fonts (Type 3 being an exception) a glyph -// space unit corresponds to 1/1000th of text space unit. -var Metrics = { - 'Courier': 600, - 'Courier-Bold': 600, - 'Courier-BoldOblique': 600, - 'Courier-Oblique': 600, - 'Helvetica' : { - 'space': 278, - 'exclam': 278, - 'quotedbl': 355, - 'numbersign': 556, - 'dollar': 556, - 'percent': 889, - 'ampersand': 667, - 'quoteright': 222, - 'parenleft': 333, - 'parenright': 333, - 'asterisk': 389, - 'plus': 584, - 'comma': 278, - 'hyphen': 333, - 'period': 278, - 'slash': 278, - 'zero': 556, - 'one': 556, - 'two': 556, - 'three': 556, - 'four': 556, - 'five': 556, - 'six': 556, - 'seven': 556, - 'eight': 556, - 'nine': 556, - 'colon': 278, - 'semicolon': 278, - 'less': 584, - 'equal': 584, - 'greater': 584, - 'question': 556, - 'at': 1015, - 'A': 667, - 'B': 667, - 'C': 722, - 'D': 722, - 'E': 667, - 'F': 611, - 'G': 778, - 'H': 722, - 'I': 278, - 'J': 500, - 'K': 667, - 'L': 556, - 'M': 833, - 'N': 722, - 'O': 778, - 'P': 667, - 'Q': 778, - 'R': 722, - 'S': 667, - 'T': 611, - 'U': 722, - 'V': 667, - 'W': 944, - 'X': 667, - 'Y': 667, - 'Z': 611, - 'bracketleft': 278, - 'backslash': 278, - 'bracketright': 278, - 'asciicircum': 469, - 'underscore': 556, - 'quoteleft': 222, - 'a': 556, - 'b': 556, - 'c': 500, - 'd': 556, - 'e': 556, - 'f': 278, - 'g': 556, - 'h': 556, - 'i': 222, - 'j': 222, - 'k': 500, - 'l': 222, - 'm': 833, - 'n': 556, - 'o': 556, - 'p': 556, - 'q': 556, - 'r': 333, - 's': 500, - 't': 278, - 'u': 556, - 'v': 500, - 'w': 722, - 'x': 500, - 'y': 500, - 'z': 500, - 'braceleft': 334, - 'bar': 260, - 'braceright': 334, - 'asciitilde': 584, - 'exclamdown': 333, - 'cent': 556, - 'sterling': 556, - 'fraction': 167, - 'yen': 556, - 'florin': 556, - 'section': 556, - 'currency': 556, - 'quotesingle': 191, - 'quotedblleft': 333, - 'guillemotleft': 556, - 'guilsinglleft': 333, - 'guilsinglright': 333, - 'fi': 500, - 'fl': 500, - 'endash': 556, - 'dagger': 556, - 'daggerdbl': 556, - 'periodcentered': 278, - 'paragraph': 537, - 'bullet': 350, - 'quotesinglbase': 222, - 'quotedblbase': 333, - 'quotedblright': 333, - 'guillemotright': 556, - 'ellipsis': 1000, - 'perthousand': 1000, - 'questiondown': 611, - 'grave': 333, - 'acute': 333, - 'circumflex': 333, - 'tilde': 333, - 'macron': 333, - 'breve': 333, - 'dotaccent': 333, - 'dieresis': 333, - 'ring': 333, - 'cedilla': 333, - 'hungarumlaut': 333, - 'ogonek': 333, - 'caron': 333, - 'emdash': 1000, - 'AE': 1000, - 'ordfeminine': 370, - 'Lslash': 556, - 'Oslash': 778, - 'OE': 1000, - 'ordmasculine': 365, - 'ae': 889, - 'dotlessi': 278, - 'lslash': 222, - 'oslash': 611, - 'oe': 944, - 'germandbls': 611, - 'Idieresis': 278, - 'eacute': 556, - 'abreve': 556, - 'uhungarumlaut': 556, - 'ecaron': 556, - 'Ydieresis': 667, - 'divide': 584, - 'Yacute': 667, - 'Acircumflex': 667, - 'aacute': 556, - 'Ucircumflex': 722, - 'yacute': 500, - 'scommaaccent': 500, - 'ecircumflex': 556, - 'Uring': 722, - 'Udieresis': 722, - 'aogonek': 556, - 'Uacute': 722, - 'uogonek': 556, - 'Edieresis': 667, - 'Dcroat': 722, - 'commaaccent': 250, - 'copyright': 737, - 'Emacron': 667, - 'ccaron': 500, - 'aring': 556, - 'Ncommaaccent': 722, - 'lacute': 222, - 'agrave': 556, - 'Tcommaaccent': 611, - 'Cacute': 722, - 'atilde': 556, - 'Edotaccent': 667, - 'scaron': 500, - 'scedilla': 500, - 'iacute': 278, - 'lozenge': 471, - 'Rcaron': 722, - 'Gcommaaccent': 778, - 'ucircumflex': 556, - 'acircumflex': 556, - 'Amacron': 667, - 'rcaron': 333, - 'ccedilla': 500, - 'Zdotaccent': 611, - 'Thorn': 667, - 'Omacron': 778, - 'Racute': 722, - 'Sacute': 667, - 'dcaron': 643, - 'Umacron': 722, - 'uring': 556, - 'threesuperior': 333, - 'Ograve': 778, - 'Agrave': 667, - 'Abreve': 667, - 'multiply': 584, - 'uacute': 556, - 'Tcaron': 611, - 'partialdiff': 476, - 'ydieresis': 500, - 'Nacute': 722, - 'icircumflex': 278, - 'Ecircumflex': 667, - 'adieresis': 556, - 'edieresis': 556, - 'cacute': 500, - 'nacute': 556, - 'umacron': 556, - 'Ncaron': 722, - 'Iacute': 278, - 'plusminus': 584, - 'brokenbar': 260, - 'registered': 737, - 'Gbreve': 778, - 'Idotaccent': 278, - 'summation': 600, - 'Egrave': 667, - 'racute': 333, - 'omacron': 556, - 'Zacute': 611, - 'Zcaron': 611, - 'greaterequal': 549, - 'Eth': 722, - 'Ccedilla': 722, - 'lcommaaccent': 222, - 'tcaron': 317, - 'eogonek': 556, - 'Uogonek': 722, - 'Aacute': 667, - 'Adieresis': 667, - 'egrave': 556, - 'zacute': 500, - 'iogonek': 222, - 'Oacute': 778, - 'oacute': 556, - 'amacron': 556, - 'sacute': 500, - 'idieresis': 278, - 'Ocircumflex': 778, - 'Ugrave': 722, - 'Delta': 612, - 'thorn': 556, - 'twosuperior': 333, - 'Odieresis': 778, - 'mu': 556, - 'igrave': 278, - 'ohungarumlaut': 556, - 'Eogonek': 667, - 'dcroat': 556, - 'threequarters': 834, - 'Scedilla': 667, - 'lcaron': 299, - 'Kcommaaccent': 667, - 'Lacute': 556, - 'trademark': 1000, - 'edotaccent': 556, - 'Igrave': 278, - 'Imacron': 278, - 'Lcaron': 556, - 'onehalf': 834, - 'lessequal': 549, - 'ocircumflex': 556, - 'ntilde': 556, - 'Uhungarumlaut': 722, - 'Eacute': 667, - 'emacron': 556, - 'gbreve': 556, - 'onequarter': 834, - 'Scaron': 667, - 'Scommaaccent': 667, - 'Ohungarumlaut': 778, - 'degree': 400, - 'ograve': 556, - 'Ccaron': 722, - 'ugrave': 556, - 'radical': 453, - 'Dcaron': 722, - 'rcommaaccent': 333, - 'Ntilde': 722, - 'otilde': 556, - 'Rcommaaccent': 722, - 'Lcommaaccent': 556, - 'Atilde': 667, - 'Aogonek': 667, - 'Aring': 667, - 'Otilde': 778, - 'zdotaccent': 500, - 'Ecaron': 667, - 'Iogonek': 278, - 'kcommaaccent': 500, - 'minus': 584, - 'Icircumflex': 278, - 'ncaron': 556, - 'tcommaaccent': 278, - 'logicalnot': 584, - 'odieresis': 556, - 'udieresis': 556, - 'notequal': 549, - 'gcommaaccent': 556, - 'eth': 556, - 'zcaron': 500, - 'ncommaaccent': 556, - 'onesuperior': 333, - 'imacron': 278, - 'Euro': 556 - }, - 'Helvetica-Bold': { - 'space': 278, - 'exclam': 333, - 'quotedbl': 474, - 'numbersign': 556, - 'dollar': 556, - 'percent': 889, - 'ampersand': 722, - 'quoteright': 278, - 'parenleft': 333, - 'parenright': 333, - 'asterisk': 389, - 'plus': 584, - 'comma': 278, - 'hyphen': 333, - 'period': 278, - 'slash': 278, - 'zero': 556, - 'one': 556, - 'two': 556, - 'three': 556, - 'four': 556, - 'five': 556, - 'six': 556, - 'seven': 556, - 'eight': 556, - 'nine': 556, - 'colon': 333, - 'semicolon': 333, - 'less': 584, - 'equal': 584, - 'greater': 584, - 'question': 611, - 'at': 975, - 'A': 722, - 'B': 722, - 'C': 722, - 'D': 722, - 'E': 667, - 'F': 611, - 'G': 778, - 'H': 722, - 'I': 278, - 'J': 556, - 'K': 722, - 'L': 611, - 'M': 833, - 'N': 722, - 'O': 778, - 'P': 667, - 'Q': 778, - 'R': 722, - 'S': 667, - 'T': 611, - 'U': 722, - 'V': 667, - 'W': 944, - 'X': 667, - 'Y': 667, - 'Z': 611, - 'bracketleft': 333, - 'backslash': 278, - 'bracketright': 333, - 'asciicircum': 584, - 'underscore': 556, - 'quoteleft': 278, - 'a': 556, - 'b': 611, - 'c': 556, - 'd': 611, - 'e': 556, - 'f': 333, - 'g': 611, - 'h': 611, - 'i': 278, - 'j': 278, - 'k': 556, - 'l': 278, - 'm': 889, - 'n': 611, - 'o': 611, - 'p': 611, - 'q': 611, - 'r': 389, - 's': 556, - 't': 333, - 'u': 611, - 'v': 556, - 'w': 778, - 'x': 556, - 'y': 556, - 'z': 500, - 'braceleft': 389, - 'bar': 280, - 'braceright': 389, - 'asciitilde': 584, - 'exclamdown': 333, - 'cent': 556, - 'sterling': 556, - 'fraction': 167, - 'yen': 556, - 'florin': 556, - 'section': 556, - 'currency': 556, - 'quotesingle': 238, - 'quotedblleft': 500, - 'guillemotleft': 556, - 'guilsinglleft': 333, - 'guilsinglright': 333, - 'fi': 611, - 'fl': 611, - 'endash': 556, - 'dagger': 556, - 'daggerdbl': 556, - 'periodcentered': 278, - 'paragraph': 556, - 'bullet': 350, - 'quotesinglbase': 278, - 'quotedblbase': 500, - 'quotedblright': 500, - 'guillemotright': 556, - 'ellipsis': 1000, - 'perthousand': 1000, - 'questiondown': 611, - 'grave': 333, - 'acute': 333, - 'circumflex': 333, - 'tilde': 333, - 'macron': 333, - 'breve': 333, - 'dotaccent': 333, - 'dieresis': 333, - 'ring': 333, - 'cedilla': 333, - 'hungarumlaut': 333, - 'ogonek': 333, - 'caron': 333, - 'emdash': 1000, - 'AE': 1000, - 'ordfeminine': 370, - 'Lslash': 611, - 'Oslash': 778, - 'OE': 1000, - 'ordmasculine': 365, - 'ae': 889, - 'dotlessi': 278, - 'lslash': 278, - 'oslash': 611, - 'oe': 944, - 'germandbls': 611, - 'Idieresis': 278, - 'eacute': 556, - 'abreve': 556, - 'uhungarumlaut': 611, - 'ecaron': 556, - 'Ydieresis': 667, - 'divide': 584, - 'Yacute': 667, - 'Acircumflex': 722, - 'aacute': 556, - 'Ucircumflex': 722, - 'yacute': 556, - 'scommaaccent': 556, - 'ecircumflex': 556, - 'Uring': 722, - 'Udieresis': 722, - 'aogonek': 556, - 'Uacute': 722, - 'uogonek': 611, - 'Edieresis': 667, - 'Dcroat': 722, - 'commaaccent': 250, - 'copyright': 737, - 'Emacron': 667, - 'ccaron': 556, - 'aring': 556, - 'Ncommaaccent': 722, - 'lacute': 278, - 'agrave': 556, - 'Tcommaaccent': 611, - 'Cacute': 722, - 'atilde': 556, - 'Edotaccent': 667, - 'scaron': 556, - 'scedilla': 556, - 'iacute': 278, - 'lozenge': 494, - 'Rcaron': 722, - 'Gcommaaccent': 778, - 'ucircumflex': 611, - 'acircumflex': 556, - 'Amacron': 722, - 'rcaron': 389, - 'ccedilla': 556, - 'Zdotaccent': 611, - 'Thorn': 667, - 'Omacron': 778, - 'Racute': 722, - 'Sacute': 667, - 'dcaron': 743, - 'Umacron': 722, - 'uring': 611, - 'threesuperior': 333, - 'Ograve': 778, - 'Agrave': 722, - 'Abreve': 722, - 'multiply': 584, - 'uacute': 611, - 'Tcaron': 611, - 'partialdiff': 494, - 'ydieresis': 556, - 'Nacute': 722, - 'icircumflex': 278, - 'Ecircumflex': 667, - 'adieresis': 556, - 'edieresis': 556, - 'cacute': 556, - 'nacute': 611, - 'umacron': 611, - 'Ncaron': 722, - 'Iacute': 278, - 'plusminus': 584, - 'brokenbar': 280, - 'registered': 737, - 'Gbreve': 778, - 'Idotaccent': 278, - 'summation': 600, - 'Egrave': 667, - 'racute': 389, - 'omacron': 611, - 'Zacute': 611, - 'Zcaron': 611, - 'greaterequal': 549, - 'Eth': 722, - 'Ccedilla': 722, - 'lcommaaccent': 278, - 'tcaron': 389, - 'eogonek': 556, - 'Uogonek': 722, - 'Aacute': 722, - 'Adieresis': 722, - 'egrave': 556, - 'zacute': 500, - 'iogonek': 278, - 'Oacute': 778, - 'oacute': 611, - 'amacron': 556, - 'sacute': 556, - 'idieresis': 278, - 'Ocircumflex': 778, - 'Ugrave': 722, - 'Delta': 612, - 'thorn': 611, - 'twosuperior': 333, - 'Odieresis': 778, - 'mu': 611, - 'igrave': 278, - 'ohungarumlaut': 611, - 'Eogonek': 667, - 'dcroat': 611, - 'threequarters': 834, - 'Scedilla': 667, - 'lcaron': 400, - 'Kcommaaccent': 722, - 'Lacute': 611, - 'trademark': 1000, - 'edotaccent': 556, - 'Igrave': 278, - 'Imacron': 278, - 'Lcaron': 611, - 'onehalf': 834, - 'lessequal': 549, - 'ocircumflex': 611, - 'ntilde': 611, - 'Uhungarumlaut': 722, - 'Eacute': 667, - 'emacron': 556, - 'gbreve': 611, - 'onequarter': 834, - 'Scaron': 667, - 'Scommaaccent': 667, - 'Ohungarumlaut': 778, - 'degree': 400, - 'ograve': 611, - 'Ccaron': 722, - 'ugrave': 611, - 'radical': 549, - 'Dcaron': 722, - 'rcommaaccent': 389, - 'Ntilde': 722, - 'otilde': 611, - 'Rcommaaccent': 722, - 'Lcommaaccent': 611, - 'Atilde': 722, - 'Aogonek': 722, - 'Aring': 722, - 'Otilde': 778, - 'zdotaccent': 500, - 'Ecaron': 667, - 'Iogonek': 278, - 'kcommaaccent': 556, - 'minus': 584, - 'Icircumflex': 278, - 'ncaron': 611, - 'tcommaaccent': 333, - 'logicalnot': 584, - 'odieresis': 611, - 'udieresis': 611, - 'notequal': 549, - 'gcommaaccent': 611, - 'eth': 611, - 'zcaron': 500, - 'ncommaaccent': 611, - 'onesuperior': 333, - 'imacron': 278, - 'Euro': 556 - }, - 'Helvetica-BoldOblique': { - 'space': 278, - 'exclam': 333, - 'quotedbl': 474, - 'numbersign': 556, - 'dollar': 556, - 'percent': 889, - 'ampersand': 722, - 'quoteright': 278, - 'parenleft': 333, - 'parenright': 333, - 'asterisk': 389, - 'plus': 584, - 'comma': 278, - 'hyphen': 333, - 'period': 278, - 'slash': 278, - 'zero': 556, - 'one': 556, - 'two': 556, - 'three': 556, - 'four': 556, - 'five': 556, - 'six': 556, - 'seven': 556, - 'eight': 556, - 'nine': 556, - 'colon': 333, - 'semicolon': 333, - 'less': 584, - 'equal': 584, - 'greater': 584, - 'question': 611, - 'at': 975, - 'A': 722, - 'B': 722, - 'C': 722, - 'D': 722, - 'E': 667, - 'F': 611, - 'G': 778, - 'H': 722, - 'I': 278, - 'J': 556, - 'K': 722, - 'L': 611, - 'M': 833, - 'N': 722, - 'O': 778, - 'P': 667, - 'Q': 778, - 'R': 722, - 'S': 667, - 'T': 611, - 'U': 722, - 'V': 667, - 'W': 944, - 'X': 667, - 'Y': 667, - 'Z': 611, - 'bracketleft': 333, - 'backslash': 278, - 'bracketright': 333, - 'asciicircum': 584, - 'underscore': 556, - 'quoteleft': 278, - 'a': 556, - 'b': 611, - 'c': 556, - 'd': 611, - 'e': 556, - 'f': 333, - 'g': 611, - 'h': 611, - 'i': 278, - 'j': 278, - 'k': 556, - 'l': 278, - 'm': 889, - 'n': 611, - 'o': 611, - 'p': 611, - 'q': 611, - 'r': 389, - 's': 556, - 't': 333, - 'u': 611, - 'v': 556, - 'w': 778, - 'x': 556, - 'y': 556, - 'z': 500, - 'braceleft': 389, - 'bar': 280, - 'braceright': 389, - 'asciitilde': 584, - 'exclamdown': 333, - 'cent': 556, - 'sterling': 556, - 'fraction': 167, - 'yen': 556, - 'florin': 556, - 'section': 556, - 'currency': 556, - 'quotesingle': 238, - 'quotedblleft': 500, - 'guillemotleft': 556, - 'guilsinglleft': 333, - 'guilsinglright': 333, - 'fi': 611, - 'fl': 611, - 'endash': 556, - 'dagger': 556, - 'daggerdbl': 556, - 'periodcentered': 278, - 'paragraph': 556, - 'bullet': 350, - 'quotesinglbase': 278, - 'quotedblbase': 500, - 'quotedblright': 500, - 'guillemotright': 556, - 'ellipsis': 1000, - 'perthousand': 1000, - 'questiondown': 611, - 'grave': 333, - 'acute': 333, - 'circumflex': 333, - 'tilde': 333, - 'macron': 333, - 'breve': 333, - 'dotaccent': 333, - 'dieresis': 333, - 'ring': 333, - 'cedilla': 333, - 'hungarumlaut': 333, - 'ogonek': 333, - 'caron': 333, - 'emdash': 1000, - 'AE': 1000, - 'ordfeminine': 370, - 'Lslash': 611, - 'Oslash': 778, - 'OE': 1000, - 'ordmasculine': 365, - 'ae': 889, - 'dotlessi': 278, - 'lslash': 278, - 'oslash': 611, - 'oe': 944, - 'germandbls': 611, - 'Idieresis': 278, - 'eacute': 556, - 'abreve': 556, - 'uhungarumlaut': 611, - 'ecaron': 556, - 'Ydieresis': 667, - 'divide': 584, - 'Yacute': 667, - 'Acircumflex': 722, - 'aacute': 556, - 'Ucircumflex': 722, - 'yacute': 556, - 'scommaaccent': 556, - 'ecircumflex': 556, - 'Uring': 722, - 'Udieresis': 722, - 'aogonek': 556, - 'Uacute': 722, - 'uogonek': 611, - 'Edieresis': 667, - 'Dcroat': 722, - 'commaaccent': 250, - 'copyright': 737, - 'Emacron': 667, - 'ccaron': 556, - 'aring': 556, - 'Ncommaaccent': 722, - 'lacute': 278, - 'agrave': 556, - 'Tcommaaccent': 611, - 'Cacute': 722, - 'atilde': 556, - 'Edotaccent': 667, - 'scaron': 556, - 'scedilla': 556, - 'iacute': 278, - 'lozenge': 494, - 'Rcaron': 722, - 'Gcommaaccent': 778, - 'ucircumflex': 611, - 'acircumflex': 556, - 'Amacron': 722, - 'rcaron': 389, - 'ccedilla': 556, - 'Zdotaccent': 611, - 'Thorn': 667, - 'Omacron': 778, - 'Racute': 722, - 'Sacute': 667, - 'dcaron': 743, - 'Umacron': 722, - 'uring': 611, - 'threesuperior': 333, - 'Ograve': 778, - 'Agrave': 722, - 'Abreve': 722, - 'multiply': 584, - 'uacute': 611, - 'Tcaron': 611, - 'partialdiff': 494, - 'ydieresis': 556, - 'Nacute': 722, - 'icircumflex': 278, - 'Ecircumflex': 667, - 'adieresis': 556, - 'edieresis': 556, - 'cacute': 556, - 'nacute': 611, - 'umacron': 611, - 'Ncaron': 722, - 'Iacute': 278, - 'plusminus': 584, - 'brokenbar': 280, - 'registered': 737, - 'Gbreve': 778, - 'Idotaccent': 278, - 'summation': 600, - 'Egrave': 667, - 'racute': 389, - 'omacron': 611, - 'Zacute': 611, - 'Zcaron': 611, - 'greaterequal': 549, - 'Eth': 722, - 'Ccedilla': 722, - 'lcommaaccent': 278, - 'tcaron': 389, - 'eogonek': 556, - 'Uogonek': 722, - 'Aacute': 722, - 'Adieresis': 722, - 'egrave': 556, - 'zacute': 500, - 'iogonek': 278, - 'Oacute': 778, - 'oacute': 611, - 'amacron': 556, - 'sacute': 556, - 'idieresis': 278, - 'Ocircumflex': 778, - 'Ugrave': 722, - 'Delta': 612, - 'thorn': 611, - 'twosuperior': 333, - 'Odieresis': 778, - 'mu': 611, - 'igrave': 278, - 'ohungarumlaut': 611, - 'Eogonek': 667, - 'dcroat': 611, - 'threequarters': 834, - 'Scedilla': 667, - 'lcaron': 400, - 'Kcommaaccent': 722, - 'Lacute': 611, - 'trademark': 1000, - 'edotaccent': 556, - 'Igrave': 278, - 'Imacron': 278, - 'Lcaron': 611, - 'onehalf': 834, - 'lessequal': 549, - 'ocircumflex': 611, - 'ntilde': 611, - 'Uhungarumlaut': 722, - 'Eacute': 667, - 'emacron': 556, - 'gbreve': 611, - 'onequarter': 834, - 'Scaron': 667, - 'Scommaaccent': 667, - 'Ohungarumlaut': 778, - 'degree': 400, - 'ograve': 611, - 'Ccaron': 722, - 'ugrave': 611, - 'radical': 549, - 'Dcaron': 722, - 'rcommaaccent': 389, - 'Ntilde': 722, - 'otilde': 611, - 'Rcommaaccent': 722, - 'Lcommaaccent': 611, - 'Atilde': 722, - 'Aogonek': 722, - 'Aring': 722, - 'Otilde': 778, - 'zdotaccent': 500, - 'Ecaron': 667, - 'Iogonek': 278, - 'kcommaaccent': 556, - 'minus': 584, - 'Icircumflex': 278, - 'ncaron': 611, - 'tcommaaccent': 333, - 'logicalnot': 584, - 'odieresis': 611, - 'udieresis': 611, - 'notequal': 549, - 'gcommaaccent': 611, - 'eth': 611, - 'zcaron': 500, - 'ncommaaccent': 611, - 'onesuperior': 333, - 'imacron': 278, - 'Euro': 556 - }, - 'Helvetica-Oblique' : { - 'space': 278, - 'exclam': 278, - 'quotedbl': 355, - 'numbersign': 556, - 'dollar': 556, - 'percent': 889, - 'ampersand': 667, - 'quoteright': 222, - 'parenleft': 333, - 'parenright': 333, - 'asterisk': 389, - 'plus': 584, - 'comma': 278, - 'hyphen': 333, - 'period': 278, - 'slash': 278, - 'zero': 556, - 'one': 556, - 'two': 556, - 'three': 556, - 'four': 556, - 'five': 556, - 'six': 556, - 'seven': 556, - 'eight': 556, - 'nine': 556, - 'colon': 278, - 'semicolon': 278, - 'less': 584, - 'equal': 584, - 'greater': 584, - 'question': 556, - 'at': 1015, - 'A': 667, - 'B': 667, - 'C': 722, - 'D': 722, - 'E': 667, - 'F': 611, - 'G': 778, - 'H': 722, - 'I': 278, - 'J': 500, - 'K': 667, - 'L': 556, - 'M': 833, - 'N': 722, - 'O': 778, - 'P': 667, - 'Q': 778, - 'R': 722, - 'S': 667, - 'T': 611, - 'U': 722, - 'V': 667, - 'W': 944, - 'X': 667, - 'Y': 667, - 'Z': 611, - 'bracketleft': 278, - 'backslash': 278, - 'bracketright': 278, - 'asciicircum': 469, - 'underscore': 556, - 'quoteleft': 222, - 'a': 556, - 'b': 556, - 'c': 500, - 'd': 556, - 'e': 556, - 'f': 278, - 'g': 556, - 'h': 556, - 'i': 222, - 'j': 222, - 'k': 500, - 'l': 222, - 'm': 833, - 'n': 556, - 'o': 556, - 'p': 556, - 'q': 556, - 'r': 333, - 's': 500, - 't': 278, - 'u': 556, - 'v': 500, - 'w': 722, - 'x': 500, - 'y': 500, - 'z': 500, - 'braceleft': 334, - 'bar': 260, - 'braceright': 334, - 'asciitilde': 584, - 'exclamdown': 333, - 'cent': 556, - 'sterling': 556, - 'fraction': 167, - 'yen': 556, - 'florin': 556, - 'section': 556, - 'currency': 556, - 'quotesingle': 191, - 'quotedblleft': 333, - 'guillemotleft': 556, - 'guilsinglleft': 333, - 'guilsinglright': 333, - 'fi': 500, - 'fl': 500, - 'endash': 556, - 'dagger': 556, - 'daggerdbl': 556, - 'periodcentered': 278, - 'paragraph': 537, - 'bullet': 350, - 'quotesinglbase': 222, - 'quotedblbase': 333, - 'quotedblright': 333, - 'guillemotright': 556, - 'ellipsis': 1000, - 'perthousand': 1000, - 'questiondown': 611, - 'grave': 333, - 'acute': 333, - 'circumflex': 333, - 'tilde': 333, - 'macron': 333, - 'breve': 333, - 'dotaccent': 333, - 'dieresis': 333, - 'ring': 333, - 'cedilla': 333, - 'hungarumlaut': 333, - 'ogonek': 333, - 'caron': 333, - 'emdash': 1000, - 'AE': 1000, - 'ordfeminine': 370, - 'Lslash': 556, - 'Oslash': 778, - 'OE': 1000, - 'ordmasculine': 365, - 'ae': 889, - 'dotlessi': 278, - 'lslash': 222, - 'oslash': 611, - 'oe': 944, - 'germandbls': 611, - 'Idieresis': 278, - 'eacute': 556, - 'abreve': 556, - 'uhungarumlaut': 556, - 'ecaron': 556, - 'Ydieresis': 667, - 'divide': 584, - 'Yacute': 667, - 'Acircumflex': 667, - 'aacute': 556, - 'Ucircumflex': 722, - 'yacute': 500, - 'scommaaccent': 500, - 'ecircumflex': 556, - 'Uring': 722, - 'Udieresis': 722, - 'aogonek': 556, - 'Uacute': 722, - 'uogonek': 556, - 'Edieresis': 667, - 'Dcroat': 722, - 'commaaccent': 250, - 'copyright': 737, - 'Emacron': 667, - 'ccaron': 500, - 'aring': 556, - 'Ncommaaccent': 722, - 'lacute': 222, - 'agrave': 556, - 'Tcommaaccent': 611, - 'Cacute': 722, - 'atilde': 556, - 'Edotaccent': 667, - 'scaron': 500, - 'scedilla': 500, - 'iacute': 278, - 'lozenge': 471, - 'Rcaron': 722, - 'Gcommaaccent': 778, - 'ucircumflex': 556, - 'acircumflex': 556, - 'Amacron': 667, - 'rcaron': 333, - 'ccedilla': 500, - 'Zdotaccent': 611, - 'Thorn': 667, - 'Omacron': 778, - 'Racute': 722, - 'Sacute': 667, - 'dcaron': 643, - 'Umacron': 722, - 'uring': 556, - 'threesuperior': 333, - 'Ograve': 778, - 'Agrave': 667, - 'Abreve': 667, - 'multiply': 584, - 'uacute': 556, - 'Tcaron': 611, - 'partialdiff': 476, - 'ydieresis': 500, - 'Nacute': 722, - 'icircumflex': 278, - 'Ecircumflex': 667, - 'adieresis': 556, - 'edieresis': 556, - 'cacute': 500, - 'nacute': 556, - 'umacron': 556, - 'Ncaron': 722, - 'Iacute': 278, - 'plusminus': 584, - 'brokenbar': 260, - 'registered': 737, - 'Gbreve': 778, - 'Idotaccent': 278, - 'summation': 600, - 'Egrave': 667, - 'racute': 333, - 'omacron': 556, - 'Zacute': 611, - 'Zcaron': 611, - 'greaterequal': 549, - 'Eth': 722, - 'Ccedilla': 722, - 'lcommaaccent': 222, - 'tcaron': 317, - 'eogonek': 556, - 'Uogonek': 722, - 'Aacute': 667, - 'Adieresis': 667, - 'egrave': 556, - 'zacute': 500, - 'iogonek': 222, - 'Oacute': 778, - 'oacute': 556, - 'amacron': 556, - 'sacute': 500, - 'idieresis': 278, - 'Ocircumflex': 778, - 'Ugrave': 722, - 'Delta': 612, - 'thorn': 556, - 'twosuperior': 333, - 'Odieresis': 778, - 'mu': 556, - 'igrave': 278, - 'ohungarumlaut': 556, - 'Eogonek': 667, - 'dcroat': 556, - 'threequarters': 834, - 'Scedilla': 667, - 'lcaron': 299, - 'Kcommaaccent': 667, - 'Lacute': 556, - 'trademark': 1000, - 'edotaccent': 556, - 'Igrave': 278, - 'Imacron': 278, - 'Lcaron': 556, - 'onehalf': 834, - 'lessequal': 549, - 'ocircumflex': 556, - 'ntilde': 556, - 'Uhungarumlaut': 722, - 'Eacute': 667, - 'emacron': 556, - 'gbreve': 556, - 'onequarter': 834, - 'Scaron': 667, - 'Scommaaccent': 667, - 'Ohungarumlaut': 778, - 'degree': 400, - 'ograve': 556, - 'Ccaron': 722, - 'ugrave': 556, - 'radical': 453, - 'Dcaron': 722, - 'rcommaaccent': 333, - 'Ntilde': 722, - 'otilde': 556, - 'Rcommaaccent': 722, - 'Lcommaaccent': 556, - 'Atilde': 667, - 'Aogonek': 667, - 'Aring': 667, - 'Otilde': 778, - 'zdotaccent': 500, - 'Ecaron': 667, - 'Iogonek': 278, - 'kcommaaccent': 500, - 'minus': 584, - 'Icircumflex': 278, - 'ncaron': 556, - 'tcommaaccent': 278, - 'logicalnot': 584, - 'odieresis': 556, - 'udieresis': 556, - 'notequal': 549, - 'gcommaaccent': 556, - 'eth': 556, - 'zcaron': 500, - 'ncommaaccent': 556, - 'onesuperior': 333, - 'imacron': 278, - 'Euro': 556 - }, - 'Symbol': { - 'space': 250, - 'exclam': 333, - 'universal': 713, - 'numbersign': 500, - 'existential': 549, - 'percent': 833, - 'ampersand': 778, - 'suchthat': 439, - 'parenleft': 333, - 'parenright': 333, - 'asteriskmath': 500, - 'plus': 549, - 'comma': 250, - 'minus': 549, - 'period': 250, - 'slash': 278, - 'zero': 500, - 'one': 500, - 'two': 500, - 'three': 500, - 'four': 500, - 'five': 500, - 'six': 500, - 'seven': 500, - 'eight': 500, - 'nine': 500, - 'colon': 278, - 'semicolon': 278, - 'less': 549, - 'equal': 549, - 'greater': 549, - 'question': 444, - 'congruent': 549, - 'Alpha': 722, - 'Beta': 667, - 'Chi': 722, - 'Delta': 612, - 'Epsilon': 611, - 'Phi': 763, - 'Gamma': 603, - 'Eta': 722, - 'Iota': 333, - 'theta1': 631, - 'Kappa': 722, - 'Lambda': 686, - 'Mu': 889, - 'Nu': 722, - 'Omicron': 722, - 'Pi': 768, - 'Theta': 741, - 'Rho': 556, - 'Sigma': 592, - 'Tau': 611, - 'Upsilon': 690, - 'sigma1': 439, - 'Omega': 768, - 'Xi': 645, - 'Psi': 795, - 'Zeta': 611, - 'bracketleft': 333, - 'therefore': 863, - 'bracketright': 333, - 'perpendicular': 658, - 'underscore': 500, - 'radicalex': 500, - 'alpha': 631, - 'beta': 549, - 'chi': 549, - 'delta': 494, - 'epsilon': 439, - 'phi': 521, - 'gamma': 411, - 'eta': 603, - 'iota': 329, - 'phi1': 603, - 'kappa': 549, - 'lambda': 549, - 'mu': 576, - 'nu': 521, - 'omicron': 549, - 'pi': 549, - 'theta': 521, - 'rho': 549, - 'sigma': 603, - 'tau': 439, - 'upsilon': 576, - 'omega1': 713, - 'omega': 686, - 'xi': 493, - 'psi': 686, - 'zeta': 494, - 'braceleft': 480, - 'bar': 200, - 'braceright': 480, - 'similar': 549, - 'Euro': 750, - 'Upsilon1': 620, - 'minute': 247, - 'lessequal': 549, - 'fraction': 167, - 'infinity': 713, - 'florin': 500, - 'club': 753, - 'diamond': 753, - 'heart': 753, - 'spade': 753, - 'arrowboth': 1042, - 'arrowleft': 987, - 'arrowup': 603, - 'arrowright': 987, - 'arrowdown': 603, - 'degree': 400, - 'plusminus': 549, - 'second': 411, - 'greaterequal': 549, - 'multiply': 549, - 'proportional': 713, - 'partialdiff': 494, - 'bullet': 460, - 'divide': 549, - 'notequal': 549, - 'equivalence': 549, - 'approxequal': 549, - 'ellipsis': 1000, - 'arrowvertex': 603, - 'arrowhorizex': 1000, - 'carriagereturn': 658, - 'aleph': 823, - 'Ifraktur': 686, - 'Rfraktur': 795, - 'weierstrass': 987, - 'circlemultiply': 768, - 'circleplus': 768, - 'emptyset': 823, - 'intersection': 768, - 'union': 768, - 'propersuperset': 713, - 'reflexsuperset': 713, - 'notsubset': 713, - 'propersubset': 713, - 'reflexsubset': 713, - 'element': 713, - 'notelement': 713, - 'angle': 768, - 'gradient': 713, - 'registerserif': 790, - 'copyrightserif': 790, - 'trademarkserif': 890, - 'product': 823, - 'radical': 549, - 'dotmath': 250, - 'logicalnot': 713, - 'logicaland': 603, - 'logicalor': 603, - 'arrowdblboth': 1042, - 'arrowdblleft': 987, - 'arrowdblup': 603, - 'arrowdblright': 987, - 'arrowdbldown': 603, - 'lozenge': 494, - 'angleleft': 329, - 'registersans': 790, - 'copyrightsans': 790, - 'trademarksans': 786, - 'summation': 713, - 'parenlefttp': 384, - 'parenleftex': 384, - 'parenleftbt': 384, - 'bracketlefttp': 384, - 'bracketleftex': 384, - 'bracketleftbt': 384, - 'bracelefttp': 494, - 'braceleftmid': 494, - 'braceleftbt': 494, - 'braceex': 494, - 'angleright': 329, - 'integral': 274, - 'integraltp': 686, - 'integralex': 686, - 'integralbt': 686, - 'parenrighttp': 384, - 'parenrightex': 384, - 'parenrightbt': 384, - 'bracketrighttp': 384, - 'bracketrightex': 384, - 'bracketrightbt': 384, - 'bracerighttp': 494, - 'bracerightmid': 494, - 'bracerightbt': 494, - 'apple': 790 - }, - 'Times-Roman': { - 'space': 250, - 'exclam': 333, - 'quotedbl': 408, - 'numbersign': 500, - 'dollar': 500, - 'percent': 833, - 'ampersand': 778, - 'quoteright': 333, - 'parenleft': 333, - 'parenright': 333, - 'asterisk': 500, - 'plus': 564, - 'comma': 250, - 'hyphen': 333, - 'period': 250, - 'slash': 278, - 'zero': 500, - 'one': 500, - 'two': 500, - 'three': 500, - 'four': 500, - 'five': 500, - 'six': 500, - 'seven': 500, - 'eight': 500, - 'nine': 500, - 'colon': 278, - 'semicolon': 278, - 'less': 564, - 'equal': 564, - 'greater': 564, - 'question': 444, - 'at': 921, - 'A': 722, - 'B': 667, - 'C': 667, - 'D': 722, - 'E': 611, - 'F': 556, - 'G': 722, - 'H': 722, - 'I': 333, - 'J': 389, - 'K': 722, - 'L': 611, - 'M': 889, - 'N': 722, - 'O': 722, - 'P': 556, - 'Q': 722, - 'R': 667, - 'S': 556, - 'T': 611, - 'U': 722, - 'V': 722, - 'W': 944, - 'X': 722, - 'Y': 722, - 'Z': 611, - 'bracketleft': 333, - 'backslash': 278, - 'bracketright': 333, - 'asciicircum': 469, - 'underscore': 500, - 'quoteleft': 333, - 'a': 444, - 'b': 500, - 'c': 444, - 'd': 500, - 'e': 444, - 'f': 333, - 'g': 500, - 'h': 500, - 'i': 278, - 'j': 278, - 'k': 500, - 'l': 278, - 'm': 778, - 'n': 500, - 'o': 500, - 'p': 500, - 'q': 500, - 'r': 333, - 's': 389, - 't': 278, - 'u': 500, - 'v': 500, - 'w': 722, - 'x': 500, - 'y': 500, - 'z': 444, - 'braceleft': 480, - 'bar': 200, - 'braceright': 480, - 'asciitilde': 541, - 'exclamdown': 333, - 'cent': 500, - 'sterling': 500, - 'fraction': 167, - 'yen': 500, - 'florin': 500, - 'section': 500, - 'currency': 500, - 'quotesingle': 180, - 'quotedblleft': 444, - 'guillemotleft': 500, - 'guilsinglleft': 333, - 'guilsinglright': 333, - 'fi': 556, - 'fl': 556, - 'endash': 500, - 'dagger': 500, - 'daggerdbl': 500, - 'periodcentered': 250, - 'paragraph': 453, - 'bullet': 350, - 'quotesinglbase': 333, - 'quotedblbase': 444, - 'quotedblright': 444, - 'guillemotright': 500, - 'ellipsis': 1000, - 'perthousand': 1000, - 'questiondown': 444, - 'grave': 333, - 'acute': 333, - 'circumflex': 333, - 'tilde': 333, - 'macron': 333, - 'breve': 333, - 'dotaccent': 333, - 'dieresis': 333, - 'ring': 333, - 'cedilla': 333, - 'hungarumlaut': 333, - 'ogonek': 333, - 'caron': 333, - 'emdash': 1000, - 'AE': 889, - 'ordfeminine': 276, - 'Lslash': 611, - 'Oslash': 722, - 'OE': 889, - 'ordmasculine': 310, - 'ae': 667, - 'dotlessi': 278, - 'lslash': 278, - 'oslash': 500, - 'oe': 722, - 'germandbls': 500, - 'Idieresis': 333, - 'eacute': 444, - 'abreve': 444, - 'uhungarumlaut': 500, - 'ecaron': 444, - 'Ydieresis': 722, - 'divide': 564, - 'Yacute': 722, - 'Acircumflex': 722, - 'aacute': 444, - 'Ucircumflex': 722, - 'yacute': 500, - 'scommaaccent': 389, - 'ecircumflex': 444, - 'Uring': 722, - 'Udieresis': 722, - 'aogonek': 444, - 'Uacute': 722, - 'uogonek': 500, - 'Edieresis': 611, - 'Dcroat': 722, - 'commaaccent': 250, - 'copyright': 760, - 'Emacron': 611, - 'ccaron': 444, - 'aring': 444, - 'Ncommaaccent': 722, - 'lacute': 278, - 'agrave': 444, - 'Tcommaaccent': 611, - 'Cacute': 667, - 'atilde': 444, - 'Edotaccent': 611, - 'scaron': 389, - 'scedilla': 389, - 'iacute': 278, - 'lozenge': 471, - 'Rcaron': 667, - 'Gcommaaccent': 722, - 'ucircumflex': 500, - 'acircumflex': 444, - 'Amacron': 722, - 'rcaron': 333, - 'ccedilla': 444, - 'Zdotaccent': 611, - 'Thorn': 556, - 'Omacron': 722, - 'Racute': 667, - 'Sacute': 556, - 'dcaron': 588, - 'Umacron': 722, - 'uring': 500, - 'threesuperior': 300, - 'Ograve': 722, - 'Agrave': 722, - 'Abreve': 722, - 'multiply': 564, - 'uacute': 500, - 'Tcaron': 611, - 'partialdiff': 476, - 'ydieresis': 500, - 'Nacute': 722, - 'icircumflex': 278, - 'Ecircumflex': 611, - 'adieresis': 444, - 'edieresis': 444, - 'cacute': 444, - 'nacute': 500, - 'umacron': 500, - 'Ncaron': 722, - 'Iacute': 333, - 'plusminus': 564, - 'brokenbar': 200, - 'registered': 760, - 'Gbreve': 722, - 'Idotaccent': 333, - 'summation': 600, - 'Egrave': 611, - 'racute': 333, - 'omacron': 500, - 'Zacute': 611, - 'Zcaron': 611, - 'greaterequal': 549, - 'Eth': 722, - 'Ccedilla': 667, - 'lcommaaccent': 278, - 'tcaron': 326, - 'eogonek': 444, - 'Uogonek': 722, - 'Aacute': 722, - 'Adieresis': 722, - 'egrave': 444, - 'zacute': 444, - 'iogonek': 278, - 'Oacute': 722, - 'oacute': 500, - 'amacron': 444, - 'sacute': 389, - 'idieresis': 278, - 'Ocircumflex': 722, - 'Ugrave': 722, - 'Delta': 612, - 'thorn': 500, - 'twosuperior': 300, - 'Odieresis': 722, - 'mu': 500, - 'igrave': 278, - 'ohungarumlaut': 500, - 'Eogonek': 611, - 'dcroat': 500, - 'threequarters': 750, - 'Scedilla': 556, - 'lcaron': 344, - 'Kcommaaccent': 722, - 'Lacute': 611, - 'trademark': 980, - 'edotaccent': 444, - 'Igrave': 333, - 'Imacron': 333, - 'Lcaron': 611, - 'onehalf': 750, - 'lessequal': 549, - 'ocircumflex': 500, - 'ntilde': 500, - 'Uhungarumlaut': 722, - 'Eacute': 611, - 'emacron': 444, - 'gbreve': 500, - 'onequarter': 750, - 'Scaron': 556, - 'Scommaaccent': 556, - 'Ohungarumlaut': 722, - 'degree': 400, - 'ograve': 500, - 'Ccaron': 667, - 'ugrave': 500, - 'radical': 453, - 'Dcaron': 722, - 'rcommaaccent': 333, - 'Ntilde': 722, - 'otilde': 500, - 'Rcommaaccent': 667, - 'Lcommaaccent': 611, - 'Atilde': 722, - 'Aogonek': 722, - 'Aring': 722, - 'Otilde': 722, - 'zdotaccent': 444, - 'Ecaron': 611, - 'Iogonek': 333, - 'kcommaaccent': 500, - 'minus': 564, - 'Icircumflex': 333, - 'ncaron': 500, - 'tcommaaccent': 278, - 'logicalnot': 564, - 'odieresis': 500, - 'udieresis': 500, - 'notequal': 549, - 'gcommaaccent': 500, - 'eth': 500, - 'zcaron': 444, - 'ncommaaccent': 500, - 'onesuperior': 300, - 'imacron': 278, - 'Euro': 500 - }, - 'Times-Bold': { - 'space': 250, - 'exclam': 333, - 'quotedbl': 555, - 'numbersign': 500, - 'dollar': 500, - 'percent': 1000, - 'ampersand': 833, - 'quoteright': 333, - 'parenleft': 333, - 'parenright': 333, - 'asterisk': 500, - 'plus': 570, - 'comma': 250, - 'hyphen': 333, - 'period': 250, - 'slash': 278, - 'zero': 500, - 'one': 500, - 'two': 500, - 'three': 500, - 'four': 500, - 'five': 500, - 'six': 500, - 'seven': 500, - 'eight': 500, - 'nine': 500, - 'colon': 333, - 'semicolon': 333, - 'less': 570, - 'equal': 570, - 'greater': 570, - 'question': 500, - 'at': 930, - 'A': 722, - 'B': 667, - 'C': 722, - 'D': 722, - 'E': 667, - 'F': 611, - 'G': 778, - 'H': 778, - 'I': 389, - 'J': 500, - 'K': 778, - 'L': 667, - 'M': 944, - 'N': 722, - 'O': 778, - 'P': 611, - 'Q': 778, - 'R': 722, - 'S': 556, - 'T': 667, - 'U': 722, - 'V': 722, - 'W': 1000, - 'X': 722, - 'Y': 722, - 'Z': 667, - 'bracketleft': 333, - 'backslash': 278, - 'bracketright': 333, - 'asciicircum': 581, - 'underscore': 500, - 'quoteleft': 333, - 'a': 500, - 'b': 556, - 'c': 444, - 'd': 556, - 'e': 444, - 'f': 333, - 'g': 500, - 'h': 556, - 'i': 278, - 'j': 333, - 'k': 556, - 'l': 278, - 'm': 833, - 'n': 556, - 'o': 500, - 'p': 556, - 'q': 556, - 'r': 444, - 's': 389, - 't': 333, - 'u': 556, - 'v': 500, - 'w': 722, - 'x': 500, - 'y': 500, - 'z': 444, - 'braceleft': 394, - 'bar': 220, - 'braceright': 394, - 'asciitilde': 520, - 'exclamdown': 333, - 'cent': 500, - 'sterling': 500, - 'fraction': 167, - 'yen': 500, - 'florin': 500, - 'section': 500, - 'currency': 500, - 'quotesingle': 278, - 'quotedblleft': 500, - 'guillemotleft': 500, - 'guilsinglleft': 333, - 'guilsinglright': 333, - 'fi': 556, - 'fl': 556, - 'endash': 500, - 'dagger': 500, - 'daggerdbl': 500, - 'periodcentered': 250, - 'paragraph': 540, - 'bullet': 350, - 'quotesinglbase': 333, - 'quotedblbase': 500, - 'quotedblright': 500, - 'guillemotright': 500, - 'ellipsis': 1000, - 'perthousand': 1000, - 'questiondown': 500, - 'grave': 333, - 'acute': 333, - 'circumflex': 333, - 'tilde': 333, - 'macron': 333, - 'breve': 333, - 'dotaccent': 333, - 'dieresis': 333, - 'ring': 333, - 'cedilla': 333, - 'hungarumlaut': 333, - 'ogonek': 333, - 'caron': 333, - 'emdash': 1000, - 'AE': 1000, - 'ordfeminine': 300, - 'Lslash': 667, - 'Oslash': 778, - 'OE': 1000, - 'ordmasculine': 330, - 'ae': 722, - 'dotlessi': 278, - 'lslash': 278, - 'oslash': 500, - 'oe': 722, - 'germandbls': 556, - 'Idieresis': 389, - 'eacute': 444, - 'abreve': 500, - 'uhungarumlaut': 556, - 'ecaron': 444, - 'Ydieresis': 722, - 'divide': 570, - 'Yacute': 722, - 'Acircumflex': 722, - 'aacute': 500, - 'Ucircumflex': 722, - 'yacute': 500, - 'scommaaccent': 389, - 'ecircumflex': 444, - 'Uring': 722, - 'Udieresis': 722, - 'aogonek': 500, - 'Uacute': 722, - 'uogonek': 556, - 'Edieresis': 667, - 'Dcroat': 722, - 'commaaccent': 250, - 'copyright': 747, - 'Emacron': 667, - 'ccaron': 444, - 'aring': 500, - 'Ncommaaccent': 722, - 'lacute': 278, - 'agrave': 500, - 'Tcommaaccent': 667, - 'Cacute': 722, - 'atilde': 500, - 'Edotaccent': 667, - 'scaron': 389, - 'scedilla': 389, - 'iacute': 278, - 'lozenge': 494, - 'Rcaron': 722, - 'Gcommaaccent': 778, - 'ucircumflex': 556, - 'acircumflex': 500, - 'Amacron': 722, - 'rcaron': 444, - 'ccedilla': 444, - 'Zdotaccent': 667, - 'Thorn': 611, - 'Omacron': 778, - 'Racute': 722, - 'Sacute': 556, - 'dcaron': 672, - 'Umacron': 722, - 'uring': 556, - 'threesuperior': 300, - 'Ograve': 778, - 'Agrave': 722, - 'Abreve': 722, - 'multiply': 570, - 'uacute': 556, - 'Tcaron': 667, - 'partialdiff': 494, - 'ydieresis': 500, - 'Nacute': 722, - 'icircumflex': 278, - 'Ecircumflex': 667, - 'adieresis': 500, - 'edieresis': 444, - 'cacute': 444, - 'nacute': 556, - 'umacron': 556, - 'Ncaron': 722, - 'Iacute': 389, - 'plusminus': 570, - 'brokenbar': 220, - 'registered': 747, - 'Gbreve': 778, - 'Idotaccent': 389, - 'summation': 600, - 'Egrave': 667, - 'racute': 444, - 'omacron': 500, - 'Zacute': 667, - 'Zcaron': 667, - 'greaterequal': 549, - 'Eth': 722, - 'Ccedilla': 722, - 'lcommaaccent': 278, - 'tcaron': 416, - 'eogonek': 444, - 'Uogonek': 722, - 'Aacute': 722, - 'Adieresis': 722, - 'egrave': 444, - 'zacute': 444, - 'iogonek': 278, - 'Oacute': 778, - 'oacute': 500, - 'amacron': 500, - 'sacute': 389, - 'idieresis': 278, - 'Ocircumflex': 778, - 'Ugrave': 722, - 'Delta': 612, - 'thorn': 556, - 'twosuperior': 300, - 'Odieresis': 778, - 'mu': 556, - 'igrave': 278, - 'ohungarumlaut': 500, - 'Eogonek': 667, - 'dcroat': 556, - 'threequarters': 750, - 'Scedilla': 556, - 'lcaron': 394, - 'Kcommaaccent': 778, - 'Lacute': 667, - 'trademark': 1000, - 'edotaccent': 444, - 'Igrave': 389, - 'Imacron': 389, - 'Lcaron': 667, - 'onehalf': 750, - 'lessequal': 549, - 'ocircumflex': 500, - 'ntilde': 556, - 'Uhungarumlaut': 722, - 'Eacute': 667, - 'emacron': 444, - 'gbreve': 500, - 'onequarter': 750, - 'Scaron': 556, - 'Scommaaccent': 556, - 'Ohungarumlaut': 778, - 'degree': 400, - 'ograve': 500, - 'Ccaron': 722, - 'ugrave': 556, - 'radical': 549, - 'Dcaron': 722, - 'rcommaaccent': 444, - 'Ntilde': 722, - 'otilde': 500, - 'Rcommaaccent': 722, - 'Lcommaaccent': 667, - 'Atilde': 722, - 'Aogonek': 722, - 'Aring': 722, - 'Otilde': 778, - 'zdotaccent': 444, - 'Ecaron': 667, - 'Iogonek': 389, - 'kcommaaccent': 556, - 'minus': 570, - 'Icircumflex': 389, - 'ncaron': 556, - 'tcommaaccent': 333, - 'logicalnot': 570, - 'odieresis': 500, - 'udieresis': 556, - 'notequal': 549, - 'gcommaaccent': 500, - 'eth': 500, - 'zcaron': 444, - 'ncommaaccent': 556, - 'onesuperior': 300, - 'imacron': 278, - 'Euro': 500 - }, - 'Times-BoldItalic': { - 'space': 250, - 'exclam': 389, - 'quotedbl': 555, - 'numbersign': 500, - 'dollar': 500, - 'percent': 833, - 'ampersand': 778, - 'quoteright': 333, - 'parenleft': 333, - 'parenright': 333, - 'asterisk': 500, - 'plus': 570, - 'comma': 250, - 'hyphen': 333, - 'period': 250, - 'slash': 278, - 'zero': 500, - 'one': 500, - 'two': 500, - 'three': 500, - 'four': 500, - 'five': 500, - 'six': 500, - 'seven': 500, - 'eight': 500, - 'nine': 500, - 'colon': 333, - 'semicolon': 333, - 'less': 570, - 'equal': 570, - 'greater': 570, - 'question': 500, - 'at': 832, - 'A': 667, - 'B': 667, - 'C': 667, - 'D': 722, - 'E': 667, - 'F': 667, - 'G': 722, - 'H': 778, - 'I': 389, - 'J': 500, - 'K': 667, - 'L': 611, - 'M': 889, - 'N': 722, - 'O': 722, - 'P': 611, - 'Q': 722, - 'R': 667, - 'S': 556, - 'T': 611, - 'U': 722, - 'V': 667, - 'W': 889, - 'X': 667, - 'Y': 611, - 'Z': 611, - 'bracketleft': 333, - 'backslash': 278, - 'bracketright': 333, - 'asciicircum': 570, - 'underscore': 500, - 'quoteleft': 333, - 'a': 500, - 'b': 500, - 'c': 444, - 'd': 500, - 'e': 444, - 'f': 333, - 'g': 500, - 'h': 556, - 'i': 278, - 'j': 278, - 'k': 500, - 'l': 278, - 'm': 778, - 'n': 556, - 'o': 500, - 'p': 500, - 'q': 500, - 'r': 389, - 's': 389, - 't': 278, - 'u': 556, - 'v': 444, - 'w': 667, - 'x': 500, - 'y': 444, - 'z': 389, - 'braceleft': 348, - 'bar': 220, - 'braceright': 348, - 'asciitilde': 570, - 'exclamdown': 389, - 'cent': 500, - 'sterling': 500, - 'fraction': 167, - 'yen': 500, - 'florin': 500, - 'section': 500, - 'currency': 500, - 'quotesingle': 278, - 'quotedblleft': 500, - 'guillemotleft': 500, - 'guilsinglleft': 333, - 'guilsinglright': 333, - 'fi': 556, - 'fl': 556, - 'endash': 500, - 'dagger': 500, - 'daggerdbl': 500, - 'periodcentered': 250, - 'paragraph': 500, - 'bullet': 350, - 'quotesinglbase': 333, - 'quotedblbase': 500, - 'quotedblright': 500, - 'guillemotright': 500, - 'ellipsis': 1000, - 'perthousand': 1000, - 'questiondown': 500, - 'grave': 333, - 'acute': 333, - 'circumflex': 333, - 'tilde': 333, - 'macron': 333, - 'breve': 333, - 'dotaccent': 333, - 'dieresis': 333, - 'ring': 333, - 'cedilla': 333, - 'hungarumlaut': 333, - 'ogonek': 333, - 'caron': 333, - 'emdash': 1000, - 'AE': 944, - 'ordfeminine': 266, - 'Lslash': 611, - 'Oslash': 722, - 'OE': 944, - 'ordmasculine': 300, - 'ae': 722, - 'dotlessi': 278, - 'lslash': 278, - 'oslash': 500, - 'oe': 722, - 'germandbls': 500, - 'Idieresis': 389, - 'eacute': 444, - 'abreve': 500, - 'uhungarumlaut': 556, - 'ecaron': 444, - 'Ydieresis': 611, - 'divide': 570, - 'Yacute': 611, - 'Acircumflex': 667, - 'aacute': 500, - 'Ucircumflex': 722, - 'yacute': 444, - 'scommaaccent': 389, - 'ecircumflex': 444, - 'Uring': 722, - 'Udieresis': 722, - 'aogonek': 500, - 'Uacute': 722, - 'uogonek': 556, - 'Edieresis': 667, - 'Dcroat': 722, - 'commaaccent': 250, - 'copyright': 747, - 'Emacron': 667, - 'ccaron': 444, - 'aring': 500, - 'Ncommaaccent': 722, - 'lacute': 278, - 'agrave': 500, - 'Tcommaaccent': 611, - 'Cacute': 667, - 'atilde': 500, - 'Edotaccent': 667, - 'scaron': 389, - 'scedilla': 389, - 'iacute': 278, - 'lozenge': 494, - 'Rcaron': 667, - 'Gcommaaccent': 722, - 'ucircumflex': 556, - 'acircumflex': 500, - 'Amacron': 667, - 'rcaron': 389, - 'ccedilla': 444, - 'Zdotaccent': 611, - 'Thorn': 611, - 'Omacron': 722, - 'Racute': 667, - 'Sacute': 556, - 'dcaron': 608, - 'Umacron': 722, - 'uring': 556, - 'threesuperior': 300, - 'Ograve': 722, - 'Agrave': 667, - 'Abreve': 667, - 'multiply': 570, - 'uacute': 556, - 'Tcaron': 611, - 'partialdiff': 494, - 'ydieresis': 444, - 'Nacute': 722, - 'icircumflex': 278, - 'Ecircumflex': 667, - 'adieresis': 500, - 'edieresis': 444, - 'cacute': 444, - 'nacute': 556, - 'umacron': 556, - 'Ncaron': 722, - 'Iacute': 389, - 'plusminus': 570, - 'brokenbar': 220, - 'registered': 747, - 'Gbreve': 722, - 'Idotaccent': 389, - 'summation': 600, - 'Egrave': 667, - 'racute': 389, - 'omacron': 500, - 'Zacute': 611, - 'Zcaron': 611, - 'greaterequal': 549, - 'Eth': 722, - 'Ccedilla': 667, - 'lcommaaccent': 278, - 'tcaron': 366, - 'eogonek': 444, - 'Uogonek': 722, - 'Aacute': 667, - 'Adieresis': 667, - 'egrave': 444, - 'zacute': 389, - 'iogonek': 278, - 'Oacute': 722, - 'oacute': 500, - 'amacron': 500, - 'sacute': 389, - 'idieresis': 278, - 'Ocircumflex': 722, - 'Ugrave': 722, - 'Delta': 612, - 'thorn': 500, - 'twosuperior': 300, - 'Odieresis': 722, - 'mu': 576, - 'igrave': 278, - 'ohungarumlaut': 500, - 'Eogonek': 667, - 'dcroat': 500, - 'threequarters': 750, - 'Scedilla': 556, - 'lcaron': 382, - 'Kcommaaccent': 667, - 'Lacute': 611, - 'trademark': 1000, - 'edotaccent': 444, - 'Igrave': 389, - 'Imacron': 389, - 'Lcaron': 611, - 'onehalf': 750, - 'lessequal': 549, - 'ocircumflex': 500, - 'ntilde': 556, - 'Uhungarumlaut': 722, - 'Eacute': 667, - 'emacron': 444, - 'gbreve': 500, - 'onequarter': 750, - 'Scaron': 556, - 'Scommaaccent': 556, - 'Ohungarumlaut': 722, - 'degree': 400, - 'ograve': 500, - 'Ccaron': 667, - 'ugrave': 556, - 'radical': 549, - 'Dcaron': 722, - 'rcommaaccent': 389, - 'Ntilde': 722, - 'otilde': 500, - 'Rcommaaccent': 667, - 'Lcommaaccent': 611, - 'Atilde': 667, - 'Aogonek': 667, - 'Aring': 667, - 'Otilde': 722, - 'zdotaccent': 389, - 'Ecaron': 667, - 'Iogonek': 389, - 'kcommaaccent': 500, - 'minus': 606, - 'Icircumflex': 389, - 'ncaron': 556, - 'tcommaaccent': 278, - 'logicalnot': 606, - 'odieresis': 500, - 'udieresis': 556, - 'notequal': 549, - 'gcommaaccent': 500, - 'eth': 500, - 'zcaron': 389, - 'ncommaaccent': 556, - 'onesuperior': 300, - 'imacron': 278, - 'Euro': 500 - }, - 'Times-Italic': { - 'space': 250, - 'exclam': 333, - 'quotedbl': 420, - 'numbersign': 500, - 'dollar': 500, - 'percent': 833, - 'ampersand': 778, - 'quoteright': 333, - 'parenleft': 333, - 'parenright': 333, - 'asterisk': 500, - 'plus': 675, - 'comma': 250, - 'hyphen': 333, - 'period': 250, - 'slash': 278, - 'zero': 500, - 'one': 500, - 'two': 500, - 'three': 500, - 'four': 500, - 'five': 500, - 'six': 500, - 'seven': 500, - 'eight': 500, - 'nine': 500, - 'colon': 333, - 'semicolon': 333, - 'less': 675, - 'equal': 675, - 'greater': 675, - 'question': 500, - 'at': 920, - 'A': 611, - 'B': 611, - 'C': 667, - 'D': 722, - 'E': 611, - 'F': 611, - 'G': 722, - 'H': 722, - 'I': 333, - 'J': 444, - 'K': 667, - 'L': 556, - 'M': 833, - 'N': 667, - 'O': 722, - 'P': 611, - 'Q': 722, - 'R': 611, - 'S': 500, - 'T': 556, - 'U': 722, - 'V': 611, - 'W': 833, - 'X': 611, - 'Y': 556, - 'Z': 556, - 'bracketleft': 389, - 'backslash': 278, - 'bracketright': 389, - 'asciicircum': 422, - 'underscore': 500, - 'quoteleft': 333, - 'a': 500, - 'b': 500, - 'c': 444, - 'd': 500, - 'e': 444, - 'f': 278, - 'g': 500, - 'h': 500, - 'i': 278, - 'j': 278, - 'k': 444, - 'l': 278, - 'm': 722, - 'n': 500, - 'o': 500, - 'p': 500, - 'q': 500, - 'r': 389, - 's': 389, - 't': 278, - 'u': 500, - 'v': 444, - 'w': 667, - 'x': 444, - 'y': 444, - 'z': 389, - 'braceleft': 400, - 'bar': 275, - 'braceright': 400, - 'asciitilde': 541, - 'exclamdown': 389, - 'cent': 500, - 'sterling': 500, - 'fraction': 167, - 'yen': 500, - 'florin': 500, - 'section': 500, - 'currency': 500, - 'quotesingle': 214, - 'quotedblleft': 556, - 'guillemotleft': 500, - 'guilsinglleft': 333, - 'guilsinglright': 333, - 'fi': 500, - 'fl': 500, - 'endash': 500, - 'dagger': 500, - 'daggerdbl': 500, - 'periodcentered': 250, - 'paragraph': 523, - 'bullet': 350, - 'quotesinglbase': 333, - 'quotedblbase': 556, - 'quotedblright': 556, - 'guillemotright': 500, - 'ellipsis': 889, - 'perthousand': 1000, - 'questiondown': 500, - 'grave': 333, - 'acute': 333, - 'circumflex': 333, - 'tilde': 333, - 'macron': 333, - 'breve': 333, - 'dotaccent': 333, - 'dieresis': 333, - 'ring': 333, - 'cedilla': 333, - 'hungarumlaut': 333, - 'ogonek': 333, - 'caron': 333, - 'emdash': 889, - 'AE': 889, - 'ordfeminine': 276, - 'Lslash': 556, - 'Oslash': 722, - 'OE': 944, - 'ordmasculine': 310, - 'ae': 667, - 'dotlessi': 278, - 'lslash': 278, - 'oslash': 500, - 'oe': 667, - 'germandbls': 500, - 'Idieresis': 333, - 'eacute': 444, - 'abreve': 500, - 'uhungarumlaut': 500, - 'ecaron': 444, - 'Ydieresis': 556, - 'divide': 675, - 'Yacute': 556, - 'Acircumflex': 611, - 'aacute': 500, - 'Ucircumflex': 722, - 'yacute': 444, - 'scommaaccent': 389, - 'ecircumflex': 444, - 'Uring': 722, - 'Udieresis': 722, - 'aogonek': 500, - 'Uacute': 722, - 'uogonek': 500, - 'Edieresis': 611, - 'Dcroat': 722, - 'commaaccent': 250, - 'copyright': 760, - 'Emacron': 611, - 'ccaron': 444, - 'aring': 500, - 'Ncommaaccent': 667, - 'lacute': 278, - 'agrave': 500, - 'Tcommaaccent': 556, - 'Cacute': 667, - 'atilde': 500, - 'Edotaccent': 611, - 'scaron': 389, - 'scedilla': 389, - 'iacute': 278, - 'lozenge': 471, - 'Rcaron': 611, - 'Gcommaaccent': 722, - 'ucircumflex': 500, - 'acircumflex': 500, - 'Amacron': 611, - 'rcaron': 389, - 'ccedilla': 444, - 'Zdotaccent': 556, - 'Thorn': 611, - 'Omacron': 722, - 'Racute': 611, - 'Sacute': 500, - 'dcaron': 544, - 'Umacron': 722, - 'uring': 500, - 'threesuperior': 300, - 'Ograve': 722, - 'Agrave': 611, - 'Abreve': 611, - 'multiply': 675, - 'uacute': 500, - 'Tcaron': 556, - 'partialdiff': 476, - 'ydieresis': 444, - 'Nacute': 667, - 'icircumflex': 278, - 'Ecircumflex': 611, - 'adieresis': 500, - 'edieresis': 444, - 'cacute': 444, - 'nacute': 500, - 'umacron': 500, - 'Ncaron': 667, - 'Iacute': 333, - 'plusminus': 675, - 'brokenbar': 275, - 'registered': 760, - 'Gbreve': 722, - 'Idotaccent': 333, - 'summation': 600, - 'Egrave': 611, - 'racute': 389, - 'omacron': 500, - 'Zacute': 556, - 'Zcaron': 556, - 'greaterequal': 549, - 'Eth': 722, - 'Ccedilla': 667, - 'lcommaaccent': 278, - 'tcaron': 300, - 'eogonek': 444, - 'Uogonek': 722, - 'Aacute': 611, - 'Adieresis': 611, - 'egrave': 444, - 'zacute': 389, - 'iogonek': 278, - 'Oacute': 722, - 'oacute': 500, - 'amacron': 500, - 'sacute': 389, - 'idieresis': 278, - 'Ocircumflex': 722, - 'Ugrave': 722, - 'Delta': 612, - 'thorn': 500, - 'twosuperior': 300, - 'Odieresis': 722, - 'mu': 500, - 'igrave': 278, - 'ohungarumlaut': 500, - 'Eogonek': 611, - 'dcroat': 500, - 'threequarters': 750, - 'Scedilla': 500, - 'lcaron': 300, - 'Kcommaaccent': 667, - 'Lacute': 556, - 'trademark': 980, - 'edotaccent': 444, - 'Igrave': 333, - 'Imacron': 333, - 'Lcaron': 611, - 'onehalf': 750, - 'lessequal': 549, - 'ocircumflex': 500, - 'ntilde': 500, - 'Uhungarumlaut': 722, - 'Eacute': 611, - 'emacron': 444, - 'gbreve': 500, - 'onequarter': 750, - 'Scaron': 500, - 'Scommaaccent': 500, - 'Ohungarumlaut': 722, - 'degree': 400, - 'ograve': 500, - 'Ccaron': 667, - 'ugrave': 500, - 'radical': 453, - 'Dcaron': 722, - 'rcommaaccent': 389, - 'Ntilde': 667, - 'otilde': 500, - 'Rcommaaccent': 611, - 'Lcommaaccent': 556, - 'Atilde': 611, - 'Aogonek': 611, - 'Aring': 611, - 'Otilde': 722, - 'zdotaccent': 389, - 'Ecaron': 611, - 'Iogonek': 333, - 'kcommaaccent': 444, - 'minus': 675, - 'Icircumflex': 333, - 'ncaron': 500, - 'tcommaaccent': 278, - 'logicalnot': 675, - 'odieresis': 500, - 'udieresis': 500, - 'notequal': 549, - 'gcommaaccent': 500, - 'eth': 500, - 'zcaron': 389, - 'ncommaaccent': 500, - 'onesuperior': 300, - 'imacron': 278, - 'Euro': 500 - }, - 'ZapfDingbats': { - 'space': 278, - 'a1': 974, - 'a2': 961, - 'a202': 974, - 'a3': 980, - 'a4': 719, - 'a5': 789, - 'a119': 790, - 'a118': 791, - 'a117': 690, - 'a11': 960, - 'a12': 939, - 'a13': 549, - 'a14': 855, - 'a15': 911, - 'a16': 933, - 'a105': 911, - 'a17': 945, - 'a18': 974, - 'a19': 755, - 'a20': 846, - 'a21': 762, - 'a22': 761, - 'a23': 571, - 'a24': 677, - 'a25': 763, - 'a26': 760, - 'a27': 759, - 'a28': 754, - 'a6': 494, - 'a7': 552, - 'a8': 537, - 'a9': 577, - 'a10': 692, - 'a29': 786, - 'a30': 788, - 'a31': 788, - 'a32': 790, - 'a33': 793, - 'a34': 794, - 'a35': 816, - 'a36': 823, - 'a37': 789, - 'a38': 841, - 'a39': 823, - 'a40': 833, - 'a41': 816, - 'a42': 831, - 'a43': 923, - 'a44': 744, - 'a45': 723, - 'a46': 749, - 'a47': 790, - 'a48': 792, - 'a49': 695, - 'a50': 776, - 'a51': 768, - 'a52': 792, - 'a53': 759, - 'a54': 707, - 'a55': 708, - 'a56': 682, - 'a57': 701, - 'a58': 826, - 'a59': 815, - 'a60': 789, - 'a61': 789, - 'a62': 707, - 'a63': 687, - 'a64': 696, - 'a65': 689, - 'a66': 786, - 'a67': 787, - 'a68': 713, - 'a69': 791, - 'a70': 785, - 'a71': 791, - 'a72': 873, - 'a73': 761, - 'a74': 762, - 'a203': 762, - 'a75': 759, - 'a204': 759, - 'a76': 892, - 'a77': 892, - 'a78': 788, - 'a79': 784, - 'a81': 438, - 'a82': 138, - 'a83': 277, - 'a84': 415, - 'a97': 392, - 'a98': 392, - 'a99': 668, - 'a100': 668, - 'a89': 390, - 'a90': 390, - 'a93': 317, - 'a94': 317, - 'a91': 276, - 'a92': 276, - 'a205': 509, - 'a85': 509, - 'a206': 410, - 'a86': 410, - 'a87': 234, - 'a88': 234, - 'a95': 334, - 'a96': 334, - 'a101': 732, - 'a102': 544, - 'a103': 544, - 'a104': 910, - 'a106': 667, - 'a107': 760, - 'a108': 760, - 'a112': 776, - 'a111': 595, - 'a110': 694, - 'a109': 626, - 'a120': 788, - 'a121': 788, - 'a122': 788, - 'a123': 788, - 'a124': 788, - 'a125': 788, - 'a126': 788, - 'a127': 788, - 'a128': 788, - 'a129': 788, - 'a130': 788, - 'a131': 788, - 'a132': 788, - 'a133': 788, - 'a134': 788, - 'a135': 788, - 'a136': 788, - 'a137': 788, - 'a138': 788, - 'a139': 788, - 'a140': 788, - 'a141': 788, - 'a142': 788, - 'a143': 788, - 'a144': 788, - 'a145': 788, - 'a146': 788, - 'a147': 788, - 'a148': 788, - 'a149': 788, - 'a150': 788, - 'a151': 788, - 'a152': 788, - 'a153': 788, - 'a154': 788, - 'a155': 788, - 'a156': 788, - 'a157': 788, - 'a158': 788, - 'a159': 788, - 'a160': 894, - 'a161': 838, - 'a163': 1016, - 'a164': 458, - 'a196': 748, - 'a165': 924, - 'a192': 748, - 'a166': 918, - 'a167': 927, - 'a168': 928, - 'a169': 928, - 'a170': 834, - 'a171': 873, - 'a172': 828, - 'a173': 924, - 'a162': 924, - 'a174': 917, - 'a175': 930, - 'a176': 931, - 'a177': 463, - 'a178': 883, - 'a179': 836, - 'a193': 836, - 'a180': 867, - 'a199': 867, - 'a181': 696, - 'a200': 696, - 'a182': 874, - 'a201': 874, - 'a183': 760, - 'a184': 946, - 'a197': 771, - 'a185': 865, - 'a194': 771, - 'a198': 888, - 'a186': 967, - 'a195': 888, - 'a187': 831, - 'a188': 873, - 'a189': 927, - 'a190': 970, - 'a191': 918 - } -}; - - -var EOF = {}; - -function isEOF(v) { - return (v === EOF); -} - -var MAX_LENGTH_TO_CACHE = 1000; - -var Parser = (function ParserClosure() { - function Parser(lexer, allowStreams, xref) { - this.lexer = lexer; - this.allowStreams = allowStreams; - this.xref = xref; - this.imageCache = {}; - this.refill(); - } - - Parser.prototype = { - refill: function Parser_refill() { - this.buf1 = this.lexer.getObj(); - this.buf2 = this.lexer.getObj(); - }, - shift: function Parser_shift() { - if (isCmd(this.buf2, 'ID')) { - this.buf1 = this.buf2; - this.buf2 = null; - } else { - this.buf1 = this.buf2; - this.buf2 = this.lexer.getObj(); - } - }, - getObj: function Parser_getObj(cipherTransform) { - var buf1 = this.buf1; - this.shift(); - - if (buf1 instanceof Cmd) { - switch (buf1.cmd) { - case 'BI': // inline image - return this.makeInlineImage(cipherTransform); - case '[': // array - var array = []; - while (!isCmd(this.buf1, ']') && !isEOF(this.buf1)) { - array.push(this.getObj(cipherTransform)); - } - if (isEOF(this.buf1)) { - error('End of file inside array'); - } - this.shift(); - return array; - case '<<': // dictionary or stream - var dict = new Dict(this.xref); - while (!isCmd(this.buf1, '>>') && !isEOF(this.buf1)) { - if (!isName(this.buf1)) { - info('Malformed dictionary: key must be a name object'); - this.shift(); - continue; - } - - var key = this.buf1.name; - this.shift(); - if (isEOF(this.buf1)) { - break; - } - dict.set(key, this.getObj(cipherTransform)); - } - if (isEOF(this.buf1)) { - error('End of file inside dictionary'); - } - - // Stream objects are not allowed inside content streams or - // object streams. - if (isCmd(this.buf2, 'stream')) { - return (this.allowStreams ? - this.makeStream(dict, cipherTransform) : dict); - } - this.shift(); - return dict; - default: // simple object - return buf1; - } - } - - if (isInt(buf1)) { // indirect reference or integer - var num = buf1; - if (isInt(this.buf1) && isCmd(this.buf2, 'R')) { - var ref = new Ref(num, this.buf1); - this.shift(); - this.shift(); - return ref; - } - return num; - } - - if (isString(buf1)) { // string - var str = buf1; - if (cipherTransform) { - str = cipherTransform.decryptString(str); - } - return str; - } - - // simple object - return buf1; - }, - /** - * Find the end of the stream by searching for the /EI\s/. - * @returns {number} The inline stream length. - */ - findDefaultInlineStreamEnd: - function Parser_findDefaultInlineStreamEnd(stream) { - var E = 0x45, I = 0x49, SPACE = 0x20, LF = 0xA, CR = 0xD; - var startPos = stream.pos, state = 0, ch, i, n, followingBytes; - while ((ch = stream.getByte()) !== -1) { - if (state === 0) { - state = (ch === E) ? 1 : 0; - } else if (state === 1) { - state = (ch === I) ? 2 : 0; - } else { - assert(state === 2); - if (ch === SPACE || ch === LF || ch === CR) { - // Let's check the next five bytes are ASCII... just be sure. - n = 5; - followingBytes = stream.peekBytes(n); - for (i = 0; i < n; i++) { - ch = followingBytes[i]; - if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7F)) { - // Not a LF, CR, SPACE or any visible ASCII character, i.e. - // it's binary stuff. Resetting the state. - state = 0; - break; - } - } - if (state === 2) { - break; // Finished! - } - } else { - state = 0; - } - } - } - return ((stream.pos - 4) - startPos); - }, - /** - * Find the EOI (end-of-image) marker 0xFFD9 of the stream. - * @returns {number} The inline stream length. - */ - findDCTDecodeInlineStreamEnd: - function Parser_findDCTDecodeInlineStreamEnd(stream) { - var startPos = stream.pos, foundEOI = false, b, markerLength, length; - while ((b = stream.getByte()) !== -1) { - if (b !== 0xFF) { // Not a valid marker. - continue; - } - switch (stream.getByte()) { - case 0x00: // Byte stuffing. - // 0xFF00 appears to be a very common byte sequence in JPEG images. - break; - - case 0xFF: // Fill byte. - // Avoid skipping a valid marker, resetting the stream position. - stream.skip(-1); - break; - - case 0xD9: // EOI - foundEOI = true; - break; - - case 0xC0: // SOF0 - case 0xC1: // SOF1 - case 0xC2: // SOF2 - case 0xC3: // SOF3 - - case 0xC5: // SOF5 - case 0xC6: // SOF6 - case 0xC7: // SOF7 - - case 0xC9: // SOF9 - case 0xCA: // SOF10 - case 0xCB: // SOF11 - - case 0xCD: // SOF13 - case 0xCE: // SOF14 - case 0xCF: // SOF15 - - case 0xC4: // DHT - case 0xCC: // DAC - - case 0xDA: // SOS - case 0xDB: // DQT - case 0xDC: // DNL - case 0xDD: // DRI - case 0xDE: // DHP - case 0xDF: // EXP - - case 0xE0: // APP0 - case 0xE1: // APP1 - case 0xE2: // APP2 - case 0xE3: // APP3 - case 0xE4: // APP4 - case 0xE5: // APP5 - case 0xE6: // APP6 - case 0xE7: // APP7 - case 0xE8: // APP8 - case 0xE9: // APP9 - case 0xEA: // APP10 - case 0xEB: // APP11 - case 0xEC: // APP12 - case 0xED: // APP13 - case 0xEE: // APP14 - case 0xEF: // APP15 - - case 0xFE: // COM - // The marker should be followed by the length of the segment. - markerLength = stream.getUint16(); - if (markerLength > 2) { - // |markerLength| contains the byte length of the marker segment, - // including its own length (2 bytes) and excluding the marker. - stream.skip(markerLength - 2); // Jump to the next marker. - } else { - // The marker length is invalid, resetting the stream position. - stream.skip(-2); - } - break; - } - if (foundEOI) { - break; - } - } - length = stream.pos - startPos; - if (b === -1) { - warn('Inline DCTDecode image stream: ' + - 'EOI marker not found, searching for /EI/ instead.'); - stream.skip(-length); // Reset the stream position. - return this.findDefaultInlineStreamEnd(stream); - } - this.inlineStreamSkipEI(stream); - return length; - }, - /** - * Find the EOD (end-of-data) marker '~>' (i.e. TILDE + GT) of the stream. - * @returns {number} The inline stream length. - */ - findASCII85DecodeInlineStreamEnd: - function Parser_findASCII85DecodeInlineStreamEnd(stream) { - var TILDE = 0x7E, GT = 0x3E; - var startPos = stream.pos, ch, length; - while ((ch = stream.getByte()) !== -1) { - if (ch === TILDE && stream.peekByte() === GT) { - stream.skip(); - break; - } - } - length = stream.pos - startPos; - if (ch === -1) { - warn('Inline ASCII85Decode image stream: ' + - 'EOD marker not found, searching for /EI/ instead.'); - stream.skip(-length); // Reset the stream position. - return this.findDefaultInlineStreamEnd(stream); - } - this.inlineStreamSkipEI(stream); - return length; - }, - /** - * Find the EOD (end-of-data) marker '>' (i.e. GT) of the stream. - * @returns {number} The inline stream length. - */ - findASCIIHexDecodeInlineStreamEnd: - function Parser_findASCIIHexDecodeInlineStreamEnd(stream) { - var GT = 0x3E; - var startPos = stream.pos, ch, length; - while ((ch = stream.getByte()) !== -1) { - if (ch === GT) { - break; - } - } - length = stream.pos - startPos; - if (ch === -1) { - warn('Inline ASCIIHexDecode image stream: ' + - 'EOD marker not found, searching for /EI/ instead.'); - stream.skip(-length); // Reset the stream position. - return this.findDefaultInlineStreamEnd(stream); - } - this.inlineStreamSkipEI(stream); - return length; - }, - /** - * Skip over the /EI/ for streams where we search for an EOD marker. - */ - inlineStreamSkipEI: function Parser_inlineStreamSkipEI(stream) { - var E = 0x45, I = 0x49; - var state = 0, ch; - while ((ch = stream.getByte()) !== -1) { - if (state === 0) { - state = (ch === E) ? 1 : 0; - } else if (state === 1) { - state = (ch === I) ? 2 : 0; - } else if (state === 2) { - break; - } - } - }, - makeInlineImage: function Parser_makeInlineImage(cipherTransform) { - var lexer = this.lexer; - var stream = lexer.stream; - - // Parse dictionary. - var dict = new Dict(null); - while (!isCmd(this.buf1, 'ID') && !isEOF(this.buf1)) { - if (!isName(this.buf1)) { - error('Dictionary key must be a name object'); - } - var key = this.buf1.name; - this.shift(); - if (isEOF(this.buf1)) { - break; - } - dict.set(key, this.getObj(cipherTransform)); - } - - // Extract the name of the first (i.e. the current) image filter. - var filter = this.fetchIfRef(dict.get('Filter', 'F')), filterName; - if (isName(filter)) { - filterName = filter.name; - } else if (isArray(filter) && isName(filter[0])) { - filterName = filter[0].name; - } - - // Parse image stream. - var startPos = stream.pos, length, i, ii; - if (filterName === 'DCTDecode' || filterName === 'DCT') { - length = this.findDCTDecodeInlineStreamEnd(stream); - } else if (filterName === 'ASCII85Decide' || filterName === 'A85') { - length = this.findASCII85DecodeInlineStreamEnd(stream); - } else if (filterName === 'ASCIIHexDecode' || filterName === 'AHx') { - length = this.findASCIIHexDecodeInlineStreamEnd(stream); - } else { - length = this.findDefaultInlineStreamEnd(stream); - } - var imageStream = stream.makeSubStream(startPos, length, dict); - - // Cache all images below the MAX_LENGTH_TO_CACHE threshold by their - // adler32 checksum. - var adler32; - if (length < MAX_LENGTH_TO_CACHE) { - var imageBytes = imageStream.getBytes(); - imageStream.reset(); - - var a = 1; - var b = 0; - for (i = 0, ii = imageBytes.length; i < ii; ++i) { - // No modulo required in the loop if imageBytes.length < 5552. - a += imageBytes[i] & 0xff; - b += a; - } - adler32 = ((b % 65521) << 16) | (a % 65521); - - if (this.imageCache.adler32 === adler32) { - this.buf2 = Cmd.get('EI'); - this.shift(); - - this.imageCache[adler32].reset(); - return this.imageCache[adler32]; - } - } - - if (cipherTransform) { - imageStream = cipherTransform.createStream(imageStream, length); - } - - imageStream = this.filter(imageStream, dict, length); - imageStream.dict = dict; - if (adler32 !== undefined) { - imageStream.cacheKey = 'inline_' + length + '_' + adler32; - this.imageCache[adler32] = imageStream; - } - - this.buf2 = Cmd.get('EI'); - this.shift(); - - return imageStream; - }, - fetchIfRef: function Parser_fetchIfRef(obj) { - // not relying on the xref.fetchIfRef -- xref might not be set - return (isRef(obj) ? this.xref.fetch(obj) : obj); - }, - makeStream: function Parser_makeStream(dict, cipherTransform) { - var lexer = this.lexer; - var stream = lexer.stream; - - // get stream start position - lexer.skipToNextLine(); - var pos = stream.pos - 1; - - // get length - var length = this.fetchIfRef(dict.get('Length')); - if (!isInt(length)) { - info('Bad ' + length + ' attribute in stream'); - length = 0; - } - - // skip over the stream data - stream.pos = pos + length; - lexer.nextChar(); - - this.shift(); // '>>' - this.shift(); // 'stream' - if (!isCmd(this.buf1, 'endstream')) { - // bad stream length, scanning for endstream - stream.pos = pos; - var SCAN_BLOCK_SIZE = 2048; - var ENDSTREAM_SIGNATURE_LENGTH = 9; - var ENDSTREAM_SIGNATURE = [0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6D]; - var skipped = 0, found = false, i, j; - while (stream.pos < stream.end) { - var scanBytes = stream.peekBytes(SCAN_BLOCK_SIZE); - var scanLength = scanBytes.length - ENDSTREAM_SIGNATURE_LENGTH; - if (scanLength <= 0) { - break; - } - found = false; - for (i = 0, j = 0; i < scanLength; i++) { - var b = scanBytes[i]; - if (b !== ENDSTREAM_SIGNATURE[j]) { - i -= j; - j = 0; - } else { - j++; - if (j >= ENDSTREAM_SIGNATURE_LENGTH) { - i++; - found = true; - break; - } - } - } - if (found) { - skipped += i - ENDSTREAM_SIGNATURE_LENGTH; - stream.pos += i - ENDSTREAM_SIGNATURE_LENGTH; - break; - } - skipped += scanLength; - stream.pos += scanLength; - } - if (!found) { - error('Missing endstream'); - } - length = skipped; - - lexer.nextChar(); - this.shift(); - this.shift(); - } - this.shift(); // 'endstream' - - stream = stream.makeSubStream(pos, length, dict); - if (cipherTransform) { - stream = cipherTransform.createStream(stream, length); - } - stream = this.filter(stream, dict, length); - stream.dict = dict; - return stream; - }, - filter: function Parser_filter(stream, dict, length) { - var filter = this.fetchIfRef(dict.get('Filter', 'F')); - var params = this.fetchIfRef(dict.get('DecodeParms', 'DP')); - if (isName(filter)) { - return this.makeFilter(stream, filter.name, length, params); - } - - var maybeLength = length; - if (isArray(filter)) { - var filterArray = filter; - var paramsArray = params; - for (var i = 0, ii = filterArray.length; i < ii; ++i) { - filter = filterArray[i]; - if (!isName(filter)) { - error('Bad filter name: ' + filter); - } - - params = null; - if (isArray(paramsArray) && (i in paramsArray)) { - params = paramsArray[i]; - } - stream = this.makeFilter(stream, filter.name, maybeLength, params); - // after the first stream the length variable is invalid - maybeLength = null; - } - } - return stream; - }, - makeFilter: function Parser_makeFilter(stream, name, maybeLength, params) { - if (stream.dict.get('Length') === 0) { - return new NullStream(stream); - } - try { - if (params) { - params = this.fetchIfRef(params); - } - var xrefStreamStats = this.xref.stats.streamTypes; - if (name === 'FlateDecode' || name === 'Fl') { - xrefStreamStats[StreamType.FLATE] = true; - if (params) { - return new PredictorStream(new FlateStream(stream, maybeLength), - maybeLength, params); - } - return new FlateStream(stream, maybeLength); - } - if (name === 'LZWDecode' || name === 'LZW') { - xrefStreamStats[StreamType.LZW] = true; - var earlyChange = 1; - if (params) { - if (params.has('EarlyChange')) { - earlyChange = params.get('EarlyChange'); - } - return new PredictorStream( - new LZWStream(stream, maybeLength, earlyChange), - maybeLength, params); - } - return new LZWStream(stream, maybeLength, earlyChange); - } - if (name === 'DCTDecode' || name === 'DCT') { - xrefStreamStats[StreamType.DCT] = true; - return new JpegStream(stream, maybeLength, stream.dict, this.xref); - } - if (name === 'JPXDecode' || name === 'JPX') { - xrefStreamStats[StreamType.JPX] = true; - return new JpxStream(stream, maybeLength, stream.dict); - } - if (name === 'ASCII85Decode' || name === 'A85') { - xrefStreamStats[StreamType.A85] = true; - return new Ascii85Stream(stream, maybeLength); - } - if (name === 'ASCIIHexDecode' || name === 'AHx') { - xrefStreamStats[StreamType.AHX] = true; - return new AsciiHexStream(stream, maybeLength); - } - if (name === 'CCITTFaxDecode' || name === 'CCF') { - xrefStreamStats[StreamType.CCF] = true; - return new CCITTFaxStream(stream, maybeLength, params); - } - if (name === 'RunLengthDecode' || name === 'RL') { - xrefStreamStats[StreamType.RL] = true; - return new RunLengthStream(stream, maybeLength); - } - if (name === 'JBIG2Decode') { - xrefStreamStats[StreamType.JBIG] = true; - return new Jbig2Stream(stream, maybeLength, stream.dict); - } - warn('filter "' + name + '" not supported yet'); - return stream; - } catch (ex) { - if (ex instanceof MissingDataException) { - throw ex; - } - warn('Invalid stream: \"' + ex + '\"'); - return new NullStream(stream); - } - } - }; - - return Parser; -})(); - -var Lexer = (function LexerClosure() { - function Lexer(stream, knownCommands) { - this.stream = stream; - this.nextChar(); - - // While lexing, we build up many strings one char at a time. Using += for - // this can result in lots of garbage strings. It's better to build an - // array of single-char strings and then join() them together at the end. - // And reusing a single array (i.e. |this.strBuf|) over and over for this - // purpose uses less memory than using a new array for each string. - this.strBuf = []; - - // The PDFs might have "glued" commands with other commands, operands or - // literals, e.g. "q1". The knownCommands is a dictionary of the valid - // commands and their prefixes. The prefixes are built the following way: - // if there a command that is a prefix of the other valid command or - // literal (e.g. 'f' and 'false') the following prefixes must be included, - // 'fa', 'fal', 'fals'. The prefixes are not needed, if the command has no - // other commands or literals as a prefix. The knowCommands is optional. - this.knownCommands = knownCommands; - } - - Lexer.isSpace = function Lexer_isSpace(ch) { - // Space is one of the following characters: SPACE, TAB, CR or LF. - return (ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A); - }; - - // A '1' in this array means the character is white space. A '1' or - // '2' means the character ends a name or command. - var specialChars = [ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, // 0x - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x - 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, // 2x - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, // 3x - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 4x - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 5x - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6x - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 7x - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8x - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9x - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ax - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // bx - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // cx - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // dx - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ex - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // fx - ]; - - function toHexDigit(ch) { - if (ch >= 0x30 && ch <= 0x39) { // '0'-'9' - return ch & 0x0F; - } - if ((ch >= 0x41 && ch <= 0x46) || (ch >= 0x61 && ch <= 0x66)) { - // 'A'-'F', 'a'-'f' - return (ch & 0x0F) + 9; - } - return -1; - } - - Lexer.prototype = { - nextChar: function Lexer_nextChar() { - return (this.currentChar = this.stream.getByte()); - }, - peekChar: function Lexer_peekChar() { - return this.stream.peekByte(); - }, - getNumber: function Lexer_getNumber() { - var ch = this.currentChar; - var eNotation = false; - var divideBy = 0; // different from 0 if it's a floating point value - var sign = 1; - - if (ch === 0x2D) { // '-' - sign = -1; - ch = this.nextChar(); - } else if (ch === 0x2B) { // '+' - ch = this.nextChar(); - } - if (ch === 0x2E) { // '.' - divideBy = 10; - ch = this.nextChar(); - } - if (ch < 0x30 || ch > 0x39) { // '0' - '9' - error('Invalid number: ' + String.fromCharCode(ch)); - return 0; - } - - var baseValue = ch - 0x30; // '0' - var powerValue = 0; - var powerValueSign = 1; - - while ((ch = this.nextChar()) >= 0) { - if (0x30 <= ch && ch <= 0x39) { // '0' - '9' - var currentDigit = ch - 0x30; // '0' - if (eNotation) { // We are after an 'e' or 'E' - powerValue = powerValue * 10 + currentDigit; - } else { - if (divideBy !== 0) { // We are after a point - divideBy *= 10; - } - baseValue = baseValue * 10 + currentDigit; - } - } else if (ch === 0x2E) { // '.' - if (divideBy === 0) { - divideBy = 1; - } else { - // A number can have only one '.' - break; - } - } else if (ch === 0x2D) { // '-' - // ignore minus signs in the middle of numbers to match - // Adobe's behavior - warn('Badly formated number'); - } else if (ch === 0x45 || ch === 0x65) { // 'E', 'e' - // 'E' can be either a scientific notation or the beginning of a new - // operator - ch = this.peekChar(); - if (ch === 0x2B || ch === 0x2D) { // '+', '-' - powerValueSign = (ch === 0x2D) ? -1 : 1; - this.nextChar(); // Consume the sign character - } else if (ch < 0x30 || ch > 0x39) { // '0' - '9' - // The 'E' must be the beginning of a new operator - break; - } - eNotation = true; - } else { - // the last character doesn't belong to us - break; - } - } - - if (divideBy !== 0) { - baseValue /= divideBy; - } - if (eNotation) { - baseValue *= Math.pow(10, powerValueSign * powerValue); - } - return sign * baseValue; - }, - getString: function Lexer_getString() { - var numParen = 1; - var done = false; - var strBuf = this.strBuf; - strBuf.length = 0; - - var ch = this.nextChar(); - while (true) { - var charBuffered = false; - switch (ch | 0) { - case -1: - warn('Unterminated string'); - done = true; - break; - case 0x28: // '(' - ++numParen; - strBuf.push('('); - break; - case 0x29: // ')' - if (--numParen === 0) { - this.nextChar(); // consume strings ')' - done = true; - } else { - strBuf.push(')'); - } - break; - case 0x5C: // '\\' - ch = this.nextChar(); - switch (ch) { - case -1: - warn('Unterminated string'); - done = true; - break; - case 0x6E: // 'n' - strBuf.push('\n'); - break; - case 0x72: // 'r' - strBuf.push('\r'); - break; - case 0x74: // 't' - strBuf.push('\t'); - break; - case 0x62: // 'b' - strBuf.push('\b'); - break; - case 0x66: // 'f' - strBuf.push('\f'); - break; - case 0x5C: // '\' - case 0x28: // '(' - case 0x29: // ')' - strBuf.push(String.fromCharCode(ch)); - break; - case 0x30: case 0x31: case 0x32: case 0x33: // '0'-'3' - case 0x34: case 0x35: case 0x36: case 0x37: // '4'-'7' - var x = ch & 0x0F; - ch = this.nextChar(); - charBuffered = true; - if (ch >= 0x30 && ch <= 0x37) { // '0'-'7' - x = (x << 3) + (ch & 0x0F); - ch = this.nextChar(); - if (ch >= 0x30 && ch <= 0x37) { // '0'-'7' - charBuffered = false; - x = (x << 3) + (ch & 0x0F); - } - } - strBuf.push(String.fromCharCode(x)); - break; - case 0x0D: // CR - if (this.peekChar() === 0x0A) { // LF - this.nextChar(); - } - break; - case 0x0A: // LF - break; - default: - strBuf.push(String.fromCharCode(ch)); - break; - } - break; - default: - strBuf.push(String.fromCharCode(ch)); - break; - } - if (done) { - break; - } - if (!charBuffered) { - ch = this.nextChar(); - } - } - return strBuf.join(''); - }, - getName: function Lexer_getName() { - var ch; - var strBuf = this.strBuf; - strBuf.length = 0; - while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) { - if (ch === 0x23) { // '#' - ch = this.nextChar(); - var x = toHexDigit(ch); - if (x !== -1) { - var x2 = toHexDigit(this.nextChar()); - if (x2 === -1) { - error('Illegal digit in hex char in name: ' + x2); - } - strBuf.push(String.fromCharCode((x << 4) | x2)); - } else { - strBuf.push('#', String.fromCharCode(ch)); - } - } else { - strBuf.push(String.fromCharCode(ch)); - } - } - if (strBuf.length > 128) { - error('Warning: name token is longer than allowed by the spec: ' + - strBuf.length); - } - return Name.get(strBuf.join('')); - }, - getHexString: function Lexer_getHexString() { - var strBuf = this.strBuf; - strBuf.length = 0; - var ch = this.currentChar; - var isFirstHex = true; - var firstDigit; - var secondDigit; - while (true) { - if (ch < 0) { - warn('Unterminated hex string'); - break; - } else if (ch === 0x3E) { // '>' - this.nextChar(); - break; - } else if (specialChars[ch] === 1) { - ch = this.nextChar(); - continue; - } else { - if (isFirstHex) { - firstDigit = toHexDigit(ch); - if (firstDigit === -1) { - warn('Ignoring invalid character "' + ch + '" in hex string'); - ch = this.nextChar(); - continue; - } - } else { - secondDigit = toHexDigit(ch); - if (secondDigit === -1) { - warn('Ignoring invalid character "' + ch + '" in hex string'); - ch = this.nextChar(); - continue; - } - strBuf.push(String.fromCharCode((firstDigit << 4) | secondDigit)); - } - isFirstHex = !isFirstHex; - ch = this.nextChar(); - } - } - return strBuf.join(''); - }, - getObj: function Lexer_getObj() { - // skip whitespace and comments - var comment = false; - var ch = this.currentChar; - while (true) { - if (ch < 0) { - return EOF; - } - if (comment) { - if (ch === 0x0A || ch === 0x0D) { // LF, CR - comment = false; - } - } else if (ch === 0x25) { // '%' - comment = true; - } else if (specialChars[ch] !== 1) { - break; - } - ch = this.nextChar(); - } - - // start reading token - switch (ch | 0) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: // '0'-'4' - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: // '5'-'9' - case 0x2B: case 0x2D: case 0x2E: // '+', '-', '.' - return this.getNumber(); - case 0x28: // '(' - return this.getString(); - case 0x2F: // '/' - return this.getName(); - // array punctuation - case 0x5B: // '[' - this.nextChar(); - return Cmd.get('['); - case 0x5D: // ']' - this.nextChar(); - return Cmd.get(']'); - // hex string or dict punctuation - case 0x3C: // '<' - ch = this.nextChar(); - if (ch === 0x3C) { - // dict punctuation - this.nextChar(); - return Cmd.get('<<'); - } - return this.getHexString(); - // dict punctuation - case 0x3E: // '>' - ch = this.nextChar(); - if (ch === 0x3E) { - this.nextChar(); - return Cmd.get('>>'); - } - return Cmd.get('>'); - case 0x7B: // '{' - this.nextChar(); - return Cmd.get('{'); - case 0x7D: // '}' - this.nextChar(); - return Cmd.get('}'); - case 0x29: // ')' - error('Illegal character: ' + ch); - break; - } - - // command - var str = String.fromCharCode(ch); - var knownCommands = this.knownCommands; - var knownCommandFound = knownCommands && knownCommands[str] !== undefined; - while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) { - // stop if known command is found and next character does not make - // the str a command - var possibleCommand = str + String.fromCharCode(ch); - if (knownCommandFound && knownCommands[possibleCommand] === undefined) { - break; - } - if (str.length === 128) { - error('Command token too long: ' + str.length); - } - str = possibleCommand; - knownCommandFound = knownCommands && knownCommands[str] !== undefined; - } - if (str === 'true') { - return true; - } - if (str === 'false') { - return false; - } - if (str === 'null') { - return null; - } - return Cmd.get(str); - }, - skipToNextLine: function Lexer_skipToNextLine() { - var ch = this.currentChar; - while (ch >= 0) { - if (ch === 0x0D) { // CR - ch = this.nextChar(); - if (ch === 0x0A) { // LF - this.nextChar(); - } - break; - } else if (ch === 0x0A) { // LF - this.nextChar(); - break; - } - ch = this.nextChar(); - } - } - }; - - return Lexer; -})(); - -var Linearization = { - create: function LinearizationCreate(stream) { - function getInt(name, allowZeroValue) { - var obj = linDict.get(name); - if (isInt(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) { - return obj; - } - throw new Error('The "' + name + '" parameter in the linearization ' + - 'dictionary is invalid.'); - } - function getHints() { - var hints = linDict.get('H'), hintsLength, item; - if (isArray(hints) && - ((hintsLength = hints.length) === 2 || hintsLength === 4)) { - for (var index = 0; index < hintsLength; index++) { - if (!(isInt(item = hints[index]) && item > 0)) { - throw new Error('Hint (' + index + - ') in the linearization dictionary is invalid.'); - } - } - return hints; - } - throw new Error('Hint array in the linearization dictionary is invalid.'); - } - var parser = new Parser(new Lexer(stream), false, null); - var obj1 = parser.getObj(); - var obj2 = parser.getObj(); - var obj3 = parser.getObj(); - var linDict = parser.getObj(); - var obj, length; - if (!(isInt(obj1) && isInt(obj2) && isCmd(obj3, 'obj') && isDict(linDict) && - isNum(obj = linDict.get('Linearized')) && obj > 0)) { - return null; // No valid linearization dictionary found. - } else if ((length = getInt('L')) !== stream.length) { - throw new Error('The "L" parameter in the linearization dictionary ' + - 'does not equal the stream length.'); - } - return { - length: length, - hints: getHints(), - objectNumberFirst: getInt('O'), - endFirst: getInt('E'), - numPages: getInt('N'), - mainXRefEntriesOffset: getInt('T'), - pageFirst: (linDict.has('P') ? getInt('P', true) : 0) - }; - } -}; - - -var PostScriptParser = (function PostScriptParserClosure() { - function PostScriptParser(lexer) { - this.lexer = lexer; - this.operators = []; - this.token = null; - this.prev = null; - } - PostScriptParser.prototype = { - nextToken: function PostScriptParser_nextToken() { - this.prev = this.token; - this.token = this.lexer.getToken(); - }, - accept: function PostScriptParser_accept(type) { - if (this.token.type === type) { - this.nextToken(); - return true; - } - return false; - }, - expect: function PostScriptParser_expect(type) { - if (this.accept(type)) { - return true; - } - error('Unexpected symbol: found ' + this.token.type + ' expected ' + - type + '.'); - }, - parse: function PostScriptParser_parse() { - this.nextToken(); - this.expect(PostScriptTokenTypes.LBRACE); - this.parseBlock(); - this.expect(PostScriptTokenTypes.RBRACE); - return this.operators; - }, - parseBlock: function PostScriptParser_parseBlock() { - while (true) { - if (this.accept(PostScriptTokenTypes.NUMBER)) { - this.operators.push(this.prev.value); - } else if (this.accept(PostScriptTokenTypes.OPERATOR)) { - this.operators.push(this.prev.value); - } else if (this.accept(PostScriptTokenTypes.LBRACE)) { - this.parseCondition(); - } else { - return; - } - } - }, - parseCondition: function PostScriptParser_parseCondition() { - // Add two place holders that will be updated later - var conditionLocation = this.operators.length; - this.operators.push(null, null); - - this.parseBlock(); - this.expect(PostScriptTokenTypes.RBRACE); - if (this.accept(PostScriptTokenTypes.IF)) { - // The true block is right after the 'if' so it just falls through on - // true else it jumps and skips the true block. - this.operators[conditionLocation] = this.operators.length; - this.operators[conditionLocation + 1] = 'jz'; - } else if (this.accept(PostScriptTokenTypes.LBRACE)) { - var jumpLocation = this.operators.length; - this.operators.push(null, null); - var endOfTrue = this.operators.length; - this.parseBlock(); - this.expect(PostScriptTokenTypes.RBRACE); - this.expect(PostScriptTokenTypes.IFELSE); - // The jump is added at the end of the true block to skip the false - // block. - this.operators[jumpLocation] = this.operators.length; - this.operators[jumpLocation + 1] = 'j'; - - this.operators[conditionLocation] = endOfTrue; - this.operators[conditionLocation + 1] = 'jz'; - } else { - error('PS Function: error parsing conditional.'); - } - } - }; - return PostScriptParser; -})(); - -var PostScriptTokenTypes = { - LBRACE: 0, - RBRACE: 1, - NUMBER: 2, - OPERATOR: 3, - IF: 4, - IFELSE: 5 -}; - -var PostScriptToken = (function PostScriptTokenClosure() { - function PostScriptToken(type, value) { - this.type = type; - this.value = value; - } - - var opCache = {}; - - PostScriptToken.getOperator = function PostScriptToken_getOperator(op) { - var opValue = opCache[op]; - if (opValue) { - return opValue; - } - return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op); - }; - - PostScriptToken.LBRACE = new PostScriptToken(PostScriptTokenTypes.LBRACE, - '{'); - PostScriptToken.RBRACE = new PostScriptToken(PostScriptTokenTypes.RBRACE, - '}'); - PostScriptToken.IF = new PostScriptToken(PostScriptTokenTypes.IF, 'IF'); - PostScriptToken.IFELSE = new PostScriptToken(PostScriptTokenTypes.IFELSE, - 'IFELSE'); - return PostScriptToken; -})(); - -var PostScriptLexer = (function PostScriptLexerClosure() { - function PostScriptLexer(stream) { - this.stream = stream; - this.nextChar(); - - this.strBuf = []; - } - PostScriptLexer.prototype = { - nextChar: function PostScriptLexer_nextChar() { - return (this.currentChar = this.stream.getByte()); - }, - getToken: function PostScriptLexer_getToken() { - var comment = false; - var ch = this.currentChar; - - // skip comments - while (true) { - if (ch < 0) { - return EOF; - } - - if (comment) { - if (ch === 0x0A || ch === 0x0D) { - comment = false; - } - } else if (ch === 0x25) { // '%' - comment = true; - } else if (!Lexer.isSpace(ch)) { - break; - } - ch = this.nextChar(); - } - switch (ch | 0) { - case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: // '0'-'4' - case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: // '5'-'9' - case 0x2B: case 0x2D: case 0x2E: // '+', '-', '.' - return new PostScriptToken(PostScriptTokenTypes.NUMBER, - this.getNumber()); - case 0x7B: // '{' - this.nextChar(); - return PostScriptToken.LBRACE; - case 0x7D: // '}' - this.nextChar(); - return PostScriptToken.RBRACE; - } - // operator - var strBuf = this.strBuf; - strBuf.length = 0; - strBuf[0] = String.fromCharCode(ch); - - while ((ch = this.nextChar()) >= 0 && // and 'A'-'Z', 'a'-'z' - ((ch >= 0x41 && ch <= 0x5A) || (ch >= 0x61 && ch <= 0x7A))) { - strBuf.push(String.fromCharCode(ch)); - } - var str = strBuf.join(''); - switch (str.toLowerCase()) { - case 'if': - return PostScriptToken.IF; - case 'ifelse': - return PostScriptToken.IFELSE; - default: - return PostScriptToken.getOperator(str); - } - }, - getNumber: function PostScriptLexer_getNumber() { - var ch = this.currentChar; - var strBuf = this.strBuf; - strBuf.length = 0; - strBuf[0] = String.fromCharCode(ch); - - while ((ch = this.nextChar()) >= 0) { - if ((ch >= 0x30 && ch <= 0x39) || // '0'-'9' - ch === 0x2D || ch === 0x2E) { // '-', '.' - strBuf.push(String.fromCharCode(ch)); - } else { - break; - } - } - var value = parseFloat(strBuf.join('')); - if (isNaN(value)) { - error('Invalid floating point number: ' + value); - } - return value; - } - }; - return PostScriptLexer; -})(); - - -var Stream = (function StreamClosure() { - function Stream(arrayBuffer, start, length, dict) { - this.bytes = (arrayBuffer instanceof Uint8Array ? - arrayBuffer : new Uint8Array(arrayBuffer)); - this.start = start || 0; - this.pos = this.start; - this.end = (start + length) || this.bytes.length; - this.dict = dict; - } - - // required methods for a stream. if a particular stream does not - // implement these, an error should be thrown - Stream.prototype = { - get length() { - return this.end - this.start; - }, - get isEmpty() { - return this.length === 0; - }, - getByte: function Stream_getByte() { - if (this.pos >= this.end) { - return -1; - } - return this.bytes[this.pos++]; - }, - getUint16: function Stream_getUint16() { - var b0 = this.getByte(); - var b1 = this.getByte(); - if (b0 === -1 || b1 === -1) { - return -1; - } - return (b0 << 8) + b1; - }, - getInt32: function Stream_getInt32() { - var b0 = this.getByte(); - var b1 = this.getByte(); - var b2 = this.getByte(); - var b3 = this.getByte(); - return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; - }, - // returns subarray of original buffer - // should only be read - getBytes: function Stream_getBytes(length) { - var bytes = this.bytes; - var pos = this.pos; - var strEnd = this.end; - - if (!length) { - return bytes.subarray(pos, strEnd); - } - var end = pos + length; - if (end > strEnd) { - end = strEnd; - } - this.pos = end; - return bytes.subarray(pos, end); - }, - peekByte: function Stream_peekByte() { - var peekedByte = this.getByte(); - this.pos--; - return peekedByte; - }, - peekBytes: function Stream_peekBytes(length) { - var bytes = this.getBytes(length); - this.pos -= bytes.length; - return bytes; - }, - skip: function Stream_skip(n) { - if (!n) { - n = 1; - } - this.pos += n; - }, - reset: function Stream_reset() { - this.pos = this.start; - }, - moveStart: function Stream_moveStart() { - this.start = this.pos; - }, - makeSubStream: function Stream_makeSubStream(start, length, dict) { - return new Stream(this.bytes.buffer, start, length, dict); - }, - isStream: true - }; - - return Stream; -})(); - -var StringStream = (function StringStreamClosure() { - function StringStream(str) { - var length = str.length; - var bytes = new Uint8Array(length); - for (var n = 0; n < length; ++n) { - bytes[n] = str.charCodeAt(n); - } - Stream.call(this, bytes); - } - - StringStream.prototype = Stream.prototype; - - return StringStream; -})(); - -// super class for the decoding streams -var DecodeStream = (function DecodeStreamClosure() { - // Lots of DecodeStreams are created whose buffers are never used. For these - // we share a single empty buffer. This is (a) space-efficient and (b) avoids - // having special cases that would be required if we used |null| for an empty - // buffer. - var emptyBuffer = new Uint8Array(0); - - function DecodeStream(maybeMinBufferLength) { - this.pos = 0; - this.bufferLength = 0; - this.eof = false; - this.buffer = emptyBuffer; - this.minBufferLength = 512; - if (maybeMinBufferLength) { - // Compute the first power of two that is as big as maybeMinBufferLength. - while (this.minBufferLength < maybeMinBufferLength) { - this.minBufferLength *= 2; - } - } - } - - DecodeStream.prototype = { - get isEmpty() { - while (!this.eof && this.bufferLength === 0) { - this.readBlock(); - } - return this.bufferLength === 0; - }, - ensureBuffer: function DecodeStream_ensureBuffer(requested) { - var buffer = this.buffer; - if (requested <= buffer.byteLength) { - return buffer; - } - var size = this.minBufferLength; - while (size < requested) { - size *= 2; - } - var buffer2 = new Uint8Array(size); - buffer2.set(buffer); - return (this.buffer = buffer2); - }, - getByte: function DecodeStream_getByte() { - var pos = this.pos; - while (this.bufferLength <= pos) { - if (this.eof) { - return -1; - } - this.readBlock(); - } - return this.buffer[this.pos++]; - }, - getUint16: function DecodeStream_getUint16() { - var b0 = this.getByte(); - var b1 = this.getByte(); - if (b0 === -1 || b1 === -1) { - return -1; - } - return (b0 << 8) + b1; - }, - getInt32: function DecodeStream_getInt32() { - var b0 = this.getByte(); - var b1 = this.getByte(); - var b2 = this.getByte(); - var b3 = this.getByte(); - return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; - }, - getBytes: function DecodeStream_getBytes(length) { - var end, pos = this.pos; - - if (length) { - this.ensureBuffer(pos + length); - end = pos + length; - - while (!this.eof && this.bufferLength < end) { - this.readBlock(); - } - var bufEnd = this.bufferLength; - if (end > bufEnd) { - end = bufEnd; - } - } else { - while (!this.eof) { - this.readBlock(); - } - end = this.bufferLength; - } - - this.pos = end; - return this.buffer.subarray(pos, end); - }, - peekByte: function DecodeStream_peekByte() { - var peekedByte = this.getByte(); - this.pos--; - return peekedByte; - }, - peekBytes: function DecodeStream_peekBytes(length) { - var bytes = this.getBytes(length); - this.pos -= bytes.length; - return bytes; - }, - makeSubStream: function DecodeStream_makeSubStream(start, length, dict) { - var end = start + length; - while (this.bufferLength <= end && !this.eof) { - this.readBlock(); - } - return new Stream(this.buffer, start, length, dict); - }, - skip: function DecodeStream_skip(n) { - if (!n) { - n = 1; - } - this.pos += n; - }, - reset: function DecodeStream_reset() { - this.pos = 0; - }, - getBaseStreams: function DecodeStream_getBaseStreams() { - if (this.str && this.str.getBaseStreams) { - return this.str.getBaseStreams(); - } - return []; - } - }; - - return DecodeStream; -})(); - -var StreamsSequenceStream = (function StreamsSequenceStreamClosure() { - function StreamsSequenceStream(streams) { - this.streams = streams; - DecodeStream.call(this, /* maybeLength = */ null); - } - - StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype); - - StreamsSequenceStream.prototype.readBlock = - function streamSequenceStreamReadBlock() { - - var streams = this.streams; - if (streams.length === 0) { - this.eof = true; - return; - } - var stream = streams.shift(); - var chunk = stream.getBytes(); - var bufferLength = this.bufferLength; - var newLength = bufferLength + chunk.length; - var buffer = this.ensureBuffer(newLength); - buffer.set(chunk, bufferLength); - this.bufferLength = newLength; - }; - - StreamsSequenceStream.prototype.getBaseStreams = - function StreamsSequenceStream_getBaseStreams() { - - var baseStreams = []; - for (var i = 0, ii = this.streams.length; i < ii; i++) { - var stream = this.streams[i]; - if (stream.getBaseStreams) { - Util.appendToArray(baseStreams, stream.getBaseStreams()); - } - } - return baseStreams; - }; - - return StreamsSequenceStream; -})(); - -var FlateStream = (function FlateStreamClosure() { - var codeLenCodeMap = new Int32Array([ - 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 - ]); - - var lengthDecode = new Int32Array([ - 0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, - 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, - 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, - 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102 - ]); - - var distDecode = new Int32Array([ - 0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, - 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, - 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, - 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001 - ]); - - var fixedLitCodeTab = [new Int32Array([ - 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, - 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, - 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, - 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, - 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, - 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, - 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, - 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, - 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, - 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, - 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, - 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, - 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, - 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, - 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, - 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, - 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, - 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, - 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, - 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, - 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, - 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, - 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, - 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, - 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, - 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, - 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, - 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, - 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, - 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, - 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, - 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, - 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, - 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, - 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, - 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, - 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, - 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, - 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, - 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, - 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, - 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, - 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, - 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, - 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, - 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, - 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, - 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, - 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, - 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, - 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, - 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, - 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, - 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, - 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, - 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, - 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, - 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, - 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, - 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, - 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, - 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, - 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, - 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff - ]), 9]; - - var fixedDistCodeTab = [new Int32Array([ - 0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, - 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, - 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, - 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000 - ]), 5]; - - function FlateStream(str, maybeLength) { - this.str = str; - this.dict = str.dict; - - var cmf = str.getByte(); - var flg = str.getByte(); - if (cmf === -1 || flg === -1) { - error('Invalid header in flate stream: ' + cmf + ', ' + flg); - } - if ((cmf & 0x0f) !== 0x08) { - error('Unknown compression method in flate stream: ' + cmf + ', ' + flg); - } - if ((((cmf << 8) + flg) % 31) !== 0) { - error('Bad FCHECK in flate stream: ' + cmf + ', ' + flg); - } - if (flg & 0x20) { - error('FDICT bit set in flate stream: ' + cmf + ', ' + flg); - } - - this.codeSize = 0; - this.codeBuf = 0; - - DecodeStream.call(this, maybeLength); - } - - FlateStream.prototype = Object.create(DecodeStream.prototype); - - FlateStream.prototype.getBits = function FlateStream_getBits(bits) { - var str = this.str; - var codeSize = this.codeSize; - var codeBuf = this.codeBuf; - - var b; - while (codeSize < bits) { - if ((b = str.getByte()) === -1) { - error('Bad encoding in flate stream'); - } - codeBuf |= b << codeSize; - codeSize += 8; - } - b = codeBuf & ((1 << bits) - 1); - this.codeBuf = codeBuf >> bits; - this.codeSize = codeSize -= bits; - - return b; - }; - - FlateStream.prototype.getCode = function FlateStream_getCode(table) { - var str = this.str; - var codes = table[0]; - var maxLen = table[1]; - var codeSize = this.codeSize; - var codeBuf = this.codeBuf; - - var b; - while (codeSize < maxLen) { - if ((b = str.getByte()) === -1) { - // premature end of stream. code might however still be valid. - // codeSize < codeLen check below guards against incomplete codeVal. - break; - } - codeBuf |= (b << codeSize); - codeSize += 8; - } - var code = codes[codeBuf & ((1 << maxLen) - 1)]; - var codeLen = code >> 16; - var codeVal = code & 0xffff; - if (codeLen < 1 || codeSize < codeLen) { - error('Bad encoding in flate stream'); - } - this.codeBuf = (codeBuf >> codeLen); - this.codeSize = (codeSize - codeLen); - return codeVal; - }; - - FlateStream.prototype.generateHuffmanTable = - function flateStreamGenerateHuffmanTable(lengths) { - var n = lengths.length; - - // find max code length - var maxLen = 0; - var i; - for (i = 0; i < n; ++i) { - if (lengths[i] > maxLen) { - maxLen = lengths[i]; - } - } - - // build the table - var size = 1 << maxLen; - var codes = new Int32Array(size); - for (var len = 1, code = 0, skip = 2; - len <= maxLen; - ++len, code <<= 1, skip <<= 1) { - for (var val = 0; val < n; ++val) { - if (lengths[val] === len) { - // bit-reverse the code - var code2 = 0; - var t = code; - for (i = 0; i < len; ++i) { - code2 = (code2 << 1) | (t & 1); - t >>= 1; - } - - // fill the table entries - for (i = code2; i < size; i += skip) { - codes[i] = (len << 16) | val; - } - ++code; - } - } - } - - return [codes, maxLen]; - }; - - FlateStream.prototype.readBlock = function FlateStream_readBlock() { - var buffer, len; - var str = this.str; - // read block header - var hdr = this.getBits(3); - if (hdr & 1) { - this.eof = true; - } - hdr >>= 1; - - if (hdr === 0) { // uncompressed block - var b; - - if ((b = str.getByte()) === -1) { - error('Bad block header in flate stream'); - } - var blockLen = b; - if ((b = str.getByte()) === -1) { - error('Bad block header in flate stream'); - } - blockLen |= (b << 8); - if ((b = str.getByte()) === -1) { - error('Bad block header in flate stream'); - } - var check = b; - if ((b = str.getByte()) === -1) { - error('Bad block header in flate stream'); - } - check |= (b << 8); - if (check !== (~blockLen & 0xffff) && - (blockLen !== 0 || check !== 0)) { - // Ignoring error for bad "empty" block (see issue 1277) - error('Bad uncompressed block length in flate stream'); - } - - this.codeBuf = 0; - this.codeSize = 0; - - var bufferLength = this.bufferLength; - buffer = this.ensureBuffer(bufferLength + blockLen); - var end = bufferLength + blockLen; - this.bufferLength = end; - if (blockLen === 0) { - if (str.peekByte() === -1) { - this.eof = true; - } - } else { - for (var n = bufferLength; n < end; ++n) { - if ((b = str.getByte()) === -1) { - this.eof = true; - break; - } - buffer[n] = b; - } - } - return; - } - - var litCodeTable; - var distCodeTable; - if (hdr === 1) { // compressed block, fixed codes - litCodeTable = fixedLitCodeTab; - distCodeTable = fixedDistCodeTab; - } else if (hdr === 2) { // compressed block, dynamic codes - var numLitCodes = this.getBits(5) + 257; - var numDistCodes = this.getBits(5) + 1; - var numCodeLenCodes = this.getBits(4) + 4; - - // build the code lengths code table - var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length); - - var i; - for (i = 0; i < numCodeLenCodes; ++i) { - codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3); - } - var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths); - - // build the literal and distance code tables - len = 0; - i = 0; - var codes = numLitCodes + numDistCodes; - var codeLengths = new Uint8Array(codes); - var bitsLength, bitsOffset, what; - while (i < codes) { - var code = this.getCode(codeLenCodeTab); - if (code === 16) { - bitsLength = 2; bitsOffset = 3; what = len; - } else if (code === 17) { - bitsLength = 3; bitsOffset = 3; what = (len = 0); - } else if (code === 18) { - bitsLength = 7; bitsOffset = 11; what = (len = 0); - } else { - codeLengths[i++] = len = code; - continue; - } - - var repeatLength = this.getBits(bitsLength) + bitsOffset; - while (repeatLength-- > 0) { - codeLengths[i++] = what; - } - } - - litCodeTable = - this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes)); - distCodeTable = - this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes)); - } else { - error('Unknown block type in flate stream'); - } - - buffer = this.buffer; - var limit = buffer ? buffer.length : 0; - var pos = this.bufferLength; - while (true) { - var code1 = this.getCode(litCodeTable); - if (code1 < 256) { - if (pos + 1 >= limit) { - buffer = this.ensureBuffer(pos + 1); - limit = buffer.length; - } - buffer[pos++] = code1; - continue; - } - if (code1 === 256) { - this.bufferLength = pos; - return; - } - code1 -= 257; - code1 = lengthDecode[code1]; - var code2 = code1 >> 16; - if (code2 > 0) { - code2 = this.getBits(code2); - } - len = (code1 & 0xffff) + code2; - code1 = this.getCode(distCodeTable); - code1 = distDecode[code1]; - code2 = code1 >> 16; - if (code2 > 0) { - code2 = this.getBits(code2); - } - var dist = (code1 & 0xffff) + code2; - if (pos + len >= limit) { - buffer = this.ensureBuffer(pos + len); - limit = buffer.length; - } - for (var k = 0; k < len; ++k, ++pos) { - buffer[pos] = buffer[pos - dist]; - } - } - }; - - return FlateStream; -})(); - -var PredictorStream = (function PredictorStreamClosure() { - function PredictorStream(str, maybeLength, params) { - var predictor = this.predictor = params.get('Predictor') || 1; - - if (predictor <= 1) { - return str; // no prediction - } - if (predictor !== 2 && (predictor < 10 || predictor > 15)) { - error('Unsupported predictor: ' + predictor); - } - - if (predictor === 2) { - this.readBlock = this.readBlockTiff; - } else { - this.readBlock = this.readBlockPng; - } - - this.str = str; - this.dict = str.dict; - - var colors = this.colors = params.get('Colors') || 1; - var bits = this.bits = params.get('BitsPerComponent') || 8; - var columns = this.columns = params.get('Columns') || 1; - - this.pixBytes = (colors * bits + 7) >> 3; - this.rowBytes = (columns * colors * bits + 7) >> 3; - - DecodeStream.call(this, maybeLength); - return this; - } - - PredictorStream.prototype = Object.create(DecodeStream.prototype); - - PredictorStream.prototype.readBlockTiff = - function predictorStreamReadBlockTiff() { - var rowBytes = this.rowBytes; - - var bufferLength = this.bufferLength; - var buffer = this.ensureBuffer(bufferLength + rowBytes); - - var bits = this.bits; - var colors = this.colors; - - var rawBytes = this.str.getBytes(rowBytes); - this.eof = !rawBytes.length; - if (this.eof) { - return; - } - - var inbuf = 0, outbuf = 0; - var inbits = 0, outbits = 0; - var pos = bufferLength; - var i; - - if (bits === 1) { - for (i = 0; i < rowBytes; ++i) { - var c = rawBytes[i]; - inbuf = (inbuf << 8) | c; - // bitwise addition is exclusive or - // first shift inbuf and then add - buffer[pos++] = (c ^ (inbuf >> colors)) & 0xFF; - // truncate inbuf (assumes colors < 16) - inbuf &= 0xFFFF; - } - } else if (bits === 8) { - for (i = 0; i < colors; ++i) { - buffer[pos++] = rawBytes[i]; - } - for (; i < rowBytes; ++i) { - buffer[pos] = buffer[pos - colors] + rawBytes[i]; - pos++; - } - } else { - var compArray = new Uint8Array(colors + 1); - var bitMask = (1 << bits) - 1; - var j = 0, k = bufferLength; - var columns = this.columns; - for (i = 0; i < columns; ++i) { - for (var kk = 0; kk < colors; ++kk) { - if (inbits < bits) { - inbuf = (inbuf << 8) | (rawBytes[j++] & 0xFF); - inbits += 8; - } - compArray[kk] = (compArray[kk] + - (inbuf >> (inbits - bits))) & bitMask; - inbits -= bits; - outbuf = (outbuf << bits) | compArray[kk]; - outbits += bits; - if (outbits >= 8) { - buffer[k++] = (outbuf >> (outbits - 8)) & 0xFF; - outbits -= 8; - } - } - } - if (outbits > 0) { - buffer[k++] = (outbuf << (8 - outbits)) + - (inbuf & ((1 << (8 - outbits)) - 1)); - } - } - this.bufferLength += rowBytes; - }; - - PredictorStream.prototype.readBlockPng = - function predictorStreamReadBlockPng() { - - var rowBytes = this.rowBytes; - var pixBytes = this.pixBytes; - - var predictor = this.str.getByte(); - var rawBytes = this.str.getBytes(rowBytes); - this.eof = !rawBytes.length; - if (this.eof) { - return; - } - - var bufferLength = this.bufferLength; - var buffer = this.ensureBuffer(bufferLength + rowBytes); - - var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength); - if (prevRow.length === 0) { - prevRow = new Uint8Array(rowBytes); - } - - var i, j = bufferLength, up, c; - switch (predictor) { - case 0: - for (i = 0; i < rowBytes; ++i) { - buffer[j++] = rawBytes[i]; - } - break; - case 1: - for (i = 0; i < pixBytes; ++i) { - buffer[j++] = rawBytes[i]; - } - for (; i < rowBytes; ++i) { - buffer[j] = (buffer[j - pixBytes] + rawBytes[i]) & 0xFF; - j++; - } - break; - case 2: - for (i = 0; i < rowBytes; ++i) { - buffer[j++] = (prevRow[i] + rawBytes[i]) & 0xFF; - } - break; - case 3: - for (i = 0; i < pixBytes; ++i) { - buffer[j++] = (prevRow[i] >> 1) + rawBytes[i]; - } - for (; i < rowBytes; ++i) { - buffer[j] = (((prevRow[i] + buffer[j - pixBytes]) >> 1) + - rawBytes[i]) & 0xFF; - j++; - } - break; - case 4: - // we need to save the up left pixels values. the simplest way - // is to create a new buffer - for (i = 0; i < pixBytes; ++i) { - up = prevRow[i]; - c = rawBytes[i]; - buffer[j++] = up + c; - } - for (; i < rowBytes; ++i) { - up = prevRow[i]; - var upLeft = prevRow[i - pixBytes]; - var left = buffer[j - pixBytes]; - var p = left + up - upLeft; - - var pa = p - left; - if (pa < 0) { - pa = -pa; - } - var pb = p - up; - if (pb < 0) { - pb = -pb; - } - var pc = p - upLeft; - if (pc < 0) { - pc = -pc; - } - - c = rawBytes[i]; - if (pa <= pb && pa <= pc) { - buffer[j++] = left + c; - } else if (pb <= pc) { - buffer[j++] = up + c; - } else { - buffer[j++] = upLeft + c; - } - } - break; - default: - error('Unsupported predictor: ' + predictor); - } - this.bufferLength += rowBytes; - }; - - return PredictorStream; -})(); - -/** - * Depending on the type of JPEG a JpegStream is handled in different ways. For - * JPEG's that are supported natively such as DeviceGray and DeviceRGB the image - * data is stored and then loaded by the browser. For unsupported JPEG's we use - * a library to decode these images and the stream behaves like all the other - * DecodeStreams. - */ -var JpegStream = (function JpegStreamClosure() { - function JpegStream(stream, maybeLength, dict, xref) { - // Some images may contain 'junk' before the SOI (start-of-image) marker. - // Note: this seems to mainly affect inline images. - var ch; - while ((ch = stream.getByte()) !== -1) { - if (ch === 0xFF) { // Find the first byte of the SOI marker (0xFFD8). - stream.skip(-1); // Reset the stream position to the SOI. - break; - } - } - this.stream = stream; - this.maybeLength = maybeLength; - this.dict = dict; - - DecodeStream.call(this, maybeLength); - } - - JpegStream.prototype = Object.create(DecodeStream.prototype); - - Object.defineProperty(JpegStream.prototype, 'bytes', { - get: function JpegStream_bytes() { - // If this.maybeLength is null, we'll get the entire stream. - return shadow(this, 'bytes', this.stream.getBytes(this.maybeLength)); - }, - configurable: true - }); - - JpegStream.prototype.ensureBuffer = function JpegStream_ensureBuffer(req) { - if (this.bufferLength) { - return; - } - try { - var jpegImage = new JpegImage(); - - // checking if values needs to be transformed before conversion - if (this.forceRGB && this.dict && isArray(this.dict.get('Decode'))) { - var decodeArr = this.dict.get('Decode'); - var bitsPerComponent = this.dict.get('BitsPerComponent') || 8; - var decodeArrLength = decodeArr.length; - var transform = new Int32Array(decodeArrLength); - var transformNeeded = false; - var maxValue = (1 << bitsPerComponent) - 1; - for (var i = 0; i < decodeArrLength; i += 2) { - transform[i] = ((decodeArr[i + 1] - decodeArr[i]) * 256) | 0; - transform[i + 1] = (decodeArr[i] * maxValue) | 0; - if (transform[i] !== 256 || transform[i + 1] !== 0) { - transformNeeded = true; - } - } - if (transformNeeded) { - jpegImage.decodeTransform = transform; - } - } - - jpegImage.parse(this.bytes); - var data = jpegImage.getData(this.drawWidth, this.drawHeight, - this.forceRGB); - this.buffer = data; - this.bufferLength = data.length; - this.eof = true; - } catch (e) { - error('JPEG error: ' + e); - } - }; - - JpegStream.prototype.getBytes = function JpegStream_getBytes(length) { - this.ensureBuffer(); - return this.buffer; - }; - - JpegStream.prototype.getIR = function JpegStream_getIR() { - return PDFJS.createObjectURL(this.bytes, 'image/jpeg'); - }; - /** - * Checks if the image can be decoded and displayed by the browser without any - * further processing such as color space conversions. - */ - JpegStream.prototype.isNativelySupported = - function JpegStream_isNativelySupported(xref, res) { - var cs = ColorSpace.parse(this.dict.get('ColorSpace', 'CS'), xref, res); - return cs.name === 'DeviceGray' || cs.name === 'DeviceRGB'; - }; - /** - * Checks if the image can be decoded by the browser. - */ - JpegStream.prototype.isNativelyDecodable = - function JpegStream_isNativelyDecodable(xref, res) { - var cs = ColorSpace.parse(this.dict.get('ColorSpace', 'CS'), xref, res); - var numComps = cs.numComps; - return numComps === 1 || numComps === 3; - }; - - return JpegStream; -})(); - -/** - * For JPEG 2000's we use a library to decode these images and - * the stream behaves like all the other DecodeStreams. - */ -var JpxStream = (function JpxStreamClosure() { - function JpxStream(stream, maybeLength, dict) { - this.stream = stream; - this.maybeLength = maybeLength; - this.dict = dict; - - DecodeStream.call(this, maybeLength); - } - - JpxStream.prototype = Object.create(DecodeStream.prototype); - - Object.defineProperty(JpxStream.prototype, 'bytes', { - get: function JpxStream_bytes() { - // If this.maybeLength is null, we'll get the entire stream. - return shadow(this, 'bytes', this.stream.getBytes(this.maybeLength)); - }, - configurable: true - }); - - JpxStream.prototype.ensureBuffer = function JpxStream_ensureBuffer(req) { - if (this.bufferLength) { - return; - } - - var jpxImage = new JpxImage(); - jpxImage.parse(this.bytes); - - var width = jpxImage.width; - var height = jpxImage.height; - var componentsCount = jpxImage.componentsCount; - var tileCount = jpxImage.tiles.length; - if (tileCount === 1) { - this.buffer = jpxImage.tiles[0].items; - } else { - var data = new Uint8Array(width * height * componentsCount); - - for (var k = 0; k < tileCount; k++) { - var tileComponents = jpxImage.tiles[k]; - var tileWidth = tileComponents.width; - var tileHeight = tileComponents.height; - var tileLeft = tileComponents.left; - var tileTop = tileComponents.top; - - var src = tileComponents.items; - var srcPosition = 0; - var dataPosition = (width * tileTop + tileLeft) * componentsCount; - var imgRowSize = width * componentsCount; - var tileRowSize = tileWidth * componentsCount; - - for (var j = 0; j < tileHeight; j++) { - var rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize); - data.set(rowBytes, dataPosition); - srcPosition += tileRowSize; - dataPosition += imgRowSize; - } - } - this.buffer = data; - } - this.bufferLength = this.buffer.length; - this.eof = true; - }; - - return JpxStream; -})(); - -/** - * For JBIG2's we use a library to decode these images and - * the stream behaves like all the other DecodeStreams. - */ -var Jbig2Stream = (function Jbig2StreamClosure() { - function Jbig2Stream(stream, maybeLength, dict) { - this.stream = stream; - this.maybeLength = maybeLength; - this.dict = dict; - - DecodeStream.call(this, maybeLength); - } - - Jbig2Stream.prototype = Object.create(DecodeStream.prototype); - - Object.defineProperty(Jbig2Stream.prototype, 'bytes', { - get: function Jbig2Stream_bytes() { - // If this.maybeLength is null, we'll get the entire stream. - return shadow(this, 'bytes', this.stream.getBytes(this.maybeLength)); - }, - configurable: true - }); - - Jbig2Stream.prototype.ensureBuffer = function Jbig2Stream_ensureBuffer(req) { - if (this.bufferLength) { - return; - } - - var jbig2Image = new Jbig2Image(); - - var chunks = [], xref = this.dict.xref; - var decodeParams = xref.fetchIfRef(this.dict.get('DecodeParms')); - - // According to the PDF specification, DecodeParms can be either - // a dictionary, or an array whose elements are dictionaries. - if (isArray(decodeParams)) { - if (decodeParams.length > 1) { - warn('JBIG2 - \'DecodeParms\' array with multiple elements ' + - 'not supported.'); - } - decodeParams = xref.fetchIfRef(decodeParams[0]); - } - if (decodeParams && decodeParams.has('JBIG2Globals')) { - var globalsStream = decodeParams.get('JBIG2Globals'); - var globals = globalsStream.getBytes(); - chunks.push({data: globals, start: 0, end: globals.length}); - } - chunks.push({data: this.bytes, start: 0, end: this.bytes.length}); - var data = jbig2Image.parseChunks(chunks); - var dataLength = data.length; - - // JBIG2 had black as 1 and white as 0, inverting the colors - for (var i = 0; i < dataLength; i++) { - data[i] ^= 0xFF; - } - - this.buffer = data; - this.bufferLength = dataLength; - this.eof = true; - }; - - return Jbig2Stream; -})(); - -var DecryptStream = (function DecryptStreamClosure() { - function DecryptStream(str, maybeLength, decrypt) { - this.str = str; - this.dict = str.dict; - this.decrypt = decrypt; - this.nextChunk = null; - this.initialized = false; - - DecodeStream.call(this, maybeLength); - } - - var chunkSize = 512; - - DecryptStream.prototype = Object.create(DecodeStream.prototype); - - DecryptStream.prototype.readBlock = function DecryptStream_readBlock() { - var chunk; - if (this.initialized) { - chunk = this.nextChunk; - } else { - chunk = this.str.getBytes(chunkSize); - this.initialized = true; - } - if (!chunk || chunk.length === 0) { - this.eof = true; - return; - } - this.nextChunk = this.str.getBytes(chunkSize); - var hasMoreData = this.nextChunk && this.nextChunk.length > 0; - - var decrypt = this.decrypt; - chunk = decrypt(chunk, !hasMoreData); - - var bufferLength = this.bufferLength; - var i, n = chunk.length; - var buffer = this.ensureBuffer(bufferLength + n); - for (i = 0; i < n; i++) { - buffer[bufferLength++] = chunk[i]; - } - this.bufferLength = bufferLength; - }; - - return DecryptStream; -})(); - -var Ascii85Stream = (function Ascii85StreamClosure() { - function Ascii85Stream(str, maybeLength) { - this.str = str; - this.dict = str.dict; - this.input = new Uint8Array(5); - - // Most streams increase in size when decoded, but Ascii85 streams - // typically shrink by ~20%. - if (maybeLength) { - maybeLength = 0.8 * maybeLength; - } - DecodeStream.call(this, maybeLength); - } - - Ascii85Stream.prototype = Object.create(DecodeStream.prototype); - - Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() { - var TILDA_CHAR = 0x7E; // '~' - var Z_LOWER_CHAR = 0x7A; // 'z' - var EOF = -1; - - var str = this.str; - - var c = str.getByte(); - while (Lexer.isSpace(c)) { - c = str.getByte(); - } - - if (c === EOF || c === TILDA_CHAR) { - this.eof = true; - return; - } - - var bufferLength = this.bufferLength, buffer; - var i; - - // special code for z - if (c === Z_LOWER_CHAR) { - buffer = this.ensureBuffer(bufferLength + 4); - for (i = 0; i < 4; ++i) { - buffer[bufferLength + i] = 0; - } - this.bufferLength += 4; - } else { - var input = this.input; - input[0] = c; - for (i = 1; i < 5; ++i) { - c = str.getByte(); - while (Lexer.isSpace(c)) { - c = str.getByte(); - } - - input[i] = c; - - if (c === EOF || c === TILDA_CHAR) { - break; - } - } - buffer = this.ensureBuffer(bufferLength + i - 1); - this.bufferLength += i - 1; - - // partial ending; - if (i < 5) { - for (; i < 5; ++i) { - input[i] = 0x21 + 84; - } - this.eof = true; - } - var t = 0; - for (i = 0; i < 5; ++i) { - t = t * 85 + (input[i] - 0x21); - } - - for (i = 3; i >= 0; --i) { - buffer[bufferLength + i] = t & 0xFF; - t >>= 8; - } - } - }; - - return Ascii85Stream; -})(); - -var AsciiHexStream = (function AsciiHexStreamClosure() { - function AsciiHexStream(str, maybeLength) { - this.str = str; - this.dict = str.dict; - - this.firstDigit = -1; - - // Most streams increase in size when decoded, but AsciiHex streams shrink - // by 50%. - if (maybeLength) { - maybeLength = 0.5 * maybeLength; - } - DecodeStream.call(this, maybeLength); - } - - AsciiHexStream.prototype = Object.create(DecodeStream.prototype); - - AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() { - var UPSTREAM_BLOCK_SIZE = 8000; - var bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE); - if (!bytes.length) { - this.eof = true; - return; - } - - var maxDecodeLength = (bytes.length + 1) >> 1; - var buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength); - var bufferLength = this.bufferLength; - - var firstDigit = this.firstDigit; - for (var i = 0, ii = bytes.length; i < ii; i++) { - var ch = bytes[i], digit; - if (ch >= 0x30 && ch <= 0x39) { // '0'-'9' - digit = ch & 0x0F; - } else if ((ch >= 0x41 && ch <= 0x46) || (ch >= 0x61 && ch <= 0x66)) { - // 'A'-'Z', 'a'-'z' - digit = (ch & 0x0F) + 9; - } else if (ch === 0x3E) { // '>' - this.eof = true; - break; - } else { // probably whitespace - continue; // ignoring - } - if (firstDigit < 0) { - firstDigit = digit; - } else { - buffer[bufferLength++] = (firstDigit << 4) | digit; - firstDigit = -1; - } - } - if (firstDigit >= 0 && this.eof) { - // incomplete byte - buffer[bufferLength++] = (firstDigit << 4); - firstDigit = -1; - } - this.firstDigit = firstDigit; - this.bufferLength = bufferLength; - }; - - return AsciiHexStream; -})(); - -var RunLengthStream = (function RunLengthStreamClosure() { - function RunLengthStream(str, maybeLength) { - this.str = str; - this.dict = str.dict; - - DecodeStream.call(this, maybeLength); - } - - RunLengthStream.prototype = Object.create(DecodeStream.prototype); - - RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() { - // The repeatHeader has following format. The first byte defines type of run - // and amount of bytes to repeat/copy: n = 0 through 127 - copy next n bytes - // (in addition to the second byte from the header), n = 129 through 255 - - // duplicate the second byte from the header (257 - n) times, n = 128 - end. - var repeatHeader = this.str.getBytes(2); - if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) { - this.eof = true; - return; - } - - var buffer; - var bufferLength = this.bufferLength; - var n = repeatHeader[0]; - if (n < 128) { - // copy n bytes - buffer = this.ensureBuffer(bufferLength + n + 1); - buffer[bufferLength++] = repeatHeader[1]; - if (n > 0) { - var source = this.str.getBytes(n); - buffer.set(source, bufferLength); - bufferLength += n; - } - } else { - n = 257 - n; - var b = repeatHeader[1]; - buffer = this.ensureBuffer(bufferLength + n + 1); - for (var i = 0; i < n; i++) { - buffer[bufferLength++] = b; - } - } - this.bufferLength = bufferLength; - }; - - return RunLengthStream; -})(); - -var CCITTFaxStream = (function CCITTFaxStreamClosure() { - - var ccittEOL = -2; - var twoDimPass = 0; - var twoDimHoriz = 1; - var twoDimVert0 = 2; - var twoDimVertR1 = 3; - var twoDimVertL1 = 4; - var twoDimVertR2 = 5; - var twoDimVertL2 = 6; - var twoDimVertR3 = 7; - var twoDimVertL3 = 8; - - var twoDimTable = [ - [-1, -1], [-1, -1], // 000000x - [7, twoDimVertL3], // 0000010 - [7, twoDimVertR3], // 0000011 - [6, twoDimVertL2], [6, twoDimVertL2], // 000010x - [6, twoDimVertR2], [6, twoDimVertR2], // 000011x - [4, twoDimPass], [4, twoDimPass], // 0001xxx - [4, twoDimPass], [4, twoDimPass], - [4, twoDimPass], [4, twoDimPass], - [4, twoDimPass], [4, twoDimPass], - [3, twoDimHoriz], [3, twoDimHoriz], // 001xxxx - [3, twoDimHoriz], [3, twoDimHoriz], - [3, twoDimHoriz], [3, twoDimHoriz], - [3, twoDimHoriz], [3, twoDimHoriz], - [3, twoDimHoriz], [3, twoDimHoriz], - [3, twoDimHoriz], [3, twoDimHoriz], - [3, twoDimHoriz], [3, twoDimHoriz], - [3, twoDimHoriz], [3, twoDimHoriz], - [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx - [3, twoDimVertL1], [3, twoDimVertL1], - [3, twoDimVertL1], [3, twoDimVertL1], - [3, twoDimVertL1], [3, twoDimVertL1], - [3, twoDimVertL1], [3, twoDimVertL1], - [3, twoDimVertL1], [3, twoDimVertL1], - [3, twoDimVertL1], [3, twoDimVertL1], - [3, twoDimVertL1], [3, twoDimVertL1], - [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx - [3, twoDimVertR1], [3, twoDimVertR1], - [3, twoDimVertR1], [3, twoDimVertR1], - [3, twoDimVertR1], [3, twoDimVertR1], - [3, twoDimVertR1], [3, twoDimVertR1], - [3, twoDimVertR1], [3, twoDimVertR1], - [3, twoDimVertR1], [3, twoDimVertR1], - [3, twoDimVertR1], [3, twoDimVertR1], - [1, twoDimVert0], [1, twoDimVert0], // 1xxxxxx - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0], - [1, twoDimVert0], [1, twoDimVert0] - ]; - - var whiteTable1 = [ - [-1, -1], // 00000 - [12, ccittEOL], // 00001 - [-1, -1], [-1, -1], // 0001x - [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx - [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx - [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx - [11, 1792], [11, 1792], // 1000x - [12, 1984], // 10010 - [12, 2048], // 10011 - [12, 2112], // 10100 - [12, 2176], // 10101 - [12, 2240], // 10110 - [12, 2304], // 10111 - [11, 1856], [11, 1856], // 1100x - [11, 1920], [11, 1920], // 1101x - [12, 2368], // 11100 - [12, 2432], // 11101 - [12, 2496], // 11110 - [12, 2560] // 11111 - ]; - - var whiteTable2 = [ - [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000000xx - [8, 29], [8, 29], // 00000010x - [8, 30], [8, 30], // 00000011x - [8, 45], [8, 45], // 00000100x - [8, 46], [8, 46], // 00000101x - [7, 22], [7, 22], [7, 22], [7, 22], // 0000011xx - [7, 23], [7, 23], [7, 23], [7, 23], // 0000100xx - [8, 47], [8, 47], // 00001010x - [8, 48], [8, 48], // 00001011x - [6, 13], [6, 13], [6, 13], [6, 13], // 000011xxx - [6, 13], [6, 13], [6, 13], [6, 13], - [7, 20], [7, 20], [7, 20], [7, 20], // 0001000xx - [8, 33], [8, 33], // 00010010x - [8, 34], [8, 34], // 00010011x - [8, 35], [8, 35], // 00010100x - [8, 36], [8, 36], // 00010101x - [8, 37], [8, 37], // 00010110x - [8, 38], [8, 38], // 00010111x - [7, 19], [7, 19], [7, 19], [7, 19], // 0001100xx - [8, 31], [8, 31], // 00011010x - [8, 32], [8, 32], // 00011011x - [6, 1], [6, 1], [6, 1], [6, 1], // 000111xxx - [6, 1], [6, 1], [6, 1], [6, 1], - [6, 12], [6, 12], [6, 12], [6, 12], // 001000xxx - [6, 12], [6, 12], [6, 12], [6, 12], - [8, 53], [8, 53], // 00100100x - [8, 54], [8, 54], // 00100101x - [7, 26], [7, 26], [7, 26], [7, 26], // 0010011xx - [8, 39], [8, 39], // 00101000x - [8, 40], [8, 40], // 00101001x - [8, 41], [8, 41], // 00101010x - [8, 42], [8, 42], // 00101011x - [8, 43], [8, 43], // 00101100x - [8, 44], [8, 44], // 00101101x - [7, 21], [7, 21], [7, 21], [7, 21], // 0010111xx - [7, 28], [7, 28], [7, 28], [7, 28], // 0011000xx - [8, 61], [8, 61], // 00110010x - [8, 62], [8, 62], // 00110011x - [8, 63], [8, 63], // 00110100x - [8, 0], [8, 0], // 00110101x - [8, 320], [8, 320], // 00110110x - [8, 384], [8, 384], // 00110111x - [5, 10], [5, 10], [5, 10], [5, 10], // 00111xxxx - [5, 10], [5, 10], [5, 10], [5, 10], - [5, 10], [5, 10], [5, 10], [5, 10], - [5, 10], [5, 10], [5, 10], [5, 10], - [5, 11], [5, 11], [5, 11], [5, 11], // 01000xxxx - [5, 11], [5, 11], [5, 11], [5, 11], - [5, 11], [5, 11], [5, 11], [5, 11], - [5, 11], [5, 11], [5, 11], [5, 11], - [7, 27], [7, 27], [7, 27], [7, 27], // 0100100xx - [8, 59], [8, 59], // 01001010x - [8, 60], [8, 60], // 01001011x - [9, 1472], // 010011000 - [9, 1536], // 010011001 - [9, 1600], // 010011010 - [9, 1728], // 010011011 - [7, 18], [7, 18], [7, 18], [7, 18], // 0100111xx - [7, 24], [7, 24], [7, 24], [7, 24], // 0101000xx - [8, 49], [8, 49], // 01010010x - [8, 50], [8, 50], // 01010011x - [8, 51], [8, 51], // 01010100x - [8, 52], [8, 52], // 01010101x - [7, 25], [7, 25], [7, 25], [7, 25], // 0101011xx - [8, 55], [8, 55], // 01011000x - [8, 56], [8, 56], // 01011001x - [8, 57], [8, 57], // 01011010x - [8, 58], [8, 58], // 01011011x - [6, 192], [6, 192], [6, 192], [6, 192], // 010111xxx - [6, 192], [6, 192], [6, 192], [6, 192], - [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx - [6, 1664], [6, 1664], [6, 1664], [6, 1664], - [8, 448], [8, 448], // 01100100x - [8, 512], [8, 512], // 01100101x - [9, 704], // 011001100 - [9, 768], // 011001101 - [8, 640], [8, 640], // 01100111x - [8, 576], [8, 576], // 01101000x - [9, 832], // 011010010 - [9, 896], // 011010011 - [9, 960], // 011010100 - [9, 1024], // 011010101 - [9, 1088], // 011010110 - [9, 1152], // 011010111 - [9, 1216], // 011011000 - [9, 1280], // 011011001 - [9, 1344], // 011011010 - [9, 1408], // 011011011 - [7, 256], [7, 256], [7, 256], [7, 256], // 0110111xx - [4, 2], [4, 2], [4, 2], [4, 2], // 0111xxxxx - [4, 2], [4, 2], [4, 2], [4, 2], - [4, 2], [4, 2], [4, 2], [4, 2], - [4, 2], [4, 2], [4, 2], [4, 2], - [4, 2], [4, 2], [4, 2], [4, 2], - [4, 2], [4, 2], [4, 2], [4, 2], - [4, 2], [4, 2], [4, 2], [4, 2], - [4, 2], [4, 2], [4, 2], [4, 2], - [4, 3], [4, 3], [4, 3], [4, 3], // 1000xxxxx - [4, 3], [4, 3], [4, 3], [4, 3], - [4, 3], [4, 3], [4, 3], [4, 3], - [4, 3], [4, 3], [4, 3], [4, 3], - [4, 3], [4, 3], [4, 3], [4, 3], - [4, 3], [4, 3], [4, 3], [4, 3], - [4, 3], [4, 3], [4, 3], [4, 3], - [4, 3], [4, 3], [4, 3], [4, 3], - [5, 128], [5, 128], [5, 128], [5, 128], // 10010xxxx - [5, 128], [5, 128], [5, 128], [5, 128], - [5, 128], [5, 128], [5, 128], [5, 128], - [5, 128], [5, 128], [5, 128], [5, 128], - [5, 8], [5, 8], [5, 8], [5, 8], // 10011xxxx - [5, 8], [5, 8], [5, 8], [5, 8], - [5, 8], [5, 8], [5, 8], [5, 8], - [5, 8], [5, 8], [5, 8], [5, 8], - [5, 9], [5, 9], [5, 9], [5, 9], // 10100xxxx - [5, 9], [5, 9], [5, 9], [5, 9], - [5, 9], [5, 9], [5, 9], [5, 9], - [5, 9], [5, 9], [5, 9], [5, 9], - [6, 16], [6, 16], [6, 16], [6, 16], // 101010xxx - [6, 16], [6, 16], [6, 16], [6, 16], - [6, 17], [6, 17], [6, 17], [6, 17], // 101011xxx - [6, 17], [6, 17], [6, 17], [6, 17], - [4, 4], [4, 4], [4, 4], [4, 4], // 1011xxxxx - [4, 4], [4, 4], [4, 4], [4, 4], - [4, 4], [4, 4], [4, 4], [4, 4], - [4, 4], [4, 4], [4, 4], [4, 4], - [4, 4], [4, 4], [4, 4], [4, 4], - [4, 4], [4, 4], [4, 4], [4, 4], - [4, 4], [4, 4], [4, 4], [4, 4], - [4, 4], [4, 4], [4, 4], [4, 4], - [4, 5], [4, 5], [4, 5], [4, 5], // 1100xxxxx - [4, 5], [4, 5], [4, 5], [4, 5], - [4, 5], [4, 5], [4, 5], [4, 5], - [4, 5], [4, 5], [4, 5], [4, 5], - [4, 5], [4, 5], [4, 5], [4, 5], - [4, 5], [4, 5], [4, 5], [4, 5], - [4, 5], [4, 5], [4, 5], [4, 5], - [4, 5], [4, 5], [4, 5], [4, 5], - [6, 14], [6, 14], [6, 14], [6, 14], // 110100xxx - [6, 14], [6, 14], [6, 14], [6, 14], - [6, 15], [6, 15], [6, 15], [6, 15], // 110101xxx - [6, 15], [6, 15], [6, 15], [6, 15], - [5, 64], [5, 64], [5, 64], [5, 64], // 11011xxxx - [5, 64], [5, 64], [5, 64], [5, 64], - [5, 64], [5, 64], [5, 64], [5, 64], - [5, 64], [5, 64], [5, 64], [5, 64], - [4, 6], [4, 6], [4, 6], [4, 6], // 1110xxxxx - [4, 6], [4, 6], [4, 6], [4, 6], - [4, 6], [4, 6], [4, 6], [4, 6], - [4, 6], [4, 6], [4, 6], [4, 6], - [4, 6], [4, 6], [4, 6], [4, 6], - [4, 6], [4, 6], [4, 6], [4, 6], - [4, 6], [4, 6], [4, 6], [4, 6], - [4, 6], [4, 6], [4, 6], [4, 6], - [4, 7], [4, 7], [4, 7], [4, 7], // 1111xxxxx - [4, 7], [4, 7], [4, 7], [4, 7], - [4, 7], [4, 7], [4, 7], [4, 7], - [4, 7], [4, 7], [4, 7], [4, 7], - [4, 7], [4, 7], [4, 7], [4, 7], - [4, 7], [4, 7], [4, 7], [4, 7], - [4, 7], [4, 7], [4, 7], [4, 7], - [4, 7], [4, 7], [4, 7], [4, 7] - ]; - - var blackTable1 = [ - [-1, -1], [-1, -1], // 000000000000x - [12, ccittEOL], [12, ccittEOL], // 000000000001x - [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000001xx - [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000010xx - [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000011xx - [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000100xx - [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000101xx - [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000110xx - [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000111xx - [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx - [12, 1984], [12, 1984], // 000000010010x - [12, 2048], [12, 2048], // 000000010011x - [12, 2112], [12, 2112], // 000000010100x - [12, 2176], [12, 2176], // 000000010101x - [12, 2240], [12, 2240], // 000000010110x - [12, 2304], [12, 2304], // 000000010111x - [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx - [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx - [12, 2368], [12, 2368], // 000000011100x - [12, 2432], [12, 2432], // 000000011101x - [12, 2496], [12, 2496], // 000000011110x - [12, 2560], [12, 2560], // 000000011111x - [10, 18], [10, 18], [10, 18], [10, 18], // 0000001000xxx - [10, 18], [10, 18], [10, 18], [10, 18], - [12, 52], [12, 52], // 000000100100x - [13, 640], // 0000001001010 - [13, 704], // 0000001001011 - [13, 768], // 0000001001100 - [13, 832], // 0000001001101 - [12, 55], [12, 55], // 000000100111x - [12, 56], [12, 56], // 000000101000x - [13, 1280], // 0000001010010 - [13, 1344], // 0000001010011 - [13, 1408], // 0000001010100 - [13, 1472], // 0000001010101 - [12, 59], [12, 59], // 000000101011x - [12, 60], [12, 60], // 000000101100x - [13, 1536], // 0000001011010 - [13, 1600], // 0000001011011 - [11, 24], [11, 24], [11, 24], [11, 24], // 00000010111xx - [11, 25], [11, 25], [11, 25], [11, 25], // 00000011000xx - [13, 1664], // 0000001100100 - [13, 1728], // 0000001100101 - [12, 320], [12, 320], // 000000110011x - [12, 384], [12, 384], // 000000110100x - [12, 448], [12, 448], // 000000110101x - [13, 512], // 0000001101100 - [13, 576], // 0000001101101 - [12, 53], [12, 53], // 000000110111x - [12, 54], [12, 54], // 000000111000x - [13, 896], // 0000001110010 - [13, 960], // 0000001110011 - [13, 1024], // 0000001110100 - [13, 1088], // 0000001110101 - [13, 1152], // 0000001110110 - [13, 1216], // 0000001110111 - [10, 64], [10, 64], [10, 64], [10, 64], // 0000001111xxx - [10, 64], [10, 64], [10, 64], [10, 64] - ]; - - var blackTable2 = [ - [8, 13], [8, 13], [8, 13], [8, 13], // 00000100xxxx - [8, 13], [8, 13], [8, 13], [8, 13], - [8, 13], [8, 13], [8, 13], [8, 13], - [8, 13], [8, 13], [8, 13], [8, 13], - [11, 23], [11, 23], // 00000101000x - [12, 50], // 000001010010 - [12, 51], // 000001010011 - [12, 44], // 000001010100 - [12, 45], // 000001010101 - [12, 46], // 000001010110 - [12, 47], // 000001010111 - [12, 57], // 000001011000 - [12, 58], // 000001011001 - [12, 61], // 000001011010 - [12, 256], // 000001011011 - [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx - [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx - [12, 48], // 000001100100 - [12, 49], // 000001100101 - [12, 62], // 000001100110 - [12, 63], // 000001100111 - [12, 30], // 000001101000 - [12, 31], // 000001101001 - [12, 32], // 000001101010 - [12, 33], // 000001101011 - [12, 40], // 000001101100 - [12, 41], // 000001101101 - [11, 22], [11, 22], // 00000110111x - [8, 14], [8, 14], [8, 14], [8, 14], // 00000111xxxx - [8, 14], [8, 14], [8, 14], [8, 14], - [8, 14], [8, 14], [8, 14], [8, 14], - [8, 14], [8, 14], [8, 14], [8, 14], - [7, 10], [7, 10], [7, 10], [7, 10], // 0000100xxxxx - [7, 10], [7, 10], [7, 10], [7, 10], - [7, 10], [7, 10], [7, 10], [7, 10], - [7, 10], [7, 10], [7, 10], [7, 10], - [7, 10], [7, 10], [7, 10], [7, 10], - [7, 10], [7, 10], [7, 10], [7, 10], - [7, 10], [7, 10], [7, 10], [7, 10], - [7, 10], [7, 10], [7, 10], [7, 10], - [7, 11], [7, 11], [7, 11], [7, 11], // 0000101xxxxx - [7, 11], [7, 11], [7, 11], [7, 11], - [7, 11], [7, 11], [7, 11], [7, 11], - [7, 11], [7, 11], [7, 11], [7, 11], - [7, 11], [7, 11], [7, 11], [7, 11], - [7, 11], [7, 11], [7, 11], [7, 11], - [7, 11], [7, 11], [7, 11], [7, 11], - [7, 11], [7, 11], [7, 11], [7, 11], - [9, 15], [9, 15], [9, 15], [9, 15], // 000011000xxx - [9, 15], [9, 15], [9, 15], [9, 15], - [12, 128], // 000011001000 - [12, 192], // 000011001001 - [12, 26], // 000011001010 - [12, 27], // 000011001011 - [12, 28], // 000011001100 - [12, 29], // 000011001101 - [11, 19], [11, 19], // 00001100111x - [11, 20], [11, 20], // 00001101000x - [12, 34], // 000011010010 - [12, 35], // 000011010011 - [12, 36], // 000011010100 - [12, 37], // 000011010101 - [12, 38], // 000011010110 - [12, 39], // 000011010111 - [11, 21], [11, 21], // 00001101100x - [12, 42], // 000011011010 - [12, 43], // 000011011011 - [10, 0], [10, 0], [10, 0], [10, 0], // 0000110111xx - [7, 12], [7, 12], [7, 12], [7, 12], // 0000111xxxxx - [7, 12], [7, 12], [7, 12], [7, 12], - [7, 12], [7, 12], [7, 12], [7, 12], - [7, 12], [7, 12], [7, 12], [7, 12], - [7, 12], [7, 12], [7, 12], [7, 12], - [7, 12], [7, 12], [7, 12], [7, 12], - [7, 12], [7, 12], [7, 12], [7, 12], - [7, 12], [7, 12], [7, 12], [7, 12] - ]; - - var blackTable3 = [ - [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx - [6, 9], // 000100 - [6, 8], // 000101 - [5, 7], [5, 7], // 00011x - [4, 6], [4, 6], [4, 6], [4, 6], // 0010xx - [4, 5], [4, 5], [4, 5], [4, 5], // 0011xx - [3, 1], [3, 1], [3, 1], [3, 1], // 010xxx - [3, 1], [3, 1], [3, 1], [3, 1], - [3, 4], [3, 4], [3, 4], [3, 4], // 011xxx - [3, 4], [3, 4], [3, 4], [3, 4], - [2, 3], [2, 3], [2, 3], [2, 3], // 10xxxx - [2, 3], [2, 3], [2, 3], [2, 3], - [2, 3], [2, 3], [2, 3], [2, 3], - [2, 3], [2, 3], [2, 3], [2, 3], - [2, 2], [2, 2], [2, 2], [2, 2], // 11xxxx - [2, 2], [2, 2], [2, 2], [2, 2], - [2, 2], [2, 2], [2, 2], [2, 2], - [2, 2], [2, 2], [2, 2], [2, 2] - ]; - - function CCITTFaxStream(str, maybeLength, params) { - this.str = str; - this.dict = str.dict; - - params = params || Dict.empty; - - this.encoding = params.get('K') || 0; - this.eoline = params.get('EndOfLine') || false; - this.byteAlign = params.get('EncodedByteAlign') || false; - this.columns = params.get('Columns') || 1728; - this.rows = params.get('Rows') || 0; - var eoblock = params.get('EndOfBlock'); - if (eoblock === null || eoblock === undefined) { - eoblock = true; - } - this.eoblock = eoblock; - this.black = params.get('BlackIs1') || false; - - this.codingLine = new Uint32Array(this.columns + 1); - this.refLine = new Uint32Array(this.columns + 2); - - this.codingLine[0] = this.columns; - this.codingPos = 0; - - this.row = 0; - this.nextLine2D = this.encoding < 0; - this.inputBits = 0; - this.inputBuf = 0; - this.outputBits = 0; - - var code1; - while ((code1 = this.lookBits(12)) === 0) { - this.eatBits(1); - } - if (code1 === 1) { - this.eatBits(12); - } - if (this.encoding > 0) { - this.nextLine2D = !this.lookBits(1); - this.eatBits(1); - } - - DecodeStream.call(this, maybeLength); - } - - CCITTFaxStream.prototype = Object.create(DecodeStream.prototype); - - CCITTFaxStream.prototype.readBlock = function CCITTFaxStream_readBlock() { - while (!this.eof) { - var c = this.lookChar(); - this.ensureBuffer(this.bufferLength + 1); - this.buffer[this.bufferLength++] = c; - } - }; - - CCITTFaxStream.prototype.addPixels = - function ccittFaxStreamAddPixels(a1, blackPixels) { - var codingLine = this.codingLine; - var codingPos = this.codingPos; - - if (a1 > codingLine[codingPos]) { - if (a1 > this.columns) { - info('row is wrong length'); - this.err = true; - a1 = this.columns; - } - if ((codingPos & 1) ^ blackPixels) { - ++codingPos; - } - - codingLine[codingPos] = a1; - } - this.codingPos = codingPos; - }; - - CCITTFaxStream.prototype.addPixelsNeg = - function ccittFaxStreamAddPixelsNeg(a1, blackPixels) { - var codingLine = this.codingLine; - var codingPos = this.codingPos; - - if (a1 > codingLine[codingPos]) { - if (a1 > this.columns) { - info('row is wrong length'); - this.err = true; - a1 = this.columns; - } - if ((codingPos & 1) ^ blackPixels) { - ++codingPos; - } - - codingLine[codingPos] = a1; - } else if (a1 < codingLine[codingPos]) { - if (a1 < 0) { - info('invalid code'); - this.err = true; - a1 = 0; - } - while (codingPos > 0 && a1 < codingLine[codingPos - 1]) { - --codingPos; - } - codingLine[codingPos] = a1; - } - - this.codingPos = codingPos; - }; - - CCITTFaxStream.prototype.lookChar = function CCITTFaxStream_lookChar() { - var refLine = this.refLine; - var codingLine = this.codingLine; - var columns = this.columns; - - var refPos, blackPixels, bits, i; - - if (this.outputBits === 0) { - if (this.eof) { - return null; - } - this.err = false; - - var code1, code2, code3; - if (this.nextLine2D) { - for (i = 0; codingLine[i] < columns; ++i) { - refLine[i] = codingLine[i]; - } - refLine[i++] = columns; - refLine[i] = columns; - codingLine[0] = 0; - this.codingPos = 0; - refPos = 0; - blackPixels = 0; - - while (codingLine[this.codingPos] < columns) { - code1 = this.getTwoDimCode(); - switch (code1) { - case twoDimPass: - this.addPixels(refLine[refPos + 1], blackPixels); - if (refLine[refPos + 1] < columns) { - refPos += 2; - } - break; - case twoDimHoriz: - code1 = code2 = 0; - if (blackPixels) { - do { - code1 += (code3 = this.getBlackCode()); - } while (code3 >= 64); - do { - code2 += (code3 = this.getWhiteCode()); - } while (code3 >= 64); - } else { - do { - code1 += (code3 = this.getWhiteCode()); - } while (code3 >= 64); - do { - code2 += (code3 = this.getBlackCode()); - } while (code3 >= 64); - } - this.addPixels(codingLine[this.codingPos] + - code1, blackPixels); - if (codingLine[this.codingPos] < columns) { - this.addPixels(codingLine[this.codingPos] + code2, - blackPixels ^ 1); - } - while (refLine[refPos] <= codingLine[this.codingPos] && - refLine[refPos] < columns) { - refPos += 2; - } - break; - case twoDimVertR3: - this.addPixels(refLine[refPos] + 3, blackPixels); - blackPixels ^= 1; - if (codingLine[this.codingPos] < columns) { - ++refPos; - while (refLine[refPos] <= codingLine[this.codingPos] && - refLine[refPos] < columns) { - refPos += 2; - } - } - break; - case twoDimVertR2: - this.addPixels(refLine[refPos] + 2, blackPixels); - blackPixels ^= 1; - if (codingLine[this.codingPos] < columns) { - ++refPos; - while (refLine[refPos] <= codingLine[this.codingPos] && - refLine[refPos] < columns) { - refPos += 2; - } - } - break; - case twoDimVertR1: - this.addPixels(refLine[refPos] + 1, blackPixels); - blackPixels ^= 1; - if (codingLine[this.codingPos] < columns) { - ++refPos; - while (refLine[refPos] <= codingLine[this.codingPos] && - refLine[refPos] < columns) { - refPos += 2; - } - } - break; - case twoDimVert0: - this.addPixels(refLine[refPos], blackPixels); - blackPixels ^= 1; - if (codingLine[this.codingPos] < columns) { - ++refPos; - while (refLine[refPos] <= codingLine[this.codingPos] && - refLine[refPos] < columns) { - refPos += 2; - } - } - break; - case twoDimVertL3: - this.addPixelsNeg(refLine[refPos] - 3, blackPixels); - blackPixels ^= 1; - if (codingLine[this.codingPos] < columns) { - if (refPos > 0) { - --refPos; - } else { - ++refPos; - } - while (refLine[refPos] <= codingLine[this.codingPos] && - refLine[refPos] < columns) { - refPos += 2; - } - } - break; - case twoDimVertL2: - this.addPixelsNeg(refLine[refPos] - 2, blackPixels); - blackPixels ^= 1; - if (codingLine[this.codingPos] < columns) { - if (refPos > 0) { - --refPos; - } else { - ++refPos; - } - while (refLine[refPos] <= codingLine[this.codingPos] && - refLine[refPos] < columns) { - refPos += 2; - } - } - break; - case twoDimVertL1: - this.addPixelsNeg(refLine[refPos] - 1, blackPixels); - blackPixels ^= 1; - if (codingLine[this.codingPos] < columns) { - if (refPos > 0) { - --refPos; - } else { - ++refPos; - } - while (refLine[refPos] <= codingLine[this.codingPos] && - refLine[refPos] < columns) { - refPos += 2; - } - } - break; - case EOF: - this.addPixels(columns, 0); - this.eof = true; - break; - default: - info('bad 2d code'); - this.addPixels(columns, 0); - this.err = true; - } - } - } else { - codingLine[0] = 0; - this.codingPos = 0; - blackPixels = 0; - while (codingLine[this.codingPos] < columns) { - code1 = 0; - if (blackPixels) { - do { - code1 += (code3 = this.getBlackCode()); - } while (code3 >= 64); - } else { - do { - code1 += (code3 = this.getWhiteCode()); - } while (code3 >= 64); - } - this.addPixels(codingLine[this.codingPos] + code1, blackPixels); - blackPixels ^= 1; - } - } - - var gotEOL = false; - - if (this.byteAlign) { - this.inputBits &= ~7; - } - - if (!this.eoblock && this.row === this.rows - 1) { - this.eof = true; - } else { - code1 = this.lookBits(12); - if (this.eoline) { - while (code1 !== EOF && code1 !== 1) { - this.eatBits(1); - code1 = this.lookBits(12); - } - } else { - while (code1 === 0) { - this.eatBits(1); - code1 = this.lookBits(12); - } - } - if (code1 === 1) { - this.eatBits(12); - gotEOL = true; - } else if (code1 === EOF) { - this.eof = true; - } - } - - if (!this.eof && this.encoding > 0) { - this.nextLine2D = !this.lookBits(1); - this.eatBits(1); - } - - if (this.eoblock && gotEOL && this.byteAlign) { - code1 = this.lookBits(12); - if (code1 === 1) { - this.eatBits(12); - if (this.encoding > 0) { - this.lookBits(1); - this.eatBits(1); - } - if (this.encoding >= 0) { - for (i = 0; i < 4; ++i) { - code1 = this.lookBits(12); - if (code1 !== 1) { - info('bad rtc code: ' + code1); - } - this.eatBits(12); - if (this.encoding > 0) { - this.lookBits(1); - this.eatBits(1); - } - } - } - this.eof = true; - } - } else if (this.err && this.eoline) { - while (true) { - code1 = this.lookBits(13); - if (code1 === EOF) { - this.eof = true; - return null; - } - if ((code1 >> 1) === 1) { - break; - } - this.eatBits(1); - } - this.eatBits(12); - if (this.encoding > 0) { - this.eatBits(1); - this.nextLine2D = !(code1 & 1); - } - } - - if (codingLine[0] > 0) { - this.outputBits = codingLine[this.codingPos = 0]; - } else { - this.outputBits = codingLine[this.codingPos = 1]; - } - this.row++; - } - - var c; - if (this.outputBits >= 8) { - c = (this.codingPos & 1) ? 0 : 0xFF; - this.outputBits -= 8; - if (this.outputBits === 0 && codingLine[this.codingPos] < columns) { - this.codingPos++; - this.outputBits = (codingLine[this.codingPos] - - codingLine[this.codingPos - 1]); - } - } else { - bits = 8; - c = 0; - do { - if (this.outputBits > bits) { - c <<= bits; - if (!(this.codingPos & 1)) { - c |= 0xFF >> (8 - bits); - } - this.outputBits -= bits; - bits = 0; - } else { - c <<= this.outputBits; - if (!(this.codingPos & 1)) { - c |= 0xFF >> (8 - this.outputBits); - } - bits -= this.outputBits; - this.outputBits = 0; - if (codingLine[this.codingPos] < columns) { - this.codingPos++; - this.outputBits = (codingLine[this.codingPos] - - codingLine[this.codingPos - 1]); - } else if (bits > 0) { - c <<= bits; - bits = 0; - } - } - } while (bits); - } - if (this.black) { - c ^= 0xFF; - } - return c; - }; - - // This functions returns the code found from the table. - // The start and end parameters set the boundaries for searching the table. - // The limit parameter is optional. Function returns an array with three - // values. The first array element indicates whether a valid code is being - // returned. The second array element is the actual code. The third array - // element indicates whether EOF was reached. - CCITTFaxStream.prototype.findTableCode = - function ccittFaxStreamFindTableCode(start, end, table, limit) { - - var limitValue = limit || 0; - for (var i = start; i <= end; ++i) { - var code = this.lookBits(i); - if (code === EOF) { - return [true, 1, false]; - } - if (i < end) { - code <<= end - i; - } - if (!limitValue || code >= limitValue) { - var p = table[code - limitValue]; - if (p[0] === i) { - this.eatBits(i); - return [true, p[1], true]; - } - } - } - return [false, 0, false]; - }; - - CCITTFaxStream.prototype.getTwoDimCode = - function ccittFaxStreamGetTwoDimCode() { - - var code = 0; - var p; - if (this.eoblock) { - code = this.lookBits(7); - p = twoDimTable[code]; - if (p && p[0] > 0) { - this.eatBits(p[0]); - return p[1]; - } - } else { - var result = this.findTableCode(1, 7, twoDimTable); - if (result[0] && result[2]) { - return result[1]; - } - } - info('Bad two dim code'); - return EOF; - }; - - CCITTFaxStream.prototype.getWhiteCode = - function ccittFaxStreamGetWhiteCode() { - - var code = 0; - var p; - if (this.eoblock) { - code = this.lookBits(12); - if (code === EOF) { - return 1; - } - - if ((code >> 5) === 0) { - p = whiteTable1[code]; - } else { - p = whiteTable2[code >> 3]; - } - - if (p[0] > 0) { - this.eatBits(p[0]); - return p[1]; - } - } else { - var result = this.findTableCode(1, 9, whiteTable2); - if (result[0]) { - return result[1]; - } - - result = this.findTableCode(11, 12, whiteTable1); - if (result[0]) { - return result[1]; - } - } - info('bad white code'); - this.eatBits(1); - return 1; - }; - - CCITTFaxStream.prototype.getBlackCode = - function ccittFaxStreamGetBlackCode() { - - var code, p; - if (this.eoblock) { - code = this.lookBits(13); - if (code === EOF) { - return 1; - } - if ((code >> 7) === 0) { - p = blackTable1[code]; - } else if ((code >> 9) === 0 && (code >> 7) !== 0) { - p = blackTable2[(code >> 1) - 64]; - } else { - p = blackTable3[code >> 7]; - } - - if (p[0] > 0) { - this.eatBits(p[0]); - return p[1]; - } - } else { - var result = this.findTableCode(2, 6, blackTable3); - if (result[0]) { - return result[1]; - } - - result = this.findTableCode(7, 12, blackTable2, 64); - if (result[0]) { - return result[1]; - } - - result = this.findTableCode(10, 13, blackTable1); - if (result[0]) { - return result[1]; - } - } - info('bad black code'); - this.eatBits(1); - return 1; - }; - - CCITTFaxStream.prototype.lookBits = function CCITTFaxStream_lookBits(n) { - var c; - while (this.inputBits < n) { - if ((c = this.str.getByte()) === -1) { - if (this.inputBits === 0) { - return EOF; - } - return ((this.inputBuf << (n - this.inputBits)) & - (0xFFFF >> (16 - n))); - } - this.inputBuf = (this.inputBuf << 8) + c; - this.inputBits += 8; - } - return (this.inputBuf >> (this.inputBits - n)) & (0xFFFF >> (16 - n)); - }; - - CCITTFaxStream.prototype.eatBits = function CCITTFaxStream_eatBits(n) { - if ((this.inputBits -= n) < 0) { - this.inputBits = 0; - } - }; - - return CCITTFaxStream; -})(); - -var LZWStream = (function LZWStreamClosure() { - function LZWStream(str, maybeLength, earlyChange) { - this.str = str; - this.dict = str.dict; - this.cachedData = 0; - this.bitsCached = 0; - - var maxLzwDictionarySize = 4096; - var lzwState = { - earlyChange: earlyChange, - codeLength: 9, - nextCode: 258, - dictionaryValues: new Uint8Array(maxLzwDictionarySize), - dictionaryLengths: new Uint16Array(maxLzwDictionarySize), - dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize), - currentSequence: new Uint8Array(maxLzwDictionarySize), - currentSequenceLength: 0 - }; - for (var i = 0; i < 256; ++i) { - lzwState.dictionaryValues[i] = i; - lzwState.dictionaryLengths[i] = 1; - } - this.lzwState = lzwState; - - DecodeStream.call(this, maybeLength); - } - - LZWStream.prototype = Object.create(DecodeStream.prototype); - - LZWStream.prototype.readBits = function LZWStream_readBits(n) { - var bitsCached = this.bitsCached; - var cachedData = this.cachedData; - while (bitsCached < n) { - var c = this.str.getByte(); - if (c === -1) { - this.eof = true; - return null; - } - cachedData = (cachedData << 8) | c; - bitsCached += 8; - } - this.bitsCached = (bitsCached -= n); - this.cachedData = cachedData; - this.lastCode = null; - return (cachedData >>> bitsCached) & ((1 << n) - 1); - }; - - LZWStream.prototype.readBlock = function LZWStream_readBlock() { - var blockSize = 512; - var estimatedDecodedSize = blockSize * 2, decodedSizeDelta = blockSize; - var i, j, q; - - var lzwState = this.lzwState; - if (!lzwState) { - return; // eof was found - } - - var earlyChange = lzwState.earlyChange; - var nextCode = lzwState.nextCode; - var dictionaryValues = lzwState.dictionaryValues; - var dictionaryLengths = lzwState.dictionaryLengths; - var dictionaryPrevCodes = lzwState.dictionaryPrevCodes; - var codeLength = lzwState.codeLength; - var prevCode = lzwState.prevCode; - var currentSequence = lzwState.currentSequence; - var currentSequenceLength = lzwState.currentSequenceLength; - - var decodedLength = 0; - var currentBufferLength = this.bufferLength; - var buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize); - - for (i = 0; i < blockSize; i++) { - var code = this.readBits(codeLength); - var hasPrev = currentSequenceLength > 0; - if (code < 256) { - currentSequence[0] = code; - currentSequenceLength = 1; - } else if (code >= 258) { - if (code < nextCode) { - currentSequenceLength = dictionaryLengths[code]; - for (j = currentSequenceLength - 1, q = code; j >= 0; j--) { - currentSequence[j] = dictionaryValues[q]; - q = dictionaryPrevCodes[q]; - } - } else { - currentSequence[currentSequenceLength++] = currentSequence[0]; - } - } else if (code === 256) { - codeLength = 9; - nextCode = 258; - currentSequenceLength = 0; - continue; - } else { - this.eof = true; - delete this.lzwState; - break; - } - - if (hasPrev) { - dictionaryPrevCodes[nextCode] = prevCode; - dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1; - dictionaryValues[nextCode] = currentSequence[0]; - nextCode++; - codeLength = (nextCode + earlyChange) & (nextCode + earlyChange - 1) ? - codeLength : Math.min(Math.log(nextCode + earlyChange) / - 0.6931471805599453 + 1, 12) | 0; - } - prevCode = code; - - decodedLength += currentSequenceLength; - if (estimatedDecodedSize < decodedLength) { - do { - estimatedDecodedSize += decodedSizeDelta; - } while (estimatedDecodedSize < decodedLength); - buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize); - } - for (j = 0; j < currentSequenceLength; j++) { - buffer[currentBufferLength++] = currentSequence[j]; - } - } - lzwState.nextCode = nextCode; - lzwState.codeLength = codeLength; - lzwState.prevCode = prevCode; - lzwState.currentSequenceLength = currentSequenceLength; - - this.bufferLength = currentBufferLength; - }; - - return LZWStream; -})(); - -var NullStream = (function NullStreamClosure() { - function NullStream() { - Stream.call(this, new Uint8Array(0)); - } - - NullStream.prototype = Stream.prototype; - - return NullStream; -})(); - - -var WorkerMessageHandler = PDFJS.WorkerMessageHandler = { - setup: function wphSetup(handler) { - var pdfManager; - - function loadDocument(recoveryMode) { - var loadDocumentCapability = createPromiseCapability(); - - var parseSuccess = function parseSuccess() { - var numPagesPromise = pdfManager.ensureDoc('numPages'); - var fingerprintPromise = pdfManager.ensureDoc('fingerprint'); - var encryptedPromise = pdfManager.ensureXRef('encrypt'); - Promise.all([numPagesPromise, fingerprintPromise, - encryptedPromise]).then(function onDocReady(results) { - var doc = { - numPages: results[0], - fingerprint: results[1], - encrypted: !!results[2], - }; - loadDocumentCapability.resolve(doc); - }, - parseFailure); - }; - - var parseFailure = function parseFailure(e) { - loadDocumentCapability.reject(e); - }; - - pdfManager.ensureDoc('checkHeader', []).then(function() { - pdfManager.ensureDoc('parseStartXRef', []).then(function() { - pdfManager.ensureDoc('parse', [recoveryMode]).then( - parseSuccess, parseFailure); - }, parseFailure); - }, parseFailure); - - return loadDocumentCapability.promise; - } - - function getPdfManager(data) { - var pdfManagerCapability = createPromiseCapability(); - - var source = data.source; - var disableRange = data.disableRange; - if (source.data) { - try { - pdfManager = new LocalPdfManager(source.data, source.password); - pdfManagerCapability.resolve(); - } catch (ex) { - pdfManagerCapability.reject(ex); - } - return pdfManagerCapability.promise; - } else if (source.chunkedViewerLoading) { - try { - pdfManager = new NetworkPdfManager(source, handler); - pdfManagerCapability.resolve(); - } catch (ex) { - pdfManagerCapability.reject(ex); - } - return pdfManagerCapability.promise; - } - - var networkManager = new NetworkManager(source.url, { - httpHeaders: source.httpHeaders, - withCredentials: source.withCredentials - }); - var cachedChunks = []; - var fullRequestXhrId = networkManager.requestFull({ - onHeadersReceived: function onHeadersReceived() { - if (disableRange) { - return; - } - - var fullRequestXhr = networkManager.getRequestXhr(fullRequestXhrId); - if (fullRequestXhr.getResponseHeader('Accept-Ranges') !== 'bytes') { - return; - } - - var contentEncoding = - fullRequestXhr.getResponseHeader('Content-Encoding') || 'identity'; - if (contentEncoding !== 'identity') { - return; - } - - var length = fullRequestXhr.getResponseHeader('Content-Length'); - length = parseInt(length, 10); - if (!isInt(length)) { - return; - } - source.length = length; - if (length <= 2 * RANGE_CHUNK_SIZE) { - // The file size is smaller than the size of two chunks, so it does - // not make any sense to abort the request and retry with a range - // request. - return; - } - - if (networkManager.isStreamingRequest(fullRequestXhrId)) { - // We can continue fetching when progressive loading is enabled, - // and we don't need the autoFetch feature. - source.disableAutoFetch = true; - } else { - // NOTE: by cancelling the full request, and then issuing range - // requests, there will be an issue for sites where you can only - // request the pdf once. However, if this is the case, then the - // server should not be returning that it can support range - // requests. - networkManager.abortRequest(fullRequestXhrId); - } - - try { - pdfManager = new NetworkPdfManager(source, handler); - pdfManagerCapability.resolve(pdfManager); - } catch (ex) { - pdfManagerCapability.reject(ex); - } - }, - - onProgressiveData: source.disableStream ? null : - function onProgressiveData(chunk) { - if (!pdfManager) { - cachedChunks.push(chunk); - return; - } - pdfManager.sendProgressiveData(chunk); - }, - - onDone: function onDone(args) { - if (pdfManager) { - return; // already processed - } - - var pdfFile; - if (args === null) { - // TODO add some streaming manager, e.g. for unknown length files. - // The data was returned in the onProgressiveData, combining... - var pdfFileLength = 0, pos = 0; - cachedChunks.forEach(function (chunk) { - pdfFileLength += chunk.byteLength; - }); - if (source.length && pdfFileLength !== source.length) { - warn('reported HTTP length is different from actual'); - } - var pdfFileArray = new Uint8Array(pdfFileLength); - cachedChunks.forEach(function (chunk) { - pdfFileArray.set(new Uint8Array(chunk), pos); - pos += chunk.byteLength; - }); - pdfFile = pdfFileArray.buffer; - } else { - pdfFile = args.chunk; - } - - // the data is array, instantiating directly from it - try { - pdfManager = new LocalPdfManager(pdfFile, source.password); - pdfManagerCapability.resolve(); - } catch (ex) { - pdfManagerCapability.reject(ex); - } - }, - - onError: function onError(status) { - var exception; - if (status === 404) { - exception = new MissingPDFException('Missing PDF "' + - source.url + '".'); - handler.send('MissingPDF', exception); - } else { - exception = new UnexpectedResponseException( - 'Unexpected server response (' + status + - ') while retrieving PDF "' + source.url + '".', status); - handler.send('UnexpectedResponse', exception); - } - }, - - onProgress: function onProgress(evt) { - handler.send('DocProgress', { - loaded: evt.loaded, - total: evt.lengthComputable ? evt.total : source.length - }); - } - }); - - return pdfManagerCapability.promise; - } - - handler.on('test', function wphSetupTest(data) { - // check if Uint8Array can be sent to worker - if (!(data instanceof Uint8Array)) { - handler.send('test', false); - return; - } - // making sure postMessage transfers are working - var supportTransfers = data[0] === 255; - handler.postMessageTransfers = supportTransfers; - // check if the response property is supported by xhr - var xhr = new XMLHttpRequest(); - var responseExists = 'response' in xhr; - // check if the property is actually implemented - try { - var dummy = xhr.responseType; - } catch (e) { - responseExists = false; - } - if (!responseExists) { - handler.send('test', false); - return; - } - handler.send('test', { - supportTypedArray: true, - supportTransfers: supportTransfers - }); - }); - - handler.on('GetDocRequest', function wphSetupDoc(data) { - - var onSuccess = function(doc) { - handler.send('GetDoc', { pdfInfo: doc }); - }; - - var onFailure = function(e) { - if (e instanceof PasswordException) { - if (e.code === PasswordResponses.NEED_PASSWORD) { - handler.send('NeedPassword', e); - } else if (e.code === PasswordResponses.INCORRECT_PASSWORD) { - handler.send('IncorrectPassword', e); - } - } else if (e instanceof InvalidPDFException) { - handler.send('InvalidPDF', e); - } else if (e instanceof MissingPDFException) { - handler.send('MissingPDF', e); - } else if (e instanceof UnexpectedResponseException) { - handler.send('UnexpectedResponse', e); - } else { - handler.send('UnknownError', - new UnknownErrorException(e.message, e.toString())); - } - }; - - PDFJS.maxImageSize = data.maxImageSize === undefined ? - -1 : data.maxImageSize; - PDFJS.disableFontFace = data.disableFontFace; - PDFJS.disableCreateObjectURL = data.disableCreateObjectURL; - PDFJS.verbosity = data.verbosity; - PDFJS.cMapUrl = data.cMapUrl === undefined ? - null : data.cMapUrl; - PDFJS.cMapPacked = data.cMapPacked === true; - - getPdfManager(data).then(function () { - handler.send('PDFManagerReady', null); - pdfManager.onLoadedStream().then(function(stream) { - handler.send('DataLoaded', { length: stream.bytes.byteLength }); - }); - }).then(function pdfManagerReady() { - loadDocument(false).then(onSuccess, function loadFailure(ex) { - // Try again with recoveryMode == true - if (!(ex instanceof XRefParseException)) { - if (ex instanceof PasswordException) { - // after password exception prepare to receive a new password - // to repeat loading - pdfManager.passwordChanged().then(pdfManagerReady); - } - - onFailure(ex); - return; - } - - pdfManager.requestLoadedStream(); - pdfManager.onLoadedStream().then(function() { - loadDocument(true).then(onSuccess, onFailure); - }); - }, onFailure); - }, onFailure); - }); - - handler.on('GetPage', function wphSetupGetPage(data) { - return pdfManager.getPage(data.pageIndex).then(function(page) { - var rotatePromise = pdfManager.ensure(page, 'rotate'); - var refPromise = pdfManager.ensure(page, 'ref'); - var viewPromise = pdfManager.ensure(page, 'view'); - - return Promise.all([rotatePromise, refPromise, viewPromise]).then( - function(results) { - return { - rotate: results[0], - ref: results[1], - view: results[2] - }; - }); - }); - }); - - handler.on('GetPageIndex', function wphSetupGetPageIndex(data) { - var ref = new Ref(data.ref.num, data.ref.gen); - var catalog = pdfManager.pdfDocument.catalog; - return catalog.getPageIndex(ref); - }); - - handler.on('GetDestinations', - function wphSetupGetDestinations(data) { - return pdfManager.ensureCatalog('destinations'); - } - ); - - handler.on('GetDestination', - function wphSetupGetDestination(data) { - return pdfManager.ensureCatalog('getDestination', [ data.id ]); - } - ); - - handler.on('GetAttachments', - function wphSetupGetAttachments(data) { - return pdfManager.ensureCatalog('attachments'); - } - ); - - handler.on('GetJavaScript', - function wphSetupGetJavaScript(data) { - return pdfManager.ensureCatalog('javaScript'); - } - ); - - handler.on('GetOutline', - function wphSetupGetOutline(data) { - return pdfManager.ensureCatalog('documentOutline'); - } - ); - - handler.on('GetMetadata', - function wphSetupGetMetadata(data) { - return Promise.all([pdfManager.ensureDoc('documentInfo'), - pdfManager.ensureCatalog('metadata')]); - } - ); - - handler.on('GetData', function wphSetupGetData(data) { - pdfManager.requestLoadedStream(); - return pdfManager.onLoadedStream().then(function(stream) { - return stream.bytes; - }); - }); - - handler.on('GetStats', - function wphSetupGetStats(data) { - return pdfManager.pdfDocument.xref.stats; - } - ); - - handler.on('UpdatePassword', function wphSetupUpdatePassword(data) { - pdfManager.updatePassword(data); - }); - - handler.on('GetAnnotations', function wphSetupGetAnnotations(data) { - return pdfManager.getPage(data.pageIndex).then(function(page) { - return pdfManager.ensure(page, 'getAnnotationsData', []); - }); - }); - - handler.on('RenderPageRequest', function wphSetupRenderPage(data) { - pdfManager.getPage(data.pageIndex).then(function(page) { - - var pageNum = data.pageIndex + 1; - var start = Date.now(); - // Pre compile the pdf page and fetch the fonts/images. - page.getOperatorList(handler, data.intent).then(function(operatorList) { - - info('page=' + pageNum + ' - getOperatorList: time=' + - (Date.now() - start) + 'ms, len=' + operatorList.fnArray.length); - - }, function(e) { - - var minimumStackMessage = - 'worker.js: while trying to getPage() and getOperatorList()'; - - var wrappedException; - - // Turn the error into an obj that can be serialized - if (typeof e === 'string') { - wrappedException = { - message: e, - stack: minimumStackMessage - }; - } else if (typeof e === 'object') { - wrappedException = { - message: e.message || e.toString(), - stack: e.stack || minimumStackMessage - }; - } else { - wrappedException = { - message: 'Unknown exception type: ' + (typeof e), - stack: minimumStackMessage - }; - } - - handler.send('PageError', { - pageNum: pageNum, - error: wrappedException, - intent: data.intent - }); - }); - }); - }, this); - - handler.on('GetTextContent', function wphExtractText(data) { - return pdfManager.getPage(data.pageIndex).then(function(page) { - var pageNum = data.pageIndex + 1; - var start = Date.now(); - return page.extractTextContent().then(function(textContent) { - info('text indexing: page=' + pageNum + ' - time=' + - (Date.now() - start) + 'ms'); - return textContent; - }); - }); - }); - - handler.on('Cleanup', function wphCleanup(data) { - return pdfManager.cleanup(); - }); - - handler.on('Terminate', function wphTerminate(data) { - pdfManager.terminate(); - }); - } -}; - -var consoleTimer = {}; - -var workerConsole = { - log: function log() { - var args = Array.prototype.slice.call(arguments); - globalScope.postMessage({ - action: 'console_log', - data: args - }); - }, - - error: function error() { - var args = Array.prototype.slice.call(arguments); - globalScope.postMessage({ - action: 'console_error', - data: args - }); - throw 'pdf.js execution error'; - }, - - time: function time(name) { - consoleTimer[name] = Date.now(); - }, - - timeEnd: function timeEnd(name) { - var time = consoleTimer[name]; - if (!time) { - error('Unknown timer name ' + name); - } - this.log('Timer:', name, Date.now() - time); - } -}; - - -// Worker thread? -if (typeof window === 'undefined') { - if (!('console' in globalScope)) { - globalScope.console = workerConsole; - } - - // Listen for unsupported features so we can pass them on to the main thread. - PDFJS.UnsupportedManager.listen(function (msg) { - globalScope.postMessage({ - action: '_unsupported_feature', - data: msg - }); - }); - - var handler = new MessageHandler('worker_processor', this); - WorkerMessageHandler.setup(handler); -} - - -/* This class implements the QM Coder decoding as defined in - * JPEG 2000 Part I Final Committee Draft Version 1.0 - * Annex C.3 Arithmetic decoding procedure - * available at http://www.jpeg.org/public/fcd15444-1.pdf - * - * The arithmetic decoder is used in conjunction with context models to decode - * JPEG2000 and JBIG2 streams. - */ -var ArithmeticDecoder = (function ArithmeticDecoderClosure() { - // Table C-2 - var QeTable = [ - {qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1}, - {qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0}, - {qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0}, - {qe: 0x0AC1, nmps: 4, nlps: 12, switchFlag: 0}, - {qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0}, - {qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0}, - {qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1}, - {qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0}, - {qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0}, - {qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0}, - {qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0}, - {qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0}, - {qe: 0x1C01, nmps: 13, nlps: 20, switchFlag: 0}, - {qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0}, - {qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1}, - {qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0}, - {qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0}, - {qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0}, - {qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0}, - {qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0}, - {qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0}, - {qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0}, - {qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0}, - {qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0}, - {qe: 0x1C01, nmps: 25, nlps: 22, switchFlag: 0}, - {qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0}, - {qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0}, - {qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0}, - {qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0}, - {qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0}, - {qe: 0x0AC1, nmps: 31, nlps: 28, switchFlag: 0}, - {qe: 0x09C1, nmps: 32, nlps: 29, switchFlag: 0}, - {qe: 0x08A1, nmps: 33, nlps: 30, switchFlag: 0}, - {qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0}, - {qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0}, - {qe: 0x02A1, nmps: 36, nlps: 33, switchFlag: 0}, - {qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0}, - {qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0}, - {qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0}, - {qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0}, - {qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0}, - {qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0}, - {qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0}, - {qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0}, - {qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0}, - {qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0}, - {qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0} - ]; - - // C.3.5 Initialisation of the decoder (INITDEC) - function ArithmeticDecoder(data, start, end) { - this.data = data; - this.bp = start; - this.dataEnd = end; - - this.chigh = data[start]; - this.clow = 0; - - this.byteIn(); - - this.chigh = ((this.chigh << 7) & 0xFFFF) | ((this.clow >> 9) & 0x7F); - this.clow = (this.clow << 7) & 0xFFFF; - this.ct -= 7; - this.a = 0x8000; - } - - ArithmeticDecoder.prototype = { - // C.3.4 Compressed data input (BYTEIN) - byteIn: function ArithmeticDecoder_byteIn() { - var data = this.data; - var bp = this.bp; - if (data[bp] === 0xFF) { - var b1 = data[bp + 1]; - if (b1 > 0x8F) { - this.clow += 0xFF00; - this.ct = 8; - } else { - bp++; - this.clow += (data[bp] << 9); - this.ct = 7; - this.bp = bp; - } - } else { - bp++; - this.clow += bp < this.dataEnd ? (data[bp] << 8) : 0xFF00; - this.ct = 8; - this.bp = bp; - } - if (this.clow > 0xFFFF) { - this.chigh += (this.clow >> 16); - this.clow &= 0xFFFF; - } - }, - // C.3.2 Decoding a decision (DECODE) - readBit: function ArithmeticDecoder_readBit(contexts, pos) { - // contexts are packed into 1 byte: - // highest 7 bits carry cx.index, lowest bit carries cx.mps - var cx_index = contexts[pos] >> 1, cx_mps = contexts[pos] & 1; - var qeTableIcx = QeTable[cx_index]; - var qeIcx = qeTableIcx.qe; - var d; - var a = this.a - qeIcx; - - if (this.chigh < qeIcx) { - // exchangeLps - if (a < qeIcx) { - a = qeIcx; - d = cx_mps; - cx_index = qeTableIcx.nmps; - } else { - a = qeIcx; - d = 1 ^ cx_mps; - if (qeTableIcx.switchFlag === 1) { - cx_mps = d; - } - cx_index = qeTableIcx.nlps; - } - } else { - this.chigh -= qeIcx; - if ((a & 0x8000) !== 0) { - this.a = a; - return cx_mps; - } - // exchangeMps - if (a < qeIcx) { - d = 1 ^ cx_mps; - if (qeTableIcx.switchFlag === 1) { - cx_mps = d; - } - cx_index = qeTableIcx.nlps; - } else { - d = cx_mps; - cx_index = qeTableIcx.nmps; - } - } - // C.3.3 renormD; - do { - if (this.ct === 0) { - this.byteIn(); - } - - a <<= 1; - this.chigh = ((this.chigh << 1) & 0xFFFF) | ((this.clow >> 15) & 1); - this.clow = (this.clow << 1) & 0xFFFF; - this.ct--; - } while ((a & 0x8000) === 0); - this.a = a; - - contexts[pos] = cx_index << 1 | cx_mps; - return d; - } - }; - - return ArithmeticDecoder; -})(); - - -var JpegImage = (function jpegImage() { - var dctZigZag = new Uint8Array([ - 0, - 1, 8, - 16, 9, 2, - 3, 10, 17, 24, - 32, 25, 18, 11, 4, - 5, 12, 19, 26, 33, 40, - 48, 41, 34, 27, 20, 13, 6, - 7, 14, 21, 28, 35, 42, 49, 56, - 57, 50, 43, 36, 29, 22, 15, - 23, 30, 37, 44, 51, 58, - 59, 52, 45, 38, 31, - 39, 46, 53, 60, - 61, 54, 47, - 55, 62, - 63 - ]); - - var dctCos1 = 4017; // cos(pi/16) - var dctSin1 = 799; // sin(pi/16) - var dctCos3 = 3406; // cos(3*pi/16) - var dctSin3 = 2276; // sin(3*pi/16) - var dctCos6 = 1567; // cos(6*pi/16) - var dctSin6 = 3784; // sin(6*pi/16) - var dctSqrt2 = 5793; // sqrt(2) - var dctSqrt1d2 = 2896; // sqrt(2) / 2 - - function constructor() { - } - - function buildHuffmanTable(codeLengths, values) { - var k = 0, code = [], i, j, length = 16; - while (length > 0 && !codeLengths[length - 1]) { - length--; - } - code.push({children: [], index: 0}); - var p = code[0], q; - for (i = 0; i < length; i++) { - for (j = 0; j < codeLengths[i]; j++) { - p = code.pop(); - p.children[p.index] = values[k]; - while (p.index > 0) { - p = code.pop(); - } - p.index++; - code.push(p); - while (code.length <= i) { - code.push(q = {children: [], index: 0}); - p.children[p.index] = q.children; - p = q; - } - k++; - } - if (i + 1 < length) { - // p here points to last code - code.push(q = {children: [], index: 0}); - p.children[p.index] = q.children; - p = q; - } - } - return code[0].children; - } - - function getBlockBufferOffset(component, row, col) { - return 64 * ((component.blocksPerLine + 1) * row + col); - } - - function decodeScan(data, offset, frame, components, resetInterval, - spectralStart, spectralEnd, successivePrev, successive) { - var precision = frame.precision; - var samplesPerLine = frame.samplesPerLine; - var scanLines = frame.scanLines; - var mcusPerLine = frame.mcusPerLine; - var progressive = frame.progressive; - var maxH = frame.maxH, maxV = frame.maxV; - - var startOffset = offset, bitsData = 0, bitsCount = 0; - - function readBit() { - if (bitsCount > 0) { - bitsCount--; - return (bitsData >> bitsCount) & 1; - } - bitsData = data[offset++]; - if (bitsData === 0xFF) { - var nextByte = data[offset++]; - if (nextByte) { - throw 'unexpected marker: ' + - ((bitsData << 8) | nextByte).toString(16); - } - // unstuff 0 - } - bitsCount = 7; - return bitsData >>> 7; - } - - function decodeHuffman(tree) { - var node = tree; - while (true) { - node = node[readBit()]; - if (typeof node === 'number') { - return node; - } - if (typeof node !== 'object') { - throw 'invalid huffman sequence'; - } - } - } - - function receive(length) { - var n = 0; - while (length > 0) { - n = (n << 1) | readBit(); - length--; - } - return n; - } - - function receiveAndExtend(length) { - if (length === 1) { - return readBit() === 1 ? 1 : -1; - } - var n = receive(length); - if (n >= 1 << (length - 1)) { - return n; - } - return n + (-1 << length) + 1; - } - - function decodeBaseline(component, offset) { - var t = decodeHuffman(component.huffmanTableDC); - var diff = t === 0 ? 0 : receiveAndExtend(t); - component.blockData[offset] = (component.pred += diff); - var k = 1; - while (k < 64) { - var rs = decodeHuffman(component.huffmanTableAC); - var s = rs & 15, r = rs >> 4; - if (s === 0) { - if (r < 15) { - break; - } - k += 16; - continue; - } - k += r; - var z = dctZigZag[k]; - component.blockData[offset + z] = receiveAndExtend(s); - k++; - } - } - - function decodeDCFirst(component, offset) { - var t = decodeHuffman(component.huffmanTableDC); - var diff = t === 0 ? 0 : (receiveAndExtend(t) << successive); - component.blockData[offset] = (component.pred += diff); - } - - function decodeDCSuccessive(component, offset) { - component.blockData[offset] |= readBit() << successive; - } - - var eobrun = 0; - function decodeACFirst(component, offset) { - if (eobrun > 0) { - eobrun--; - return; - } - var k = spectralStart, e = spectralEnd; - while (k <= e) { - var rs = decodeHuffman(component.huffmanTableAC); - var s = rs & 15, r = rs >> 4; - if (s === 0) { - if (r < 15) { - eobrun = receive(r) + (1 << r) - 1; - break; - } - k += 16; - continue; - } - k += r; - var z = dctZigZag[k]; - component.blockData[offset + z] = - receiveAndExtend(s) * (1 << successive); - k++; - } - } - - var successiveACState = 0, successiveACNextValue; - function decodeACSuccessive(component, offset) { - var k = spectralStart; - var e = spectralEnd; - var r = 0; - var s; - var rs; - while (k <= e) { - var z = dctZigZag[k]; - switch (successiveACState) { - case 0: // initial state - rs = decodeHuffman(component.huffmanTableAC); - s = rs & 15; - r = rs >> 4; - if (s === 0) { - if (r < 15) { - eobrun = receive(r) + (1 << r); - successiveACState = 4; - } else { - r = 16; - successiveACState = 1; - } - } else { - if (s !== 1) { - throw 'invalid ACn encoding'; - } - successiveACNextValue = receiveAndExtend(s); - successiveACState = r ? 2 : 3; - } - continue; - case 1: // skipping r zero items - case 2: - if (component.blockData[offset + z]) { - component.blockData[offset + z] += (readBit() << successive); - } else { - r--; - if (r === 0) { - successiveACState = successiveACState === 2 ? 3 : 0; - } - } - break; - case 3: // set value for a zero item - if (component.blockData[offset + z]) { - component.blockData[offset + z] += (readBit() << successive); - } else { - component.blockData[offset + z] = - successiveACNextValue << successive; - successiveACState = 0; - } - break; - case 4: // eob - if (component.blockData[offset + z]) { - component.blockData[offset + z] += (readBit() << successive); - } - break; - } - k++; - } - if (successiveACState === 4) { - eobrun--; - if (eobrun === 0) { - successiveACState = 0; - } - } - } - - function decodeMcu(component, decode, mcu, row, col) { - var mcuRow = (mcu / mcusPerLine) | 0; - var mcuCol = mcu % mcusPerLine; - var blockRow = mcuRow * component.v + row; - var blockCol = mcuCol * component.h + col; - var offset = getBlockBufferOffset(component, blockRow, blockCol); - decode(component, offset); - } - - function decodeBlock(component, decode, mcu) { - var blockRow = (mcu / component.blocksPerLine) | 0; - var blockCol = mcu % component.blocksPerLine; - var offset = getBlockBufferOffset(component, blockRow, blockCol); - decode(component, offset); - } - - var componentsLength = components.length; - var component, i, j, k, n; - var decodeFn; - if (progressive) { - if (spectralStart === 0) { - decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; - } else { - decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; - } - } else { - decodeFn = decodeBaseline; - } - - var mcu = 0, marker; - var mcuExpected; - if (componentsLength === 1) { - mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn; - } else { - mcuExpected = mcusPerLine * frame.mcusPerColumn; - } - if (!resetInterval) { - resetInterval = mcuExpected; - } - - var h, v; - while (mcu < mcuExpected) { - // reset interval stuff - for (i = 0; i < componentsLength; i++) { - components[i].pred = 0; - } - eobrun = 0; - - if (componentsLength === 1) { - component = components[0]; - for (n = 0; n < resetInterval; n++) { - decodeBlock(component, decodeFn, mcu); - mcu++; - } - } else { - for (n = 0; n < resetInterval; n++) { - for (i = 0; i < componentsLength; i++) { - component = components[i]; - h = component.h; - v = component.v; - for (j = 0; j < v; j++) { - for (k = 0; k < h; k++) { - decodeMcu(component, decodeFn, mcu, j, k); - } - } - } - mcu++; - } - } - - // find marker - bitsCount = 0; - marker = (data[offset] << 8) | data[offset + 1]; - if (marker <= 0xFF00) { - throw 'marker was not found'; - } - - if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx - offset += 2; - } else { - break; - } - } - - return offset - startOffset; - } - - // A port of poppler's IDCT method which in turn is taken from: - // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz, - // 'Practical Fast 1-D DCT Algorithms with 11 Multiplications', - // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989, - // 988-991. - function quantizeAndInverse(component, blockBufferOffset, p) { - var qt = component.quantizationTable, blockData = component.blockData; - var v0, v1, v2, v3, v4, v5, v6, v7; - var p0, p1, p2, p3, p4, p5, p6, p7; - var t; - - // inverse DCT on rows - for (var row = 0; row < 64; row += 8) { - // gather block data - p0 = blockData[blockBufferOffset + row]; - p1 = blockData[blockBufferOffset + row + 1]; - p2 = blockData[blockBufferOffset + row + 2]; - p3 = blockData[blockBufferOffset + row + 3]; - p4 = blockData[blockBufferOffset + row + 4]; - p5 = blockData[blockBufferOffset + row + 5]; - p6 = blockData[blockBufferOffset + row + 6]; - p7 = blockData[blockBufferOffset + row + 7]; - - // dequant p0 - p0 *= qt[row]; - - // check for all-zero AC coefficients - if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { - t = (dctSqrt2 * p0 + 512) >> 10; - p[row] = t; - p[row + 1] = t; - p[row + 2] = t; - p[row + 3] = t; - p[row + 4] = t; - p[row + 5] = t; - p[row + 6] = t; - p[row + 7] = t; - continue; - } - // dequant p1 ... p7 - p1 *= qt[row + 1]; - p2 *= qt[row + 2]; - p3 *= qt[row + 3]; - p4 *= qt[row + 4]; - p5 *= qt[row + 5]; - p6 *= qt[row + 6]; - p7 *= qt[row + 7]; - - // stage 4 - v0 = (dctSqrt2 * p0 + 128) >> 8; - v1 = (dctSqrt2 * p4 + 128) >> 8; - v2 = p2; - v3 = p6; - v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8; - v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8; - v5 = p3 << 4; - v6 = p5 << 4; - - // stage 3 - v0 = (v0 + v1 + 1) >> 1; - v1 = v0 - v1; - t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8; - v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8; - v3 = t; - v4 = (v4 + v6 + 1) >> 1; - v6 = v4 - v6; - v7 = (v7 + v5 + 1) >> 1; - v5 = v7 - v5; - - // stage 2 - v0 = (v0 + v3 + 1) >> 1; - v3 = v0 - v3; - v1 = (v1 + v2 + 1) >> 1; - v2 = v1 - v2; - t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; - v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; - v7 = t; - t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; - v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; - v6 = t; - - // stage 1 - p[row] = v0 + v7; - p[row + 7] = v0 - v7; - p[row + 1] = v1 + v6; - p[row + 6] = v1 - v6; - p[row + 2] = v2 + v5; - p[row + 5] = v2 - v5; - p[row + 3] = v3 + v4; - p[row + 4] = v3 - v4; - } - - // inverse DCT on columns - for (var col = 0; col < 8; ++col) { - p0 = p[col]; - p1 = p[col + 8]; - p2 = p[col + 16]; - p3 = p[col + 24]; - p4 = p[col + 32]; - p5 = p[col + 40]; - p6 = p[col + 48]; - p7 = p[col + 56]; - - // check for all-zero AC coefficients - if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { - t = (dctSqrt2 * p0 + 8192) >> 14; - // convert to 8 bit - t = (t < -2040) ? 0 : (t >= 2024) ? 255 : (t + 2056) >> 4; - blockData[blockBufferOffset + col] = t; - blockData[blockBufferOffset + col + 8] = t; - blockData[blockBufferOffset + col + 16] = t; - blockData[blockBufferOffset + col + 24] = t; - blockData[blockBufferOffset + col + 32] = t; - blockData[blockBufferOffset + col + 40] = t; - blockData[blockBufferOffset + col + 48] = t; - blockData[blockBufferOffset + col + 56] = t; - continue; - } - - // stage 4 - v0 = (dctSqrt2 * p0 + 2048) >> 12; - v1 = (dctSqrt2 * p4 + 2048) >> 12; - v2 = p2; - v3 = p6; - v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12; - v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12; - v5 = p3; - v6 = p5; - - // stage 3 - // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when - // converting to UInt8 range later. - v0 = ((v0 + v1 + 1) >> 1) + 4112; - v1 = v0 - v1; - t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12; - v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12; - v3 = t; - v4 = (v4 + v6 + 1) >> 1; - v6 = v4 - v6; - v7 = (v7 + v5 + 1) >> 1; - v5 = v7 - v5; - - // stage 2 - v0 = (v0 + v3 + 1) >> 1; - v3 = v0 - v3; - v1 = (v1 + v2 + 1) >> 1; - v2 = v1 - v2; - t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; - v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; - v7 = t; - t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; - v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; - v6 = t; - - // stage 1 - p0 = v0 + v7; - p7 = v0 - v7; - p1 = v1 + v6; - p6 = v1 - v6; - p2 = v2 + v5; - p5 = v2 - v5; - p3 = v3 + v4; - p4 = v3 - v4; - - // convert to 8-bit integers - p0 = (p0 < 16) ? 0 : (p0 >= 4080) ? 255 : p0 >> 4; - p1 = (p1 < 16) ? 0 : (p1 >= 4080) ? 255 : p1 >> 4; - p2 = (p2 < 16) ? 0 : (p2 >= 4080) ? 255 : p2 >> 4; - p3 = (p3 < 16) ? 0 : (p3 >= 4080) ? 255 : p3 >> 4; - p4 = (p4 < 16) ? 0 : (p4 >= 4080) ? 255 : p4 >> 4; - p5 = (p5 < 16) ? 0 : (p5 >= 4080) ? 255 : p5 >> 4; - p6 = (p6 < 16) ? 0 : (p6 >= 4080) ? 255 : p6 >> 4; - p7 = (p7 < 16) ? 0 : (p7 >= 4080) ? 255 : p7 >> 4; - - // store block data - blockData[blockBufferOffset + col] = p0; - blockData[blockBufferOffset + col + 8] = p1; - blockData[blockBufferOffset + col + 16] = p2; - blockData[blockBufferOffset + col + 24] = p3; - blockData[blockBufferOffset + col + 32] = p4; - blockData[blockBufferOffset + col + 40] = p5; - blockData[blockBufferOffset + col + 48] = p6; - blockData[blockBufferOffset + col + 56] = p7; - } - } - - function buildComponentData(frame, component) { - var blocksPerLine = component.blocksPerLine; - var blocksPerColumn = component.blocksPerColumn; - var computationBuffer = new Int16Array(64); - - for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { - for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { - var offset = getBlockBufferOffset(component, blockRow, blockCol); - quantizeAndInverse(component, offset, computationBuffer); - } - } - return component.blockData; - } - - function clamp0to255(a) { - return a <= 0 ? 0 : a >= 255 ? 255 : a; - } - - constructor.prototype = { - parse: function parse(data) { - - function readUint16() { - var value = (data[offset] << 8) | data[offset + 1]; - offset += 2; - return value; - } - - function readDataBlock() { - var length = readUint16(); - var array = data.subarray(offset, offset + length - 2); - offset += array.length; - return array; - } - - function prepareComponents(frame) { - var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH); - var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV); - for (var i = 0; i < frame.components.length; i++) { - component = frame.components[i]; - var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * - component.h / frame.maxH); - var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * - component.v / frame.maxV); - var blocksPerLineForMcu = mcusPerLine * component.h; - var blocksPerColumnForMcu = mcusPerColumn * component.v; - - var blocksBufferSize = 64 * blocksPerColumnForMcu * - (blocksPerLineForMcu + 1); - component.blockData = new Int16Array(blocksBufferSize); - component.blocksPerLine = blocksPerLine; - component.blocksPerColumn = blocksPerColumn; - } - frame.mcusPerLine = mcusPerLine; - frame.mcusPerColumn = mcusPerColumn; - } - - var offset = 0, length = data.length; - var jfif = null; - var adobe = null; - var pixels = null; - var frame, resetInterval; - var quantizationTables = []; - var huffmanTablesAC = [], huffmanTablesDC = []; - var fileMarker = readUint16(); - if (fileMarker !== 0xFFD8) { // SOI (Start of Image) - throw 'SOI not found'; - } - - fileMarker = readUint16(); - while (fileMarker !== 0xFFD9) { // EOI (End of image) - var i, j, l; - switch(fileMarker) { - case 0xFFE0: // APP0 (Application Specific) - case 0xFFE1: // APP1 - case 0xFFE2: // APP2 - case 0xFFE3: // APP3 - case 0xFFE4: // APP4 - case 0xFFE5: // APP5 - case 0xFFE6: // APP6 - case 0xFFE7: // APP7 - case 0xFFE8: // APP8 - case 0xFFE9: // APP9 - case 0xFFEA: // APP10 - case 0xFFEB: // APP11 - case 0xFFEC: // APP12 - case 0xFFED: // APP13 - case 0xFFEE: // APP14 - case 0xFFEF: // APP15 - case 0xFFFE: // COM (Comment) - var appData = readDataBlock(); - - if (fileMarker === 0xFFE0) { - if (appData[0] === 0x4A && appData[1] === 0x46 && - appData[2] === 0x49 && appData[3] === 0x46 && - appData[4] === 0) { // 'JFIF\x00' - jfif = { - version: { major: appData[5], minor: appData[6] }, - densityUnits: appData[7], - xDensity: (appData[8] << 8) | appData[9], - yDensity: (appData[10] << 8) | appData[11], - thumbWidth: appData[12], - thumbHeight: appData[13], - thumbData: appData.subarray(14, 14 + - 3 * appData[12] * appData[13]) - }; - } - } - // TODO APP1 - Exif - if (fileMarker === 0xFFEE) { - if (appData[0] === 0x41 && appData[1] === 0x64 && - appData[2] === 0x6F && appData[3] === 0x62 && - appData[4] === 0x65) { // 'Adobe' - adobe = { - version: (appData[5] << 8) | appData[6], - flags0: (appData[7] << 8) | appData[8], - flags1: (appData[9] << 8) | appData[10], - transformCode: appData[11] - }; - } - } - break; - - case 0xFFDB: // DQT (Define Quantization Tables) - var quantizationTablesLength = readUint16(); - var quantizationTablesEnd = quantizationTablesLength + offset - 2; - var z; - while (offset < quantizationTablesEnd) { - var quantizationTableSpec = data[offset++]; - var tableData = new Uint16Array(64); - if ((quantizationTableSpec >> 4) === 0) { // 8 bit values - for (j = 0; j < 64; j++) { - z = dctZigZag[j]; - tableData[z] = data[offset++]; - } - } else if ((quantizationTableSpec >> 4) === 1) { //16 bit - for (j = 0; j < 64; j++) { - z = dctZigZag[j]; - tableData[z] = readUint16(); - } - } else { - throw 'DQT: invalid table spec'; - } - quantizationTables[quantizationTableSpec & 15] = tableData; - } - break; - - case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT) - case 0xFFC1: // SOF1 (Start of Frame, Extended DCT) - case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT) - if (frame) { - throw 'Only single frame JPEGs supported'; - } - readUint16(); // skip data length - frame = {}; - frame.extended = (fileMarker === 0xFFC1); - frame.progressive = (fileMarker === 0xFFC2); - frame.precision = data[offset++]; - frame.scanLines = readUint16(); - frame.samplesPerLine = readUint16(); - frame.components = []; - frame.componentIds = {}; - var componentsCount = data[offset++], componentId; - var maxH = 0, maxV = 0; - for (i = 0; i < componentsCount; i++) { - componentId = data[offset]; - var h = data[offset + 1] >> 4; - var v = data[offset + 1] & 15; - if (maxH < h) { - maxH = h; - } - if (maxV < v) { - maxV = v; - } - var qId = data[offset + 2]; - l = frame.components.push({ - h: h, - v: v, - quantizationTable: quantizationTables[qId] - }); - frame.componentIds[componentId] = l - 1; - offset += 3; - } - frame.maxH = maxH; - frame.maxV = maxV; - prepareComponents(frame); - break; - - case 0xFFC4: // DHT (Define Huffman Tables) - var huffmanLength = readUint16(); - for (i = 2; i < huffmanLength;) { - var huffmanTableSpec = data[offset++]; - var codeLengths = new Uint8Array(16); - var codeLengthSum = 0; - for (j = 0; j < 16; j++, offset++) { - codeLengthSum += (codeLengths[j] = data[offset]); - } - var huffmanValues = new Uint8Array(codeLengthSum); - for (j = 0; j < codeLengthSum; j++, offset++) { - huffmanValues[j] = data[offset]; - } - i += 17 + codeLengthSum; - - ((huffmanTableSpec >> 4) === 0 ? - huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = - buildHuffmanTable(codeLengths, huffmanValues); - } - break; - - case 0xFFDD: // DRI (Define Restart Interval) - readUint16(); // skip data length - resetInterval = readUint16(); - break; - - case 0xFFDA: // SOS (Start of Scan) - var scanLength = readUint16(); - var selectorsCount = data[offset++]; - var components = [], component; - for (i = 0; i < selectorsCount; i++) { - var componentIndex = frame.componentIds[data[offset++]]; - component = frame.components[componentIndex]; - var tableSpec = data[offset++]; - component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; - component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; - components.push(component); - } - var spectralStart = data[offset++]; - var spectralEnd = data[offset++]; - var successiveApproximation = data[offset++]; - var processed = decodeScan(data, offset, - frame, components, resetInterval, - spectralStart, spectralEnd, - successiveApproximation >> 4, successiveApproximation & 15); - offset += processed; - break; - - case 0xFFFF: // Fill bytes - if (data[offset] !== 0xFF) { // Avoid skipping a valid marker. - offset--; - } - break; - - default: - if (data[offset - 3] === 0xFF && - data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) { - // could be incorrect encoding -- last 0xFF byte of the previous - // block was eaten by the encoder - offset -= 3; - break; - } - throw 'unknown JPEG marker ' + fileMarker.toString(16); - } - fileMarker = readUint16(); - } - - this.width = frame.samplesPerLine; - this.height = frame.scanLines; - this.jfif = jfif; - this.adobe = adobe; - this.components = []; - for (i = 0; i < frame.components.length; i++) { - component = frame.components[i]; - this.components.push({ - output: buildComponentData(frame, component), - scaleX: component.h / frame.maxH, - scaleY: component.v / frame.maxV, - blocksPerLine: component.blocksPerLine, - blocksPerColumn: component.blocksPerColumn - }); - } - this.numComponents = this.components.length; - }, - - _getLinearizedBlockData: function getLinearizedBlockData(width, height) { - var scaleX = this.width / width, scaleY = this.height / height; - - var component, componentScaleX, componentScaleY, blocksPerScanline; - var x, y, i, j, k; - var index; - var offset = 0; - var output; - var numComponents = this.components.length; - var dataLength = width * height * numComponents; - var data = new Uint8Array(dataLength); - var xScaleBlockOffset = new Uint32Array(width); - var mask3LSB = 0xfffffff8; // used to clear the 3 LSBs - - for (i = 0; i < numComponents; i++) { - component = this.components[i]; - componentScaleX = component.scaleX * scaleX; - componentScaleY = component.scaleY * scaleY; - offset = i; - output = component.output; - blocksPerScanline = (component.blocksPerLine + 1) << 3; - // precalculate the xScaleBlockOffset - for (x = 0; x < width; x++) { - j = 0 | (x * componentScaleX); - xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7); - } - // linearize the blocks of the component - for (y = 0; y < height; y++) { - j = 0 | (y * componentScaleY); - index = blocksPerScanline * (j & mask3LSB) | ((j & 7) << 3); - for (x = 0; x < width; x++) { - data[offset] = output[index + xScaleBlockOffset[x]]; - offset += numComponents; - } - } - } - - // decodeTransform contains pairs of multiplier (-256..256) and additive - var transform = this.decodeTransform; - if (transform) { - for (i = 0; i < dataLength;) { - for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) { - data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1]; - } - } - } - return data; - }, - - _isColorConversionNeeded: function isColorConversionNeeded() { - if (this.adobe && this.adobe.transformCode) { - // The adobe transform marker overrides any previous setting - return true; - } else if (this.numComponents === 3) { - return true; - } else { - return false; - } - }, - - _convertYccToRgb: function convertYccToRgb(data) { - var Y, Cb, Cr; - for (var i = 0, length = data.length; i < length; i += 3) { - Y = data[i ]; - Cb = data[i + 1]; - Cr = data[i + 2]; - data[i ] = clamp0to255(Y - 179.456 + 1.402 * Cr); - data[i + 1] = clamp0to255(Y + 135.459 - 0.344 * Cb - 0.714 * Cr); - data[i + 2] = clamp0to255(Y - 226.816 + 1.772 * Cb); - } - return data; - }, - - _convertYcckToRgb: function convertYcckToRgb(data) { - var Y, Cb, Cr, k; - var offset = 0; - for (var i = 0, length = data.length; i < length; i += 4) { - Y = data[i]; - Cb = data[i + 1]; - Cr = data[i + 2]; - k = data[i + 3]; - - var r = -122.67195406894 + - Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - - 0.154362151871126) + - Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - - 0.00477271405408747 * k + 1.53380253221734) + - Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + - 0.48357088451265) + - k * (-0.000336197177618394 * k + 0.484791561490776); - - var g = 107.268039397724 + - Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + - 0.000659397001245577 * Y + 0.000426105652938837 * k - - 0.176491792462875) + - Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + - 0.000770482631801132 * k - 0.151051492775562) + - Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + - 0.25802910206845) + - k * (-0.000318913117588328 * k - 0.213742400323665); - - var b = -20.810012546947 + - Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + - 0.0020741088115012 * Y - 0.00288260236853442 * k + - 0.814272968359295) + - Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + - 0.000560833691242812 * k - 0.195152027534049) + - Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + - 0.116935020465145) + - k * (-0.000343531996510555 * k + 0.24165260232407); - - data[offset++] = clamp0to255(r); - data[offset++] = clamp0to255(g); - data[offset++] = clamp0to255(b); - } - return data; - }, - - _convertYcckToCmyk: function convertYcckToCmyk(data) { - var Y, Cb, Cr; - for (var i = 0, length = data.length; i < length; i += 4) { - Y = data[i]; - Cb = data[i + 1]; - Cr = data[i + 2]; - data[i ] = clamp0to255(434.456 - Y - 1.402 * Cr); - data[i + 1] = clamp0to255(119.541 - Y + 0.344 * Cb + 0.714 * Cr); - data[i + 2] = clamp0to255(481.816 - Y - 1.772 * Cb); - // K in data[i + 3] is unchanged - } - return data; - }, - - _convertCmykToRgb: function convertCmykToRgb(data) { - var c, m, y, k; - var offset = 0; - var min = -255 * 255 * 255; - var scale = 1 / 255 / 255; - for (var i = 0, length = data.length; i < length; i += 4) { - c = data[i]; - m = data[i + 1]; - y = data[i + 2]; - k = data[i + 3]; - - var r = - c * (-4.387332384609988 * c + 54.48615194189176 * m + - 18.82290502165302 * y + 212.25662451639585 * k - - 72734.4411664936) + - m * (1.7149763477362134 * m - 5.6096736904047315 * y - - 17.873870861415444 * k - 1401.7366389350734) + - y * (-2.5217340131683033 * y - 21.248923337353073 * k + - 4465.541406466231) - - k * (21.86122147463605 * k + 48317.86113160301); - var g = - c * (8.841041422036149 * c + 60.118027045597366 * m + - 6.871425592049007 * y + 31.159100130055922 * k - - 20220.756542821975) + - m * (-15.310361306967817 * m + 17.575251261109482 * y + - 131.35250912493976 * k - 48691.05921601825) + - y * (4.444339102852739 * y + 9.8632861493405 * k - - 6341.191035517494) - - k * (20.737325471181034 * k + 47890.15695978492); - var b = - c * (0.8842522430003296 * c + 8.078677503112928 * m + - 30.89978309703729 * y - 0.23883238689178934 * k - - 3616.812083916688) + - m * (10.49593273432072 * m + 63.02378494754052 * y + - 50.606957656360734 * k - 28620.90484698408) + - y * (0.03296041114873217 * y + 115.60384449646641 * k - - 49363.43385999684) - - k * (22.33816807309886 * k + 45932.16563550634); - - data[offset++] = r >= 0 ? 255 : r <= min ? 0 : 255 + r * scale | 0; - data[offset++] = g >= 0 ? 255 : g <= min ? 0 : 255 + g * scale | 0; - data[offset++] = b >= 0 ? 255 : b <= min ? 0 : 255 + b * scale | 0; - } - return data; - }, - - getData: function getData(width, height, forceRGBoutput) { - if (this.numComponents > 4) { - throw 'Unsupported color mode'; - } - // type of data: Uint8Array(width * height * numComponents) - var data = this._getLinearizedBlockData(width, height); - - if (this.numComponents === 3) { - return this._convertYccToRgb(data); - } else if (this.numComponents === 4) { - if (this._isColorConversionNeeded()) { - if (forceRGBoutput) { - return this._convertYcckToRgb(data); - } else { - return this._convertYcckToCmyk(data); - } - } else if (forceRGBoutput) { - return this._convertCmykToRgb(data); - } - } - return data; - } - }; - - return constructor; -})(); - - -var JpxImage = (function JpxImageClosure() { - // Table E.1 - var SubbandsGainLog2 = { - 'LL': 0, - 'LH': 1, - 'HL': 1, - 'HH': 2 - }; - function JpxImage() { - this.failOnCorruptedImage = false; - } - JpxImage.prototype = { - parse: function JpxImage_parse(data) { - - var head = readUint16(data, 0); - // No box header, immediate start of codestream (SOC) - if (head === 0xFF4F) { - this.parseCodestream(data, 0, data.length); - return; - } - - var position = 0, length = data.length; - while (position < length) { - var headerSize = 8; - var lbox = readUint32(data, position); - var tbox = readUint32(data, position + 4); - position += headerSize; - if (lbox === 1) { - // XLBox: read UInt64 according to spec. - // JavaScript's int precision of 53 bit should be sufficient here. - lbox = readUint32(data, position) * 4294967296 + - readUint32(data, position + 4); - position += 8; - headerSize += 8; - } - if (lbox === 0) { - lbox = length - position + headerSize; - } - if (lbox < headerSize) { - throw new Error('JPX Error: Invalid box field size'); - } - var dataLength = lbox - headerSize; - var jumpDataLength = true; - switch (tbox) { - case 0x6A703268: // 'jp2h' - jumpDataLength = false; // parsing child boxes - break; - case 0x636F6C72: // 'colr' - // Colorspaces are not used, the CS from the PDF is used. - var method = data[position]; - var precedence = data[position + 1]; - var approximation = data[position + 2]; - if (method === 1) { - // enumerated colorspace - var colorspace = readUint32(data, position + 3); - switch (colorspace) { - case 16: // this indicates a sRGB colorspace - case 17: // this indicates a grayscale colorspace - case 18: // this indicates a YUV colorspace - break; - default: - warn('Unknown colorspace ' + colorspace); - break; - } - } else if (method === 2) { - info('ICC profile not supported'); - } - break; - case 0x6A703263: // 'jp2c' - this.parseCodestream(data, position, position + dataLength); - break; - case 0x6A502020: // 'jP\024\024' - if (0x0d0a870a !== readUint32(data, position)) { - warn('Invalid JP2 signature'); - } - break; - // The following header types are valid but currently not used: - case 0x6A501A1A: // 'jP\032\032' - case 0x66747970: // 'ftyp' - case 0x72726571: // 'rreq' - case 0x72657320: // 'res ' - case 0x69686472: // 'ihdr' - break; - default: - var headerType = String.fromCharCode((tbox >> 24) & 0xFF, - (tbox >> 16) & 0xFF, - (tbox >> 8) & 0xFF, - tbox & 0xFF); - warn('Unsupported header type ' + tbox + ' (' + headerType + ')'); - break; - } - if (jumpDataLength) { - position += dataLength; - } - } - }, - parseImageProperties: function JpxImage_parseImageProperties(stream) { - var newByte = stream.getByte(); - while (newByte >= 0) { - var oldByte = newByte; - newByte = stream.getByte(); - var code = (oldByte << 8) | newByte; - // Image and tile size (SIZ) - if (code === 0xFF51) { - stream.skip(4); - var Xsiz = stream.getInt32() >>> 0; // Byte 4 - var Ysiz = stream.getInt32() >>> 0; // Byte 8 - var XOsiz = stream.getInt32() >>> 0; // Byte 12 - var YOsiz = stream.getInt32() >>> 0; // Byte 16 - stream.skip(16); - var Csiz = stream.getUint16(); // Byte 36 - this.width = Xsiz - XOsiz; - this.height = Ysiz - YOsiz; - this.componentsCount = Csiz; - // Results are always returned as Uint8Arrays - this.bitsPerComponent = 8; - return; - } - } - throw new Error('JPX Error: No size marker found in JPX stream'); - }, - parseCodestream: function JpxImage_parseCodestream(data, start, end) { - var context = {}; - try { - var doNotRecover = false; - var position = start; - while (position + 1 < end) { - var code = readUint16(data, position); - position += 2; - - var length = 0, j, sqcd, spqcds, spqcdSize, scalarExpounded, tile; - switch (code) { - case 0xFF4F: // Start of codestream (SOC) - context.mainHeader = true; - break; - case 0xFFD9: // End of codestream (EOC) - break; - case 0xFF51: // Image and tile size (SIZ) - length = readUint16(data, position); - var siz = {}; - siz.Xsiz = readUint32(data, position + 4); - siz.Ysiz = readUint32(data, position + 8); - siz.XOsiz = readUint32(data, position + 12); - siz.YOsiz = readUint32(data, position + 16); - siz.XTsiz = readUint32(data, position + 20); - siz.YTsiz = readUint32(data, position + 24); - siz.XTOsiz = readUint32(data, position + 28); - siz.YTOsiz = readUint32(data, position + 32); - var componentsCount = readUint16(data, position + 36); - siz.Csiz = componentsCount; - var components = []; - j = position + 38; - for (var i = 0; i < componentsCount; i++) { - var component = { - precision: (data[j] & 0x7F) + 1, - isSigned: !!(data[j] & 0x80), - XRsiz: data[j + 1], - YRsiz: data[j + 1] - }; - calculateComponentDimensions(component, siz); - components.push(component); - } - context.SIZ = siz; - context.components = components; - calculateTileGrids(context, components); - context.QCC = []; - context.COC = []; - break; - case 0xFF5C: // Quantization default (QCD) - length = readUint16(data, position); - var qcd = {}; - j = position + 2; - sqcd = data[j++]; - switch (sqcd & 0x1F) { - case 0: - spqcdSize = 8; - scalarExpounded = true; - break; - case 1: - spqcdSize = 16; - scalarExpounded = false; - break; - case 2: - spqcdSize = 16; - scalarExpounded = true; - break; - default: - throw new Error('JPX Error: Invalid SQcd value ' + sqcd); - } - qcd.noQuantization = (spqcdSize === 8); - qcd.scalarExpounded = scalarExpounded; - qcd.guardBits = sqcd >> 5; - spqcds = []; - while (j < length + position) { - var spqcd = {}; - if (spqcdSize === 8) { - spqcd.epsilon = data[j++] >> 3; - spqcd.mu = 0; - } else { - spqcd.epsilon = data[j] >> 3; - spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1]; - j += 2; - } - spqcds.push(spqcd); - } - qcd.SPqcds = spqcds; - if (context.mainHeader) { - context.QCD = qcd; - } else { - context.currentTile.QCD = qcd; - context.currentTile.QCC = []; - } - break; - case 0xFF5D: // Quantization component (QCC) - length = readUint16(data, position); - var qcc = {}; - j = position + 2; - var cqcc; - if (context.SIZ.Csiz < 257) { - cqcc = data[j++]; - } else { - cqcc = readUint16(data, j); - j += 2; - } - sqcd = data[j++]; - switch (sqcd & 0x1F) { - case 0: - spqcdSize = 8; - scalarExpounded = true; - break; - case 1: - spqcdSize = 16; - scalarExpounded = false; - break; - case 2: - spqcdSize = 16; - scalarExpounded = true; - break; - default: - throw new Error('JPX Error: Invalid SQcd value ' + sqcd); - } - qcc.noQuantization = (spqcdSize === 8); - qcc.scalarExpounded = scalarExpounded; - qcc.guardBits = sqcd >> 5; - spqcds = []; - while (j < (length + position)) { - spqcd = {}; - if (spqcdSize === 8) { - spqcd.epsilon = data[j++] >> 3; - spqcd.mu = 0; - } else { - spqcd.epsilon = data[j] >> 3; - spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1]; - j += 2; - } - spqcds.push(spqcd); - } - qcc.SPqcds = spqcds; - if (context.mainHeader) { - context.QCC[cqcc] = qcc; - } else { - context.currentTile.QCC[cqcc] = qcc; - } - break; - case 0xFF52: // Coding style default (COD) - length = readUint16(data, position); - var cod = {}; - j = position + 2; - var scod = data[j++]; - cod.entropyCoderWithCustomPrecincts = !!(scod & 1); - cod.sopMarkerUsed = !!(scod & 2); - cod.ephMarkerUsed = !!(scod & 4); - cod.progressionOrder = data[j++]; - cod.layersCount = readUint16(data, j); - j += 2; - cod.multipleComponentTransform = data[j++]; - - cod.decompositionLevelsCount = data[j++]; - cod.xcb = (data[j++] & 0xF) + 2; - cod.ycb = (data[j++] & 0xF) + 2; - var blockStyle = data[j++]; - cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1); - cod.resetContextProbabilities = !!(blockStyle & 2); - cod.terminationOnEachCodingPass = !!(blockStyle & 4); - cod.verticalyStripe = !!(blockStyle & 8); - cod.predictableTermination = !!(blockStyle & 16); - cod.segmentationSymbolUsed = !!(blockStyle & 32); - cod.reversibleTransformation = data[j++]; - if (cod.entropyCoderWithCustomPrecincts) { - var precinctsSizes = []; - while (j < length + position) { - var precinctsSize = data[j++]; - precinctsSizes.push({ - PPx: precinctsSize & 0xF, - PPy: precinctsSize >> 4 - }); - } - cod.precinctsSizes = precinctsSizes; - } - var unsupported = []; - if (cod.selectiveArithmeticCodingBypass) { - unsupported.push('selectiveArithmeticCodingBypass'); - } - if (cod.resetContextProbabilities) { - unsupported.push('resetContextProbabilities'); - } - if (cod.terminationOnEachCodingPass) { - unsupported.push('terminationOnEachCodingPass'); - } - if (cod.verticalyStripe) { - unsupported.push('verticalyStripe'); - } - if (cod.predictableTermination) { - unsupported.push('predictableTermination'); - } - if (unsupported.length > 0) { - doNotRecover = true; - throw new Error('JPX Error: Unsupported COD options (' + - unsupported.join(', ') + ')'); - } - if (context.mainHeader) { - context.COD = cod; - } else { - context.currentTile.COD = cod; - context.currentTile.COC = []; - } - break; - case 0xFF90: // Start of tile-part (SOT) - length = readUint16(data, position); - tile = {}; - tile.index = readUint16(data, position + 2); - tile.length = readUint32(data, position + 4); - tile.dataEnd = tile.length + position - 2; - tile.partIndex = data[position + 8]; - tile.partsCount = data[position + 9]; - - context.mainHeader = false; - if (tile.partIndex === 0) { - // reset component specific settings - tile.COD = context.COD; - tile.COC = context.COC.slice(0); // clone of the global COC - tile.QCD = context.QCD; - tile.QCC = context.QCC.slice(0); // clone of the global COC - } - context.currentTile = tile; - break; - case 0xFF93: // Start of data (SOD) - tile = context.currentTile; - if (tile.partIndex === 0) { - initializeTile(context, tile.index); - buildPackets(context); - } - - // moving to the end of the data - length = tile.dataEnd - position; - parseTilePackets(context, data, position, length); - break; - case 0xFF55: // Tile-part lengths, main header (TLM) - case 0xFF57: // Packet length, main header (PLM) - case 0xFF58: // Packet length, tile-part header (PLT) - case 0xFF64: // Comment (COM) - length = readUint16(data, position); - // skipping content - break; - case 0xFF53: // Coding style component (COC) - throw new Error('JPX Error: Codestream code 0xFF53 (COC) is ' + - 'not implemented'); - default: - throw new Error('JPX Error: Unknown codestream code: ' + - code.toString(16)); - } - position += length; - } - } catch (e) { - if (doNotRecover || this.failOnCorruptedImage) { - throw e; - } else { - warn('Trying to recover from ' + e.message); - } - } - this.tiles = transformComponents(context); - this.width = context.SIZ.Xsiz - context.SIZ.XOsiz; - this.height = context.SIZ.Ysiz - context.SIZ.YOsiz; - this.componentsCount = context.SIZ.Csiz; - } - }; - function calculateComponentDimensions(component, siz) { - // Section B.2 Component mapping - component.x0 = Math.ceil(siz.XOsiz / component.XRsiz); - component.x1 = Math.ceil(siz.Xsiz / component.XRsiz); - component.y0 = Math.ceil(siz.YOsiz / component.YRsiz); - component.y1 = Math.ceil(siz.Ysiz / component.YRsiz); - component.width = component.x1 - component.x0; - component.height = component.y1 - component.y0; - } - function calculateTileGrids(context, components) { - var siz = context.SIZ; - // Section B.3 Division into tile and tile-components - var tile, tiles = []; - var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz); - var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz); - for (var q = 0; q < numYtiles; q++) { - for (var p = 0; p < numXtiles; p++) { - tile = {}; - tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz); - tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz); - tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz); - tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz); - tile.width = tile.tx1 - tile.tx0; - tile.height = tile.ty1 - tile.ty0; - tile.components = []; - tiles.push(tile); - } - } - context.tiles = tiles; - - var componentsCount = siz.Csiz; - for (var i = 0, ii = componentsCount; i < ii; i++) { - var component = components[i]; - for (var j = 0, jj = tiles.length; j < jj; j++) { - var tileComponent = {}; - tile = tiles[j]; - tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz); - tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz); - tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz); - tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz); - tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0; - tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0; - tile.components[i] = tileComponent; - } - } - } - function getBlocksDimensions(context, component, r) { - var codOrCoc = component.codingStyleParameters; - var result = {}; - if (!codOrCoc.entropyCoderWithCustomPrecincts) { - result.PPx = 15; - result.PPy = 15; - } else { - result.PPx = codOrCoc.precinctsSizes[r].PPx; - result.PPy = codOrCoc.precinctsSizes[r].PPy; - } - // calculate codeblock size as described in section B.7 - result.xcb_ = (r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : - Math.min(codOrCoc.xcb, result.PPx)); - result.ycb_ = (r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : - Math.min(codOrCoc.ycb, result.PPy)); - return result; - } - function buildPrecincts(context, resolution, dimensions) { - // Section B.6 Division resolution to precincts - var precinctWidth = 1 << dimensions.PPx; - var precinctHeight = 1 << dimensions.PPy; - // Jasper introduces codeblock groups for mapping each subband codeblocks - // to precincts. Precinct partition divides a resolution according to width - // and height parameters. The subband that belongs to the resolution level - // has a different size than the level, unless it is the zero resolution. - - // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding: - // The precinct partitioning for a particular subband is derived from a - // partitioning of its parent LL band (i.e., the LL band at the next higher - // resolution level)... The LL band associated with each resolution level is - // divided into precincts... Each of the resulting precinct regions is then - // mapped into its child subbands (if any) at the next lower resolution - // level. This is accomplished by using the coordinate transformation - // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the - // coordinates of a point in the LL band and child subband, respectively. - var isZeroRes = resolution.resLevel === 0; - var precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1)); - var precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1)); - var numprecinctswide = (resolution.trx1 > resolution.trx0 ? - Math.ceil(resolution.trx1 / precinctWidth) - - Math.floor(resolution.trx0 / precinctWidth) : 0); - var numprecinctshigh = (resolution.try1 > resolution.try0 ? - Math.ceil(resolution.try1 / precinctHeight) - - Math.floor(resolution.try0 / precinctHeight) : 0); - var numprecincts = numprecinctswide * numprecinctshigh; - - resolution.precinctParameters = { - precinctWidth: precinctWidth, - precinctHeight: precinctHeight, - numprecinctswide: numprecinctswide, - numprecinctshigh: numprecinctshigh, - numprecincts: numprecincts, - precinctWidthInSubband: precinctWidthInSubband, - precinctHeightInSubband: precinctHeightInSubband - }; - } - function buildCodeblocks(context, subband, dimensions) { - // Section B.7 Division sub-band into code-blocks - var xcb_ = dimensions.xcb_; - var ycb_ = dimensions.ycb_; - var codeblockWidth = 1 << xcb_; - var codeblockHeight = 1 << ycb_; - var cbx0 = subband.tbx0 >> xcb_; - var cby0 = subband.tby0 >> ycb_; - var cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_; - var cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_; - var precinctParameters = subband.resolution.precinctParameters; - var codeblocks = []; - var precincts = []; - var i, j, codeblock, precinctNumber; - for (j = cby0; j < cby1; j++) { - for (i = cbx0; i < cbx1; i++) { - codeblock = { - cbx: i, - cby: j, - tbx0: codeblockWidth * i, - tby0: codeblockHeight * j, - tbx1: codeblockWidth * (i + 1), - tby1: codeblockHeight * (j + 1) - }; - - codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0); - codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0); - codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1); - codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1); - - // Calculate precinct number for this codeblock, codeblock position - // should be relative to its subband, use actual dimension and position - // See comment about codeblock group width and height - var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / - precinctParameters.precinctWidthInSubband); - var pj = Math.floor((codeblock.tby0_ - subband.tby0) / - precinctParameters.precinctHeightInSubband); - precinctNumber = pi + (pj * precinctParameters.numprecinctswide); - - codeblock.precinctNumber = precinctNumber; - codeblock.subbandType = subband.type; - codeblock.Lblock = 3; - - if (codeblock.tbx1_ <= codeblock.tbx0_ || - codeblock.tby1_ <= codeblock.tby0_) { - continue; - } - codeblocks.push(codeblock); - // building precinct for the sub-band - var precinct = precincts[precinctNumber]; - if (precinct !== undefined) { - if (i < precinct.cbxMin) { - precinct.cbxMin = i; - } else if (i > precinct.cbxMax) { - precinct.cbxMax = i; - } - if (j < precinct.cbyMin) { - precinct.cbxMin = j; - } else if (j > precinct.cbyMax) { - precinct.cbyMax = j; - } - } else { - precincts[precinctNumber] = precinct = { - cbxMin: i, - cbyMin: j, - cbxMax: i, - cbyMax: j - }; - } - codeblock.precinct = precinct; - } - } - subband.codeblockParameters = { - codeblockWidth: xcb_, - codeblockHeight: ycb_, - numcodeblockwide: cbx1 - cbx0 + 1, - numcodeblockhigh: cby1 - cby0 + 1 - }; - subband.codeblocks = codeblocks; - subband.precincts = precincts; - } - function createPacket(resolution, precinctNumber, layerNumber) { - var precinctCodeblocks = []; - // Section B.10.8 Order of info in packet - var subbands = resolution.subbands; - // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence - for (var i = 0, ii = subbands.length; i < ii; i++) { - var subband = subbands[i]; - var codeblocks = subband.codeblocks; - for (var j = 0, jj = codeblocks.length; j < jj; j++) { - var codeblock = codeblocks[j]; - if (codeblock.precinctNumber !== precinctNumber) { - continue; - } - precinctCodeblocks.push(codeblock); - } - } - return { - layerNumber: layerNumber, - codeblocks: precinctCodeblocks - }; - } - function LayerResolutionComponentPositionIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var maxDecompositionLevelsCount = 0; - for (var q = 0; q < componentsCount; q++) { - maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, - tile.components[q].codingStyleParameters.decompositionLevelsCount); - } - - var l = 0, r = 0, i = 0, k = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.1 Layer-resolution-component-position - for (; l < layersCount; l++) { - for (; r <= maxDecompositionLevelsCount; r++) { - for (; i < componentsCount; i++) { - var component = tile.components[i]; - if (r > component.codingStyleParameters.decompositionLevelsCount) { - continue; - } - - var resolution = component.resolutions[r]; - var numprecincts = resolution.precinctParameters.numprecincts; - for (; k < numprecincts;) { - var packet = createPacket(resolution, k, l); - k++; - return packet; - } - k = 0; - } - i = 0; - } - r = 0; - } - throw new Error('JPX Error: Out of packets'); - }; - } - function ResolutionLayerComponentPositionIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var maxDecompositionLevelsCount = 0; - for (var q = 0; q < componentsCount; q++) { - maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, - tile.components[q].codingStyleParameters.decompositionLevelsCount); - } - - var r = 0, l = 0, i = 0, k = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.2 Resolution-layer-component-position - for (; r <= maxDecompositionLevelsCount; r++) { - for (; l < layersCount; l++) { - for (; i < componentsCount; i++) { - var component = tile.components[i]; - if (r > component.codingStyleParameters.decompositionLevelsCount) { - continue; - } - - var resolution = component.resolutions[r]; - var numprecincts = resolution.precinctParameters.numprecincts; - for (; k < numprecincts;) { - var packet = createPacket(resolution, k, l); - k++; - return packet; - } - k = 0; - } - i = 0; - } - l = 0; - } - throw new Error('JPX Error: Out of packets'); - }; - } - function ResolutionPositionComponentLayerIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var l, r, c, p; - var maxDecompositionLevelsCount = 0; - for (c = 0; c < componentsCount; c++) { - var component = tile.components[c]; - maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, - component.codingStyleParameters.decompositionLevelsCount); - } - var maxNumPrecinctsInLevel = new Int32Array( - maxDecompositionLevelsCount + 1); - for (r = 0; r <= maxDecompositionLevelsCount; ++r) { - var maxNumPrecincts = 0; - for (c = 0; c < componentsCount; ++c) { - var resolutions = tile.components[c].resolutions; - if (r < resolutions.length) { - maxNumPrecincts = Math.max(maxNumPrecincts, - resolutions[r].precinctParameters.numprecincts); - } - } - maxNumPrecinctsInLevel[r] = maxNumPrecincts; - } - l = 0; - r = 0; - c = 0; - p = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.3 Resolution-position-component-layer - for (; r <= maxDecompositionLevelsCount; r++) { - for (; p < maxNumPrecinctsInLevel[r]; p++) { - for (; c < componentsCount; c++) { - var component = tile.components[c]; - if (r > component.codingStyleParameters.decompositionLevelsCount) { - continue; - } - var resolution = component.resolutions[r]; - var numprecincts = resolution.precinctParameters.numprecincts; - if (p >= numprecincts) { - continue; - } - for (; l < layersCount;) { - var packet = createPacket(resolution, p, l); - l++; - return packet; - } - l = 0; - } - c = 0; - } - p = 0; - } - throw new Error('JPX Error: Out of packets'); - }; - } - function PositionComponentResolutionLayerIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var precinctsSizes = getPrecinctSizesInImageScale(tile); - var precinctsIterationSizes = precinctsSizes; - var l = 0, r = 0, c = 0, px = 0, py = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.4 Position-component-resolution-layer - for (; py < precinctsIterationSizes.maxNumHigh; py++) { - for (; px < precinctsIterationSizes.maxNumWide; px++) { - for (; c < componentsCount; c++) { - var component = tile.components[c]; - var decompositionLevelsCount = - component.codingStyleParameters.decompositionLevelsCount; - for (; r <= decompositionLevelsCount; r++) { - var resolution = component.resolutions[r]; - var sizeInImageScale = - precinctsSizes.components[c].resolutions[r]; - var k = getPrecinctIndexIfExist( - px, - py, - sizeInImageScale, - precinctsIterationSizes, - resolution); - if (k === null) { - continue; - } - for (; l < layersCount;) { - var packet = createPacket(resolution, k, l); - l++; - return packet; - } - l = 0; - } - r = 0; - } - c = 0; - } - px = 0; - } - throw new Error('JPX Error: Out of packets'); - }; - } - function ComponentPositionResolutionLayerIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var precinctsSizes = getPrecinctSizesInImageScale(tile); - var l = 0, r = 0, c = 0, px = 0, py = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.5 Component-position-resolution-layer - for (; c < componentsCount; ++c) { - var component = tile.components[c]; - var precinctsIterationSizes = precinctsSizes.components[c]; - var decompositionLevelsCount = - component.codingStyleParameters.decompositionLevelsCount; - for (; py < precinctsIterationSizes.maxNumHigh; py++) { - for (; px < precinctsIterationSizes.maxNumWide; px++) { - for (; r <= decompositionLevelsCount; r++) { - var resolution = component.resolutions[r]; - var sizeInImageScale = precinctsIterationSizes.resolutions[r]; - var k = getPrecinctIndexIfExist( - px, - py, - sizeInImageScale, - precinctsIterationSizes, - resolution); - if (k === null) { - continue; - } - for (; l < layersCount;) { - var packet = createPacket(resolution, k, l); - l++; - return packet; - } - l = 0; - } - r = 0; - } - px = 0; - } - py = 0; - } - throw new Error('JPX Error: Out of packets'); - }; - } - function getPrecinctIndexIfExist( - pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) { - var posX = pxIndex * precinctIterationSizes.minWidth; - var posY = pyIndex * precinctIterationSizes.minHeight; - if (posX % sizeInImageScale.width !== 0 || - posY % sizeInImageScale.height !== 0) { - return null; - } - var startPrecinctRowIndex = - (posY / sizeInImageScale.width) * - resolution.precinctParameters.numprecinctswide; - return (posX / sizeInImageScale.height) + startPrecinctRowIndex; - } - function getPrecinctSizesInImageScale(tile) { - var componentsCount = tile.components.length; - var minWidth = Number.MAX_VALUE; - var minHeight = Number.MAX_VALUE; - var maxNumWide = 0; - var maxNumHigh = 0; - var sizePerComponent = new Array(componentsCount); - for (var c = 0; c < componentsCount; c++) { - var component = tile.components[c]; - var decompositionLevelsCount = - component.codingStyleParameters.decompositionLevelsCount; - var sizePerResolution = new Array(decompositionLevelsCount + 1); - var minWidthCurrentComponent = Number.MAX_VALUE; - var minHeightCurrentComponent = Number.MAX_VALUE; - var maxNumWideCurrentComponent = 0; - var maxNumHighCurrentComponent = 0; - var scale = 1; - for (var r = decompositionLevelsCount; r >= 0; --r) { - var resolution = component.resolutions[r]; - var widthCurrentResolution = - scale * resolution.precinctParameters.precinctWidth; - var heightCurrentResolution = - scale * resolution.precinctParameters.precinctHeight; - minWidthCurrentComponent = Math.min( - minWidthCurrentComponent, - widthCurrentResolution); - minHeightCurrentComponent = Math.min( - minHeightCurrentComponent, - heightCurrentResolution); - maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, - resolution.precinctParameters.numprecinctswide); - maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, - resolution.precinctParameters.numprecinctshigh); - sizePerResolution[r] = { - width: widthCurrentResolution, - height: heightCurrentResolution - }; - scale <<= 1; - } - minWidth = Math.min(minWidth, minWidthCurrentComponent); - minHeight = Math.min(minHeight, minHeightCurrentComponent); - maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent); - maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent); - sizePerComponent[c] = { - resolutions: sizePerResolution, - minWidth: minWidthCurrentComponent, - minHeight: minHeightCurrentComponent, - maxNumWide: maxNumWideCurrentComponent, - maxNumHigh: maxNumHighCurrentComponent - }; - } - return { - components: sizePerComponent, - minWidth: minWidth, - minHeight: minHeight, - maxNumWide: maxNumWide, - maxNumHigh: maxNumHigh - }; - } - function buildPackets(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var componentsCount = siz.Csiz; - // Creating resolutions and sub-bands for each component - for (var c = 0; c < componentsCount; c++) { - var component = tile.components[c]; - var decompositionLevelsCount = - component.codingStyleParameters.decompositionLevelsCount; - // Section B.5 Resolution levels and sub-bands - var resolutions = []; - var subbands = []; - for (var r = 0; r <= decompositionLevelsCount; r++) { - var blocksDimensions = getBlocksDimensions(context, component, r); - var resolution = {}; - var scale = 1 << (decompositionLevelsCount - r); - resolution.trx0 = Math.ceil(component.tcx0 / scale); - resolution.try0 = Math.ceil(component.tcy0 / scale); - resolution.trx1 = Math.ceil(component.tcx1 / scale); - resolution.try1 = Math.ceil(component.tcy1 / scale); - resolution.resLevel = r; - buildPrecincts(context, resolution, blocksDimensions); - resolutions.push(resolution); - - var subband; - if (r === 0) { - // one sub-band (LL) with last decomposition - subband = {}; - subband.type = 'LL'; - subband.tbx0 = Math.ceil(component.tcx0 / scale); - subband.tby0 = Math.ceil(component.tcy0 / scale); - subband.tbx1 = Math.ceil(component.tcx1 / scale); - subband.tby1 = Math.ceil(component.tcy1 / scale); - subband.resolution = resolution; - buildCodeblocks(context, subband, blocksDimensions); - subbands.push(subband); - resolution.subbands = [subband]; - } else { - var bscale = 1 << (decompositionLevelsCount - r + 1); - var resolutionSubbands = []; - // three sub-bands (HL, LH and HH) with rest of decompositions - subband = {}; - subband.type = 'HL'; - subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); - subband.tby0 = Math.ceil(component.tcy0 / bscale); - subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); - subband.tby1 = Math.ceil(component.tcy1 / bscale); - subband.resolution = resolution; - buildCodeblocks(context, subband, blocksDimensions); - subbands.push(subband); - resolutionSubbands.push(subband); - - subband = {}; - subband.type = 'LH'; - subband.tbx0 = Math.ceil(component.tcx0 / bscale); - subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); - subband.tbx1 = Math.ceil(component.tcx1 / bscale); - subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); - subband.resolution = resolution; - buildCodeblocks(context, subband, blocksDimensions); - subbands.push(subband); - resolutionSubbands.push(subband); - - subband = {}; - subband.type = 'HH'; - subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); - subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); - subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); - subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); - subband.resolution = resolution; - buildCodeblocks(context, subband, blocksDimensions); - subbands.push(subband); - resolutionSubbands.push(subband); - - resolution.subbands = resolutionSubbands; - } - } - component.resolutions = resolutions; - component.subbands = subbands; - } - // Generate the packets sequence - var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder; - switch (progressionOrder) { - case 0: - tile.packetsIterator = - new LayerResolutionComponentPositionIterator(context); - break; - case 1: - tile.packetsIterator = - new ResolutionLayerComponentPositionIterator(context); - break; - case 2: - tile.packetsIterator = - new ResolutionPositionComponentLayerIterator(context); - break; - case 3: - tile.packetsIterator = - new PositionComponentResolutionLayerIterator(context); - break; - case 4: - tile.packetsIterator = - new ComponentPositionResolutionLayerIterator(context); - break; - default: - throw new Error('JPX Error: Unsupported progression order ' + - progressionOrder); - } - } - function parseTilePackets(context, data, offset, dataLength) { - var position = 0; - var buffer, bufferSize = 0, skipNextBit = false; - function readBits(count) { - while (bufferSize < count) { - var b = data[offset + position]; - position++; - if (skipNextBit) { - buffer = (buffer << 7) | b; - bufferSize += 7; - skipNextBit = false; - } else { - buffer = (buffer << 8) | b; - bufferSize += 8; - } - if (b === 0xFF) { - skipNextBit = true; - } - } - bufferSize -= count; - return (buffer >>> bufferSize) & ((1 << count) - 1); - } - function skipMarkerIfEqual(value) { - if (data[offset + position - 1] === 0xFF && - data[offset + position] === value) { - skipBytes(1); - return true; - } else if (data[offset + position] === 0xFF && - data[offset + position + 1] === value) { - skipBytes(2); - return true; - } - return false; - } - function skipBytes(count) { - position += count; - } - function alignToByte() { - bufferSize = 0; - if (skipNextBit) { - position++; - skipNextBit = false; - } - } - function readCodingpasses() { - if (readBits(1) === 0) { - return 1; - } - if (readBits(1) === 0) { - return 2; - } - var value = readBits(2); - if (value < 3) { - return value + 3; - } - value = readBits(5); - if (value < 31) { - return value + 6; - } - value = readBits(7); - return value + 37; - } - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var sopMarkerUsed = context.COD.sopMarkerUsed; - var ephMarkerUsed = context.COD.ephMarkerUsed; - var packetsIterator = tile.packetsIterator; - while (position < dataLength) { - alignToByte(); - if (sopMarkerUsed && skipMarkerIfEqual(0x91)) { - // Skip also marker segment length and packet sequence ID - skipBytes(4); - } - var packet = packetsIterator.nextPacket(); - if (!readBits(1)) { - continue; - } - var layerNumber = packet.layerNumber; - var queue = [], codeblock; - for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) { - codeblock = packet.codeblocks[i]; - var precinct = codeblock.precinct; - var codeblockColumn = codeblock.cbx - precinct.cbxMin; - var codeblockRow = codeblock.cby - precinct.cbyMin; - var codeblockIncluded = false; - var firstTimeInclusion = false; - var valueReady; - if (codeblock['included'] !== undefined) { - codeblockIncluded = !!readBits(1); - } else { - // reading inclusion tree - precinct = codeblock.precinct; - var inclusionTree, zeroBitPlanesTree; - if (precinct['inclusionTree'] !== undefined) { - inclusionTree = precinct.inclusionTree; - } else { - // building inclusion and zero bit-planes trees - var width = precinct.cbxMax - precinct.cbxMin + 1; - var height = precinct.cbyMax - precinct.cbyMin + 1; - inclusionTree = new InclusionTree(width, height, layerNumber); - zeroBitPlanesTree = new TagTree(width, height); - precinct.inclusionTree = inclusionTree; - precinct.zeroBitPlanesTree = zeroBitPlanesTree; - } - - if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) { - while (true) { - if (readBits(1)) { - valueReady = !inclusionTree.nextLevel(); - if (valueReady) { - codeblock.included = true; - codeblockIncluded = firstTimeInclusion = true; - break; - } - } else { - inclusionTree.incrementValue(layerNumber); - break; - } - } - } - } - if (!codeblockIncluded) { - continue; - } - if (firstTimeInclusion) { - zeroBitPlanesTree = precinct.zeroBitPlanesTree; - zeroBitPlanesTree.reset(codeblockColumn, codeblockRow); - while (true) { - if (readBits(1)) { - valueReady = !zeroBitPlanesTree.nextLevel(); - if (valueReady) { - break; - } - } else { - zeroBitPlanesTree.incrementValue(); - } - } - codeblock.zeroBitPlanes = zeroBitPlanesTree.value; - } - var codingpasses = readCodingpasses(); - while (readBits(1)) { - codeblock.Lblock++; - } - var codingpassesLog2 = log2(codingpasses); - // rounding down log2 - var bits = ((codingpasses < (1 << codingpassesLog2)) ? - codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock; - var codedDataLength = readBits(bits); - queue.push({ - codeblock: codeblock, - codingpasses: codingpasses, - dataLength: codedDataLength - }); - } - alignToByte(); - if (ephMarkerUsed) { - skipMarkerIfEqual(0x92); - } - while (queue.length > 0) { - var packetItem = queue.shift(); - codeblock = packetItem.codeblock; - if (codeblock['data'] === undefined) { - codeblock.data = []; - } - codeblock.data.push({ - data: data, - start: offset + position, - end: offset + position + packetItem.dataLength, - codingpasses: packetItem.codingpasses - }); - position += packetItem.dataLength; - } - } - return position; - } - function copyCoefficients(coefficients, levelWidth, levelHeight, subband, - delta, mb, reversible, segmentationSymbolUsed) { - var x0 = subband.tbx0; - var y0 = subband.tby0; - var width = subband.tbx1 - subband.tbx0; - var codeblocks = subband.codeblocks; - var right = subband.type.charAt(0) === 'H' ? 1 : 0; - var bottom = subband.type.charAt(1) === 'H' ? levelWidth : 0; - - for (var i = 0, ii = codeblocks.length; i < ii; ++i) { - var codeblock = codeblocks[i]; - var blockWidth = codeblock.tbx1_ - codeblock.tbx0_; - var blockHeight = codeblock.tby1_ - codeblock.tby0_; - if (blockWidth === 0 || blockHeight === 0) { - continue; - } - if (codeblock['data'] === undefined) { - continue; - } - - var bitModel, currentCodingpassType; - bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, - codeblock.zeroBitPlanes, mb); - currentCodingpassType = 2; // first bit plane starts from cleanup - - // collect data - var data = codeblock.data, totalLength = 0, codingpasses = 0; - var j, jj, dataItem; - for (j = 0, jj = data.length; j < jj; j++) { - dataItem = data[j]; - totalLength += dataItem.end - dataItem.start; - codingpasses += dataItem.codingpasses; - } - var encodedData = new Uint8Array(totalLength); - var position = 0; - for (j = 0, jj = data.length; j < jj; j++) { - dataItem = data[j]; - var chunk = dataItem.data.subarray(dataItem.start, dataItem.end); - encodedData.set(chunk, position); - position += chunk.length; - } - // decoding the item - var decoder = new ArithmeticDecoder(encodedData, 0, totalLength); - bitModel.setDecoder(decoder); - - for (j = 0; j < codingpasses; j++) { - switch (currentCodingpassType) { - case 0: - bitModel.runSignificancePropogationPass(); - break; - case 1: - bitModel.runMagnitudeRefinementPass(); - break; - case 2: - bitModel.runCleanupPass(); - if (segmentationSymbolUsed) { - bitModel.checkSegmentationSymbol(); - } - break; - } - currentCodingpassType = (currentCodingpassType + 1) % 3; - } - - var offset = (codeblock.tbx0_ - x0) + (codeblock.tby0_ - y0) * width; - var sign = bitModel.coefficentsSign; - var magnitude = bitModel.coefficentsMagnitude; - var bitsDecoded = bitModel.bitsDecoded; - var magnitudeCorrection = reversible ? 0 : 0.5; - var k, n, nb; - position = 0; - // Do the interleaving of Section F.3.3 here, so we do not need - // to copy later. LL level is not interleaved, just copied. - var interleave = (subband.type !== 'LL'); - for (j = 0; j < blockHeight; j++) { - var row = (offset / width) | 0; // row in the non-interleaved subband - var levelOffset = 2 * row * (levelWidth - width) + right + bottom; - for (k = 0; k < blockWidth; k++) { - n = magnitude[position]; - if (n !== 0) { - n = (n + magnitudeCorrection) * delta; - if (sign[position] !== 0) { - n = -n; - } - nb = bitsDecoded[position]; - var pos = interleave ? (levelOffset + (offset << 1)) : offset; - if (reversible && (nb >= mb)) { - coefficients[pos] = n; - } else { - coefficients[pos] = n * (1 << (mb - nb)); - } - } - offset++; - position++; - } - offset += width - blockWidth; - } - } - } - function transformTile(context, tile, c) { - var component = tile.components[c]; - var codingStyleParameters = component.codingStyleParameters; - var quantizationParameters = component.quantizationParameters; - var decompositionLevelsCount = - codingStyleParameters.decompositionLevelsCount; - var spqcds = quantizationParameters.SPqcds; - var scalarExpounded = quantizationParameters.scalarExpounded; - var guardBits = quantizationParameters.guardBits; - var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed; - var precision = context.components[c].precision; - - var reversible = codingStyleParameters.reversibleTransformation; - var transform = (reversible ? new ReversibleTransform() : - new IrreversibleTransform()); - - var subbandCoefficients = []; - var b = 0; - for (var i = 0; i <= decompositionLevelsCount; i++) { - var resolution = component.resolutions[i]; - - var width = resolution.trx1 - resolution.trx0; - var height = resolution.try1 - resolution.try0; - // Allocate space for the whole sublevel. - var coefficients = new Float32Array(width * height); - - for (var j = 0, jj = resolution.subbands.length; j < jj; j++) { - var mu, epsilon; - if (!scalarExpounded) { - // formula E-5 - mu = spqcds[0].mu; - epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0); - } else { - mu = spqcds[b].mu; - epsilon = spqcds[b].epsilon; - b++; - } - - var subband = resolution.subbands[j]; - var gainLog2 = SubbandsGainLog2[subband.type]; - - // calulate quantization coefficient (Section E.1.1.1) - var delta = (reversible ? 1 : - Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048)); - var mb = (guardBits + epsilon - 1); - - // In the first resolution level, copyCoefficients will fill the - // whole array with coefficients. In the succeding passes, - // copyCoefficients will consecutively fill in the values that belong - // to the interleaved positions of the HL, LH, and HH coefficients. - // The LL coefficients will then be interleaved in Transform.iterate(). - copyCoefficients(coefficients, width, height, subband, delta, mb, - reversible, segmentationSymbolUsed); - } - subbandCoefficients.push({ - width: width, - height: height, - items: coefficients - }); - } - - var result = transform.calculate(subbandCoefficients, - component.tcx0, component.tcy0); - return { - left: component.tcx0, - top: component.tcy0, - width: result.width, - height: result.height, - items: result.items - }; - } - function transformComponents(context) { - var siz = context.SIZ; - var components = context.components; - var componentsCount = siz.Csiz; - var resultImages = []; - for (var i = 0, ii = context.tiles.length; i < ii; i++) { - var tile = context.tiles[i]; - var transformedTiles = []; - var c; - for (c = 0; c < componentsCount; c++) { - transformedTiles[c] = transformTile(context, tile, c); - } - var tile0 = transformedTiles[0]; - var out = new Uint8Array(tile0.items.length * componentsCount); - var result = { - left: tile0.left, - top: tile0.top, - width: tile0.width, - height: tile0.height, - items: out - }; - - // Section G.2.2 Inverse multi component transform - var shift, offset, max, min, maxK; - var pos = 0, j, jj, y0, y1, y2, r, g, b, k, val; - if (tile.codingStyleDefaultParameters.multipleComponentTransform) { - var fourComponents = componentsCount === 4; - var y0items = transformedTiles[0].items; - var y1items = transformedTiles[1].items; - var y2items = transformedTiles[2].items; - var y3items = fourComponents ? transformedTiles[3].items : null; - - // HACK: The multiple component transform formulas below assume that - // all components have the same precision. With this in mind, we - // compute shift and offset only once. - shift = components[0].precision - 8; - offset = (128 << shift) + 0.5; - max = 255 * (1 << shift); - maxK = max * 0.5; - min = -maxK; - - var component0 = tile.components[0]; - var alpha01 = componentsCount - 3; - jj = y0items.length; - if (!component0.codingStyleParameters.reversibleTransformation) { - // inverse irreversible multiple component transform - for (j = 0; j < jj; j++, pos += alpha01) { - y0 = y0items[j] + offset; - y1 = y1items[j]; - y2 = y2items[j]; - r = y0 + 1.402 * y2; - g = y0 - 0.34413 * y1 - 0.71414 * y2; - b = y0 + 1.772 * y1; - out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; - out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; - out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; - } - } else { - // inverse reversible multiple component transform - for (j = 0; j < jj; j++, pos += alpha01) { - y0 = y0items[j] + offset; - y1 = y1items[j]; - y2 = y2items[j]; - g = y0 - ((y2 + y1) >> 2); - r = g + y2; - b = g + y1; - out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; - out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; - out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; - } - } - if (fourComponents) { - for (j = 0, pos = 3; j < jj; j++, pos += 4) { - k = y3items[j]; - out[pos] = k <= min ? 0 : k >= maxK ? 255 : (k + offset) >> shift; - } - } - } else { // no multi-component transform - for (c = 0; c < componentsCount; c++) { - var items = transformedTiles[c].items; - shift = components[c].precision - 8; - offset = (128 << shift) + 0.5; - max = (127.5 * (1 << shift)); - min = -max; - for (pos = c, j = 0, jj = items.length; j < jj; j++) { - val = items[j]; - out[pos] = val <= min ? 0 : - val >= max ? 255 : (val + offset) >> shift; - pos += componentsCount; - } - } - } - resultImages.push(result); - } - return resultImages; - } - function initializeTile(context, tileIndex) { - var siz = context.SIZ; - var componentsCount = siz.Csiz; - var tile = context.tiles[tileIndex]; - for (var c = 0; c < componentsCount; c++) { - var component = tile.components[c]; - var qcdOrQcc = (context.currentTile.QCC[c] !== undefined ? - context.currentTile.QCC[c] : context.currentTile.QCD); - component.quantizationParameters = qcdOrQcc; - var codOrCoc = (context.currentTile.COC[c] !== undefined ? - context.currentTile.COC[c] : context.currentTile.COD); - component.codingStyleParameters = codOrCoc; - } - tile.codingStyleDefaultParameters = context.currentTile.COD; - } - - // Section B.10.2 Tag trees - var TagTree = (function TagTreeClosure() { - function TagTree(width, height) { - var levelsLength = log2(Math.max(width, height)) + 1; - this.levels = []; - for (var i = 0; i < levelsLength; i++) { - var level = { - width: width, - height: height, - items: [] - }; - this.levels.push(level); - width = Math.ceil(width / 2); - height = Math.ceil(height / 2); - } - } - TagTree.prototype = { - reset: function TagTree_reset(i, j) { - var currentLevel = 0, value = 0, level; - while (currentLevel < this.levels.length) { - level = this.levels[currentLevel]; - var index = i + j * level.width; - if (level.items[index] !== undefined) { - value = level.items[index]; - break; - } - level.index = index; - i >>= 1; - j >>= 1; - currentLevel++; - } - currentLevel--; - level = this.levels[currentLevel]; - level.items[level.index] = value; - this.currentLevel = currentLevel; - delete this.value; - }, - incrementValue: function TagTree_incrementValue() { - var level = this.levels[this.currentLevel]; - level.items[level.index]++; - }, - nextLevel: function TagTree_nextLevel() { - var currentLevel = this.currentLevel; - var level = this.levels[currentLevel]; - var value = level.items[level.index]; - currentLevel--; - if (currentLevel < 0) { - this.value = value; - return false; - } - - this.currentLevel = currentLevel; - level = this.levels[currentLevel]; - level.items[level.index] = value; - return true; - } - }; - return TagTree; - })(); - - var InclusionTree = (function InclusionTreeClosure() { - function InclusionTree(width, height, defaultValue) { - var levelsLength = log2(Math.max(width, height)) + 1; - this.levels = []; - for (var i = 0; i < levelsLength; i++) { - var items = new Uint8Array(width * height); - for (var j = 0, jj = items.length; j < jj; j++) { - items[j] = defaultValue; - } - - var level = { - width: width, - height: height, - items: items - }; - this.levels.push(level); - - width = Math.ceil(width / 2); - height = Math.ceil(height / 2); - } - } - InclusionTree.prototype = { - reset: function InclusionTree_reset(i, j, stopValue) { - var currentLevel = 0; - while (currentLevel < this.levels.length) { - var level = this.levels[currentLevel]; - var index = i + j * level.width; - level.index = index; - var value = level.items[index]; - - if (value === 0xFF) { - break; - } - - if (value > stopValue) { - this.currentLevel = currentLevel; - // already know about this one, propagating the value to top levels - this.propagateValues(); - return false; - } - - i >>= 1; - j >>= 1; - currentLevel++; - } - this.currentLevel = currentLevel - 1; - return true; - }, - incrementValue: function InclusionTree_incrementValue(stopValue) { - var level = this.levels[this.currentLevel]; - level.items[level.index] = stopValue + 1; - this.propagateValues(); - }, - propagateValues: function InclusionTree_propagateValues() { - var levelIndex = this.currentLevel; - var level = this.levels[levelIndex]; - var currentValue = level.items[level.index]; - while (--levelIndex >= 0) { - level = this.levels[levelIndex]; - level.items[level.index] = currentValue; - } - }, - nextLevel: function InclusionTree_nextLevel() { - var currentLevel = this.currentLevel; - var level = this.levels[currentLevel]; - var value = level.items[level.index]; - level.items[level.index] = 0xFF; - currentLevel--; - if (currentLevel < 0) { - return false; - } - - this.currentLevel = currentLevel; - level = this.levels[currentLevel]; - level.items[level.index] = value; - return true; - } - }; - return InclusionTree; - })(); - - // Section D. Coefficient bit modeling - var BitModel = (function BitModelClosure() { - var UNIFORM_CONTEXT = 17; - var RUNLENGTH_CONTEXT = 18; - // Table D-1 - // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4), - // vv - sum of Vi (0..2), and hh - sum of Hi (0..2) - var LLAndLHContextsLabel = new Uint8Array([ - 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, - 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, - 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8 - ]); - var HLContextLabel = new Uint8Array([ - 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, - 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, - 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8 - ]); - var HHContextLabel = new Uint8Array([ - 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, - 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, - 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8 - ]); - - function BitModel(width, height, subband, zeroBitPlanes, mb) { - this.width = width; - this.height = height; - - this.contextLabelTable = (subband === 'HH' ? HHContextLabel : - (subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel)); - - var coefficientCount = width * height; - - // coefficients outside the encoding region treated as insignificant - // add border state cells for significanceState - this.neighborsSignificance = new Uint8Array(coefficientCount); - this.coefficentsSign = new Uint8Array(coefficientCount); - this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : - mb > 6 ? new Uint16Array(coefficientCount) : - new Uint8Array(coefficientCount); - this.processingFlags = new Uint8Array(coefficientCount); - - var bitsDecoded = new Uint8Array(coefficientCount); - if (zeroBitPlanes !== 0) { - for (var i = 0; i < coefficientCount; i++) { - bitsDecoded[i] = zeroBitPlanes; - } - } - this.bitsDecoded = bitsDecoded; - - this.reset(); - } - - BitModel.prototype = { - setDecoder: function BitModel_setDecoder(decoder) { - this.decoder = decoder; - }, - reset: function BitModel_reset() { - // We have 17 contexts that are accessed via context labels, - // plus the uniform and runlength context. - this.contexts = new Int8Array(19); - - // Contexts are packed into 1 byte: - // highest 7 bits carry the index, lowest bit carries mps - this.contexts[0] = (4 << 1) | 0; - this.contexts[UNIFORM_CONTEXT] = (46 << 1) | 0; - this.contexts[RUNLENGTH_CONTEXT] = (3 << 1) | 0; - }, - setNeighborsSignificance: - function BitModel_setNeighborsSignificance(row, column, index) { - var neighborsSignificance = this.neighborsSignificance; - var width = this.width, height = this.height; - var left = (column > 0); - var right = (column + 1 < width); - var i; - - if (row > 0) { - i = index - width; - if (left) { - neighborsSignificance[i - 1] += 0x10; - } - if (right) { - neighborsSignificance[i + 1] += 0x10; - } - neighborsSignificance[i] += 0x04; - } - - if (row + 1 < height) { - i = index + width; - if (left) { - neighborsSignificance[i - 1] += 0x10; - } - if (right) { - neighborsSignificance[i + 1] += 0x10; - } - neighborsSignificance[i] += 0x04; - } - - if (left) { - neighborsSignificance[index - 1] += 0x01; - } - if (right) { - neighborsSignificance[index + 1] += 0x01; - } - neighborsSignificance[index] |= 0x80; - }, - runSignificancePropogationPass: - function BitModel_runSignificancePropogationPass() { - var decoder = this.decoder; - var width = this.width, height = this.height; - var coefficentsMagnitude = this.coefficentsMagnitude; - var coefficentsSign = this.coefficentsSign; - var neighborsSignificance = this.neighborsSignificance; - var processingFlags = this.processingFlags; - var contexts = this.contexts; - var labels = this.contextLabelTable; - var bitsDecoded = this.bitsDecoded; - var processedInverseMask = ~1; - var processedMask = 1; - var firstMagnitudeBitMask = 2; - - for (var i0 = 0; i0 < height; i0 += 4) { - for (var j = 0; j < width; j++) { - var index = i0 * width + j; - for (var i1 = 0; i1 < 4; i1++, index += width) { - var i = i0 + i1; - if (i >= height) { - break; - } - // clear processed flag first - processingFlags[index] &= processedInverseMask; - - if (coefficentsMagnitude[index] || - !neighborsSignificance[index]) { - continue; - } - - var contextLabel = labels[neighborsSignificance[index]]; - var decision = decoder.readBit(contexts, contextLabel); - if (decision) { - var sign = this.decodeSignBit(i, j, index); - coefficentsSign[index] = sign; - coefficentsMagnitude[index] = 1; - this.setNeighborsSignificance(i, j, index); - processingFlags[index] |= firstMagnitudeBitMask; - } - bitsDecoded[index]++; - processingFlags[index] |= processedMask; - } - } - } - }, - decodeSignBit: function BitModel_decodeSignBit(row, column, index) { - var width = this.width, height = this.height; - var coefficentsMagnitude = this.coefficentsMagnitude; - var coefficentsSign = this.coefficentsSign; - var contribution, sign0, sign1, significance1; - var contextLabel, decoded; - - // calculate horizontal contribution - significance1 = (column > 0 && coefficentsMagnitude[index - 1] !== 0); - if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) { - sign1 = coefficentsSign[index + 1]; - if (significance1) { - sign0 = coefficentsSign[index - 1]; - contribution = 1 - sign1 - sign0; - } else { - contribution = 1 - sign1 - sign1; - } - } else if (significance1) { - sign0 = coefficentsSign[index - 1]; - contribution = 1 - sign0 - sign0; - } else { - contribution = 0; - } - var horizontalContribution = 3 * contribution; - - // calculate vertical contribution and combine with the horizontal - significance1 = (row > 0 && coefficentsMagnitude[index - width] !== 0); - if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) { - sign1 = coefficentsSign[index + width]; - if (significance1) { - sign0 = coefficentsSign[index - width]; - contribution = 1 - sign1 - sign0 + horizontalContribution; - } else { - contribution = 1 - sign1 - sign1 + horizontalContribution; - } - } else if (significance1) { - sign0 = coefficentsSign[index - width]; - contribution = 1 - sign0 - sign0 + horizontalContribution; - } else { - contribution = horizontalContribution; - } - - if (contribution >= 0) { - contextLabel = 9 + contribution; - decoded = this.decoder.readBit(this.contexts, contextLabel); - } else { - contextLabel = 9 - contribution; - decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1; - } - return decoded; - }, - runMagnitudeRefinementPass: - function BitModel_runMagnitudeRefinementPass() { - var decoder = this.decoder; - var width = this.width, height = this.height; - var coefficentsMagnitude = this.coefficentsMagnitude; - var neighborsSignificance = this.neighborsSignificance; - var contexts = this.contexts; - var bitsDecoded = this.bitsDecoded; - var processingFlags = this.processingFlags; - var processedMask = 1; - var firstMagnitudeBitMask = 2; - var length = width * height; - var width4 = width * 4; - - for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) { - indexNext = Math.min(length, index0 + width4); - for (var j = 0; j < width; j++) { - for (var index = index0 + j; index < indexNext; index += width) { - - // significant but not those that have just become - if (!coefficentsMagnitude[index] || - (processingFlags[index] & processedMask) !== 0) { - continue; - } - - var contextLabel = 16; - if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) { - processingFlags[index] ^= firstMagnitudeBitMask; - // first refinement - var significance = neighborsSignificance[index] & 127; - contextLabel = significance === 0 ? 15 : 14; - } - - var bit = decoder.readBit(contexts, contextLabel); - coefficentsMagnitude[index] = - (coefficentsMagnitude[index] << 1) | bit; - bitsDecoded[index]++; - processingFlags[index] |= processedMask; - } - } - } - }, - runCleanupPass: function BitModel_runCleanupPass() { - var decoder = this.decoder; - var width = this.width, height = this.height; - var neighborsSignificance = this.neighborsSignificance; - var coefficentsMagnitude = this.coefficentsMagnitude; - var coefficentsSign = this.coefficentsSign; - var contexts = this.contexts; - var labels = this.contextLabelTable; - var bitsDecoded = this.bitsDecoded; - var processingFlags = this.processingFlags; - var processedMask = 1; - var firstMagnitudeBitMask = 2; - var oneRowDown = width; - var twoRowsDown = width * 2; - var threeRowsDown = width * 3; - var iNext; - for (var i0 = 0; i0 < height; i0 = iNext) { - iNext = Math.min(i0 + 4, height); - var indexBase = i0 * width; - var checkAllEmpty = i0 + 3 < height; - for (var j = 0; j < width; j++) { - var index0 = indexBase + j; - // using the property: labels[neighborsSignificance[index]] === 0 - // when neighborsSignificance[index] === 0 - var allEmpty = (checkAllEmpty && - processingFlags[index0] === 0 && - processingFlags[index0 + oneRowDown] === 0 && - processingFlags[index0 + twoRowsDown] === 0 && - processingFlags[index0 + threeRowsDown] === 0 && - neighborsSignificance[index0] === 0 && - neighborsSignificance[index0 + oneRowDown] === 0 && - neighborsSignificance[index0 + twoRowsDown] === 0 && - neighborsSignificance[index0 + threeRowsDown] === 0); - var i1 = 0, index = index0; - var i = i0, sign; - if (allEmpty) { - var hasSignificantCoefficent = - decoder.readBit(contexts, RUNLENGTH_CONTEXT); - if (!hasSignificantCoefficent) { - bitsDecoded[index0]++; - bitsDecoded[index0 + oneRowDown]++; - bitsDecoded[index0 + twoRowsDown]++; - bitsDecoded[index0 + threeRowsDown]++; - continue; // next column - } - i1 = (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) | - decoder.readBit(contexts, UNIFORM_CONTEXT); - if (i1 !== 0) { - i = i0 + i1; - index += i1 * width; - } - - sign = this.decodeSignBit(i, j, index); - coefficentsSign[index] = sign; - coefficentsMagnitude[index] = 1; - this.setNeighborsSignificance(i, j, index); - processingFlags[index] |= firstMagnitudeBitMask; - - index = index0; - for (var i2 = i0; i2 <= i; i2++, index += width) { - bitsDecoded[index]++; - } - - i1++; - } - for (i = i0 + i1; i < iNext; i++, index += width) { - if (coefficentsMagnitude[index] || - (processingFlags[index] & processedMask) !== 0) { - continue; - } - - var contextLabel = labels[neighborsSignificance[index]]; - var decision = decoder.readBit(contexts, contextLabel); - if (decision === 1) { - sign = this.decodeSignBit(i, j, index); - coefficentsSign[index] = sign; - coefficentsMagnitude[index] = 1; - this.setNeighborsSignificance(i, j, index); - processingFlags[index] |= firstMagnitudeBitMask; - } - bitsDecoded[index]++; - } - } - } - }, - checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() { - var decoder = this.decoder; - var contexts = this.contexts; - var symbol = (decoder.readBit(contexts, UNIFORM_CONTEXT) << 3) | - (decoder.readBit(contexts, UNIFORM_CONTEXT) << 2) | - (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) | - decoder.readBit(contexts, UNIFORM_CONTEXT); - if (symbol !== 0xA) { - throw new Error('JPX Error: Invalid segmentation symbol'); - } - } - }; - - return BitModel; - })(); - - // Section F, Discrete wavelet transformation - var Transform = (function TransformClosure() { - function Transform() {} - - Transform.prototype.calculate = - function transformCalculate(subbands, u0, v0) { - var ll = subbands[0]; - for (var i = 1, ii = subbands.length; i < ii; i++) { - ll = this.iterate(ll, subbands[i], u0, v0); - } - return ll; - }; - Transform.prototype.extend = function extend(buffer, offset, size) { - // Section F.3.7 extending... using max extension of 4 - var i1 = offset - 1, j1 = offset + 1; - var i2 = offset + size - 2, j2 = offset + size; - buffer[i1--] = buffer[j1++]; - buffer[j2++] = buffer[i2--]; - buffer[i1--] = buffer[j1++]; - buffer[j2++] = buffer[i2--]; - buffer[i1--] = buffer[j1++]; - buffer[j2++] = buffer[i2--]; - buffer[i1] = buffer[j1]; - buffer[j2] = buffer[i2]; - }; - Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, - u0, v0) { - var llWidth = ll.width, llHeight = ll.height, llItems = ll.items; - var width = hl_lh_hh.width; - var height = hl_lh_hh.height; - var items = hl_lh_hh.items; - var i, j, k, l, u, v; - - // Interleave LL according to Section F.3.3 - for (k = 0, i = 0; i < llHeight; i++) { - l = i * 2 * width; - for (j = 0; j < llWidth; j++, k++, l += 2) { - items[l] = llItems[k]; - } - } - // The LL band is not needed anymore. - llItems = ll.items = null; - - var bufferPadding = 4; - var rowBuffer = new Float32Array(width + 2 * bufferPadding); - - // Section F.3.4 HOR_SR - if (width === 1) { - // if width = 1, when u0 even keep items as is, when odd divide by 2 - if ((u0 & 1) !== 0) { - for (v = 0, k = 0; v < height; v++, k += width) { - items[k] *= 0.5; - } - } - } else { - for (v = 0, k = 0; v < height; v++, k += width) { - rowBuffer.set(items.subarray(k, k + width), bufferPadding); - - this.extend(rowBuffer, bufferPadding, width); - this.filter(rowBuffer, bufferPadding, width); - - items.set( - rowBuffer.subarray(bufferPadding, bufferPadding + width), - k); - } - } - - // Accesses to the items array can take long, because it may not fit into - // CPU cache and has to be fetched from main memory. Since subsequent - // accesses to the items array are not local when reading columns, we - // have a cache miss every time. To reduce cache misses, get up to - // 'numBuffers' items at a time and store them into the individual - // buffers. The colBuffers should be small enough to fit into CPU cache. - var numBuffers = 16; - var colBuffers = []; - for (i = 0; i < numBuffers; i++) { - colBuffers.push(new Float32Array(height + 2 * bufferPadding)); - } - var b, currentBuffer = 0; - ll = bufferPadding + height; - - // Section F.3.5 VER_SR - if (height === 1) { - // if height = 1, when v0 even keep items as is, when odd divide by 2 - if ((v0 & 1) !== 0) { - for (u = 0; u < width; u++) { - items[u] *= 0.5; - } - } - } else { - for (u = 0; u < width; u++) { - // if we ran out of buffers, copy several image columns at once - if (currentBuffer === 0) { - numBuffers = Math.min(width - u, numBuffers); - for (k = u, l = bufferPadding; l < ll; k += width, l++) { - for (b = 0; b < numBuffers; b++) { - colBuffers[b][l] = items[k + b]; - } - } - currentBuffer = numBuffers; - } - - currentBuffer--; - var buffer = colBuffers[currentBuffer]; - this.extend(buffer, bufferPadding, height); - this.filter(buffer, bufferPadding, height); - - // If this is last buffer in this group of buffers, flush all buffers. - if (currentBuffer === 0) { - k = u - numBuffers + 1; - for (l = bufferPadding; l < ll; k += width, l++) { - for (b = 0; b < numBuffers; b++) { - items[k + b] = colBuffers[b][l]; - } - } - } - } - } - - return { - width: width, - height: height, - items: items - }; - }; - return Transform; - })(); - - // Section 3.8.2 Irreversible 9-7 filter - var IrreversibleTransform = (function IrreversibleTransformClosure() { - function IrreversibleTransform() { - Transform.call(this); - } - - IrreversibleTransform.prototype = Object.create(Transform.prototype); - IrreversibleTransform.prototype.filter = - function irreversibleTransformFilter(x, offset, length) { - var len = length >> 1; - offset = offset | 0; - var j, n, current, next; - - var alpha = -1.586134342059924; - var beta = -0.052980118572961; - var gamma = 0.882911075530934; - var delta = 0.443506852043971; - var K = 1.230174104914001; - var K_ = 1 / K; - - // step 1 is combined with step 3 - - // step 2 - j = offset - 3; - for (n = len + 4; n--; j += 2) { - x[j] *= K_; - } - - // step 1 & 3 - j = offset - 2; - current = delta * x[j -1]; - for (n = len + 3; n--; j += 2) { - next = delta * x[j + 1]; - x[j] = K * x[j] - current - next; - if (n--) { - j += 2; - current = delta * x[j + 1]; - x[j] = K * x[j] - current - next; - } else { - break; - } - } - - // step 4 - j = offset - 1; - current = gamma * x[j - 1]; - for (n = len + 2; n--; j += 2) { - next = gamma * x[j + 1]; - x[j] -= current + next; - if (n--) { - j += 2; - current = gamma * x[j + 1]; - x[j] -= current + next; - } else { - break; - } - } - - // step 5 - j = offset; - current = beta * x[j - 1]; - for (n = len + 1; n--; j += 2) { - next = beta * x[j + 1]; - x[j] -= current + next; - if (n--) { - j += 2; - current = beta * x[j + 1]; - x[j] -= current + next; - } else { - break; - } - } - - // step 6 - if (len !== 0) { - j = offset + 1; - current = alpha * x[j - 1]; - for (n = len; n--; j += 2) { - next = alpha * x[j + 1]; - x[j] -= current + next; - if (n--) { - j += 2; - current = alpha * x[j + 1]; - x[j] -= current + next; - } else { - break; - } - } - } - }; - - return IrreversibleTransform; - })(); - - // Section 3.8.1 Reversible 5-3 filter - var ReversibleTransform = (function ReversibleTransformClosure() { - function ReversibleTransform() { - Transform.call(this); - } - - ReversibleTransform.prototype = Object.create(Transform.prototype); - ReversibleTransform.prototype.filter = - function reversibleTransformFilter(x, offset, length) { - var len = length >> 1; - offset = offset | 0; - var j, n; - - for (j = offset, n = len + 1; n--; j += 2) { - x[j] -= (x[j - 1] + x[j + 1] + 2) >> 2; - } - - for (j = offset + 1, n = len; n--; j += 2) { - x[j] += (x[j - 1] + x[j + 1]) >> 1; - } - }; - - return ReversibleTransform; - })(); - - return JpxImage; -})(); - - -var Jbig2Image = (function Jbig2ImageClosure() { - // Utility data structures - function ContextCache() {} - - ContextCache.prototype = { - getContexts: function(id) { - if (id in this) { - return this[id]; - } - return (this[id] = new Int8Array(1 << 16)); - } - }; - - function DecodingContext(data, start, end) { - this.data = data; - this.start = start; - this.end = end; - } - - DecodingContext.prototype = { - get decoder() { - var decoder = new ArithmeticDecoder(this.data, this.start, this.end); - return shadow(this, 'decoder', decoder); - }, - get contextCache() { - var cache = new ContextCache(); - return shadow(this, 'contextCache', cache); - } - }; - - // Annex A. Arithmetic Integer Decoding Procedure - // A.2 Procedure for decoding values - function decodeInteger(contextCache, procedure, decoder) { - var contexts = contextCache.getContexts(procedure); - var prev = 1; - - function readBits(length) { - var v = 0; - for (var i = 0; i < length; i++) { - var bit = decoder.readBit(contexts, prev); - prev = (prev < 256 ? (prev << 1) | bit : - (((prev << 1) | bit) & 511) | 256); - v = (v << 1) | bit; - } - return v >>> 0; - } - - var sign = readBits(1); - var value = readBits(1) ? - (readBits(1) ? - (readBits(1) ? - (readBits(1) ? - (readBits(1) ? - (readBits(32) + 4436) : - readBits(12) + 340) : - readBits(8) + 84) : - readBits(6) + 20) : - readBits(4) + 4) : - readBits(2); - return (sign === 0 ? value : (value > 0 ? -value : null)); - } - - // A.3 The IAID decoding procedure - function decodeIAID(contextCache, decoder, codeLength) { - var contexts = contextCache.getContexts('IAID'); - - var prev = 1; - for (var i = 0; i < codeLength; i++) { - var bit = decoder.readBit(contexts, prev); - prev = (prev << 1) | bit; - } - if (codeLength < 31) { - return prev & ((1 << codeLength) - 1); - } - return prev & 0x7FFFFFFF; - } - - // 7.3 Segment types - var SegmentTypes = [ - 'SymbolDictionary', null, null, null, 'IntermediateTextRegion', null, - 'ImmediateTextRegion', 'ImmediateLosslessTextRegion', null, null, null, - null, null, null, null, null, 'patternDictionary', null, null, null, - 'IntermediateHalftoneRegion', null, 'ImmediateHalftoneRegion', - 'ImmediateLosslessHalftoneRegion', null, null, null, null, null, null, null, - null, null, null, null, null, 'IntermediateGenericRegion', null, - 'ImmediateGenericRegion', 'ImmediateLosslessGenericRegion', - 'IntermediateGenericRefinementRegion', null, - 'ImmediateGenericRefinementRegion', - 'ImmediateLosslessGenericRefinementRegion', null, null, null, null, - 'PageInformation', 'EndOfPage', 'EndOfStripe', 'EndOfFile', 'Profiles', - 'Tables', null, null, null, null, null, null, null, null, - 'Extension' - ]; - - var CodingTemplates = [ - [{x: -1, y: -2}, {x: 0, y: -2}, {x: 1, y: -2}, {x: -2, y: -1}, - {x: -1, y: -1}, {x: 0, y: -1}, {x: 1, y: -1}, {x: 2, y: -1}, - {x: -4, y: 0}, {x: -3, y: 0}, {x: -2, y: 0}, {x: -1, y: 0}], - [{x: -1, y: -2}, {x: 0, y: -2}, {x: 1, y: -2}, {x: 2, y: -2}, - {x: -2, y: -1}, {x: -1, y: -1}, {x: 0, y: -1}, {x: 1, y: -1}, - {x: 2, y: -1}, {x: -3, y: 0}, {x: -2, y: 0}, {x: -1, y: 0}], - [{x: -1, y: -2}, {x: 0, y: -2}, {x: 1, y: -2}, {x: -2, y: -1}, - {x: -1, y: -1}, {x: 0, y: -1}, {x: 1, y: -1}, {x: -2, y: 0}, - {x: -1, y: 0}], - [{x: -3, y: -1}, {x: -2, y: -1}, {x: -1, y: -1}, {x: 0, y: -1}, - {x: 1, y: -1}, {x: -4, y: 0}, {x: -3, y: 0}, {x: -2, y: 0}, {x: -1, y: 0}] - ]; - - var RefinementTemplates = [ - { - coding: [{x: 0, y: -1}, {x: 1, y: -1}, {x: -1, y: 0}], - reference: [{x: 0, y: -1}, {x: 1, y: -1}, {x: -1, y: 0}, {x: 0, y: 0}, - {x: 1, y: 0}, {x: -1, y: 1}, {x: 0, y: 1}, {x: 1, y: 1}] - }, - { - coding: [{x: -1, y: -1}, {x: 0, y: -1}, {x: 1, y: -1}, {x: -1, y: 0}], - reference: [{x: 0, y: -1}, {x: -1, y: 0}, {x: 0, y: 0}, {x: 1, y: 0}, - {x: 0, y: 1}, {x: 1, y: 1}] - } - ]; - - // See 6.2.5.7 Decoding the bitmap. - var ReusedContexts = [ - 0x9B25, // 10011 0110010 0101 - 0x0795, // 0011 110010 101 - 0x00E5, // 001 11001 01 - 0x0195 // 011001 0101 - ]; - - var RefinementReusedContexts = [ - 0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference) - 0x0008 // '0000' + '001000' - ]; - - function decodeBitmapTemplate0(width, height, decodingContext) { - var decoder = decodingContext.decoder; - var contexts = decodingContext.contextCache.getContexts('GB'); - var contextLabel, i, j, pixel, row, row1, row2, bitmap = []; - - // ...ooooo.... - // ..ooooooo... Context template for current pixel (X) - // .ooooX...... (concatenate values of 'o'-pixels to get contextLabel) - var OLD_PIXEL_MASK = 0x7BF7; // 01111 0111111 0111 - - for (i = 0; i < height; i++) { - row = bitmap[i] = new Uint8Array(width); - row1 = (i < 1) ? row : bitmap[i - 1]; - row2 = (i < 2) ? row : bitmap[i - 2]; - - // At the beginning of each row: - // Fill contextLabel with pixels that are above/right of (X) - contextLabel = (row2[0] << 13) | (row2[1] << 12) | (row2[2] << 11) | - (row1[0] << 7) | (row1[1] << 6) | (row1[2] << 5) | - (row1[3] << 4); - - for (j = 0; j < width; j++) { - row[j] = pixel = decoder.readBit(contexts, contextLabel); - - // At each pixel: Clear contextLabel pixels that are shifted - // out of the context, then add new ones. - contextLabel = ((contextLabel & OLD_PIXEL_MASK) << 1) | - (j + 3 < width ? row2[j + 3] << 11 : 0) | - (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel; - } - } - - return bitmap; - } - - // 6.2 Generic Region Decoding Procedure - function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, - decodingContext) { - if (mmr) { - error('JBIG2 error: MMR encoding is not supported'); - } - - // Use optimized version for the most common case - if (templateIndex === 0 && !skip && !prediction && at.length === 4 && - at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && - at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) { - return decodeBitmapTemplate0(width, height, decodingContext); - } - - var useskip = !!skip; - var template = CodingTemplates[templateIndex].concat(at); - - // Sorting is non-standard, and it is not required. But sorting increases - // the number of template bits that can be reused from the previous - // contextLabel in the main loop. - template.sort(function (a, b) { - return (a.y - b.y) || (a.x - b.x); - }); - - var templateLength = template.length; - var templateX = new Int8Array(templateLength); - var templateY = new Int8Array(templateLength); - var changingTemplateEntries = []; - var reuseMask = 0, minX = 0, maxX = 0, minY = 0; - var c, k; - - for (k = 0; k < templateLength; k++) { - templateX[k] = template[k].x; - templateY[k] = template[k].y; - minX = Math.min(minX, template[k].x); - maxX = Math.max(maxX, template[k].x); - minY = Math.min(minY, template[k].y); - // Check if the template pixel appears in two consecutive context labels, - // so it can be reused. Otherwise, we add it to the list of changing - // template entries. - if (k < templateLength - 1 && - template[k].y === template[k + 1].y && - template[k].x === template[k + 1].x - 1) { - reuseMask |= 1 << (templateLength - 1 - k); - } else { - changingTemplateEntries.push(k); - } - } - var changingEntriesLength = changingTemplateEntries.length; - - var changingTemplateX = new Int8Array(changingEntriesLength); - var changingTemplateY = new Int8Array(changingEntriesLength); - var changingTemplateBit = new Uint16Array(changingEntriesLength); - for (c = 0; c < changingEntriesLength; c++) { - k = changingTemplateEntries[c]; - changingTemplateX[c] = template[k].x; - changingTemplateY[c] = template[k].y; - changingTemplateBit[c] = 1 << (templateLength - 1 - k); - } - - // Get the safe bounding box edges from the width, height, minX, maxX, minY - var sbb_left = -minX; - var sbb_top = -minY; - var sbb_right = width - maxX; - - var pseudoPixelContext = ReusedContexts[templateIndex]; - var row = new Uint8Array(width); - var bitmap = []; - - var decoder = decodingContext.decoder; - var contexts = decodingContext.contextCache.getContexts('GB'); - - var ltp = 0, j, i0, j0, contextLabel = 0, bit, shift; - for (var i = 0; i < height; i++) { - if (prediction) { - var sltp = decoder.readBit(contexts, pseudoPixelContext); - ltp ^= sltp; - if (ltp) { - bitmap.push(row); // duplicate previous row - continue; - } - } - row = new Uint8Array(row); - bitmap.push(row); - for (j = 0; j < width; j++) { - if (useskip && skip[i][j]) { - row[j] = 0; - continue; - } - // Are we in the middle of a scanline, so we can reuse contextLabel - // bits? - if (j >= sbb_left && j < sbb_right && i >= sbb_top) { - // If yes, we can just shift the bits that are reusable and only - // fetch the remaining ones. - contextLabel = (contextLabel << 1) & reuseMask; - for (k = 0; k < changingEntriesLength; k++) { - i0 = i + changingTemplateY[k]; - j0 = j + changingTemplateX[k]; - bit = bitmap[i0][j0]; - if (bit) { - bit = changingTemplateBit[k]; - contextLabel |= bit; - } - } - } else { - // compute the contextLabel from scratch - contextLabel = 0; - shift = templateLength - 1; - for (k = 0; k < templateLength; k++, shift--) { - j0 = j + templateX[k]; - if (j0 >= 0 && j0 < width) { - i0 = i + templateY[k]; - if (i0 >= 0) { - bit = bitmap[i0][j0]; - if (bit) { - contextLabel |= bit << shift; - } - } - } - } - } - var pixel = decoder.readBit(contexts, contextLabel); - row[j] = pixel; - } - } - return bitmap; - } - - // 6.3.2 Generic Refinement Region Decoding Procedure - function decodeRefinement(width, height, templateIndex, referenceBitmap, - offsetX, offsetY, prediction, at, - decodingContext) { - var codingTemplate = RefinementTemplates[templateIndex].coding; - if (templateIndex === 0) { - codingTemplate = codingTemplate.concat([at[0]]); - } - var codingTemplateLength = codingTemplate.length; - var codingTemplateX = new Int32Array(codingTemplateLength); - var codingTemplateY = new Int32Array(codingTemplateLength); - var k; - for (k = 0; k < codingTemplateLength; k++) { - codingTemplateX[k] = codingTemplate[k].x; - codingTemplateY[k] = codingTemplate[k].y; - } - - var referenceTemplate = RefinementTemplates[templateIndex].reference; - if (templateIndex === 0) { - referenceTemplate = referenceTemplate.concat([at[1]]); - } - var referenceTemplateLength = referenceTemplate.length; - var referenceTemplateX = new Int32Array(referenceTemplateLength); - var referenceTemplateY = new Int32Array(referenceTemplateLength); - for (k = 0; k < referenceTemplateLength; k++) { - referenceTemplateX[k] = referenceTemplate[k].x; - referenceTemplateY[k] = referenceTemplate[k].y; - } - var referenceWidth = referenceBitmap[0].length; - var referenceHeight = referenceBitmap.length; - - var pseudoPixelContext = RefinementReusedContexts[templateIndex]; - var bitmap = []; - - var decoder = decodingContext.decoder; - var contexts = decodingContext.contextCache.getContexts('GR'); - - var ltp = 0; - for (var i = 0; i < height; i++) { - if (prediction) { - var sltp = decoder.readBit(contexts, pseudoPixelContext); - ltp ^= sltp; - if (ltp) { - error('JBIG2 error: prediction is not supported'); - } - } - var row = new Uint8Array(width); - bitmap.push(row); - for (var j = 0; j < width; j++) { - var i0, j0; - var contextLabel = 0; - for (k = 0; k < codingTemplateLength; k++) { - i0 = i + codingTemplateY[k]; - j0 = j + codingTemplateX[k]; - if (i0 < 0 || j0 < 0 || j0 >= width) { - contextLabel <<= 1; // out of bound pixel - } else { - contextLabel = (contextLabel << 1) | bitmap[i0][j0]; - } - } - for (k = 0; k < referenceTemplateLength; k++) { - i0 = i + referenceTemplateY[k] + offsetY; - j0 = j + referenceTemplateX[k] + offsetX; - if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || - j0 >= referenceWidth) { - contextLabel <<= 1; // out of bound pixel - } else { - contextLabel = (contextLabel << 1) | referenceBitmap[i0][j0]; - } - } - var pixel = decoder.readBit(contexts, contextLabel); - row[j] = pixel; - } - } - - return bitmap; - } - - // 6.5.5 Decoding the symbol dictionary - function decodeSymbolDictionary(huffman, refinement, symbols, - numberOfNewSymbols, numberOfExportedSymbols, - huffmanTables, templateIndex, at, - refinementTemplateIndex, refinementAt, - decodingContext) { - if (huffman) { - error('JBIG2 error: huffman is not supported'); - } - - var newSymbols = []; - var currentHeight = 0; - var symbolCodeLength = log2(symbols.length + numberOfNewSymbols); - - var decoder = decodingContext.decoder; - var contextCache = decodingContext.contextCache; - - while (newSymbols.length < numberOfNewSymbols) { - var deltaHeight = decodeInteger(contextCache, 'IADH', decoder); // 6.5.6 - currentHeight += deltaHeight; - var currentWidth = 0; - var totalWidth = 0; - while (true) { - var deltaWidth = decodeInteger(contextCache, 'IADW', decoder); // 6.5.7 - if (deltaWidth === null) { - break; // OOB - } - currentWidth += deltaWidth; - totalWidth += currentWidth; - var bitmap; - if (refinement) { - // 6.5.8.2 Refinement/aggregate-coded symbol bitmap - var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder); - if (numberOfInstances > 1) { - bitmap = decodeTextRegion(huffman, refinement, - currentWidth, currentHeight, 0, - numberOfInstances, 1, //strip size - symbols.concat(newSymbols), - symbolCodeLength, - 0, //transposed - 0, //ds offset - 1, //top left 7.4.3.1.1 - 0, //OR operator - huffmanTables, - refinementTemplateIndex, refinementAt, - decodingContext); - } else { - var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); - var rdx = decodeInteger(contextCache, 'IARDX', decoder); // 6.4.11.3 - var rdy = decodeInteger(contextCache, 'IARDY', decoder); // 6.4.11.4 - var symbol = (symbolId < symbols.length ? symbols[symbolId] : - newSymbols[symbolId - symbols.length]); - bitmap = decodeRefinement(currentWidth, currentHeight, - refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, - decodingContext); - } - } else { - // 6.5.8.1 Direct-coded symbol bitmap - bitmap = decodeBitmap(false, currentWidth, currentHeight, - templateIndex, false, null, at, decodingContext); - } - newSymbols.push(bitmap); - } - } - // 6.5.10 Exported symbols - var exportedSymbols = []; - var flags = [], currentFlag = false; - var totalSymbolsLength = symbols.length + numberOfNewSymbols; - while (flags.length < totalSymbolsLength) { - var runLength = decodeInteger(contextCache, 'IAEX', decoder); - while (runLength--) { - flags.push(currentFlag); - } - currentFlag = !currentFlag; - } - for (var i = 0, ii = symbols.length; i < ii; i++) { - if (flags[i]) { - exportedSymbols.push(symbols[i]); - } - } - for (var j = 0; j < numberOfNewSymbols; i++, j++) { - if (flags[i]) { - exportedSymbols.push(newSymbols[j]); - } - } - return exportedSymbols; - } - - function decodeTextRegion(huffman, refinement, width, height, - defaultPixelValue, numberOfSymbolInstances, - stripSize, inputSymbols, symbolCodeLength, - transposed, dsOffset, referenceCorner, - combinationOperator, huffmanTables, - refinementTemplateIndex, refinementAt, - decodingContext) { - if (huffman) { - error('JBIG2 error: huffman is not supported'); - } - - // Prepare bitmap - var bitmap = []; - var i, row; - for (i = 0; i < height; i++) { - row = new Uint8Array(width); - if (defaultPixelValue) { - for (var j = 0; j < width; j++) { - row[j] = defaultPixelValue; - } - } - bitmap.push(row); - } - - var decoder = decodingContext.decoder; - var contextCache = decodingContext.contextCache; - var stripT = -decodeInteger(contextCache, 'IADT', decoder); // 6.4.6 - var firstS = 0; - i = 0; - while (i < numberOfSymbolInstances) { - var deltaT = decodeInteger(contextCache, 'IADT', decoder); // 6.4.6 - stripT += deltaT; - - var deltaFirstS = decodeInteger(contextCache, 'IAFS', decoder); // 6.4.7 - firstS += deltaFirstS; - var currentS = firstS; - do { - var currentT = (stripSize === 1 ? 0 : - decodeInteger(contextCache, 'IAIT', decoder)); // 6.4.9 - var t = stripSize * stripT + currentT; - var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); - var applyRefinement = (refinement && - decodeInteger(contextCache, 'IARI', decoder)); - var symbolBitmap = inputSymbols[symbolId]; - var symbolWidth = symbolBitmap[0].length; - var symbolHeight = symbolBitmap.length; - if (applyRefinement) { - var rdw = decodeInteger(contextCache, 'IARDW', decoder); // 6.4.11.1 - var rdh = decodeInteger(contextCache, 'IARDH', decoder); // 6.4.11.2 - var rdx = decodeInteger(contextCache, 'IARDX', decoder); // 6.4.11.3 - var rdy = decodeInteger(contextCache, 'IARDY', decoder); // 6.4.11.4 - symbolWidth += rdw; - symbolHeight += rdh; - symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, - refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, - (rdh >> 1) + rdy, false, refinementAt, - decodingContext); - } - var offsetT = t - ((referenceCorner & 1) ? 0 : symbolHeight); - var offsetS = currentS - ((referenceCorner & 2) ? symbolWidth : 0); - var s2, t2, symbolRow; - if (transposed) { - // Place Symbol Bitmap from T1,S1 - for (s2 = 0; s2 < symbolHeight; s2++) { - row = bitmap[offsetS + s2]; - if (!row) { - continue; - } - symbolRow = symbolBitmap[s2]; - // To ignore Parts of Symbol bitmap which goes - // outside bitmap region - var maxWidth = Math.min(width - offsetT, symbolWidth); - switch (combinationOperator) { - case 0: // OR - for (t2 = 0; t2 < maxWidth; t2++) { - row[offsetT + t2] |= symbolRow[t2]; - } - break; - case 2: // XOR - for (t2 = 0; t2 < maxWidth; t2++) { - row[offsetT + t2] ^= symbolRow[t2]; - } - break; - default: - error('JBIG2 error: operator ' + combinationOperator + - ' is not supported'); - } - } - currentS += symbolHeight - 1; - } else { - for (t2 = 0; t2 < symbolHeight; t2++) { - row = bitmap[offsetT + t2]; - if (!row) { - continue; - } - symbolRow = symbolBitmap[t2]; - switch (combinationOperator) { - case 0: // OR - for (s2 = 0; s2 < symbolWidth; s2++) { - row[offsetS + s2] |= symbolRow[s2]; - } - break; - case 2: // XOR - for (s2 = 0; s2 < symbolWidth; s2++) { - row[offsetS + s2] ^= symbolRow[s2]; - } - break; - default: - error('JBIG2 error: operator ' + combinationOperator + - ' is not supported'); - } - } - currentS += symbolWidth - 1; - } - i++; - var deltaS = decodeInteger(contextCache, 'IADS', decoder); // 6.4.8 - if (deltaS === null) { - break; // OOB - } - currentS += deltaS + dsOffset; - } while (true); - } - return bitmap; - } - - function readSegmentHeader(data, start) { - var segmentHeader = {}; - segmentHeader.number = readUint32(data, start); - var flags = data[start + 4]; - var segmentType = flags & 0x3F; - if (!SegmentTypes[segmentType]) { - error('JBIG2 error: invalid segment type: ' + segmentType); - } - segmentHeader.type = segmentType; - segmentHeader.typeName = SegmentTypes[segmentType]; - segmentHeader.deferredNonRetain = !!(flags & 0x80); - - var pageAssociationFieldSize = !!(flags & 0x40); - var referredFlags = data[start + 5]; - var referredToCount = (referredFlags >> 5) & 7; - var retainBits = [referredFlags & 31]; - var position = start + 6; - if (referredFlags === 7) { - referredToCount = readUint32(data, position - 1) & 0x1FFFFFFF; - position += 3; - var bytes = (referredToCount + 7) >> 3; - retainBits[0] = data[position++]; - while (--bytes > 0) { - retainBits.push(data[position++]); - } - } else if (referredFlags === 5 || referredFlags === 6) { - error('JBIG2 error: invalid referred-to flags'); - } - - segmentHeader.retainBits = retainBits; - var referredToSegmentNumberSize = (segmentHeader.number <= 256 ? 1 : - (segmentHeader.number <= 65536 ? 2 : 4)); - var referredTo = []; - var i, ii; - for (i = 0; i < referredToCount; i++) { - var number = (referredToSegmentNumberSize === 1 ? data[position] : - (referredToSegmentNumberSize === 2 ? readUint16(data, position) : - readUint32(data, position))); - referredTo.push(number); - position += referredToSegmentNumberSize; - } - segmentHeader.referredTo = referredTo; - if (!pageAssociationFieldSize) { - segmentHeader.pageAssociation = data[position++]; - } else { - segmentHeader.pageAssociation = readUint32(data, position); - position += 4; - } - segmentHeader.length = readUint32(data, position); - position += 4; - - if (segmentHeader.length === 0xFFFFFFFF) { - // 7.2.7 Segment data length, unknown segment length - if (segmentType === 38) { // ImmediateGenericRegion - var genericRegionInfo = readRegionSegmentInformation(data, position); - var genericRegionSegmentFlags = data[position + - RegionSegmentInformationFieldLength]; - var genericRegionMmr = !!(genericRegionSegmentFlags & 1); - // searching for the segment end - var searchPatternLength = 6; - var searchPattern = new Uint8Array(searchPatternLength); - if (!genericRegionMmr) { - searchPattern[0] = 0xFF; - searchPattern[1] = 0xAC; - } - searchPattern[2] = (genericRegionInfo.height >>> 24) & 0xFF; - searchPattern[3] = (genericRegionInfo.height >> 16) & 0xFF; - searchPattern[4] = (genericRegionInfo.height >> 8) & 0xFF; - searchPattern[5] = genericRegionInfo.height & 0xFF; - for (i = position, ii = data.length; i < ii; i++) { - var j = 0; - while (j < searchPatternLength && searchPattern[j] === data[i + j]) { - j++; - } - if (j === searchPatternLength) { - segmentHeader.length = i + searchPatternLength; - break; - } - } - if (segmentHeader.length === 0xFFFFFFFF) { - error('JBIG2 error: segment end was not found'); - } - } else { - error('JBIG2 error: invalid unknown segment length'); - } - } - segmentHeader.headerEnd = position; - return segmentHeader; - } - - function readSegments(header, data, start, end) { - var segments = []; - var position = start; - while (position < end) { - var segmentHeader = readSegmentHeader(data, position); - position = segmentHeader.headerEnd; - var segment = { - header: segmentHeader, - data: data - }; - if (!header.randomAccess) { - segment.start = position; - position += segmentHeader.length; - segment.end = position; - } - segments.push(segment); - if (segmentHeader.type === 51) { - break; // end of file is found - } - } - if (header.randomAccess) { - for (var i = 0, ii = segments.length; i < ii; i++) { - segments[i].start = position; - position += segments[i].header.length; - segments[i].end = position; - } - } - return segments; - } - - // 7.4.1 Region segment information field - function readRegionSegmentInformation(data, start) { - return { - width: readUint32(data, start), - height: readUint32(data, start + 4), - x: readUint32(data, start + 8), - y: readUint32(data, start + 12), - combinationOperator: data[start + 16] & 7 - }; - } - var RegionSegmentInformationFieldLength = 17; - - function processSegment(segment, visitor) { - var header = segment.header; - - var data = segment.data, position = segment.start, end = segment.end; - var args, at, i, atLength; - switch (header.type) { - case 0: // SymbolDictionary - // 7.4.2 Symbol dictionary segment syntax - var dictionary = {}; - var dictionaryFlags = readUint16(data, position); // 7.4.2.1.1 - dictionary.huffman = !!(dictionaryFlags & 1); - dictionary.refinement = !!(dictionaryFlags & 2); - dictionary.huffmanDHSelector = (dictionaryFlags >> 2) & 3; - dictionary.huffmanDWSelector = (dictionaryFlags >> 4) & 3; - dictionary.bitmapSizeSelector = (dictionaryFlags >> 6) & 1; - dictionary.aggregationInstancesSelector = (dictionaryFlags >> 7) & 1; - dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256); - dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512); - dictionary.template = (dictionaryFlags >> 10) & 3; - dictionary.refinementTemplate = (dictionaryFlags >> 12) & 1; - position += 2; - if (!dictionary.huffman) { - atLength = dictionary.template === 0 ? 4 : 1; - at = []; - for (i = 0; i < atLength; i++) { - at.push({ - x: readInt8(data, position), - y: readInt8(data, position + 1) - }); - position += 2; - } - dictionary.at = at; - } - if (dictionary.refinement && !dictionary.refinementTemplate) { - at = []; - for (i = 0; i < 2; i++) { - at.push({ - x: readInt8(data, position), - y: readInt8(data, position + 1) - }); - position += 2; - } - dictionary.refinementAt = at; - } - dictionary.numberOfExportedSymbols = readUint32(data, position); - position += 4; - dictionary.numberOfNewSymbols = readUint32(data, position); - position += 4; - args = [dictionary, header.number, header.referredTo, - data, position, end]; - break; - case 6: // ImmediateTextRegion - case 7: // ImmediateLosslessTextRegion - var textRegion = {}; - textRegion.info = readRegionSegmentInformation(data, position); - position += RegionSegmentInformationFieldLength; - var textRegionSegmentFlags = readUint16(data, position); - position += 2; - textRegion.huffman = !!(textRegionSegmentFlags & 1); - textRegion.refinement = !!(textRegionSegmentFlags & 2); - textRegion.stripSize = 1 << ((textRegionSegmentFlags >> 2) & 3); - textRegion.referenceCorner = (textRegionSegmentFlags >> 4) & 3; - textRegion.transposed = !!(textRegionSegmentFlags & 64); - textRegion.combinationOperator = (textRegionSegmentFlags >> 7) & 3; - textRegion.defaultPixelValue = (textRegionSegmentFlags >> 9) & 1; - textRegion.dsOffset = (textRegionSegmentFlags << 17) >> 27; - textRegion.refinementTemplate = (textRegionSegmentFlags >> 15) & 1; - if (textRegion.huffman) { - var textRegionHuffmanFlags = readUint16(data, position); - position += 2; - textRegion.huffmanFS = (textRegionHuffmanFlags) & 3; - textRegion.huffmanDS = (textRegionHuffmanFlags >> 2) & 3; - textRegion.huffmanDT = (textRegionHuffmanFlags >> 4) & 3; - textRegion.huffmanRefinementDW = (textRegionHuffmanFlags >> 6) & 3; - textRegion.huffmanRefinementDH = (textRegionHuffmanFlags >> 8) & 3; - textRegion.huffmanRefinementDX = (textRegionHuffmanFlags >> 10) & 3; - textRegion.huffmanRefinementDY = (textRegionHuffmanFlags >> 12) & 3; - textRegion.huffmanRefinementSizeSelector = - !!(textRegionHuffmanFlags & 14); - } - if (textRegion.refinement && !textRegion.refinementTemplate) { - at = []; - for (i = 0; i < 2; i++) { - at.push({ - x: readInt8(data, position), - y: readInt8(data, position + 1) - }); - position += 2; - } - textRegion.refinementAt = at; - } - textRegion.numberOfSymbolInstances = readUint32(data, position); - position += 4; - // TODO 7.4.3.1.7 Symbol ID Huffman table decoding - if (textRegion.huffman) { - error('JBIG2 error: huffman is not supported'); - } - args = [textRegion, header.referredTo, data, position, end]; - break; - case 38: // ImmediateGenericRegion - case 39: // ImmediateLosslessGenericRegion - var genericRegion = {}; - genericRegion.info = readRegionSegmentInformation(data, position); - position += RegionSegmentInformationFieldLength; - var genericRegionSegmentFlags = data[position++]; - genericRegion.mmr = !!(genericRegionSegmentFlags & 1); - genericRegion.template = (genericRegionSegmentFlags >> 1) & 3; - genericRegion.prediction = !!(genericRegionSegmentFlags & 8); - if (!genericRegion.mmr) { - atLength = genericRegion.template === 0 ? 4 : 1; - at = []; - for (i = 0; i < atLength; i++) { - at.push({ - x: readInt8(data, position), - y: readInt8(data, position + 1) - }); - position += 2; - } - genericRegion.at = at; - } - args = [genericRegion, data, position, end]; - break; - case 48: // PageInformation - var pageInfo = { - width: readUint32(data, position), - height: readUint32(data, position + 4), - resolutionX: readUint32(data, position + 8), - resolutionY: readUint32(data, position + 12) - }; - if (pageInfo.height === 0xFFFFFFFF) { - delete pageInfo.height; - } - var pageSegmentFlags = data[position + 16]; - var pageStripingInformatiom = readUint16(data, position + 17); - pageInfo.lossless = !!(pageSegmentFlags & 1); - pageInfo.refinement = !!(pageSegmentFlags & 2); - pageInfo.defaultPixelValue = (pageSegmentFlags >> 2) & 1; - pageInfo.combinationOperator = (pageSegmentFlags >> 3) & 3; - pageInfo.requiresBuffer = !!(pageSegmentFlags & 32); - pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64); - args = [pageInfo]; - break; - case 49: // EndOfPage - break; - case 50: // EndOfStripe - break; - case 51: // EndOfFile - break; - case 62: // 7.4.15 defines 2 extension types which - // are comments and can be ignored. - break; - default: - error('JBIG2 error: segment type ' + header.typeName + '(' + - header.type + ') is not implemented'); - } - var callbackName = 'on' + header.typeName; - if (callbackName in visitor) { - visitor[callbackName].apply(visitor, args); - } - } - - function processSegments(segments, visitor) { - for (var i = 0, ii = segments.length; i < ii; i++) { - processSegment(segments[i], visitor); - } - } - - function parseJbig2(data, start, end) { - var position = start; - if (data[position] !== 0x97 || data[position + 1] !== 0x4A || - data[position + 2] !== 0x42 || data[position + 3] !== 0x32 || - data[position + 4] !== 0x0D || data[position + 5] !== 0x0A || - data[position + 6] !== 0x1A || data[position + 7] !== 0x0A) { - error('JBIG2 error: invalid header'); - } - var header = {}; - position += 8; - var flags = data[position++]; - header.randomAccess = !(flags & 1); - if (!(flags & 2)) { - header.numberOfPages = readUint32(data, position); - position += 4; - } - var segments = readSegments(header, data, position, end); - error('Not implemented'); - // processSegments(segments, new SimpleSegmentVisitor()); - } - - function parseJbig2Chunks(chunks) { - var visitor = new SimpleSegmentVisitor(); - for (var i = 0, ii = chunks.length; i < ii; i++) { - var chunk = chunks[i]; - var segments = readSegments({}, chunk.data, chunk.start, chunk.end); - processSegments(segments, visitor); - } - return visitor.buffer; - } - - function SimpleSegmentVisitor() {} - - SimpleSegmentVisitor.prototype = { - onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) { - this.currentPageInfo = info; - var rowSize = (info.width + 7) >> 3; - var buffer = new Uint8Array(rowSize * info.height); - // The contents of ArrayBuffers are initialized to 0. - // Fill the buffer with 0xFF only if info.defaultPixelValue is set - if (info.defaultPixelValue) { - for (var i = 0, ii = buffer.length; i < ii; i++) { - buffer[i] = 0xFF; - } - } - this.buffer = buffer; - }, - drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) { - var pageInfo = this.currentPageInfo; - var width = regionInfo.width, height = regionInfo.height; - var rowSize = (pageInfo.width + 7) >> 3; - var combinationOperator = pageInfo.combinationOperatorOverride ? - regionInfo.combinationOperator : pageInfo.combinationOperator; - var buffer = this.buffer; - var mask0 = 128 >> (regionInfo.x & 7); - var offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3); - var i, j, mask, offset; - switch (combinationOperator) { - case 0: // OR - for (i = 0; i < height; i++) { - mask = mask0; - offset = offset0; - for (j = 0; j < width; j++) { - if (bitmap[i][j]) { - buffer[offset] |= mask; - } - mask >>= 1; - if (!mask) { - mask = 128; - offset++; - } - } - offset0 += rowSize; - } - break; - case 2: // XOR - for (i = 0; i < height; i++) { - mask = mask0; - offset = offset0; - for (j = 0; j < width; j++) { - if (bitmap[i][j]) { - buffer[offset] ^= mask; - } - mask >>= 1; - if (!mask) { - mask = 128; - offset++; - } - } - offset0 += rowSize; - } - break; - default: - error('JBIG2 error: operator ' + combinationOperator + - ' is not supported'); - } - }, - onImmediateGenericRegion: - function SimpleSegmentVisitor_onImmediateGenericRegion(region, data, - start, end) { - var regionInfo = region.info; - var decodingContext = new DecodingContext(data, start, end); - var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, - region.template, region.prediction, null, - region.at, decodingContext); - this.drawBitmap(regionInfo, bitmap); - }, - onImmediateLosslessGenericRegion: - function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() { - this.onImmediateGenericRegion.apply(this, arguments); - }, - onSymbolDictionary: - function SimpleSegmentVisitor_onSymbolDictionary(dictionary, - currentSegment, - referredSegments, - data, start, end) { - var huffmanTables; - if (dictionary.huffman) { - error('JBIG2 error: huffman is not supported'); - } - - // Combines exported symbols from all referred segments - var symbols = this.symbols; - if (!symbols) { - this.symbols = symbols = {}; - } - - var inputSymbols = []; - for (var i = 0, ii = referredSegments.length; i < ii; i++) { - inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]); - } - - var decodingContext = new DecodingContext(data, start, end); - symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, - dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, - dictionary.numberOfExportedSymbols, huffmanTables, - dictionary.template, dictionary.at, - dictionary.refinementTemplate, dictionary.refinementAt, - decodingContext); - }, - onImmediateTextRegion: - function SimpleSegmentVisitor_onImmediateTextRegion(region, - referredSegments, - data, start, end) { - var regionInfo = region.info; - var huffmanTables; - - // Combines exported symbols from all referred segments - var symbols = this.symbols; - var inputSymbols = []; - for (var i = 0, ii = referredSegments.length; i < ii; i++) { - inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]); - } - var symbolCodeLength = log2(inputSymbols.length); - - var decodingContext = new DecodingContext(data, start, end); - var bitmap = decodeTextRegion(region.huffman, region.refinement, - regionInfo.width, regionInfo.height, region.defaultPixelValue, - region.numberOfSymbolInstances, region.stripSize, inputSymbols, - symbolCodeLength, region.transposed, region.dsOffset, - region.referenceCorner, region.combinationOperator, huffmanTables, - region.refinementTemplate, region.refinementAt, decodingContext); - this.drawBitmap(regionInfo, bitmap); - }, - onImmediateLosslessTextRegion: - function SimpleSegmentVisitor_onImmediateLosslessTextRegion() { - this.onImmediateTextRegion.apply(this, arguments); - } - }; - - function Jbig2Image() {} - - Jbig2Image.prototype = { - parseChunks: function Jbig2Image_parseChunks(chunks) { - return parseJbig2Chunks(chunks); - } - }; - - return Jbig2Image; -})(); - - -var bidi = PDFJS.bidi = (function bidiClosure() { - // Character types for symbols from 0000 to 00FF. - var baseTypes = [ - 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'S', 'B', 'S', 'WS', - 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', - 'BN', 'BN', 'B', 'B', 'B', 'S', 'WS', 'ON', 'ON', 'ET', 'ET', 'ET', 'ON', - 'ON', 'ON', 'ON', 'ON', 'ON', 'CS', 'ON', 'CS', 'ON', 'EN', 'EN', 'EN', - 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'ON', 'ON', 'ON', 'ON', 'ON', - 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', - 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON', - 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', - 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', - 'L', 'ON', 'ON', 'ON', 'ON', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'BN', - 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', - 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', - 'BN', 'CS', 'ON', 'ET', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', - 'ON', 'ON', 'ON', 'ON', 'ET', 'ET', 'EN', 'EN', 'ON', 'L', 'ON', 'ON', 'ON', - 'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', - 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', - 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', - 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', - 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L' - ]; - - // Character types for symbols from 0600 to 06FF - var arabicTypes = [ - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'CS', 'AL', 'ON', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', - 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', - 'AN', 'ET', 'AN', 'AN', 'AL', 'AL', 'AL', 'NSM', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', - 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'ON', 'NSM', - 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', - 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL' - ]; - - function isOdd(i) { - return (i & 1) !== 0; - } - - function isEven(i) { - return (i & 1) === 0; - } - - function findUnequal(arr, start, value) { - for (var j = start, jj = arr.length; j < jj; ++j) { - if (arr[j] !== value) { - return j; - } - } - return j; - } - - function setValues(arr, start, end, value) { - for (var j = start; j < end; ++j) { - arr[j] = value; - } - } - - function reverseValues(arr, start, end) { - for (var i = start, j = end - 1; i < j; ++i, --j) { - var temp = arr[i]; - arr[i] = arr[j]; - arr[j] = temp; - } - } - - function createBidiText(str, isLTR, vertical) { - return { - str: str, - dir: (vertical ? 'ttb' : (isLTR ? 'ltr' : 'rtl')) - }; - } - - // These are used in bidi(), which is called frequently. We re-use them on - // each call to avoid unnecessary allocations. - var chars = []; - var types = []; - - function bidi(str, startLevel, vertical) { - var isLTR = true; - var strLength = str.length; - if (strLength === 0 || vertical) { - return createBidiText(str, isLTR, vertical); - } - - // Get types and fill arrays - chars.length = strLength; - types.length = strLength; - var numBidi = 0; - - var i, ii; - for (i = 0; i < strLength; ++i) { - chars[i] = str.charAt(i); - - var charCode = str.charCodeAt(i); - var charType = 'L'; - if (charCode <= 0x00ff) { - charType = baseTypes[charCode]; - } else if (0x0590 <= charCode && charCode <= 0x05f4) { - charType = 'R'; - } else if (0x0600 <= charCode && charCode <= 0x06ff) { - charType = arabicTypes[charCode & 0xff]; - } else if (0x0700 <= charCode && charCode <= 0x08AC) { - charType = 'AL'; - } - if (charType === 'R' || charType === 'AL' || charType === 'AN') { - numBidi++; - } - types[i] = charType; - } - - // Detect the bidi method - // - If there are no rtl characters then no bidi needed - // - If less than 30% chars are rtl then string is primarily ltr - // - If more than 30% chars are rtl then string is primarily rtl - if (numBidi === 0) { - isLTR = true; - return createBidiText(str, isLTR); - } - - if (startLevel === -1) { - if ((strLength / numBidi) < 0.3) { - isLTR = true; - startLevel = 0; - } else { - isLTR = false; - startLevel = 1; - } - } - - var levels = []; - for (i = 0; i < strLength; ++i) { - levels[i] = startLevel; - } - - /* - X1-X10: skip most of this, since we are NOT doing the embeddings. - */ - var e = (isOdd(startLevel) ? 'R' : 'L'); - var sor = e; - var eor = sor; - - /* - W1. Examine each non-spacing mark (NSM) in the level run, and change the - type of the NSM to the type of the previous character. If the NSM is at the - start of the level run, it will get the type of sor. - */ - var lastType = sor; - for (i = 0; i < strLength; ++i) { - if (types[i] === 'NSM') { - types[i] = lastType; - } else { - lastType = types[i]; - } - } - - /* - W2. Search backwards from each instance of a European number until the - first strong type (R, L, AL, or sor) is found. If an AL is found, change - the type of the European number to Arabic number. - */ - lastType = sor; - var t; - for (i = 0; i < strLength; ++i) { - t = types[i]; - if (t === 'EN') { - types[i] = (lastType === 'AL') ? 'AN' : 'EN'; - } else if (t === 'R' || t === 'L' || t === 'AL') { - lastType = t; - } - } - - /* - W3. Change all ALs to R. - */ - for (i = 0; i < strLength; ++i) { - t = types[i]; - if (t === 'AL') { - types[i] = 'R'; - } - } - - /* - W4. A single European separator between two European numbers changes to a - European number. A single common separator between two numbers of the same - type changes to that type: - */ - for (i = 1; i < strLength - 1; ++i) { - if (types[i] === 'ES' && types[i - 1] === 'EN' && types[i + 1] === 'EN') { - types[i] = 'EN'; - } - if (types[i] === 'CS' && - (types[i - 1] === 'EN' || types[i - 1] === 'AN') && - types[i + 1] === types[i - 1]) { - types[i] = types[i - 1]; - } - } - - /* - W5. A sequence of European terminators adjacent to European numbers changes - to all European numbers: - */ - for (i = 0; i < strLength; ++i) { - if (types[i] === 'EN') { - // do before - var j; - for (j = i - 1; j >= 0; --j) { - if (types[j] !== 'ET') { - break; - } - types[j] = 'EN'; - } - // do after - for (j = i + 1; j < strLength; --j) { - if (types[j] !== 'ET') { - break; - } - types[j] = 'EN'; - } - } - } - - /* - W6. Otherwise, separators and terminators change to Other Neutral: - */ - for (i = 0; i < strLength; ++i) { - t = types[i]; - if (t === 'WS' || t === 'ES' || t === 'ET' || t === 'CS') { - types[i] = 'ON'; - } - } - - /* - W7. Search backwards from each instance of a European number until the - first strong type (R, L, or sor) is found. If an L is found, then change - the type of the European number to L. - */ - lastType = sor; - for (i = 0; i < strLength; ++i) { - t = types[i]; - if (t === 'EN') { - types[i] = ((lastType === 'L') ? 'L' : 'EN'); - } else if (t === 'R' || t === 'L') { - lastType = t; - } - } - - /* - N1. A sequence of neutrals takes the direction of the surrounding strong - text if the text on both sides has the same direction. European and Arabic - numbers are treated as though they were R. Start-of-level-run (sor) and - end-of-level-run (eor) are used at level run boundaries. - */ - for (i = 0; i < strLength; ++i) { - if (types[i] === 'ON') { - var end = findUnequal(types, i + 1, 'ON'); - var before = sor; - if (i > 0) { - before = types[i - 1]; - } - - var after = eor; - if (end + 1 < strLength) { - after = types[end + 1]; - } - if (before !== 'L') { - before = 'R'; - } - if (after !== 'L') { - after = 'R'; - } - if (before === after) { - setValues(types, i, end, before); - } - i = end - 1; // reset to end (-1 so next iteration is ok) - } - } - - /* - N2. Any remaining neutrals take the embedding direction. - */ - for (i = 0; i < strLength; ++i) { - if (types[i] === 'ON') { - types[i] = e; - } - } - - /* - I1. For all characters with an even (left-to-right) embedding direction, - those of type R go up one level and those of type AN or EN go up two - levels. - I2. For all characters with an odd (right-to-left) embedding direction, - those of type L, EN or AN go up one level. - */ - for (i = 0; i < strLength; ++i) { - t = types[i]; - if (isEven(levels[i])) { - if (t === 'R') { - levels[i] += 1; - } else if (t === 'AN' || t === 'EN') { - levels[i] += 2; - } - } else { // isOdd - if (t === 'L' || t === 'AN' || t === 'EN') { - levels[i] += 1; - } - } - } - - /* - L1. On each line, reset the embedding level of the following characters to - the paragraph embedding level: - - segment separators, - paragraph separators, - any sequence of whitespace characters preceding a segment separator or - paragraph separator, and any sequence of white space characters at the end - of the line. - */ - - // don't bother as text is only single line - - /* - L2. From the highest level found in the text to the lowest odd level on - each line, reverse any contiguous sequence of characters that are at that - level or higher. - */ - - // find highest level & lowest odd level - var highestLevel = -1; - var lowestOddLevel = 99; - var level; - for (i = 0, ii = levels.length; i < ii; ++i) { - level = levels[i]; - if (highestLevel < level) { - highestLevel = level; - } - if (lowestOddLevel > level && isOdd(level)) { - lowestOddLevel = level; - } - } - - // now reverse between those limits - for (level = highestLevel; level >= lowestOddLevel; --level) { - // find segments to reverse - var start = -1; - for (i = 0, ii = levels.length; i < ii; ++i) { - if (levels[i] < level) { - if (start >= 0) { - reverseValues(chars, start, i); - start = -1; - } - } else if (start < 0) { - start = i; - } - } - if (start >= 0) { - reverseValues(chars, start, levels.length); - } - } - - /* - L3. Combining marks applied to a right-to-left base character will at this - point precede their base character. If the rendering engine expects them to - follow the base characters in the final display process, then the ordering - of the marks and the base character must be reversed. - */ - - // don't bother for now - - /* - L4. A character that possesses the mirrored property as specified by - Section 4.7, Mirrored, must be depicted by a mirrored glyph if the resolved - directionality of that character is R. - */ - - // don't mirror as characters are already mirrored in the pdf - - // Finally, return string - var result = ''; - for (i = 0, ii = chars.length; i < ii; ++i) { - var ch = chars[i]; - if (ch !== '<' && ch !== '>') { - result += ch; - } - } - return createBidiText(result, isLTR); - } - - return bidi; -})(); - -/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ - -/* Copyright 2014 Opera Software ASA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * - * Based on https://code.google.com/p/smhasher/wiki/MurmurHash3. - * Hashes roughly 100 KB per millisecond on i7 3.4 GHz. - */ -/* globals Uint32ArrayView */ - -'use strict'; - -var MurmurHash3_64 = (function MurmurHash3_64Closure (seed) { - // Workaround for missing math precison in JS. - var MASK_HIGH = 0xffff0000; - var MASK_LOW = 0xffff; - - function MurmurHash3_64 (seed) { - var SEED = 0xc3d2e1f0; - this.h1 = seed ? seed & 0xffffffff : SEED; - this.h2 = seed ? seed & 0xffffffff : SEED; - } - - var alwaysUseUint32ArrayView = false; - // old webkits have issues with non-aligned arrays - try { - new Uint32Array(new Uint8Array(5).buffer, 0, 1); - } catch (e) { - alwaysUseUint32ArrayView = true; - } - - MurmurHash3_64.prototype = { - update: function MurmurHash3_64_update(input) { - var useUint32ArrayView = alwaysUseUint32ArrayView; - var i; - if (typeof input === 'string') { - var data = new Uint8Array(input.length * 2); - var length = 0; - for (i = 0; i < input.length; i++) { - var code = input.charCodeAt(i); - if (code <= 0xff) { - data[length++] = code; - } - else { - data[length++] = code >>> 8; - data[length++] = code & 0xff; - } - } - } else if (input instanceof Uint8Array) { - data = input; - length = data.length; - } else if (typeof input === 'object' && ('length' in input)) { - // processing regular arrays as well, e.g. for IE9 - data = input; - length = data.length; - useUint32ArrayView = true; - } else { - throw new Error('Wrong data format in MurmurHash3_64_update. ' + - 'Input must be a string or array.'); - } - - var blockCounts = length >> 2; - var tailLength = length - blockCounts * 4; - // we don't care about endianness here - var dataUint32 = useUint32ArrayView ? - new Uint32ArrayView(data, blockCounts) : - new Uint32Array(data.buffer, 0, blockCounts); - var k1 = 0; - var k2 = 0; - var h1 = this.h1; - var h2 = this.h2; - var C1 = 0xcc9e2d51; - var C2 = 0x1b873593; - var C1_LOW = C1 & MASK_LOW; - var C2_LOW = C2 & MASK_LOW; - - for (i = 0; i < blockCounts; i++) { - if (i & 1) { - k1 = dataUint32[i]; - k1 = (k1 * C1 & MASK_HIGH) | (k1 * C1_LOW & MASK_LOW); - k1 = k1 << 15 | k1 >>> 17; - k1 = (k1 * C2 & MASK_HIGH) | (k1 * C2_LOW & MASK_LOW); - h1 ^= k1; - h1 = h1 << 13 | h1 >>> 19; - h1 = h1 * 5 + 0xe6546b64; - } else { - k2 = dataUint32[i]; - k2 = (k2 * C1 & MASK_HIGH) | (k2 * C1_LOW & MASK_LOW); - k2 = k2 << 15 | k2 >>> 17; - k2 = (k2 * C2 & MASK_HIGH) | (k2 * C2_LOW & MASK_LOW); - h2 ^= k2; - h2 = h2 << 13 | h2 >>> 19; - h2 = h2 * 5 + 0xe6546b64; - } - } - - k1 = 0; - - switch (tailLength) { - case 3: - k1 ^= data[blockCounts * 4 + 2] << 16; - /* falls through */ - case 2: - k1 ^= data[blockCounts * 4 + 1] << 8; - /* falls through */ - case 1: - k1 ^= data[blockCounts * 4]; - /* falls through */ - k1 = (k1 * C1 & MASK_HIGH) | (k1 * C1_LOW & MASK_LOW); - k1 = k1 << 15 | k1 >>> 17; - k1 = (k1 * C2 & MASK_HIGH) | (k1 * C2_LOW & MASK_LOW); - if (blockCounts & 1) { - h1 ^= k1; - } else { - h2 ^= k1; - } - } - - this.h1 = h1; - this.h2 = h2; - return this; - }, - - hexdigest: function MurmurHash3_64_hexdigest () { - var h1 = this.h1; - var h2 = this.h2; - - h1 ^= h2 >>> 1; - h1 = (h1 * 0xed558ccd & MASK_HIGH) | (h1 * 0x8ccd & MASK_LOW); - h2 = (h2 * 0xff51afd7 & MASK_HIGH) | - (((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16); - h1 ^= h2 >>> 1; - h1 = (h1 * 0x1a85ec53 & MASK_HIGH) | (h1 * 0xec53 & MASK_LOW); - h2 = (h2 * 0xc4ceb9fe & MASK_HIGH) | - (((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16); - h1 ^= h2 >>> 1; - - for (var i = 0, arr = [h1, h2], str = ''; i < arr.length; i++) { - var hex = (arr[i] >>> 0).toString(16); - while (hex.length < 8) { - hex = '0' + hex; - } - str += hex; - } - - return str; - } - }; - - return MurmurHash3_64; -})(); - - -}).call((typeof window === 'undefined') ? this : window); - -if (!PDFJS.workerSrc && typeof document !== 'undefined') { - // workerSrc is not set -- using last script url to define default location - PDFJS.workerSrc = (function () { - 'use strict'; - var scriptTagContainer = document.body || - document.getElementsByTagName('head')[0]; - var pdfjsSrc = scriptTagContainer.lastChild.src; - return pdfjsSrc && pdfjsSrc.replace(/\.js$/i, '.worker.js'); - })(); -} - - diff --git a/public/assets/plugins/angular-pdf/example/partials/viewer.html b/public/assets/plugins/angular-pdf/example/partials/viewer.html deleted file mode 100644 index 6b738f9..0000000 --- a/public/assets/plugins/angular-pdf/example/partials/viewer.html +++ /dev/null @@ -1,13 +0,0 @@ - -
        -{{loading}} - diff --git a/public/assets/plugins/angular-pdf/example/pdf/4e99fa5a-1d29-4bf8-a083-48ab91f9a623.pdf b/public/assets/plugins/angular-pdf/example/pdf/4e99fa5a-1d29-4bf8-a083-48ab91f9a623.pdf deleted file mode 100644 index 9937eab36f3d8ba217319add507694b24b49331f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12350 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 QbknD6L)7Yw=VyidHzKKpqW}N^ diff --git a/public/assets/plugins/angular-pdf/example/pdf/relativity.pdf b/public/assets/plugins/angular-pdf/example/pdf/relativity.pdf deleted file mode 100644 index 481161cc5bd1e6ee79aac7ab86c2404c4ff34a01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409413 zcmc$`1yo&6vnPtX1$TGn;2zv9!QI_0I0PrS2M8{~J-E9Dx8UyXK8Ga#JKs0=&U*K) zCj+Zb_b%&SRrfkn_1+r_MNx4E7DhHiIEw6=-Z?}#7Gh>%J3~uEI6gimWp{fMVkQv- zX9H_HGh!x112YpRVgOL!!=DRT19v+YXJRG=TN4pGYZn{aKV&&OW1yOflZm{YtqHM! zfQhZ~Z;Oau=+KKDmF7S>6DBAZGbPV`2Yu#rdcEBLes% z0{9~W_#?u~{9A;T?N7(?yJP!v#m@EnisKKF^N&Yde|X$~cr46+m@F)R?69!>kz!%_ z%Ln|W1OBM70RGAY{__9M&%*jw?=KJ**1vLWfA!h^^4b3CvHzvB|E074wa@-nkK-?& z<1e4{@AY5!EZl$P|M~%7{=)|_|FIAFiy!b8FW@g;0Q=t{vi*%I+n*2v*#3kQ!1gz~ ztbgq2Fp1c?*g6vfVg2g@zX|>41%BHWjwV3qKbV<5m^j(FI2r*r6L6C$I@%e1G;t=@ zVghbOVkTu1H)moUCUHBUIFKvOLj1>ZCUJG(81Ofo0>B?8ITK?G17SNiVy!nHIe;s~ z$qfMNiU4(ivpEs}3B|wSd!zh=Pu#-V*~F2UN!;4N*+kUD==ZLbHL*2wHYWzK0k?{P zfRnSMiGd9woSW_sO)I-44$NnPcK;4A_;&*Xq%;$T_|RbY9p(q`AHXVT*ey$XC|R9+Qlgqu3f-%(Ii-_K>L@YzE6~w56ivXtAra2%2%fAUmVnTpXfZ zFMJ5~k+XSyD*A^5kMrzV=Zm_GMDRxXG-3x&P_Hpvx4m%Xx5dr_;U*?NNis|jK2G0K z4pmF+)&diMQ`RV|N$iZi(2Rw_d46efp+`r1_`6#z!<+&;v9Hj|m}k=}gL441Sq~hdZJwh&>bB)V-Fq9ATao5tk!rEGt%P zZVVCU`5b7MugQJ)+1efqVo;}>fb{hm!eBx|9wbc0{eTFk>X(uam2PH`8)A!y`us1M zYpe4oGMwwrOG(hL-3C%UggfQ;OCAGq%#p29Vz=Fx-&YW$x_^bytu3}MSR}l|yUjKJ z937#vydRMz{6$5pWcgd3g=K3z((-tS;|neMCjKHs`|0~2Lv5A|E0@={1Nro6xjL&2 zu*EvDayYGW=2MxX$P(T1uMRwCi6uLM!Ct23^2G+qa9?V#nPE&)%%La7E0Fuc<0XU( z5tH&~pJ>e{vqs;Cf5ZurEx(GgQJF*Jtz*<#Jf3fI7Ux$~!&`H1M`1@PLAgj&HoErr zGSiEi>7+X(|5b;+)dsyPGo!*(7Oh-yY~S5ISm-7uV|_DIJMPo7H+LoVo)K|!^Ap<( zKlgFF`JH~-MiZV@I*qQa_tYt49>F3pL;-kL#ejU)Rz%POCS%02Y;>m7mgi$A3$YWi zE?Tf4m}D1x2^lLN(b)StJik|b85WSM`1`Ou-$}cNhu!-E+tPwDa+c83WL>c)Z?1m=sHJKmd_!tB8uK2y1pAf!tU0HvPd~^o zH_c{!FYi)qpcv!Jm8!kUWeDivoHwuC;1Z8A7j1~9wU(eLu2+$=Sx{KaoPF`i@n6d1 z=dz+KNb1i2k^DKUwacN47TyUNmhLO$GR+CdYEa%KXA_^D3CK2XbbY73JW>a$6{II) zI^LPrfCLUz40-tKJxUIK`2a%yiT*}j106_v*RX`=@UO)e3~4T5oZAKJ{n+d%W{WwQ zBos5;tGKXQ$BiR$D)2DOymR;ZPd}v)r&2<2{65F{&dbA!j7+DP@sZNMFsdcq;f6um zf58&Hn()$@$vW_nOl07gj}S4>RLUKc{4~vCFUkVxKXU0X^!`pA5@oeguM^rKp|X8N zYN}z84Ea}$RMgk9_6`4dT*WAV8~j!j@>gt_tSH&h94Eue5=l#23J}r0(q8yBX7x#n zRJBlkJRY&pEifK&_!azGw|hK;$rSGjpe;*3Bn)Ni{y-M?#y&Gz=8PC1 z_;_=K(o3Lf^rD4Z5b%?7EJ67aJlKI%XwxmvMuF=5p-~4;puY6!1LMBz^uF<>pib;X ztjO!!yue__{8sq=UW#eyBSNbqoQF#Eg9SCp+{uC`nO9~^7Bq^VFxugh#m-dy=U~ki z1PoYE;ek~sQXcUW#IqIzSqj!firx%;5!jZSKuAwvlkVH=kCldFmfle2+;qp-8ba%c zkdI|%6k>SugvpD8_z1R~boE_z^^}ld83mw5u6@CzA8N6m2%G*VmJD%q*--l;F z9Lvl5-hXc}&8laTBCAvpgRAlLtA-r5QOyYnMZ~L1R`BdEp`Dy<(w>uiWR!Q(JvVb~ zx8Mt@n)?U=j>Ik!&j^9v?nRvlE|D4^2nlI6Uxh5d9HRA(aQB!A&$2CAPVYDFsWFc> zGsdW+z)kAx*LLJ!&E)nR9!7QhMwIm9tP7v7(@$YmM*HWfw+bOP9di=g!AK(Egb6?T zJV+@}FnU8uoqZ$xB8>iRoF*fKabpXcY+l9M%WsV(a*`KAF7N01{6kMC8x*lKN`s}w z$98{t`^U)p05t|4=*q8Mo1UdjQ*OVi z-qR0prLR7mS^g)(wl3cYX7lG5)41;wLbmOGuOB^hODovO>4iKm4d{L5Y zrKHW^QgJR?3t1_uYZvg&I?syYn<-pEQ!OFhTB5+wi&5amVbLVT+Q{{ct%?n6+?{C4 z4TahZz4i>}-Jd1dU*YwhEQ&)3*X;F-EL#lviF}JoLUm@f5*Dz&ttl&Uo)yI6i-V#_ z6SnD^MK^_h=XmoFqFW;%E@_tWUb5sshZnR=f+?W9!GY-+u#`;H6J4=;nuX4o9>*{= zqg=9V!e-;96iAm;i=lL)c<2$mpoQR8mTIe1`W^Qg4F)H5Y5uEp%$37j6t2Ljyb}Rq zR)NHjoBrBC+SOuoqglGm_u0NCQA;y!^=HKjR~IIe*Gu6p8IQJM-pl;7Ni3XnqNq(3 z(}7a$R`mMOskR;WhO=B2wvB$mS}u>)}eHd7F15MmHD;K&ig7&u}8Hb)Q>5Ni+vAcqBn8A#OvVFl3vVFZrsK#XXZ zgj}4>?HqsGG5|3L%2|Ne0yUgym_&e?q4QtX|Kn+ZIk2&d5il8j1N}C&B8Vu6I1t|3 zuPSgtM_|tZgvAW(g+W|^Fsy&O003bJ;Re#QseyjIVS7{l1oV~|L>*}4P2COX5dcJ+ z<}YLmJ6lm;zDrCk$^)zoxLKH)SpdK!pPilNU-RU*oclk*`MV1IosctqbTM@PeW~o| zV)Cavd}D~3I2k!w*uTZ&PuajEY~W<_M@8Af#>7e9Pn3?~*e6#V!V*s#l{4NyCoQQ!H$ZvbX zzbg+0b`CCL23BTHVqi3xiGktd1XdtYz>3+zNXXU4eCD#IDzL708WlSZUdL^w;dqujnDQb2Ruh$1@^xia1M6hxd$6NFx>xud*cDm zR^H?}fwX_xKN$X5rho0<9R0m5fJ^u0>_6>o?tg9ns`I~&-?rNSO8e*fZM*!&|F$&$ zMSGk3zoP%M9scRxZ2WHLgvPxb_y!f=BGL=yFJtg(=^3l!5bijuN~>Foe>msjgw*VE)i@S z3`#ZqbeWQ>dss2oSX#hzsUi6Mbqu%36L!w_!ZdZ8^?7>C9=xJ8*hTH3=(dq|A-57! zux0Z0=XEmtGx+Q37VCs;dxvliBy#3XPKK%TA;S`B(%B2RKAM#GPcgyKr-%N=n2ua> zq^IFAFpi(G^ra1X^)D&uPXKO#6ut#aVTuD`$>?>AaS}ql@T=4s?HCA{S+kC5nMh7R z!=^#Ku(|+Zv2e;M^$etsaTYUD#(`(tiH`cX9m0G)lo$Mi`Cy4Wy4)^>0?63B-U22A zYbTQ2nOetgTsCSk;i&ZqV~)A(Yr{^DQ8cAwG%LLYP8UL9?zZ<3Lrdt@_wx^fA24-@ zRRC;qbI{{gET>+nw@L&72=&C1aI0{L*Em@n9h&A3Sa(?@9u|5H@iPO}^rC1mNm252 z`0uhC>FQa&rB779Sgs2SQ#r9flx%I+G2M9;`nrd)&>V**<246Fru@fW}G$Y2q4+DVeB1ug$eJ+y$^yQSI!-q`9Y4DF&VGhCIx8sk1w5ua85jl10`+@0K~P_Vw%au1N}t|E+ChTtZr)?yCc zOQ-zgW?4pG%$S9VtFR_09YbWT25I2JQU5hF?Q5&@uO9ywJ4KEZb8O4Oc$QvB^HOH_ zL2ac1ECoB_Po}Gq#KZ_57-&2`~JL}zgXFbyHTnU0c+_7A# z;*Dr9#F8vg<8-!Sn>)rAFr2BYEhdW{ZYycnvhksoa{Eyc80m-|G;A=JzuP1tC``^a zz&XREBmo%>$3S36i*tpLO7}v|Lh**K3J#Br63Ydn$L$gJRPSkb%V4Jn$+|0v=pSp< z3AE{DjTEz>vBa&gQQGa)fmEQ6@tUC&sl!;>8OZC_ngMN@J`i5XKPsm1NRCG{;FaRO zOTSJ!y;1{|Kf(|X@8;s5@<@MHkH}5|7$6`JsQ7wyBdtO^j)~l6lDtOCqGao;soQs0It_ zmK7qQD1so(0%&aeK8aZeK^S@P^rn*2e#|o@Z~&ekA+_xxY@?OP>}A>62FHu&3YIx! z(4}G9dU4~riPmxuh_WfOs*xc;QK)SSfD>{h$}>cGG-dCTk03{O#!(L%3)uAxU1Thi`*KyCzfBC=(F!9L7T*73;AXQ?D7Ud7l2?X z3hSjTZTt`DFn&+ziqbx2ugDkpF8J2#Jt8g$?$s5BwSX@0M$ycBho$;iqp-HJ`@nz7ZJRGgnuKP{b$ss` zEH9J^?fjMt@grOlLq~Gk&7gCIJYxA|B2x%u^2r=CFQN01sccwjf-^%msK!gnK%*M>QaVjg6RzUG>=pvXmaJUo70-Fwt+sauznvlp3I#-4s z+w9q~le#`_q*QKmLaHO~Ri-%-7J0;J#gYWtiRjhKb&1sZCP2Riv}vNLWO#gQ@>q4K z!#1}+4?CVihs`g!AN0ZKq*yCYcdB>91$f*)1n)C*$C znAPaPnIo`iKDe zm8iveSudI!n-wIy*){*olf-%;SB75hKqx42OiBmY5L!VF&4W-A+QeuGn~sg<;|Pbz{|uC? z3)F=S&N6JI@v)!eu1FhfkU#dfJX=|_;=BA-z4&WYE=G$jc{4snWu|`NRMiDOpIC%P zL(7K1oX#Wa;Z@r3$H|5eE*UGFXq!cNE&6IH#5YTQkBufMS_R5i5C?!r-v2y*c^kcD zg1}t-|8Sc6=f>i{rKxYE{~Kv48#Bkhr>SN5i;jzZ*E)Ki5Au5=LLITNz>Y*)0?CE^HJ!XB=B8#8tMz6d$;<%RWb95t@GX5X5fjtR8#JT9AM!=x1- zet zD)MGD=jQHr0LR^Cwswf^HB2((&jx}_ug}TOhu3bA%wK#HNXi8g4sBhaZ!@DgSJo5o z+)hHOS4zJ)5`ZuJXau{ec=5{5m!24aWb1X$$=zpe98{PktC{Kf(uc8dsO&}b8FIty zOqy!hL_e-wUBmiW2Y}ssHkOCo5}PC}oc0ru$Cu362S9{@QxlE*B@-*Tftihu zDu7HsQ?Ge?3>`x9T@Je`J!uDj&U-M@sJUs0(cpB3M9CzR{7^N_S;$gv52`>@VB4Z7 zr-Gq8E#+%)7P3uW!dWG)v2*9322dynKUv3GF8%+X7*)cvQcJ4L%g{lT`-q z4V46iMAB(OC{d$))DZ9BO8}@p6Zo!lr3?Cf6AzpDyw=A2E>#moL_D~24QZ$4g@oLZ3?@f?+DIKQ?{g(^C5D`rnt(ZYt{%uj{8rP(9o?+<6VZZt<|azTOukhw@4JS0Xk;4eLb6|3(aQcv+RwFY{hqv7VCkh@BVz(7T zQ%&c;feh5C5nHUx+UQWv>2EoqjNGOMYb1(VHW^eUm9rh^B#5)}@34xe!>3vc5iqgP zu3lm6cj0_J1a+nE;4GM+r`$mOesOmB ztD1q%i@joE`ZnD`;iAzxIL|dAz`uc&;0805T-B{8M=nN7>uyXM$R+`DdqeB{_ zei>#OK`sp&Kjezt1OhVVgU$l2QM!@w(#{n(K9~lf>7cY1V*FqcCt41}n0y-9yXF0Y z=b+*_n-l|zEjWa0%c!l&W`}C!GaCiQcMc+BCD%((p?qQE{Ey8NT~?pCo&^G}!*-21}m(_pfzy09Vi<0T2sdz2+!yuwikP>v7 zh8*ppUbnw8pEg#-A*;{t+wd!Lu;mS{<34Qc~c!6%LGDyE*mt4#fvlp zE0fG=*1;Oz>H05xk6s+E#7ePzp4l%rpA3wVIvv!92r!ta1627@hujag>pAUAK#5?)8>w1rA2Wy;MMtk~(e7#>f-prl!d& zz4uRyOZNa(@{x9$C^A^|FV2>!H4FwHq8tM~&oQ-})cLwU%4MHmhrbY3_?QI~z&o)q z)YXvGkTV(L3Q{P;uJ59sQQRp{qd0^^nq!FjDAm1mC~W{;A-FlmrG*eJB2 zHUlX~q(&4(SJ(9Cd7Pa5F+iRlW!paECnPzVcxz9V!jN=0Hbbc6w=w$Knz{#(7L$_J z@Jnk}C(oLD*s?FgsyG{IuEAEZNBgGWXJ-$TF%^ltbZ#$Q$S4RuL3?drchpC%>VkS4 zKz%7J8_T6uYK1J_VyT*duBL1fbB3!~0}2MB?`U0@=9bYV4E?E$-EB|I!j1a|32a6U zB1C#^{#^Osg`%_&5&3sg7)#E0bmb<~V9D4c#Sz})yx|ABW++E;bY7ptAFu!A1$ zUrhl~RceSQLO$%c2F*OhaV3k#-^!^b0I?|p(0xAEbB)g#}#V&honHyaG58rK8(lA#pFhn-;b+kI3TQ(%YMDRt%jSazb=!BYg0*uF@!I&WF{V4I&0k+=>vL6Z@Ml!0~D zXsS4b4T5KkzhFk$>j4>}#J}5D zhgDibH3`@;3BGavIX0F|h6Tm9cu+<5*;}LU_yBd`6>$jbomO}%ie({&hZ|aEcS!}l z5UFUOALqObecumT;i$v)jd|;}_D#RQHbGF7q3SYkVv5eMVSMsnB__PsbmSLJ@<}Ry zR7z=Gu4StlBl2G#Bxjd0>qhg(Eef{kjM7X!lJw(Bf2Dy0&D=_EdkRVLN?Ry=DmUTV z_u_gomG+X0e%8|KB#VYo=d`Lj=QP>7V-^$QO%PeQuI=WyvbSF-0WUvabU>u)RU67@ z%iT0)L;5~H45O1P$sA&o3kYsalvqzLlxnK)cC!#<=bmrDE>he~LnJI=r+0ZThnET^ zO@};mla2DqHkjNYDwn z_7?qQKq^~KD4peUVSW7(<^_21z5wD!dRw^rdNedD!s8F}!?Q&<=miMZs17aD$;(fJ z%o-ZYh~>tSMp86^DrS?)yw%V_-cRJ*S6QgOX{DSF?9iH7Y-t*9Jr%W=u9)Wo5}3s-Zm&yyNseS z6OiD}HGSXt1ujUgV>?@iK#ss6P!xS`A{6>7@@v9T$YCy<*(xvTV4w6~P%`IG7`_+4 z)pzpRupjdLgzuiW9$IJfCnJ8Jn+(7V4`&DH4>*OPIRT&b*?py*^C2Uk-opBEfe0ah z;IFbAKDqSb#{H39%SIfha`E8Om&LG2B|A9F-H-BHF(T_tI??6?V#T*O;>6H+g`BXe zb9pgci*Fi9mjzthV2mYAM+E(^FnYV9taUN=)29QEUZoZQHM3qY0STP2iT;bPNwd#T zGFIOarqq}cF{0GUgIHE1k&d7i*mI00=N%*JY;nahg9{}aKdalxlsPR46LObFy<*T*Ig`15m>e$U>cj~xRaxD_|VYR%RPp@ zAH9RDjTw<~vGnRGSf`17BNC#wM{F?5hPh(9 zwE&tUIpEr@%m3Z`ZS35ftp9eutxS748c)K}cTP{}XbR~);3#7~Ccu+N zZ>tA%qk9_yB1D@|Rnvk(YbDW3Q|D^cthl7)Ky7(+I}ROTaX2O8;NamU_5Nw&GMq@a z^)8vHo78%C(c%1HIegUr<^K6ZOx=!yc^kLS7I9OtrS(@U#Xbtz3gl(lEi1eIFs+AhEMKX5!Xsg@lnmKdsYAhuVsJ7C(kBt*Lh3&3)e5wfJ4ZAF<%*^CUVbyRGX^0_v1G1CfN?cL|3`!xZX`wN{Cicgcb4ucMy?ozF^PSj)2T4)4cG zv#o;YEP282R4*XMzUB2wiNGB0<#nRnmvG{@xCg&T#O+;D*rOpGE$Guv$Q6>}<3h2~ zcCWd3v#)pMMIbkY$C3~Fa1>uQwd+l#Co!}>cuHWorR;k&#ty7MSuLHTvQ1xpnKRUz z^4*$nKQB8;tTUB*p)IjkP0C4AGWbC_ufJH&t(6EPdSLqD=VIXCM%0?nD%K zv+~HwVwgkhF!Vt{uuCD0_>cyPt~V8{g?8+jd$7PnKV(+t~bae#j;`Q**W+nh3+(3o-@A!R2!)p|@QoJvECOQV(R0AVxf8Yve-8X(54fGs6 z8yZeDOf=x0(3f~ZM7p4^x4jCLo$CQ%mE7l;2mmJ#%VhLs)y8!cYR(Gg9`k{(X8P*? zb=f8R!_-mmJbgh~a_~@Y`jc@L_Kid9DsLm#h!j&o2IR_dhhc$rl%d5aZ{0OjZYqV_ zQh9wW3plf>$pr0#rLD7^5KPO6RPs|1N_qs1L161Wz13?+ATn;qaJ-O1%uNczo1@5# zu5&}f9>V(>u^YrAxQ{+Khj~$Wy$p&gNfp>akKe`7)QH>W&2+`Rd@yS}#wY=YGFgeV zZ*Z7!;mQ-cOix~DEeb{Lv&?u=)&m=R>I|8jkoF zExU<_T%7gmZ5OSsX4nVJjBN~5BrZE>N2$w*B&Tu4vmHe!)qeZqYsr}l#1d^0#_lGf zbO@BdIm2{2L`UAP@@~qh6DBhl&!9$xjyr^kQlo&P!$Wg{F6c=)}LyZNY~ z_Y1S$xb=R<54Xes<{ zpwj9Kkn}XB!InT8IK;R~;R}j0T~cN?Wz7_QwQy=v?6V-ajhMScSa)2XGPj3Fb@Yoe zB>%*$!ZESQDpc(qI(mWrzKBj%#3!pThZ$8MAlDakOgu_2zi-Dw*NkD%ksTq*Y|ze+ z8F0iKYd@1ViHYE+8z*|{x5M=df?wV4UP4CrqqbjMM>dG(jaHUUj3bwQc@as3hp&`2 zitCr3iR%>*Qf=1rmn2~??V+$X0j z`4UO@Fnb)IT-=7kQ&p9SEh=fwyDIz511UK5m`a@Q0pi!W$x?Ll#$VFR(c1D&&tlEd zh#UvsU2}BGrb?mcIOy=VYr${D=~LOgj?>J*yQ|Bo8YYYgWcsW35#&zN=Olr$V5!*qnH z9kFT+8P|3vElCsHX#CN*S`Wi`NLYS%suH$`#CUpPX+{3ogH;>OmyzCBfWj1f|kIMTcr-LvQxiD6G(PE*kC^xo5mJR6mNz7?-|6nZ!mO)-j2KGzC!> zZ-U&d5HDA}hcXQ!EWAmAfOI0$l3Y&^M#~kuZ-b)mk6h3}?$TGH!iz-|3}FhDib$G9 zkX45)By8r5pq7h4>F5>U85XJ?1`?aS3YhL?H@^0=&%|!AB~&Zv<1*~oiw0@R$&(J` z=)>E(2*uT;zt)H7K1Qa>kS~O9rlkInU&B4A`!eEHY3wU9@olnJeeZOb{ zsRpqb!%>?TxGa7UeCpV3mjtVk3nGb?j3@tW{DeID$XM;iW#ZjshW=u%Zu zo=XPFT^=*WVCe%Q9J#2`73FA;JYH_+eUDV=ySy#!LMIvotRdj*E3?Ii78ShtIE4aY ztv`1|#~okAj#YI%_`YqqD3+tnW#+LUN{oOuR-BGwI0dXE9bnSp);#~W+HRo_A zfn0us_9mAq*RBJ+s!n)X#UXuUjIp1`cxU?Xc%WJc>JaY?pl67`O2E7meq`(zKm;zd zrJ}8YN_o3jP4M;A0HuazOh7kFAPP93C~Y{eBD(reDM~o7r;V%_e42j$XW$;@N&9R| zC?A>tEL5@&AaMu`-BvI{>wI$(03E) za9MoUul7@RR{$K$tCWT<=|gSS5Jom(utv*|F>5Icw89bqbkLgMT=uq{qak3#u zvm~+b(4p`tMSXA8@n`Y`&EiRC8! z*D#gyu~sr(g{R0v0P1B1Hf-j;T02lAf4QkM9s54D%1F6siN80NE z=KOVz&dkDG-ZZb@cEbCPqq+F84B1T91I1@sbmkMhVp zPbZ!?YWw#8lV0c$ntezqP&?x-P~gy z>pll5UR?fqoV|pHs-|$&W-ixAi8pU*2t00oo4%EQiv$3g?J%Ro9MrdFhLvEByee3Z z`ZSK0*xFw$YUJ|S9nUq^qgZUu-S5Hcp{vPa5zOVAt$9Em+^ry?bNSRvR=;=(wUt<`&)EI4EN43P#3hYCr4*W;y^jQXiI<*|ldFUX>cWyl_ zJv7Kt>1_-$SCw-*GvrndF5;g7Ms{&9(bfE4u`m~pb5&}QZ}7$z zx$tEK;jmg)=YN1np^!9bPwzBrv0_d*NJZyp=%JakyBAPOLkb(gay=Bu%Q*1u)tW=n zY8cU)wBJmgXM^LI2d|N-;8!;UX$}>kvRHc--%|Qzr%CZ?ZB0=mce{x)6478Cv{o1P z-V+{7Mzh7l-N?Ge^h?8&aj)6OK~S%EghN}j%=)j>uZIK})aBE0W@=2!E_YBWkCT@e zt6d;w-lEOx3eh$oyMj91X_t@vs!FYdLiOmWCys!!L>MDqiSr;XgKvbUOuiWq>t89% z11wSPe#c;vS2^NOgo$Xdq8SvOj1XRLjZ{euva^J4XD>W2AwZ>eE-&m8s@m`{P)^hA z|Kj|^!(eYKy_?cRzS3z!tGLh3!)$f$(^P$snR9ujE4*P7@FPS-oVEE&Bom-}s#EgU zc>R5Z*jD?ivel8BG)CpuQ{lntjsaaDon8e_lXj*KxR2v%^RdWY*<6kXq%a}l>#ju{wlOetrarhj-1bO%X8J9>;P4Ovd!8~*MSekL5-@MA1kHb#fDlO~m&#%%7xnWHDL9+c! z8$(btgSpaUVHnxKq-R^?bUjuKNuGb$v!1bZphvSt8D_9HbC=Cvtz8hRp4SP7&zfVG z^{js~T$*oN(x!}kOiz|H!;GBeQg`qRl(RC>?tcfJ1HSKP%0?7SZL4U=*jo zwR2zl%Le$ZQl&=hOSwN0XxGe&#AfPp5f{9@O{K=6g>X6~*jY`x$%pVfP_jic7^MiE z$%M~f&Y2EMwQWQxSdSnueZv9tpuLsGg^3P;2G}h3g68SAEPG@mnSIrUV4YYpxt*IV3omdA^Re2;}|? z9td#>5nlEj%;}E9DuF}wom&;{8ajP|Y|M~TrN^wRiww9>$LvFX5a3k*qmtD-sGToW zsz`wbiip}lUwy?JlV z7&MvXO4R2gZ&~6F^C0KmxYu3EmFK5Le;w!dANCn^84>yY0$~uX3a(BAAfQ9&@WH>n z^AWAs)fPubpe3@08;%hsoXu-3RuD!2H!tUbxV>j&JvVf$4A4@hJ?`)&r*|^C3bE~C z&4x{{cn&*_V)V0~u9>QLjCr-!j>K>#CgA8Wo%E_YAL6F!$I|TPIzj&ty|BhIIL@$I zSfP089Lj(585OT^s{SPFaRO#?BQ`ssCw(ZFLY|LZz8L(~`MaBw&mcT%h00CY^;U8C z7mr8w*n*4)#ez_c-mzZr(_BVs0>e_v!PNV@$SCiF2KvVFJ)XUt3d}3#-*SRG#%rmqRzhki1QJanvy?Ybb9|sFnh>5N=1u2i4{3M| zGnqI=00~%N`<$zwlJmaM#A#RU5ad6nGbt+4aL!Nj0-3OUk4mWwV0 zmOuma7l+ShpAdt|1ydQs9Mc~VZBlY<eiFD<1w4=@mKE7`$&Rh-5gPH-Vh`c}~^KSr4S82XGTW?9k#te9@^%{6Z2; zJ7MNT24C`tpmv2wWV`BsBm}fQ3MxsG)kQ{`fxc_Y#`FHFRbxt((+m{#*jgQNa7X)M~c4%0&cQar8i+iI|rAKdHuwE_&HsEjLsXzlL zsmso~1m1%bxI)F2w!L>cMpjQ?mVQi9I;o-}YS#bqob8m}A4hI#Kk365mu?sDKBQ;m ztK!8Gc2^`u>>}Vt+=t?6AqxFYewArkJSS#a+Q|`YF7w?89!GK;mj7go2zcLgKjhlG zjtWO7)F%5~`0WGy99U#5;bVxwJtX&j$02dg41=D0K{P`d za?!fil)$JSGi8&@n||9)M1RCXnV{Nu2}QN1#O472VpI{Gjbl&_7*MQxz>lz>Al|7g=SMO+XK zLUPPXzGK4E=$U3s6XV#7iG7@yBGB+gFj|2MRVDJSxPgsx+%FZ3xt5~%5!A@?29c~UIK~xsHK22gi z*wlZK&Z2XyrPAAu0PWJw@@kR{#E_;p%MgM|8{pE^YRp%YDfZ zJsUjtccA-YQO*U^4&YvQd=y4#7|PnqR<+f6I`61!qfs7*!(X94%#I%X7k3W+?FH1| zuSov?{HD&If0OcWk3jx?i}SyI=YX99@Nahxe(2alZ#Klf2()+YDPWGPib^HrZ!Hp1 zHt^%0!~q{;5aJ;6Sm9+|Ty9=$O&hEbjO#7-_>!|!$Jc4-YMnxhS(4#Fk$=BGqfpV- z?0(%W*c54X@Lbt=e^$H@`0Dd=H#8$R)yHI8Lv)b6imxfS(XZya>{Gbp^QhQ(oNRgK z>uP(p`pf50YrEiB=gH^P_Zhp~#;4r1`^I~_>6qyy+2IktJQy$YDYNO<58LL(`>l|E zmbAOqMN3Yb%}9gs?~=PeeM#ZczH^DS$a3~(vpIZA5NHd(Z4LVfVY_)-@ghQs;=b~v zdd!m}_Nf)oX)2+{-TXzOX)UA`Q4QRPDD?B^a?u;`-A_CUCo>Aq(r<52J4r(T~lz^ml0Ol0(p33W0~ek|i>qX_@keM0mohd96d!;eaM>`h^} zv4*GuV19!6C9t%1ISa>eJ*U?F6F9RGv3cL)J~Rm(_|P8z`OLm)tPXwfe$4s&9&? z$r&3JGuL za!%cg|J8*VyS9$4a7;(e6qAh5Daj@MuXYX!$5v!j_vzT>QeDxsNB9TnI z47}Y_W)K9IkZVT-eI@tCVe*)4U`b@s%X0@kmV_yxNCO5gz~sm)k~nFSknZ3 zbIzfHg@P>yaTX|hXqpvtIcT1r<&^^q)_e_m5S8?7+@hgdeu^6NT=?4`Wzgyy7j7t5 z#5YYopYONW323^!!|lveGw1QHBPQI%{or{rfEyU5Vi9YQ(G|+#c!C&?>(}o;JhA1= z;*634X19P1MKL{=M=ggn1P}{mk2DmhqN7!UAA)R)iBf2N#`?;O>0$?zC?dh7 z!Z#Wh=2KJz28*R=w}*~W3k5kXbqVZAVn%$~aF335M%idPNJKaI+))2UJK`)>{7f_v zD$;SJ8j7f2RaC6&wgrH;(u$4P~2qoJ~?ZFF_ejFjUC*LXzjqpo2gs{_Gn$wJKMlU5)z zmu0p8T$)C(&5gK4Jk**?&S;yz6V*@j1EK5qj;1W=@4T#e`laPT#>{_)Qo)WAikHH~ zp*E=S8TpvrM@1RaqwzRH0p*={+J18rYhSrszZmz7+9;<}&NZ?XXUFO>buOP}$Hhup zkVRqPnnfj_ZMgZ_b=fdU0@;=8edhmG$M`T{8bp4dl(kRl`+lDo>W=QYI=W_@@h~ik(W~C2dCOC*<5~rkj6zc8Y1F9C2MI?>9g!&kR#Q> z!z#%kr{LLcDU1QPiMG-u{T-uh1g`XGog&$=Jr1=M=58gEfX$O%|Guz3ao|i-NK)w0 zXY(19QIMp$k*sCgi`yCe(6+(;ihKu8Uz&Vq99O_Y{-W~R4dp8@7|^dYl+cfJkbl$3 z?3wj9OH!I9!j|;D6!ytn%*23E+c0CtGTC@YCAB$4grGND&3h#C41-jpLgKao^Uv=I zzuK1?FXh)ljQ|=)DVV@d*8-Mn*y6LM`dvYyuDlEnmd8oIq>~c;H`3NP<>QJD$hsNb z?q~=vNd=`EaTpr1tYyrg{D6cXb=ZUZ{^6UnnNGT*1bZUI&8IR zM_zaLB^?Pf7vaN@dhJCxRfGqp?N9v{4kNsyZnK;UR?D$0VF zjYn<_Nhdf4(FttA4 zJn%rPSPB_-|JV#XSQluX+e9xV0;V(5WD`6#`PIRe-`%k&V(sinOfdaD<%eOii@P^gnKQswM$n?i~ET>eu36tOuOdC$huddVs zl5$ceQ#6~kkx-G&%h$q)CUu4`9T+rYJ4sU{!KOA5-qppRsIm4^2!Xf>$@K!MHE)nD1k#C9U>9qW&z1iojgaSO-4$`*^!hCHNc*w~Ee+Ytp z1b|ioZr;*nmYLKsH=c{_d{B9a2Rd0=*z>yb;YSXpsFhu1&3HPR=U(-O6x4o3Q8C%TKS-^wF z*r$<#3J*PsY*}$3MBy+h(ME*7(e1nIlALMJ%QgOsjlkJ*n4nMcG~Q6l{+zPrE=WIu zjo0#}1;?V2T(nF7Pc3ZthDW9l*&1`eP58;_s<71akMyTdP~l$yIE;)H3evr}$B)D( z`rAg7_5J4l6k=50zE%ZYm$$Rcb1g)~9p4hktnUsFMku$`PpmZ-tWlIu9`=v}1S$WJ z;bKj)3~t>_!|u>l=9>_Q4~Y^ifx-86GRO#!v}(PJ@h zrNm>9?Nw-V)RuGH^~VfNniQ8S!*pgkzWnJTOd=6_YX*(!(bSTQ+OP%Rv&})r{(5fc zu-AXHg}}&LW@n#-iDc9PeyS~5j~z@YQNjh;mgrxCp|D8t*pa2}ojsVs;9txsA)^2Tr5$!wfZA@l>KK6TYe zO6{!8C#$<(?eBXF2Ao11^p^ftn>A2F5~y;s-}F&0Zp$7*ref9YT4Q9X zDbDafMCOTQlK%TE`)jhh13S+HrqIQzZ12*&c=v{YeK~`-Z}y!oXTzIu zd^|gFZ|j8RR>uZUd8`se!TR&Wzp4U5;3*1DkS^N@6u-N6Z{6oxg~liH4u; zN}e;J1whCZTdIO0*tDlH7L1T+tXvA0lr~Jh3h6w4ClhI}9r|Q@7U4cBJfrbK2{wl& zhz+NPiC6+R{*kiP@D-b)hT*@>+9@^1_zSBdTqq>1E5_-2%>T#i#Xrd5{>E20LKsHN z+YmCgQ!dxalEeWU2V4-WU^i2K*Tz{O>kY0Iyt93o_OAsd^rTb^^5Lq??6tiRF{Aj& z(OrpQu!>xaQM!bl3V)uAX#VhrM89R;g-Hs zM>>s94wNJ=8J60wuh`IZUkIN-UU^}Cn?*7UGKs!$GB(+D?-2qxr<^LqjSht*0>KWV zO9p7#HhyU`Oj@a|5ZNrwH1yVHn(-l697m(a8jiEYc5WJq{HllC4w~A_phpyP>%q7w z5)FQJX=rulMewIn`D_n~D_zr}1X5%+iewC$PvrObWBT3)Z7bgF;~rD$W={nss3kM& zc$|S_D24{Eo3Q>E$%Gi~PTfXeiH>Dv*C zmhfIf+rZU!rv?DA-T_{>yPjMa&R|?{d4*Z2v(>}V zccwUS8P&t_%Yz9vA}2h(BZ$a?2Et`WdsgqoQrg!I%)n*IGmr++UUzLp4bXfIJ`qZT zX|#GR1Ug=^74A96NhneLyjgYS?Mp^Q3XH~;?e63)cI|1x6j zElIwHofduCTbmoeA%)xFSD)&6!re~0@(3=C)DP>QDU3oR@#fI6K2nY7AJWW6;1OsA zzv}3$+;WmSKQJhL9`yXfnRC?UQtq5ApH)`2O{ z8fEity)VA{gpKep!b+>w`Rz#`VB#WE*j!KBEsa{>)UyKJM3$QCcW&FR-B#1Px4x2Mv&jnyiRJlv2e2njSy3O1x@Q< zODsb&p+{9sTmySY2V?>XHr?!=xXJ|qDcxZu+B$86pY(^NW${(1EfpxRIIh=9x5l5& z!Qa*)fmNy)L;@*#dr4qR?N#p!Ibs{!h{G$vO2hu@(PqRkwdYFCH(8FEkQNh_cyrOoK{B)(a-a)RigXB05b@HoU$* z_@qRYqk7Z^9RT1X!*wW!&YU+CC3G)>UINdh#5}m(OI@5>Kl&b#hQN%vUz^&pe%!%O z$1O{^dyC#|7J#~gHv$QQ1tWp}Wib-x7>eE&4Pb=E7vssPf^wvmQbA5V(xCcJ3_Rq26Nt_Wdw4j6%va z;7b>cO(hwtu?0x^3#XJ^c`Lb4MA!r0QfK`F*E4eXqz=+8DFhMq+3^Evpg!N(BK| zCdRq|D<*9WxlDaUg#5+_qyG@*#R2cB~L3&u9J}Sa+_e0g>ejf*7iKD4Gf3 zlt;03E@+Q0ci0l>2w5*N%-a6U@&#uiOr+V?4}gcM*F`1(xkU%<*gFh<{*w*`b)TQ+=)(xQQoY{eh5Ga&t7nZp?VMo*RR=jWYa7-1G7MC z%LsrfCA0}}T1-^(TJXybgfTjahn6ims-?G))2t6 z5@ERjGL)?wqGC$CwWs z0pJhKoX->b&xXM~?n6tQG>!;A1G=<5?Ta*F$*8hOW{Qh7Cqotd5Y*oHE_n|X3(S{% zoySQApkSR`e|DY$2Yh5ENzVJ_zk@>iQ;^WKjUtcd3$Zd@E0oD%TJhhH#AdY2KVxDS z*I)U#oZ7j*_)@To=cx0ZSqpM{?uePgpMlondc`8r-i@u;^u2l)_m#> z+|_6De&pet{>pqerKC-9!j0T#ddbmoxg)1~S|7jLR*-XpO-3Q>>0fV78CAT!=&sl& z)Nn5AOqG>(3)^a9$kmb$vWW8JcYoM76e^A7oQzlOUp+y6ao&KV#^3D^teb7&jX+S; zx^ThmFsn}yBI&^$cq5{p&_x^x+lqk?yz8NwB^wf08`(rR`Y=;(%ft9C_)5laTyZIF zkgBEuT+hPVz?r@l0LfmT6cTFP+|Jxj8y3)G@b}9E{44KX1N?(kSq^vBArwK z7JQSpq?wg08fxeaDHQwi3rEJJaSsCeqhmD(>JJ71g`rQ~(o!fl?*=7JK0C^n3ATB2 zZj)!c#eui0R{SoaSb@{|`d@qj*|WI+1)l!DJM#WN#?$|Y(eHo4)Bi(y_x~7Av;SX2 zQmwk$&N~yXe(UuDkC7EeG7GU_W@CO1q-{4f*3EIvHBzNbo&{-0r4eMEO%(ONz6-nO zPq|{jCk83uySPBH%jNSwU^n#jex9%N>Gi*t@pX>7ZW!6q?)6<|);iCZXQ|t6x%N-_ z!yUN7&CknG{k@;}&xNk%{H?ctEb0D!ub)q=`sf2Lq#2GIaCZd`S#HdCbAO$#;GZ9s zpKl-AYp>_`TI@Og7VLIB{nox2bars({?=b~e_h!O?>liX8>sqSanj}1-df)Ib(}yT z4E}N6CF4XX@XP#;m$`g+e=^t4aQVy1_snF=#s2xfd*}I{Kj|LSLy{Li#CVtYwEHm> zJLvOf{{<4o;h)QPJ<`>GaSTOeE)JTsePq-TR=(xAREmz(d1sBkCt0F3_Renqg-`|5 z-BXfus28lqh-^Kn!6guk$p%<_M9yoP#F)q;H9u1!-D6t#9f^6+i_4i8(-ME5d2o_A zy8XC`Z;N&Hr1vfnmivASMqEV7Ym%wR9XATb5eX4NeSAX>i6Y;*))RAo1N05o6$3NV_A(X4`wH~^g>wU`!J@aOQ$$at%0C!~-_cC-FDQhr9iw|7;Q*xrlw-!-8{ zA`{UclEFpUnIhy*QZMGO9|(MY+bpfVqrAgt{p6uO<4bxxf!S+`(c8zxj3oix+}8oFYxgRHT-O6mpaJThe6MebAj$h}c>RhIDhd{% z`~bMj62ZL;69YlUBBb#=o|NBDFi8gf3R=R?@E*cVN)*uPMEn)mXbKw2Krlm022!o7 z!Zz&+4fsZ%oO)-rSZPH_g7(Xy`|;sP{h|}ampJQKWwnRH%c<^dfiFsZlPueO56sf|c#=CstpUm)Bh)SqLG7MjJe1jNA8%%P z`B}qGt4oizVv>U{%0wk8+WJ2Tuw?aI@*W2m>Hu+Lf%c&&osEajP~ zz8uOP%H}h|sT<0TrG$>-u=Tp=)tz}jdZ$20_{^0>uj2D0%P{{4)MD~&J4hMrb)v{h zZzit@q^eK_LzdBTNAPq>;qUgzY-2`?KV)+@$NN{D7>vrPk&y%lJ)#j3l8Pmgf`^LL zq~SMzxBTcCFBWd%eGifwBDiuDk%aXfG1Y#(yN9*)KbOY zt*Y-Ss9nj}1E#P(HpB~1HZuH@Z7MO69Lf_kU<8|g*_*_oTO75RFsz3-8ea>1Kf#JP z_O6LO@)fxdG=jf-@X1%U%!pXJ-E!6rzkpc(woXJRZ^(b~k0 zXR?jM#_`e~|IfixL@UHTN(uAaLJJWnAy`(!&~!=8CY3IWi2_;w%_hZEwmz|!vT2A# zCZ~1+X{3>@`B3=~?a>F>&uMF<;*G!xWhaZtf~6A^xh`9-8ZX07DR~)}!bgpY6>Cf~ zZNmZuvvm|qOP@;3b;lmQ7!hQ%ZB7kNid9BYN=QcZ@ku1jM(Zw_Ke}?o%QE-3xjyxS zN$p-EaPm)FiyxXwMb4D%WS+@RPx2O(W)V&icBF-T64=V_+`;7vPmE1+JU7 zB(`d^ESLJRzDp+_oiQ$M!f`^^9up(uks#ZquxEHG9kEyX1UQW6dCNU`f>iicfx`Gu z&=g>WfY{IxLa195-h=hzk^1d&QOQpw5s|toKO1kn_MH#09NQR5m15!wN%c%4TeZcG zTB*VlR(6ZLm%g_0dhOTo0`Y7|zY=%q-RS+>HgJ22DuG%RN%pD>HZmt3{o-S;ImaA~ zDT_bISI;zutz(rvLQ$&T)1L~0=)q2&8Fc--wk7g zEP90xi=_zklz2a@LrGZb{+2l#q9+}ZEs4txy7dV5i_@cATsE>QV5N0{kv04SLvT~% zGXB~G4d&pA2nn6g!i_V4p*X0hsR_*K zF8C23PER`Sgj5acm@frJa97nw4Ki+Pf-TCpdU-N^fzXe7Qdc%`n4iIu#hdv>@h9CW z=?58VA({P9+XjV!PVC3WgsjN*J`QV!t4Qj?9a=_KlK6P3juMt^MeKUn#M+Z_nTf$p zy((g4z5-+!vo2>AUZHd2Qh-ZFcRx(v)o%|hoWF>78gOa?DJvNBB2f};oLvk_;ybyf zxo#G9!c>k&F}n7q`XvZZHpPk-<;QfUVZ~~nQ_9p*uURt{*(4u+KB7j*!)A@82L*@; zV}jMKuw$8?vr_S6T$ehqNFoSD4QQ*plpc37f;`TP)~P*s;TZD-ed?56e7MOYpp@bi zT*`?;pKtq>^_(M4;fnd&ia1)zh!m-M*UOx#RH8#CV0$!v2QCEPf5cK_i!Vf^nB0Wx z$wR;Y#oG?IQf~9cg75>}496Wm!JPpGo_Z}PL z>t$ggI+G$ojJN?rPaNI+ZUc)RP16aGEGVuK6flv?R1GVBYDor@o~*ydf@Q-yQSXyO zF=}kt3VAW6VWn7{tu_A9FGDW{(;TOw9Vc;|Sg=8Qy3;IgF-NpcUbtXv+Y%;1VrKR?LzU})=D zx{UgO#;}Tn);pr43|;aW*PMwb3x5kYVF|$d&ur(G!)|BasD0slxXHZ@c?f2#xcYX7 z(-m4mk)1Q#ql~M_Bn|10*m-#sRHNUR1ldVCJ_Wr&aGjc-!gbhkWxs!o>pRj@$+r7Z zi$J))pJbJ5()l?|IL13ArcHD)Q6Fvl5n}SsZ-H6(W$H#s8QS5luD+>&+Igw#`lUI2 zovW0|Ry{SVj{Ugu(Y_DX@gG=}9d1vgSb`Y0JiF93@o54Q-l~K5IikR znf09c6O=U0{Hs4*=%-*oX6KTJ@En>+nl*F1^m>c7f$>o$^qec?W0@}DN^gO;Xr(t0 z$-RM@XhgItRpMHPm_p-d`0>ZWcw+2N45ARhQZ=XVk$g!4yvhBxO@q|VKyabKoQ3-f zq>x0#F{GMEr=f%~2!ts2m6?D_oFI9_twEx=`H4WPs=i=QgwZgwn)tD-R|__X?V|tW z)`*2PVZ~DJi5JRx!&0?Dr_WBe$|%t2#L2*345g${zf41*`{F>g5TFC|Ri9Z1W$>9x zu@Ulx3t|ZhP6OJSd2v#J=$J&6^tD1hXrWU<$}$deayFlWpSC?SmPT8v9O_=ovbc)v zm~gx#`e5p78%eSv>L0f}FT5m$0-KfSFyxfd<$t!R^48SPMs%8zJp!QdIEOW%31EU` z3^JE%`_Msd!&ky2KLN!K;HOb@7~$j45x$$P^=Z1c>>p`rUu>p>=^!bIIc+u~pZL>N z_*)1m=sS$#s!Wxs;R}nriy~?<&wOnlwVn;4dk6;Sj0W*(u?b{53LN(!6)p^FwW=Y) zx*L{`VNg`%WtGI`DVP;6%s9RxghTH*M!x@?XR_1k*rs)UYLQh?y=cvbenJ|##aQhu z2kgAx+JMT3%--g%wt3K0-Nsy?%sg zDnMA|bFV^Efl?B~rm)~jX&qvXmyfAjx$jTX^@0)0iZgM1nnngrQL!+;?XY1GW+KX! zeOk}uCzh^JQ@(sHqDkmOj&_5&Zil}`DZ<$WS=OruTzU|VZmW+0V~K?rhjPdFHkccX zBiaAuqI%;d2v4SODtM%B4Ha%``Tz`P9hRce@mmN*ztprFE`_j#*^mHfYvlo%`Rsvc zKawAinl5v<)?}X^(s)gQ1%u&oJ8W5vdqz1&36u&Y ziy;aq1?-IWEyONzlgpBhLHW{unXUOZ20e;u5O795hvqrW8H>o3U!C$~X;?MTw7KQc zb_oW~*9hp8cUWeeHSB~T_JMA}GthYKA9eF&^{Q73bE;DztZ-suT$fF_b?M&Hqk{|k z9*OLh1kD-aC<}E>(dj=;wu|XV3w(3gKhfS(d7kq1ohnC#OC8##j*PySo-N@>6$NsN z+Hl*FtVNZ|W<$RiA-{`4kDa%z9xAD~qbfAbRky$aIessKM=+Bx;)Efiunv`%8_G^2 z0976{KJul*0VJcIPr^jzA8_GL+#z(2U`jj-%biLjPDtUvdh*-tS`gyHhb&}syg3m- z<5#^569|m`E3sE4syJ(6b;`*>!cKv57#4mT5U5pPGs)68B8?c9Ktv*RX6* zK(hK{Buwp7uE-~oIiC{Ocs3mL^^wJT)11Y1hu8<0*!%CkZn*%GCxw|qS*5DGWv^+0 z{pFKQx>+qtumYq?&njwuBOIqvVVgFGC{d>SmJk?b0FCK-`^jf0`f3VxEG?K}bm-z?`T^H;fGJ_jJ>!xdQ>p9w25B-RlGx_X>_UgBg#`dlCy~m2?5I(o-ZrGh8$&CNrOTiLYC0CyP%ml#nwnr&Slm2O%oNIn3 zAdwzidMUyZ4`;ah6OHPBmW5xJHabBS=m#U_@#0meS@E`iQU4P4IDRL%Ej zb2wi;6`+Wq96jILCcvl4Yc`%@d}m1vd@1DcsrMg69xYB^f?m^Sp9f*<*?ykxl{q@) z_bI^SsgdjCWOhIc@)FK8;Y9Ds+_2X9*nzcGoovSpnLcK+VKzlwoQbE@WFu=C&wXhq zNZ1hXbC;zvZBbZp>g7fCowmV{n=c6Q5yjg3#U+kU%0MlK{b2vHnfM}2*@Ixy4 zqwWRJfP@_4Hnj09y zvXi9?l=XzBgDluYW)^M{Dr?P|`~TCG1GApgh{$lALw7j%l;O(mO5a}d!R4L!{u35( zSb)hdQVQ=~&|<1@$&P`=gg%kA4V;DXgZr_od)pJdp>IU=L$o>bLziY)=rjSH>eEp} ziA?sgdEYJ}ISM76310x}?Orc}_s_;P7!nNiTre?$koVCGya-sW{z@yKF_apHNK&}M zqo0|=6x*Qs%Px3F`oJp{B;6%DQYBjVY`rOFug;RwGO7b87=<->onP@NIB}p$SK64f>4~+ zumhU1{4>Yr(n9Rj_>+&^!RpMzjO^XCGht47Qc(RwD8-ZSl=I*<@iq0UeSj?bK%RXRKv5n39PF9 zA2#GK!gP|r6zX6WKL!LMb4qnNQ0vd2m*nr7AFD&PJTO|B*N8XijX9Ngab`Nv#$?va zBZ70F7-B4G0brVSaGR0YCh_Fo=hYv8+3ES;{{qGT|J~{EKblMb&nW(XKl*MEV~G>Z(<2K!o~!fsf8J)R|2=d!KyAzN*X;RtwCWE2_3iaTW#6(L zr8iuK&o0!uIa)oQuKMfyTZLVRlew+mXD{ga+pZ12KEFWV_1ms}U8^?VbzR3V95q6& z=a-+mFZ=)PwLB=pR6@J`&iHx+=$D1POIv;H)C@DkGQpk6E)G^GmzeC|8X>xp~m+dMcYutpBy`<%gpZTlV z|GutXv)BK+P_=Jgp0iPPuShzjE4?yv8hLXv*U}7Sb7pw z>t{Ex+q6%MCFaW7p^LQ}u|Kl_KVfwGLjU=o4B@-5w#)caMqgeF8s^K|^Dkn5{)iG? z8E@RgMEt^1hy*3{*1QXR54WVP24Nq2d_T`D+A_9*KtBII^Bd6Fykdz<;{9#s&c(Q6vK?J+H0GB3e&B*# z4!L2F-m*E$1QXmRb?e4`?VO<0%ksl>-!}yIN8$1}uOXHiarvU8Wtw-UY3@h+xva^0 zm{@(S{`;lC8~!s4at}%Ln6NC`4v9sYIAC;y8r9_)k-aj~y7r;xQMW4A!^`S{*o7Yg zif>N{9b}P-bx8WNMv!YI?A#}ReZ%RfWEVf=`pcj)WOq1Pe|9arZo{sJ<{%o!JF8?u z`b&IpvPT?WdA~<4J#KjjAaXWx&S)BIa>t0Y2sEb;N#VLNAtazaU8EPH4AzMwA*=-g zGQ3G%I3TQ99Nm>bToyTpb=hiL|J$r_hx#Z3CoL(%#|URW$}$@f6g-+2N+AHeB7OJ% z{2uBrEvq2oj9gi9J_saDB!zEEmPQmlf$n8d&siKq~Z0RV4aoWfzAk~RiCh>2iajHU%lKt zGZHw>{w2J3X%z@jue_E-GQ9uM)F8M#hsF|#(t zGgCS5V2kC2j8%xolS8TePCtt;$!~XCu$QVy*|kt*bvPj!ZnEQt$;soGz;9+lq0j(n z7*>q}W38;zis&Al@y>KrlDAnXIhQAE#d2ZAPm#729NNYs6q^WMkq=zmBLEdSc;b>9del=AdadAIP|)lL$_$^q z!ciZK6q?{?<_Zy6$83k0|1v#l?e1&#A{BTnNEC-ql8}AfV4##tW zigP9YMpO_{`Gdm>^3rBWXkE~9WT{L?QW#sUT6$7f2S%LHu3;h`+*P!#iiqHibX5u} z6~g=cJbkjsyljQ?0%jJ?zoE>amfsaY)tm#fn=6kdW_PY^c;Crn`rSD=+LQ2XRg>^Xi>OFs;bQMH+w?|x5G=jWrJKbY_GBNgM0H=-#!$Ho~ zD7;Q$P>FV=j>WI)6+6RB6>{Z35+_qNkgz_ABGkN|$F6&pZmX1jS3SBgSeJ}>DQL(q zq&9yL&dEwQzZBSpyCso>^^=#QAKR>?HUl%UJTm2&sHMar{}i0$*f|*?FEPT^G%5wY zAnaHbrT=i)S-YM*gkE8f0~~?Aw(Zr{#B%OzM{^AKQ)m1TvL1vFI*+9k{}i}Iqe~Q( ztZI-Xs`aTQ_88G^?CC`T-yovoxecYNIF0Yhes+gqA83p@tnf zdHWTFcldMqZfvmkO@q~kIz657_I0Z z5B34Sno_q&;`{c5-7Uo!cFrituDb^2{Sr2|bk^$o31SJj$SNCv07t#5&zm&*1KsSZ z0raQ3-MCJWKJxpRF-M%6n(i)%$BUEH5?^*|shTxgvU2Ra^`pAEv(Q!Bj0_|!>c4Sm zA!&BEAydH)VsEc8*D;Ft6{J{d_CNynC@(aDY7+8Q4#)|E!CIvk#XAYqN8n0U+kTwr z54sFzTjaQqnZbD}(I-XD1x2pKq0|9eACbdj8{CUe2Gcb)a5IfJ z-}oy<)0MgI0eP3NpR(uTnVfaz4I8a&6sFDq*T|0>A^^9X?>4H-g$jM{@#0PUc#^Lid5HzW1F9AC=)PKN}$6u})$$bT{v z(7c$M1>2u?5Ksq`7qDDZHW5DmFz3}4hrWR^B_2-=GN{`Zt?gdJ_|rj$ z9cNI7-wp6*Vou;i^98LaZ$rBob-4%3$dp_gdYVx}Lu~`Px^v9~-C?)s%Ky2bxWNP@ z@*}5wRt#TSo`S%XusrU}gkEO*D2K-qfQjR_C^D~TK!x+yfReK3+0Kyh4(8FHJ2&Sp zF;0NPu=@gGab!G+^#V|qYDB41Km9JK?kJ3YZ8LMdP6;qU!^((C4%i9_gd{W4F$Qix zVw)8ga~JC!k?lqeEXVn#=y%P1sAU6dexsPv$v@PE`mr{uUEeM4Wn{v)i}ZTcUsA7{ zJUDkP80sjsWOI(yYv76pMf=Waw(EUfs1!6* zCFB@5>d-9&3f6AT)Dk5}R%!|FYrg`GBucArh!kqyBq>F;q_X>#1B;!{GyaRPnZ=2Q zv?WjB(d&ZVj^oBW5jUm=fNqI6wQ45hVurG<|Hv$ex+KI(x8{6x(JZNytd_%qMB+fS zMW}5y$$&NXaFf!IpoIqyUlYT)Dr}HWRa`^eFy)nG=e5GqGM8Tvu1-K}%B3B%+a6j) zrxvHwJ_2gG&^nQ&spL6**m)~bZ5w>blhCMvXqrlcJBk{AFg@aV`ZPV?@sws6{x9#X&#os$bR_2{;D71vc{->)2BzeO9qyWG6lrN35=g^4Me z?8}T4Q-Ka{V=gqzT{*0LR40vE+}>lTRuY<&$mz3NNLSw9XS1e(9i4L`5Dh*+`-`l6 zPraIa4OM#z{V{XEN_tic=t}RZiwW*)rO=pj^2OCEJd=Z|bfdYbd^Au+HQg~QTf0|* zz^j0m0jvF5tI#%fN!0|6{g+nWk{!Y@liWlws<%I%f_`Yd^{RL6c+ZB>a%_sg3EtSB z>e3P0)dcLw+|@GNJ-o!AV{&;arf}FswaQf}zG=5BSK)MNTUq6Mad?-z8V7I5ESkLf z%vuMVUAV&W3Ya!L&Ds^N>EIFQ-rp!gOIIn^Fn6@@8hQ?|Ri>y>fH?o`LuBKlGeqQoT8Ivyr$vG?}8Y= z>J5}R@7b4ZS&zvUiEZ4!0YtdbcEJ5;TP!3)1D(@A>%7SQQn$N@lx#&X>WzzILEVEW zDnl`M5WYLv_UI`}+a1P0p{xwM-2$q)i!3v8aum%Lbe<=- zKXzTgv0?j9Xsb(TF$VdR{SL-!>tMCYT|T%Z%-PbV&Lb__D3x#7LgZ3ndTYD!Y0qG= z8>yU55`{5e1TEjH!q({JW0d>$e!BaUcPe1Xp?&{kpy|knp4)kmljZlEOC7jC?PN`8oBTfbrlPnGU^CvJ*0;m|*{YWk||9gxaH&RM?f|XiH2L z9H|-pJL^qxTgo6R`JrzYA6-G#{gS}KW&4k^Mh|IFxJz)~;W6#@2bLJBMoq)d3wiIW zC6?$VMP1t!gc7=alLWekRGG8uJ4HCu=-6EyN@FW;RN}m|=BIU}jLd}qjZW1BPk=S> zB`m3iaNI@?U;V25VYv(LLXBya3s!k zs!77qEtMOdKa)9R-gDgfAw!K@$WTf>rRo)H%|5CM3=VAs*!f~IqP*-uN_(eWYwz@= zhh2sIWOihvWMMnPjl0lSE9KexL$R3EXm-!UUzD7K=TDNoSJJqa`_KZ-1cg8dbNTl1 zX;C+>>dC8BnVct$s0!`-=cU9{N+e$NQ}~Osm*pMnD5&g}9j)Br^^F16EiRKL5auXB zx&*v)-e;&^O>Z)o6RJ}0`ID=l%l}FmH63}#*f?tPeWd>DCMrK^P?5t(Wmp20^tvG$ zK*RZW@dyG(ayHZEijzt`iQ(_y8z0-Z>%7__ZK3z46EUU#6CiRr&Lko}@|6TmN0$&w zHq`uI#z7plUg^f@KXcn5M4RWd4XaOO4}$4GId0}zy%FYV=v5UtGpebFIqdtl>GZd9qBM&2%a>Z+-C6mqb9<7rw-JgOuH(p(1vJHbb?mxz9v z&FS^LrU+>8%_DyY1m`Cej?wJ|ML3;2Ud4?z2b7Vy7m8n)^5WQ&iPgaKu&GE<-GLk# z%J|E2VFQZiFS1@lf@UU+cQV_VvO;{jZN|yfc*4w`IHAhs=XgbKB#H zdzUsJ9fvixxOX8{?x@W+KA%VT6BLhspInVTGx4&|kMds!QGF6EB8&ER5%bTix_j3Y z1CDMZneZIU$IEs`JRZmA+&v|PF^xqRuQ9?-D^DtN(*N}ozSAZoArY5H9<9ls0UVR^ zyZuudf@9aY(Xu$x`dGZ{WN|q&{QPznzF15#9F?hQ4%fG=m}=|fL^vg13`Qw%U(J2E zva2IW>&mu9-ShgeS;tP^P?mRiu45kq%-q4hmm-yS{*{adX@V9U?nu`uEvgTx0V|GTnAcDb2=YN4u#Q%-{#xR?Ba3O;#J=C2Z0>3~DpX!C zWF5=Iqq;VSlc}=-NaID+j5+$}t!uS9EkQWip)ucJum8Zpvx^1Ak%Ellw8XRPUWQtyW-ESvDy@0nu)u%ZG zWO`@WE(yz)ZuKc_6xWL0Ir>g_l4rS>m1vl4Ft4TCZOSmn83Q#Oj!glkeCee8FeAs> zTz+5fBO%`pFwT;A2gYT{4Bz2o2tjjD5r_D#ayGiEP`(UyfLZ2~tM_lV?dy0$(014;O9&f_f%%7N*) zjcn;mbUKr}v2QY=Th+<;r%4=6qk84GrRzFDMg8rV&6ou|`LVKVb`@Bboqa{JKQ()8 z6W&|uT_;Z1Wb5&xCHHY02Jtkeq>Vkfgp?*uIqSWCBBfQ%!H)90V}n2hWh#i9^=q(h zOQI|!9xXW?n2_zbGd*9ZCf1B2i8I#`Np}iNoUa^%U9N8TQ3_C8TdH>I9)De3Kr2*Y z0qp5g@a`i?LiwV)p^hFfhc?A6oIjgVXXlZ+idYz~Cy(j3TCGpsYq$l|FN&tasy05i z9YFctOi)_2)ySLMF@d@ou35Vpu_y2MwS0n%^=lOKlay5$wxCm=mJYqXs*?JcG0Gk? z9@4oNC!El|a=xcI<13fL8)f}s32fGrJosZMu$7ZvfNeLePB!$zRdEN$KpQTaUhRSj zp)2_uw*n}&FBRBUwR-5yzuZrd8^Jp2xXVoM&E8F{xKnJ;<=-^(*XS@9a(9U;m!-_7*sD?Ve_Qu}_?Hn zpyh=kfQGR_-xo3eJRs!Sa>>{}ms4rqG|_2Qsyez&ljy0^wZB_gA3!(yj=^6by(|qV z{E{9RBTa^U+pv~crGLrdX;78k6g$Gf$x%N`vWZm;BThZC#y?g{paN4OM(e*b7fp!4 z02LiwMZ#nDGa)YTJC5P-qp74emBDU7 zm>4k8y~C-s<|EgIRib&KKxli8m@G~tGs0s|?`2e!5=^^zl)19F!mjjLCgr3u*vbV| zQyLi@JNJ^E@ooX)3k{as;Sx{!_$p4HqGLXOj43bBjF5u9OIcy z9uOLwAZg)uNdxn7jq*}Lf?G1?yZd=Q|1RNt-v9S(;h#JG|F4MepFN!ZkK%t(+yCe2 ze~~S)u(AJF3QZ4>mD6!+!rrTz^vP1a><|n;Oqlcqr3u+(lT&YZ^`y#0BK&5G+GaJi zMb66R=dF-)ksbg$)~vNo$(6Y{z|P-S;QYNl_us>*DfGUt$(rrfo#(14HoDfTw?2G3 z-FDZm=YQB?SD&r0m0dX^U-x^z%gfQQ=dDt`-*xMc=hv9a)w-;i_8)p4&n;{1KHqSn z8|*e+8NM)@A75m#G4L)Pn2-%Mhr_WqtksU7bBlSonbNG%&Sxd>xVqYymk?)RrCW)>RdVc8|->O-8oma+I#UzCpcxx1yjdgYe$@VuEp1XZ~$ zEMNy9O57v>3A50Q&N~}m(PTgXGoSe*C9@r{mVlnARBgXtmkhA$um+I!8anv~3gJM3 z_eK;nhf2j1i1Hx5LgWu31oqj}2?=AVD55pm%JlN>tR3(+#=|9|&G%S(L_yTa(9T%5 zdNy&sVu_BR=wWlc6EW*(8t>}bV({-aVoW^?C3iH5APmEXGQf10V?hT)-q){PZPv^V z>($E>|K7fKi{EGwt{A)uN{FOMcW0nZ+ang)dNzw#aeRAaKUh0O&xha-oY9fRIrG4S2nV6E41)P5Ii`palHw9KXP7C03Qe}De^JnTI}vW8u5B*+mT!RD?*>Ffde=*Flw|Qi73E>7VWX_(l`A6Kg9Iy+AI3SNzZB(> zM!XwWgCFnW&>|-Tr9c0u)kLMJ!XDzE%ijUQ?3|SVO}Z5STU)R(7TIr&QSXER_U6L{ zBJ9-VU1y8FIdIhy|AWuaJQPfqNsP=7wL}TmBPWuqRhTt9QJTi0VeQaTr!w0kA*$nU zSJDcW7Q{@VA*%0k#d$uVG#E=ADYhYkPC!qxTMObx!IIH0j&aX0bcyFTgpDh*CY>f9 zdM+9uozG8v_>Hym#c{fGtpQNG9;CE7!x>XB2y6iaF3`>*kzpUai&sHM^;zAsq+8t# zPoetP2^Dy~yfgwaY^5O_Q(No-Ma}L&Knr7TjQ9s?(lF8uj?yRdn1%Wl8!9_h2!d!B z8EWt}ScM*Ep$b4{R|w@H7zn|_+DRS~K!7@>V%B?cG0+JD8mVnOYq)nxi)L!jXkj(3 zI;sAytcls8%gB)@k#AbjbDd(%Ma?kQHZg^!v0-<#ho27WJcU72O3^e=TT76!i9hE*(V0is!e^VRp*yh}`{S3v!$- zAICOpVl%pQr z{T_U~AB2bZ_XY$=uI_bL{>_0M~$R`x>FxArTibhUDi(#yvLb|LIU_{C@si_l0pQA7(o z>hh|ZoUT_x7VBVNAqR9~<0hm_`(*rUJFt=~rdJ-JN(WO;Bp*a{UTZpl_%w$M?rZ+) zpQeRm8K=&qI>0QuE)tv8Y3IBEiUKK%I;Bawt?ngas{hx2`sLF_^`N|(Jz8YPh-p@o zD7XwBO+gBuEHMh$6r^geNngc^q^VI*s`c%4P5Hj4_Vnq>Cz7AOInSTp?37mTv_Nqf zYaS{}***~rWhHyChrbMOxQu!g~aXz!K_3*IQd0j zOa|joy8PR&X`@bUje-%Gf^ISoph6z+3)@w?fTc%?;Mp2yl)%FvSf?hnL&7E8JblBn z+sYcDvSzg9tzd-u?@PQi2A({KXVHDrU#0d7F+$D+f<=~}M{G>*3}ki#Nebq7c`}fEg@_tNq9-CkM{1q zcmVhFX?uF?q#0!%hDE5h5g{kZT4=SVyruS_SI0hpv=`cafedB~W#(dG6f}kRp{?Ux z%OHgR3eh4)5|r$c35ub*6Bei3JxJq5jNq0`N)eA|%*@e)h^oXM3y=07V_0|c`+VEV zq+A#)vU)72j9T#I;ZZ~B9D$hhEeBaOlG$NX24uF&M_Fe(cT)~8cw@}muBvP)oTu-f z4yRs_fuhEuj7J56WqSt;P{^9zEE7+bG0S?2g$(T26tGs59O{EO+pn2nulCq+$)PIJ zXDSJo#hijP;VF>t85J321y?GT@VR%N7p6;Yr5RGumgJCS(6FfDIv!j1WQwZMRG0A& zqP4WdJkM$-Ya>S%3Y_P4bIk&M=CeIZ7t6WZiGK3}Q+<^e^XpuVSa{60Qqt-+sh(?Z zp3rzO`doz+9xatL?J=@StF}_RO{MMJYM#wBiXV6;ZLUTWtgA{{AO5N#Pu85MdaRkgNKzNJj&EIio@|L}a|5^D-m085^=QmVpD z?p57~`tPYtH$W?3G)v3V+OD|^R2&qJ5Bbt^om%E$p2jG%H4XvzUMb>)fK2;;8l@ZWy_WAu$~En z=#xYjj)m zh0I3nvTPi{q_6sQ8y+cpwl#s1We;5E)kCq#J&3Tgf6vcrup=ciUuCAlE?4v}9OCI6 zKLlW?ZqcI3x^RY@Y|KtJ+F)sLu&|GnI|ITLNL;0u-gV4zlS!J|F}Nj(fA&xJup~=+ zq$CVMtBgpLF;o4FssnDl>LOAFU@vkf2orNiijh^`Na&gmC~?l^1g(o+KRX9<`27&> zus@vFE}>(-g{^L)pwxUrxCe1-6n+9Uh^uE;}wJn*l5Y28!~z15lU{d@Kq z%$7+>7VioDP-fx7IrI^WZUCi@29Q!R^Q&lwozAAvp#^PnlHISD6~pU%*LEV_iKuHu zEw^_u+w$FE<$UyR^~O`gtr8 z;(dSk&+J`WuH(=hh(K9(AT8cn8T$JyOg;ruOMl^{olUkCC)OWrR@6f5$8;v!k>WuW zbi3|nsG+ItJ@9AA%kg4=KSp3n*uJHBE_9X>2%&csj-(U@PG!MegYV*<{-|}}kCNV^ z#`FvE6dYXr)*@CSYvJTR9x+ZKUOyME#;>r+MU)C9qF02yrwgo(dLk%F1nQ7EW2Hr9 zzXMvd&4$_fnv~U$I*#7V`}V>~Kw$&jbF&+2_1R72kv0`sM5luQ1)o@WM|x=zVj(0} zISy{P9m9m{`ACYtEOG5W@t(T&3X=Ww0+2iKzdol78}|_(x|aR=)1!06wre!c!?m2sEYZ$`-hLBHzfix%^+e-@b zhHDeA(voKE6@9BR7b*YDyRfMwD=0&>C`tIfsKTL3hJ-t*&|M4*6i%PSG+Jae#owhI z^A|7gMoFYNu(DKskG&h8=I=p_cMd>|RO~)Vg84d6mvCP<=PDXdsvz$UKBf^Sk0=BT zBVVON%BL(z9`=Pp9p1O_5D(I0Tjy?13c5=BB*`)wYtKRT&Pfr|*vKtn5Jk6nx2ThkX0(HI*g%jQ#$xO*i*0ix zK2aOwa0g3`FcXorHo?mkHGgdzuM8L%^N}^s@y1#I5)Vn^^3Ot#SGzH$e(R%c8c4t+ zpt2UTex%887gTrsDk>z{vk1^>zFXi+eh`06vXKT{9bEV@jzwu8-&(y5+>H)X3JUOE zjL0h8i(E3^qPr+)bs5nLs>p%>{8Jam@GeB{EV9}dLDiB5YUw$qSH)Fp_}QhOT9@yPW%6{ZY@w**%9n>tJp zD%r4YE3H?!H5|}Ts#e;Pqvt_4P&0{Gd$_<>uTa&IJ2R_ zYwr9=&P5Xso$MAGhQ~GTkjy+xLs*S{k6(+HH%KdpvW z>i2Cp;AE#nACB#gNWL9-5cy;< z1`r*g+@(%YMombFo^}x#-l*t8q59esFQGZ{#!08`c;`B+_)T2QzeZP%A7n z4-jW^16UGSk?>AFgAtzM#-QmgW?)kY$VV{((8eWnd-qjD&HJp7m;`d}VPAe0JY+_0 zfS7hJ7MU#f31sbd^kCz%pbOz#C$5756QlcBQ>6cS;FcFn9ERu-^8 z4x77x@7kYofqd5ra>fsdKr#|mxW%hAxWvG$I^1~Di>0+N+NxPRpInaUf9)vVMhhSw zquvWZgj>~unE=+SC!>;Mlzk;#Nm3LXNz=I~4M906D&QaihOsh$&Jz z=Da9rZ@z@NoL4WO=cb9wImL@vnF=gEyH&4Gz)#;fq~?Ya*g(%U@tqgZKdSBIJ+vJo zPU7>5CYw*;pFQoyo}#dbwD1+CS}dOvC!^ij5=@>tq1DVOt~PZc0;Yd5@LA|$-ztGJ zYlcUekc8Gi1taJ#$Y+9cL8Xo;b*7fhh;K&1?XgdRznUllQrnLI|}lux0;sjaPvEQ-Afvpg2T{V{QfB=RfB z!zG3_+~l)g8*a!NG;V--P`#_ae)xRbONo=qKCnA1VrB13IHZd~dFQTFXP8KwH3SEI ze?D1Ml+K?0_z0v(3ejqA4!B;>3*Lqg7bsd)qM+0$BLyhR5T}sB zxSDdlsc5@_v*a?y8;VFm;sP4HkZq?PQkDa1inKFYnKbfgq9o)agX?ZSw&K zR}2}zo%8*6z>+vIHB2OA+Jd++uylvPUs5`%XE9vvrBVEt$hLrzZc07joW|*~PbD30 zd4@q)E&;_Y2!{ZfPA7z*BHj${ONbw4x|=Z4z>3k=iP2+L zpo4gj#WUa**D3cOsqv+FuX_*Q5Z$~bc+6P%6S&0yo^2lOGI)w7`14#_>Yl_Y5R zXMad}KGA@@8)|}|>-D<7((8rKs^5DaIvtUld&zpbrL)To+403cC$#=BU~|qA%GUb& zx}sCdI!#vSJ74U>xA4@wS#GdJG$fhWR$}T#pH}ni*JlUhI>3>qq%Z9ePsiqmiPQoyAgVD zQ2?pdjBb~8a6z>5k(hbB3V(hkC-e9H!>9A7WaHG=`MGhU_22^bH~W+U42z1TolaD8 zj&<2mC}@6;TgNh&tg{FZiNNmEt8FvRll~+q@A7e*zV4ogjuJM*j|q4&yIJ-^+-Tu< zm(^kVbr++o*sT2{+4iT%Lg}nSrtsmcbmz>~IZtg&CSuWVdS`4qR#f(>^tT*&CbC%} zX}UtqW6D9Q3-i`jYR=!BZOG?Vj00aMY)B2m_^+GKbddL&bbnU{7x+g?d)`ZG#x}!E z`hCQ}@_DR27490F#Z8`oOI{h$)tT7ltuA2R2$2GReFKMhR7UeQ<7j|2V%vKvB+T^e zLu&2b8B1~A{8WUFu1B_N13nj7cVlVu-CFKbUgI&8gy3x;&-*C+Bdlp*<9-d}&F<TbkYY?oxN8tR5j#1oG;B#}F{E5gjfC z3A+>ed(81bUKT?e2iZ1yn|!R#6Kvs4V#mgvRRC-r%bWWfjn>ict{ErKin*bqkn#cH z32iZn8ibsi9-6!WOW!^e37)hoe2s^;G-ozT4|2ajbm;6v!b20~YAxxs0ul)86FaOW z4_b+E$lQH6pN^f#w>vrB9!UiJhCD% zIcMZ00NPAV3Z>|)rbLvmNo_UVB`gJQ?rTHc`79>+&HAlZHg>if(3YJs-+YGVJgn)8 zIy)<=onsk)8ovw&cuO41shTxI--bwKz>Y>Umvjztl^%I)iVBDulJL}Ee=qN1M7Sv! zm0q^66Y|llQ%Q1~vdI%>RX|un6tIy{TzYEUD;)54(riin!Gh}qWk$;A9{yXM2&sRI zwKB7H1;;>_D64&MK6XBN4nxSevyvhKfte%lsBk=<=x{A|jEF??KCmeN_HHmFx-3x% zxbQ1pH3|I?r4123{geI{on*nYWAfK?&pceqMRd&Kd@?3!=pO~+_|5ZNLGIhuK7GHy zfwHue7PsPlZbm?GkGR7_;f%<6kBa3rl7zLXK!tCSowgK05wUI1pziaOOyv!W{{hKb zPw)JtKzLN1okY%oN%mCisxb-xW}`G(jI8)0*3uNMS%M`WVW%Eh&SbB&j zVT`=em8H)y7u6zcpl07#Z$rMPGD7J{Bpzo@^4Y}+gC#olkO?g(q%dzYIq6?bm*MXp zW05KUzcu%g%d#Y_RaF}u1%!g`vZp8UGSgD65Gmth9nnZSH5F=8^ZERBG9BFF$e~hV(jx(Y|L~!9|r*Y*bcn&Xm zT6R)rs9{)@X5~DQwnByI0+sL`)kuz=~!?*T> zQV!%t=bwUc=vmO+Z0E)#jLG_yGNVjO0d1`>2B9erqF?f^WJh8oEbN4b8UGQxCK8A1 zX8Uz;+!o}DApNARNpAmmRhG#m6!828h;E*b(GPL}4txuQBaB6DmUFP-Js{U*EaGB) zs&O?j#73o+?V$16Y&SLV12K`>A$sg0O2t@f;EOQ#V4yTjVl76OG)BddOem6_@o@p= zme1985KYOULyy@6!{qz>H7Kz` zX3LgRJ13I@FG8(bw3o2^;~@M0EBhio@dOxN9x^#i=)~F-70@_zm3lYHa!EXc^`A^| zx}}M^D=0b?t>rzh=@1DvCH6TMqu7RZRMf>#8o%bm-uF&mhSHT5HCyy@Juz$rvmjcnvlha}&4RoUJB??y(Glh%9k*V=QOSi6}ZvdgL9;{)$ zX0Upo-`bRD$kcN3=wS5&A0#T2MU;7g`5-W>E=Vtdx z#3K1MRjn{#I+DLB!~+`D|I{xI)0Iv1?*~LZHV1=372wvyWQ;`nZ>QN;fh=O{*^5~) zazk7!YGGx|hd+AVbUsP^v?S7@D*A|P`5iWJ#`jDdY&N)HY#2abt*3ELJvloeY<)D6 z@Dj0SvO;RbOtA#3q0$;OgE`i)W&S*!!cnpt6HBlBnCnu$c9;`8DbJ7`5m&vmzbsXD z#hC|M<=TXAb5prVckSrH=i~(-c#hm{=mi-dhpaX z)u2X}Z{Q-;H^p@D65J3(4zoC_7>qUwivZUWXI3ja$hJEWWF+;q}9m=D3MnHX5jwFyV zcY89l`Qh?L;Epk9p&F^4H4)KFX_zNl6IRz9ZU^ZtrF$`4_yVuaMeTBAw{l+QZVT6O zQq9z>NcGkQ;xtBNq*ACKg@AW=DdkW?Si`{LAp67V@2??=6cByPqZe=tDrMAgRv#*%=%iL9iaYOGobU$47Mm4eZ+BVk z&D-t87n9j+A?p_wccp(E$d)k|LoG~T)c%LQf#O@pXa~;1cmoGrh zstZJ!+B`2q!Qv&sMgVir zlwn6AANE4hGd1*b0b~Hej@@Xbisa!#cI(c@N874xU23cxK`cLHwWY?;O*v6MF)G0w zwQkT{pF>ZI92H_v?GUy-o`gPi7n@VNa{Ay>p4jJBnXvSn8p~2ACJVYds5+Zg=|@o0 zm>&LH|0F{?o~TtR*>NJtDt01XT(0g1xPpPtwO6Wl-;Qf)P z|4Rsl!YC2`LzE@1J)}jp8hez1BNdHFma;2}Q!h8p@6TSvcauXRj?7K+S}`VzUcf3$ zVySY5yW~!X9uXfoxw8yCC)whxdZMANbYN28xBF;S_E%7Z1pN)4j2FdU#0;OGCGqbE zjcFg>#gncIs+iehb4z5SNh@6o^BKZj?Uye-P>CW}XZX6EEP|H;#a8|{qM^_LrxM_& zJLkmNhBlBarsi*b;nrtNU8&4{E1EOzsvayLSP^UO2 z?*;+c7iVR(Dw6fE1waAfDKkz!%q=HHr82-R?)5By%*^za0mZ9Ubm87>cX`bSioQnE zCH-mXZtHbqq)_kTrXNLuP&<)3(hcqa!8L*`oY)5?A5_4G0LYC(XO4|(eCjKqog9OzbPnFeu|R6B22ePIRrljLW@6MA2J4Zwy!>t->0t2`+Wc6 zs8a%RHffw_nvwzt*Ylu&n}a!EU+$V2$I$fEUe^H@BqCp4t|d6gj& zk4JlU|5P(29Z0FJWLgnwh@zuK;R=FWY;Lwa>BF4fBlJ@`2K0OSYr$reNT&D%w;NGw zBhk_h%j`FSC77LK=}9ytXd) z9Tg3IJmB_%_&5sv&UJAw5G^nPl*e&xmY&4YMzu2|FLvq%8^956Ij9Ai{Bk!^QDZl6MKj4%D*`9CBk5G)L9lh@1j{b5@st4H3em zT&Z3J6IqW!SDcLoYJCb|&d1r`vrM9Ij3gC3eFOxCOJ#k4zZt>iYzi!>z*BX>@37utp z;hbBRDtFppkDQOTQ$K8U1*#=R8@w^1UlJ5mLaig1vxwCVA)Kf*FW9Y~DV;?|Ef3qn zf>gZ@S5CL?}hu~@oqlL(eLCrDoifwQ4J1y^CN_WN@bQdKqqC0I4HU^C=$yc z(OUn$X)-|OeCYW`%2Q2Ur+e;*-VqSs-n;dKI-e#sa#@VRA4X<(o?zBH8|?J`^gRK==pu# z6@XZIN3y&(JHXO<%W3K-WMynhvB*{}7h<8_0xT`2cZOJ>!LJ3F%UF7-C@K*-Z`4w1 zqj}g8sC}?XZq^-2bs;>oCG5&TAABau(e$8$dzwk*8znD!k16#rWWY=Lc!|FO|5?|3 zh}Q=lg=7?Si&-KsL|Oj>eoX^Cxkkx(X2d#5%$5p$)Zc~Vdby?5IW1!a{xlZ%=qW>sp8sp)$um=7UJdbHOQTF=mBGWrz3x zp!H4~%9rqTbGsN)_eR4MU`8{YRG_EWtogavrCKuGv*tbIf{sT-W)mN-n3kkFKYm^z z#gF?EiNR&)U&DYJ!h4>us9sy)@}O21jP<2<9=M#AE`g>ZpFr|$2@SLEGQTLi_u}nw zn#-~45}VfHOlq7+-k_3w zK!NK{$jOeBf(7`UCCJS`O;MM2rVX%Sp{$9fN#g3#(#WHlJw%7LC{cAxUC)whlnierYbtm(?nc*MfAF{o(IN3NRpl|<3+Gf0St7_>OyRB9768P?Hc#u8sIo4WX`H#6oPwMGYkP ztni@W0BFpWU<7_NxQ2bAmbV+FYrSOI(Xd3#Mww`&0A6GRd2*h~*KtcJV>!aNrW_uz zkt4(k!y>t#=gTjvp#Pu$VRiri&fQ8U%J_%zKiK>K(TV5frIRr+wlEO1bN{17|8L03 z!1#xagYl0JosgZavx%*<(;vqFu5ta((f?wL{}0adUkmg#JX^Ng;;y$pk)e6Q{4@2D zX{2PpfOtmH?CTPZ8ghXmr0|I*Q%@n3T-&@&)blaWo2yXBoc1u_GBl$HbQ#P{hQO;9CV;0wT@2>` zV)*cX%yb1*xIvZxm8NNAaR+IKa41x&81&NPiTd2AO94Q|4;R*Ja&|hXeTs7qFH>Jq z$scEqw|Y+Q$~~jZb?^X4Zms&joW!EENDd?V3J@WaHk zU|UNO=QOE6EovM+X2E~3E^Ud6e};RPJAcMfPZwH?g`$95#_G1$B2DaC@hSy`n)RRa z&P#Mn$j`-Hc*iS5|JacoGFf8iP^An=?okR7hXBi=zH<`lt|c(LH&U`4;?CC|yLtmH z)KAN~s4e7}V$6K){f4;ws8V42s}D*%kcp+=8e|)S_7F%(+Ahj;8?L>qrT`|Cze`c4 z=?}xuJFpnEKSr!U14KIhB}4X}uR`Ci)_13-0hC+_PG~A7$VUO8Vk#&|nC^H&mO{CP zr;r5v;BIzta4)heZjh7dsbfeM2x&uZhZtX~amVl>`zug|1v)GUIVr4>-G&k=EyN>A z2n=M%0eOjtSHB>>fe?M}HT)spv2zUq$x2ON{Fz^PFA;*O^Kns8T5IdWydoMx*g7Xd zK`zo;hAm~=Uxy%pa~Kg#UG( z!2hA@-))+5?k4!K>m-$2=N=;_gzr_rej53ufYG`iFPLV*kjwm}|CD+LdsUv`l*p02 zXoWsa&dU5<8?UpVxWWm|87ysFbqXg{)Yhn({;os_IZ0Ka)rTE55z{=fvcJ zIt-;7w%}(URd0(82KC@wU_1^67!B322*FtMpxzmjzteLOoS_g@(ZcW@uEIw-o6TAF zjxht=!bII5yWiXJyN@_2-CoPB_Miv<6(Ga%3_s{#w37&9j%qFE3-|rdEx(&7V+`|U+c~29ZlEBBKOC$)v=1+E zdSA|+?Wx~NkI0^l{xFeiFVW+LeGd33w<%5V?QOEH((XP7delhBb7WjQL?V!rFn#Hr z4z^QQ2K!c9Je%4Pc2(^F5Oo|!I`E2EuI@5_bvTt{;)H2 zA6<>CIDg};EDkmNa+T1=FPl4PMw^3B+KCd&%9f~Kx#Y?h~qVp7uiDpfQ?uOMi1@HtVQ|8Bl3sY z=$f36A4lJY9+qa@jhT(c3c8@VIg(wc;!ldYf6*R;ok24JeD7PKW!a+U*H26P?%IN; zueJ8);q>o1vy2xjaIRnT%tmVq>~|CsI#y?zSuOlrS4R;fEME=>4#c;G7hCQ-Ef90I zjgZh;30G$ztznO7&-sOX{58iAy+fLAmNO_eH2x0_tDW_a#9Mh?FV8* zmSa2YnrMHV<19*>4Mk}pODTh+nC1C!@nDR^O5 zvFP&R)gTaBFsQIM8QCW7vLs*w5)bGV?H9>O8?O(0o=&hjrBMvfJ8^_;i1h9?bb1k} z<@aT`&pO!kn1;Ix>y0_@>rDdY%}^nPFadyl>&2l9d_EZCW?80$TIM6eHK2Z&eV--E ze5E3Ap4y-_rj?ehWE+?x64X_Mu!>a1SI?@AmTH_^QlC|&XCGwVPL~hN)mfadfINK~lsk;2{nkU%wTQseqL3T^HAk!Fw zALTW1R;5_gvSo6eW|XU{vOt(;dNW^a_*P`3zijvq{b{mYF)Z2oDu0aGclwkz&GK=Pd-Z_Z*~kF+e4pi`Qpnk zN^2|10+ilsoU-F0S->vKLfg~-rQV}?dks=vWDzkFFUVs_sZgu5W3c0fO?VPllOdt> zRmEEpvX{FBfZwDvB%kx0Z7!(*S567<7>i!58?qeu@}-f_=2XAHD? z1G)hQ&pM~Gbi_CvD*!i4cmF)OIwXLx84t)^PR}lM{YrmEShd#Yh&pFUg5D6Z*(%GLU5gnp(h zq{h>UUc$M0lNVNACA^@vg5Le&M5ExF1g0{8HE|-z&;BK++T|INskjzVn!K^v$Sf2U zWd>a`6zWm+Vkruja;9KhBsG~U!^;K2J;bE5Aao4IdMdUfkr+A@!DTs*1MAof8{+;j z={pQkw<$9U#+1+s5%dbB26luHXQSHU2Un^ldXl~Xj5Spm*#Nr>mb!*KaH=?a%QNPe z#-f0$f!l!8&`9FMC<~K^IqDUP4xR#z5%R1Yk`xzv&S^KI~%vaV~C0dO`?s3 zO;_ZK^jR0}8DC(pIYV=9hAB{`oH`sHzPcv?CVn$*GYIC)_PZ&?R4_L7Ct9V8ExUMS>u!MxWV}ZX`TlMEgph3G= zScuP<#hKU7A0m`ne;Y#Avzxosl2$s~P@qLjJ8_#-LRsktLR*b>&T@sS)@iKQFuIQz zS(P`eF|ns?wTGEQ^sn-G44o372lQK0&^%xNnnPE8bR9tYX?@*G^yuwGVo5!q<1 zOvV4Hk7=xsUKF{=iaXUHEc_;L(vAvEPVI<6@1pg!WmUs9r(z=8_X<+27<7;ILlJ8H z({c$L`|X4FQ=?X)v!Hxn=;`L7%n8)+5~@LVP~bP~sb6rCSSuYfdWkoqh(@Qxb zLlpTI)hW*dNo|7f9D{M{>QVgcDY~;t>$hm{JJWrUnH;vSa#-^IlCRE2o)ukHvmKhJ z8o5Kwcq>;dt1lVfV^NS+a5jJch#w}9K0AXIvh?dWj~?8eS=Enf$Rl!SMliCt3#VOk zAxoMvP^1)jNCv-*R1da1|a+7m_@oIsuffX7ffIqXa#@HVazUhFxO zd?H8`0DOqA1(DdBUkV^~iVvnAIrHaeY`J(Iex^>)h7J7PjXFrW!oeUWhnZiF&aOPqk(aP2;+9hfca>K4_h636IUrox0m_m3rMCwC|ZKOmkNa z49L?$68hjT#SZ9F0=t1_W~JLk>vv z{7@^be>>faqemT-!)z`A3#L8^%~~XoG-%QOg$K2JSbjhATiwdVWl;Npw+A$ROw87r zh1?Jb1+b58KZH51Rm^EFIc#A6gWLYk6RMcqw_7*o%`|hCu+Q$lVpJV>KQ{XV!D&DhDh6R=3713TFAwT81 zWo}gYpER5X^klX*Y-4<)8ej7Sd%)_Bh}=D)JyN#hLw={wK*@OdZ9+S4GXh9+EBuII zP~>Z=uf}vI0&M5Ve`;O{U2d@m(>S+do{!n*z?-@OL;I1v@F>Z8E27^MTx^)Vif=(u z&G&p=eF77D!2YvI)Ka6c{Agg*5~H`A({AZSZiI9#3IzGBiv49j})YrMg|HNeo>UW_f$5-3CfqedC_Jc~WcQ@7r#vGDh>VL0DvBghXz zXA!PnjdCLq;s?rugt$EqC}HGXyP`QGYCmCr3`2?68qPuawxlYaTj5lhwcNSham|rX zZ2Vzv9A-uMU(ACQdfgBf4C9U!O;*XfZs$H-bF7iKFl{WnPW!7xgunKLx1~o0FkGPt zKA(Zw?UgXL{_aU#)SBK8&9a!X2fY}r!s+*BuG;JEZ7WpHO8BzrnIyYaIY0~a7OePO zvyT0>LLh;>;bT(OSX}*gzhzRcaWwS+@OI;vN9!PGCY3yJ!=-CGI zA|wo8fnC+p0vphZ9bz>R9%4O>seU)(8{0)z0y%1iM6*>H(uUk(v<*FoU4$vxlqVeb zpIUqNha@fd77;-jdt@R0VUxPjq(SHRQ51mVRw#P`d#b$k+ic$2<1Ju(7Yr{w|A)4> z0FG;C5=L#u%*@Poj4?Aa+c7gUJLZ^TW@ct)cFfGo%osDr@W#2{-MYK`ZTrF^FaA?06#~-ao0G(xaVqB8zw%%Hva1 zpGhY-sn^1!smv_C@Lyi)Xm|l$Fq!D?3NF__mUt+;yn>Hw8Oa`wddcOehQD1MhWNb0 zKcpf&UWOMChtd25YFJWycz>2%y&878QU?JH zq>564Bb0A$?j+vK`2^{|u6dPlr;)-NC>pZi5K4ez*yz53GoCM3DjhhKjbNWZHH^|4 z37b6GH()18GUCyAiOkZMqkwHGUpQtj%Hc5b>eb>SiI^v?VC7T657p%v1D>9(myAwT zcLzDf&jkU_uV4OpChLlh(jY(I^Khf6;&wb19ySvwienS3RsxB#Y>7sRI6v_LVMuPJ%-upmlA;-cX;OWTKFmR{a^&TtMO{x^a0Gb+p2vB$zfQ z6V8oxek+zySX%s7z;W!TuN%9((s1ZboB9aWuvLTO0d2m&Q1x9dkzeP&Ll8C-xsXO{ zlVs&ATfK?!PEg8jP2NQh68S43?cMQ1wtHy-lkze9^0x~3oSDRM>*uk%!Ze~uRpd!*m0CgSx(=GC7ORF#; zmIfZSs-tTX9Vt?yPM0>3bc=Qlq`z$sX%2-~OB_ZQ@Ex<(55m9-1|0mm%8@TLQxVYMJr3BLt>-w`t^+U5@sgB!VQU5VAktTV{ueIM#gfnh_Rlfbm2Rr zK9aCre~2R-?H%ki=T|q9+wh_uh;i0wWOCfn<4O0eM+e?&m?Eyb*Oc5{)whiqU7I5zB!e+m zY~V&>!R!RFu*HF_jEl(AH@@N{gd~tdP9BY=tLR7x%;S>=Nb9F^FJfW?-O&vaCd$$SI&T7RI$fRjW3i6*eF;aC1@pKyf=&antD5%y${-1eUV?3o*QNL zLg-rSZcV6$kpQ_j(_c)G(BmJ>CaqKaEap**J-;O$!%IgzIBz;JJtjCa>)TIroD({6 zUfL;3jm3D)XsH4ty4WLHmH_)BwvSl%xOcJOg^kL(t=tdCh;?F@P@WNVGfs)XFm9cB zq;xK0>1Uf6m7zr6w*FUAK(@<3xYjTcePRJlQZAfUC#axVecZ@^YA)=c?WMknZ|=RU zo?9IoJ{9jph;DB`pB^}@o}cJ*fCUwf-0_&t`23D~=*@m}ftJ2wzjZ)U1h9FRZ7nQ~ zo#>j#UdVdEX#*X>xzZ02dIti7>ao0a{2*MR+p?ps-`vhyneYy}(BdfClzC&3r*5v2 zDKOPsPL9Y2!$NY3J(HO^qH;j(DdPzwb97tj&qhJ-|xOKs4OMz0O7qo7= zwBjnmH3qKuvqJ!-Vmha%E zfxzTkz$CqzF9X{qAWWYuc{2&fo^hYw$nM&A5M+64IL(i4m+#c;7uSD{7nT~De0&ED zk99}c$%b|v(du*$!rH{DBf^8QpcC*?(BU;RjkkNf>)l zZg+ZxMuE1t`)IXm7TL@>>HgxBZGg++v`GZ(uZMo7K=lA!*`i`elSRCqGO=H~5pmV< z#yy^Hawt$^^i2l@L}tH@;Bvrz;)%_!oOQ+RTzJC>Nh!#8Ssj#8j`VR}b|S zV>(k{Ez}b0=`(PSl03z=aGF|BN%R!fq(tOv{+^_rVs^kr74OEkq|)8^Q7glx6rR55 z-i0P-#v$&PfU~-;7Nx>`Zx#L{Pm|sg4v0+&x0-Qda-vIwUy_%OCf>H(r?x7q$YmRb zUW^##q;Yka4>7wRQ)%#(6#14=!*_X{BuV+LW~Ogtk3}5RSmTOdl8{9D8a|Hhs}|<) zeAxr7XW%H!yIvT}tq3OYh;G&^A8i*y$G?d%{P*;`q5zLSA-&Q!11C2-V?z3`fKLWO zdJ!8#TO)HDQ$l(PBS1XB+{ukroRD7F*wN6~#z^1B>0^{5q2`yrvgvBm3+g)>|3yha zP)Jxr^z&D9Yhy=QV;4nRYkeDeC7G`P(zePr<^ZzBgkP9G&IkH0$MgIv3ojfX4euW* z2ttA&-N(os+Et;g^qW28sX?RS6jx7yudou$9~#os6v|Y)otk z0W_7q+1XhcTLZKKVA9Ju7#TZ!C`kFYf>iX1#-`?uP7ZE_luEWHPFDIhMpS@M$^S+* z)sHxeCL0?&p*9m>R#+GawOI%?nHd0WMnDH6I|CsT6Vsof&B#os$->G^_y>!T?Jx8% zA437z4>VZ-vj4Ma1EMZ}fZ9xe-alweU;ZMX%>)?C%F0Hl&CCdZu&@Fu0NQ^Tv2zfz z0S-LUW@abUWCt{~0U~LBK>nby0EGNAkOe^D4<0K3j~OufgY`e}AH@C^=Y#o2`DlOK zKh*uZ@9+EH%>Tywfd66pFSWE8Sw3WC1IWtsF%f^(3LxBvCd^C#F#-Gl>V62!43LI?vw_J7J6@!vC9d>G0koR3T(%BcxaR7jMwvr{;vu_n=IjCbWD`!`= z^YwUxW%GOUv(n?u&HU)1YUlGt0ArB8mCn2C{7!S{x^9cm>NDt1TMVGI?9R926Yt8j zXYaOmYn}Jg`LabEJ-Lb=?w$>JGV4tbTu}bE#?`1rzB4VC*WC%YD^-hC`b9aeP2J8P zx=Yjkk;l)oHWve@2vY?(_}Rdw3a6Mv?Y@nJm;O`mIW9Vtx}%pAzW$TC&a&HAEO!$y zcd2gGl4q}jHk%@(dbGmN0tY?p!h2QrUO?{;+DV*zf~y|bF&7v(IS)eoXH+lk-ZrNU zk4PSwt_`pYn?es(Aw!U@hnFxJ7A#iMPT7NxD2LljvDZqdfZTAi`i;m)B^Zg1xQN># zNIrhh^}*cVLLr(7P)T#$Nux+SCli(!ilq#^g)5)mp8F^8h%P@(v$C#FljN4OgUgeg zM}=P4E3O!lim4$jp%%T>pK26h-`s?tBW3G?ea^qdsQ?GwTV3D45xyW%WMGSXXBS|; z=Ycnf@nPvS`tnF+O(k0)Zns&5#NkXW7_$Pt^^UIvfWU{Ys6yR4b3o4nW}&KGdR z=aXb>A$TfpmLOj&f*6#~1-f?y+ij^pR=&qr0=ulBDzL&kGl2}H*Sz7D|Lpu#9wN|~ zmGd%t`6Moo2x=3Vg8#NFowUay%`G@iUOQTC+KRiT-$x*8TcQuBuT|g_lch)OfC!$C zq>6%1GEzCeYqs z4u4wBY2@I|oh!`!5I#?T`pGkMP#0)uj$nlYL;ydm7(BPtMqF4xG&;uLWZ$=;ne@9K zl6QxRJOt@IPl_&Z8HcM;%@A%qGcUCAcE&n`J_H9^@_pu$Tc@J}0%1$sgO3Zx3kD=1X`-EaH{ zr%WkTqQRrnvQ8Nz>jp)xOfs4>P2>5OzUXyCB6U0N?^r3W9@qptSUDt&ht%z zJcLz5NZiF@Y1))!p-sG4+NN#z*+iG+asBT4(v^~r@M?(Q1lVoWo1GwIU^YL=G7irhyc}J834G7Yf2Z@CgXOFTAz3Jj5x*Gw@t`INf>a8EEK;-rw~^> zx*B+*(auE(hUtNt6#AlBa`XQZkn&fo(dFxvtwGm|9xh1#oZzL0d+j7UDs$wvWPdK! z!ew*GSVLO^7&GCi?=3Ov?%)<_xn7qeRlw7}v6R9XCpfcZt6 znbId#WY$juP)Os?v|7jD@lfN51o2yn_hk9*Lzg2>#b2JNKhsbl3jz17JMaD0=Wxms z@bU(auieM%Uu>*BNHN1KLJ`yw03N&a|tgWx`?pQ!i#nA;yG&!d` zlKyoE>zoha9%T#JQ=*=FH}Yi!dbXg}Qq0iOrCn|#1VdZAg}&6xBx?^DqLq>EikQmB zC5jeg{5-;t?~Qpg36Aqcq!zP&j|T_!?Oh7TUT zdEkn^d!}Uv-XWfZIV@w(G1z`p<8;BP#pIdv#sHdRFp3lkylO;o1$poP)xp#jsz$Kd zv5XLPl;m%)g7u59vaFD3SadBPsi!{#y-;7aY3TOu=TExRv)@VP-dSywRUSgTh5M%J)CKa!j}8M+nMDI}uF0nk zG>lwH8gB)ttgU#EH-c%`YoqcTEJ#LXPEzScBgiR(dyJ^8i z5eo5;ao~o+;-0nM#A?+>jO{VsR7)omj-8ZJI5k+Nm8(2ZBee;o5jdAeT&FY~>iF*p1eY9wTj-hvlY@T27$}5dkxi6kVgbjy4i)Bd_UMC9&J}^6e9lZ+5 zDx1||?oa{B0sVu4NV~oi)%Qx{M8v*V_(_DQW zh1$13IgP`9>?pVC9sYJJ5jAKP8o}$WNq?tre3M`hIDQ<5R8N%)-PVt6^u$~vnI`PS zl)MrW1E8GMcI_GF-%k-n&6*dC=52TIvikco@F;l2T3pKZ7Qpg2khFY66*rc*=jE@6 z&F^3?JOaXuX>?>QpbWwCs0Uc0YK8EHrWUH@@ zil%0u3Y8<mJ>I%5 z)8w?c-5Ag-J2Yj8hCIR$5;!tg{t?92mFXa$XnOQ09Jz?F)5KTYuZWvlS>PZ>Bst|7 z+I0Cn9D^E5->(N;SD#3VXGW`?{2sN*u>8Q4fOL?OsfD0d6{O4wfQDA6A zAxzfy&q5W$+QQ0wqB7Ud`CQ{QD&c~3zW4gSb+-Ih)I+}_{uEbT@f9fAMW)~mN1}%4 zUiKA3$w)<(iA!CkgU^?p;O>!YRYd3C=YU^Yg$NMgcK>opoCdVo35_|#Gq2uMyU57s zv4Jf5=-$iOG){tt`TZG;)Awf0Iqx{f557LXO|rH;IJl!7n5R|yh55G?(RpGd5=w(VTpH*_cvvCRhUCKKq?m(E4yY4Rw7m&o z74?M)DS6brAQ>WtaR#YbdOR#;r>C>Kw57^T%~T$o*{}Ab1~ZwAo`X~}MnrOfY^dCb z&lp&XE^nyT0gFT`0udG&}s`MlQV!emB8vBeEeG8q-7@|z0FdxfaT3AnX|QS5Vi8MGF4 znci?}FXDT8Q#EP_VPG?(Ixu(C>gS(lA2_<}H{crbDC{MyY)OS*HfPtjSe;w! z0rG@YasWmA6kh?fWnhzUxW@$_Qr;MeVq$|}^l)e74DQ*h zZeW}l%eT*3$w`)E-u*2?V=(EhVto|1PE0DGRKOvJ%wqJpV^R^LYo?KTpX!}lhLr3< zt4E|{o`&UB3d15;RL4&fTIQH>f0}ra0L~%D?B5@R33=S#H|6JOFK_6~7Ck)7j7C}T zQb>cZl*vFiZL%6`@kdtlK#(4V{{3~+lJQu1%`$v&Fyp>CMnCQ0ShH?4uqtu*WQ2NI z@KmhsQ!*$>cF(rSXaGB_yacX{v1@uQY3}_%qZWG{t{jnEsM>-e2mkig!5)b4frD4C zYu_@o(OW3$X84bWzO}7PY1B#PP(u1Kx|h9>WlIBPHc;0m14g zZEZK-oHO1W8J$LE=zI)Czfa@1sPgfks$k&_I3vlB1D;0ae$&K@PhlwvcAoS@U(wb0 zxczlbclF;ebo@I-1#5Vv_1xN&BECtEvW8D^#_r#CsLxGGT3d32*P$bBWM7QKtM)SZ zyod-ZCwWewE!OZfJ2hfi;^%HPSf(q^hwV`#XTL9jE&9Z5R9t_9_Gy01-lU3bsM{;# zyS~nCX4nd!>unm%X-MPAGI)J~0Xh~1H;7~tea*GWwDDo4Tyfm8vKUsdW82+tg)dMd zN(^Xg$*_O^1g##yrc%+F=<2o`D*F@P*fSez0~J`+Cso+4(+sH|pDG-?cNb2<^Dazo z*Ft%{18Y)-TgEBS615-)nXB_(GE*w-m)``9*&uQRB5V^6F)Zqrt zoA2!C_yn&dy>+qz+>AVDf_|Dcq3z1>*!h{)<$2gHYUFN9&#Rxats!~}35tfEdn-=Z z!EIuF>GLySBg*)msgPuP-%Cv2?QKf>Ypi+X&z%Qp@Ty`%7|*h41A#utOhy6|62w#C z2`Gz3SO4539q>z8UY9}H0Tr~Qb5vQ8%I9GTt+5h2zgpy|Ufk`88e7P&q4Jkd+O&uB z_8>#Zb~h!3bY%4yM2fXWX~!>Fd}P74YIJvr%9({mD!H`TYS2FS77xZLJJI01zv!sh z*UWT&Dp@}2fITOSSW9dde3pi+&(WN2;EO*wt0;ZE%7w{gXrf`UJgJbITQFTGGokm# zil{>O4xg9LYIk3Yu$Ue3)I5}Za(roVN8OuC06Vr-bU0Ev|Ge90R0oM|NEKom?k}^W zd6Ghcgv!D-4W4-}o{CqrNSNKI(>?9W++MM0nCwXxh-8*}s7)T&mi zdiI9QIg?OpFPGT#>yrnFM8XPu%-9HY!&JHW6QV(i5;>D>P>MSlt=#W|c#6dsnN50d za^i%a2;7dpj%_el)}qlx_mbo(!fJ_unKR9-*>3W~=wlA0CCUbV(ruo{~|f(DSERTxKU z5N~@UQSv$7%YO~}?0c=|#-tFb*M++4axDqLalmH9?wTK5#4oR(yHot#z2Fe;V%9Do zw(9Z5?9!s5ykQL*C5{X74Jgkm#I-(andK&o<_Gt>T4!grvytqG6c^ua8;1tx*MX9g z-rahW4iRK#GLw*MI@Glq!?~{-Eo|x#2?IqArzj+lOzcSlFwTFhD{E;C;I+v($$|qMj&ZKW{is8ZX00eLfyQ@KEYVM#6Ub z-d~Y`1q4A^!#q+K>Q$t2@0Y&lpfTkPj?3-c|7uHacX%nAQ&{Z)Vv9O{eYTQ@aFh&0 z^!Yf6LWEc4_Gx`c(kJ{AB-z% z{(GAHP^BmHk8X}B0en7MxnR%n#e&`T=VXkMw$5e5aMrrOmEiWHdIjb~UuPgr-HRyx+(#8*)bVXwD4~X9Wqh^dxZJ z@UcCqU@v4?sBv!`-{B!YdX%d}0u5sL`@Ss)LTBV{l6;%J=WZVaod0Qd{{0i9DpTQq zk4pUUL;llI_~GIQ_(=b9S3(mK{v$piVXbd!{0Agx?&K(M>>y-oZD(uq;kaf016DOR zaxx=iW@G%*`j?xPk?F5aAzLe32PHdwLt{csdI=jNV^?FNkFbWbxuLP5m>|F>&jN7L z|M7}y{}~T(%Q_i5{Bij@84DYKL@)lprHyS&0c;qVzWnF>!@t&nJ@N=)!SztK-rx60 zx@TJ4!BF99FTUGY+J1u|@@ss+OacS?pRU3KEpr%GP-mio*dM$7zk3cQx6^N~ChvoO zcK-4o0{gzlf3?bO?~z+Azw~x_K_klOK1?=?GBYwJd{tJTA=>jsFEgnd>{Q?omY+Zk zJ{IrdutsT(Hq3iMMp)SV{UsDCa*}L)A`0IaLfAahLc=n8AJz_zY0B{#e;1~fvZ$(= zRrwbN0tSUyI*2`=S3!cO0HkvpS5ScoluA`ST`k2_s>*f3?CZ9HhH-h~gH^%B4wd7t zu6qnqonJ=UpJw972XSW{B}&TPC_2jcW;W&Ei#A@RPp1U$q@_%|zi=5Rp7<^l#r4>P z$=t=fc_EvwBzS;%l$<0GcMv7jky3=&1>cN}wh+}k)UL&QwJ46pyy=`7-tO)FvaD)2 zR%}pT&&}(6)EYcJ^xAJ&T!dzVJ(EhsDY<6l4f;6gG)bN86oNO z{uW39UAK7ws#eY%1$$Y%FOr(`Z0#?rU|AIS7bmQsonPN4tNST`AB3gjC9w|o!6OS?mW^)8axSZK_fE>AAL zB(bq0&ErnM`YhP3rN5n{FXsrtU}$x^l9y7YV*-`jiLK_JEmTvXe$9m$5lj!ZfTsZG zKN-J{4OM9sslvW5=P;r*d!jZOmev51p`(!QGe~4~QJn7Opl!!Nnb62S860JZX1_|O>2)}BQtVY6-5dVYDYYlDF+-is z8WTi_2E0K}QXzCz3!;?i@I^+caHv4pnbrhrCSNv9yvB~c0Dpr%X~kD_->6`%+_-C3 zG3{WlEZO*_Om?we!gGqr@cGFhC+AZ&2yT7@jyCrfscA_JHT=DZauw7AS3>PDbxCb0 z3IubM5|3kb7vHa^u`gg?=Ta9XbhYi{foS8fF6}O13qNxe1x96z%Ri48apX}~r>$Bo zO)s<^e1lbCNo8$XuFk8d8xQ?PTw^iX27gne8-BjIAwV1q@J+S zyRkQPZJ!2*<1UqXY*LmUh4a!hU3<1>((B)7Q?I8j=Asmr4c;<7@SIX|8YGqY;cB)*W7xt64`&3-= z6s6>@+u|Ddf0sDHGr0PtXde58PR_*-tk{Jk*) z+8=T+L7@D>^ZXb7-|C+M#wim#x=@lmx_scj0NM;Hk1k&UB^vnEg#&Qknn45V0+f%j zKwGcge+xzfp#3rS5rFeI&%f{gXHqh?F1O}QU1x(AJE2CSM&VP=i~a2 z4Z?IAFsJ-~>VNV4tNx+u$Hfdl5(kX?xT@cffrJUPJk9V`JwJ5#xU^J-{^|Kk0J@qc^>uLuJ*1L(oFqXGQ{+`j_W{zKjm9-05@ zbDR?X!}H%fHy>v%0)9dLe~%IW`On2aBf?V?N{TUY<{A3FYk{`sr!|L|Lig^~R~ z|CXxY*0x;}cer>)yFo{qVwjbI=c7Xiv#JhSC2Z#9xV-&fBq(2H`%ZzpcO+iGkXX^$kbE~?XKozgcmR#|1|&rKGa(oC{- zWd6L}lWacV@cu*uMV-Nz#J}0Kk8ePaW~47Y zmBJC}CV)`*$mXE^k4_Yh5FI%CY=FMp=@$nH2j-;8KWR2(=GWMsl5@r;M!&Mq8s}b; z(EW;`gplf>cy1J4VJ5y>=Al&r^M3ov5_H-$Yv&Ji@yh<%-*)i?uNPnZs)>gD3MymgC<^XEzIhRks!OeCsknEcUQ^-4vJ8@L(6wu{ zY-gb-RGZU-)iA<7n`it45=2VFumY@C+k&x97H%pnKMV#jPAbw_YCumQW2BW}-*9M@ z-g2@^4C(u47)AFHQQOcT_d7q|&;?ed&DQL(-_W1%jP4ClFW8YD#H6$^GD?&fyw1B*ZvyUIag3_l zb?LDN3&nOlQatfiKlx9lybUPa>bFT8$*WV{*?F=uf`;WMLFL~G8Ia(V7&X9-hrddt zhO$}gowYOW_uMMkH~I)IT;tHePY3fq@}l(3--gnXqbKTJ2%FiNAY`Xgf_>L5619ekMFzA>h*^w50zh=Wujt=$JJAt#FPT@hU zj_ma%J)`Do#AMXwjrNds3-Ny#=yAVIt_c>bC8 z5#~4TQ>f~0F(tAzJ7H&6k+e7>?!ye-<`l~=g}Vc{4>iQYgI_hSg{uMrz05Hfeh8V~ zXIM(Mhu@f|O6=i<^HESC(?C*SHc@dvA$g}admCL_ZhIk$>#ogFbQ6B`&f@nXN^+f4 zOOYH*0R*X}Qdt+KZ%BRb;8C2wsRCWXfxXHPc;jAn2>3&2(u`^XV1<+%DlMSeDe1>| zNyodRM+HGG5gCBQ1r&%+c_v4!_HqX-dSYmTbdFSpeu%4BPSjGQcQ)zcjcjii>z<@6 z+sHly*+XYiP`}Lj(?-ONO^~K+s@RCvfIPH}Sk$1L?bliek@Q_<_-MhmQvmHzn&GF} z!{;f}Z4JOIbI|{kCz6tj086PX50RA}OWr)Dll6>?md|0n*YoQ(4lFKJslKVfPiJ6Q zHn2>|n5HG^g<{QbkP{s&omFY!!39&EBi6gDQl>mohutT(WfaJLKG*rQ6L4Z9J^Ks& z$04SP2{E#xtZH$HUA{}PgB*R22!4oFvVkP5I%9wqqbqq{>y4TZ>B?oOHa}sriva^) zm8l_4t2-tx!SdVyV}JgLB$s#NCCV4J2>#x>S#iGQG~1%>X;4dP^$Y`Vf$djz*1Md2 z<6q_ieGblTVXMeBc$J5~=Gm6m*#knwjO#Ks?2WRZg}-+yV4fLyR2=)3L!-_idsH2@ zLmT#4sc~_Rmau=fsXRROQRE>A2G~W?K%tj4^SrKinWw8aBr<6;k-2=6EGiDNf!S z)~FcWt;Yh!F3{5vWw0^sVB((^06!>Hj_@PylPWio^Ty{!MWTWcuX-~)K;mJB`O4;=l&MaEBJ+JomaMU6Ipps%jJ5O>tofF|?{YvN2Ll4$4ly4$uy?>~Ghjufx6bxBANH<<<9UAUSA=8}NOWZ0dHJv4}?v_$ywuW9&c+JZhKWw>>s#>wIa*-8_QuT0Uih&ox zFpOhqWo^wYRDGTjgrQ>5fJ=aqlVy_Oa51d%JDNdm@ZO*AX>u+8Z7+?M=6;Q>_8MSN}!R_6!_uS6jyrv?XXLGN&#SNk5|Vj#R=P6|EdNol^zcf8{P zPj5}p2(w;}j0X5YiD^-nFDHV!%QBv6v`;`cx;#0Yix`MBHC$4~56wjJPU>Gu%9Izw zu0FJQ22MzTRz#U4QacEO6Dn!kirif}pBeGymq!x}_2SrdA9X?r!|0pMnY2J{c1m9m z$U1Upxy%-zZWnob0~H?1p4z_>?-KDVbXOwF3`e9$!LC=B#F(!Bpd79*5RsTk6qW7 zL6DQPr(Zg4cVhc84itf>j3@TGFUsg_(wUn-YNs{o2M);WkzVQhd6JAnaQrLG;cX<| zo4`QN71b!YCRHUymcS&l#^3gJvg5Dqcz--7RYA$Kf+0T^E+@ta6mo%P=V#I@Sn2eWH>biNx@qs zBCJ6pln+^Ruz*NC={e#j3n?oRvqK*S(`@h9g;W9AXBI~3pAntj2`o7Bt|czY=KgvX zb{s)tUH@d+Vr<9KzQe$uXmp$aMvcQ<&7o(RXV~LTNs3CO1D}s2W|x8ig7vHlG(!L; zp1cI>eTs*^S|f1ShKG;&BKP=uXz}w6UKuaz9pk00Euc*;x|gDv>C)p-Oy_BrlXd{b4Mr4H~A<6KheZ6OxcfOVxe4BD6RISy*N^I8wJg4kSw^1778 znLgGazbm>YMYas^-(KUM=$fG+{p~$B*Gm~vzPTKAp$9i8VqEE;1s{8-eG=)%RfajK zQ<=$EU#CKE>oj}Y)n93zY<>&ov;x!W2b~z_GYhG3OzN6N?L%$n+g^gMu&fi+FR6po9Y~TLE#& z7cp^5)yR@ZbIsX|lo6Z$?lO97vaZK;{B*?Li~XHoA=4U8kegM-M9Y2^r*99!ppQ*= zwbRa@NI6B>P3pI;)n?5go5-%@z&IBz;?Sji;a>XsK^7#c>0)<%2Ir9$gQzn`1X8|N z9whQpyI4G;V+)8wq#w)ttXnOO%B`j*8o`5F-Xrt5q*rDey#uY%Heqt1-UvQovdqJ; z6;+BEd$?FYsp05bL9yqefFIxI-@ybGuSF1;&%}mGPHP*r6yNr_wlQ5-#D`2?Ri~^R z2J$K`G(8-ip*EF*au6+A1405E#-6AguDHX*VgrtZNOlp?$eLv+pqleD&FB-6NO)Xz@ zbSWY^cqtCfn25M29!pUbX~fn7-HnT?N)#@~itX^seotf}al?yk?KBwN-k~04)Kw>dvsCy;TX45__hOGa4h0FtH-au6CFah} zdNe^ls7?1=2|3Tn;OXjR;Zeq~W^+GBOv)K62iA&kO!vEHn`Nys9`SU!hNree1P^Y2 z82f_YZ`U;r>I=KM3wW|sP0n3vha8jvE@b zSoIIM4CJ2-Y$Ti;JvF)}B}Ji^YF<(nF|Khn@rn$bB*)zMgP{3PCKTHoi41R>SLuEx zq|@ ziQ`It{U+-x^{IfN@yi35jIa?}E$i6vHBB#P1W7OFV zXh&~fetv=0pe9osdI@xIS!&@?E_}FAK;Qo^+PEsX-c5|3)CZ{_?8h_l(5W0M*}j_9 ze?GgW>~*#Y{}OKW|9Lad!Rcl!}?0K zcoa5@tmk<-0?EgHqm(qBygiz4iI?W=@mUQ`;4>Una#(!}c-WL}g-?ZY7Em=k^4!ui zHeJ=-jg5+5yAwKj84r3E#-<2B%apj70+|DLFX4wxJyOJOnMJ{dR}{3}tX^lB7-=ED zu3|en4?qe34uST!+G!c9u08U`kn~BEoCzBFpReLwwC7Y$p0RR45$}ePBK20eEOd*Q&y14F8>*Rpto%4U3k6nnO)m4>giu*;YkWv3yQ(E8Pbp#4&g6DBARed_5o(R!sOJ_=7$nOaST+aiPBN6yBeYSX_OqDasTCw;FI;r3bxhFuSKPt z0BrmrT!}2zJmB9#)7vp%Id!e)^r5+h7$u^PgDXk+N~t`r&rOoNYVxpDt1rFJ?zkg! zh_dYGaYm!0&p+D>9El^xuF9b}p!c^Hlo^yF_|3W`Jgjaqt^7N-s^cj{uE(rBaB{Yn z#KH3H>`{@BYR!r;4LLAXf}{7tF^PFs2cRNO4ijk=m%cj(TQ3t?Z_zY^8L*8QUeg1n`1R3LMxvxc8k6=ExVp7W$EiwDm(NJ3rL!JaI>*|)7w+90$M%Q= z=4^gaM*-PXDt`SKcPZkQeo(L6b|LF^!AUL@4cX~)%C_!#f(%pl`LPVVX(M@R!@Fx!Ocz)Cvn}aEsGst{N~es zbyPhG;%EvZss6nwWv$P`7t4*Ov;#MzYQ(f(f)Qr}~ai zmR>seZ~UYmyIcPM@{|4@u>RNnnlFS*f9;O@*lfc@2-wc_;UWEKFcUKWz4PXOa}*z7 zo7aEyt^R8t-+#nO{tv!YW(G#4e*{ombt-THNAV5ZY3m9+7D(}rp25;fp;Lx}TZiiS z5LblpGJg-I6=Nlqa;E-l-`U|fk$xKeIYf&KvKn_Ho#SB@_U>wDw||kIzT=tv>-N;G z(A{-Vm=M_etJ8O+RDf4isQ5VttMvqPHv9qOedD{fTpQarGZ((O-})}9gEkK+FFiG- z8&R|8hwhszho6)ECpQ;=o4Y6>d|{MsbGhS%ZTrpqh<>oo_P`$e>0&1Bec{)+0~Y(w z9ybup?OwpimxPyDUs{RuQJk~%x-Hf82#rzw@D#CaPu{=Mzk6Nn%$zC+oJLL+9htEkAzH^gn!C#cL}f``l}cX ztl-7zeYJ-&3aA>y>Ta>&oACgMvJ5N~%YH?6acpyL`z)a!vG$eP65FTlI+bz3&qK{9 zkvr0QgfH*IIj@-OW`S91?p0{O3e&6Qq_R-(Ipz>WU@5#>K7??JPZZf?6Ci`W;)utq zR_@i?&H>Vxc>P$gxnGLWWCph6s&9U2A|9Gn*0OVk#=I{nQ*l^QH$6HPJL0@?E(dRv`SHbWbezyd71^Q;Z zZYx8L*~E^0rKH;idfc_#RR*N0@{mWw_&sxY+@(;w7T!~B){tu;k|*UBzmh2 zPW?@V_kC%l6`|ZMdxg=Fz@gjXK-zCVI zKiI1@XN5*S`NI*P76r1+*SidgL6z>Nl)t(uRH6#Nlh&l7i!83WtRPztG7HW>2&A3s zW-PEt!|MB{(DQy@BR(`tCk#k`(e*>5ah4h?d6hzvk=EzKY`4%+&QDRXQm|S;J-9d6 z@_K{o-}ch@f+5a7V8IFj@SG=vwnH~a zbH~P60(Bm-P%^2*!3dxW&8MhS#mxQ7$H-SIHKwU$*z#=*^Xv0(Nz--v^j5<5K9i;> zK_csR$#$sHxCJ);Y#8IJeU`RoU0oyUuxy35SLaKauz zrKVVGo?gV!OZxjMu_2kW`cUNH!iB5r0E}$=^g%kUKzQT4#aH=iNzht9hkKan+rkW+ z&_lFlM~~QCH^$~XP>4otXI?$K%2Af!0h$>*Q$+Tm>eklbrh>Q=~1OO z5HH4e8jq*K7U`4Tp~;(rEk|vS14UPyG_4F%h}S83K>=YhUD-pL^w3OR^PKegCNbk^ zFWZLHufe^RKeo~DB;NYt%!yayL_ZzCfGIy@@jrE3BVR17jOM?B2_54_M+m z$u9SiOIT|OC&$8v%*nWY*OU5;%_R%3-fL{DDK?{~+BjZrUA>INS9kc_tyVAzCqsEl zzsn}DPz-#6Kam6iSVZaqZ;6%pcnI{`(Q=_i34%2f=Ycuiab%T(`L7s7^1}7{&z2-) z0i(Y|4Y(nXySC(dRzpuBd`AmAi}o2i9gDoN&U&qK8YY>uH(nJ5G|37^B4J8+HE66O zOxhc-D2k+>R5wt=KgXr^j@=iUcUTc67VfTsjHrx}I+?wAlI62-9 zw>8%8Db%n{g3RAB{s7hGfhKgr!Jx8YvpPcD-PsT^f8@=yBJSXqAOkVF5^RTppfCM} zryMoqD)qAH!vDkGTZY$>WZ9x(CX1PwnOPPyGc#H&3oT}5mc`7>47MyL3oT}53#@lk zt~=LNQ~h;yPtSXQUVchtMkGX>Jh3C=?6ua8yCc)tJ4g#$EiBt8sP`3%QCUDrdj*{I zLHUDS0UV3+sAPVKTDP1>q2Jqvwb9*AoxfD8O2`8o+zq{~_VmsZwKGlGEDk+9>d9=& z-#sH`+n={%ec>R1FFBy}2umSvg*NqkR~BtC&b(63o+6RmRj+{KO9RaBvRC3zp26fl zay@&W@Jx>LlK`8IF@8$2NN8NDJ7u42nBhC3Z$Ao&(Py-#=KW3;O|eU^g=-!p4jL7~ zbWA`M`0-pf#Ki@ zM6m~Qh7}W*z@0#C0%Y1nLWowOZo0A~3Z{7==+O?iJwX%{lD@sDxnI^530fu7v=A$E zs57#O2IQ+cn)U=ZskY(~s-f3b&U<~G1#>LCmutpI_^cc`GOM5Xt|d|`Uzo8N)mRQ( z)}y84ysOE!KwDHoF3Zo@gINJ}br9c!ovj_1x0*=@t%%N##}MR9PXlC=c&=9sqFlZ@ftmq> zAN__-Yg$y{Zg6#`VOS+v_?4=+RM-{e+rGDa=Df=Jq7ZwV^k-J%?^!)gjxL&peM_>r zmub6r|9tT5QsMI+Z?%H7Ljxy?b2>ghI zg*>$RRM}^6pba-z>6HJzlBzxCRA{EFI=*8zX5icZGHDr)Q+OvFF6qfA z*~m59fdH=0sbz^CC6+LJ5F|J=G#A~BFH&l<{T`;2^msxl%lPxBCBrpQZpAT)C`d0z zQaC=x=P5b*5(U|Wx@iYNYR<=v+@g=^i}7Na6Pi0NZ8F6jl>2{zWRVfc?!D)6;up z=Jmij-uC_vL+j+$cz}rnT*b6+PtL#4mgBq4st2 zRQ0`#E=VH;0OCkTs)PxY_Y{9vr=|thZYUWZ3S4&QLlqYA@p}*`kc2CsG_q>reYALo zV0I&(VKo1+xO9*=L?PR#W4;rGCqb1%`tbQ#M-Fk*#4*2ok<~2_sGs2n6cq*Wp#F~) z`|DsxO+F-NDH1iO*0E~33|TDHb`+P`2yq2yB5AW>Ti>nxL<5f#3ogZ2K17s0;|57(wZE19k0 zLH6z!1e5t=uvRp3=OP&K5fg3Zz%i%V6zzV^^39d)WvwlL0Cm09@9u`;6QlQ9fQ)_f zR8VCwtSba`aWeP<93kDA^cP-?-$Uj6*RTJ7k1x;q8^iJ^U!Ln{;&-|{+t1WLW6LuE z$nvkDSCk0<7FnK^{g3>v#-v)0074{R`O+-oj8kjH!;;&U1go2?;551S1X@wbpYAHa!MRE<5RUC| z1J&FitU0nv)N@Baa1qeWnhu#AZ?W@&=%jLJg59Rw><`HUHJ+OV6xyc}#BdW`o9S=Z z$p~Tlib45tVfer*IgYawnbL>m$~mwH(?RX)e7RH&Upu^Y*-~ca1@~7+iV;cuQm-FN zW-3rsYTf6gQhbjqbb~*H4QCvE;^;|%DK=qH${1Sf3MI-RS~wmHrA2M!rcLUPE?J-% zIc3tc|7_x4ytYuM4?b>BI2dO1{1pR=!_}-=PIt%++<*4w1xKnLQj;Zpbc^^&5Tk)N z{Ya(YOthnClFd;2DNFa@@-&XUNj>L*dMYvn5ZEocIr4O>TB>n9I)APZi)BOZN4k6| z#8f`Nhk%IN(sdgQM=|J@*d z^R4|_%zwZjSbnpP-wlG}ZyN+46w}`}2sVJ#@$=}L`@|Avdw@eCSZ8p|;g4K1`_i9_rv+^L zjaWI`>^Q5F(RG^uag^G}2;P`v$qVmH&|))^w*3Ap&L)ng1?~XvalsF3Za-XTE0x9E z`StqaH5ksE9$k7eXo#$L3PjhU!%&Cfwrha7zMZbY5OaW= z3syLHtV}@NIUXNUy^p7{C}2o7_du$?H9{)K5Sc+{}QSq}LvU{6-j zQPb4POiI=(XYfecYI#A^Yd}0pS=;m?8itSH3#k&$Id0cJqh7HwLUsP+vbO+*4FmxJ zfauYKfe`kd!@hmfpvacPex&|MK$OGsaT%ra(8`XHSK{ust^%IA50m#P z&;j4RTtjd94}5o?L8!?!UZLs}qBQ2Q_~JqU@AiDO3mbHbx7FFk%Ugl2DzG{~AjB5z7i#Ej!q*CH z7|0<0q8h+S4suDQ7;!z@wYzO@xmVz=r=4%^Ry|2h+wa6y+|DXnj@ED-zIAeJc6q)V z%=*Ff19a_0Zv8I|<+XMGYAFA}9s%5XfIR{%5nz}All;~C{`>x46!Yrd{toRMs7PjR$0=h$Uhp_C$lWm zXg`q-spNSvlbp9NL^-qt`gk-x9@LEJwfdctjJM(%0+|djIaiA^9@_!!Vx@U5c!AXE zQ^02hUgTy8B{JErW1Z+`gwi-_q6rw3)GAV$)0V6+>ck;QMjDo|6{!7E+6IM~YD*wA zgEiCW8dSkaO+8Xf6%F8O;f95DHA-+awtoNcRAl@7t4ZooG;e|dDVlVr&_v%lJvt@fAF|ip(?_iI$1;rU4(7 zv_8L7CGvawDhb0?0xQ9oegO}RXN_>gElNye+LD@H5~n0H{ZbQO_mLwQNLlK0sv?=~ zNgZwo6(INHv=qrlC8eQADl8t>3Y1W#qDU-7zz-XdCZs|cES8VXVQowKEoSfUfE8iZ zMfDB+yLz5D19msw-kqW&X+E=n9Xfi zEs-v@nN?d-np-_kD8p<_WLI@@TaseS51!sFfn`l96LTqCRm8BMnu{uvdJNbo$em>@ zqf*3TOVkoWBl9nTRY^)06D5l;ft^iU5+fr^2jnDjN5V+GRm7mAxxw5?8u8yKD48`) zR3&DoroO@2N!-t)S5P=)l}e(_r;k-XWRpsi0PLt9vWF*4muTA`)QZZLexp?S4Br1F z9Ye<~1(e^e#D2J|?_m>1Efi@d^}QtH1K^}QFy=POq&&MHg~OrSvc_boQ#ndphl16R z6erm+iN0dpQqHQn9`a9BU~CVHc_n^N1a5ccp$~naIN*hmiYGq=nqUdn*OYg-*Q=!L z^OdPkT%x*DqmMwK68-n`SPiz5#LBt7nmCfgB3B4S)#j+u7`}f<3XTNx`5w8MoW=T` z#qd6ADDsJM^|K$Dicj%JRtx7Z$k1rT%9gVuhy}TYtTxvpFIZbiLs9r)$`7e=)f@t5 z&eWZ8mu?!3)0d@*Nd;<^^-C;N*qv!Lh7YKF!3WCQ95UEg>xR5jpU0^s3zRVBovMku z4V6a5eTIznjMyPsFKf0i4A4$9qVNO=Ff>YH zuy}mG1j+~ZEPOSn8V zW2j8>S;Dg;Rm#qYr=dbm8&41NE z2?ExA5R~6m3&45d0vm2mwg8b5Am0~|CU-sK{aGWR-|_(2K#73-GwoNw7SM0Up#j?h zK;G;2b%C*y0ICC#05a>u0=nE+(tk-({ zd3hCQ5d!Y_D$XJWY~KRD``73FTE?q5>-E^HIO{e27k2Z%DbD&6=>Ra=`8|LqfM>u? z2nhfBI`nxZ9dH0*wfS5Bd%`b3Y}TJA1L6V$ zMttxv@G!q+{W|*lC*%Yc7S2D;6WEEf?6}f&3xrUpjwMTOg)=H+))u?b z+v0&xx^5?oz6qPkvAc^C0|=7PGOU37_I)R;FXWyN=)J?8!`$E!=m$>uy>i^dNDIXRm> z3@x|*^VFdEvh^Rd@sEE%Krl!j{pd~4P&)Y#wO(y_n}tKddFGI%?+KakLKg-4?yec= z7!1izzXnNg<4U{%&mV0$r%&B$liMiVV7wm=S+u05D+h$UhK?Qu$Z!j`nb^PqwH94_ z{o3+-&gT6@d&+P-K{hp*vC142RVE0o2?23b3HR6FQvR_T<0>txNEL1=`j;+emNyUX z>nKRK0{1%v$sOI~akwgH1?5XXf{2ghb#svflA!}9yM?jjtb?{79pd-hZF}y=5CV!J z;X7YUqST5GQ?p304`^x}qb)lP!He?r%ARMa zpzhqft2L3C@slaAK%n{9P{vG!Du1bo<(-hf&7($jcQdd>kIB{_8<#AWjT>yfCpqJi zG_CDEeeE)LKykGVE56;82Yh{>qqsTP(jdp*_D$-IwnHTd60>OE3HMjTbsew(qHlE1 zns3zNfNAb{8I6~4yw8I%Pxw6=9$W4WxrD4N%J~Z|z_n)?4GNGHVtYcAz`xn6yiIXU zM#0gz;q9Bxs=PKUbLQCYxaiGM=%D8L3|)8qab2M*P#kT(WW*0+8n}MJMOiX&P6VnR z$cPDAR<=tv*7sae|Lq#dYMojd=+HzArvpZfWPSEdDtw#O16ci>;@oXN3(!Ful*xm9 zscfo8&zCRoPiq&Z`XBch!L_@(>&Bq`b`(-!menfPU<%lPp+Z}P!Am6A#4NL5xLJ~% z>OGOy5H!(%? z$Sdux)9W*b9n}(oJ>qKR@?2Q^gh)+v2;VnvD~X0;rDTQ$2_nZ8fMMK_)JiRj3?#!a z`bqVQVmv|$hn3@<=~M;K;`cQxwxL{}-IOhryj889I-u6yDFlvZw!CZ<9gm2U21PBc z;k_G*ngdcdl!4&}`JxjZ$@|_{2^&nQ!yg{}MOX#Hp~q=!-I{2cU*^mxbVQ0z3&nvZ zR8GYaNeNDCZTHlIp`DzKRTeg^%ET*fuLAMyg)=*faUN8L5q~Tu)mt%&NkM-d+ZxL^ zNh4ix+27mX6+2+xN5jlefN}3MT5#=Y7~cSeQ8Gu1%G@kb9+O9ln#F8uW>1xpX2Dc@ zy!#rnQLhKntu5E&3bxFj>&bVe(u^mud~^P7D~^A0eM^oBwa}%o0@BH&u^xdc)5#V1 zr8Sp9U$@gbqWaxRzWk6}E9=l#)Xq89CG&OHWq!zJRb{NstYxsF+9uJ@26d%|680({EEzp-@t?}Utfr{DV@M{+rB$1RMjy>(q)PO$ z1>5{_BrJuBEd0cI7j)p6c4d#AXu4IWjiAi`K^zZ)txWA>NjmT}MA#M$BRT;X4%T^H zm0Bj|P7KF)UkMa@)bnRjN21Kj;DcRbP^&Hmn|1?*bgfDP;rMfUX^cy+MZOHM$04UV z4xW`2a7djPAnASccZ-=vo~*)4=^SeW2W0ooEHpX0iyxLa zu{b8@=Scgizk5iiiRJO8=U{6fD|Tq(B1CbmTCP@m)-XlL4|#w?6*+3k&-4n*bCc08 z^#WL=2b`;|NNgk)SIOiDbPhGWS)`rw+#R&J7(|BW zZ4Y?!`j^LcOl!G(v?1)+i-B~W8wS0L^TkK!gm8jK8eVd)L;2t+d)v~&FzOq&%#7Ag$P(REVx?~KRx~hPdY;?U?=!+VswyATR z*@?U(-!l?`!YB8wo7eH8!O_oJomRV*RZB4(_X}W zy!Y#TdizWuD#uR7O!a+sGLUJBi#ktO+V6sD7VV-o;`O+q_mRi1V>TQonn!`TrBTlH z&>21(zFcY}fm!VfY=CM;6WtJ;U!B=W`U!MXC6%ANC^bE%v^-Oa& z=NHK$%I5p7gnv=zD8mMW62xPA!RGgQd;R8W!4N3}{e$z-c^fKyu>Q9}NMc0^ZhE0x zasE!d=rSzs{X}q;1)31{WqGbBk6>kEz5(T}Zs4OLSgV!-=S^k&nQ$+G`+T&d1SPt2 z<;@ylzeMaZ?jYp0Xrdjrdvh%IH5MFG8Ah40+MV~#*hS4sGln`z3b7ZL=+IkfqzsI) z=)no3{abE@$hHfT2M_BGW2HV?BAtQ%GuvGR{v9dK(qXN_>-5Ub| zBO$q!;lyE!DV{q~V1_JPV3Wj;6Ren&2^s5-m|Q96;-pzdJ%B8VvXxe3tx>}+>Tvy73g%RoJWQM`>}q054<|)!!P|cvCSKlqBpM5waM@!;zh1HfT~r6Zo4%QTf{w- z(v>I7z9MBm^Sn*6M9Jml+FcF0e5vO}H(OVUMJBih1}HpC`|p zTl4By7#5ssR+X-eT?oBIg_O{UDf>ZIY}I3LCUkCBGjQzeAXaV{*`XP~j|3-8-pRYp z_2N?ReH<(5@pipPIyp6Qq9K$Iz*h3y-o`ueP_6U_(-#-v?1x5mfSM|z)Y}+zNh5pq zv--InoNTh_3IyWOnQp_S`mjhe4i`F$=>_!eRWk zH4Y=xXa#{8?f(MMwx!6wFYL3~ytXQ4eNaoC)wt~8=<=GT>+&*M$Ag9Fic4-wYvqic z$@6%tG56lu54zM-QldK%DWaGT$Q=i*ti1V~my&Gzs=-s+gRaHwf#Hm0vCj#&I&{BU@-9qS(_T?n6zl%?ll$hH*_VV+-fuQolT)(v*Im3x`hPi#3;a)EWC@#q&hoMoCr|`ZAxTm4KRiP8prCA{F3`#12a5orj}@@k(2xm-On~z%`+)QM$gH4&X|U0(TNLH ztq(i8x2YEs8*!5pk@FZ*&|)UrVEfwEageeUVwu7t3hN0V+}>vNf7jW}9<*1>A?&{sIcI>-6*&KRbWty8j1JVx~Vj;n}$U zmJc2P6SMxLu>UQXn4S5L9{8+e>4gkJq~H+gHg?(i;%exw_r2! z%DSaDfV5fJ-k#1@z+u4oG||C0iKkud5$B~{4Oqn=Zc%eXWq)e{5wrfJXiG$(6)=V9 zad7t1>B#C}A_;iSGS{_3_?MWQ!9;7~=ybvDSuhGrTN1aZAwe7*avYOwy9+{Mvt&!{ zr9!tbala8PI5)4+t-%L{Cb9aB2xi<54;o_8$1L2a(E&v&Q_HU0#UATr4s)K0X(({G z7r1R$vI6?{D)2hxqVeTbwd0RO{8ep1$gCxbqptlYV|m&>7PF+sVBB=rl}a(n@4n1g z=O2QzILIu+ER?oZ1`bnWoYAXeBbcB7e^GW!a+6ht5mOB z?0eFkR*_kAaJrWHn!YJYUP43x{?Ry2&yKrMj$Xyb3C50hIk&}#oV}_|&WjZvyqAW( z$XiG}B))yk^g2s66esue27MFE*n4G5`~DET{F2S>s?F4zbg(n6o>5ZftVc z*lmo0<*2sRkr)@VL;VixiL3$o7l!m_vBf_C&3=N|0MHD8p8Y$Z*?*qZ!Nkb%2Ne4! zrv1+_vsZil7ib+Ef3nx46xo100E&%M;~A_72z2cxp4Kka8L;UsfA#XAkNp`$n6lrq zRMy)jgWVFZN< zVcl&IAv*_oy$2O>> zyJ8y8!__;3rRE|@Yi|m~MTRrO%f+-#J7-_uZiZSS5hZ;f`RW+lURX^nx+| zQ7v7)AWSopnyj;n=FCz5o-f|Vk075X;PO491V;|PraLzeQxfy%yfFxG&=P+mZ-HmT ztzCw$LS3|^upYx|0vR`KVuZ~gELNg7aR3t&EM=zm?FzwK!MNC_ z!OwaFRD>L}s5G%V0NypQa)t9f`ygfdx^OLWp_GSKmquFd@dCxhVFX%sUD!nS#W@!2 z-mubb)as(Sjlta@jJz$H8TX@!gFLys%i(ECtAAOdPkP~MU@j@XlD_Ntta|ZL_(^Fo zknUOv9!s{o^AE@3x#}7Qo?W?CrAnU4PhG@{t;&s_6_jWZQl(x(+|)b+!YXQ3l696bWpj!a+34jg(&@KGgvHZvMfA4yJbJ_k{ z%)bYu|H|}YW?}xdPhkC-`Wt-$VB)SE3HLK4u!Q|&p0WX>KjNI#!P;5Q)S%;N}Y86Q$ zw_EX0^&+IOQ7B-LVTi0ibBOr^N0WL$#Lt*tuYXP&LzD$II3f&v9jCk5ur;}?ZgqI6FwiHdji7_!tD@u_3OlL_7)o6o?O?02Ce4=aVoVo+Q z)8-t$kyJ*mK$ZZ#b?G9_=_H=pBno}NC$7aRTDu&IRG&8?xT_Pw8{}{(hg`aShAWG@ zbzCz`1dEe+2o0Y1yZNMTR&rCFq?&KD|)R)z zxomInENeS(@~!ajWd?O=U!K8^Q4Z*x&_yX7}f@wK0Ft{x#d1SzxhWzS?fQ3r_z>C&RaZ*p5r z+3qz<-gWL}ko;?Qt{ zQ?#3T7fQm<8m+OTr<%)Ib^CX#Shn$!JAE=eT;!_>at&relA9ZBh;_zKJDoRxG$Ap; zsbO+D9uu;{1izUF7LKAmLFqAJL}~I#Z^#IXu_k; zx@n0a210Bb9KsCjzUHe+K==Fye>!wTGBdJm2K5-u^dyCFrlX2L#UlV|06P`rgPO39 z105xLJ@Py#$48AZDasi=@Osu!pnNXqa+T=sg%H5ei zs6Zk3E2rLx0Lx=0QOJwdXpTD)-cpXgW86RS z-@i2~UZ^4D*S<5?4l)9yAz0Kan}op3j2ql_xqM-AD!Oh z1exIY3he7l>y@d*sJex`opYybh2Hu230_>jJupJ;Tsz5MYxoA=37X4!itT*$+yX4_15 zRPm^yX`E#l2AZQn*k-GO>0Z)r!1NPlpD%=p39$)+umdgYL*CK{Tyr%tHb6E6hLSX` zWW+krZ)z(a!lSu@k;7aOZnV+up@&1-P@1`Z*hKuqG_}4qi&45HWKQPR9%e9kLk>;s z{UNWdW?Q&RRdz@|J_#hFZhpGIN1Nt$~qHX zWd^80h!EU3vTo^Ki){OLWs7WKp2Yx8^|e2-|E~0Mu6Zm;3IPKK!#M`i-YxZHu~p_a z%JF=l2GfVqYy+1SNUP2ib4;IH=!nZC0}M#Ba1E!?8if#AMm3aVh(}8o83;feMpQND z!69sYxV}g)GVxH%Ft#pCJEa(Ft~`vB5H`EpwisxhL=(|miZ!orDz-#noMIM7Mn#MU zlo?ul`uV#_jxW?@!;fAJoedEAS)@ZU=K4IDqOwkkk^89#Sf~3F9jVj>bX!tWqKI)= zO>tkRd$hfloMO7a2G^us$e|&@gV25!BQjw7ZyP0$hSTLM-OgWlOBGUYDMP6$9TH^~eT|ehq?2NyXa>oWREC0{S_+yFN^Qd@ zv#mlF<-o>1wlykx_8@d4UY~#;tjkQ=GYbwI_UYbR_Amqi>4x}HYPaRNTov}a>O<`h ztVf7gYCf~SXitCBjq*Qjw!gbk{#QaF|A}qG1eh-O|B`B$mEwo{5r4kZ&|+@`adDkurdLJJHK|YmAH$JD?=Aq`nB)$R2(+4dTRxB+(V7Ivpm-htxeZdgr)^x@W zUqE2--TI3@y}WSiH}NNAc3JJFn_Z+3v}(B@?cPeq4<{~fj!s11G-ViJ+|Av(*IGAo z*k54WCsuXQm7Um5+36z)s1MTjylcbCI4P{~Q40+3=`(sFR|pO|GbGaMr2f(D{xtS! zaVz2MEW*n|1dC@7-+?!z6NpL-A-5Zk@fh<)`|VwjO_n`y_!^u^cK}YPW1az%QSIS+ z6Je7!a9%WE>T(|dLvW&`_z))99f6}zAv!~{mJQI(ChJiJ#Sh0dtr zlfT47`fz;}(Z8MY(~Z(zzCi@qwnrlT0P12yXC~5WNDu=8e#Cgo=xFJ+^_?@F3JC%U zLOra_=r%Kyy~d_7XzTV}iW7yJ?Ln*Y`qXgwb_JtEJUKZuv{=Q{y1h6`Vo`$sU}%(rK8nm9QWgOJB9W>I_QTD(N#rZkU>K- ztjDQ8tKki?NR}F`zQc51IC5Q1lqEd?=3Eg6d4YnyaL{{D^V!z+~@um|e4{0`Jz5~PEfw(tMwl2IE zXY2ggd%6VkG$9{5Ns;_rEGP}GDPDTrNhaI^jj%EwP%Jl8tauNJ$?SpH=8MZFx*3(; zCoWtk;k`!1dI?`O3L3TvX8Cf$+@>nFAT(R@o7k4pO{q5xRkmh%FqHchpVlDP5Z;VA zn#+QG!~INtjS$&FCQ>hJZ(Sa%VxU+N!eb+KZQGXtuP#74T#wx+ToF^)RQ6DJr4U<# z_z99U!bElw^Fo-iE-@gk8+~b2UhSRp$E{2|W+o_nUHG zU4I-FRBeE+MViXz1drwjc(`Eo?UrY3eD{nfu)32Y%wT|-c&qe+`ch!$lQ8RdL~PVZ zRmLt)3Pd4~#r0YL9<$H|vYy4hlT0}K&>yT00BS6L-FB&tAauZeKGh0>-#2M|CnBV! zT=b|mSwZVQMd>ySJ@wIk~_|~ap$4~X8ev!_VCd%fLIg6Iia2ATOOKl zjmuMl=~WnnAAnp)#P9BA`HbRK+ii5(UB0nuqz>qiy;~`Kkx09Kw7 zlS?Q5_6=42t$x)IEi=}t=Z!;J+B(U2qRxD>4dT~)#Kl7=rqT4?3Gsv zmR9nJx>E8dT@N!sj0vlGd4w&a#1ih3S(wWrYU5835i?>0V@0va+0;}A`C8?M$qg@J z7d-XM1LO10{&yt-m{G9qJaeLvrf69Rl#(-SrR`|6Ke|3L9?Vu=HIS~azKI$v8oZou zE96QL3n{FUZX@yVjm3mm1GghYy|i(dMih`G-hFbI4G+D+d~iY=hT1sHc>esOeCWt&po`0)zC&R z>1;TnYrB)Hu#q<4uU7gvu27No1U)SdZ4KmiOSr6PP8;Cy0Je4Jofa%Wg^ z-sB%n&n<(MtpXyZ_1-!^Xru);Fr6bloJ9~rQH8YrhU^`7StW`S{&a!saA7nzf(b5< zigY|=j>-4%rw)Er0L7+TFX-?bNYDroiYWG7L~3f5GYIzbS>#;L-BE#Rcac{YOYs*s z4DO643!y+0pwJ^N8F@@*Ci{@!k7#mi*BXb~lvm@-wcF8J^+(M`>GH+phlL%g;(jV6sro@8G>(%e~tS7?0e@b;PqImP|LlH z*JXWGWCFHy><~aoJ7Z;eY|}c{mPC+%h8OUGmJvIfy_2A${g&m9ZgE@Y_!d(q(Xhp+le=} zty;?NjqHp1fYiI(_*}ksx1-H)C-`87cRC298>>NEh7ElEHTX764WRgpm=;G&We>*O zt|BWu_!6PIi)x*a^=Z~EA!XnOmQ1WG7oaPVj440_E#L4lZkI(C{A+O~5uK9JC2>&b z?kO6a511!&g9p|XUqt0tbLEg4oQ0Wr-wdjz8)r#@p5)sJsNmctl`fy(g|16z zxVwc~Us@zU;4bSRwoA^sQ?Qy?~(?8~Lca)9Zz^CaxDX`buCJ*;VgrxR!3 zwL$FbmqxqZnV&g)oMEC@#B=~6DNX%i(ud>PPDnV<8Um*g7%cpn*{Kq z=<>qTmJ?q8@=}}H6CcvpA~Zr}YGhf+7t}@*h3Q*gcJ2WabnjL>-Fajr0}B0wpP9h3J76iSPY< z)L4$RYQERQrKI|+d&Jiis$tH&@nJ$HnqLp4MV~=g`h4oN>S8y}s~%DM-SOr{o_2;r zzFz~UjjjNi>)SJdY{A4>C3QQp`QCIc+DTX0pw`%>Q>T^61+eeiFUiqhb!X9#Adm}i zU=KX1z?FH!lm2f91^T&82*Q0lZx@UdV4uRzvc8JqTnFj*nm+}RM7$>u*bw>F%kcQr zy`IK$?7BH8fRHg6aQ}ErP-7L;VEirVaa^$}n@?94AASo7E7){#v3o-ww~zDDPZAP8 zhp5=T)D+{#km!q_wt2uO71V$qt+@3qh_RYDv-1g%cz#_1=u!X;)w~s9lANnIMJYq` zh)6R=cY@b=7qhbJR=^vMa`2dTA(0k?Z=Q;&Rbq+nYpVGj)>913-~~Z1(~fUHCScZn z+gs6AG#l&+?wA%%jQDh6IX ztaWLmU;%rZ=+mhJxhCq3dC`5{DlK0+({VKBLPRZkFoOlve#3;_oQcp^W5&jI>xvLF zFeMmLAI0+wfDXd8o?7xTGr2zoEsw3vVJ5VCyOzY(HSdB4U!%%8f}56ZOH5SmjBoybMOiDL~Zq zBhhNJXw)?`W+q0VH%qYEeY~m1B_xt;e~jekF2YLu$ zu8yKD`>W3U$NW}MB%2ZFvTZBMVpsVO4H|4H{if7msqR+8OhiN}nD#I|&n9XROXEO9N(F-Z zoX12M?38J;BCAMdX>AgjcT+Fi#CF0}S)2H6qDXNnW>01dDWi<- z)t{O{$X8@~h&lY2h&N?J!84>I1ii^6{prYD{SVPVOy#ynvGRfgf^LgtaF zsg3m_Mh9hz?NW*3J4pwRK|`B8pqjWAHfpJb?ikP;6|xF!P7G>5rOJy>D})Y&emG_p z1Ib9<3!w?zR5j`OW^p2O5wjNa6K&ra)hB>IO|}LRV1v`n%!!`|DfA5m31HgqaICoA zPRZbr^iq4z1Q2mhwUFLQ(J`N1^eb(7+xD5Tr>(VdVdA|dDr`aHX)79bEA~%1ng8CI zP?GQq_#* zt&Z&X#U00|G`z}67bPN2hc@&TO>dPS-#l!O?chd~upoTy_*fyNp{gTI5q}rtwo){l zq2&@`8R3b`Uo#*%yIdd_mIV3Z$F{WI=oIJisED&g#hvH|Fa%0}ml9zPeo*Wuvkobg za7tu@G4s(lDBF;y8V%YI;ezYo7;1czCL|9fv&@yoTN-5 zq;eG%`!)GWB|%Bdpxp~Tz2(=+s-f+Vf)BEMshZ$=${k@0yIdebA?IbUS2ADjpLMQm zVe4P+h%;(~q^$YWoQ!S^o?j+Hs?tDf3bgZ>@B%u#6kPJ(oj1R^Iev9T{Lg{tf7j#8 z{x9Ir|G&riKjLxz?UDcb?f>t1oPYD4{aVcbypb_6{vnRX-w$lV{x5)*tbg)2&n1u9 z^)bQ?%OZQ=ze9348n>X$%%64?6ZD9NxPB%ul$)7gm0e!F#Qql2>!u^Rg9Gghi4RKPksB!)n$O6_zl)6Y&H_}9x*8O z9*C##ZfB@zAbEr$ffJC5jC1WSwwcZc6^QG}5gYL@YC#R+Nx|aqgd3WT*sMxRZ?cGLv=1Kpq*@RqKEwAHP<*9sYm--M`Eo7K-*!qh z#Uj(^DVJO;)8}3#A9QR(?i0EmIl)-4@A>{#ex&As5C#5oZn|aO>=*9u>*Qi7BiKT_ zOy?tPO=6*j0ggc79*amQT*WiTc{#NhtF}WE4>J?nOC8H7E)ZxkObiKV?W(}ASmbud zcb}4H7#)`5^&sTsIG~#%8SB^iKPeQ}KqD_Qs%+R5w7?+*NRq2^7(iNJPDh2c?Rj~W zdOLCV^FdwXsxBydb0e^}JwRvsL?eB47;)o+r$JM$ex7UmP5v+xp3TMOV5pWVku zwsM5O#XX7vDSvD9ESAt28%eg)JA_%G6Zc&x^F(o|uHZR-OZ zUazz97ail@MEn3~3&61rK=OZregJI$kNC?UQh!m*e;)B;|D$F6ZEhg@zkv9$u>LXZ z^xSNxT>v8z-A+CL9*$!w+2XIbR0Hfdv^A zQ@uaHdOB~KAHB4TpBcJcxyg&PiuQ<F)GzrkO-MeNgdQ)kjUs{&5QvBbmL+f2D358FcxB92$|RyQ z)OL!$mptRz>F{QU+EQSrMd-=op=FBdMbgDcT z$^E94)oX~&PANp)K=2-ymfRg)0?<&8>HCnmmr_%I(OUi{LI`Md|HV!Nv`at({X;YS zW8yE0`5htre+6n`C1n4_73tU%{2%vVMKp{4;QcmF17PVxx{` z!b;N{pKtoT&9pQ;tibpp`~^y`gL0Xil3Z(LDrDmU1xae*(Mj97ct380-0~59*N+{= zB&F7{VlA9Gy8a*b-U2w1EKAcBGcz-$q!cqVQ;Je4W@ctcF*8GonVFfHnWYpnrf`*2 z-91&a)zj58{nmEvb(ndCyGMjyi}35$-OvA@@9;p5x70WpZK!8>+@_bPufXUz{5UBs z+k88(m{6ao$LnY`#YnBHxZ`=Zi=AxjE4^eMT}>EmXlA@LM*AM8a3fQ`RorQ`-V{0R z&z&Eo^A2=nP8_c}zh>RNxZJAYynJr?@w|@}VAWu^n_q6jV_?D=PoZ)wL(U*mgV5v- zXWL#laIJOpEs|jS_1WaK`Pzx!*2xoG1%IxE9fD`uf|Xy@N{-d_yx=sAt;5PNv+@e9 zupOL~Sbh`ybttiNlPR!HW0P>zMeTgm8E+{t(t3|$=R^qwrem@(InWnVXOxr?(0DT) z0(cvU-C4PX(9=u9iKaL}3aFE#7JILa!y-Woug^r~zPz1p7m&Mzv%SPW7@ z;82a6b9${WcHPa!X$@0V0M@kAK*q?4=M*`-u%u zjzCXq*M>ZoS$USkiJlcsxoG@=VxI^}D>cHmX8Pzi55F6VEpP=u@mu3~&j$+y$OPjA zDK{!SL}$+ti43i!V%p3A42!Y-;0S0t?fu?#$XHdc5ZrvYhEA}(-!Ch)o9dchiRNJz zVhf@MU_L;w7wgmzB_HHuJ)d~8j8SFsR6%X;G)p|evsHG=`-*qby z=SDhx@a%gIyU^!@$QiA$(||t1U=-8<*8YOSoF(H8QMeMnSakQ~vxXxt3Oi#h zkViIi(#z>P5#m1GNVsA~D-X6h<93~#>r5cs!`yvEg@)G47TKsLotNeLx14A?=h`>~ z6xqC~yD{@)zDgBu_C|0F>I#Lhvl*-Ty z@gP=1wYZdf(fiN`cXmak=E$Ebz1thU@P3eowg2cJoI}4dp_zotOSTeghA#Mmf=dR| zr#bt*FC99gADX7P z6rw6YIPSnv!LRSo1Or|$k~wBoglY@KT&l1YQ5D`>ZEmaat;=lMpDTX0F3h4`r=`yd zc3pbr4err7$JAguU(XM>7ehiCob0>K%;=Ach?S(sgaF2y%}5%aS+R&tHIS!Ss3wa1 z^PB>p*9zc;iD0E^kbN-OAsQ$M^Gr$B+-mO6Rv`v8fzC>`#6$U%w+{UtoCchp$)0m4 z41%96s$;}-z0^lK3N5}Dw6+N=v7ZiCPqEW{zdbwu77EtW0Yo|etP3oJm;*%C)i*(H z+UTCAkh@}$6)j%asseh>6)DY0S~)3B&}Kq#4HpPCGJ$vO!m)_=K}1`?_`&=>br6QZHhB|=D_bf49yA~NDWTFJjAG0#p` ztHSiCju1fH_RFR-L;x=&2>x}5Q^>sp18YL-ur1~^usyqGUkj7PR$D%MDz3(`cdwds z8LnQOAcktb!}pKl6yU>LPso~cjPk1hOC-o2^5gSAOA{n74C3hb#Nk6t1tnMSIcHd| z#4YQ?q`}2LGV`rT>@wz=rnCp>T1Ws~7HhI(^tbgw5mQ%bXMf*bO42!ta}?gV?_O7< zXAUky0oEXwn;n^}*1V*OtT#QJWSz^TAm6=Vjb`s(Nen??d<%gUXZltBZ>)--60-7Dkk;iEi&}q|MrA{i!A_O~@L0A@S&NpSky z;iJ8WItS+s@29>UV)Yim0V}%&Pe39|B%&eWs#~Dhfz#RDz2MvwDtbOKv|%Kk5ZzCJ zu*WyJ7091PKh&2nFXvFIdgZNZ6umRDm?%fYj=w(CG8RFaOAoB+$r|CnIOOFJ4jvI6 zvI%{mh1DJS1pE<3bL76(bcAYASNFq6GF%@6`C`vk7HGJ2V%g-xfX!pS=TKtrgJpeE zY@e$g*%&`>?Oi~balaNvb9XBSozH+iJ{!4sg`;>b*lWxMsJob2DN zcYJ^)=P}Oiy9{M_at&J|IL}iorQ+P5WlmQVC}CI-g$;u5y|ObP{h9aLgxJPxrfb;h zxl>BmR7&!*SxeP59SSBCXHH)!R}lmqVe;tsIX_kgTYJ_HUy))@^7uo3be=O#9d6)IA7CjGa9-$LFD1QhxdsvyN_$~r^ zBv>n>4>uu+RvERc#-CKey+D)LBvL#Z^us^{#B;q({@?n*Jr3~MA38!6yb=1(bT zE18)ZR1{?@#6xgaWye~=?z=Pz>)VRgZ)#_ajG6br<{}6F_5d51HEx}(^A>bKLo*vY4LERzr@~yic9gr6#;S_i@j1R7Yxd8y>+zHvJ8vem zk-2F5riP(eF|~Qr)yk9;hlUHDpgttCiR9iO(5v#*IRhbdc!D-blOfDVs{%C$9|lu{ zhI=(DZYE(dq3qN!@^blvCWgb^T5&-O&v0*y`L39?pZJE8!}&Cg{IN>o_#`VYzQ>vm zdLN^$2uY^fsl@8bE23`T1CtDRCPNbOrp{W@rz;Ua6*KUt{p(K=xB>YrGYgerb99ae za<}fZ3S@#4NgpiF2!;SFl3m%Z(jtJ1V_}22Rxt!fIiUq|vQYpUrm#}jj@8&Yz0MV! zJV9$KkBKwVv!tCuZ}cv#$0u4cCJ0+NNKk2>_mdj99;e6=LKun}St7x1_Q-N-nHD>P zj`jsDWIjPi<+E^1twDzCvz|AkzBX!M*c<3YS|%RCCtb@^s8WAUmp&f>WWih`g?AVg zZti zUef-&6O2BGL`!NcJAF-kGzD|J^TzOxxV1EFT~)*Y zE`)ilibqYiX67^{;Xy2Vb<3{uAA}Fe(E=3)^qM<7R|Qu(O%I%zBegc?Ocst)E4*S^ zn|N}&_rXk4y1&8-I}CiQL6|}G5&zHy20?Dcyu!2yX?hi2)2J$GQl`+vkHSlQ z53hu`#8<;e$(mZ^MLTS=qV=H}@6;A$iCo@r)VJc9P24^yKqAC=B4;}Z)jbqeMlh!y6hpu$DmAq2_hQ=7|W(3b+< z2{|@7jU8E7l7TPUrP7+3!Nj2ZP(9NDNF?;}d`q>X*)PyaW8#?`9b&Kf0`_=Q-ri#L zjeAQlFBCm59jM-!ymRoLPoy$6p33c^AX0k~LP1eX5ps)&_3&o{+-*r$=S0+0q4oZb zC4EBzPw>W$g@#TA_MTtJ)k{T2>I}s_d+p>&%Nyx=`XUw1VbxpP<`v%RBCs!u>cI^Q z`8Gz6nJmW%a) z8e@odR&<%VASl36{U9V!XTHm4c>3J>Ly3#c23cC&Q;4tdh=n|PeQGdc8XuC~ToO&~ zyrBZ)ewA94A?G&t8ozGV@DME2OtqDwsj^PLib-Up;e%7n8pEj+Eu6f>Y5Pp{jAE z7%xA+as7OLzlqkfU#SjlhhMc+Q5)k#cV0&}C=YK2kPUK$2l3-Ly{01xyqJOBH5iZn zE3XSIRx)sVn7>W8XP>rvD#UxiDK|GT)(H{jTmB^O1yrPr*tqgf;BK3N7?T75eS@g?LmhlmR6wl@`9)=QmkTTtz!(qoUKMGpG)iRde zJJHFmDwX=CG?hEkv*H=FD31 zhfgz7YlOhY(l{I`Iq9TeDXJaAiud#eA0Q+BCt z<}jYk-7uQ27dsru-}iIH997qN$Iu!YW~w5TvEwe-{juTpDu3asXZflW1U~x&?>^at zOPGuUdi~@5N-yaG=7#N}QD`i%lK%G2a)E$B+I;B9fxYOE zApXb2dwPAtlb-aOX!L7dT6~!}`_}t0e`NTNNtvK{>J&!7_~iM$UvpeMGi~s2(kg7R zo~#?0Qt%<)0KTcIj{iX)|Jkp88;JZn;@W$F_HV)3|2k6p9=HA9oB1VP`rBsyd*a&f znB45YOB(vi(mzTX`ibOb{U02w=Q*+&5peT=-)0HGn^JI_|vX zDy#PO=`RIKN=pC$xZ_XtnC~rubE>+`dZJqLNUr~G&g zDsS!^9pxLb<>Oc|h77INt2fH2N4>Spwx)o-Od46OCnYwQWL1&EdN;A|I87BUl6G=& zsJ0VLP}`fVf?6dB@0~@mbe=cq^)CQb@3$?|?{u1Ab{O=dI=vUf*uTW&>6xk}C4Jqrw+iY#_aen$_bPE+q z=+NGeJxGa({0BYm@1(l2vizs&55Gzezjp55YYzVxEd4!Ru-FewfIs2||H6fR=gLlY zJv)iP{>s?>`7{1s;|0sTb9&cIe`OZ`mJR%8c)E@IvHAVKf1myy zFZd@H_^#tc# zKS{v!tOTq-HNC%}fY}IGesDrOvnZ7ItU@CE->G z;gxs|g&P~J%h!|h7Tvdr?d`V-O^vh{9a4X}#5M#<&j#MvmKG0l$NMKsr#AT8v!~m* zz;YN32^Vfe!wM*>AU^}5HH2Y=V6nwO4d$1pfmd-;#)QXW93UkpJFT4 zH>9>-_SSA5Yg8j=cF6QzTPZvj18wfn8U@xnR`B_bOF)rR%fpJ&BFh=-3+2@eaE3z? zmlBm?scW=aMm?zm!=i6TbV^K~Vrbx*o?qJ6Q8!Vo$c3|OL#*xtC#6Hud!0yGz0y2U zzS${yb|Ixp0aaWg(d;6D0kePe2)qNVuj1|HgA+U7*g;|0j$){Cwm{!5H(=5an?w9z*;UXvl^|Qck>5(BN&U zT{Bc~i(OH)cf>+EbleOjJ0hWmfM26n4nVj9GqN}m3|+z_@dwKydb2SMRAaZo*}SvakhOh-u$#qL{vflyar_a6Bb zHk9&Oxq3%Hv)QIib-=CSVno0zXwVJK!)dTk^CM`G6oF_E--A`Ymw`=Hrs9LyU`_?p z<3uKZrdJx!mdYlJ7Z8(+53d*f8gcv^Xuva$h!6=dY2cN9OVHXOQ@;0lB(Xd{yJxjF zkINLvjGMUJfqTMCet`qk)D%2=F9|8oBhTvQ30h^NT-cBw+9#4#&m8)B?V+&@yMP>^ z`v+7(23Co1YiwDbkyHC8W}?O(iiL+K;4$JX@vRtbqki$N!EPiU>WUEp65vn5Y9Qhc z8XxOcp{iNFsa@Gucrra}%XX~QoLrPi!WK%U@H1e^>yju)gcn6y&ju6)nFXS}_@1NL zmt3uxmMQh}cLrvwMD-bEHrE0n`WLY*ucupm zW0L2iKJQ)I68hNFoKs4*YSAvT-FauV=?4c+6m9Vasasd^OQGX!nf6gzcVW;G8JTMI z+)%_L#O55$P?03ws5>=j$3Q9PEZjsOplPA2aLb%Au5E6gjWg+G%OT|=r&-kP4&|m+ zed;QRzDwvWzRefHd0=fg%@>Cu0aJ!+1*Hc`6n~!CVUm-s@KQ!qM;eAY>XF_-(XXU& zxH;@MGunj>#59)eqCYKtw@~89tt@^_%$4eH#Rkk-r zu?Fn}_rkVO8{dT!#I!1ZkHnJtFJ`kFj#e}?=$2}oDnKv7Q0Vr_k$#Aku{w)5!fUN-irAu_@11==q9Z8K&Q$9PET!m8Yr1hX zmnTs}5KBBewoi4F+O`I`e59q>10%Wyk;v4YHL(1&ZMh}8h*(=5K zd4r&A$uP|%9yV=Pe*9=vPN(e&yrxcqC#Kb_d#4wt>(lBG-P1zm#G&?*@`j9-oxRMFmTjMwGxqQXWaX= zf=?5nB8q8i(#Y2@c~kUHr)E(D@AEV>ZcZS}FYrd=8pLgQTo=BG*%jx?*RLGhX(X}s zeU1p{qz|U1;Vt>3R!ACjv%muvkg~Tysi?O^-QPWl7wTWrKFB_Hmw<+(4}St6HoP#i z&y=@9RP*TrJ$Wm;td1ZoXY@J{la5a;+Yram2wSerN`3y+sj{lWa4eN66Xg%(a0d4C z`KYI3wecG?PG$j%q6u3~eT+1i!(~T0VUUZ3D60Iiq;+58f**U+ew*3@w5pTViFoh(o_4xG`^JVI!5p-cN!QTFoOm z!1{4+m?wWcq;J4(el^A<4(PwIPpEC)!=vP``XE;BA;kkl`5jQaay$O&*q!Q>%3+no zU5b3_jv$|&0+qsHX7+I$r&JE&h9z-(o9veEBY>1`Z#g;)619vZd*w3DVpxkjtiVi` zPJ~%_Q+Dm=xnP6tTcqxC5>eH=J(Px&naR$1?|pkgHDabp*zdugwWVYsd*_)c>NLBl ztU+kbav7E9mQTDl-Y4kMZ~Gte$4M|!rTm%za+az(*VwGuS{YLku{<-^D#TH4H`~xP zL>N1nzO!n(RL77o_k{Q6aR^GPgn1y@1538dbyBPght1Mz(^`ac!jNN0sp$pUcj=l& zNzrE6aqHN&)~hs|jh1B*6F5`&_#k~4-{32`X7#pd{a9*uESCksZDvuSsdzx#n5Z@j z79H45r7%=lwHr`+-xbp}8dX4OJU|g@`}IsW5PXj-bagVs1Qn41<}d1NBdHn|>;-B(dCrxOq{4L#0r*&~*FlQtaY%-IU^G zCVRb^$0r*>*4zw`@9em^_~P+CjWPv8B+sM@_V``KN9joPF9WGEjK`OKd2w&yaV`8m z;Lt3i>|NO)^1JiT@!x=*xwF5ACP>>>2FZq!)JGas4zcxFXB3= zp!z*&t$hETDDOn=@RKLT?o6YZ zgF<$~oInt>0S7r~%C+-QJ=;G8qOp)<#$$_8Of(`I9`-ZUP!8sK#;-)WP0(7DMS(POY zl?ypJ5x+vGo!_;Cr)z73xE;aegQ)Ug0(1JO60aSmrgIOey4nTnuyglE#Z60JJ3H>yzM`HU93EmLTK0!gTPLTwEYu!v4HmJ&>@-{yJrgKK zJcTG^$A<*CwUWt5yran`7~Eq&aNj)y>oiyb?1<3g3BsETgE!D`+=aIEJG9uf^t)<% zudwB$Ada{|Gu*D!8{=#1A2HnX-}<;ABtNz4MV`*aQ7Q2A!|}+MA>Fz^}}NdLcv4b z-C=s_v8S}p*QPzyV?=}S>W_uX0Y#YK8HwUV`)ewwqso#akfOd3gl6B=d`h+nMi$c^ zB)6qZg-LX(K)d?}@ns#!4BU0f5d#7-F;gMg^u?E$G{xHwTvhzOnKkYK^IKpdS zmGWu5!11nl)6#pwbyTK(+`K~dyty>OxMB9R@>#%cKmR;tZ+>hW2Dz}3h?i>1<{mCBY=Wh#X*UjPo$$E%aCA#kvW4a+sevnQ6DlI7!PBOhbW6Xj1g zFwWu(GJ>zVheWI@p;V5z5W^#(*@zzLO`qqHd$5ilj>k}ZXu&8(O4THCT>N4yc8MnL zfpLX4Wh>Sq(iJj#(iRK>z!&=T#}pJ!`SmkNpq!XOd2L(wE>me(U>@Efkzq@PF;G4n zNQ(6Q9(~+uO`|=nC16l1(K9?t-3<_gXSwbBBU0=3jNnnWJY+B9GpUmG$l9DErh+ET zHKo;+wO=!|#>f;pH(h0upBnAT#BnR>L=8LlWiBf2`DN?STrDMNEHD!H67JYr_jl5+ zZ&p;AbUvHYsTRkDWxu1N^0yX~so2@wA63;C?+;e-W@0ER6vjrI`K?bB2p*k4a*2t< z{Xczz3jr#c=4#$usizj{bk3g@Rdt?{_yHOQYeTeg0K#xB@Y%Vm1qDWV1aUawWAqMS zxsy+uPW z8D4}bw4_niB8RyS9g+`SERH@n;t{)=W#B zG-9Qf5o)9$y)qbd;PjEQg1H`hjgS$ztPc?M#mv~oSyL!bU7N!x1$?{Ogsw3aO4wy1 zAr?3X$axS6_UH9U19)b3i+B??ZHPtKOs&*R-T7kRI8nl{w!HgeD3=dum0=A5Q`nQG zygtA;!0rBLk)pA6^;U{j<2m@wT>i8o$4GgGPg178tkw4nNzAh?m- z2Nn7FKRi;L6_fF^7H~)_Kw42mPoVMfBZNFa#U4lEuyH?6#c{wlv@hDya6yk-$~(r2 zn956+^cGUSn6=7km4Jb1$Bik_8B5%z;>SporFrJ$dz0nO2STq-#un>+g|oU^E6-s| zlObNz+V|lF%jSVVLb%slR_q&FFmnK%*`pD*XO=`Ws7^kg+nEAX1bp-f&;dsgBI2hcbpIxwmD;g;MkQ`oT8doH|y7i$PMgfAO zThpkT6VfRXKz0Rhf<+A5OIxJ`gzJ8&Q`iZpQE$H|JIt=e^@JQb)uo4y#rixf^|cwq z^Z5j{NiJHXpRJH4jm<)vUFNp!hK?1InOTz{b)l~MN4lPga9%<%?`QR`=Oi)Htj2`u zI6D_r0)D3c+fDV5GJPpp{HkYLL73?r^+d~*-0D~irZzKh& zpjW;o9q&yy4hc?+(FF3CfM&`W9;XuJ4=W#pbG9;N6NRmS)EUYqM{GtoH@_5Z}^n{9KvZZUN>dP(3$0dYZB_Fcs%E-^&rRJy^#%@2MH>_g!g_MX8Z5yKEESDGXGk9^)DE&cVGOU#CWm(6R9K2 z^uL!-Pvb`{kKaj}*$Di9v54&C7MA;ZOp%KVs(Bj9p-D5x* zJK;wGz+SHRErf*G-bB?e*Fimqz%B*tEVXU{ReoB-MmG%n~-r z=&mnKlAG0W*=r*bhT#{$AKI&@PhdnSmuxI4`0w*z6zhbM!Gv>U?^h+FC|6&zG!nD| zHMh5|1wqrv=5XaL%PufVc;*5|=#}f%c!yPsD*}>(dI*&GX2IhI_&#*(ifT!eFvV;y z20H~N=RTy}Z7r>&A>D((e0l+mo@G`p{*DWJwoAQMNa$y;iP1)pcNYL1f%*#2QmKTc z^l;b6mfDqg*!B*Oup%>x!dF1757|R!iNpsBMFB-WI#OOEHc41JOz+2rahfDn;O&eo zvqVdDhwj?Ch`ufI_r1M~Z2iPIl?;eA?6I+2X=b z&+h4~8-d}j%OkxA&9RW(jFruxTI)LagLmNM#!5f#D2dD<$5DUOO!br2ChanWG}9l% z$^T@Q%e%bv9-04>+UXxO^Or1_{~>Jgx56pY?=X0bf4-D4>p#K4qi6a30W=oZ1@}%{ z6x?BZdDGIIcFgmZLo)%-@aydY8~GU23Q%a8zvL7AxerlSFrR~uDhRk%$|egtsmM{R zG69PD2kwUO=MP^}ALp#fYDTLr$4B$;6f^1>Yp89L&b*Djmk!>*^~RG{ z+jD+Nq+sOvHfJJ%51GM*>`9M1V%Q8iCVKTb*>WpV^sq3iL6a^h9Dm?kTl0JmIB5^? z`Vap5zr&3Cw}kjNt?3VD{%n@jZzI4d(yDw*dE6&O^4VDE z5(qz_#ek%&%V@LzNuYx<3WmOvM%)F*4 z6=g#Z>CEluz03vGP-PY70ZeN;m}EWvR}yILmJ@ip?Z75x@rLb!OzzGJ)DClPbUEhW zsk*>&v&+aZ#uK1<6NvbkGhlI4%)Axg*@@Yh@Bjd#t%9P{&Z~qkkMja95FB5=Y5;y* z5LQ=f8C`IbOFzt3Vr``0T3xuH{CL0c;Z#RHt&flwwqeL~SYe4cisuhHpsx z6*P4EtMDDL{zck-M6ZfuT4<;jd8Y0+cY%u}K=01ZbLMa8D4h+{*W5ThVEoJ=Zr*Qv zVbH1&C2rLPtSD=_31eN5#m~j&(_9F2i_1^w2(gDm7cqdhbcc98ut0)aQVL_<1}e&) zt956bN8gP;kV$4^=i)IvzNSh;cCj?lTWf_1Tdo>0786_^!$P^h3wA#16MO3 zDesImV@xe*8ujuhhIk{849gFC^6KvtLyBioxoQG~%_Hf-Aga3hJ$6Q9sc3}3?#17w z=79){+^Y?3R|#D|D{urBBUhR8^yg`_Rvo^CC?%m&bh7gNCMKo<=mIpQKop z7kd1%TZ!sOO$I=w7*);inTZI8oaDr?qgP|3-%#-am4apKcZ{+=oW(Y1ZiP>$tJ#GoSWY*D0B_5-tEcoj}5HUeMlv z!pOh`PMUr&tilb6_7~I3?hKm&Y?Btt?3e1Klqu>w=gEnUa-0Eu=b^;puhcDAwZgtw z(%CMjp_`nw5Zaq`ZK20pI=r2L#R=WQUxB;gu}}O#fBTcHlwY0B@16J^m-61N|7)}J zA2jn9R?7bg{~QB70o#8#<`@_V*#5&Y$G}Ly{u{>}69N0Lj=7&sI|gO~_W$tRF|ZJ@ z|GJew=cZ%(HIDXMH{CC*emi9R12-Kb%lkR_E4l=h-_D_u)>OC3qdRH|7!cn-juu?Z+)*=0_yQUrm*&qR3JEq$Nt@9gi^ z`j#5J?6FniEgG60td%V`Hzpd4%1b{)@~-Be4wo;Tcwk%}p5U(pcC)U)`Mk&? z(Dscxth97nSV5^=kF7jhBhd1ow^%;4FT$=oWycoL(MPrTJc(fhdia;n<*o##j(-e@ zjK-7Wx8>U%xY&S}@`cugFo|P2#vSFLd#}2@uK^fO)l!LH{|@wvv|;06(S1>G>?*Y> zAQ^*2`Tj<-*}L6q{_Q!szbEJG1wyb!ksK>Y`5O5mPySoQSYIZxopCc+4LAZopof>u zT~C$r+{y9uy+r>BOx0VFaoYzzm!~R>r71n_EyCCYdx44IJ`MCf)oyaNj*<~>yW+4H z#n}g~&wVY{9pw*5&b{D)gG=A>egMjBu9uz68Er!wt`$SjR_o~3C$f3h>+3f3FfvKg zr#8v@L~LM ztzz|1sM$l|jvG1owcx@*pRgv_-aI-Qx8E z;XD3VmRU*lp#qx9$Wj(=x>#-PHzWtu%h4+ zEBOkFJYeb-AF4$$?Ne{=vu^BF-ti~6h0x&dE?Cj^=l+9z8l!nQ?QRk29Vnuz5j!~k zs+;u5*8~tiU0<>GWpz9!uB9@%SFJo}NRu8H>@mMHJ*SBQ_`D@1b?N0_!Wy_hW2V8N z0qE*m>mhc#`#3V<$n{4E4N#v1oMP1700g3)>*MOWLi9RPu~z`A+y_}`qju6dAu(7p zqvYithk`bbI1}8tUo*L{wyOV?n0+4ZDq#Bmxn2- z07@#CnH^RD1V*6^iaY|c8ML(yk=_7U%$B(bInjvbA6}ZigASjY-Is1!gqw}Dt1WI! z%EN^&{Donxb3J!Zr|Jr8papWLQaHjPxHavC05O_6M6O-gLb1vlMS`8a@jCpm7Yx#e z-z!*2O5Lq0<(R{}PH61-{=@FkOz=aS@9x}Zzao&?Ev|l75MnqwKVjlq0j6zWTWDjd zEt|S;AN4blO_+c=_cub<)-jk@-fBZ!S51>bj)E^X^7zVB3sZFPhe@`Kh`$B-=6r|! zK&4j}(hjQW{R%J%2yW7y<;^iecL|4lKqzAL6?WVRhg*acBceo|ie@Hecva;&2EQ

        _3II8KsfCINSG2%*Ag*r^ytbR#d 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%0D@^4{}U>1`FqfykxX#T8P3>;ee_}8!&AN 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

        F!sq*2wt^Q&J>z@FuTQTrrO*qFtD@!@x1T1VDa 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

        ohA!Yqte|jZ%RalxPm~SZ@_M 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 diff --git a/public/assets/plugins/angular-pdf/example/style.css b/public/assets/plugins/angular-pdf/example/style.css deleted file mode 100644 index 6b90ca6..0000000 --- a/public/assets/plugins/angular-pdf/example/style.css +++ /dev/null @@ -1,8 +0,0 @@ -*{box-sizing: border-box;} -.wrapper {margin: 0 auto; width: 960px; } -.pdf-controls { width: 100%; display: block; background: #eee; padding: 1em;} -.rotate0 {-webkit-transform: rotate(0deg); transform: rotate(0deg); } -.rotate90 {-webkit-transform: rotate(90deg); transform: rotate(90deg); } -.rotate180 {-webkit-transform: rotate(180deg); transform: rotate(180deg); } -.rotate270 {-webkit-transform: rotate(270deg); transform: rotate(270deg); } -.fixed { position: fixed; top: 0; left: calc(50% - 480px); z-index: 100; width: 100%; padding: 1em; background: rgba(238, 238, 238,.9); width: 960px; } diff --git a/public/assets/plugins/angular-pdf/ng-pdf.gif b/public/assets/plugins/angular-pdf/ng-pdf.gif deleted file mode 100644 index f72509766e7c5badf5e2ea678714de53cd95b063..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1458242 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

        V^#$+Bks**Ed4uSi z>*0AaA#>Ct;JGZMn`u>1+&G9sO{*$VR>4N%IEyLohYwE7XI$?TVHf2@>BPgb{nvEx zC|d}sOtS%9MiI8g#_Ue8q=FLegS!{N!*78oB=jH}Gn=lKDWK}-%DAdro@y>t9aFPP z!Hzw>@x)bC*-o&6i4aWVVXbt=Rpj_Vts8FN>|OJt5Cex6%HN zx(L(gYNFOhl(%8~V#8T5&Myq6hx6tUnd#rvVzs9F=k8iI9yT z3Rk7%f7ZigN}%`MqFwgFjNge_+O~q#qdr_vg}jV|40n-j_&#y|-A-~+zp>BoOK!Ah zOQ^CAQ~oVDgL=zEV(};AMb9!r$$p$o2d9Xeuf6IfW_9?s+CCksDA93aMX(dQIKL6VWhJC~sP%Lw4e|s|RwY;*p z^zsb6m(sE$G43f5+#~W^-Q|~#{j^}N2lo%tYdq%r{ zWWid2pi+Dso+!;LQhPA_WO0jt%$0?Amg8UMj|#w}A9P zfC+L_-*w2Sn`{J){d7lED15jur~3!YLp1%t8pZTH2k2oP49e%M6&x_^JaAa#rKNjZ|eaT6SKON zS7x30ftD+d_2!&6*L77fqMvxM8DABc0wh)Qk%k(5g=$-<4&?`#h)3w6AwyU4nv(0r zx#fDAd7=q@8mLhCldsH|Se=gzl+PS^yLMJi^Rnk)kDjQo@8Auc84oN*r*z$o!)#KP zLc6_di&{PhSTxfHvdogWV%A;>Lf#9zP_%jMkU0gIRC>9k5{u%~=*rhKl`^QM(9UY?%c6_f-(F~ZaDdzN2Kiqm&zvlOSjhzxI9rXIrcrJI)? zf;krCZ0_#m+UMy?^U#}gt=^HNN6g-vnXruY)d{l+eWIb)8H0513EV5K$K;<{Csf+gb_O5w00!0 ze8oxjARd$Km99z1TN=)_EZ6uM1f6f@N~Y2!Y~N5&y{ravjphMyttY~rXJp6K4lfh3 zGXVkMM!61snd3yQUBg*R5Lq{S0hKS>7;zYd#q>)J|H{fJznA;DX0?f|ev4nGATx8= z_K*OO1)^08uX3J3VfV8D6S1p0C>?<$XS zi~TNMa50fzGpsy6zu3@#BzCy{^Z; zt}mjle^1?++PdTFC_wjz?AZrE0A@x22^ayF|ARC}{4b<&9t0KgOUueDDy#lG()jPa zwf{5HxZCCO{|D0ejK`PfxbOdpG?q(i=1{oVS3kS_YWpxVQb0y~Un6hVyZqm87XOk3 z>214tl$n9i_UUWC)#O!fvi3?}$5b1u$*11uZ$QQw74~BcE}e>qlFh9ZD7p8;krP)` z8v2hvJpFR9Y_R^=6}`vjQa{bPT8bs6tIwZV zcs5>cy8g!bv!DLiTU&i$;LDqPy_=ujxNz><2gz{3690?me|(ysI=24i#S1^bJx7E; zACcZ3{y7UwFS*LP)cX6-wYwPZF;qK>cWV6Q!~xW{N-j-doohN(Za^6@jT;S&Uaj36 z_!L$w`~>Lh9&sJkCs1Qtbaf-?!-krWsw>kZb8^ULnd=Z}Xzx_*LR+e1rAM<5pLI2I zF`3j|G%~#6cBgkq>L@?AwviL5(Ef(p-f2KDq;>||{`FDcIBz!cN>`SChZmwvXqzYWdhwvu zC4>5L{%8&2iuaLD{e1#`W7oReQw{8^W^{0y5f^H z@!ayhy!c2jq*iGnW_=kuA@9OAZ_4!wy?VjKvC@cq)TMLNooL~J*^m5l^Iz zbwPQEcwf|oTC&%Ds(Z!sNCUP@p*sniC>KW2CBOgScD-Ax0U0ldMOtv#R zUi~WgbAi<2%BzO)RsL_g5cf}qOVyJ1{mG>}k4uJfCztwEq5eEBAOPnxPp0k8Rkkl8 zta3fV+T!UPeSVv!k~@J7aR%2!Z72LDRO{aOmZv1Aw@a<#v9C!uz9mnAY!^TJ_P~pB z4fk!!A6m=87%NrM-nmAXQ3Mn&qek%tV%w?lb#Sc9$euKFWl>%AHR5OUQXwDkM0ly8 zqlduKn1UXmmhHgzGS1Ff7q-oq>co!axqPV~Vw|1WjJ(*VU~IH(WK0_kJCatr?OtNZ zW{oV9g|x2jzmwbO%NVuvNc1dhif^L+^2&dBfuNOlNUYIPK91j5D9&&4@bx7PjEW&tGF3F5VIsXtp`G22HE5duFCLaLQv>k87U+x*-VE%=@9G zs*?A+#x&ojxBW?3YgOuIYm0<6ylX=I{&!oA-aaTK2yB~&j(gg<@t`ZAvnMAE5Zjlz zct`NXCBO?R=sAFX>G|!PMB!xWW#1^)5(&q~IrTcnU)?0<*e?LaD@)`j^pJDXeI&*O-lpE-U3s)Ts$&B<~cn}}o zk0*^`R=cI;CYF6CJ-KeqIGJCjZEUG(*A5o!kL?Oo%ZPueplvsQELU-5%;EQ=*Vb(w z3{JjC?fT>&i7^+Lg zpB*IeHd;M{&bHLv<{K|itrr`;^6_0}_l$CFu|{2QM0awKr7^M0WtNXF#kYCbyBcbvHwt=?VEm3p4~W}Z zM+zbqwhZ_ky0MUs>@u>9^{QCTSUTKeJK&hV{qCIWrx_bMbL^SE|M26&+WxvR^X=;; z%a`u93O{X|6n|mY$9wtnryZ$&XlJEH30-&F1?7fKtJ|+9*7JLGRW71(mEE8{Eovb( zYtd-RVZ7?;kuxEKo7P2X-Y#WK#!dh3*n8!@n(pPXsF`FQTDZnaOTO5C-`m>;+lS}t zXWm{?=uVbS{=(mWGMa4wev-x{ii^r8CXbiBbBlK*oZaPda!C=U%zE}^l{Bm`DPX=` zE}Yz-H_3{59MCAM0A)USt*S)mc^TH?3^RY3$Or(g~A$ zU~aj`BlGu)>JQn&gy^qlm0WKhQM$lRzC9s=^T}EMIj=5RCyDf5FBH5SnQ}hJgs%Ni zF%kW>pfP|dT=?T?yxvwnW<8d;`v_w>$zAiy1*WWGd|1U z1a6sm;sf3b>ue$3@-c-^Bw|eRwmObQkP%utD|7m`;X^rW>B_Jw`Yz}3UF9N90Y5FB znQYD7)XK@4cG+KuPh5Tm{cUO&f}PXBG$yBFh+Z0sT#DsAibhR>OQl0z4%*8t>+p!p z$BphEZI?vS)(Jd-Eei*#Sj!cNdB{s z)F{`JF^g^aec=TG-8r{;1x7QO_B$2Yyi^byEjcwBYe@%U;xRWj6%_CbPl$O<4SBOt zR0~amAxG@a#jrdmQ|-#z+6#Z;Gi+^KJ7*RPGdOAHmW9pIECIz>S)lr}O?lo6wSQbm z$+DzM$i0J4zp-Jn+d{!i6M7*Yf9)Rn{Z!T{5uIbCs*3Qw%Rptb1O4obfvDsK|(zbaZT=MBWomfl~PJ~vr(N3uURH~?Q6E2mSx%v84UvL^*q?So9?TFe%8v}Y|UG67e27qiy0IETgA(V^V^ zF*->dXET9Onb*$}B&L!zm}jFguNewPH0)fiLP>&hn)lWUPGLnmYIlc=d{S)-tGXmK z`1MN%4@;U70T8>E!lilb?AX?gsJfBLx2z?FHQcB2iVg`?IU;BOo;?|54hMz~MU_@e zRuXPE<@QMP?Fs+s)`0>DKmh3cFSm|7G`gVVUv3>GMMoQ(np;}i+N+9=HFVS#pXl!C z?K{;{+|^%(!wp=#BpU4NIzE(hVQfNn>kuH$UPoLQzjgc0-Fx>RJbd){$y3S9?6c=D z=3dUfdj00@-&nqy4fsjtgfDK}9{EUkLWU zZ-$I_H~s6aW3mFBYaUw+GlN=Jai+J)66pVrTSs_r;^Ql)j{W<{b7(aPsUYeNWJK}@ zJ)VmMT(U$YT5~4#)9c4qPj9z^@p880;DuV3OXl!qye@4db5j;!v4SZX6bzSHZw?i3 zk7T>J*~l*!*HYqcolv1WQQFPV-)t|cG(67SmU++889(dCw0K{oyX(^*^PtgfcSmBa zT79e2KRmap)my5tcH^hl%e0$E{|~ng>9eax{V!eo{STJ!=A}!Ei+~(W!bPaXOa3E) zJ}=3@d(vhyRYK!uvdD4mGuc|Z=4Wy!*|gc*e@34FdCxHGpPwzDkI|kL+T4kMR>YW# z*F!seoqtxslrw(LckjF$S?Xn2tF*Y&$L`hha+as@i;BCVexNcuuH!|O*kkNPH9OmQ z?%yKl@vR-QmFMCq6o5|kZUw}B2`}qY=Q>^h+y{eRmSy z96vMH`R2s=udm;n6cNK=Fk?pDv^F<=hgtPj^DC_ih!LToTzWXCwQun61p1?0Z{D4j zjXb|U^SsJe%Wtmr*!zLEuQQ^~NymK4P*rPpwF+N2ObOxHxBNq5TCBhdKWP4S$G$zxQBug4_;$aZnV!|qYhZb#+)iN z7E`d-7{&au-b~@!^_=g8kF+mcqWxAZxf2?eWQ;`3?p$%_LDV2+pIg|L3G;M@88u7{!b4f4~P42YR>teYA*fHYCiI}n$hTg)ZFo()C``z4g%o#t^bRf7e0Ra zH#PtDuO5O))VQ!=_`fay{cqI#-}@y0UCq;)&;k4*nTIejIMt3(Vcr`EG0g(}k2-MJ zOHD%}*TaPdpH;R1D9qv$&(Z4scM(B&8dI9oeDdifYT6bL;g=Ja&pQbO5!c8?b(gn^ zx%QJ15$|mFGLv{ZQbCik)wMwFx~CNqS#7;LP4K-)<{_+adi6kwX?eR|XQURcJN?G~ z;>&Ax1s_0L7a?cgUO?{5j^(=!`|gHGJ1!glI z&r%nL7G+Kg(ic%#qqfi8Rak6pVR|!t7?ELy=Ymm*EkLoqL$j)`Go?&542UEdx&}ml zRjtezZ&wZ5?5Wa1+4CyvIkZkgT6t)v9YO%FZ^>$-WXt^x*|hstHNR>-yzBL=HbJ(@ z>-OfV#Q#up|LfPsgk%33HOra4{d)oEZTGn0v9~?f?B2ZX6?>Y#>zfYU{O;60eUksI z=FQujG!Fl*=KeSDWokD4aQ^e1%^xm&pF8&9;;*l7K3oFi&Hj0vln$bdx}-z6WpAZ2 z$fnuCNY`q&g^5w}rmlrCt=(@Ibam4l=@=?(#-$il_$xuor_aLR9``IqV7u&rNihi^Lm;3q)<6j?aIsNYIL(XM$*#gkrt-BeHOC5(Er+s_(?dh7O3g0D}q;214 za;HXIXA76T|Ne}>(&ESSZ~3c!yr|h!Oa!Vnzd!5A`fzUOWpnkm0UxI$+d7eYcj$qy z!;8aITSxxzOhY$&v0kW@fDDa=N8YxqEIyEOZk4nj~&B~!rvoh?9WrL{c8Yb2C zM`T0>L2cvTXZ3$|2(!@W)Af1+nsNSMUg43l<2FmqT|p{z4qO%Anw*;c`>d|N*rn^&*RS9w{O=NfiG;E?tHinbQb z1OxyaE%DJm>OLh!r;{)<1YvF!@gK7l{j(vLXZX?!I^1 zttR`7*A=IBu*D%>|2Tw+L9RX}L{(LNug>;$-7Apy6WT+LM;vrQ)xB<|5%m`puhjc4 z8!a8!@od)M7+8@la|q#VY;_2GC=)(6$*n;|Y%bFCU7eQNv+?TbxOlZ|5p>-%g|^pH zf2KyhoN5OzzxKs1U5h{Q@=4LEb6=y%7Gj(N8F_18Jr(gzDtpQt!f3^ke{%?5EV7?{ zVg8##xckbD-wp~Ij}v4W$Uoz>4S5`(*wUN_5^=J zqSo!44=|FQ)oL|sWo@x}HuorPo@e}{GKR8Kh;Ki#TS+HZ*W}LDdutC?^TXWs&E{D} z8>#pG*R%Qw`Fi2tmw(Rc-Gls|8g?@p((ib_SmtME48SZ;^%tcp9THjse0|gnRsi9z zTB=)F5iQlE%7oV1NY@`P4teX;#vL+zuHRZ7?6W7%V!IWaP?v_`1{`7CxZhUJm2)sW z8lw>re`vqqq4~y)Nn=AnF;(5TJj?LP%YcZuy|lWoU4b2y#fEtS^_+ZlE;?|a!(fHl z;6Lh)eB;6c-_GvN?EbU=WhTi?GD#+%=Q;O%U8)z2eC%)1 zPR$QCC&KmCAR7NXi6_IBWoXivE_qI^@Q{*$)(eBQCA4(;FKPh*$ZyW}v4 zuD*P;3-?gu?G>J^qG8qUuP?DLyAPK;eZ6rk&h^{4NW8_Pm~Vv{sQbtE+aT4l4qKxp z4!HdxfGF2gfoETzKs%*FHv`#wEwfHMc=A#A2cZ7%-TJeidZNCGh<@Lnnfy2A$IU}) zf1P;juHVJVrv{|G?XSVcNV0j;-#80fWP|Yr41{N9I$4bUT4CJkEWpYn3}o|I^^Ra_ zRwB%HB~StOTFh zK?#8md3gKG9lpl!3^AoVQxG3f!e~N)j!jv<_yC!6Gf!-@I6S25TxUTQD9JN@)u`u| zo}2@C+;;>W9?n5ZugNr$ugr^Lkb1hX;S6Z}eNqZ7oRJXQWWVqhV3;-o_$wS-t|Zq166%Xq@s zYq`=rfgV8uaGUl?1^#8d-c(7Sr*ELJ{Ok(IB_ohv6gB?v(D*d-z|xAQ*3bMeR^@f> z<$eru_BGWP2C?6ikUe+Q^QT_S)O-JSHT@Nf&C?h5G1Jb*g{baHZoJjLv*~}q6mq+u z{L>_EM@&tP=}Rxg!D00>kr6XejL_ttU1!Sd)~56Mi|@QHH+(Cr>ajG``MuBU=xw^U zYV4u3wR0Eal)`QG-{*A+TNfx`y)*?=Mkr_hZ7qC|bA+#Nj>9qNDSC@LD!}J+xq2Wj zi||J9?z%{vi>C~lEb67|Y7}WN5XnN-9mQVFpI!eU-gY+kauv_Qt=OX0*t1dJZGQ1< z|GR(iq?49&ZnpnJ&-F`J^6xCIIl8%B|JY|(@T|7){);cuT9I-8b3?dsedXY#&sB{H zQ;AvfK!*6I&Aa=q#1_kvsS26UU3-_l(pYCOnqNx%peI`@B8sD0&vo65_d?~}L88YX z@K6y^qgzXeUvN3~ro0|c&F6e|x6|xkoeAam>wv9=4bpE`KX1%}UbT8n{Iu~8Bjmq| z5_n%EW?rv&#{#8wQ)(oZ*H#Z*@*0r@^Qd-aG?+Yyz<#cN%wy`R3R^~64L*~W%Ncc? z{8r~V?2E0T!Ya38KN{_me%Mc;@M4Oj!O0w1*9<<+M4XgjY*~&gehu(4&oIp2^i)Xp$fQj zAYuHX&#sNaBc1jj-;~MCUoT#rIcBzaMF2+V6Ek=K0R z{N_wzszx9fK#0@XsHmn53*qIHR-c)esL*RS10Mh2ogwguP+){OgNCxFq5>s{p`;5z zd^6liI1E7I82hU0L83OV_;^AoR4LO29!*p0K(l4l9idyTD_eW}XRp4@6Ak_$+J9qx z@v;_8F`f))!|}x;?1Xx;KybgBwOS;wG`<79&4zyy{7D7sqXb)F`z=AiDFj+=iH8I{ z)OI_H(oKdQ6udgoe8K@$zK0Ah;j-o&rq;=?3Fy^zu-NP-^~xNK2s)8Ppz6}+_x}bk zvnSu|mj??}lYe)QgW_@&05J(8t&*&5nD)!1QzhsvrBT)3UTS|0S26;Hfs94 zIg7E4kh8OZ)fC{(&4gjVEMnrPE1?)wP!0f5#DpnadhRI$@qR#^5x$4J%A#iin`kTp zJkQRqWC0pfXeJIcq9W`ubX@{8QwG(y=89p!88Ln(V{Tv?#PS7b9tPBiU}`(P3eT^m zc3k{GN-J+b{S+emo6G?(Aeeqq4VC*j^!Q2oaTYa)hu}PH>}<;cYd}c3H7F+MU<*^K z1|P7GQ&0&wOSK2th5{DvLh{4x)CNzM!B)F6!rJiZHgmytv-v$J0d>!?M^$0<6$y_y zfH-rf@P$_nc@}u=S$KEw#Bbj8cKb*SE7T?j_<#~Uu9CP%CHyY^Eagh@UsNcDf|4fZ z^1%Er+e40rX7n+GluS{uN=Wup`uJezdQO(eL{MAkiEs2m={y?WhhlS2#0RYHe1ol#{flq7<+z zH?0Wg61?i=V^mrTVpd6nF~^BOI-j#{ zM>x|Ph@I!hR3B`StcdL>vQ-Ju=TgW*?e13PC!^DC?J9z?6=5Bv5qZH!1_P%sJ3+zp zVioTDT(Q$ssXm!oQsxjL3>Oz%sm|M~mOot;r&iM}MfUKjX-6MxtNy=-4~DMQUVm15 zW2=@eRR=D4-twvY_FDB$bscub`Q_8Phg)@1*Yu^u&(HXrpFMqkzWV&awe!!PoqxG? zo+EW(+3dm_p9}9!Us$QW@bTJ(&(AJ=*}AYQRsY?re$A(T{dE0ib^Z3W`rps$|8CU- z(oD#liS%XiCNohrO#UIJ-~v;4n~9Nb5H)WQ_iex>H{fd;q=y=07aHWY8wk>k3g(SU zzKtr$jcPTG8bgg*3ynJ4jYR1tee)(m-zMYaohH+oCi9^ti-o4W+fA@^Ggp^j^RiyywL2j-As~hIc(nI?%U#-+~Qr+;ycvhztD1YyM-*>8fe}c?Asce+!|if z8adP&wa^-~-Aa*eJ89k)@7tD;+?G_+mORv!y3m%s-A0verJDAd)jpm)rzMZYfo$WQ9okN}73!OdN zoh<3DKJ%^t->xgkU4u1ULqlEH7rJh2cd@0rZ<%+G`gY$*?jEn{zBkl8xzPP^yL(Fd z;XeIhk8CQ^nBUwS>>80 z%rC9^URqDSv{`d$d+5^dg-d_8F99+vXb%hN$Kp+4p=w$D!z{r?mhdkYMy6MEPp`ON zFD|7QU)w7^+$+1-EBC9HAk(L?r%%bRPbH;Kt+r2NxKC@bPv=)3QKnyiPrspGzi~>x zX>GsxaKFW3|K4ByaEjJFvjH2w0lSm|``Q7=;Q{AQz7-1tF24py!-BQum!}DrJ)JJs z)Lix*zU;qv@aV704nH~q_ZWKkT{-%sBV0xxVE9TGDxrW8cgpWEc}F~{Tgh4J6Jk=wb=Js*72)VDd>{n zYlD~prp!>|o}p&Hq1Ke4_S&J&;i2xup`KquEScfHJ;MWj!&g#<2Wy9ihKH{&4&V4S z%$B)+>(|8$;J;>V_{O99xidRom)kNr}wA4W^OPiaSRfUa6<>-Kttdr{KsB)*~~ zl*&rI3X)%yZ1Y-KbSd%qNZ5nSH}d)oSwf!uWJlh=cR9I#N=zT*C|tR_n@$H-0uu|U z8wym_dx26aey*9j6qFdOri8_B^zmX-6>A!=G-~?wPHCVX8d*j%H$#;=L_*3K_dth` zB72p?EegkI4lTT1rHU;o4mlHUB<{`Jz(71>;rZg`p!s}c7hmMBU8gyvB z`_mOu!%+=-H=M+=>MkPx5Ku9EUh}CN{+&O5$w;ky{L-L#pC;>?iooaoe8W##0Taue zd92Gidp-}$s2%@wl@r-@w*NkNIZk*V=%#(~X3L%^l`9IOF_-V&bJV@GZeE~$bznf2R9=RX}w)dh<#-6Z9~cFwW|K&DuFWg$`q{P=xQ}3Mq;}RA@=} z_iX9NfklJhJVkx~V^y(Ii^v zk?sDo4`=q5b;nPJ%Y(gvQvO}`E2;ULi~5?(fx6$rHc7jjLYz{e9Bp z>+c^^2Xz1ZxUL>J)Y-aw@BGgvG6`PMLzAAeJDa1Y)5Q$)^mhI+VutPiYx3!Jh0MmA z=HgA0sqwXRGQI6s9AyphG-$m|sOH5Xof}rW$tcrd!1Fb=I=ucD`*F?2SocXofdfAU zn{FZ;r%W)TRqNMB{=vkYFy`R>H*h1;>u=vl3%=pq{H-eV(iC$>3h7U=qg#JE^)a&} zf61ul{XQhWowUkiP9%e`^0Tt5PHqtVx7`)@&C)gX@jTNwNp0U~xSrUC=7iID>20)v zPTVoW1AaKY{k-f}qko<;kMk#viM3+IU>oP(8eXH43nWPgMfo?#5}b)=Ndh^g;nkqZ zfXy4NUB`VI70p~li%?c5?#Ybg@=l1?e|o1ZzFJDbnd+d`icM39qpNx}4Vr5N7RRCM z6-aiXMe)7V^yBw^e9h>klv2eHWU5kPDXw))DKf!HN#1M=d-FvJg>Iia4iRc)!uLu3Dsy=WeNbbk22kA#I)*)Yn-(fb$%DjP4=4#PV?wOf?tB5)VrjW{C z6{MrhsD}7Iyrc^e^R|>z*m3$h>8p52F$-QL;;vBNIxDN!_YPwx87s%~HO2;`2r{|9 z@4I~xb%=k@9iEs zb%bE&3;=km5)b#fw{|r??Rvtck8Q>XIlpl#y4bS;6;p=C3_`3OOSJ9o3!SQew`4^k zNC{K~ipfg3h?Vsge{^>8U2a&M>}h#gbzkL8Hj6u8*tC%s6k$5b2G<1P7!zfT8}eb1QJFE6BX8 zarRV2|IO}MTgIoIBu*CX;F-!E)pm(*2x@-3VlBBLT5|5?TYVjhT`KKlzc<+y$!>!g z-x0=J_?KCfizHbj_PH6#T?7~OSLoD)3R&;80>uB(XSRuFDa%T0>7iwNE@V$qCkXyF zn8h3v`65p^uis;e++1$MehcD5j4aPl^TTy04D}obBfToXU6}paYK;u(&D#ikQkb;X z2as}IjwfN@@*ZN}topnSV{PkB{lG!x%vGpmI>X&MT>6Ji=ywst8wQIgs zz;?FPutYs;+q@idk@u4q_0K13S9%Q*`hbwO&Ye;QNDb{j<8~b1`33PjG^tZ@eD>YS zo(kk8X&>%gTBN;tFd!@a(hqbPq*t@3Lpdl0kdp~#{FMl9anE_4gL0k{{Sg{7bJ^MUC!r&kXNDNu8Got( z7A)mOhA`0j4Aiq06v&Gtsb$jPj2Ns_4K-_lBQ>DD|-$Z!Yx% z=?t9}(X*BTQ;;18=yXinrjl5CRayb%*c68zQjShIwNqF?M(o3gY=${m8lvLbQKj@$ z7|5beVwDh&NzT7Nb74wqCN*o;G<(NT z_zxY$gU%N65o)VK^|zx;*_i|*r@tP4|DuxT7<3wihrHi)H__??HD(fpwBQA;?2yxR z6sr|o6^>N2ie7Dw4&p^#M#23u}mCn7nYMxNvxq}w^g7b)aB_@d5=s}jakmKWq3g(wTfEY z^v2(63XI6ho1vB#P(svD$kUs#(${tlJON6pNN42VR1}c>=1rpoPYcpux;{o+kWxmc z<^_eHqBN&6)P>7?8ClKN&KS`eQpHnF8t(lT;47(d4$Ky*fyiHF1%yEkOR-UaO+B3+h&bRJbu;) z@%Y%v1#;D;0l;m$K6VJDlaF3A74n)oc~AMGh}ks37}~A8#z^6@!U;TI2|Rm&rXCE|RfAs5NvG4#_Rb4j2o&0+pW2ml;BY2> z-4tbTPgLMqI!sQHpU=O32f*OdOx1jExntM1a?7)XD$#if^XE&VeBOD54TwlYg=wc<)9)yW}tcdx-`jc(6{#a3{&#f@lYuZT~}GFjJ6s~XBdBD zLS%MUo=zSq9vKJiI2%#|se)5V6uVbTQ_bH>1dUw$R+xc;8q86cof>f_XDs9%wkH3ql_2wW9 zT#_1ucJ2vXafqMiTzV81v8l07klLw4K|y^9JUP&SkLuGLQ7MKdY27E_ugl>D>#o4d2C2n)Yp+bexFg@WMpp}D>C1TXtK`Bp(jVDr6eU zLyt|#=*(M9akN%CrjVXcphsV?S-f{_?y{ZdyLOEhk4|~hZwWgJ!)ww`xWLC$x7)eY zjX3=e%|#a5fFR|<=?r1tlzqhYJfCozp7KLO?L86Al6k!jPtG~S$~#o8*;rPG`bdY$ zj2c-bMwtuR#eFLm&o=${Qx~#bKn)Rn@^K)IDB{F6<7+O`DQ~D~wj2|1=N}q7Sz-Sh zUHg=ENUnT8YSZO;RiS#mUT~K1n2g-70;-e0DasqWG=iR4Gn`&?{4VbNI`i%s{6x8{ zl%}lTsn2J}W)l{~U3a@)7woVsx4O6c@sUKmBQKHnmG@(RE8Qv|k%X_;hFq!j4|l3p zx-d02c*a!HHS5scZkJwh0PMVcDe7LNpP}0R%liavKjI(c-q~RZ>$!}|v@A{DSN|NW zr|hXan*GO0H1C`vvGshl&-H6s@z!3~tx4D`Z!R90!Lz;*9u7_nnH`dlKlHL0`%d-2 z1D+#OmE}ZZx%V5pE>C7lWRx#G!HcBTj=0~K$+$Zs9x2dRxvYNS_Hd~%_&C{0a@@a0 z%Ha4NtBK3s?&w=h$SxU=IT(Kl^;|cw4pVYM>MOSku5%W=g%#a;XCBy=R~#A95;2mW`Uhz08C2%VqcDJRdc*Tv$rdvw2{q3qGrF z_ZgKr_uKtxNJnM#%)ZMd!G?A&x|RzkqGT>C%pEvl^{!>k-O@8r-qc;IuI$Z$T7xIS z0sGXN9o1&$hA;*c!MXd_pMSFN(Vr7czBb!u=-Kk81En(gtuB)gT+ics&&2JD z(2|*!GMfKZ^^JBIm0!FQU^vB!*mrtSP4S-2>>SZHEar_<(3|J^+D?An4pTp^9@M2> zF)R@Y$;iuiAt|}<`*nKluKD3LVY_Ij#&b@$ZG-$@JpC78uzvBgDsu_HU zt>L@FM3<+}I%HDZa6?jD+_+h5rtsuN&erY8fbthNUc{t5z`gp{Svw}@$N9i#HJ5yB zuAlL_eLc-g*I?4_$4kd`%lh_3pCeXVyCMa(UoQTU*s6J?f9@ft^{M9P6D=Q%8?Qg{ zd2ooRcrLol6c^%Y(6-o8@hWU)(Qxg(l*`_v21{F|>A*M9ayc`y{Z<$5xzwCGe#Fn< zbgayn-isPc*q^1$%oxiJ&jTudU6W(x%aLa>Yl|7}Jx4FhTz>o-ExcD}Y`Uq)?x~n< zg^R6bh-Xt#NYnmLSf!6d`8k)mX#cX1+lIDX+aVhg=jL8Vrv)$P`deFw@3;>4aMCYw zM8Bko#`}e|9wPpAwa+2R^t(33)Y-lK;Oh&gElFzFj4x9xyY|j%$-R_$nA3RmVSl=R zQ~$>cUk)=G4!s~*DnE@m8)dU&c_4Yz?ombFz7{zAwP>OC=Qm=oPldy{@b_6p@JG3i zoyLcS4?WX(l%rX$akMp3d-o4hFn##Pcl|RzOzVG`-~3_m>c`%lAMoxq>wRlB$JXr5 ztl8JEIo@1zezoSZvqswe^YFf(?#F(5p84rr|I_#8Pyc;JM|OUa_gPAm^aLDR58Z9S z53h&aT#qW&GgqcYpTI+?jo4!w31>EvE?GoeT0i}2BV9xzVrPT4Z!=35AAe~_Bljjs zn6;VxYSW>9vunQ~zra?}v8^W7X7QEHnw_MSomhh8W+t$m$J(kb23ke7b04|qUE126 zE86{ayYNxfRn`{bJ%EBiVZs&^4iNZ23}d}i1Qch-UpPi@)Kxz(g6w&rxdphf z^NauZmdB%w1>&##ef*6l{xlS$uCo8!+x@qRi0UowY1;iOt{9j)BzV34M%KzN=I&P9 zMmR4SsNMayM&xhi(yx~y+{8C8FD%Z_59ebF>3MK*{{N#s*;vw1u24?sIVW7*dyb#4 zlrTi-tGHf67w(4@6mFJ|^$MVP#dk_E55*srO=p+nW${`n=PN(&=F}=*$1w8wc!h)* zgKyzaOaCkTSgBF1Y*Z?0dDw~~3RBPF)U4av2_vG?#(M7M)+KB@>Q{g?H9H5MbuEkl1ou=v#~|v?aw0t zx}8mFjc@0+V+r7luF)rnAE%2sqC$;om7J}N2}ZgR${))aG+tS8qZRN?jtfE$vi7#U z%38Wj7t^d5Wqk5(kIN9ezwLp|WWj@Wn^i`gGmpw=M=}LrfcgY_C#<++Rf3i;ZLZk! z2XDWV&&#hTMe&H4H^&;j05gP?07OrfWac{oq?MShovLNcl5p+B*njU&x>T-qq#s1M zw;CQjx#sZr8kDEyQ%YTc@oZsc_?_nFx4LGeRqALmpi)Id>&mbFkU%(qCAG@6FZgUg zcoN98#muXYBDFBsdIjeQuf<@cXn2Bemwk>z;(wCN^Bn~1)2p1uO4_>&4_ORUxGwAt zB3I#PtE5J`Af+u;7_efORpyjU-OWS7*I{(IG$wY`C7)O+6}l_b1c$OjU40EII5X|B zRf4ycYoe}v2({2~e?u)YIJ``C{p(X&p>k_n4GrZdO-b8IKMe~_`I@?Od-w5tAUO|Z zUh!HDqeNi4D%W0yC&+KZ_dB>9(ZJ0Hr7kHb_^Te|+)^@MiGNW0pX}p`M7{w3?s@d6 zN!i&u0=#-!ltAUbwzLt6vtQ?Zm=WjrfkvYP`B)2x*_)1BPxW1!>_#Nc?66;Bzbk#s3mdF-~?tvZ9C z3#Cf-8TI##ZKlVrI3GVOFTbY1ZS!dK5irW0jU5U|`}LWL((AR$WVNr}6R5{A3tzd> z$H@tzeEsrno0Z z_xH5u^C8@ai1roj$&7!ou{!!>+r;#_4fWPPLK@S*l^~_MHSa3n?LSf3M#yE^|BC-E*m}Ax z3FXX5D3UCaGNthT=`S{;T)k2303k9&ImF-1AfMfiJHG)&xnR6!*tqq}PIRhFKi1JEt{3g0-T z^cp~V#~w-zT-It1r6S-a*J)HxT#}b?4ab^Lgr60$J$#c&e4Ibrq>xZPKKilFUizA1 zp8dy=(Y@Q>RPF2Tf+upDmH?n-*Bcjaz=!A#Yjq&b7V`4n3JxYvn_cPe^%vA$a8+nvKY zyIj4?TTLHyxVT9ja(*7)1`BnP;%41^g@3l&AB@y6YMW^_|Jm_OUBe@i?`fy+&ra_L zot{_kJ?-HpqR2vB-gg~m`)Yo6hyR;ZW~iqmGR3(_Iosv`-f?bd;b%|MgRY|+_vUVF z|GY#M>L&9!&EJwNV~7>>mHQ&Z_a^5U%|&T!pXy91tCL zz-eJ`tzTxHy%-hdw79Uaer52%#hAqVi!Zm=ud;=DD7jA0m$_@k z@q;}lEAKylXTEW5>TFMZo70Prz8gdH4|)==a??@C|670Z|1TXC=3&|K^In9G)zyPj zLPpRyD@WU+S-{KG;A1r<0`||trYKw%s~~#pEzA=Sqm9W=OQOshj?&K z|B>lv;>(lt`-Mx2b3wPjDcDwA>BBMSO-&G!QI;H)cgbCOn!h0yVNXPewj-ys#SAcV z42TQp1TM<;kNdkyiDeS7$3S8Kq!A}$Cl#L6k9yY+lUdJ^ROBa4K6G?o`63(!ictKu z;{DI@HWT(aTzMckJ0vO_P%B!pUQB<{{|Uk1JilYAT@P{q(QxufcXd4g$Kl6nF>irY z;D8%TeD7^@bCK|XP#D+|5!+KE*Kt0BCzJ_*Q*20b5C*=iQS%QyN5n<4yLMp!AXPX{ zq{?)B7ba715|9&sGmt72P*96wFET|LM@Ry5B}`r%{S+b+b8=gY%q!In-%W9^d-Ry| zHm+u*K!>Ct5zGdm&F5YgtPI}G75i=Bx`@=QYXCQORUUbn=*`x=dy0Vd(iMK^|GtUw zC<6ReFv4@ivTct#n~TOs8GFAb0m5mZHfIYV{qkhO?!4C$xn|>BF$z~6@G(Q6&U~eb zCY(fuqVY2byb`Ea zXiqkX%Od|WGPOeLGeChTs-)Cjm?!@mh;FC;a%dRg0!Sg84HtXQfwWnmCPi1Bb4HSc z6{CV;WP}9wJ~Ei83httUFWC?dPS#+Z!76}wCWPf0?@5sCDmd+hh*RK#q`_%Eq!9&_ z1+Wrige)~(l7x`pK&SN()mI?|1JuSqx+Wl&dK$q7xd>n*b~=^~>JbvPVT39>-AxTt zBc!QPpj`wI$F;pBfmk9SB#96uWy)aEup|g8nbpJI0p&4>1ExeSOJ0HqNMI1E98>;p zan*OAe?!5z@La7a@BlY!%0Q`cxKbfVjcXlXpOGbUUrpNkTu=fIQoulX7@@=l-z0*c zb7`e|kOXVD7zNT}fm#Gm4}>@zFBq3ue zB!EE}&4XAH5Emx#NfKei20c+{WhwdE>|_QT;wFxk4&-9K0Y!rrJX4S=BR$d-RBi+i z)YE^MkQnof9)tUNB7ToRd{dxNIA}x!MTy0ytq@oy#DhT)xH>TavTTRa6VtTWDQVsS zo&oKm7OP^QUGR>|E@t-DY`zN$q0NMJz0z~qA(Pb-O(rBv$m9AAjfjvI6EL8Fv4emX z3zTDkJk&HL&M5*LvYC%nW#-6pt>{$lhYSf(i;Xz^?}I=oj;9z9tARmqf$5?!Vp$K( zg(UyNLX}?7pG1TPOp~VopK+il8*(w>dYI10O@VuTAPEd(l>oi+Dpajb7iDp;L&QsA z@J{wn%^;x5J(3#x;4la+3_`4uYe$ea&najp1`5!NUBXLnQn5-zpePB59|yUnyxptN z-x6@@D(GfP*8&ilRB#st`eDCYfd#hmYRPjc;6Rk*R56~6K#((}SUVtsNK^w6^Of2L zj0*O64cE89PXGy2?zgKL!^Q9sA$&8qivgZRW!Y^(!jzOQPp|@&zxJ(C4|9QwO~+#( zQ4C~A$;GoH{Y^_`SfDI>_n$wI&!D5zWBts<Hg+0lGTm5J}KKA0Vy;aPNE;4-+z&D!S$cDii7ms}ya{?zP?mwWV?#qe+tky$x5A znoZLqgM+#r zFr>R79H7|76=r_o06L|K>P(Q2QK|&1m^FedqQG61_H|Fh-;v1s#)wn%`2qk`;4RAy zrgFhR;|YMhBSMXOvc(a4{8&-XOHiZt?AqYji@e8`2yL{|0QM3n%8HK3Zc}Fh8m@u_ zVq5#i_KX_n-z&g#1;|fHx7~5Kn2&v{F=B`ViV)O1O1ecj3Vbky?AHDIBOnP>OU=eS zyw=4cpD;OaqDBRvs6u~SsltFUWey?DYHQ(xumqrVL6Ja$3=YHx2XrR*c9%q+P#_@~ zd5TI5QQ_5{$S*kpcA>3%6AH>&e1w^&H(DcW7}5LhptnkT_lp8ZR{CF)fMgr}$y^sZFhx%|5%z;I46xAN+N#=&JU9HSC)x(o2G^=;FTt3nKx zrVM5kDDDcAt`GR{9U^BKd507I4U|^w3Xb)>T5`Pq;IDqScY*4J#HIbag()TZ03=I+ zuzov4vZLIU$I>2;iN|7rPt>sE#^4_cH`Et^AS<<}gy_{ms$_9Xr`?74e(Tvph}e5P z6n)oJAdN5P^h$Kvfew!{?Mv$eqZovqYJPW+O1%ms%kES4LxW5p@>hs7xgZ|{aF6|m ze6Eh^A>PQ`FiIiR%S#BsNb)KoLM$LCV4$}EpT?D(GWrcjT-!~a8bh0(2Bl71S0#gy zN!c~YnFK1NNQ#xhq)L+@4>RzI7o^1i4e#VDQK5BtNSV{7Fa>etRTb5}5JrTwxR2+C`$jSrvfiK&x!yX4%nr|I;2TA#=yjeX6N6o?L9p{Ar$mIA z7Dk-5clw|-F%Qc;tA+&)nIKc}o*El$kY%XBk^5Fa_l`!RT;0FIG_UpEX%*5OrfAf5!QgoCP>GNtiSJ?0sCV9drIp+f?-$$5)&+^5tFQ<_AH zfC05obPD=p1^})S@l`#$ICWogL21gZnX6|OK0=fZVX4U7+9XhdTJ$$Jf5Z&ZCd3k^ zz}Y&wDzS2ubzYH@jzy(^ekRQ=(9=_Qnj}|qFnkRN7N`eQnpUC!7{U>YBrq9I=AK{D|U^f+F`|dn8pb98sAR==TM*#U=i1bh7gFyNdbY*QUP>=>9E>?+gU1?}7O9Tq_UEr2osE=kJch$Zk4 zMC3rTe_9Nt5H)uOWCBOR)9?uk)s0#ylOhugNu>jPoc1e`VfPql_hWLkDGVt?RW_-fhA%J6x}h z@N-fXSQar7sygkjH~UX>W8OEnin6=Yq+v*v2pUnLSDJ6KEfDhlSO^gKJv>rjvC|1o zSsOJ#@0R;2x<@3e?(TKwIsN_u5TM0GJ+%?0tu(MhciO0*0`qA-gZi7Cp7F0~laHVO@Rm zJ!sLJo~DNpYldjYT(mGyu*e&;?aBXe0UZ`4u2*~F(eQ8y^LU%4Rv)Rer3byXF3eu% z-)Ac*QU8@mmKGr)G^dJnn2c7>IOd#oX5w2{r)w>C2z3tlTfXbeFQC}`XGU4N1QQ4? zIPNON7D~(}ux^ItO^&^v-+&~ z0F!%mKPRF3+7d00uA~@ZO%!Q;nGrL8|y+Rj)k{zqs57T03lgE4$iA7?>d4rseFCx0neZaq!F$ z-;MLZz~Nwln6uRY^D%fk4=u`D?o9%-^Ld3d;u)p^2Y4lT?A7QL>ufs8%-oPZ)_52# zh=W)3?QeksqS_v*0woQ$hE{T>3_MjH@pBPxQCFx3*$Ihio7#kzpy?<9gTT5$a^(Ij z1j7F=YNz*Muf?|V^{2OxVp${@X=uS>^PeA}j5zWWaku%k+9`m7kp)2GQ4sXb1bQtg z-h6uV10zV6b8d(jSt@`K{C1FaOF^m%NA(k+kfr&yf-zP`U(XY)_+fw2eqJ345uu>` znPQ!g8$i8Itv%ymnV8%!o zqMd2Y^Bh@rNI*hXnO3~mK;fo>+)1|tbo^P(NWJ(elA;zF-jttyNcaC5vFi zgZKZ?u7nx`+7Db!ilgz|ts?=a5<{CJcz$?PS_v8;$yPjyBx%y&9eKf3W=dl)c?2!b zVvitXFEo$XD^0QsTV=g5oyd<{StBTU`zcpGH(wGL8DjZFgdescfC7@ApMXMO{J0hR zEi`n5Pkt?Hq*%gcij61_A(koOwcuqyev-UPz!Gc#`NV9dGHx*lCcvc&S4apUI4ZHT z>oLiEH-Oye+hB)|sw!v6u#>J}6L?Y4&npc1(K z96$bM=G8z2n+n}$1T6-H65bTbq6x(hT;|5P{01J`*ry+=BR>UjP_k z24gTrA^1EErC>^U2c{n1dxcM$c) zy&;OCc(N@*jJZZtqMMYyyD0bs>{X6=5 zVKC;?`7d|8#}DLSm7@(5@e-%)0HyDRpgS8ewSpUtzE~IycEvjwpFCU=F8m@8(t>JKeM=gQ5qN~c!4~ZsD~!M%1r@>!fXHolvw7J2FeYcB z@Cgz|>o6Y`&i+uk$zLYuq){f7)vp0o0cOuTFgFKQ+a{em4_DUMI(|VM=H@plNgExt z&TNF_DvVa)&;nVo9gZ-frc}WIsuU%(2y`AhHYh#6EWZn%@yHqjN<7a->cNi-zXXD~ z>jXZjRaYTL!a?a^jp3=wtxzTEp0#Q&qD=iRlSe^*&Q)Vui|&acy-3IjmkZ;0&xISFp04H(@Ef@ zOEzt}&fVfB<%Te&?E-fJUCdv z&17;(*lns@;0w%ml28l$nScyg5A-iL}9oS`lgN1nuM!pbtu9H*30h8rUE?jtJ7$HySB#5c5X~Zt2?qgR)yF%RbjH^xl>xO zxDbOACW@h=%!!$xV6i8Wa=^tNV{J_)DB2d}ID9dLT*h4dLL%>(vg-)!4ec>&aTiZVs> zWgqA+aq?lvEgKXuPb!&=Thv?wWWd-S_e^)n7%GqU|Sr5IPD#bcl{TAf+Kqz3&+;|Tj z8O6(Sq(!QdsiX2Mgz&-Z}X<#d77v@ds4mE|E3?p(;SHXt0l7naP&gxU_IT|A%^fZOx4a(|fz z;Fzy(GGqn>$>%(IBOza|LS8Y{9+TK}&h@{s_MTr& z?SHrSS}T;01X4)oB_#A_=m>&IXaNC3uWCS)qGFID3Tg-~^r}dcfPhpDMZro}P(+&8 zH6RLhEZdE3^JL$@`#I-~r@T7nAK*e+n4T~x}1F`ncUjqk`fL}c$m|R{>lOyK^=3CfegrP*};Ft zF=)o4$l=7x{=yxf0g09%Gpij$kz-i4P$uzCy7R!CtD5o-dQ+j~?`aKvg!=fMLTy+LKB@5%Oh;D!zq`M39RM`&KR zVykmXva8jJWz}H;z%I^tRnY!PGAu>mQ{`+m@Yy4F;!84Esq?IQ^jEHKATRi;c=kJ zIg*Dq7E}~D1DEBLi0XqFLhKNTxT3SgUr!VY&>IdpdvC%4n>u}ohWO1|R9GD@u;Wr> zn&19UuVl%q*sTuOpGin*n@w75eb=tNI1DlBVXbJ+x&uqEDTOR%L7lK2oY21y~F~{Kb0215^rz@y4Du(J7pjq$C zX{?UsAS7O_sxfV&EcDkSN~=gwq)U+16qo@uzyw1D_rx3)Q-1|P3e%zxLF?{pfF6dT z1k2E_FMR}V)z*LvollV8$}wXWrYchvAln3YmMvf|gW9^0cZa3uqAW;giO~oj=~hpo`%u10sR$w5 zpeM*DyS&xE4~cEQ8H&ut#QA|Rj^A6M+;ZmG8DA07Qw!@BYZM`CXaeLD!A)P|67GXq ztjIrZCT~FVGeUChAyB(S6>bWg(djm)gkXXFs$RRcSR%3_HSH7kWno43P6ag%a(|M7 zG?hT_#%=Zw_v*&3pr4kpsnTlC58%o)U!Oc4d_&fFk{ zN(`uT2Ry?U9Zmu7p`In%8^JRLyS-gQ8*PnxT~E&Q(3=Tm54>Z;HgH5gf`+EccZO^E zGQF}qON&77V}oidDX?Y=2na5fY;Npko~ugs*Fqi zzTxe@9W1vbZywEmS{tvME#Y?}d5+N8nEL)3VRV^}a2n9e+$hw%IR3|%kOz~ii65m9 ztm1ivXAEt0(uy1$J#v3|HaK|5yrIV}tEnvy+PHf&M~gr0yTdduEI(UY&tuYCeLmJJ zP3KSWZXwNaeVUqf<#60>qLk7Txo78ql6Xk@y7IwRH%T9^UwyTnD&4#l z7u-Fge&6;{zKep?!IM4~+6As!eikof@ql^xEvF4k@~C%mgq6VSr1>Cf*F0XH(Yo% zI5PRq=mWG(&%MC7*Jrl>O5PeTGrp**N_C$J2H^F_bn4jz0d6N9M~IB)Q4lGX6s6F8 zMHpjaf9ST2`qcOX1vb4o+FUgecf&%%&h4jGgLG->P~An8z+_8lGZ2- zGiX~9TPsX_=qAc)ld_Vx%d1N|5t60F)TZSXd!Ws%qla-7pG?TfO?&hgWn+J$*gw1h z{w4V}@Hb6Kf5y>V^yQ!Sr-?|UYA|c~wJ#=H-d#SvStCQ;EGWog&-mZO6-=`+^Thmk zUCKMG!X6p(V%UW|Y0}r^9t5l+PQQ-nO`6j)6B^31LkMi6lM<*Y3);;lO@*&5m-rNA zA)2g}lyEm(v;J^d7l#ePSJ3B>sm^w7n~$f1Q;t9tZh2LkqQ6MHk?llP@Q3lN1&aF*14$xgXy z8{s(>+r`0_ESX?&WjG2ra~kUIV#!uQ#eCck)q>lLF{&%NR==Y6ONMB?5qw&@rUOC~ z^vKo*EsxLry?a5_FHz59`)8B;<{S`QR^uFk3^9UB#gW}fp%=mp=I8`0=0fXvU`P5# zRSk?$_r_c2gGZEpTX)G)o6T*+I$M+uSTwzyPW#H(*?S|R=Wg-~ZN2;`N$>iz%3iyqHtYArq=`;UYj4;$v(oU9)nLBb2^SqB!^LA^?MhkS7zteubo zj={W!%)1bjaZRn`L%zAEy=c|VlB5JrkNN}n4WFt4u?XfOd*!SI$t@yE49|HdN7vy+kcf z%3r}b8C<*}^&5;$bjrg^^zEUCyqie}xg!W6=SR=@zfgq#C`zu^)C<`464|mw;iCd} zgL8hDp|--QY0?M^Z{b_c6fIkGQ5IJs1r&`jRHV7~JaveaJ|(B>k7}VUUFks(8jI;- zU+Sr9X%@_Ex@6&jC7P63jpQ&G5XTnsM9X453q*r(}Iy1s%T zDb3L7P$?2>DGjNJ$85l)71`4mI<`efLs^W=)5I`sM4Gg=IK>w!$q=YZ8M#l7OEJFq z5ACz4DOQ(MPT(s6=y~A|$p$|Xh)@>rxd;@llrCvBPaP3Ab7ylA7evBFNfY*98p8Bw zahjxsBY&t`5jdJAZjn4lNAj!(X~lZZlv<=h@t7OZX#aF8+{B&gBfU2Zqa=+LRB#cL z2u_5wYW~G$*YQ{Xfd%i2TVjivMm7<}poIA-nuITAXC^r&^uDh=TEi=frRA#DJ2xe%B=_1BTFe*V0iYP$$<_Du1}Z`0A1AJ zQ`B+)wf)Guo)qwoN+9q+{HZ5r=&WKn8}tEvF?8^y>n+QhXW4?MQZ`rjo#gMY5XSN4 zd<9>mQtQ`3#pL;%cNfY7VnujS#lsQ!!!w76K#lZn|9HfKP zY8zvuJPVV4TzPbmJ4zi?f~3NXrYVqP9HVC?!thKwM&R7WDw8F#W-0HIKPakXN_Cu=^qr(uJh^IcT<+O48z zy(}P7_616bivG~#2~k)>i8dTi2G0`LfDeglGr0ykS%)g~&Z?|1Zr!$k!2`r-h-*IS z;@6DDiQ|COQ#07Xv~vK z6sr@}&k@UNpe2_+5H%u%fFiR1V2BdXhpvaw)N)C4jy_>+c9S0Uev0UHu7odhJ~%5n zb-F^^od?UziYH;Eo73?}ga$IyGzsG%k8OOu*ai9!@gfZ_9ePmWwI+!0?U6-`VCokA zjWz}>5HE<4FylxA(BQU{(mnw1O9YurrQ#TTF`44Vtej3mxG0yzuNCBlo9blS)9D{At^c`}gTP!#$nyM6a)rHUh zRk3whIwi%6GQB6ZQTXAv_o<@!j9MI)3QI8cwU)SLbxELVt&T$#5W|a>Ysew}x%b=t z?bv#>JDnQF$HA8kcGtRxYLR5lPhD)qJgT9pVU?4KI_D3IyRz)MH;?f%$Y+kY2A#c9 zGKAA1#1wQy=;U2)&Pcy7n3K)$4hy=Hbh3N&bB2w1U*L4r_udwd0}RU*^knWRW^mC^ zOClurzU4xfhKX40fqyHu3%ytWbh7nGyq98!|Ib%!H~t?4LfiErOrhYv0ffT}Qz8JN z=wh290uah{@m$>hCxCErN$%?U7^P4IAasAJ^kn^}^;B2k;mMb3zt(S2Wx9*A-Iqzq zKgRzB5LQesYuo;qU>0_lpL2huAM)dN;8gdizR6d{DL?M8WO`2Da(``F{bMr9v#098 zTR~V`^Gcn=Nw<=VvCE%Tkq^@dMj zE6R^Iz8@ZVb?hKPGW5l7HS4P%>^>c~3SInaY@LVp{1mlSWl3_Ne^}A@Gr{NDlG3f@ zaY_3_#fP5?wRDc$#@;xTeK7Tfj?3p;AMVCg^@Tn$%TAi~srg*~qUQDH7fDwSe_Z0Y zsH|?v{&DYYSVFDrpHYv$kIW9)eaNkNva-F-dZEewuVX%2mfR0p&-KKHpAD#evNdvj za_D$cjcm<(4NKbxSJjeEraa-kL}&lvy(;`xuk-Z9fyg7m&hv*cUw6FUflhinaO`l2 z{PU4)^`lFYFFs{$I`g6E1$%ksOnl$m^{=PzrDj=e|7&cM$_JyZHWL?&e5Ia?Q=MqUF+6 zqOs9*u4<-U<+bbodK!jDM#pa68vobRaQ8Y9S$H*_$USo>vslA&z}QE{139b<3g0zMcSNi4a4%oj5+3!jI$dJ!d;Eedngrti^_3! z(iW2%l>Ab1)mL+SR%k{X^G+IN_wAa0c~q&uA-A6`45#{d={fg1S?&$yF(SL@HtOum zt!9+x7xSU>Z}?@oPs6TH{KwNEF~2!S?;ax(D^9p`=S&0f<;L@Zlr|Ft2Xsm_0GvGEO1gxU&GsKJ!a|W3D9E zu)> z{yDGA7E(Y(Hz7uee>3NPYv_U8Hzrd32>+9T&9~n+ zXr7E|BeveuKi5ccs(Mq`?L6$;wX-1D-&eaackZlKY*Txn&gS;Fy=KulhMNYbTD30m z0Ah!KwkKTV7D)oZEvaj z@}mTUdOE(1fug==jB0n30~^juG83gnee1(sBiEc=FA%j^8Jihh`$?aj z5!==sd!;l9v3&ane4=*~^UH|O)PQgMcu>SwpYB^L)+nnsp1Ja2o+E#KeA`9%p>87C zaM|QZ>7dz=cwv7jhzOargIh)Sve;MPUmNgCwsuv3t#hz<#sM>$R17*gVlbIhjE?k? z8t*uIr`ZLCOTKlh@uCevv61HZ;_|s;_d5yIiUs5?{RwE>_Uw1?Q(LW}CfNyL4*|ss zjmz&)-J+f!YtlUi1~B-X-@)tc8foIH9v=xI#fXuo_BduJ z>AB1&g9GNgFbo5efi5jEZ&&qDxcm4~i#rD`88L=TF9vV34sCH+7C36Vk4hiND(lVKJK87`@iE>t{0G|1wXRgq#Im9kZnnOIw9gL8i z!$4RPv~hUX>C?9OM_7tBl-MGhv6u>Sd*MPk#nYLL@kQsO-ymRDO`xK5DGx)3#O(26 z(C=4cjE+N?FD7+EQ)JC?4SLxa{Pn4B1*w2Gcd zWk37pxI<3XH(hoQ9_!yo;c3FTC=_am#1>KgP>WcTK1H@fg<4Rp5pBR`Y^5dU>mhuvfuU`5Ccg1>UM3PT*|}f(k02 zT9z{x_2jJB0|_uQJj&5uV`Ac7e;YhSKOA|D`toim=#%DN-WC9F^vkwFJ)J;w6c^8n z9Wxo(rD@T;u=v17z8=zdgQU-Vs~X2IK9t={($sjgPy2RTQMohJa^vAEqCiQCZEe!c zU4014rzjL?Zg1UMAZAx5;9VhwxAVjqd&JZ1en=1Zmhg5fT|?wlP${7+*0Cf;-mJVk z&Gw;E6zOyo?*W3_KkJe1nGOd3RV&3SWyWe3DoIVbElHF)9e6HLAG8y$p_yLbhzF~s z>fE579DXNR6ZVv3xBVIg^`6WU`rqj`l*MjKXNc1{&+O?bH%>p6kolGn2v)!NVE+(^F6Oh+N|A?cDOftnV zKX&}m-REVrTLIpMQtX;OB5D7Vo>Xi6p7dV{noqCscK7RI#59Z2fwLH<(0v|9t<3tjp)9jFpR%s^Gvpb8OOWw2QcE z2q#l81_9Q2dQJKH!_I2BK6Z+K2`zpC-H_tD-LcN#-sn4pP~2*$^!7>sjc3_8=df?N zZ16f7UOU!vbxE4J@i?t>v-J@r_nruEsqXs5+MLJi76sq1r>YmMH3RQ9n=`LU)?}uS zSwa$-)SPGJ2FcDKnYYHQ;B;B)Z#%UNPgjbx#HD>9E+HnMf9V=YImlX#iO`twC}jpY z@DKOkfvXELnqJt8FPW{2Hg|VJDBmD==FzPjS8hcLkBRN^Qn?88aJ7U_&u^g@?{k15 zlok;^^`3jY$#wB;i3PJArpC9w9+aYNmVRG*=W+j(4GNiJ06|qC{=`w$2u|qsV2U(olMZ%Y9+|>k}i7rmcdE4q5 z7UE|DtRtph-AFXKkP?6PcPG1txKB7n_+t7x&S3qlGyjm`*DpE2j`miNm0uK7<(rAz zWwYB_hEZMQfUkS^>&Drnn~uG-SjHKLH((de8cUNih-Ma2KH)FuSxH|H>S$;xy2{yr zg*6VDXRULUD)bZ2`YS3D!HL_{X>cMVY$x6$iof1ZoiIxY4 z%ia1nof+5HfjQTPZ<>`&){i`8ny6PYoAwkkT!t0CElqcSuZ$}ybAQ@5}snk z3vLR3bLG7r{c~?*YFqpbUg|%CPP>(!-Z@+@znc&!R&v8~PZQ44o|m0HZ^{ak8{eF{ zUoYt%tmI0|&XDA7FCJR>!7R$y{r|;&)?R8p6nyR`^<2{b5BvGo zAfuk>9?fsLCTxl30}?=Mt`JDhZ8@z^3cZD_cno}Fx0bM4^KK*Y%%ePhmIP~S4y!Gi z3bwt4^Mhr#jI~t|;k{K7eO0ZyW7;rX@FpUvuQ@B1;v1`UD4OVD-v|uEU~qAODD*y) z+g@PPS#kwl{=pRq;Emu?%=xeN@Zp~!g0~*Gv*B86ozbjd^S|3= z_-&VM;CN!|K$}L@%)#QfEh~>ZE8EU?h;g5>t!X}U#G3_~m4ideUOLVj+c3_Z# zm|XjJF?{XK@R*hh+(ysWk1{7G(i~m_<%qC+efWjoPC|;xcOE=HLAt%lHJy1u4%z%O z{(Ppc)TQ38&y5w96Fbos?9aqAT%jOGc>V$fYSB>1neG`XfeZ|Kc>pXavd8L9Q?w{e zTT@`zwp9WU6$c2lQ4!S=)jv<10)a0k7yALJGZ?!dcC4NF_Q?|H`8S0m1Nf>|XOQwa zdtdMLwTpuSK$>&z)LRF&=?&YjYw+iS)~ZA?g{ZBU62y|{B5LkSkYO zc^Id_Uwt7zFCc%NR}umlNbp`29L|T@^We42_F`)Pt;Y-=Qw>g0ez~x(feJC(;a_H4 zk%Q7(`G;jVQpSN5;h!&e{Jfa3x1;%2Q;ap>92Sfa0^K2<(L{CeOWmib=U#@jg$1;h z0LNr4dU(Q1d8}RKk}^#?VxS+`C?{8aJJC=GZwt&Q{7F7!01VGihmV>JUyMw*cM2`R_H0%pVq8pV9X~A~(=nW!0Hncmom0wuKk(-uk_)S%NS2@s!%I&9%E4sTT~~zxW(Q3vXyn zHWgq%EWfuD*lf;EQb_@r`)$Yhz{(8#kG%C%0=zf4ZTKxney?@Mz(bOW*rqZTc}1zU z&xyS@F&Q;Bcy{Gr?)Xd8^ty;q&8^QK1P-Q?6yL#YSu zw|T|=8C;;@>OHX?(-Oy~;kDC<>(e|^8|u&W3EafJuLTftM()^*LhX#w^%<3CGirZk zh^n(ByIIX0v)adIb!%t!ug@Ajn>GG3OHrLOwVN~FF=u&f&boHa=K9>0XLI&{=BTRk zbh~-S9rMn|<{7o~ZrA7CpUr#znP;lr_qMz5yW_t9vHO9w_k*wB7h#ol{<+UmT?n^Z zh}f~P_t-*I?Ly4;h5gSKV*f0#RUd45R<7R5GajNf%ja$_t)I1~8!eJ{2WCyc`N`Mm z3S|hg$%eKqPR~dqN4?R&p@p84L>_5z^6T?=N-9w;fZ9~iH z`L@~hEd6`VCT-a&>c07eKL@>Jb9@^Nns84PeDs&NS|w4nFDtV4iU z#Mg#@*_&NZ#k0uS?24m=YkfOn|Kd%LPGd>RJU(g1(-n5z#IYh~0on{WM$#yCHYtcq zLu(2;fZ}Ft82@E-L5AS@xs&i=`SfpWtlMdmEi(fanpo#qe5DcmRI$v9D-FE61wU#Z zM6*0B9dMB|gK8RvN}T7g=w56(;XX0)Jw@4r20d0tea-3fvA!SF2s{@$NUZ^gH9#S5 zL*62Mj|^LeG!4(c3b(s6czwSjS_=*%zC77=zKC*7T7MLjVe*g+LZ}F`Aq{r*iqOIC%&Us`!0DlW=YM3jbZqHP02=nZrWK1k%D`%8~U0>A_~{2V}UGD)!BLB5s2ndPs}tE4`J*|uiG34pEaebDY4TrlIh^^}C6 zU?5r`+Q$KlF#~`fDl6SCi{j-QfN5H@{-Xmwt^@D(#Q@*hMWgena+!)7kQy~vv_79< zMJRCKc2@7t*TZl1+{zQ42Tyv};(?DWe0zduG!7R5l=2OF%m6@|x&cWJL4BUEE%_vr z+Pq5dz?mlaX3-En4N?}oIF7e0Dc()OP-UZXS_V(K2g1Aj0*PhrXiyGCw&!BnhyJ(XV*&m zuo5=#X6LtPVo!z{+X4q^u!0o?Ur<}W&f=kG={upVaJlI%;6<=pHpwyMa1I8N-Sd7P z_`bmIN6GJ_5z=!m2pNBIZSLO5qp)1INYVAMR@+5Dg7r4JDjbl254du zkI@Q+1u6FAjmx2zkm`nT?DTKX8Q`iAxQY?Y+&b0;z!#yF&W2-J&$e|o@DUxsN5Y|K zz39v=k*qH_FTdd5gYEy|QJs=11#)GhC2OM_3%Sj_)`Ip@EsKJ>?AFe*?n3>Z>ReDi zqpPB?q*JX(Itzu$9WDenuHO51C#jbmK}i zdg-sesZ5}`50Qx*Z+mc{h7#BGbc|fV3sTC?`A#^>Vhq~T0OV$6T~U&sEIwq?!CPB& zajg4kvg91I%Qmg~rZ`hO%B@PvrC8Pb`=t7%I%+yX)y=o6wd{$)-DF-AjjYr(3uFXd z@X5kuo-z(!kZRD7$-EXGD>|s$KHG!Eyim6xVqWZh{yJ?VGhIQ3m z{!Mw+Ad+b<8bQt*q=luWRLN#*Q$4(3PTv&j^%dHxqmrL7v#5Vn!*T}?(W7Q)uS9{k zTz3XKUu*ZH|Cn_vll>-BvXVLAVO-ZXkq;hK~O^z3Lw zdbmaj2#%2`Bt;(|`#TFXqQ7ZT~HTXYGX`pZ3(?EE9 z&ZKsPQbcq8^06$HuXz%7a;9AIdqLB1C)I1bhVtkP3=B1j#hs&~D~q!-vcor8{&jK2 zDDHIAZ+LZDORl>|*92CTBVbcqX%h%qEU&hc8a8+EuczoXPB!+Z_DYRGP zG9V=+qs>AcP{DszQ1OYcOo#Tb+wbEg{USibeOVdMwq!N+ZZ=6w8H&)*Nv6=anaL@F z@!hkSXCS>4z%_i7F#0y_D1V?{e8Tt()!EsljE>6Lyd=NfBVa@1;&edDQn%_`WNfED zoc@*XRG45F=90bYboW6vz?==rVHW%)a&dZuxz%24OmYc-^1({0JN3)#3z3V{dJng3 z=~6({+@C<-BK7m9L}uOC&6Xv*&i{B_bNJ(r6@Iqy&sC9&^XLC!5I7fUU;jSv*BIi1 zU_~wA&i6*}3t5UY_|0s+d1yJZthaj*rp5=>%m&CyLtpdoCm6$L6zIciLyV0O#9IQy zJ&Fw6#e*~*Kk?x6I^oAjAKn?CxL>>64aMK8_KR0CV`sr5?`dG1G`Xq_01!76IfbGl+Uj@Mx1i+4ZeoD9nnW3jnXy&Tx@ zM1Hg7>G1Wh7`4id)5!aAK8)#KycM!$?$=eP;+Bjw^ zEtw}<$tptR@OXEH{-+;Ojl-ML6nbNvTp#;t41OW~Qv;kbTE8EFTXfV_GSlTch)I+# zh`?xq@~kKjSxC68z;U(TC=l&;fCa9!UD0+DFHO>r=|*T-$+|tPK-wF{lVmx$U1s7W zu6@mW`K%igT>@~D#5n3|OHgCwI$pmo#r5Z2j1|rEf{Ia=PCmR5pq##RnC5J+su{I)&=?Wz%>#sNO#gIo<){JyE$B zr?@XVNNeU9&nZ6a7PO5l9j0T{zzTX7=YOOn*x?$3-IdUlJ5Qhi$zg?54IydAK42c_(n;}abQ$z!lhT& z3)j?EA49M`?0w2`ZQ>U%C!w+OmE=*QRX_JEtxecVWT}T)i^3KRBZKPoBz`xgG92z*k{s#i)-T~8*k*=Z3UI*4DshOSb&pHjxmV~PdD!8kZ+_@UVRXo+lcK# zgblt7?G-7IKhh=xG0BPt+AnCNLOC}l=pcga0!%JS1If*C*f*-AYko_zS0CXHsNM9k z@mh33{f)t@Mggl>jOLI1M!Z!oX{GfV+Y@b0T*f9ce!9)GhC|(yx9E1oUH316+=Rk& z)8@OSI9dBbtwYXIDe4Z->E%TH2j17}fMZhWgr%UqFd10~JwV%!#eHZy+a%ouwq#9O zoIdiXL?*3*r#O5fFl-i%v6*)W9Ms$HFk0Zrk@wdQ*Rwc{-!X%~9d7vE-H6!v8DTB8 zFP_s8?=ezxt*hK~&$8H>h7aiGKnj!#cgZzImkF(nD-w0E@KBH&oFa$Osj!$278qGUSsB(RT?a?^BqD8Zv!(4kGB-+{P z?PY!S2}&#@9;$qi6Cbqu8N){eWZ3(1-jL4cmsvZELhnk!?hTTq4NPJ8i6nf}W#T{Y z$E{e`gIl=`kyaNxA5D8xv(kpiB(l4&=f$4~l!E47Dfb#>A(;G=D|kDz%xM`z)Fo4= z@;{g-bqozTDy;MOYim)_$&j&F`95#E-MxCq$PDJLiOvPIn?$Rvm$p$2YG#hE_ewx> zj@?WbKHUpu@O29@0S=sn%!;vQ)5j;QxUMGARYJ?d5z>lsQf(5b5)9&fuO;r3ow0(n zQL+>xOkTkbOJsx>jVk7aU7@lfWH&JH1<_hj+|$~)?akH)Uq;v_r`tub zbm8P^GuW?N8L5f(YLvZVe!T6g_9eSzE`{w6G6}6CLW;uZi86#1=0xy!e1yD+{3O3} zSPm=XJy{FMp_sfaLDmXUdSv9=xjn4)?XS}zeEqKUifEoN#=k%NN)%#@4I1;+OwWP9 zkY*o2AGhN zz*Inm5sIOxbi1Y!tQrP1I=d@)R8fzK8u`4XcYJG;HT+)UPKiTCVr9Ai_{-Gs!KOw< zE`YSaL~8=tRWxEvoC=o;ZPVC5x|1L^roARWnM|Yoiqd=N1i$z7IB+)m%4+bRH9&sN zGoK0K)<`64FnP%EX*XO%5}6W$ZV*9(0*UI@sa)5){wNhHjLg>(NXA!}$2uH2S~?5| z9}t@}lT8LaMcgq0U(YV`AT)P)XA?G(d+;I_Im$d4dIjA_r-eysZ zO#DmjX&2>m*Y<2oQpw->js&Qx3;olCe4D!|=v6Y$4{l7=A)5epvycc$cK3_224<^B z8w{8wep=kv6g@P!sNN=Oy2oOuuuF?RLKkI9s z+nT%x+AaYT*rE%k%tLY@tVq+ocEC2=E-_7B9h3`S;@$FAyEvgJ$#2LVR52>sXrPfa zrHjp-mW=wiq>;ESTLSs9ujO5I;m!*L-Tur_1?w5-1Y_)9tbu#@uBJ=KBbjD*#m;N?Z`tIn5 z@DLFK`e&zi^7;J7mODO+dW9|5k0yyN5~Qf=zgz5295pix>hX6LndKup3R*9@jh3D|ZA@t5eM z7X5wdCWS_|r)Cj~L#SIs94bQw6;=3Z4_ta)N=As687!6UqrNXkE~b}cVE~6y2sH81 z$fM8?jcT13JrYw1UxLkm{=IFN8Gx%#SJooEU)iB+}0AaE3i^VqFP%UVAZn-as~1HARJI60>meb3KOl_4jM!igh-_E_e`-J%r;~&6h@Re4&uA1SVU;e4>)oJUCj{3Py-kt3e5TPE^!HIwl6L=EK#~m@k#T3j=pSTh|5QjI2W@}o z!#6MCrHK&nY}*^6_p{%C*S4ya5yf$R`_cQk-iwM)-vjMyDvEKtl)%s}3->ay=X=+; zjCJf7pb{T10-C}N0Ko_GwBqlR95cuB$myxHeN)19%=pQK(%bM`L4s9*7f}OJ7J>j@ zEoTwm!r42Y8h(7JGxlMofmiRLad@cNbtx~o!&eB$THueI_#ql{oJ(^x#LnSdoYtu@ zT}($sF?3k2v~6(CLfR=~w(W_V0wawpNt_cSWL?ris(W21I7@x;Q$zr=k5%X}sh{)h z+(C&EB<6*U-IfjxboaFmO*BH(8;JDgswt;pGHlLE6D!KTo1E@1obcG1)y~fUD zOF|+do+7bHYtW^NMtM4&T16YK)&K)%{DQ>@$^z5AjN#(nYC3!fOAVp0!KEdzEw05T zJ5l>V>ZM<5CIDvFQhc9C@Ehlrb&JzT0i7%1+k<@K7$O+%_<7`=w@CXWDbAb)>_Y# z#Ir938=Us_;-znmYR!UwFFT$Of+3geC12iJqWis*_n6Py5+kc~@(P@tIg&dVFpvgD zF2&>*f)&k*9rq1u4;>sQJ*Rz9`|jUZ_3b%&8gdO*k`-}>geQD=zUnGN&>^UP8r(z) z%35>Mp;BxQrPi8nNu-4svUDc9+qVUilqoN_$~2Q>+ELi-`DxI5>GtTOH^#xrI6xgsyx#IL`1!Pb1PLn4CP4}trhiWreX^qn_#lY@ zy3_sCsHQoCi_MGg+$>;E6A#SRLt50_oE3n$b@^(re9e%#JcTY6L?e5AYiaV1>(57YgM6M>Yaap+T4%n5;~ z1kUm5gB74Nqp0)aAR(&9x|7PXYbgvj)zBO zv_Ai>mAt+`9=V?T<0T8L7iJkXjtyTwm$m&u!@z=U^Tw~OA?OQ5=tA`Q1pl9D2g5s# z${qSNBlhH(G-l}F*{yXLV6P?uIiLM)e>X&X7}2g)@baO!7f#Yd=CCrb((h%Q@L)~J zL5UfGo|$=4mF2xIC5f3LQL*{yJM3lAK3F+55H4dTBLxA`P;@RYPmh=tErZO-J6Rr$ zl*~U_lb2mWL?ZGlDst=2m5`!EgCt%Z)SM%Ni)dcxYOei%S8Qtl00L*rrRI1Sx_L-5 z-~o8y+}xs>3Oc%O?s;xEBqNWE*3)}ettN+-%D#YBB9e5&HA}S{9P=f3#+_xCqN{j# zi}0H1!CV4IQg4GX$vO#t+5oJ?uo)$0ji3jPlf;q+ zm}`;93l1FQgh9D*d5M}9(L5L4aJSez!N(Zc6N>ppS}mA2a)MUym1pir}M^V4+Hy4MOVEctco%9+&f zt`BvzM6f9_az8~Vr7%w!6eGA}U`T8+EA9W{>b=8~?!&(S?_kLiP!Vw%YZ$Zb51KxPFf&`<;yh2YLeeYmz zXre+cLS1`Nlbc#XWLOi<3HU7hEm7hNoPHkP69WaR*j5&ebzGd~P32Z5=XC;mvra2T zj=X*nfK!YDxFPT{%ab>(-^iZaKuc~l^p?2_X5-W--~2!g0I0K`!n ze?H4WuA8;MHMnr6Q3mNiANGQ+%L;;#OgMlvXyiTbR&0`cf;#ga0O}vY?E7PTe_8&R zh(Emjhy92J^jKCeYyp7a~qILE_*bn&(NX=$Qwia1KP=XR-E0{Z2Gz2_^k1)IC;(hA#TXvz(Nf@5E zU(4j;&P0xKqD2cYe+}pa^m!u8Wu!i9OW>s#_jzmCfekn9tDZA`vqFkmk@^F=#leD} z!Nd~eQ)_DWw)5w(KKxY$&Ar#TY?!u92!Gha1>)FZk{%O&p6IzU!BI-np11^V zHz*aFbh#WQrVaEN{8*+74Pew<299W^3sH0h5X6*tOBX=DaIR-& zxY)ZX7V=&tU4Y^$9*&jMr2^4OF8m ze2~q2lx1~qOrr}-7fMkalIJ0g0Py)+jF`g+{iw=AJ}fCJuU3Q#XNY|Se3(JXrYvJX z1iiKdy_+VwN3-$+mXsQD1SYGG%om`B7{wbnOr4stTsR#-_`UWwehiV-O-vCSc|H2Z z%pJO(bba;w8|}qf5Yk5qSV~No*Q?2-T5qpC@pq#h%nD%_2Jos;q`yp3vH02z&?-O# z)t{`&XcQu80iGAQB+y@T1+w;QotO3za6acx8?=eHQ4sgE%{paB$5n@%XiR@7CxQ15qQtBNOv@=MFr?lIpf#s%9Ua`AFKj z&eNXMYW7OjIcw!og)O@sccJ}Lo?o=C@?IN}s#n+K7w@=7h-xI5oZNUburyF55QtES^A6?sXcSTiiWp=|FvOY^;VabZ%v)(mqIla!3Dzr#6eIlFS#0k`lBt~RwtOC$5~ zpeW?yjcf0+@YvT!Lmp8g5IkLf?5kC4Q-^+B_@C{jeNTv5+YaueTl9kIWze1MuA4ij zh@1hIf%)I@->KN^6BZL?KA6=w5Go z$CM=pVl-*`Bbq|)AlrUN(79v; z!p7783cgz-onc=<^4ycUuxg4pn~gHA4*v!VZQKqw#(rPF*b_dznrnA~ zV*2!63k>K5NW_>SK(xwAh{XyM2RR3?>)yL?!SUai`@Od|s!q1D4Lp(X{40)KfDYbE z2;wpUPf5NUZImy*LXaXpom|&%B``0E5FYz`LwHncr1i-%)unG)HZ;+BwPtZ5)ZQ+) zdLXbe>EdgG^Foww*mZ0?L-+X{0d^INOjhs#y@BWRR??HIb;=-J?%=A`Bxw0XZi@C6 zIU-U3EvVg8X6m@y#LKh20!rO?o@*8%^wO*%uUMvh(&ZvKpjay%@XtO|%=GYRxuOL) zJy}M&$DTFAdoT${&Og1rJybL?tV9?I4L1i^?ZQ1vf&LBkK{?6J4%NzU>!`Fc^`pAA z?R>x~oydI@pC&pMXqS0m8Muk-qIU^z{q)|Iw~ii?p8_3}ew3&vl%X4R-YcZssuu^H zz9f!fK>fXI2^@uJqFoQRW;pH-7D8^+4v5|kV1wD_z7i|cIO!Ep8I@|}gm6~Ad!D%);>9-~B3qWSj^|=|-$wn$_aHH5hw;ak>>XTJo0G>tj zsLiXY9Zg>JLLsA<2|k)NMgD(~Yl=v)5yjRLlF+0~upBirx!z>f8Y^T{B%mulVa85h zPYU0EX!uJ+NAtns6psQDlSc-vWmdH2*rO^Q)dcSe*W5sv{3Usxwu&{JYy>Jd_84!v zo(omX(Ka187 zPyt?YV!Ua0GF9Q#XMx5L0}ZLo(>hbK)CAPMnoMlsuP0k-zio`I`;NyXs?oY|3{xVZ#_9Y+k7oc$1=dI z^n+HY^i2pU2fNv*;?H+7wse6KorKYLlJImY(^W)SDL|A)XPd4%ucGp^qdw+T?t8e3 zp;fh^rP59h)$m!2uu8?Y zOQ`b4c^Eo(T^FhF>a4TYZj)y~Jzxi#(VBXu>$-$&!K zCf2rCsEuj@li9vl$wELwoSv$$VyV<@vIKAdgq_V)mjd~Iihk;codVCF6 z8KliSN%Dsi8B45XW+QgMx}Tsf!>qy%V38oCfNo$0YH?v3z5~!?{ioijuLM=q>a~7x~?AjE`o|Yt&L>+U^!W9Iz_v$Cky@V`1;jCgM%52lgyExrJz0v{U5q9(+{om)E<2l(m<_mp`m@n*@yC6R_Mc_1R#jJ<9Ni8|LA6S(`$mmu z6wUWNu4`6pvav1b(uKWGFYfoH(;t^MDMIXPW_30&|<>?OJ$~{MWZb(Y? zBG;i4FHTh9BVDQ&U%Grm_X=wl-r-4Uy;Y6;PfusznvcFmPd`1JkP>pAf92lt(tQtl z-15t0?zG;P^6^VmgVtAGeF&+jjNFEdWOhabBvrPUUjD2&|KPFask;lr&@+NfcxCl!tFruaFodG;f*4sWo-y3x_@cn9~M za~~ph?TSw83QhKv_bDzd&BT5+KQ^~#mA1z<+u8<#LRuiB&TyADJ^+xBYL%SurpIa^ z1EWoHQdaUf0;3=kwuYRqKAZNk3A6MA4wQq#qJVQobs6>meJZ(SIE zf8fbqB;LRJJD;kRd*X>~;NmYFZ?)P#RhR)2{3FEmAtiwGUtS;uim82;Uv7w5r(I}U zEoPV735@6p3n#fod-|HfADb_RK#c>-B9aFrlN1e-x`}+jCMhgVgCY87E>`2bX((c8 zAH}78ez_F`JXo~3XjT;`32?wKe;%WM??OV520W}HhnmCwfA03~@VGm}6xLU)>;_GKqz5?gHK*H6O$9q&+A+lTOba=Ic^<=L z@99YM%StZPD7A3z%DNE38*P=+ITUTSPvIPPZTddz@_^zBpLJuKj7JWdD%t<+)@`cG zgY9AD4eEFlr2XYCO*TvyEV)O9yRDX$q|38dSNM#U=Dc92a6 zcKuhnt(N|3t|vBm)eOSQ1t>5C7!%pjfR)pvwud9&oD%Tg1m3;DUGD}oggazlfwK=L ze&*uT8AY7)G=qRlGY$3Sv@|OfWseIF<^~i}V4MQ7RzN%V30{ACuE!mwvTe^vA@+Hw zRu3*5lIqPe8vO$cjh9Ttl}t;Po@$_pz0TS3px+>T>yA(R<~9fJi-l0on(f;&l5R0| zXI|y+xCu_8;D??q7%|3N242b8P3}FT)yKV5I%+M94=UUGBgVbh%~|*xcyP*HeL~N? z_Suc27>yf-%(MtV2{0KLQ<27`H@)#KxbcW1|NJ2=t>B0P_~Vk_&phBX!oEsnotZn8 zCzUc73p({Cx+J^ef46H~nchZ!hk4s6dW7DipB(lp%Jx6c&@XO78GRvQ`=#d6#9Lxg zLny4PIL#aJ+u_N$QgDxvY!-) zDbABO<8BLkViymsM zfi@t~gy2`F|s3q^qSEa`vo#5~iRZ03~2Vy}ZvIaAm z9GHdpo38|Vy8shO0S|$pTRK=_^(=@cOgjghrMe|dPh=RFIuJ~<=tONekeX zR%{b2mIx%u+Rt}%c3rsGeW~a2|I@Kmb$vk%3mX;-HieC}v^B_ji!2j$^tDV4kVbYI z8dO-%l!`Qgw7%L{e5j|I)3jMSBNS^?UO>Z+oC1w8DuO0w-s+-}mA~G|53L1{Hq#_^KyD4J>A~$i3uB262XZYG zvp3X;(@x>i-A3Y^Lk=6lxgovK!m3lO2aVNFJXaso(1{F6AWuF$vr#a0=h*U#ZO<>K zf4#N+haAeIA-S~{qRGA@x;0lqOJWf6Nw#h*3CRe7BkQvY!z;{k4^nLdYP+eQyzul# zoQm|)y8hdm6n>OaA-*Z*m~V>W)y4JWiCZ_Mzv52aL=XrMh71HZ>$9Ow z{cX*&vfixMXzkF>05a2Ch-Qr3%A1?Kfk)%4Slu$u>>QkdSp~+9?}tvLrt`9V?R=6Y z=)^VL8+hF{!d|?ICf}2=epm>pQDp4Lm}kDpy|6l`;ZdGRRl=+M|53i$K%G$#njEA; zMd4JfRK)6p| zAP^zV97zD0H701nMnpt-#v51^jN$G0YbEKs7T&bu(6hXZ!n+3aEwJRaaiLbMkbj=sIt|9G_L z%BycMU3nTeTG9Hd^IlY;1%w&m6gu5YeYE}O^K|rR{gBOW{cSIk7gnT>2yvgjJq!Kk ztmB0HiLL1`@BJNi>e;i3=;*L#`I1ytrFMyv^5EUYoHr%cO)s##{R!XSS1(0o8j8a6MycZ|L~>9D$EaUWSg??LH?EV&k}C4oez2 z#M7L9Kms+#m{CL*F5ynpIn7kAuoJ^2_$UB!(5sSm<(LT_fQX#jv;`Tj*T3^-Yt-JP zf@a+Dplje@|HHT?R@^%C?R7$29wlA9*|R=5X4pLyy~wlVG%vA>qfbE zjF1l)`Q+}i(!mjgQt;R08fLH{Q1AF$O{zwSTDSz%zNvIGd>2%Y5;7!fR2oQ?6~I=- z0rz2;B!q|%E(|d}{Z{d!JOFP}7eIK@jIbQw5<;b7deJ5%*#dM~Oe&+Am{;m32o9ri zF>xCo$w_ED^nf9r4w3?P^M&Y=Mv+=G13}JPjb$>H5d^0ZGHLID?654nLW*pl6l0Hs zi0J{LNRxC+^Ub7thdF)-bBw8Pw2~gv!f;`iEeH{)4AY|=Kji&EkvJY<8JNUy&AueW zxp2k!y#XvcU`xcE4q@J!EZDXC?V*^!ET{rlyRk*MdYPQMNh&nAn|e$cJ>~ zTtWd{h`-54YRzyRUTYpxpWq^L2)$}?QgJR-xzuK&SQjS+!*YayM%#rke%xmz+1yIX z>`>BX1(drN@N^CBttBAd=9K~ZQ5i|)md6SSpd8f{3(Dl^(1H)b1b` z9t!X5f^{WAf|)`+tg)`AqFs(ckwTn5&mhdXo|l-jV#2fB9vk7EY=7T-YKONVv-?@B zys#RL2_Z~R==HOf6>t>FB>{t;XpZ3Qt4&h_<`PP`v5lwPBusWrAEO$cF&xt_?0fA+b~w$aBJh;NBS5K6X9yj*x4xG)9Z*-(M^?G$e* z$vAgpecctOSBQ%vl#p#PZGDq;@C{b~!}o{H7}o2QjuFj-dIDUACn`_r7bWI*Sim%qO4nRDB2w7%CMVCBzKex^;ff zvs!ZnYMJVXpu;gn>dhw;8dF3n2^1{5fXL(sOK!1*&e`3|Tur0JLW4*dc|Z;07a{IZ zH-n0m+b?PImWMuG+!vP*yjjdWT@k={{wuS5hKPnJLBjHD=B?P+ieYz42+0ZPMF7EB z$@$W6|Lwgqx}j&~vL+bu`KFD~+XA?1Z6bX-JMWL+4u7it3gKLi4Lv$xZ9qR-FWB>3 zZ(k{tCj`pRCkWSld+Q!8CdTOqpiRa&94RQZ*MDFZOBd)~6dvdivaMzVyvE#FOrSxG zOBlz6h5P9Y>^JCUdTRho7dN&!%gA1Ak|+MoT(FxiV`*jEKCpMQvS5`^Sj=YE5vGfY zMV3u6)~K50?BYpDwe>R*J12Mx{%_z{j1xW3a=8_#l71*z9PqJDl6E< z&C(|ar@?G-$XzwzyfG>_Jbjbbn3ze4F`Uo67HUz{=W|{FlznqpGU~pO125OcU2_(k zcg6*#;0BpEmk3<^2B$C$9ES}q&EoW>1zuu%ynu7vQ$5BT4n}3UQBqwi=G~8FP{q=`GGo_lO;E-Zm-{q!*^N0|xw1OBsNxhHjfcI~xE?dF<1X z;6rSTQFf360DT(=ekk$=nY%xBEdZH6t#X(}mI?r;Al;KdmI8pv21}9wLkW0r7r>bH z!wCQfZuAaw$WjTIye%XGkdZL-(`)eOL}6BEVZ|x6M--r-9k~A;=#JRMB!jpfp3Jj!Q;y7`4{OYM7< z1dT{QWiHKM1vWicUEFV|O0TH+@D(EzM;Uyf ziDbCy#{$KiL7~bGZ+B^a6ai!vOTuaaIXp+yX6>)e`GGWA7H@T)v3O$Zsu z^pA%mRU=^|ZpOC>ztl~X{LoDlE~I&0)0{+Bdu2eGBWy~7_1L>lP=xvQV1kIeIoeF0 zq~>!N<+E88frLk;=2|4kh6guRF|zxil12@WUEl`oDl!0}%*Z&En-zrj&gh<0<`!oh zpQ+K_M6)=^2G}z7&EKtRk#Ot{;|+rvP7DxMq3R{j%2En)c3X+KJn2n@l?XJJq~43B zsfHi_Ix-xpRE`6vVI16fAxe)2^r6BY3CnGG0Od=PA>V&&H&j*zlI07KHemU%OMOkg zj+hC)ByA^Cw!`x1wx*S~im2mnc}dgI-tiUhTpN7~v@17c`_XJw3=6uZO~4V>qRG?K<9Uv{E)kTZw(Y8J9prEx>M4++>EZGq+&9 zIZw74ZDdxX)^(m531wLs=li-fXCD#XANBZh(5*uWOjfhD8hgH}ch{zqY;KZo#S;}$=Ty}@#v8}JPbxYwD2KU^&>+{hvdbMLt=9zO=9OMAr zwC~jL4Cqt=dFKgtH16J34hbqaKPk>P(>W2|ocA+s8u1IEZ@vJRsm>R@qhD$`XIXfj zjKK{viWN~}$AvxSe;I8J0_S(Uv*aDA^ttQb$4~>D75)LY_r4Uwo zQLt<@tIVtgpk>+mwQyPjL|=ZlSdqNi3eHSF#;b&)jY`1al;;!>TE+G3wO^EBB7XkB z#*xpPF|x(UbT53dtxM(3jBG~BY}NS{=rQ0)6M$3oSK94O6kxRy#B54`L1{U~SAPK6 zFfpP0*G(hm$&EsT7vfW71w`o}bH|tlQr!oUtU-z$tfK*{^ciyYNE!6sV~4W};AE0` zJnjP7`#h5k%n7*DWG^uXrZHM~uU_yLK7hX0pPWnvQmp|S9+Y-D=b;;WZy>g-9zZ6a zVs?`aMx8h9!J3U>=~9r5159O5(v;yOz+QX?Kr8KbU$!SGYSiB} z;Hl1IRFap4M29BXtHIvH*==gewioR-`NWMBP=sCMH2er?%^)9pN9)_8IV3WC0MJyS z^^0VScYN^Kmn|1^sn2}We9P)BCnH2(QjJNWWI+QvIsBt^gSKMd<^Bk=T=Vi#ldw~y zKXPcbBWT3;PkXE7?`dfr12O?Xb5f^yq$XifU8f)#lo9o2;|hJPEw*fp=+(R>lq- z0INXoE22RTN!>tBv}MDMkMnqTpt~HLa)b*Xt~=IyRb`)kgTQWV2XBg?$RhAqn#ov; zr~MtO#T$UiJD_tqW_v1Vs!;X$ldI?W$3nYImB3H zr1ZC7@7i9A`gjs}|5`h%CY2(wGywonT7wZ+XVl~9-{r8W%GSzbt?7c?C6;c9TAHPd z_f*)FL~xYA-^@()l_uQPz&;q#S5{(yn}1wW^;J8JhwGP*lW4p_Ctvc#5E(zH8B#fQ zfdNGEMLl7%5=2SQR^{aMKSWZwn9WQm{u4143FdP?khO%S5|Gy>H(#ai)UijiK{ zW51iaL}oy^aR;>dvESMu0`(-pe3s`1!T#*G(L128T5uLX@~j5tV;>}&;2^9D&x z>TE~QP6pb_h>}}mtM%nawJf{qjN6;cjku7yz_e>zePpA$6G)*bqUMc2(FLgNftHyF zv<6@Uz}ZTsPUA`_LWA!=t@LH^lpL}af-Q^b4sU~XJodlM7%6^?$Fael^bD_plbZb< zi2@*3^ZxT`hyIDex%WPdct?VwDC1GE(QAOo_dbeyp1;^=d6-&#IpT#MoEU&zYq9v^OzMJ61XNGm(7 z6g+NGinl$4oh#mxrfl_omh+zV;|88G@9{Jfcq_v76_<6W^vCi`#64wKr%vzOG2Kau zaW%bsX+sNb;Pj4rqKwbef)e+>?ITx&PE0vS`GD)~@Q&Yq#w{#QrnFmiv$)=;W3^B2 zx@OkqO<7S1Sz8GZvuu&oRE|*}tD(<^OM9_tBKsVVHU3~9P6~WF+Z;KOd#uB1#uFRW z?J6qpcrewoD<;=%M(p9>SMuatf%`)1+2zzVM<;}K=|UI955FOiZkr~$`k&ED!uKkYbGB5m?In>Di&e6a@E7Sl1u z&tkWBx81+GaqF@DpFK!QOhLPpmfVqM>6(4EBX0P)+o^DS0@Q;XN<&&~+ zbA=vTm@@y_`_4Jv+dKEa3T=ZTn#RFL$?c!Rfq7Bb^%1)FNe~k6J^5f$TW5&L+a#m# zNE59QrLcUD2nR*RuIZ$OUyz|lwU7{k zr4Sx{vAwar?pG0;`dhbB*>C+CZX_ zKFiio+X%MOYji6_l6{0eFM!Tf6Qt`do3 zd96t}Y*q{qsO<0=wp7d@BV2uGLgq~j(os&}(aweEgNvw1Zj=9rvS`M^K>_PMeX(j* z_J}DZk&3S%<4wzF6O?Cgwr*FB715fs2rPG%o91pPNHhi}S6$O(yzYi$%D^h9aZI?2Tr+nAm>%3fYy z;Gu*LF&1nL@xmabE^_35H%Y4FwTMx$^fN)?srGiL!T`tiY4Ad~WK4+A#$E@-s!|XU zjIe1{3}ToGyH=sAc!zT_)G>b567||<2|}wG5ChPH&&mJE*#0lZwt3wi5edYYPe?_W z#~C~rYrBN~-KZzC-g{yl)+jv@Xbf-zb_n8Sp`SN#y$KA3(o@Yqm8OQQw#D3N z)$n1%1P+h<7Kk< zr&{qcF=jZE(T1`bB6*rKo28;|#|kd2=6X{03GXn*rZ?2IW%hCjLJb&;qaC>c=>$nV zJ1@s_VXSGRr&rs(9=BeEvHf08#6<9xWoH!xQeOgHs%UHA3`wCtLj0-T%gi9IcTeXg z`PR;!&v0@lJ&1P$c3TKkitehnW`^UL5{BIkhev@)*wK?@Io_1F7zO|jt5&pC5Icsx zMt#eV#|fv-{&=$gbH6rLk5+Z+S>fcnN6!va4m+&}Jbuz%9CT%jjf?I(S3ec23B6E` zq0^1&C6Tr?IQ0%!|;GuOxY|9tviD8g|-Imm-GjvUVfT8@^Oe`ve7Ba^P~0RSJ= z2R`@sw@pR6{R7SXb^F+>ZYX!@|M@rbc(2B~f3xGw*Y&(>cBr@vjQ-s5J^PHq%RL_q z+K*p-r_Nzt`|<=n^!MxV;lF>rst*lc`+8S*>E18;bte{o>DsW6`R4h5+o(ug& z#ODSfa*W}kPXeo+nL=(47$_aSC;D^eNgWo0sjd*NT_Y8tgmSpKp%)RrwTjrq2RRG0 zJV^7BD&Wgqo0tHo5lQ+K7cNYX;$n|PiZYB$39^ZkHlyi6eHhTeQ_3CP&@w($gFu)^5j??)k$N1_L=5h4v!4sQ2rtfXe= zBs{BGhTqXA2BWx;abO=PH@Z!&h!1Gi8Qc`9EWze6A>&K_8M9>d!%F}Jt+{s_qwEkT zL26R0QcLqKDR`ho40KWL7JS$wXQ$#ug!d<5|4e<2 z|Gy}h#U-HM_85d^GtTO9J&)Di5u@@Lh|e?tWu_#2o;igyvUtBZwA>es*x&|F`l6lK zwRp`_P`!RHcW)-d-sgxm(vc%<*?N_On;0*;m$TU#fO>Ngf---f8LSdEbjgiPhud~v zwDuc4_6iEH^Fgo$kd|Uu5Uhwm$5uQZ+X7rUryNGnpFo&Q~2o?|_xVOxl5ua;#)j_%$lw%0-t(v>!>VlOS|CEddDGH$*==$xiB% zgaF>_65514P$}bro0OQtnS}}F6LRd9g;~QmTcO+4Vo_cMPssO4cHN(n%UYfcob$=9 z$11s46jvONi6pDng$BJiQ$&;nQ_G9}(DWWqi$z4*CV=&tTMGgxz92SAv@}2}KA@?D z2ut!}l#y|2+xV;18Qa@q+3T82vX*`($@kU|JpUhqzy_ZHcYEZ3+BUBHPESedYPKkA zTekK;^oh03UZc;DI-U+!<*!`W;IG!fko()p>%%6CsOj=k-+d#8%f1v)PDES3Ioe-l zFRvhvFcxqBRpJmS-4fuVL=Z{bzGv}|ny{A<>(#U(N_JzryU>Rc6DnKZi@m(Bp5e@l z%b7jU!K`)7rQKWjyhm#i&2QvHRC?C-7yb*?z}V$aZ5=UrWA)=qDpevut`>ZkduegDik z^s60Nb^SEjV9)vGJ^%bZ_-z)+nB8;0V=@};aqXh5@Zw!E;GQ0O?@-o=lls*e??WC7 zq3y=#8RO||nZhaZf^1vf(WieBF3N0AA6k_D=ik@eZ?8W-7W-D1V)*$$8c=ZOn$Z3L zLlfqPNa&JnQnY2=ms{@7R$X7@zD5o`yLcG&cIW)Bul&EM>iZ`5Ec$UG?dZD)2b{0G zQTt)p`QOa+$^)N+@Bf}xKk)PFKl>m5EctmKz4uz5N(Z-pa{9oPY0qogi?4-cOl@|? zP8@jLCv-=MGC|)jqkG8B&Qo7AK3sH%^Y#!ry(e-OUtYykb8&ytAkvv}Lv-&4yASB+ zi3|qzFlRgm8ia_b10EAuPy6?A0({Tk-uLR%f!7DKKB9eJ-*yKEviD|*#?U$D%``CG zIkGuBC+R@W-2P`5vzYS>p10HX6_WRPjM2Uv+)GOkFX_%bkPOgo<_c&BlU)v`x`e7r z;7|tAQ0cO3;^6-IgF;$fi5-!`K(6H@LwR6|d0x>(UdepkRu`fh7s(Z%!ey|eI{!#_ z{?TR+yfhc!LmJuUW^8ey9I(47+}jJ_h5KwVuA>?Sz2zu-1~Nj53{^r89+B~U=Zjys;v$;bFS*93KpNsHCM;tS`(L0vh!eug4F`-9#3&!}bh_}p1$VBx_>oF+WO3+DS{BYF?NxK`%foyAOf8L@ z-|vQzeAZr|y>;III;sdC?et=P$v+nhivys9oYiC*z>>i33^@F)HiHi)d^a|m1#B3w zy9}a?kyZIeq_E7M1Ubq*()uxx5e7|i?dkR9TB?Ag0@9VjZnDVStUZ>SVRuDoY)C~j znph;z_3?J?n5%H+5Ji!Iv!c{U2%*@aLw&Xh99l{WfTI9(r3>(DPX@GWxc}gR_5K>) zJX;cqHaR+3SODXiizg04mMU1n$f{>~Ys=$lcLub#e*^eaF1ReQZv3jx&cvhk`}UR| z&b2hk$Z|$S_z06id{O|8kHz&Y+tbykD2S#GSW!~~n9`ceUwihguW|q!Zhl$VXLoR4 z&R}i^6AX|X3>6|STOz|rwHfo!*HUxp?9q$?*gy`;mmx!iFp{BdD?i%%t~OK(Zz)B= z!rH4XQ5!eF1NjJdDfBEKfxDq?MJmpSIyUGEaB9G3`LIQ)xhv_on{X{z4!bC7#|L4W zAh%(Iv-88l40!-f0ibzOCfg7vg-jVFq972>cTx4%3A{k>GDtO0Me|^S6x5XgL}2so zPU#7;A5kFfUxh_Nn{|)WyM6(1Ja-%k(5f;nv5zJyqY3;)ktrMfLFC186PcDD9HR4bQ(bY?(9iOB1js0l2h z+X87JQxD}MuVE1?&HbrvvzIZg-8Ab^De`(j;fTasUv^?Gw^eZ(dG8Wjk^q zGC~U{GxPOBpp0f@|B;2W5z5-#I(}2^SV6-oi6D$7gG`N18<9X&X4p6h_lFy{zLbEJ z8=5OE=YZIo8^e(#{kIHId;MxJCn(lz`|mo4%mLx0ISZfl*mV>tbYcZjKR*L5fc9`Gv zW^4BO-A3w59J|fYCKNUVvzbi|Iut>`R3()0CV5y6nKRV2rCa`L?qHMFs>Ui?LLjzs z0e5pZ7?VU+kxU+j08d9Cnhd=)kvoJ=0x*3DK9)k>(!1{Hqlc$lF z2d@kj7HZ3D6;F`&TwD9!*TQzt-8<((N!p1*@WT9=aKQ=0-L?otD{>az%rrE0WALRLoOhm(IS;m$QT1kHHRN%m zxJZ3|nT`_Ne;HpYh;-#bT5QNdx@gqC-EKCCUkAMXg8ga->jJQB45SMJR8egiFCd({ z+7z(Y7sk91c;DlJuE~JbENCPH%w@)7-_x}LNS{sJtOM9Eal1+vphZfnZc}ytO3j`R z+pOz#+Ud~5Zg7#5O5}r|?cJNs5cDLCS9y@Lpx2_^L|Xt~R8UOYf#fD2$7&EM&@SUSAJ70@PL% z{tyM+YLx1%01IxWs0cD{jMUBTm4-5k*(6w@dY`wkr^MK_-g*Fg@YdGr|13W?zWmy6 zIW+YY8K6KatlB*I@a;XVuJYRNh1U}ma4xMa6o8ZMV6R&!+h}5NMhie8e11?{BCz4>jdlY(DltP&G*JkZNGi=eGJ6z4jEzEbr> z8M1ipm)Yy$zuIp6i9_-zbE9}GDbeK%z~Y+2+|}hqD!(R9DT8bUo2LP@U0?iJUC=2b z|E={VEvcYKj#~NmPTNXQbQd&!1yW=^z1*-;lQl*Pz0LJF%Lj=%dr3e41<+~9BY%v? zc0o5I^=;1UG&+JV-wpM+9Jh_DG)w7&{ab9lfGg(IHDsQp4-IYDB#sBprdGcOR4WLY za1^d)d2(23;QgDMO1c+@KC_VSisUDMhMgp+2YPM8G040CrVq`IVNdt3yo+YG#B==Nho!4tJe<1Jn?Tdj&&d|C0ZY6>=e`r7L!;O#TWNM&twKI|fcKH*zKNo1L3@ega{hc%E3e;9lYmeby` z*fQY1d+yx)AuHr#OQ3gnMpSkGg-yYrjcospcUNo_T6}kovWmG;^sKr{>gsp(ptpL4 zFppe#{hI6g?wYS&#lpIrhv>o>%|l9m-^Q|XxWa4Lk*SdwI;dAYf6<#c+eRGw__o6M zQ1|pyV0q2oGm&!GV%L?T)KpQ zp5He@qnL6;V+O~yf z&((H1F6hdto5P0^hrfNO&3L)?SGn7OxBK6Q3`HMlYbfYAd-7U`TgCL^73Ha$Zx3cB zE$p87o^CL?%k5FdNPI}GfBLY4_c-m(<&@pKJAf6fOKSYx<($IpJ6E|ve>z+WgPczt zyS>-PJ6-1UYQ1-P%Bb5a2fFvGDYI%f(5HO!LH&lLU4zEJ=}nFXFQF@QX*25nuU`MY ztNxjpx_IXLVyXJ)xU>*B#47-e0U<~|ODs+V6Cn^sR!{uD7~7+@N1#NbP;LY_+~dRv zx9|pT>OzLv}FV04>?#td|r^hdUyEG&R8 zU$wLd9T@J+Pjqi@a=(yBG`u!3)j>|gANx6f^h6?=MYXX}5yV7H?}Y-a7Bh%9!YDq7 zBipwMB&dEN&T0$kBfrl3pqhU0&1TZn%_6)-U@d9=`rN(}8y6o;bUm^dV`}!=gZ%1d zKGBpnb{fp`>qRDR5^M_reevo#abvRzBR?V9ic#O3w4SSq>+qsxXSH$;wuU-L0ve?K z+2G3M0m6Ye$SX&mnSSg^NKOupWmOwBNx7MgcUUtP@YTsnM0NC|o?Z|3s}UJ4@zuNy z+`|1DtZ)mvDX)AA%cGH;6y=L~$c%}q-Z!Zd#p++FQZSPJvPrg!vS*}rSzZKfGfhQM zy|e&iX^xXp!CwH;fQUX;SMGO^YI!NecO;HWplC0+#x!duJMS@j~%Pg>bpEW+*0GbJ0Zd za?WVDUE%T>S!l7z>28aDm>iH5w8+#aS)_Sa;??g)9GV@(FPdl8Yr2lX%Cg@+pF<2UQjmA`8~U5 z&%W3<^B2sVoZO%5zHZ$(7D?`;uhhtS%@A%<4bh*H1Q#?iwiVU|cv1kxzeSH*#3SA^ z_{9?v8UtlXy@1o(AdZc&ETs#MDE|G8>8$NvJmMqY>IN57c7JGXk891|;fpTg+F$ZP3&se5 zt!E{hy>xhCBd2XP2~R1&QpqMBYXn5LUf!gdo;s0I#bxJ0P1Jn5HEIUM?e;mIspms0aXqd z0!SH_;cR~7llG>-g&OUNaN&Y5)G(wU&0f6Cf0&ZY?=gt75r7M`hXo`_YD0C}{!Du$ zkqlgq(yU;=5iq?l`&&?ljj};x3y&u8%V%+ini?w&fu{oM9n2i$#L}yfZCO^`HPo=G}U@RHPS` z2DY-`1Wq6Y6Wriij};JSB=MhhqoT4@;pT)QK0K!oY^3g{_1)*&Mkm9(fuQG^ykLrW z8I0QpgL!+E2D>#?6IK0nWjK6hq%~$3Ue0kWAN>51QGZ0 zGO5PROx>(HX?9tiP9 zuJ|M_3F`DoZejp@R|f#db81dVfh?e4_6Y89nkt9g2YbG)=Hy>QJ6B9Ss_90uel$V@ z>shr!6-m(GRAtCKr@FQk#)EqyF%}Diqmtlm<};xgo|-DmaAG709yjdi>R|oG2hW8a zwf`2lEb$h>7@z8oHORtyxMw)H^J{Rhm`IgWEnzo=;3i2zx0V*%#EW1Yg7n`5L-=z^ za0xj|gj_6Y{ANk76>VUKPn^q^?<<=hRticDG+BvJo_iJhHP=+x@dw zhq@D&>F2!p2*X|6zvrTszmvp|y|)8A`WEMQ**A7b?aWOIW0P{>*oL0PY}uoS?f7R6 zl4Uz)t>N$U>^DDC*+tl)Ao)94hP^+8*Uaiv-p5RRFSF?>3ANYrkIi(8`*HJm8%?qv zdo)5pgma5DtVyNN9lisCLT5k4Cl0|k!s2`LWK!tpAci1hGg9R_I*f-=1&zokr7%03 zi2}8S;yvWWdEvW>a6~AkGrM^=`xeVe|G7TbH@gU%mA|x z-r;?Kp<;S&+KR5PFO_#pOppa*u=fE9n?b1OHUKVcG~HA?RNC*C_z~;V`TTi1uS85a zqfXzqF2@gK|5xt=6Q%0spIm|q%OHfGR3)J>PnlWK~l%OOh z-g3aijZs)E`R$lVK1UYyQOA?$7>FG@`@Og9YQTvuhY&8?<7TIx7mClxfwhnwz1*6| z#tJg!7PA+I&M5zvYop#XE#}SP*N(1rAaGOiyh&AZ92lh2g;}`*sh*sp?svDuVEpdv zo~?j1KI%+Jj-91vCW4k8!Q}B2+G~)e9QFiRr^liVePIM=iut& zQ(|4l+W=3f^>kvNX%*{cPlVq{?^wX)pw)E^^3=2Iq++9ll6pIiZg&1QZHX|q1oiaW1MVt=YgVUx5ZxNk719u*o_ z#{Bg*T;JP7HG&IXzeENjdEVrUN2yw@-A|-tk{-u%K?zjA>k4i=bU(e~_>~%8O&OS= zt3{G8A4`B>J){-0nglm{E&E7I)ya`Xg`&Av@!n$C86P;Jo@WsFCW81ZEtSodM+z4<_1SmJmHHy8*hzyb;tYMLb102g8q@Pz);do=1sdjeroJH{H$L^8ib?#S1@-E zl?q&)`pQ9CeFYF)jS?Y>wkTUuo&syHPsk&l^LO{SVhyI*xa{q6_RilewCSlqkwH>~ zuBRwyqoM|1+Q_j10v8iW+$Dl?HX^y$ew8!La|+@ysU#Oc$*6=Q$>YY6d!~o5Dh~Fgre3 zqpw7?n`{>r5Itn6Gm8@A%J$fx-nOg$6bH3AFdX&pR*m$Rc#1MEHN8;cz|bB=YxIp; zYxZfy#s@YkvtY|1IbIjM8ml9X+A-UZ(hS7G3NUKQhhPM>nv1*AnIW*6V5JkMg|IXA zNwAYf!IiDybQ1-*n-IW)X`^KHMiV7RBrudTzgm(a=Tf=1IU2x;lHpQ8uzzl_MY`%F zL7tcG$eadWc$|{M!Q>9{+^(RYA;8a;5#hSuNCMw~mz7(yY5#&yBwI?1!IUX5d7fOA zO!!AN&m|~$835{EqwQoOjlz-f6QM<{kkoO+#4E=#ZnSj-9*(ddq_J@-~M@+jhjO$9wBS`iB)6YTtG)|zfG&H@1y!(-kwdV`1=Y(R=4i+BJQ zjliZ%rT=z7npBvQid--nblsAc#Yd zGDUODRYu>F^bhGaBPaxBln zmBCI+$)5h}jlCyZIsa={gEjmhULu`nCln(iwJ8ka$Y!ou^7$WS}BVlvE(0pGP>wzE%5+f(3#yOEGSE+zF}KgAy?*R9T5BX?V5uo&(l#a}TQD z{5ZtjMD+~8>~Sho2~}-Jn%9|P_aqBx7B2jp^&A8i9g@>zODb%s^VOs}YyrhLY6~X4 zGAIBn$*G#FsE(D&RkkfdqYd+l`htvmLPWMkLlrjB)_F?raKM+Kv{>2rH=}h5v*7(T zsY4mgCs*aSa1?2ZxHwzPGYKtDv^_lnp;@F%h@QNkAOkyyOp!OAmi0HPT>4fKcm8U^ z2I3_>5OzbX8X*2NJSjdUI$#>pEQS3=ZzN0L5T&QWi*2o>cM$wzA+TQ&R%Tao&*o(| zi@o=XJN!CaG|j)4w5LBFk@NkSXPH1j@5zBzSH<2oU62Yx$0lEy4nLRSSG{?h$yeF4 z-16Y<)y%Na(BjZh5|n-@)XIeEC58A^2!(gI3Zx_L1@g|&k^c3em73x9-N!)YL7DjQ zFWpSP;0jtnGgHuBT;%m~)i7ha*7pv3pLz zPo~4eue5&XzkXPatv1~DX5-ju|FIvMje}7~s@?cT##_Y8+l?cbE~~Iy6mxHciyZb$ z399Y2Mc(`I_R)scbWQeZS<`!R$S3<2p(%Eo1^fN^m`3al^P^^X*m&|DKmXswL9eIV zOZwTqVV!pohI~(&c4x+@3mHzO#t5qWZ#K6Zs28+OW_+f19er0JiUoz(z+6~>I2XoC z?1QupY7kjia)1m`QL+aRVS;wbfDjfG#CjYZ1~suRC$zc)OL~O3K-{0M|3`{&RuXXE z(!8HyF){~YsGtH&Q5pqkGOfSonF*e$bXhbAUbQG_v?e>GS<1r9fs9|rVsqqg-mtvc z^(tD=`DX8(T~(eSr$)c?4f?m?fvq3~eXixitm*pJf07v-!t*W^2(yep6>wwS$;AdjE%mB1w7)GJr zhEafphi&2t5mGCFn#)jtO_W>CiT*rAp2d7toq8_liDh?(DG{$UfUetCVN%zqnA=a02)mrax)Tebf* z8Jf0~Hg~=|n|H?RM)LB`)hcf1NvkPiLYupM^Svu$Kq(@lA|8=BWdzS-tvC*Sn2l$C;mYORS9D^r&@Pci%v)NUi~BRpeq#E^eW zG8aH%r@Zf8ZO#e{JR5#_xh-D$PDLw)_B(W{zq8}KMH1N5K7g zMD^#~N-nU4pVNQoVu(E}kqVPLA;joLgvGRpY@!}Y!aaTfa-=xxc~Mbb%&Rl=-U^|? zj4H%leKdg3Q{6!;=)WzoMHHSn6s5L3Dp`I8!_Fwda?iQ@l^XMbFekW^&!qJg9UqK>N1YT{3HE$A0z&8&B8}k3e9wtVYw@D6_xNH zq5=F_2+e%{FGBu6?dNtFw|yWH#_R*W+StfqA3wBK!kHC{BkW_Bi z(SP{kiL41KmvG{JBy2KC4X{@5YuA;bXxptp0!IeXtl5LNp8vB}Q(y|TC0l!+0YzZw z(*bS_bA{-8sr};O$D3RR&C+{_;%D>Zy>Xrro6j`;iQ4xoM!S z;rk^@(>>CZ;Rso5f-XvCHU|6<0WZM7(PJmpX=d;N zCZ)5GDw>4mal~m$=+_RbG}c+ULzy0PNzK3I8u0RHHt)_O-q3Ef>n5NKGXTUB_#NCN z*~K!%RP$v~n*{=n8#EIG=AmRlz0KBEZDN|Bh+#0r5N5)JiDy_iPVHcM=Lb=&T!wBg z=)Z@SoTbQhneb3U=}Ub;z3ie-Z13JEAj-2gYg!8k@ANTvB5I~)uadQHV2nP>6EFwW zW>zgjf9YOavgDbYC^fJNjBHH$Ucm(kN%B6Pid%(*8PNx|*}!it^!;O6H4Boc&qTX9 z*oXh(%EfsG4OkCC(c)y9HtOSD!&zxv+a)i+4{?z9Z?Jt4rYW4feYJkRLJn{bd9tpR>IL*9v$#+A2 zsnQFH2m|$I5)!c1^8uM|Adw_jux_c8TDxoPedA~<8FI?3RM4hiW;{Ja+`-6m*5fti zdTt42xLvB`%2(2Q!L_c_1RYfvIs@o4_XQ1JiSJ%&@F?6ZPO0KUe>{?s=$=HFzyrmx z<=1H0V}7*O9;@7T>hrBfXi5MUDDkmYf}G43Yuv+qos`|-sZtW=dFqQQ;u&m|Vps8I zY%$^iitY|CN&~T!!*5GZuzZ(e5~~I+^%V!S`~I-;2Bb@2=`8 zVr98%zL(j2e<*ie-EF$i*^zav#ee6k7zBbq3XM(!A|rt`Fe4`omXlE!nUhsS&u1{Q z=pv$wj4FC=LERN*dUhlXCRUSN46w`73$y7}>GgeAa$9J{4VQ=eM|%oJBgJTJF-|os zvo||ysA#0Jc&?TS!jQ0ml9Y$zBKgH)8)=z+6S-|A&zFane*XIXXZ!EJ9RQA0aNw1L zlOb_@;o&SlykpAA!}&V|jxC?y!skk-`Wm_b|AH>>_rb-T%CE`#fa!9;?}-<2TKK6Z z^g!?Qumk93>JFsK%36h#sM)|xPqalb*lQVq84ZOe(;M}5vKcMntlD6^;gP2J{X_T7 zW(}TTGlV=!D%!D83vgr4jhiNSFzIkP-A1ls#PTAWyg!`;qrJ_N4RqA>|38Q>Z?`Nu z!#$Z_P{PWM!X@#EiAou{u~~7g1@$@!)bHe^*Kiq~yt7yvBS9%Si_8cLIf)@$Dd~R_ z`yPgrkTjzD5)W`fz41zMuWtcTr>$qgy-~P`?=UnnMO^R=&>g{Fqj$NAw~D;VK$ZGgKX_Y%coP2u0)+-Cq6Df=iPX=L_Ug+ zI}^I zn~Ku{Ab|VD$IlP=0NNk`0A8R63=rI*`uJdJssHx`UP^X41kb`?av2yVQ<$bxR?VuZ zt*dXia<#Fkxuv!3+I2Pygypo?TyE{X0@BoI13s{h!7LzEj6RuePZJsM{=XOS7MGf5 zmQ%4p^_TJK92S6}SEQ~ZUNI^-h>dq+Z=e47Kd(~jIt`GjEsCJ;wd?h$_lSskW|2f& zh`EEGlNq&@7LVvm*kVoOVr?@N%$>M)2Nb2>;>|TDYp~NO{?cEZ(7U##{P!wkso@8U zNrA6~n|X!oIy=9tX4pr(Oy7GSM@S7R78tdr2{;qdNWRE7s5pH%nz&?6KcHXn}{rHTNEF=~g+q?C0 zvOp{F{y^WCH?wul)vmYtzr9=RIR5T8dSBSJv^`Ofv(Q}B}^lUYnERIjsMk>Z~D zYQP)0bD|sy4l!2Wf>iNpjU!V9T?n!;+>FL2M#DwXLhTM4EHOx7UWRLU8<&DGH>W{- zNX4x=+1HwAh(=TEZ1e&N{=aK&q!c1<*x*i;#loBr8Kq-}(gWN)%d_-Y59m)tVK@%h zmhzKITt1s0MLN8^Vn%n6LyFR&yhg#WhJ1qd3RR<|=|XmCzW7jfI^+7hRqA>xgTTu; zW;)M7?Wt@Fq>c$+hZ8(UE%te;_?bS2p1;MELtX>nIK=M%_W2#|P|ExX0JNy$f#u)pw+Hoy@hk?<&wR4i;HvU*4^If>WMFD1Gg?&ObMg+<8UNBhW-kh63` zJ?BUx**67OuVxz|B_XluJavOJU$~or!a>bVfL)iy@I_1)R&??XVc&FBy}ojZwb2k? zn05Wo!xmzUgIF5D?yLHq@S(f7%-?VrU*?6fjNmSq7Qe>*T7yw7o$z*^ky62fL;$zW zA8hl`x8dL{n5$7ziAR)&YMM|frg(Q3e})ikw#`v6`@%g2zmL_6E4a(y=py{3Lme90 zT9*X)?Q9~HkQfH>ih~SY=3Sg~+UOs|$xpZ&34|xrwcFP#BtA{=l=-xNbb8R-S?9=| zBc?~<+*ewi7V8tVq2KL=wh6YguoL#CMeu!#(_8!=z3(JD6ZbtA-ZG2$S*zek+$VPh zw!2jaFCt`@`n33P_Nu$H_(8^_uQuob`?%bIR#cz^BXmzvXwnh+Li&3)TOS@aboL%G z1@il19>sP#cl(Y#|HK$Xz>?)3z2p-WpX=4e3Zo5V#t{4SthM>|!sBi1#P<)u)$)^1 zTJkOSIGq)B$g-9&icY19a!hR@5#t+~V-g}mR^F4!65st&kkb15JsRPPdL#RVS>lEc zU$-R1jqDI&Nn?D>c3!%VS3XN-+RIq`_bZQqGY%O>_}ZP2L>@zQfXD#o)Z!5+8Wi+?b6*o&+$-+QV^!L}zDmNs%;j zDfAs12XXZExYRFpxZ8(3b6jUQwGM?E`I7!PsYD68@_AY0(+~S3)+G23?-{!9G5TeH zmZzPGWFF$gC>r~%J`Ha|K`MWvBxC_sT&42ho1WqlBB^`;$k8?&+me7D*5ckD&Olr| zP~#)BfImsf_|%2Z)h@AD{E)66vw96BU^wPfS?`j@EL5m(T*EuXL!i~mn#Y#V#(E>; z3g1_(T%)kE@DYZ0lFijd6j0%aob^k0g>^?6qliLVx)%w?BnT9I}jeE_cY}8euzUijr z?kEWjuu<-2IwSKD8-8htDg6Zkc|rYrQq1OcI(Bl;z1RI`veHc=X%pR; zCrsgIW%F2HN=g(gFn#(p53;x?a^POYbRkqSs`{pDh_VTxi(XhwUGj4d7>&9hf=cnJ6Kd z^SEq$JMVbk;eeNCC`Pdd^0LU~_eS!&d3HK<;GAFWk8ygRd)_J6yeA%i?ZY|0?w*in zK=gGf{?w7aze%^;eu2vE9aVST%JAD>m6_=sH@&}=leqm7E7mu;-}Q5T`Su#&VBhqS z`=5(%ZoeYt_TBv-*!#)$Yw07@uNTt4RQ=h0LlWzsO>_NPEB|-h;b8y#<)fcF!11?Z z8=+DOAIs*E!+-$G;(@;C8GAF%h7aM1er`I%)*F7`F#8)nS;e@fK73h%MOqpckm%Y) z14AyogvBWt-#qo-s^|WSc7X}T&Iub(|Kj76K$5;mzn0C1@z?=hClb_k2zY1H(ePyF z-{-x?w7FSA`5Phq-*y9YC|YU?Y~@*U6Bz1d5y*FJkIbKzy2>xu`2O4LypP;=)if7y z%S3U`?i<~0I2Ld9BJQg3TSuiI(zoZKJFjJR-kx<}j!oX2z7}RbdfJfnc+{%FRn<3s z1m`YqEyd@YqVe+vlg3#7QX>{4?j}_}z)aJl%l92;m@^=C!N+FUofj~iUY&6npp@Gb??T(MUB5IR+gr;nxU-j)g;^r?Vq);BG3wN=v43?4R{! zi%xjbu~a;hSHXk(pkVE27y+AyNe9I>s3Sj-U<6d&p2xs?7@D1dBD?}FpP`dLYe*to zmB}Cj$q`JU%URLx5FQJfQTcduqY4>yIw^m*1~`t%I8}qVBqQ}P;Y=FEWxhbX{3n!o zL`Dx$Ab%Bjkx<~kgkxE!1AB5rW{Wl&AsYme-|=GTOW;^tb~fj<_7cP&;dNx|Oe)ve z>PW7KV~l5HfdiG#jLh5K1O(YdRK(>F+k_zLqO0t^DG%Zu952?ecTRhT=Vz7jUrdMS zvX}|=tdowH&zQ$xnV=(+FVPXM0u(0o744QOZr`*w>y0m8Dzj^6!l|Gs6K+g87j&e| zOTA>7n%vG?J$hTlK?uEAhlz7wRvefRJHEHHys-}{%8dj2s6*zJO6|M|18&TP!HF;- z3O$`wz93sQRdf33IiNldyrogKv7|7s%o}e6Tl=a$`zT)YNt`#Y{`pHGskD0gm+WLM z<*zIYv|#c1vINevpfVN`87Er;P4u!*ay1w^wH?zMDNPyRe2v_B5!wD4rQbDJxmvtM zt%`50+WA^SS*>P&t@d)Q?(bS&1JJ;t&d9gUyOeLltSbK|Z#(EyR z>}&DImqiAc!8Y{pg6{fIJKdF8)>Be2e${T(=<3TaXp`=Yis9TAexx9(5&Qd89r=uO zBl4IARASN8PLh-)TJ3*p$wC#;kQkQaSxT-d6&vI0#Hfv^O9#P=z-lu$JX|>K467(E+DtSOP9XdJ+C!v z)T~zncU^2o(uz+Wd_q=_6#CY$|99E<`WpL>o5p;}F^l8%L6gv(^AIDZt$MRHo0)&m zmhD5iklN?J+HAjkT>f*jdK#+z+?)&h z3o_wl-?j(EZyHu_DN>w>Y$CM%qJY<&Mdtf^S#F?53Dj2J0%g8J5O{RfD~$ zl=hO5&INAwL#8_O45%z5(%B+XUps&b?!Wy9QIdG8?d_Fp_J4VQy7!kGP?I{A{bW88 z)dDg_B7Fx%k0?Ji9ei3o`2G&c3&pz;(DVPZyf43M#vNgj1S-9mfNOtWJFP%EcSIvUvfJ0x{5Gz z{Xx5VL4O^kC!2EJGGPbOF6WnRK^RGf;}tit!C4sNB2l^WE!@b9_)5aPsp&4GgR~zucdB5-P zpIPkeA)d*dl~mR0T{tf!%A|iQqpOzlBL^VY73j%V;7iq0)t+hAJTu=BxpUdj(Lm&lP{fG~cO<8UuBqHHiMsVqGWtaGw696m zy$ev&`$ksrj^Wd_p`DCyTm2rCCMvD=Vl~+e{p5P*X=ClpsrtvzNi&$EmB=ka5kuBw z4VxY`DrOfw+zm|R;_s_PjnbI^X|sHe-W~Jdm6wb!iusQ)n73q@Go*G6C>y#cg!G6; z`dH0;|2ezsDI}7Oe63Jpo&}w?0!lYs1@bcZg%O`KCYapb7Am;yKYWb{%8&+>Q1hQG z=6_LD(}Ja{!UvX!bD*#NOnH8eyu5etgPZ5YV3cV(Ri=M-?g2(=k=vDO=kx4hJX?JhXT^)JlF*Ypvhlg9{2|xQ-OdKASD-zX^;gZ35>M6J5y62JT zu~k3j0w*g(IQ=hy3oftaKU0NuX9shCp$2>DRi_{8=9vGQ2%o=zN=qCKvsc+X z^Q6{fNu~Yjw%@Tl5loxrQRj10jhpghQ~zQG5kc&lMb07fjJ0|cH-p7hNm^;7PQ+F6 z5B*g*ey{e}Yx;lx)(AmoN!waQ`5ycyA+djL&6N4XJ>x7Cj87j<%JM(_Ph;NVg-|pk zeX(wxB$Re^kxrdBdkyONJMxhFltI-sU_o_tfRZ$qmtQZNvTPki@q z_{|(;z6E&JK>VD>q+i!XYVROQv3`BeZar{WZ)CG|FF|U#Vnc(_?oXY#xy?DOUyVF+ z?plqG2iFkwg5~zAjbhCF=9;_;>tq9w+D|QZAqNFf-M64!xAm)Ver{qS^0{}K*k6Ag zTaD6Fj6V43T-iz4X%X*2`IM)RR|fC(-Mu-YptqKZ&Uy4+(0?|jZRfw3=e4(MKK#Jm zw*s+(q{oe5=L40;4>mi_+^YYE-dtusZr~1q*yrs;(c%Nh$b{?Rm&Cu0|Ki9$w?zs| zKNo|h-ahv>%jB{N+_uSU2+3VSirDK;MK|Mwd+o0yr^rvXe+-;-O#>lYJ&~rB zwk9mqaR!>(C35p9k}eF#t}z?|B|R`-fzpM?E+ikvzHsVn|T zWzUwO;G*TeLx?Uk4B+k zs$5!kDxQ9$0!HhtY+|6>2huY0JBw5s?(N*4`QOAgb&>`=&Rt4*vhu9#+DbmKT5kO6 z-TMz8KW!EazUStB+e+g;S$moM?MwDgW00G%zy3{@ryS+6w>&DB?PH&`)+F)93_Eu|<3WH{6eSJL5 zz(ylT6jh6RM-a@S5Ju zV2m7lYNJL(K`wx7Wa7+qj%-`%GU`1fRDbG!vj4V*D`FQE^DI1rw^kg)m3$Z}v9DM~ zemWA8Jgix$HOIv0`~bpar>3ghCnnjq+bzs)gKx^>1zEp-CMRl?b(fde9$2!kLUsPm z)3>XUpJT)|&rTkYzM*_$H=&pH?7h|Ec1Yva{o#}qbzQsiS(^3|GkosU@4lU#y9XX; zC8GfU<%uMQD(>9nga<2=Ul4BJHAhC@eIu>B`G>+H z2b2El2YgwmSl+U+;Em%%>xXSZT>nfuIt{W-2tK0iu%KFTxxex7&L*b|0? z((li+%&OG2`v>c`m*azM;Gb_}J#KoYaVCbItw_h(JZDl+x1JO`+_J=t8+`hw5_8?W zL;VL-XoCL|p1<>F`^P0=gL~8Hf3AF}f^+GihQrkbleWImc z1HXy3cT~phIAg@>?cS}Y4PoxTJN3fS?qlzKG1plAqFNTNi*8!(Q4glxG8_G^nbbF< z9}GSzs6jPJ(LD55&-!c%ncAH-91*rjF82=HK7Rzct16t~T`2vHIG3d3JDf40Rf@e^ z2MqkBV90lCi=BC z&T7yOcf8}f{JFSS!XGFjK!VIWp$PMao6~5Qpl(P(gu>Y+U!r37+9U92bY@O*y7rM3 zv12=xl(59ANcIrdP5nv7F_mRA$Pfc2`VgP(^W8jPs}Sa%)yMbRsph~*gHI>q$^)YF zKiAC+6rgpuRH0MBb~c0=^oNcK6Eo6??SQVF;W|h3L;AH9$*9^{RH~4H{^b;t+S6$X zUdmn$41~-f%k17EtGXIjVL}XQuAXp@vmcRfL93AU43~=V&Cav4yL!0Zhidp_5t;6uv6Up=R$7Me3!w87g?*+ZfWsP+Kl~WW6G?`1XdhgwpQ171U0T4>TXP zsy&TS0;0??ansxGC`DnrS(S!*Vt4nMr~`_lp6D%|is6^R_ch9x*W71rM|~r{Ila>w z@<7rj-qQ=Cm2J1Ec4ujdVN@yq^sTDy=6JmJH*{>}XsG3#<=Bcwk0+lwVKbktPy9!b zzin#=;q2?q8FhDY&WvwQt2FKLP*!1oZYhc|!o9p`TdpqhvE3uC-mfOD?AoH|{>5PN zi))XR{XDMOsHi-RYk1{&^R5kCVBdb5LNC9~1S(&C6hefJ1?O~94qaGsZntV1P`ls) z(F|wzUpRuY`kTowx*_T%EUBG8TN2>STsqF7XY_21?hTl8J-8;#x!WX&QGJnl$qBEM z^s?dnt|-KBCuMdPha!bJFEJFBG{zdTKNeS(gmk9KSZ_CDk0MtumZtFyx>cp`2`M~m>hXzmOM+ldQY@HM@_qkBvpse~VVCQ4^z~%o; z6jKHoV7u13EMGv1e1jV3CC~TeauHQ2>1`#IcZ2_6;B3x>(4g+_-NC09g)*w-aUWe6 zf{#nF3FZs`rFYHM@-4X=PW=si{}So?#xh)IrvLqSabTPOn#jjd&^n?{dFt8odJv#iISZ zuvupq?V8`J#j`02##-`>?S&5`k=1v{e&Ea8%sdZU-#1gUVN;x1bNO|c<^iHT3EA6G zFK*`#U<-Q`+SCX4!S-&ce9wU;eNq9nyW=~>aD6ou@@TESbt>LKg3ZpFQcC9TTPUqd zjHT|In*|P(uoJ#ou}a&D;?n;n)n*k(ufB7%7gB5RsYGm@C1Unp{@33x9_)j7NeZR<|CJrY%L=}_qSNfUs3dM)_rfshxL&9j9y?Wtnnr?}= z;3Bd()(aH^+N(q6vp8W^l3=3-sy@l`C(TAiR)7TU`?=>)xaeLC&1&^<%uq_chkEY3 zOTGdA%H@=YHlpSw4j-h@wMQhZUqc$u@npdMcDKJ=Qfk#W#)rFe!ZHsP2?9@Rlq-w( zTTr3jh2rkYK$kuXjW0R|uPdL+CP2Az(vV5VqaS-ZO8EIh z(U)ZOZhDKpgb+_65Q9X;(Qv3x-0YQ%eKFu+d?qZ9DVz(Hh)hUWq+O*bJ`Tm)~N@%iFYW)$NHRUXGE6;KtAPzL#khNtO=;vp3h z?T0BOR7&wnfZ}`c(G7G+-^CDfaqoPDvMgd!U5Rm4OvW?aYD0DPZ#pe+4( zyyRn)PnS1BAAgn(WQR^diI>fNs7jv_&_|69k5bI!m@?B35_2dy|6)^8H}e-$&}vQM z@7jGCvLepk6GNt;UnTq}952tX{Ig%2Z9wsy5MT)5T&WLnHx`Qu%~TVUVic z-6rv0=Fs(@(3?nv`!Bj6Ls}Nvuda#$RIJJT`?=Hzo707F_KPZD7`tsy*&4;Pg-e3A zum%$U{38TRPRo6NQMZT3VH?s*1VXUpfJse$fFa_8YTlRNQ}0P9Q^|D=#9c zF5;Hc+)V3}rB6z0*Y4lZi$oN#Mu{=sbA8B{ivSd(NrK4EnE|fk5$jX2xjvhfm0Wj8 zR)bYA0!uvDHC*oI>=K_1IMhy}a_2ResFi?bwtG+fSRS*bG>*J{E` zXb71{u(PEw7!!ps%~@S)lzx$tLy-wQr_AhD8ZSbfh(fEJ&)?`FzCGt`+Gn6g)5wk0 z`0!Z6?6Yq17ArhoqvJK;ipEQ=qP|I}D}AXFw{07mz6jID%V?_H|Ju^2=`S-B?{gMaChil97fzt(FKTG?({100+WSQB zz|=}c+u$|cc7Jfs$`JnV7*-`M6DC~`$+{i|A{yzPQC+I?O9gkFs_CSfYCEr;w7m6+ zj<7pYym>b1K2fQ6!n}C$aaWJ#s)U(I@1ftqpHjeaZhT3dR>v7c6RnPlL=XjcS;rVY zwnM5M7Xn|P&O1e~-N1NzK^LNW>%KJ-i}-IF$laY4cMdDbLN(D?6|F(MTr=|l+Dz{7 z4)k{_A%!FyqkzVwKW|6Mno`XHv)Bt+f-a>}g(%p9HKZMPf@Rv@(O7ld79)o%hVGDQClUYM4 z+!GQm97;W=!Xrw4Mc7-TQ=yl1?Uh*D1GW2K_X|u8lMboGs~Q?di+N(AWSav?u~Byx z;!Z_XL+x?TW_6yR#Fc{8B<4E8t*@K&u{-xg1il+lv39aPoowrWjX}y=dlOLX;T-N5 zr1ow3_?h8Rg_s-27f3a$s_o65ux;USLv=aUL_B<4>zvcggo!j3@Si*)-bEKlp8T#4 z32qu|k?RYHefe&%^0T`x7GrhDQ)7aqqq^Btk-O z2x_US%1acu+$qcTwaJwFP(PC^7WPlUqBFcU(A>vB!l_Ugaq3`o6sq1js=4W^5qWI6 zv*q!1vS5C~M&tfPdYXU3?mN8vq6fFLkJ?~eS0gA^v{~HjY_Dh9Px09j5&n1$dpji@ zC$&$Sjh)Cs>A70Pg0JqB7#@Fix3437|4b*M@n_%H+S%;yrFYg3biIAd7WX)Ppzx~? z(0%OPvwJstK0W6VXS-Yn{{M-yB@3Eh+I6eJ`>*fhiuGyVO59q1EEK(WuH#(j=Br)N zmv-&_@9*bZJxgjoOJ=Ke8)1a$MDSv9HEr1{;hv>Hr70t|NxM$&M7zV}jCS9-A|?Dr zBzRYbVoAF1Ys9 z;4WdeiKc__^UTs!3T*o>H(KeZ{ ztbMEaPH1vETkZ_vTAdh}RvB*j?U47*0z)BO)&X#1jqFUyc6v9qgSBzwKv^NalfdvL z1H8^|@TYTG=JvzWPFJ?5S6cUW&J|oY$S|;>Y5;D|PMKHlS+(PMO7lt*k({NGuh}F_QSpV!1!{wG!1b<<^%A`tn@^^edu7*+xQfQTu zm!plF6jE{=a(eQy6C}-MrX)Gs3-Rt2F(wNu$qbvT2aEL9ditjO&!axWWgk^tfs8@* z8+V%nQTbZ9nx9dbi`7R59fYKze8#+d)uJ+3|=5oCX1U9TYn&G57t6H(ud@Yl{ z8ccrYm1LD1vFCf#^NZKoT8-}*JPLpG9i8LQ>LkGw8s5F5c{9HquCc0(aa^yL8QQM9 zZkC5EzOkUdSq@3KjZ`h-tS4X2oRv{7xyn$tqEQ)(Hc?6oW;O&j$v1MNzg*pOPE3IU zDMW4K$N5m^0bjuTl(-|ZcS#3vw?+w8_NSx(M$M7JIV5N1*ZwzzSGr>tm(4x61D`-5k zEwa?bhyV=1IguVEjRzbZ^hq!w76`c}zv6w12}W_n-1SgRF_0&=b>RgJ?r0Kbouz^V~To)Q)=NKXaBZ3 zN;p~Z-Fm4jBUKYr=(EdlD$u9Kp6m*-D19MLOR1d`sUOm?w`noF z2Kjny7~*x4z_{V?j$&bmIVbGtXs_1rs)r>agPu4+&Wem%NE=xjno%!BDsn2HGh_>u ziHXvB<#GmEE&5Vk7s$<_Pl}`1zb~M&pqcysy(q2XruFN64e8!wApf z*>W7a0!L)lGaHF{YDFZZeYsRSe8op$m%$qQ3kSb?) z@o>?S{-W)$fa~LdR{lHo?TK@DOMnLJ51o9rfQe?)cf-8gjhWhpjLfg!wnSR}$3sI9 zG9k)7l!_pAxn2Z$>%I`SK|LQ#Kg1PrN%!}_N^~A0mMiG+kx2bbsHMy1H^X|OwM9FR zzf1P0>5Ge@vw_NQoVM!@+GQ?Wx@)gpB&<9BY2Zu7p$F%TiiE%IU{sjrgI#`e7dA|y z@eEo>#Z?2J8CTt^$GaEf{LZ#oNEXQ6S7tN(5M`Ef|MNimiCs}xVL(A&h@T*-Og@S) z@>2gham$}m&VN7W&-HJq&HbEx@b`##nlF0E@_3=>@0S|Of!(Wf$IE?xzqX_ge7I@( zYwg9~Z{2eP`(bmxUjO?0ox(PFkYM?HgYV?WgyrDpyt&_7S|>lLXLbC~>4A5H#ER$V zF3@+qN&3X z-```)FWpZ#6F45vBDl$G7Gso;0(Po-0627T0Tg5uQ}g&FIt{0qJ{lzXUic%`onb5_ zMOD_z$R`5_Y`cMejRWYbd=nLbj3}cQ(OKOgLNN0@S%!y&TR>-spuldeGxAa8gybA-e5M;nNnR7*BCSvZps^Y_%2^mFdivo03pnOH z1_&e0p{5L5L6*x+5~(Rfs5O%q>bFi2p0QlupTt?!`(j zt8PXP0h$BJ<=j5eY!6KNIgyun3-(H#j)wr&lm|)4)17h4chD#xhV!3hYND_Z6&ghA zRHxY~Agvb8l0ZU4P9-adf-XdeR#3K6*!z=jW+nBW0v!{!s86G~d`DC0fMaH&aHOYr zc)sXrB6Mo9cwv=qHW3QbjeSQbTI?ywU(aP*2GO9UFEvV=TScgt(?Y1y-Ja49tEKxt zOAmO;K5LY1LsPzlm;ERxJMJm_y;}D7XBmk1e;7tmZ`9-*U=`8Ojd0w-r+m0I*Qe137d0{r1>hCpzlfNEO}Kqu32J{~$=w<02)lOw{%H=Hz9xWHjjy7* z_S+>Uqb|RsI`FBx#kQn35tB3>nTa>b66NDBDg#W$fbayQf_l=J>=s{V%D551A!*vA z^9A^Q1e`%Nq`;HQb)(}K>l>*!qEQu2Uawi5X?nOZ8Ps(AwON_kR7J(Dnlg6%1H`uj z;T#?#oaL_!PoFkZ3jvm2V8)`l#RG#$bzn>iQv*-twbHKAZQY#$IO+kGWZ3(NHl})9 z4i--pX~uz?Qi(|lzwQZX8kMgB!^c{kg}_c$)>GleG}Ng&B>Th(=sjppCm>Dh!*GEB zuy@Z(SL4qv@FYpxzzkShC1oh`w2wtxmS#Gz_Eyp4i!wEg*EBV%)8GyU-8Ez!ESE_% zy;rl2SAJfFh24G`SchA43|p?ZrIUcV#hv|p670cS0WUghWnWoVC38KwGpHWG>;dJO zpaTO|<@AEUBU?J3p$E0lY2T%l?G8jd4e2i6(umgNPfYq<^c%E(H;&3e@gILib} z)9w1Z4anBF9h_E>VOs=DLc%VQPwH6Ed@ZHAfU%a-NQ4xWWS$rZ;cMxvKIm_dmoAV7 zhGQ>E!eRXKoqrV?(kL>MQm{~ra;}%bfFZx}aeP?PQX?@UmH@g^jgE zmFrfsCmpYse0?=7n(;xskN&88P**JtR7biN+zS|)mpea%tw_UeY4^o~#;U1f=Wa9e zeE<$_QyM4@NvHQ|-6yH2CfIM_j~Vb&6HvcBkYqI>X__MT5_UehhkS|*yFdq|dSi)@ z6W9|xWt_!2hY~oEY7PmJ0dgP0xPDG39M@|)K+m0q<|G64F3?#1KBPHgu?%p|tnqO% zF!{rvU7JZVI<3O34d=#lEYdJC4b=PwvKlTs|DH(dCsq38Y?}goW;WK+!17a$p}l0m z`zJFM*v5)LP>&VsubUj34nv`RBWVPUWrBvg+0=K%83RA&s$cgVqMtUxK}9hLg_rQf zXO#x#-Hk15B=`H9#_`8>)QlI@m0}OFcW*D_xR=r8P~Y3Bd$6RiF>qaV*D)+wyN>gY zx1}mDB+YdBmlelMjp1`|26w);zVcYGT$VQYi8)YN13(sC6;j9BJ_9|9{aQa;D_g+f z+2G3QfhHH&K~j7|4y=_~JF){q3@Z=P^`=wESs~dIiVJd06e^}aMMl0bu%ev8E0wlS0 zIUPQT)PXHb(GqpnQe84*qW@Xg8|8FTVjHBOZa+h5N#1A#IMh!z$bl=dsOc2Y^PHBI zG$JJK6-@l#ZSDZeXo*QI?Vm3Fa%s8#x0?MB`jqW$2rXse?G%8SrACE4QfOkS7`7fx<(#M?ahj{27~=3a4*55!B;hPfPhk1bL`eB&Yt>_C7gbviO|g1 z@5XDpl|=k+a1;X z+0m0PT22e0OTS@q$gP@F$INVdtL}$KQkBggNjv0|_c_${$P}fnd2CnELJ2RttVe9q zZM#+JGIDN#ow1;o;A?>6TljmNvonT#fvj_SOb!-5RPjF(HE2YeA{vl%o;&=Op;sOOId@ zPs#<sRS0W}Lw&ue{MN^FC)vWQF@Dt-BzHC$Pr{9JkLEjIcWWjQJ)j z^8b8erKc>|WHas_Y}BmN)z2mAcIyy5AU_P=kryaA5BI~gOSd)8)UFL#f~ z)1``Xd}=zb1y_v_*JD7<09X4HgD3STW!h1jWNJSb?MnmU(iHn)4&k37EcXjJ&EbIO z{^lGdx_`WA5W`5On$L$2+9d^HvAl;4?VI4+8kT z{!N_Wy_6IGFT`1zWJx>>FOeXV#z`y?jOB}Ck3(dO)OO%OnL-4Ccqx26I-$Y~>Ls2Y zgOl~*>ijR_EUP)8wU8-SC5|nwEb~>`nYXxs#P$SUFQuI42`qCXgzebuRvP2KAV-6sYf6++aVztvL9uhB6Hn*XqtGqyc5ih2jV7dlv2t2Dl$0Rl>Zl>*V9jJ{biA zJ09z1-c`t2vR#bzf&RdxTT6CPO3zK`x`1ivE#2}d_N1)n)NOsGhhDmG1T6=Di|)k} zSU&p$=L@EH1X6wCe00GkeCFtwg!ORrVycAaL{J=t<|0I~5-LSAX130#EvP8+qt5}$ zjw0=d%+qsq=(f9XjXcB+&7?Yk56$QHoQTQvV~kag2l9dY1YAA_hm+Z+2utl7L(kNT zZg`5k%$TRe#}c1U#2;I?y-ct&?#X$OQ@c0;nn5cX+@%-13qqr6f*oWrvlz@>Wx-5u z^aouJQ65kGn2lSp{XEbIo}mS-=mWhiOi_XiNP-9B-CmWA7dxr*F=D^F@Z3$#_1!!< zi%NS_p6_j%>LLgQAwh`>su)*e$J4vYx!TZYzS%8OSL!l^axoae9$qO^@Js#d`qb^- zJWTAn!U>Eu>7F#Y+^6nC8*5LUkdW5G@NN6ksohX}{Ddc_tk_%{Y8!7QHQ6ehmYd(5 z?oz}4c)Dv(PBfL*_!Y|1U(uo?c4d1)W^}axcClzg!vq>D=wUe&ynI(iM0#3z6$j-L zgARVO_frtRp{ehtwmsVS4!tXi^g>_GteJ#zr|`4%cH|3@(Ug1G(o8R}p9(6fY#w^E zXTN_?k`Ty3Gn0-M9wts@iQr@-GxPOfOjQ+K5Gg^vlZ6A+ifJs2_*D!UB>us%>pah{ z>*e?d7pogp#b3AjU{(ke*?Z>`^cS|`5+*JHlsGSti%`TjS2^7Tu?JVt*8_y6Td(_W z&8!hF$+6sGip^Q7&Evke=u^hur`;*%xW#)$Q2N& z>+2-Zx_AA-nB#^oG(ms86q$8LC8!3q^mt!=XPUJsjn-1J8Q$1>Pws|Lf z6sqN0>wGvB`MqFKzwg_J$Di=)kaI$&Lr#P8bfd9Uw~pBP4S~T?nflA1SC@3Zt>Y2r z`wSsWL1p?M(%~$;PGA8=3e*X1lR(gYD>oDki#cHy@Od!uo$;_3p)bT(ul|PN>csGC zqjZFrFOFVgUDXt*QL~&f9)m@LZL|{uWSPt1vfNk}r*g31JeR0d!jnXVkW)k{ksr~%sq}7Q!G48@i8a!KA#vI5_&ZByc7TxT8 z#&wS8t9v0B;>b<;Qa(;3-c!xb;j}W_;YB}0(Aq_9gZbXIfkpd%ot;Xgx0^XFXbGrKQPD_ zPr@OcC(RY}Q!i!FHg$dM!2<(+1t(c6>nL+|EE)krp5Zs7`M84vyjj@Slnu}HilGct z7gMhY8?cHEDFt$DFyH|m;ZnOf@9ku-Y#+CW{!59xNPWS-$Z4fFlT>TT=4{*qcFKd$ z;H)V`_s7tpj%Jr=_D`*J@5q{D$)QSmj3N>qX-Ln!MpY0KvmZ$|G!{01%Px#YlKpBq z1Fmqk@UuN|DHc$`4`0}-yo+vFEq6fP%Dfi2k9blKy`^uG2VPr}(+nY-NZ!4INlOqs zHSRi$3!8aGG$YzEr-hHfBW|lE0%Ct`Y>boeLAXV?+`u7+?`y+b6G(*XA}+P`D@Ff) zM@z~I%Y*xqtO5GNtq)UA8p1s=zyNPdQ|tucF6cRaYg-9Xk77`LkphEm=|oiV3D_aA-zRg=j_c>)&6`+q@qTh zZm$x8zCBk-fH#Sp&?|Jbgz8VO)Qm9Wg02eOhS}xi-*P3B9_!`j!jEgM#Il*ya;rAV zvLu>LQ}ytOl3)>I1IxDE+8Dq5aHJr%Ax9;yT{*^`W3xJR+AZy-vKr?WA>k-UEGJp*_;=}*b^Q1 zd@a;?TQk=6%|)*-Xx_Na7gi)t@eEN$1fwJ|ieRo@jIdnwvvht3|2sCBL z*MO+uNuDhlyE>SY&A!ntldi#A>ABkUGn~W$oo`{wa5DYjxTV{SvsiLU%)mTEKJOY) z`$B5GYWV9-A5-sAoLs>5DvP*h@rU@Eahh5ED^H~RE-zQ7N#-}jM(8MbG}it7u)f zo`KG%u5isFM=b!V`y2jjCtS)!2gnzOaQD?JW~&82m(MztBvSTk&qZ%xXxp1XMGQ6=7w_Q!S<;EIS1jO{P1|U=o3P~+t2r+#aZ?kuB2u9=Tpvx z=0#6^K8vmP=jYN)lSf7#vSek#AzSQs^`u;%12WrOa$GT>tK8&!LGm>*f*zQuMM(%H zI_-eJWbyu;OTfPF#fYVtE<#Kh8Ns}cJls<6ln*UlkiK;j2dTI_L;&Q^`W5Tmh@+iE zdtv>Qk^B!VxJMOh<~*Gc6BqvI`=fGpihgd99#7=K-Pl!1i;exRzj* zSZLZNqUkv^>W4sn%cIlH*>T}f!U`vz0amImUrBMSI0(*k!?TD8M@#_pK2UqbB)q)e z>m`vfVxn`ELZovns_6h_Dc{*IZO_EYFwp@$0CGDOU)DDr` zLa}m=S|3(QWW$keV9pW6OY1+2uSoablp~K5RjmL8lQ2&&^~+x2 zhghJTYS?Q?F2a&h<$3(LWcTuA&se$AB|*6w_+lHCdP+oFEn<YlB+r&473^1s zYEJ0+x92Lp^ZTe;w6>h+*2g*676M-@QnIP1#_1Z8HFQ`s?<{+5@qx-@ooIp#S>#Dq+Y1Gs}Qzm3_YixFtY*Ar4<%x&{9SRE5B0%pe)Oit~;^6c;N<5Hn zARexePGo!<)-U=VPj8j`k~j2BK_DwNU{DK)mVrB+LPW&oY;7EM($@ z8u>Jj+MGJCD3(kCPaj+pN|E@s27Uemcy%DQQ)J1MQa%g1!B6GmCl1xhH|5KNDzMDC zox`2-&$7)CiOxU~KkFA^dAzi^-+hxg6thnGL>AGqW}=+F(qT#Mlwz2V_FT=a#4BFoZAOnRlX%ENXD|P@voY$jG?L+53L8BVoKhM& zr*L8y5ZyU5rdZ2CFuBc1vdN%#eQKQ`XHnF?;W#XqIsUeqTBXE{WLenso+mv$o4nL6 zf2fa;Mb;}Wh=AMV=jX1d-z(sf(unN(%sl5b|Lg@0h?tx+ZY+@yfO@}JvSER<94H1y z0Mqh(_q6|U5nvhIzRTT$cfGLuLVwvia@nV3*>_;s@71#ZpXES-=XXCc`)EJkHmNjG z(M#uGmyP5Lx%1qkQe($wVbfsc_JHu!M&reDguOQ65z7ieVD;i6B=Q5>b7zF)Evv^3 zu0wihv9t-gQ@b%}E%OhssNH{K{qlmsWQVnBqaV~NSJc%ezts;2oq*sP@KtMohwI7O z9LVtzugDgCjo2l|s?ntsg3Yk*T0B7vI-FT1Zk3yCxh=z-AMXu`$;Q#Z+Q-=$-HATm zW(NnLD;qZ_neuaJtFiZ?5lVh}q>0qKspN-`P=4`C4X=h404_?V#64iq?|J;44p(P| zvZb?;hbucsMA^H=w~=tx#&(O40yDkq5V=x^kri3J43QrJ0%&cg_a#2=+6VUQS5$Ni zT&a+cMN)(CuMDxjS7>?irCiT1aMHISJviSnhbhg2b_duWx5;1Xbxr#{A|COY@2{-W zvtjTHZ6>nZguu)bWxC(Jlh@3cKnvpXci^8XFTLO**ULel561Ed&jRmm#u8L*8b05P zyTSWNh3?UJmL4ljsbCP8(jFT1{(kBEh{1oAP)7ZIj}_dG(b>jb+m4Ug#{0kjFO-rV zBm;oXfTSR%{|@h?|Bn~+zoV4@n-{dSjF=}#CjHOheWxg8M`zdL?w;Ph{(;ltpP}KW zBco&E6O&WVrf2@k3i@9tC2f7?#s#c>bWxA*!>N3N6kDrp&Zk8A32M! zIW6XO8x2;SDSQi$j#ddpp0XL?4?I;xI;T5Y&>@;w;4P>5J<%fmR1i#g{HH)l)-?m0SqowGWucJ}sr$c@o^%e?53W%wIiKy?0ieD|o(&wR#nr&TdoUZB3c=+s#TyM z6%u?dJvEufrT)Me5kwG{Dg5&25clqfUx95tofoTI?_9BWv2DfZDopk^<8s+ zd*64yt1`p(%+#65^}X$_m+jx4;*&1^F?_4JtK{pm7lZ%93JQofoLWKEJ{&xSUy?Z- z;kfE|crwa;v*B=zKkUQdI4VKr^MpvA-{(n*>W0r#GLJueekMOIb2P2|-0x^c{e8pH ztoHX0M{~MoWWP`iPy0^iG2)G17R<@|<&^$E&KrxDug-j-v%lH+RoK+u^%cXl1leyU zo_+fNIA4#x5*jSo_>qOBW;)R9g@5qku%yI0Mf+Dn^D|)qQ75uLXt=ZfKi2W$O+PkL z)b@Y8Jr(ADzRSMq|8q0{W?IQoVVK}9RNx-%=XOP2soeXjdZUot2Fv0bdoANl3M-pl zs9ztu-#7i*|FSuwWr^%R_;oOHHsJT+gn0As&(mt>&%V?m@BjX?bT!~Yr0ezOKi^)4 zefsmAmT>;>$&Yt=r|$fPo5SwM_If!#cYWhRqO?BDowNA!?S1pf-{0RqoqmGMZbR?H zb-gG72s>+M@ROh}hKRRUSW}4f;+P?r(?JaPG?7tlVu&^3AQr_;0xn^Ok%b3133C$c zRG8!HJ&2P}Au->?JT-pV7_UA}Vhx*kDtO!yKKP3S|1SC%&3lN)n3p5-CPu_G4->8K zk?70+CCnWrIZT&xJ)ZcFFz3ZxxE%EKGYcw3TLa81=^p*f$2~QWpa1WM1fFi;Fzx;{ zS@8SBsW5k#UWf;ySoHc1SFO_%elvi0)hFzxTQdkL6(Zs$lcr9eGxMh_xX#s@oY!xW z$hs%vxo3EG5==m52flk3u9%tgrnU`{XlDfR{F!*w!_Vlqdqoxm{NFirZ;;F>hW=m4 zr{4cwJmXd3QOVvy3F$Ecgskj%WP-4C+{Fa=g}j^?es4o>{S0qr(tnaq|L4WCO-dwI zGM^xkl#EK?jZ2G}z?~XrV!+8vqgY~Cx+z4fYd-gtus{>S3k{05qy7z5gg zo6R0ikwSaMH;kiVV}CRGo-_C7+tKRhWbeKzZQz znhA;qJ0J-=i43bGJP9P_g}0@@Opvu@f$=Vx$K;A}*Vu?kZ%$TQkxffXzm_bP6ZQ}3 zg0iTV7_~mZavp1$5!}U~D3x}5E*0POli^4vNEo#zaGj9>N(ggt)w_3Mqp7wBb`Oty zb9i|=P2p60J3wmsr7f#X9dI2r^1|9)&26B*Ubx8}EL}V_J!N`$fD-*D*6Ex+i#{E6 zwf@?m@)3Mx|3!E7B%>fK?8B=BEMHhH>1W^8@FmqUi&q-`FWT#D=U&wv-!)zA3wYoE zECRhb1x1u8yAZ-N?#%G|)o;rzC6Wxc=S-qF|NaFHlix&vxg_QusR+c-AoOkju%VTy zZpJtc8y`$uECwLOar)+y(1Q0-7#!g~#tbjPiuAyt3p3^t;_hSDabjr>9_Iy<9Pn{x zGrK)gJMO6q%Lz0Ii4b@`PmoWf%`8IRrN~-ryiH926>LaZPaVC(NiC>vibxBsir`$0 zYlYEh3*s!jALB$-VQhyahB06vGdlYIR_*)Jhx%U;pi2x=+e94F6mMh7b7hY`!pd=0bvxFLAgP^dV*FHwQ7oqS7LlY`xn0}f6oIL4tSgjkD2!K>Y>aQp ztRv(0>!g|*bs!(AAisTCE)5)rqV@X`N2E}mU6U0QZkeB;kJx)>ObllrVk{HUrcoqLU?f=`9E zFV%@0v{|E{B;W0|4T3$JIooc2rCgV9#b&;FA_BRf@vJSl6#Mr>(qo;o(_d`$pB9Hy z$JR`9%w7IuqN17e@XMjd^}S#->#K`MyO}$WA)(q=@*?M!#aj6vqaHkd+c>58goUzF z%kfO@m3r78DH+qSSKqsrJ&t~$^f_LruP%$!AuyZy*i;oU^((V7b@^^F@GMIR7NmE_ zVsd-Wp*|b5Oclg-h%wNPQDRGS*_XgXIh!3`(VXMTq$Ag0bASh8(PUYm&_>(EwH_INI{y%T>K{{++Jg`h}pj{lMeEZa&q9%&v)7Pp+ zwKME_kdp47sFq|87hM5|TYAvD)}3&o zu{G7!<-{wf8d%zvkj9xRv;_g`1@7@-nj?_g^H}|Se_w^AGax5A2tD8tPshxU=B=(` z+Z|=*_8UUk4@DVKKU5`-QIFkpDnh;*eWSH3ma5HI; z;N)WVV5F(PT=I6;t3f?uKGVI-I?lGe<~ zxQO#6njWrwvSR~xRyS1NKdbq2(&h&B**lcoDr{vvJvkPIWzAAVSo~-Si+p&M?9&>n zABeuy8JOfIF@Et@ZHht++O$?DCg+(ei8uLyS8bHfm_KcUsh-;rZJwJGmWX-SWewQk#ZN8q>|pit()yMlCKsqEHu~IRjVH)k zLZ7EHNaCsl7EV$&WWE;7$^PR*#J)7Wnj-d61n`zmLz`ibUw+ttn}WYKNfP|{9tNOH z61-0&c16VCCRdkqW4*W0a_f%=rYoE7FoND*vh-xvSN@7{Vj(Ju$s_152o?V^G2x;| z%uCuZ#3m|_?5N+z$JxhZCpdsanEAAhdiIe)OFrlQLx+uCLpbVb@#tJE6L)uPOV`G@ zhNvlCLVgeaD4KELfLCtWX1Iy&#wfUl%Wl^Z%L$1bQF&y-#OH5#ON!fTre)WlE(I1^ ze8cprC=tEY96myJtxTI-IPArmq~;*SWkfE;1cL^ndo-;m$HR zQ%5}}zr$}! z=e6kLozbuR7>m}(?||a=nlx4))w4kj3{lGRPD;9ZV=5)f>PI+5$8gfc!h9)zwFta; za4+X`)mT!vyR|+*!)jd^$-8dvNDbG_IRKP++T&h#cSEY0C{ummYEVwYD!5KJzW&@X zo&|`>V7e)eR&Mn%2o#1KU~h%*NnZr@)GuemqM;v3hnxvD{NFq3+Y64ynEG{Sft93;rFVndd2mr z>xTFcul{e;*KVJ=xr}!4o1E~<3QwcKfz4wRZucw^hOVy*7v{M3M zJ*enNL&@9f{nuES`n?MKSb?C>Rg`Reu#&((n!NUaVz*|lfmz}r(kR0>Cm2JgEX9%# ztrn&vivYcD(;#hWE-VHz#XBg!<0v{ptjTLhR3c>8EnM0ClqRs;AwCbvmCpy?F~hi= ztBSJY@U4Gqit|L!M&sTam~kpde(A7(JBno5R@WQhD8j|dlXMiv!o+PQ^%T@8BPO<^ z9Q5keURiQtWM%$M+YqIIX28snkwKtU#xNh|>lur@o()zF+w9?4r@w4Mz|1ukEIgbU?6 zRF#X3zoxEMv42&r{T9=Hx$MkQ=9^3%`7`P|Z+)S)N#nJwWwriS74qGWN`Rw+ zpq=xtP2|1-|2G`^7ss-1|3@6U*x{XjO*LSgFDayRr^%HP9B`LXJBv&d_z>pCaS1Ii) zhvhbwHyAB60Zm^roo~ezBQOB3ig7apK$WJ2J`F^WT`!Bt6zt7dMGUIaJFr~rCSzby zrK1yI?hDdlbdp{NaZo{{mjvI8v2X;|uxM1pw4ByLR^kFdgsIAtoytZE84*OEUs$Wt zLe};L-B|;&iH^li=i))tiCtWYq2=bsE;@Sfzw(Iq-WnXG;(;bWtOP|bfpV?@qSX4q z<9Z5j!?0$P>WLuy4ZR>gS~z7bD94@ntoqF$Pc>xgNA~KV$UKrT^|LOd^8BlR#q`C2||8lfv0? z)X?_2Dpu)wlisQaZAcbf+XGEsC*NwezA}Usx0`Njz(Kn%U&loz#;Ga2pIC&6BydKz zTFfRrWEY`r5QQ~VeMv>AxWT0u?l|I@i7HK(c`>OGw&xL`xht9E0`fehp@iABcq!*<1_%wJktmtuh(c@70-tc5b9bIsPF?ZJ)E*h3a4?)ic z2f4*!W8tg-*gi(S?=B`2CERmqZxXr4tLuO=x>fdB6O=>S?YVA5bvSS~U zADjudV!VC8NKWo$0d-4J=@5+fiVi?8DHWFDke3ARF9?{_W>6dz6z2=bI|J1qu!U4G zv88yzS%sBSv2O~Lh8Q^=*UsNA3()y*@qNp zFQux;+y``~x~~>?08&A9rh&k+b&mYIXjzw<08Qv%y=SXJO+2Wd=ZmIBzc|9!0eb_S zyajr<)}zZ$(wFHCpj>xz8;L5acu54mVRTNXb{;xI1E(rPL6DQ%O%8PsNvgreU-t=* zJqMH{!|&>oyXfhOAognHEg2FUh#{QmOn&j?>@vhhw}Y@|AVsKm7p;-?HDtx|KjX8X z(d0>>kjym=-oU%BA;3b!(KP(=vDRIo=XwI{@tIxp0Wj4tI zOwinMzCm}?d!~Wpsp?02ZPWZDtzEi{6ne-7s<*sXEWGNG%dnHtZ0PY*(U;8W2S_FP zdCTLj1S(xY7~mLD&5E*T4XnTafq9yE?xQrPTFBfObFDN2W0ExVXPQ{tOZH#@r%@pa zZVpO;AdkZFdR;Jj&7kWcFe+X{ppXSp%Nc1ERyQaeQ_sFh^*HP{yom=zOHG^YQf*09 zxDeY1%#G*&5U1+?k-hA|4ySY;)PAjFx>7uynKCw6S8e>R&%PHaWi$*w=npTXh_{k4 zNpsi#5KGq<<|9CiBy{UzP~GtfOzRaj)VC$#Pt%XS*-O1h)@Nje89mi{(8JzY=~q>$ zu;y|8_Lz?iDXvc*xe{e(ssUOpvrS#p04(`WE&nT~gQ|TXaWQ{vZ z=);8t>h1RGSH#+ZRa2>|wxES3_=~y1irQY*u|NG`yo+^a4rAKTqR3VAftCCEFULzr z?uApa1ZoTD^?1YUu7mmdX_ifvD@V@2nrx+xK)GFH#kr4UwDarqNaQn?D_a*{(_f=8 zM$v#$8f=ip{F=u4mj)MHN9wF|TwCXgTIViZ=N(*s<47m?cO50TA*8b*a&1E_YD1!Q zLuznC=Jkf$-wk=ew~9I^Z&$-{;tmZd)MCozfCntx0439Q(kYU{oN)A?qurhWMA9KjoQgC-8tUi==zmZ zal=MpQvFcvnnN_!0vyM1g{978S8_+DA*Y~N#H;{N9M3i^@xK{*q|n(Odvh-!*KGUQ zhIx8mH;;sj;?54~?_LRgjE$g0YV6e=q0NLcfDA>Jf0VGb_0p*HVAu zh^6H|j;0zb*2DCq(O01AOTha`;$>NeQ&%tvlUJn~!%J z#I;y-6j>JPe8?j9;RsJx#DPX8XrZocoEzBt0u#3zqZIr>EGP(P#k|X3jf2k`eI3oR zVn$N;`OdRF2nA%%19@WtI$JTbdRC=ZT|)& z0)WsC2+9%=rhdr=*{acw;)wP+)SF%65X>7G86LRo26j3Z&`V@tKLIGW4Ss*U?HqR$ z4~Ja;)T)!t>GX(+H~U)z>xJ_Hi~)wTbS+=J;a?8;*toDK!*NsyYcng_jnVqNd(8om zd;)M2`|Rev#Je4`=Ykc^1Bi>jOwp`&;Lk!UW?|59oE13c+MZu ziN$Taq=WU(EKHf`IBOMXdV9XUg};*x+D#hmI|mzf8$TxlC=mxG&OquvT}`L8Ad$a( zkAB8Q>5ScwrLu#0(i0C__JtO$K3zMQ7yA2Se``8+mvbG|wAu0=39|gr8!qC_d_JsX zsa%g0@b(6sR#ka}y`hk}l!Vj-w)nL4cw9mnYfemJQC2*(v^=l0A}578&Ml@Y3D=mL z3n7t{I?DgIX;(KiuO%Heeo|eX-T!!^TeADvEPq^H$rHgBy(`0SmKJ-=VrTzLv3;^p zF2&=$_S&0${EhUOGJX5Ey%;oNS2Z7fb9+QvNrcs1VuVT-$t0^@AB$Ri0Je8D&76O>LFu7-AkYV0;jQx{rT4@1GNI(SVcZ z#01N>|BFN4)6B`?7mRTr-NW^lm4K8LY6)3+Gr-kYVw#bh|g)l zNeG1B3wQl@>sdNx`+_pvfx=LZ_e6U!a7T-y--b%BiY8aHBh=iNZ}6TqbK^Ca$1wMt za_BF*gXd=c(LGHLS(kHXI86=-dI`y_=QwMcDQ@~Syi{I1YQC^*CV6NR+6mDNkBvpo3^N5)RyAKjq}DC8=-S zpGX-A>6lDi=5KlSfORQ9Ie7NN7lOI>7qJxYUJ1zw$iam+EJ5otk|kX;R3klOAYXLO zD;@)Kk~7*VziQQwcbu?0=*Y1YZB8_FK<9=FRm*8y(f39_9PKaz;zr(Yl7wbXwjJdj z)ZL1A=+XUIt-z2#@zGuqib?G0#&+_H$wuuwOL=US z%&lI0e<8q>RfZ-baxylYPxCX4VIY>%&EG^e;yOBeo&9{`1mWW z8gz2?din4d>EGKF(DP+AyG;LQ*S<9EPt#RX|T=u+>gljH} zi(VFRGe{Tl8oH1to31))!5fHXpo~^X>Q$~O(;i^l7nj zo^HC-hCj7W*J-A&J$-DEFLbaMA5|*7(sldnxtz70z2X|yRy(2W@$N$P=pRorUKazD zTZoS(=D&ZAm3-~EvHjkQ{++L_r1pI68BC3tzc}*pX~SKk$G??-279poWE!8HMc$u0 zw+kzcBU)ef!>+5$Gd{WU={O}}1EbPnNBHKYQ(eouw8C}ra=4mqN-^nS_Uo!YrGquf zp>&&^t*t+Ar=-e{tLZBR$$LJgp9tggv_EMM*|yWulDl4N2a@~Z2sb3F;$NzH60&BT z*N#>)onIHNBjy`Jqk90+SFifJrVqJiywSKfRWTq=Wldts-tZ7YYmPQfEI5wIk%8BC zY=nzyR3dCXVUp}^KCI;>GpY#fr>&4o-jVcSvNh2HMNFF892=GqTLyE)dP z-8}7*eA75_~*D zqU_x(H|@8tsNICUoj-6R_F008clE7Pg@?H&8N`Rd!b)P%6(GzjyZ(K)NPM9_#(XK> zpagyBi=f`BeRgNGMQ0G*L^+2s=`P$E!ozGmY6LHEnVQ zO#74eCZ?6~b!RkRG>EPGfO?aexZ{?OghCKGo~_eZ0`0BfKeEz9+1o>T3uMDHQI54g z3R2p`=haT@G6H<(k8cbPzrd;a+7;;wg zN9-`or_Slt8JntaPf;02*&(`_v3KpBhG*<<>c=ZvfRK*SWSVV;1 ze~IL>u^sb?bTvIKxMO5HG?snr%l351{Rz}yE(uq}WSgRF%!;wv(t7BYw69t(ca782 zhC|deYWzfPoKDCI{iDlovg!|bY&?~^|CKDpkDZH%*d5A4hlGhu=6* zf50yuB8k3Q%bK@aw4>vNJ(VvVQ1vKUbplkq4ecYcP2SltBjwJY-4{@y)MNNn9d`U_ znxxF^lacSS4`;o<);=Bti3=aql@0Gx{_T^yCfp{RR+SaVxSBms(LY{Z%QHR@Rx0cF zQ>rR5L@n^p)?4zwSp{33ysO#`b6B#}eDOUMwaxOf8=Z-VECJsGurkwaomfh8s9L?- z5yLn0&%$C&iHz!lO&8c0xE`Ey3Biop6UZSK)DSnm|*)rhVD*yRb?>l#i6ytDOAmt3MBAm@IR(lk} z4ZbL@$={gYK6M~)PV-G}*Zm)Tnde^CIqLX5v(~rHn`A9Q*aybmx#OSr<0E{z(bq^J;>0)}hzJWrJH-%9=W_iL{IG69A&$AGMmK7K)!W$k z71gN&HbgO4@58=z%Xj;cS2iS`%W-yzzDeqOU0P@O!QtnF6HUNSK$s|&UWhT6ayc6) zInTF}3PFt#BZX#y`j|Vr_<$&tuI3SGFnC_X3^}#7Q`r&y;~i4`{>g9e4iFtMoux;< zUiDZ>S2ouY&!Hiwh^FUHDytDt?gLu$kCXK3pye+yl~lP1Q`lrDQs)7B{2kKEX1lSU zEInT$$yAiYO?j1JUt$Ao@i?v&i(tzfNTa6ZkzsaHkQrAggP7dMjFNIn(N9jPWF7GG zfHJ&xT@~3hOQ#)@BMS~VP$?au``;lC9v04ja3JKcFtrRF{nX?1qxepn)1e4;my(P$ za{RrkV&R}n;+D`bDt6o)ZMS9{Fj{bB>ny(1%DcSnMa$KBQ zX4bM5=?p_cQu;a8KWsVO-UAvfm2YQDNPrPs9YhQPrPzA3O6* zVfgmL7uFF{Oi+&(ku8MjGb3GAhyH42>zzEYR2*!mjX*CUzfDor9ZrhGZeMC}vw;V# z_G^4xJTHI*#x-}YFsN6V(er*PLhC1IeR3b$dtl2Ve?5)H2#1t0F+U|;*JEYAK2fga zY`QPldo4)kZ!FQQZtZ!y(OW#A@g2>0py0bm;FRC_Ri*I-5N8`*|AkPUIiF8Ke3#1R&Q>c!S{sig|CFJhysuu0 z`+pN#wVR$bU*j(R!g+o#q95_cM3fw)7M#?y#Hh*S@psi+k08j6R4Y8bxc**7tg|p= z{oEk=1hPxx?Ggo>8GP~k?svs>NXTs%tBiUQu$XaFyb0f*PWxMeR(pDU^{ZGBy=^6S$ip-Dq=&=SdnZuaLh%{%X$-wdr|UcLk5cxUMy-;0Uv%&3cq>*wfR zb#S?H8j6j;{N``#jq?s;?>a503mQeo3yOI;4N=eWTHMq9!i+vDERWcD%LnQCSg}wC zQywlHnViVBwX!J7$lZripAyf+;|kjp=JCFv@mDLE4S6fLC6+97`ij$(*k?hpsk3e$ z<+u(V!VlRtm)B?DZ7&?ks16ZNHnlEhpG)S+KOBl+1u=&Gn%{y4m47R>jf%mBSeg=% z4lCE6KQ~%D#GD<8jBqaMzZdj$iKy#;vYSeUhZ_wBnWCi5s;q49-^#jMuTp^YaEour z4idoGKuX1x`FjS1MNq76i?F`;`!Ad7$*mQ)>(Sl6G07}Igntazj2@21vU9Q<>9yRd67u`!3q5Ame^sr6q| zpM-AM$8{rrlM%-R1PZl#TWGWJE zGmE_A@)teaNAvfrgcM1ZZBoc9#Q~WnIjg9k)$ZZS-qD`k@fW?5e|ou!eV^ibJNnyT zwtdrou#_OLx2Fo957yd`>|8Tp7f0*~Y{RSsY3`Xd)NMrsHY%GZYXV2n>GF1EnF;7K z=ow;LO=Vv;n3T@1e=sN(pPe8$w~nH4+R@@^M=@bX5!VQHgZPur)^DdaHNf`cW!FFQ`Z;W$naaUC4tpnE8c*tnoz3s4 zq)P4m)*MC+oOawiO%J*^h_6z6BUi32%ZgLjGZ!;gdr!PeELsV(OCRA|35CrCdVetq ztZPQUKnr%bu&8^<{9}C@vWbDmiU0)?|Eho0;N3q1OHt?M^;)3_yH#3$>@f`bLD?j^ z@1KTfi$m{)0JN!D5qhNcn*(0uw;0JGSJ-+qxBsq{p6E&mSn)v-VdXkMRP+h0@|83$ z`Aezj#odbms;>gZLZg)zACI{-j(xI~I_FXPXjE*^E@ z2wJ|8aMC7dLQmt+Zy~G89n>;{=DS2|FZ2f@2`stJ6rcJfy)D@m2}#-Vi5Jy&)h2U0 z-^U;f4$CJ7BzLhmhHmMk+qV<+$0l=X^OtsXVKijpQJ8ml;L=^2m(dC_tn7rbYaEKz zS1Sm%gkrFq!Ne*E>F!$}SGK(HZ@kTcUmdup{k$DesP}&Ho?5J2GN$S zP+csh_a$1N26Z@y4H9sjPwjEnr9KcPILC#R`7s|qBDY?XanFAFbRw6}ZT$A=@c{LC zH*;8QOQfJwORY}^I)D%t4k)?)`i@|pGk-%0_X_<+Fq{qC%yW0%rrMK1WfX%;KH}+AU|I9Po>WUgqOA;+!(B5YhbhF;9 zwM+cF(GS>phmVi)#wdNY5bIY@9y=S|vhaaopvfuE-$1jbOq3;_cVS=TF{Sm$o79gw z8rENqKK^Qw!yNV~1l`Um^|rn7+i|}V`)XR0aPxzh9`SWCwWi3;4K?Gx9wO^Ag{Y!OP5RYYG)V;#Tzh11OgMJQ*@u&)PvU)FFjr(dn; z^ly)P`L3V%@gsBfu1OhJO#JR@q`_#OZw;S`+GS1(?K}8Z12ctxN}Bkf z@pLqdr}QG!2zTe>ASd;e?FZ!p%xQ=D%~xXN4d7Vl0gI^xjboom4IWPvPP@y26m6u!!WH~Z zfpLzg{r?cxymfyaUk?b9(!Y!58{GivEmvOMCLF0-KV3Fsl{N>H1=*X%mWMwze2(IX zf6_;)nht;1^KlU-#``5RhL60YaL^Q-3`+kbDKeh402 z{DZl1@r&{1|M?xPEna1&$061|jP*i3T5E4QR*+rf%iPLKqTPt=r$jaP{=08qkgC#jCqKXd6{mBI{W*TfO^94;GQvwP$wAx4BBw_%X)S zJD)CWsWlq2{hEE%KjBi*OzVxvGpid%`c&@81;75jG04m2MMq!Uckb8U!0Sc{iUk1O zFh%wJOZHV&jSl{!Id$aBVPOCnX;!O_-r-ei29R<4lb(c@)h7JVLa3&uN|(_yK3_jf z&E9{VH@`*ieypn6?+GUaRa>v%p_)Z9>|n~&CT9Ir)Qd8w(DY2Kzf+8aZ1O@uGcm%E za)CUvVB2Z$98!89_t^zxTFejWQsI3}7d4ssxU8sb`eDSWF2czq|1^H8hn25_X^MP< zE_8V7g5hZyPBq))H3;hiO3@jlNKwk#&wPw zg|H-FJsI`0)pdwVb*oWwkx!uO-VZs z^hD--f}a{cnQ8gRAWVhHd+gFGX?k<3t%7MmV_@GH10`wp%ymq;e9Li-go>cBVHdeL zCz-if+`?f7;dV^JQ-zbKo;)ib6MZ6X*?7xkKGN}m*aXmp=}Zm3iHY-1-=>kU_eH0c z+4|HEmRU`ppOgN9%KY)7>9}uaoW9i_9!^%u+!`_+)EpB{@>KQw;!M#Q>7=yKZf@WF-BkYz8Xi! z4;`~4+3p(ru4ewOc-T-WlpCdPYn+$xFKt^r`=O$~cbfk;vJHHcmQEev`FL`ZWEBR^ z+_JQPj|&<&?7f1s`d#a9%``7#YlY-+YDfSLecuTd;%?77CN`y8Geye|Bt5ic{X}eN z8Jjzw6+TP(hJ6rcw_Q6JZ`NDVX*3#@D?HCAn6X3A7!49p$9AQShgL5Q_SrG#r2tH%GcIaJtiP(&C46rYd$i8$*XD3o}x5_;2g5Ts<71LU))AmI| z1&+|Qe)X_p1rcpI_n$P}ccGXLrgRTgr?TE~?&#JD>t!oFj?Wwq)r&5#jJhblk5Wqg zJE9|$bMMV`1|rlXx^nKrm93X+l@EtK!gM|gR!eqFAy}`jaYbxi6v|;32 z!>*mEX=YYTy{2KK^Pa5fqMGC_w|hNzJ&sjpb4U_Wo{qaJ*T$Ztd0w{O{=`*vb~-Qo z!45k#o&V$V#dDXMtX8UgVVd-V9i&Wy>krND zxIAg!G6>rEIN0r}mE(Faun19YRq%|akGEcFTtHxa;5KJh)Ke$%h~|Cb0Tj#GX$`a3 z=B+s?Pg`*JS{Xk2+H8M@O5^c!X$&28*|0Jdh3t#tY)?`5Oh#e_$XX=Xw=X`>Vd5~# zR~c7r!np-6CQ2?!5^{>;!45Cnqk~yxbX0Oro0NPk0O4C{Wz^i7VqTh`;=nr7M47uW9#W(7$F+ zwNQ2Om$$J=Llu{_km^o{e~c5Kj@4Vviv1aS)IiZXR&(1l;D@zw!=WoNj%VuqY^Cjl z#A1gqOmqP}lSh-kmHSceoZeOb%TkG{ky{Nt$y|rBnWu13q5r0ZtN{b0fEL>I-_{E2 z|A|_r$)Thaa*G(UDnM~XWmUBRwXFRg){3jzp!W4-0BCLdAE;$LfJw!4G_;ow{Qs!s z{d?A!*`~240&B&8P|F^hrV<%2etVw9Ur_~siL{&V;#qh+9Nh! zj{Y4nT--;c?LswJb)ML>FWD8K@BR;JnF=eya5}w5N~c^*XB3~^csrK%He4cPEIB+C#Bi!lw`;rg0_5K=+#TnKQ8s4 z$h+r~cSuIn$|u@0|5wEYN50TBCeDVo95`j_a%{X2u4a-{5qq$wyozWZsDSvg?@{5t z0?w(|4<8WmLZ1KLJdiq{@;1yCdX8IW?bxk!I2kFb?ZZp4aA3@t!-AL9^rg=IsMV43 zY*6)(%bm$J{hm2+Fgr2L!b$Q{r~{d145+n$Jpa=*w0M{E`*lxy=3O`aiZWn(zaKUk zmj1b{-u|n>z_JJFan0m`r-h-~YOL)1tsDD8)YV6;a%>Iz4iwI*Oeh@Wwdk1GnlO{d@wUR@A3E%W1X5qDH@ws7(>k%^}lQJ z!{+~vsQdK-&+HBQ@AhW3sS8WpTp7{dJ1Bqc0x=+X*x=$g4{vh!!=;7=A|Y7MN*4Fj z$Y?>^tB?I--PjMAFl{=S8LB~gvZi$W?S#8An)PIRG}O^y_owZ;nyu7!wcA6-au83m ztNIYI$Uhpg6rsuh#JFx+-*Cj4p9@=eyQ*$kwHp2VJ@bKc?UNJFR3n}~=CRu9o(oXR zmS0O%XFmOU$Fe%`AJj7P_xpycEx%W;b$|NY@VFy7qw_H57NFT#Y+ zz0ig}p0PQ}d#zK_spYXO4ngg&H@>~Iwz1$~#mE4l+iLA*O_PCJr+rso?^yEyATcMZ zmVE=~GJlVddY8C3FkmZTzys74RiPbznJ8H(O`SXh_iv>m)03f8N)k4sAz3mtBqJM8 z7srOvVPyPnt-w(*oIIr0#1h^so%HXlU#6}HO$o&(i;|hiD&O#M1J_HaH?;uDnhL6u z@ta~)0A}x@D_UkFs>0H5@6`h|8FvO}4i+ zkrp#MQ^zwz8ej`l zx_FcSQLLoP-2pg(K^8K_f>kJ6_&%k3*CoL{?qs^~!Xf+k&3B{kPuGcPGEQt?X$?3- z0Ipn6GCFmk%^J?63M-WLW2}iOVmvw)zZ^u63$k;p2l7+PK5uG628iEJHQ>gi&uY?i zJBjckX?#wYhFtG!7AY^~?|wRJ8wXUz+6vCCH>*2U*=MD*>A#BB)TMcI0Sdg5F*`a_ zly8IG;-@5iIYesrhds+67B1n|44!aaz^%5Q*EEL%=;58mz5ty(=G%z!vqgW`#D!ob z4}9O~F-%VQb$i#;EA?-P8Uz%MyG6cIx_k{~e5o!MtsND$^%_F`XKek(C9|4kFbSV8b+%!zm{ibK9X7=#07@GtqzeFs(oPPWld+X|9 zx7B?wen0J+yw!4MV)ekE-_JN=9qbIZ55bCmW`^B6+7dVSTQqF@Gt15GXus#?B3Zu@$$o|oY{IL7iiWeJ877uSvo|*hw^Jn87S-hK@;r^{o z@$a(Jp6=<=$!}Mz{=TQ=bw9r9{=F&S?~32U?x&rT-&+#?u2RK&W*)fzXsi7DA$(8I z^JkMkI(q(oq~-O@y>tKB{o?PZ*oQr@eop?p^XKnpx_B>7WY7BMfZ{(sV^8nA!~r=a zk96V%XHi3=(i2@4D%!j)vfm-EKRT}Cn$Wa2-8jk9*e0It z6(`}B;A$2x4nQc%Ikg!Rt=MEF@1PkO!aYs8bJciVE=kETzUJ|!f8JhWQ9Puv9vi0# z{WZaTFR-$jV1x8^8s3rBvk@1 zV?xh#AWWTC9%AjEE5Whnh)tv04Xjc%Li`ZfR?lb<2S(4W5C)1rp1L&)J!S}$&uaDyTnA< zfEkOy!DT@dNC}?`(iq>>-3JJpZkt7r0+qomW9YL$BtBIl^hzyfuLM07i0!L+)6NKkq5TPO0 z(=V)0+^4?*GDI-QFIxeCO=|*tKX+z$PUZ{%&><6E!GcAuUDq+{JZM4$VRXUV0@UH) z4$451G)RvInbANUEKHsV$?$!YDKG*a3}-+_6qq~*)a0bg<1?jbpdJ&Hr-3*Qh{J=j zY*31Y)1!hx@}S!~pi72e6cC4nVBG!kbWo1x?Brvt$%e$qFjWpDMFn9TP?E9F zvgKhfE<+MrP?rc)-v)5BQhf@T;ZQ-Kfs#Z}2VWt_&p>iZ1-ZIM1gOkTSKxvLabUr( zB6%t(M+D5Npcbo|!4~k)=d|!PuZY z5of{ye>lTlkK~E~u$MAW9|JV!gGUL_A%A9~C8WdwCFl^0U1h=r2`oqo3%O@PI!-BL zvcMaEP>Bx7P#_XMoy378nIKV61j60~Cv95zuZ;X+D$FnG4e z0WK@fg%oHY&<%Fs0#s;_4jYsOvUg=cW^_=V0=PGpyJv#cmM}#cV88*ZGwam25Y+?* z6YOfZpd=TPAj6C}kQfUjaI%&8mCKfZ0TzVw0b?c%#DW!#kPH z1kJgreX}4;0d{>B)WkyG?*T<3@T&||q}9U1Kyx0b&ns180-9V1%`5uccwG(HELLaN z!N`{kd4MjvMj7uWfd^^7OZ=bYswluntjocR&{3yK5(SW>6wC4en~{?DabU>r5(x^- z5DR%~F;Ze9Yi2+VJgCU7lw|Kh5cMhQ1`9L7f`$wbN4|!m02LL02o~m=2^wP|L7{^jP-;j33;YW{`hlug zXnLqdmIldTVOCsdmwvSm5+=heM)H7t3Y#!B9;ikGmGRYDSZIEvOb%PzQv~Q?Ap?Ay zBD2bk044qryeg1-4n6r)NKo zDS>&xek*(SDS??u@-mJB6qr=nP- zLpf@YTUL<1WrmQj-F|`>@l^7wtAH66P)f&=SfB{qZoxY(vmMZ7_3IL02%EcAGr6IU zQw|d#V%nx78lQg5LNFk))oL9O8&AiR@1i(mvSb*+9=05xzHKg9jRO69>*d-2BnSzr zt00YQ>2sQ{Yw%rYZrZ>%A5Ux8xfuXY(^041!z~HMUH1`hKm`^M+CGQ?cOUEk@OZj9 zGM(TG84aZ(TJw$j^Ge=>8qR{N_Yx;k(X?FRhG1PtOZjf=={nfJ$nngh&_8is zB%wMbQ6?4#GQq3G@$2adomUk;c)Eu8#j$d5H^wu9B*sRU)6!ch7S|L)lX0)J)1Ugr zdmzRZ_FCXA#wxzXRrHRCuO~JilN@NnMGNJ;49;n`9_Mx9cwM7P-y|Ofo{QGpbX#~Z z9@=HS9+op-b#~(C_`?kbiY<2qaTYmqK6JoHjGRtXOBo2B2$}+PfsD~;fDw6s z?v%S!uzdi%rK31;Da*uk`xvZOV-#~WSyELdaKcqomi%C+#*qQMhcvF&1=>-+l`yRjq+WW5cHl>}8d7ubHV;o>eW7DQs#)i?HQlBvJt zsiS@EBs}xn%2-+x*!+EtBmYtYsM6trB-)I3%*6{%XdQgl4IHRNgdK|8Z!ml*#~;$g z+mB6n$uXS)n!5yV#{cr1IeYhw?Vw0@R^FSLRUW9sbk^<%hpm8@Zft*ZKVuV^6cf51 zaq+t((C${^q-*ad1l@D1Z*J^QTof#^#a9hBXFmBFi_^dl{m}Ysp}Ra}M2GbG&<#JR z$r7+0g?cA)AC3@6T!_TYRpCHq{9(=UwQjSuFix)cdk{tg+mBzQCb8u?kRcsPe$jmE zNV77_QK{zacrh@J@890I2 zi48qZfRgmmLDnXu0jw&KmyRQ4(~JAL?B?8 zsGbA#d8?uv(1>2$djS%&#&sO2O#HoKM(sAIHOX-yxU)O;&2v2pU>h+0)hM#ahN(-L zYd$}t@((nm<_03a5Qs15yi3Z5(xsR+sT-11)MXuV{qBSrDY`@9%QtgxR|wqV68USP zv#*1PUd;JGE$3!ha%bM?);&ywF6i5fQLdZuyF|#vkhY^9yC|=3-?P5C-TJA=2<7c@ zz~zyTs|T;Y%X1dz*{&sA)B+KrS|mL!5hPMfLepGNouDUSrbiMLQ&$I(07SZAhL%^! zQ6Z7=47^+cNkL0R!CXN?9>qWr3xkW$ckX67pL=6F3hMjl>MYg10$Oq8K(ZCz+? zVkSc9fWTo13A~w-E)qhj$rNg;_krqYvF-tLGc)mb3TTM1w9J4||Lqx;(hD4B*A8Z2 zHC(Ek^3{PfaRb&q0)Vf}RaV?Ke3-&<$Wq={L=%|Ng_6<1>>>m&w4bS^uYN7U>oD0} z!m!$E#*0c9)0-@}C$I){7%Jy~SGoLmVtZ)#k>c=;SB}EC7bax?oA{}CucMOJ0+?0Y z3)N#!uTS4Pog_@7w=ATHoPv>vyE{VWI?Z3l!?R_{LG7n3C2~J>w9MZt`BT!jamwp3 znDRbyi~sfKdmk0Q-?4t=$HKFUWH34mQ_kLebGD^ryLZwAKoiH zzgJYjNQq-fB#SEO{zFRh8d%z*y88-QL0lVAH+y5j2mb~&QvoSGPCnlyoax4>(Dx>5 z=&390dH*0^gy7^=;H;~8OW8&|mh9;ca%ls|_G6k)&Y7*B$)(>p^D!#dp(1 zOeR@m7`M7&zmP~h{)+GsF($}Vm@|W!;R#r+!Yq{v==AP3z`5)XEk4gujLl3EGUqJo zF@sc?^N_g#SEumjhr$6+4i4C&>wH-rwU<$>j~CSG{FbuCv$N#Wj`8>l>FPgLKi>sb zg*?$RYzhaEWzlTmxEQ*PuoRU@7Sdz0lTk`knvJk5m0}|dS#xbg3^?yNfF6d(K`CRf zgMfi6la4TX%#IS0xkej6)%voIiW*|5yAg}J*yCt57AvYhWgB(32tktvcFQw2>EBS8 zGrVZbbSS+a(NNEtgex7xf@l?h51?)Ka@cU0P^E$03Za}NAz3!ZW?D6XVk;zc1`7(y zYO>xURbD@{!APZYlAoHC-LrkQQp2(pR_vrF!)5U=p-H6}&KjU+Qw>})p&hUhabBoy zg)4I=1`zT_)P5n!P^_Jh>=4!t-nf%S7L!P2dX6pTGtZzDEl@X68fWm^=VXN#VhzY4 z>;S^Bll@FcicK4Ux9vVZ(5@1WX@cwN-16r9S6~YkpRz&fq|&2A?_DGhqLqPuVc)$_ zr^5qbC4ADt2U!6478%8Q4{#|=7$%$y?^z&M+p++$s!h63y%z`WNe9JgQ~*r|(ePSvJGY*Em_Ew7rlk!CF;)1*KeZ=ud+Ev18j16)KuhRX20I>yJQCv0Ni5(q6(dK zWDFSw>jIv)clFq`Qenz?8@M*Rb={RtCd>fBfs`SB6aa@ekWm8}2$4VzOalWVgt?%> z6bllganLSotKJAeMg`F?Y)@yysXUmj1vu(W$6PvX@O#r#Wz>MBu&`7NuzEO@22&IOOtQI_l{Ixl*_-dz!BuiuB!$^#dJlAA17+WRMZ zzi@X`COlBmt<0-m$b|^zxV?*#qxfOm=_mzPBWR&$#cD7qndWVZ+bKzZsY0d59?KU7 zV>dZ)O**K6!ADkHf(wtFxh+{lz5Z#TbnC9&&!=rurA&a?g8;Eif%PS=85|G%Cpjye z`oSdsBl`GQa6lV=9_)Zeh9>C(A~{;5U+a!r(^pFuI<(9RrcI703XC7rR8qKU5!Uw#hjBVW1eP3eWp71ik1Vwz#mavS z5gelq0_H^n48gC+y6WXQY=56nUIJ9ornn>~$Tt>Gd>&h$`s;;Bkn!*#-i zzmj?F5u!6Q_*lmWeO$FGdX>)=b<0LPAr=_nBtL9tlR%CmA(uK%eGwv~v!8t(aO(%4c%O+k691++$rs_v7sLciilHU|6Sd zzEoH-HVdIg%<&ytFusWZkt&=doHZ*D1pvPo+cOKw4-pwo9)j3vGf%n;a8<2IvOI!K zh7F}_EsjO%CB2Y<1KP!6xSS{-o=)VOXY*$pli(yZYq$^(kl4}!^OLTQS~z!}i*&TT8Tb>q2rCGhSYfy6NYu@Dt#GlL3J*^my1IpUSA$BY6ZL4$Qdy zBic-`MpzzyFHUd45AK+*?R5d+ez|OKN|LI?R^W22VVw%6R2Vn$M*5%&c#=g&=7bVe zg}c}>^~m>q&u&k;_s+{bT)%JiZ;hGve`|(stoJ--DOhj(ykLt@N||sgh2i>zwRwha zB*0r9VIv0v%v4sQ;f6E6m$tBbq&7L6Y8QCme&zc~$SPhofvKlXPfx-*u^hkOA;Yg^ zCduY-e# ztQxecq}X>$i+$1Fe$f-A2*7$tz#(kI}VZ?-HRgv0OMD-DD5K`s1IN*O5k#^%Tn1Y>QIRCsB@ zUHMA0irNwY>C_fU{tl343*)Ew74Gbw2JsTArsiOG8-1hD|QF@0Cin6lAqqxKPPubKiw64lzY{7jj@U+d8bBp2d#r zZ|)oI+cY%5oJT%N0Q1nZq$4q41vVk7aGwm8Y=4yNm zC;LJj8iMr2A%H}lV{3li<;Gw!rstuDXH@NMARKFJG66JTZb785-iB&hF*VZ5N;B zkIzT%-Kq7c;4`D!zt0PW4YE9F4G)q>iJyuFozE-UMs1fKoDQ40Jyq(q2D>zs( z58PM;X4N#x*g$T-w?;jvVWL-LTHP3YW~*e)nx{UVTT?re^HN@1oesWJyZ9HW13#jR z=bs9;r5Sr)6h3L3qb>e*B!W*xCWdMDPmA4}2OQ@~cMHV7=xRKYFkJ&QObVdO$u;UU zq*?8;oGaR2!vvddnl8TjyRNuP?UptCMU4)Cu3r15c1v;xa7zaPm5yeq_sdeE$d_?h~M$+#=w-Pj1(%}~cHSL}Zr(h3SbSax^-57B%j02WxL zixs87hHItrGeU2l4%san_IwB%wy$BLBzCM^HSZ_ZqeIytC^)s`N=ba9Rg##yhJ3c( zG5<6B%he9v43aZ^AbU)^=~_^&U6e$+hwS7PS-GGyC2O`~B61zu!XnoIp{-55C|OjP zY~wea!cuc4@!B;HTr=vRrln*RH$-kq{g#PBR&B$L{4<8L1t9h0MGw)}=F+oBSy_>m zKLt(a^P!)o8_FtL$`m9en3(0-5F{7j+N!BTKYn#76ynwQ{gOhnjR)qpKe4fjlLdtK zD$L!-8=h44sBL7XwX~J^#a_X{xZy1xo6_#-AsYjJ9rW#>iTJq3A@^u-f2!(oJX!?n z;rjzHp`)%nZ*ArRPq^3vO<~uv#8NnyDwsE3mx`+*p%xL;qo{3rf`UNGahof&AG736 z4y4Hss`A^~w%S=TOS?B`(Ryb4oX}*s+9m41!KZd$#k)hI5L4ul; z9u2ABb&b8Z5P;iVHz7GSh;=z}z)vGlQgu^EPmvChXy=tFzzr;z+1ypg^SNfWLxl?( z({q)1d--buG2bRE?U49RQ-2dS?8(i&(>(CeRUW*_IITU zwqy#f%5sUkTL+&Eax6Uw~rFM?FSOFEH?Kd z3il>0nq7Q!`J!FX97VM8)qRB4H$)tZb zK^Wgb0)TNI5lNs9>bqBO)RyZ&0cthN5EQjUvs8fQXfqfBoOy>%aEC_Q~dm zBMy>_Co|8u?=iRx92Yg`mOt6o*OcPYY5@&ogI!tX(*~ds-CS3=4d6Q$W^;^%R$78) z!$W2IvS8XNz=R&8L9xq0ZnB^r`~1%7yz=hT!_F139%VXof^6Z`zQv>?VB&kw%R4CS z^=eooXh4M4?x3XUl>=E8=jTtIV>$H@L8p}sQ{OBt1HsX|?}q;JeJHX3%!Z!JwS^Xg<&N=H7#T2mnHn#lv(Djc>b6co5k%$j!_LCIB?~ zGFGyniH4a0?`~5Bcrd7R=UvUa_o2V1x8_bYf0T8*eNaxn0+c6$GF-@#!+}vSw$!NZ zJ5Om{az#Y6;G34o1ho2HLSkui@ImPoI#Nn-^UkW4CO`S!ApjpOt;R)(*13zhU1TA+ zU<%_13^K)1dA~O6GxVEVtz0wl0t-LmvubBU%p2uH+- z)1(K-Z;E=m9(Sm7$tBl-4QkGk7L|3-EPPS{JJpOq`ShdjbHLx!4lSazuAo@lG@!0w zI4{Av_>b0ExSAa7Sv#M4C{>dUppVIbhGrgy6the7UA6d=D_5Wea0HVa;+N{Gi(pgkUU@K!n9@br!s@M+wcfdA9)q;e$#5Tru@ z)vj4I-7A~DMbv~DoByKY%NATn%ckngEBSkHlRhx%=a-UWaT?|p8!0guu+lIrxOU4` z&QE2F(Wh>ocZPuYGc;6-IxXHlBvwPA!9L>dPlwtu1;C#`vk#6A!;e~BDE67%G(1c6 z*}%k%HBWw zFKm_N2c07OBd7iF*rRJ9mSG+BV{Zej@VwiqrdHVUC&dzBvfY1yPd+-YKg!n{qU7Qt zCEj3s+Ob!s@!cg@kUp7_7Ad!)cldJb%9hr0wa-iUQO&ri$CFSFcK2mK^2tiW@M@#^ zII0v5bXU1LZV{pv4jde9>Gvr+0o_s*<VCW!8emLMd@miNaic zVXu*sNyuBf^~P^yqTO`;io7oN<`;Qpr)Q*592v#}*wg6ZYLgAK1mjaSSqyW;eKp#v zkNuYOG7ttn)x_daFd3|5^|utu24~>Blo7|B!1Z>{Pc{2$CNH}G4s?v~d}p=)omtM5 znWQgBojOT~M~&})0stIY7(m2A3OvY+;WeNEn)oECU|m%1`-M1Zyl*?E%LyoK8a2^6 z{@7LEbKNG(SClcVnH=Z_j!lZ$|_0ELoPmfwUYDiTydNxY@5 znIT8r_Hp;^@rlVNPyZilChs0g%j;VhYvoy}=;-2Pi2Cx9hGrm2({z)nQb!l|i&!C~ z8-r$Fy96P3Yk7=J(X+%blFA!~ciz%_@1dmR4gK7{a+wS<*%U7C8W)={u4kpv#td^V zl+`gz(FLhuxi~$U5dxLw(4b)I^s!qA4WRv0W-4~mtz@hdsaZ9l#!AqfhK=H z3pS+9ro->wE0P1WgJW>_XmGrdw&oD_{`~?GqcElm&iH1dm4Z9iW;6yu2C}7b5;yU6TuwR~@s{@!ILg+%O=opFr-b!OpzN zM*j`{_)d5(OCV(lluuQvPXMVh;pB8~96wLe#IV{;l%yBIar)WRfv|fPYIAS@?=_RN zO&isrL3vU?`#ARi{Hqy;gq9{CiatjutVmp-DIeb1&tM^px;VWkMNR%5#DjRO!x71T zdatW!-RqvDEC&dJ#M^`b25d4Nf`L4SJ?d^Mog}WprD8ExHMvYNf>^$TUAbKT)+m3LCJz{33!nJ=w}K@ z$omOiz_sqQe(HRc_Tke_;eR#qzpIM-d~2cQ;^*#2dJ&j+inLO9$tZ6`SOp`W)2HFd7{|#JxfOjAf*7zdT;udogIJ# zg9{8x?4N0ek&yA<|HIhk&0I#R1(v2wksb>H%WiAxeYBD-1+!kJ!#DitG$B2D2i3#_ zEHytK!F)vp@*Q2~!0(pc`zC=}a@1Q8gN_G7P(UotM~#^e1pQ^nxc}a55@Jh%o#hY) zqB>163>T(!4ELLi05F@CCW9Xf&a!0Mw{VI!I#PZqGM@HMsDI#7*LqZfbTUWi)l%m5M-W*@=7a9-U&E3x0m6* zE)uy=-WBei_9SDPON>u`tN_PX-c1xi6u1J*nnoCj&w{fl@Xs?8aY`G*O6Fkkye~yE zme`JBa6#vy0G&6wP94Ggih&pavxlf1utf-JwuyRQGXUG^{pET!y(U5FfXex@;-nNl z=JK`CP2DSXOGWdq=XS$xrSRcqZT8VrYSth52E?XXJ}PF3vk@G{)t0bFL)J!0=?smC zjkm2iYA(8R>)KGKkGEL*814?*!A)5PC5fQdO7VqaorD(gWmhA~4u<0Wb8qwQd{~}N z!gF}HaYUftB*BjY84U3q_j9T8au?w$)CUli1CB<}4E%5LC5&m4gx>~mi*|v8=<<7J zRcmv@8@|605fo4j+}P>4_rtl&i~6&m2~U8sI>ib{<-@)e2@ux&I(`J}DrC*n?n-Ch zx&y(rmin*w(HbOw8wIX#-zRrnVBWmuTVM0&Qq*PxsjO6?qA|fKHHxQ}5lMlLD)Oo8 zdpZn#hGf*cJbW26@>YrX%vVwG;W+8VdO=lXhJ~m5pCKS?h;X~t&Ojn@=g-Z>2m^E5=s;>;d7*x`xuPb1oIL6y@h@`YtoD&aoMGlB-B_KJyn@OB;WV-R*)jvvuX zMy9^%gU+(WYpnUwVFwu}>7PZK5RZwZ&xN6c(vk%GHW2G7bM$M{*1VBViJ7-En`W5E z`k_I1AG?S2LHiq?3X}TyWgn?)|K>kw09H&0k^tsAJY)CX7hg*x1p6dI6qD?ZH-zn$ z12d#3G68R|O~1o&Atyfb3P1C3nPbbpzt`?ma7PI7a^R-B{*C_KlwK-lC@)7wyYC-)d@p(9N+%z-klpw@s>C(tx>=6Y$TMYWqD|T2ZSZU2v~1?0 z-O>3mjs)xJ-Az)1b>DZ@eK=nK`)xwvkWJ~~sz06o#n^t#;J;0p0Lm&>+#*shadl%{`L1eU%F>0 z&-?dV<&E_r@1EuA$G_*cZu}6G_N=yg|9QW6BIG#?<7-cIC!T z^U~7u(rfaLbmbkL$~(TE#~`p-*6i#+c5XVGUBfQuVi!%ZOV-&OLVme*eq~^OReF9+ zP5!B_{4-Pe_3Qau!bU-ZbwN{LK}&i;TTQ`*u7XQb1y|M!c!a`s>q6%R!Kz5qJi|Hp_-xxT}2~PMWgFQ0z&b)b@60i@zeC;shZ*!UB$1a zil^6$g@lr~)+O%(OXku`7HUe~ca?mcD*3!#vP39d>SZqnmaYvMm!_Bg>?(aDlmC0Y z6j&?;Y&gHC*kT!+Z*HZ?Tb%DTZ1fM#S~?qRQ}&^aBbQM&8^a;oDtl8?s`8`kB{H9A zQ~pf1Tr;D5e4$MDR{3aKx#5rU;kGhUn~I?YHaVlBPq)JQRz*)+h3$`uTMOkBo665` zE1WVaKZIAh-SVsyk~p3}D*p|ypxT`L<5rmCb~3Q`q{V@g!Ou^I{y0fftO~cOiU_KT z%BYH|t%|)>75}^{@kbS1vHGA*bxKfmT1ItxZS|2`)sY0`e*`-OV5keI0SVwu01)3` zApWOdSMoo%4D%p_$izdRZfyF$whYhI1DF3Z$JGcyC{)*fZy8qJMb!2E?=8bxE^lD; zzn=bwxkCusXClFFk#D-+x|jXElYag!P^6 z&3gFYQ#<}K1C@={cwzpP`po$7D1?-t_=p6%3tW5I8o@cDkF@=T;M#lz6L9QISQE0K z`O)dJ^o((LnbSl-HCaOS#Z~qHZ^7>3v#YfG1*$tbFFn5=GjSp0Vdv$SH|ZNQ59)T@ zydv5%TzUWc;mxc6{=@j6TZWz{n`Q<%8awJ$%;2*RYb@fXM{Zr8f6R3(RNL9zu{hD@ zdolD;_l*zFc>5pL@4VglU*)d<8`t>qFF#9ilh>WDuQNjx2Kz?;|7;n4Df#-oRlqY8 zdYWvrjPzt)TfO-&Nwadi5P40E!HrW#vRFiUB_XiYvV&o-uOK=c(5-#cov5Ric}!3r zN%GpFAnK_SN2CY}^6%>k?g30Du)C1uMg=n@+~mPsRrc$zHp+e&El~pRs?ZoN!zm3y zy#Vd1W^EJy_GWNj_>*RJkCG=1fD+BzzO2>lJW8D17l=M1OJI<+EC~m7w5u*VWNDm$ zqU^UQ%Ds&;+Jw+_lgf&BlP(>;K^)>v$PvBS!)AIT@I19$FwWwLshf!JQSzygY*11@ z+0h%M?_gK{PGiR<|Exw(COC3`G$41R815Zw`7R38)m__mP-d?|bcrgtWv5bV?4#@! zpATgh9yR@V@A2@j_Jt6rO#n9C{gx4+V??{4TrvJMwHJ9$acecuEAi|~F!^uPr_SGN zzv`NbX7!P`IuBf^#`M77n^<$z%niJLh2p>3Pg$)PZm7#79yHT>?b2aZJ(%u0>Z7B( z{D~~zx_oU9sCiokWpO5c=&ttT{rzD;BDBZtqhJ1xEFy_c&i@9?tJH(igcH|}02VQs;kY~OikKAh7? z3y&z9cD@%eW_COpRw2y%_2=fxgtH+9fL_zm60ulEfI?wO`%5%G^T}+aetg>xbLV}B z`H%%W6SylbCZKd9=+jJ*HY{=kQ1PTg;>tXM1DX)X z*+3|sp=7lwVfTvpQyL#{%Yk>G_;70mOKFM%Y4Z4D9@qw{NCr%mZZ8(aJ0~$oL@2lQ zqHMV=`9LmWE02$+ilF%viip1E=Nd1a|6ydL?=CC(eDV!LibjVNIeZj}3ZnS=Vls?< z=xjOWQ9l}>K%k&vvHzgs889;>D9&?ZVc9eYNoI&!b3l0-acA{PK2fcj9ffm<&S7Yf zmZBs!)jkB`i~2CiX4{;QZL+c&Vvpo}HgB;CFRieqd^spO=nRQ)(3&D4$Cbprk~*ws zT?aZ~v)r~2Hvp0~A014qbuGDac+;IA5z@n$o^8~Az?dZ&Ber?O>+ZXNq*%E`Az`F& z|0x-98}!)Ot-J0eH7#jr{e&?ncn82Ty=JTRvukpdLV6BI%k1~l2QL;Kz>@JZ&c@;u z(~C0rnMn?E^gI^SHBZPQwA!S6_XNolj|US&)>p~q8Sf!Hrc2SBYvx7ojycQt;AHp6 z=eB+2efL4ZtiFP2ch9h_=aixA)(K?GZack05;h3yjWj?!p4_P!_+ej< zx_4<`ft?Rl66U7bh)1HEkL?*HkpR#JuG7`G8wD8MZk$ot(wx4>Nkgip_l@8HL(xwN zE^Zv9h`Y&C6U6vQN@I-D9tmyxlp#QR2(Xin1>k<4FY>tM4qMOR#&Zl0Py59HyC@J= zP;wcAeNPlI=9|mD9R#r#kt4~B%l$-{*%WoIh5U@2R*CIS=Wp4&8NgD>=dzF#gz*xP zG5|RHIp|z86bHncxUxMLLjY?!OXAYE^K}4I9M5GER*e7=7N|ONp{%S-9uEjEA>D*K ziy*JY)L9Cqeo}DOtF!9T(o480ojF|(!1u>75xeLtyzO}eS=V07(Da@xhXR+S+G9vU zP%edwP^B^@RH7MhE=43O^rE}~A%XivOqOkr?$muP8^{$S$JlRRYz0hpI2ZP4!USb_ z2tqqi;L4gzapNT&_(5;DqAqyUhY!j1(SS|UoD(|+nb=?oT#K5-aHK*~m4KMS6r=L@ zOTJVJ-&F#b0X+BIhSB&iagK;pif1D9fF3={SMe_&m}mhJG7B^j-$MjJ8vrg&W5UA) zkjX_pOh&XQOFkHBG%keH)@fo37t4?x)^PAML#%$aTPcDD$^wlNR3hZV1mKuSikP)< zn_lYy(27j~y$DSF`VgpC!$6WKStfD(o`vgtgeZ5C;}T(pRf%HR`hW-xgW-_9i@#N} zyiXEguN>_qd*rw52}Hs5Y4%ctjjoWj@@o)&!KqEv_R5A7AEv{$?{pMI$@lRu#F#U3np_75_J2GzJ%84sx%)7?-#llbr8E{-W$Rp`9Bs{q=Ts;LI$bS!TC*aEJ z5-5MIX+Pu%WtoOZd!)XQiOS}J3Vc8GfEM%Di~19mx_r=MDK`0*Pz*+~e{$jxi{Qsi zQ=wdgwI`gDVDlkrFdrq(DP4)YhLEh}vz`SrCH*LVdR_bEYD<{%T{HkbRfdh`56e?@ zVZ6DBb+iDG^y9*-G?5q{Nag}R*C0_ogV_ZcnugoqA($y>GoR4085|z8I|-A-^Oz() z2;(>@a>1W{q^at|WCp0d6sE(6elVQ9vmqS!hy@vt=f!@%4oYA*vhZb~cN6eFDn&V( zgb_lvZAW)SC~5*QIMFI+5K?A&+DxLkC=Rq?In5F2Y;X&zBv74$OOCEp|5FcER?uSL5l@YyR zkhmbmf&zsqSR}`!k?65%+#L)gBt?aq8UQV-j|3Lbq{2?#hg`KqWPX?>)PC`{U`KA`Uw{#xg2#K2egEsln}fg zlh@q^=;M!C(g8BnrVfbF=K@!%Hu4mO8gl|*sToXn+oDT>W}0!ItznEdaLPJj(^^z> z3nXb8w)4i;^A-geh@xGQz}fMF=0@m;5ZI($WLgn9wgC1a!-y2vNMMl#FAxE+?RUd| zaJOkPO1?V7CJ11BgH(ehXhHF33(RdTkfGmqAA6^jWx8)dL#n}9zlaeMJF%m`3c1$- z+UtgV&P8TUAQe^&DefU#ZlQu8U|CDr*wU-l!TN7XV2x$KqL{VAqVEgr$&HT9wG$`b zy-Tq^xpQyrNs01ZCuVjPEuE}7MBV<)=J*P*&(iu`pHF-`3j@X5zo)me=@ z^J&(J8NSCBPa-t;qEk0~UUR(Kn|zWctSsLEi4j$VoZ!zy+r;}j?l)SIaHk??NmzO6 z!ARuAl-h?)K0RU>Wf0;88Fa14&H)}5PX@PUp)piV?yAQrSt6-T@{6A=M1&4zo1K>5 zb>+Fg9=CSLlA3?rV`4?CZ5%bXiZs#E>bzC)njWltF2G;W!!6ZEjSAg(n^JV%3LWXM zOZ2Ma0;Twb06p)YPSFG+QLYovTyhW8a>G+8oP4v);R>6RR6QPW!`) zaXEfO&IV*iwb^c__3gZ*=>Z#~X73@2mIV#GneX54d^+`3@NyuyVTrUb!aXy z&C2j?gAT?-B8hv>EF0YGar9Si=o|r*Wr&KBBhdw}m+;PiERw~BlcJBL@cltWM)D>r zXB`f7t2Lo{PUF4SdHx}1I0MwDz`p0WZlZ5H8vs)`johydVjZBu3($!dTW%qoR5>xE z)llWUWBS&V#@VC3(fi1(7+pqV*?TZ_u+2BR#S#lh5y8&r)X&=br)xk=JS{+$3n+yGSPz#*Q4E*ia``c>o86j@~*Y8AyIGiVwK(A-Mhyl3zV@ULzE~Y zyG7s;D>~OVEdjRV`a2ptUIqQ`1my)KCmhot@%Y&oK#9j(4+xFzx0R*E$%xTp`5{+l z!ey!HQw1kBBb=Sh4;XP0q?Ull!*;u^L2@~?biJ7>ChC@V50r;ZrGax=Kxk)(?ro>H zZxb#JK&n-7w_PE%ayv8HO?TFIGByev1gGZG1pctt)-CflH)wDyROG=?pfNBV&|9rA zT+H!`JemmuQsaRdLZ%r7_OT+7>X-BM-L@0sKte#Fh?8*Mll1#AnAUny>)Zh?2B;O+ zG7`nKp~o%yf*2uS3P2|VcQ59GFo2%(418H3`UPg!0l7SDiEt_=ENPZJyJ^G&e~1!n zAX!Cpp2=TP<7Ixpn;YhZNzp)c&IMfnaun&R18t_-M3KNr$cry+b@Oz!Np3xVQ~Abh z%Ml0YaIDq!SNqkm0ZAfea(CPLUk2?mKX7IE@<#I4uGG(nF+U1m` zM!Tsj3igF3@I&sNhufXsik#fzov|Ac3Z}46)zIoqK>E9TRlspL<1(fJBml=-EdjU! z%sRGNDh>Sk^yr>$$cGH5E@hwFk@WFC<&Zurt)0o}qN@>ZT+9Yd86*`;v?&gd8UQV* z5Q$hQ$qQC)0SjZ?ljZ=59x!{ryL25`NChk@5Gk$9dX3#aR2Flx0K*71X>J{{F3=0w zdfCaHG_Y4rYhQh%q!PARdMWh%P}!Y`%TiouE~kQB_d7UZ}_0n-EzfE(B5M_sKplQ1&krw6INm zW8b?Km%2eBw^rj%aya(kPYTLI!q(CxWU7*qCnIXtQrFXmnb*irsty1*jdQmQNhp15@rn#A@zipwaz1LKe{|VI8eZ2*Jz>ON?U+J ziA(NVXKcJKWHsat*YLCIb7pp>E>^!?opeUoD!^+Cet1h$Lfq?4CTBeH?w?G}ucznx zO*&UEI+^TBn6x|fUGd7BnD&GCR6vS15x=4gIj-?+H&vd&N7?~11qbS?H(xm2?x znc-%kXHqN^#Nq-~$0M+b*tB1JqKqV|%au!{HO0v@^rN1to@ap?{$o7jQlb zDGrU@)dFXS+KL`LYV2!M*#gs9ic;Y2y*wA*xVsRHN*#4AD7_Bke|I}`@sTF4RF+pD z+T$@@Kf5PCuW?9Q{xzhxF+*h&dYs zQuKaW=7W7xo0Y=p$k4vJH%kDK2K%@bP=0pM)urm1fpM$?L{M=I@QbDPc=5P^==+s> z_MONJ+eegPo0gmiotFM7p!M^8U$Xl2`Kj{6Mc?1Ecx+;~hX$sWhx3Gwim##=)OxgPDz4kaNf^3XMZfw_(O*$jB z-}Mzlam`{?|L^36@fQT)|tPTGE9hJ0-jqwm9wMR|(TZ;N?cs@<3Uw118`7(G2? zM4^B5P4Cn~IxA(u1>6gJ6C*5Pcb^@2(EyHm^%La4tqc()d|u<}QG!563VZBl8aSL~ z{#yrBqaXiO#gL)Rm}rFt`DFt0ke`@6$rNG|45j$)wr${|IZRamG55kY)4=km>-6!P z&+=UfSSPonL!Sbg@ zZnnQ5Wdi-e#qWm7lczGPRfU?Eq#}6Za66iicDxIQ`;%B+a+;u z+p|fO5^tMJCzLRxEslkj|1ed!Ya*8Tyn+TKfQ)E4W;~#@)q&s_DI?fB-3^+hTNpPb z%@_L1<6(blq4l`9f6ZY=0pP#6(OY@Y+lP?CL#W`f=C+jSaL15|rFt{|7&!&}^$5g5 z0RSVeSfcaUP3I8NXCL4M=prQn=5htd=(NXFb_7O@J^iXxZDG7$>qp4>6MD2T^N9egRzx{tytP;DVMRt>Pv!s%q+leX5!XDL~tO0-oS0JP1o zwe>(VCZcuDZ5a{))IhK;tV#C((HSjgf$nqM;&uLcw5GK+me^47+~q4n`-V;8MfcNP zXGV*6tj#~U8Mv}`)IaUOzUYiPvyloKO*bdY^>v%uxT7j@$qFjq;nUT{)VuMZm?;KOM zM!wHXqc?GmZOSdV`zvO!^}YuF&uVQkLN+F=hgdJ+S;d_ubrQxIhZZB#25HfYsJEQ zbOWHHYm4(|83_FaZZ`gXH1R))KoDREh<*b9Q@Iz!3L;5nWf4iFyu2K>tlX@EEZNO@ zHbu2rmZw;Sb*DVCdOkr8dLED3{xS)n0M3#hR5IhJtWr%kQl5jHQ<+%pkRAoWH z?e0fh!Px(c2NI4v6~zZZ&>51MEKBcw5Rsi{J9hJI5pgx^E9(zZRib9r`9enaYUG8l z4HXXdS`CW0RU!qC0F{DA8honrL%_6i4{Q3f`wd+P)Dan=5ms3w#*-tDWe*&BJh1pb zD)&;T*wlH%`5~cw4p(V@Jo5eFw|$z~lSnDsRq42@^g=tW7lW4Ye_W(3hhNoDnkNlW z8%-A`wRDZMZgszf=obs^w}9HC=U)~2DKhexh1za=I)A=FG1~pC9~pB9Jlm zZ`IY*H3{su$pe?Jue|i)k;&s%LQX_Zegpf(7bY$$q)aYwSA$+$lx7`|)LsP*=N|7W z+r!y#y^&XZ zN`8KysQHTJeKK&*`6p(q7~yPnXcVY@GVfIbv&MpR-u;y38O4^g?yA!``qfYOWQEuMX6-7=GPq!!6x-oZF z)nvYSeOY$;((~QR_v+oHgAbE>im<^;{6C*1dA*J|UM6X8c)c_xk0CChHo7OG%I&=s zQ%2$jm8GHfLE^)>^B=zpvlSB8->`MAtiLVV{CRzb<7)ilU1dPx zkN;V@muLL*|5Wb1Ih}!#do+6KiuL%|s&?1&2d`5DKD?Q737$J1mXJ<=4SX(6;x5S34Fd#>!{WIlX3WR+V%aj9HNCU}M}{dS<>NlRH{KL&t{uBRR2c~K@aJCK>t+f;wf zD(Y2YEK`v8x#(8K(TW}GYEvpdF=N?~DRJ+M28H^OoMR*OhoitC-vHv|81JV&=gypK zl1tb!$W-03E-oRfo2%&4cRH#m&m|Fv!fx_Ggv5NOnBD77L&faDXJcIvPGhCqw(u?N z)~&K_?^Hle{^z#~H@eO^0w7)U3Bbc|zL&EBCRVy*Ge{@TMYb#MiO6?fXh%0`IwKvd z&v~;}&>Lo7<2}VlDr4tLT*s3uC%U*Exj|$vlBjSxICQUW#*RmPpGtxRo@sNcAF1s|l0^VC0vSSDdh zcsR<`l=a}9CZxMWQJYOi2L2{VdTr!0{Jke1C$@c2#hNm)pIs)MJo>q2a(%eaaB|{^ zU+Md-SiCuZ{D5jCGKk$PHH-4I-}Q|-f&|R$@~vxa#SmEna7W4uluCNrar6?!pk0uC zpy@u!Xu>7w4jtp=Wv*0+6LU}CWpX9+e+mPJ;1<$-N^LFK6`psl}WdmjQ;DQ zu-d||LH95i%KcuiC2D)s~HX7Gjn5 z6=M3l6gKNV+Oy;PMzrFK<e!c;cBa79!i2fsi9)(~JAquyhC6KMaZv?L`4>mDc{q zfoV>+V2BS%!-^P|!P4r9FCuDjrbfQDcj}muZH=k9fm#7#!i1gcdrNPB-Wj%wzO+sZ z56r?sC zxQ1Y?10_H%i-N^)iNsYb6B1meQI}pBdMf?E{q2qDxi_oXW$%e^;-V-!+QdoggEY%? zj&Vd_cl_)!QAsMwhDkcVLpgeyU7bW_tG{Ih-m>EHKH0DO>y1$jyF)vw>+Jc+HkA6md`{a&7zCA%bEAM+*~X_ zv*#V1w%*S9@>hL`j)WbxzkdEnsG@6X;_gh%^6&`(y=OC0o#^r=57QZt)_xQ7li_A% zwfh1WtfC`ZtAmPWeOb8*9RV170doo~FQAabtTA6KG2g0CJ7__LepbL_+88G}i?)F{ z1t3iO($jIV6GAcRshzY6%QHiT{C#lyFg%m_iUYgXf1-$ymA3@nxqEA7nL~jtvfUKf z7VcO}LCo^@3V6)D1k4d#`ihf-wKiM)zz0AI_fa{7!YPRbyk#?1d@fVJr7MD0QMZc4Uy3(;hc3<;O{01yn z!<*R{JSQNF7~$KpXT^yi5y|R@Nu;GCkMyTbnil2pV?W7ly`GLVa7$0iPRqQO{ka+C z_*UK7Md5d3(JNZ%r*+BwxxV%k_7&$s=di5c8T_c0iC%|TpN`Z3<%n-9DujU9_f+vR zmAu!9uv;916_!HHQYijDj3Q>i0hp8(8}37zud!m!NsZ+mdnPPm2@iaf&B9-+I7cg( zi#f_13(GT2UxOXa0^)joIAe^H{|fNd2kf6vBa)Jj&nXIO!BU zDo9v%O1=0PtV+NKskN9sg&kR@$HQv~JMjA$eLEG#iVx>*lp;^cI6APO()YY?!yNP} z@0TykT0PoVRmJ63ci)K949}U=IO&^VQO8S2drm9OuI)rfbmtLn_S(wSqRR6zoS2%8 zrc7rW%m6PWi+8GMNfIrTi`K5*J(#!bV2Q#4jY9z!hA<}V3wwm$1DHW25A;3vxH3yU80a>XUU1lNC z>~uuX>0Q`Ez!<7V7wM-HZjo*-?}S+%J}XJxIK5H}6Y1S^W~w1K;s#v(-d{h6PTO;6 zfvtC5ayma|LX`KJimgr6oPrmg;+57?Qn3_C%R_|6^cXxHYD&ZHd4RM!pPaQ6Suq<} z;#_%(+Vbn2J9kk6P3QJ=QSnL{5Gg`Q7?f_7$7jao(P3|gV4|7B>3}@_b72k$Nk9M# zdw@KWj@%W^vW`7v_0FZQ^++u@U#N!+T&#G`OHH0XMut_Fn<+oh6idsHJisDoGW0)Z zNGjoQuX3Ru2!9V^rlx67q9*iW9BmmviKs8 zHyGLLJ|I_MLDNy9OX7aUCNJnHmud5`z~XFzsF3iozAKsmq?scJh+?6PXkQuqAmRmm zW`O=4i?T)cPI)mkY}ys8*7V73V{OJ4Ym9GTteV9KoHK!Ue77 zTE2_dXVxY}Z8ND*9DN#ZW>vAQ89sD)bGj(R^FLsN^AT_(<|7EXlZpq#+>0XYh+&Sr zjyRTkmB(I-1A{J4RyOeK2gqLr6EOZNCfD8caqiIgt`ECaVzg+Fo_X$!+yCrE{JGnB zzFheq=N)dRj``w4$10Tn@eRw;^r^0tvx}7(Do~!0BLq##+>XFW>icy1I<~_JHP1U* zv$qAvIR|c~{$MIF)XBStcWAY^@{|LMfD0RL3W;TVI<@={Cwt&?<+z%%4yO6W9TAqR zcbry|>N;*VNfIpjeZmj8->y!R$IPS&i%394b&Yp!K~|W+tsRola&TNo|^to`+T9`o?@g2 z^H5$IBJW+7+p@Jv9L{YM+Wyb2tvBpFNl!h}y11++`r8SQt~YLCE)Le9%Kp;|X0pZI zVCP8X-h+ADcFOM6I=cCTa^&{eTRR=&iv7p|5#9!xRzvz0Jva9FIr(dKS~&30^GkVtvPQ3$=-1CklF3cE=rS^4|Hdep*9pQOshyOJMX1+C)dFbglAz z%|Ra~Ii!_lEa!3vM?Pq4htO0wG&bPd7nb(bHAj0SY5jI+it^Ue{G`d477xWl71a<} zU$5*?O_;)mZyO3#bJ2Y&zWS+sWB_#7ZFtYYwSN7)e%EyUE?-pwEz7dc@2%yabirIF%+7p$EV+p@`@JmX%&pZ$)Xyzs46I%4c6`QX43+#St!k?2O6YD^oqRB1zg=VG@R)~e zu9Zcsy-mn#;;h}?`(vfYHZN%?fCTCQ%x6^gjzUyiQnH&=@k?i|?zz71DA=~wP8Rnt zT@@_?!(M{moZU}VwlE}n&#%Yd*{@cMd%l z?FzV1KRJ1$cW(4&ruV!CUYGo`cOy5dCOW!4ve;MWe&;p5?Gv+^j!!OU&c#p9CH|c& z@qI+Mn@Dn1P1S#T(evrm^oGIHWMeD-92d?)ppFZj#? zKsgFH+X^7KU-%3FN&5nP0ptL%)!5{1)n^tb0YQ;`zV_vZ*B1ou<7=-^(n%p2n-7L< z{*0y4#m~Y`#sJa@bN^Ev))EQJfYcwejiA z=xX*qs4?mW>1;Z!%FI70ZU_6%kMTsS zif2g2KWn-kJiaOI=il!S{&_okPKHE*X8lN>$2}0&=Z2Hhr9KT54#>TRxjb2y)dkgvCUd zg+UaIOmD%R8q;h)7+flfjTD4e>ckL&Zg?c?23#npB7b|Id#!1>LifK$Qrep>sWDM}5!ZsyOI)j!CI2L)Ul+K<0g|gqsc2w>%)h~lLc|mvG zaOZ}fCWP%umiDR9WR5W%6io+yIbzvM;!)W@Xy^Z| ztgT?lqxaG$GY5;^t%e3a1Mo*p*@uxRDbIWNb+&TKcS{9%_PR+dE4GW^dRnij`!db- zLD-WZhakOtYIXlHrK*^>`MQ5oYb`{!3sPgohE6T?XF821G`qEkMHOB0FEC-7kscqP z{jna3Y_=Wrl9m#rA@k2-?Iq+Etj~Mr>XlbJix&xFdX3j2_2z0Ks)7hHSoJhMsPH?z z09L+jaV*oIU{FDyOlq0e)0`AE6rN4lU*U85!15bYl4zg`3BoW3z4L8@ZYpS47}^8S z&h??{lTm5!7hAP{LNOMOuN@Y*hxoGNA(7&!P+4BA;82Rj{WKdFBle=0l13#VCt+o)6rr88!wZ zYh&vul-Y^(F#66@%Wu%zVoVK?;>f9*VMO|dSZKmCyB{dzhXSg_jrkDOU3g;Y)SH|7 zt(VtcwDQoHt<5I|_u@?F+|^z=UD179|G%hu&$cGkux)#0LLiNhLPDs9(5r#aK~3mQ z4NX8%Lq`M+DAlqOLKVc&y9NXVYylLoEDc4f1rQMxHK1Z&f?{_qp4|8IydT~lkT0`s zxvrV>JdS-&UQv7y{Q>x=S6E4v=X>BjR$Z!)x7r85w^e@Z)XNoS^FW-qn|pbtxMhuW5q{l-$?hBmc97m+aa~^ZQva*bUnBJM4rLb^_RRfMfw$W(Vwg9 z3Uwcr(L5~Qy`A*f8uM;{fYY&+TXL#3AG~c&BQw#3ZC`hVpP8Q1EvwVWw7pljXZHKG z!Yw_ks}DE*+hF+UorA?=!5R9(ZNrDZht41ilCnY$Ah+fX_f(Bo(9#wfd7dKW3(tOD zJk0JqC2u>|@Xdbhv_*Gm-kS?=dfk%N|Aw@j@rY~VVkQKdhv%(YrOUxaj0#!O1*tr>wDaY$I8kH9wzEBO>fj$ z?Xxi7x0$9gHtO#1xkR|SP^<4X=Dq!MY4z=9ecQ3IEt#LoM3@#s53h0m+Rx=}zAeVV zW8>Sdey$J~MH}TL;foQvrG2+s%me%chZS|e*|{!^5$=ssG#HJmd7*>t5#L zFDHN8KC|)r*uA5_zMKLS+n5U8lUZu3BE;r4XO;2ET!+<0-0?P71MjJ0+gFNdqr?!)yufpQfsMrjS`Q2r0J<))&%L5OPxx*_$1fx&;w{ZG(A8Y z*;16KGaKHFhwdxR+ZbWZJ?v3_@z3lFtwlHE*!!q?QB$w#Nov%_@scbhI2HKNHrgn+ zTx=RBF}yDxb6Zp6Ve86Y1o=z>c}k8=52;Z`o<^I|tsp?)a^&99a`x+$b8^wvRhxW2qp=gV~V(XO6gXrfKO*4xv85NW|1Y|k}+zF^~3WeABo+M zKW&ef5&m_l!J4A}S|tmU^pHLcFZ&hkjm%hw_d`8iswl_imuk(Uw&uZ0R%FP zN47PRH1^$rc55v{?hC>4#u9Mv4_CO#0uyP6YoJiuX~X79^4rSFV&B)m45YkEO5tn9 zmwnR!_(T@mE)f){Ys?pgd=niid%bn?H&Ib04Wdcwo=~n^-msV3)aB4?I?1utp2QsL zl6-WLNO2WE>`Jjo>PHWIyzH%(9LRj~F4`&nk$SMAjw$`i*5#!aUp#$=)=y4k9&vnY zIRSO)9nIgvd2;3CGE=h8d|r;RXdKkuZ}vw27*;6Sm8zY7{{1au_iXAyo*^arFiREW zZa|x|JrEH%Q0e--{vYT50izr~N<1#F-NC!UpQ2n21m^DEh$g%5I~Gc6xDy7sFTrCz zx|IJW659~3PFNKYuTep^xt86y% z(?On1!oJD8Y9VAI_SNLqj4aWt#h|0SL~p~6oG+(1{btiGdtdCQe!3Llnop8k z!Sag%c>uQ0;|#3l8Q~_1nbKhbz%&s*r8<)uq#+J$YRdc+2PAV-3^~Mi!u>mFGQc*Z z!OUQcXa$debyb<<>df!Bs0p zuBh)8(WfhNn%Rsi5qa!11jr1`OwaqcqO7q1$V>%cBL~*!V;)8mN)bAbqc=Z=D<*1V zc2%LS=Ag7DQ`?xwB%H|8T+nkAb2Mld=PUZW8>Y%LCNHR6_U3Y@_?P_-D#a`n5{J& zlxK)Sad!1wEY)5py-&k(5P246@y-pnNWKL|RQ6Fg>(%JbYF1dksM59u@v9EuL= zjl&dO-ZSt6DNa+eU?%p$BMr%MXR9Nvz_ml$J$G&i!k!Ib#6}BSs3--gPHh&4KD&L} z*X`&@=-@1wV_o>jcGt8UmjMI?4y%0q9C9azGfO=_6_n`IXvBD=-1IH%UUVeu75VA| zWfi7|eX8&_GbofN6E0>Yr6H~-f!z_tOCG2MMEK8H{oe3nkPw2q*q+3}?sJS2p)|u~ zwfj7X)Cm|0!4F)eKhUAGNoWQSI?IAtbJYb8tGYj{F+`9-s=5{qHq{T#GN|kPVZ1Q| zM?*-Pr=!3=D8t*IUD4dvSUJE^W^mQ5I9w!$IK2(oZOQ$*xEnUG9uf=wA;Efii3mJ+ zy%GGtB!*gmy~46Q-df2sDUl}CiKqfU;fvUz1o>dFd zC88f;9D;RI(PXgkj9zXp2UOZ_`okcst*^d+QaQ9g(E^}{@^r8Jk!-`GnyKZf{8Uk% zZn!M$8yhY|-RF)V3}qBwSw`@ozRGxpHT_VFNR~#zwGK3%TCP~wb*?c)GAri^7ZFKGfe2}uzGo#x|syb zjzd8u#1o|%xY#4E-_$gY;j)$Y#3zyNGga$sl_5Xa&DcVlUp_1D2b$R=DigZ6KqQLQ zdXqo{HUn`0;i6ssrz_pX0ksaI5&AMS1)Qk>W6vkA1<_vwenmlHRztdU`qe)G4&pgyuok*`it;MgQ#>X(Ey{ON! zcpKtarCr%$xOjxk*?x7~VLj9p|E@otM6Z=dZ@erxyOX0=l1$nxvcV3lBK3Y7e*4jt zO9`U9>+(v%?@d*-_fgsl4|1wYxGCz|j*8zj+r_sD{VG(h&FLPS?aE4x-|H4VJK1>| zu4KOB#E^C{Xwyk^EV@Nk?eM#>p(${=PdG|Nl~kf^&y;_xEiRIr?Vl_Hmq42pUpzO> z|FZJM5X|8^_*s6Bb!n5rh{okmI>TwDdY`+>o)L3i!7_Kk}@J_tQD9cD#ULQ|8v z7j=LpY%Lo=_nMamL-0YY(WG((UF+ayD&6B4gTAh|3GA6!pU`?vhHZPxVmTj6@b07S z{-SZs1F@Hn)#RoG8nlPv7{^yScJ!U7Ig8PuC->41c)sofC3++(?%o$M!~oQV`(dJ! zPM#=L-pLk;UZOw$Mn6`Co6*cmToz`KZzsPrY7Pk98*(Ls;Q@s$_8Ur+&G@NvLl!&*gD09ztt|x8}`lTaUTDzLyU4%6==s zW9G+n4i8N9>=Vu=+BfnQm%+5yxjD1e`$#L5^i?pXfs>pC%Szp&Ae4sdlF~#;x`)~DB`qTpzx8pISDb+FHC7f;Ct2m)8MDIRef%k zKM2~e0~@H4`}IfT^U=#;CcZ`nl}eZ9BU#Ha(0hl-^Pv z4%#K(TK*>8S7$i;K}8sS`1nlR%$9%4mRfv=r#h>B?w?E5UVXJa=X?Qa+m6N@;kA5U z^L$QWPRbU|8SVGC2<;(7bypyJRBe{?x&i#=2gKZcs9&QSO_cf)G)UK`8JIl3q)f~BI_4kSSSIToap$C5CWS7>vzt*VCEk%2U zYrjRFO(YHI{SJPciKFv{{ z&&A#lC%h6N<3Bn-5E~z+08ho@ei2}`K)c8Hph(oMO1fVDR`tKLyX?%xk*A6co&+oH zmfk~38ay0gPN((H(B4L~P)=J>QIfU^AjI#f<-|+ifDZMDDu?KjJX3PmM<6?EIg4=e zv(hDxKOd30z-`7uX`*Gad!}kHZZm;**N(QoS43`|2HoGawx5ACj>%k5P&~`_jVcT- z%xE*9lg8IT`XNYN432J-9C)m^jm2-91T@)_A`w|FR!v)~wj)a?@INGW^ehnv(-fM- z^D_zci=>lqb2dKpoN3X<16od~cs^8o&ghQcDcky-qJnm9++jLei7wNou#w`}*Sp5_ z3?&uv*q22@;)j?W2TxsLDJR+OJgG`TXZ1m^RWFoi?m`{-A%+wKfA_m<--F2DS%$1k?bs|uX5xYFMa-mp(D$M0FkY-;BufC2cj6hl2B_^kseGn~B=t&tz6 zRRn*0*PDXBH-EY^I^>FzKGYEx^@^*C{^l{JgAj&)_Ci1Z*QQnwG7NL`Zfd9%Qc}g^j*OKneec z#-j-YmHEU80kzHoXc6GvsXz27+(hx^aLKmrkkiz$1C`bo<7Gj^PE;>iN%-c+h17ZN zJsgyL>E@^JZt50!d0iP1KN?B=x8~0GyKdceiLqviO65lkPxF` zLb=ppNmE|#xxrH8`S#mg?afN&!TL;1o$L(`~)l3UtMhx0sNGF17lm8d+e?EKaJITu_~yF+-SMpyF9JoZah`%#xI z$Tcf!M0L*4CgpwILxwnTD)&S?E%vRgy^mrM**&nhIekAFseeK%-fz{fQt1!2VRS+a z&r7h9*YH2D?ox?nc1L;sws<6{52XdN8(QGGsND*Ryd%>w#$9@5?VH?mbSzJ$e%w^XJ+cKOZLlTwujj2^P?8@*_&paW0q-p~3;G z$qZ1nZ%#47A5_VvhjH(e+j8c1j@!r6j$k(mv$f>qFMbBkWCo}gBGcN!^yp;K}8M}BMZ3fDzRd- ziunDwftr7bMz{7FqQyCP8}y_!8N(UU9|_?OOJa|+Bnky7}EVP7|mr? zQs)&pwfjljs``EZ{vZ#)*BA%sgQqSE0dL;!Z)p>L_KM5Sk$E`%CsfiUF@hhQtWfQB zzERKgwBF$w{%(@4YL$@St1=d>cY)3q7o!S1;g2J%9ttz%O_wEdFEV_MNk?LI$~^RE z9z%Jn#DeZnQ*N{T`EBl5sH2)KwF<-;>1-_jYp6^4?FY-BsMcYj5Xx;s8*1qMlC39- zx5s2<>)Zv`L8Nii!5KNdRhML)%TdI4)Cz4xm{A@A@gUAwY2bd$hVSPFFi6ESbNXt! zI@b9EokjR8vv_@8pD?xp#EO z&zIO3lLxUS_G_gRhz!Syi&1yGKg!nBFE!0d?H#Topsd1wqJU>F#YGqV0&}yof5^1f zN7Frt$kO9WI#WZjy0scQcU-cRo7m?|0I}oiZ2Acw`d_ z6ZFvK*Rpnd4TEw_sF!I<@H<8rVv6{vziFyxfBX8~=qtERMX&$>C8ty(RCs`KB5iLt z=qVae$2Q4H{rWf2bu5&cMYP?%IQGz#5|+;d3==9~)E-_zI!FGPQ9ra~*!FaF#eAbK z7^*9&S1^;ZNMndJvR@5-yBPuhqZy~!>)=9v4g9<8iaR|zvFn#V-!KNk9tEs^t-xN| zgS&f)o$1QsV_duKEp9^!Lp3>RM+-tI;j^2^2ThfJA@Hd+69JqR(h^7N{dVnYx|Lhchtj}>x+4S~%g@PeZ3Jxr1MFdc=rAD0h{psT;aS`7QsgQ{vNCz!ni+JpVzR- z;;Rwi%hEc03IB-JfR!P;NSiFvaL;h?1HU}w1G5PHrC9h?7IIBt(M!-|r-zQvWFE{t zofWmD3y0byoBmUVVd%LI&ZXu~W>K}+b3PjkcoUGZI3MQp$}6=|Zp;|SBG{L~RPz1g zD5areQLO4G(>^_N{aLG0PZ0gluP$tewiL#+@LL3s)fN21e_${b5%^fwFrQT9ZhM;L z6MgjcBSKv@_t<3p`dw3eynHrc$pZJuHXNNHW`pxc*x-I+SMO1ndNXI|NAw*Q(JnqMG90r^n$cM z>+r1?a>m7e`GT*-cO}@=hQocXpT-DI=TY51W11of7X}GQjze&K3AEvuOFW@|9ZkN$ z-}vK}`?_?-rx^O1n1Etc4^|FrsaaLT{*=7OVz-;9-hN~ZB58f-5r4n4Uu#$DuFxMn zPt`<24FykNxAEz6{Jop5nMuJcoN$H=cFJpr$k;fZfxd{B?D#JG+1{CwcrHKfzi6_K zRW_9Bk+pAXNDq3akj`YIH)NfGE*tWB5i%l1Ez%G;8;N<%v~UI!2m4UpT>*bl-P7aT zNy~+>K=6xc%lRc4B~YTfKS^c(XjksP*lTmA{;qlaOBvsuG45<8y=KjDK2jH@rh^G4K`tvoS~>kg%zd!+A5(1wR&?C$2JHWu!xDGfiR+} z_4{5Zq{EV-E=#(M%03z2KJ*e6CNZItMsnAu2pVgUU;BC&n;RXFAGVMx$ zj42&ELYkKiuCzdJ@rJzEv!!QVuDM!h{7~Sh=9VV7<}po~&>>cWfWGr)C#15f^!Nek zWtTSXDMGQQ8_oFyW{mg!m{<=c3k@YRc-(}EAN%{;M`99M2GRGmz7J-`dKzSSw1(f4t;jd*b-b&VRRGz}? z9ba~PA_W*D9s(xp0A!z64j+>O59Ev6#XvpG>oPmwEHOw&*XPnUB$^u%<^fd=a&1^Vmw!t?=9?^YE@FKW+Cz`9;K34(dxZbN z7)w`!_c)D`S<_mggE6wiX3W3rJFD2;UhidO(J*>%YTV0ck6Ks={I#5`@y?ss9p^WND8|;4;Ewx_Q;U8j%mh=JlbJ{O0ynDrsbWC|2k~G9e+|0${Una4v68K!D3!7P z*P95neuM{KvjB6apa-vZ&w1LIzF;w^e&1&_Qg5yQc`%6Z#o(wmBjXF|K);tBCz+Cj zt)L(q5a`rf6jpA%@wiVN2lg|FsxnDfw9fkms%TSnNArSIR}9RUmO3GpDniD(6!u%L z^2|&CnVIMN6{T;Ho;1BxzCbPN%X+^DI&Y_d#g~})F1tr>3~qwThQeL&tRw$f1DU zSjRYzen!7vQ=Mylqa-+w4q*K7ST^wF;bs!ufbfNPV`cL@P(_c1!h};za1fDQ8Y)Zo zFR)I#TP?k9Awg74mR8(~v8g{u5ZDYZuvGg&zXyJ4Nhv=s1@PNcn}Pku)h_14Ae4x3 ziUs*4a}H3z1Eu(q1+w9C$L(*_Q;m={_t3IoV*VqFUl!rOU`4VEFm730v;up^Zgpd1qj7S5^XnRmg>V$Gl+5IVX5uCLga*OfvP*yOXJ=N3(EFIkYkD*uJIHS@A# zWQt`O(V9xtF}@i0-sfc&Rwl|SQ6v8qmWAN1v zV%PQLqTTlVjAN~CI$=XNC*7MaA5&7Y4y%&w^qz>h07BKxXI$DP zfu`%4#9_Zl?6Lk-UzhD>LgR@cSy!I-Y&E3%b(lfep@`WS&{_Q=*g`h3mUiPj;v zT-8oQY@Jp^AKQxAC>o*Ev<1Y46CBHlH#!kILj5C|h^!RE0BwsJU4u|TwC_|I>}2z8 zWpt;tbCA7;S=H9}UKCv+v7-}$--1*d0lYALH2ky%C+tygfGO8f{-^q1!8Vvoa4?BQ zkh0_~Zv{Es4(Lbon^dpgwyFqcTTySnwa}@K03Vlv7S1lMV16`lT#%Du$`s{iME%vT zsXqlij-cx0L4SvUgZ&NDCEy_owcX(=Z?@Yi;(&otkn1-hzvukbeo*-^Lfl5s=D3r& znFsCiqCQjYEO+fIq0fQsx+3+z4ufrU6OAY^xKI7(rQ8ZWVMD3XxsoG;el+}~nu$bH zOX&M-5h*mjJ@jXK1-RiufWknP_kU2W+Sb8D5XJ*N@R|dbdN8`$zWxSiagA&yR@vYW zdm@3T-ejH0f@=RO%er^wZ71?94-Yk|n@VUdYRXGuw?_lCyb6`5mEma+D(Cne!f*C! zAiz0UOJd92*#+u2RRu0&I*GU%4t5nG=sB8?4}((+J)s;G4SHhe^0{-D0xovk8%EzR zRqXvW1pR3~9=OOFB7<2{Pz^xBCoI*3o(P)7qP{i%imIv~sx1TYvKsrS27irO@nFqfhOqgm7HRQFb z>1j2RHskugDkv)Yx%)oV63CI*#rXXMALXIRT4W6XOQFUb!j5iE`&zEqr<}uEVPtXC_G%I zgF@lntO~Gt!0S}lto%`=n>Kne_rZ`p0G+XWY`NCUdG@wl^jH3}s={Q$*3Qtmb8YR^ z3pfU)#bLb%f2VXWIJ{Xc>W4x1KabA|Y*SpcLV~mfHU`H<5LS9}z?>rB=I1eoF|{ZH zb2Ci{`uQVb?<$$$RJj%)O-72k4;f4%W;p~D4>c2x-V9p6C)MaL_W8>IWRZ-Y7R{!C z~;G+SUxII$oq!$%8EK8z;o|mjYe7RKK);-hTfZ$a2$ZiW^iuN|fbb)-hrK z{N7KkzvtDm)dxkpJ8t;a5rO_n$`9j}`kl1EBX103W?0}4HLedKX_`tuKXFRjl&R)* zc{a>=ONB*Fj24o+aA*3p;th~uLR+huOTM*#YPYJ;xAI@q5nWx)1rWAbR1pq3RT0;k z%;q$<+7~SE`YR?&3anXCU?!e~@eY9`{UHNppi9JANWvK#hkBdl~tqD~u(7kw8S0&WC347w^*#e~| zL!(e)0U`7jaiU-XiOerh862LMVUnc_i!WZj`u`@jQY6sWRy-S;Guzl$e5IiCOQ;ft zk0VX&qGg<|TzMahk!;$G(}Z)Iy#t&=;OpG8DSOK{hA6;)5ck|!a07q*I-*>`WHx3Y zKK{#4-rvI7{FSNdf-G%mEig_yX57q(Y^vRuM{u&cJ2_HL{`l&k$N#fhKfU@uxaL{Z zC?{9l>!sTPuXWA*_m|}aA10E%eQDTxN*nIsM@k;Wm+xZ7zo>kb8!z5o8t@u=5NpT; zPV9a-ZnjEk4zG&Y>5e%}(HlQxbragMBVFfikooJChQgZg$9)%()8~FpM}^#c`rn1D z32y41OgK7O^Z#O!duInnoXWG}3pDTSU_$SVm!Lr2Xc~JR@)9k6{z9N;bejU6{1WXm zz&fC)m2VTfQ6*lWy86CGh3NwCQn0oXKMM$z6S2%0`9i{x`Hg@{v40pFLP&$0hE@qVHQG3DArXlG@Jy&u$Z?z$ojUVUrzlt z52J{`MD2%^KIBi7qj*#vq}$9M++pPOkSBxfI`3=3ILLeVgTFK_K69DuNK z!U0z>%mId0XkrWGh;}%czoYz-1mY^jN5ie{sLo{yPGVqJWvlnV1tTi}YOR$Q@#MJ~ z!hS$|1~mYpXY7gKDEy`A^wy-ZTK@~0uM%x*TjG?9 zmxoP0UAJu_NZ{%R*(|JDwzwZK^~6CKN*J)VEN@XH2GM4|To&9s>g}w&iC89r)=c0* z`Wi!%Sp&x9Tu>e#*5r)Va>s`x1IYE+9KIaP2`52ngiW$A2H9*r+#u?I zY}iBe!SzOATu?#v5|;(4NAW-mNledz6Qgi+6s%r)Kmnf3M57EsCRqxtrA|Dww(kZW zd`o~P4@TkrJOGE+OPt{_-e&ZU3SlLNjaC&>7s+MYbt zqH4MHqJn0y$XP--C;`Kar{Dj2FCH=f{XW+UFhS^jpk_^5yc9X3On)GHPm$XI0ori~ zeXzCNm+AbD5=>vSn_*BjSP!klUP}PnlPkFoYm-L0K*3llLF%)4DniL#MG*_*ip#?DIFL58AD(5Qcdlh{o{ z!*0@jBs&(`l0NdSlLrfb!CbdN-V+%nJ#LuK#8~2BB1M2>CFa4GD1x=iRLDRYO5dW- zLSqClO-?^tm+j*@B!b0USC^L!m2j7&e`)eqh|Hc&1czFnuKdDE2XC|S0+q-JVIhit zdav68_-enA3H$yB@hk#++E_1W62A4m(}n*VvHj_g*QX08#4(u~9QRJU4iHS|Iqz*@ z=PZu((bH^6136lNPtD+t88N&)N&|JL=tl9Y)@cQe0rixkht{g2hU z_S>bwP{sJ*iN~{0D*ehzUV^u7eWP;g&gTd}mkWr}zteB2=RalJ&C%56vs`TP$bBw9 zEFZpd*YCNTc*jA@e@EKNx4u`j@m)4E4&8mRtO98+ia%s`|a1pKR@Trt61k`jE2QdCx&AvymW0*HUjk(NIqt+xTJ5&7iPV6tnSP zwm8QBm(=q8eVhy#TSc&dU6R`tQj3?!c`PszB_kGo!SQ|`gZ_Wj4m9ur@{pxI~UyXFAaEC&qB(V!ej5qK-6J8g)lZuNyLQLp97I7 zP9dRLa@fcdRB&fg)edvP;R&FHDY#h4E*)=4hOklkuVz-hJc~MN*HOUjSs$D~ROEeD&)t zfSSF)FIW?KJvUkAg?QpXQo1DL-O0@V#8KxE*`MxOSChSOZ3HiDX2KWA-{qE@_!x@% zqw2pJ6m~trfL!VRs_fiFQ=lM6dob?o2VSkG1jL^MV&Y5ZH9VFJ6fQBVFI11pv#xY4 zY7VLET9-SN_EgRi0hxG0A z#(*4Hb_bwsFYXEx(O@JYPwrp4KDb6=^zxIRPv5B;thIE*%w!KhbTq)y{sQmFe@$C7 z*f32o=5QcP25G%1Q>QVFH2%jI4Yj}I>d;|bR#s+{2&@oh5@;}H34PGza4grCB7sJGd36V5_D{%e#@o`)r^d<-PX^9KferfZ zCSn^HE2gF@XO%!RN7xlCXPmOd2(nFy%Nt3{K6?j`Hg}^H#2}puZf4jM#SnZF^S;|R zJ`1xc(A{tn3JL&qCc$$mAd1SMOMKzfY@9NrN{2>;khU0F2>|`dAQPckdLy7C0VOjC zD!|*O;u{|Tx|GAOi9PVu2>a$O%x*8rWK1p3(b?(}h;m-&X6%v&f9b82x8g3*??Ok-qaOy^q z5Sp$6+Zmua&VgKJNm!PV{9M1=YG= zV|HuXqla9B??bhV;oCz>K1UD$vB#=1jt~g5;$gJ78@|bB@Ol8P$c@9aL^Uqh5eUn< zFPnCO1i8`}74SnP)bS-<4~VBDt@Q*4zYQ16G(*Nbp@t+7wAH=0?V##1a9+wqQ$Rf3 zj>d-6Bpd$ylHQg_2HEAtDw&QWUJc*U4IYA5CXF1Y0muqNqZ_%s;InK&A`7MoK;LX& zbb|_E9;Ar_AHP}i&#&^JN|07yYM zaXlMG6A89{KZuRA(kZCMwLw-wba2!D^RES?5muG@6%B0IKZD-raxi8j_>=_qxG$w* z7&=}9Qt7a&*plG_o&WSAGlH;cCA-eYa2~t@vR;t??%8pSiF_g2F42d^Rl}~g;1%?h z5vf?2$B!V{_s-Jus(zIG64_tJ;?pffy8@M~IXg!(PK{|t!!4t#r&KkkcGq;0BUoYa zVDz4aQxPka622&}f9IuFTaj*Iz&lbg%b(#V+L=oOYdI!ajSVFnVlBCN>QwzygzG}% zA#hEkkZGRSNtREtwfag_cMn86h)~{9w#RlQ@=<|39NE-nQ@>E}sy6Ih(?r23&rFj3 z0^rcLX^|dGW1^dc@i1)}X<3EAMGvxI_jx<+?!meq%ox9-EH`D?$E^SH3NgbsZ!6hh z+2c;00`%w!XGMS^J>ehHDU)voXJt!)Jj~4H-Ck<# z!PzHt7Um(~^HNU%fT%#cZq)%r5qR>k2@Hn;28_+DI~vr?WasqpPLs_Lw5iLz zieN|+)f7}2?Oy#&U*WlQFs+y_s-N zC0iI#J>r>db#)goo-5Q81B%O zZly6yambNmh9(^%(XB{4(C~iMPuO40f{w_cD)Q+R9RWn<#_Mr5X5RO(4e*(m0Xb3N z!E6gNo^x`n16BccdQV0u7oxC>ZW-EpH21)GYbrEuEN&3I0zhV5zNthu$%aftX~~tY z8q46|70cu_aJ>+zMD^@dxjY+1PjcC6Lie@i#Z30vakU}41K>CXwvM^gPy)SG{wtJ* zn|hsP+g4P%3}|!Gs_FGaNfqF}3#>`bB0E0~d({C(Id7ugV(B5QzrA}Ff709~p z&3|#kD++{*Ss7M|N4!vygN%0upeYAYr;uzunRdb!7FiC;uv*p z3B3d_Aqb^e(L|7q3#6vZ$_=C%h#`D+K4UTu&J)^I!zEV$Z6Wlo zx~0AO;IWAUH8CVR{{V|g|E6pob%E_`LGcwFKVoD9O=^olByk({&4a<~V8I#h129pa z3YDB!Cc774r?!J@(+28v9Ex+XKH%bY@#?b!Pfz-T5Rp!gdqFnIplkPr|!(T2i%A{}l0)S7*{`A7MR#IR={Y&qX zGwBEP{2@Ju!T9#rze6|wz^MAp7ycA>@jghg%o3(DUnTJGGZ1=di=fwW)}1fUW*obD zZvJG>V3iu3QNq*X5VGJL_f{vp!*8w6J2ILPxX2mM`Um5Doo(`WeTp>IGQ+~ru<*=5 zs|mR^{zqMwiqOV9km?#>WyL|vgh97;)AsLizak^^GC-JQpYPDorO4E*p*xo8TX=O= zyLW)Fo@be%{m zl^Rq?q8x}xK>te*$2ZnA!`omV+Dx)RY zvo>iiwgtH%XPbkYs_v_~$XmJwF%MN!wu#k@)LUFNIv=B7wE?0zhZjM%Zb5oqDNd-f zPcF|4ZwT7}?nr!06dFg)wCs7h-1Uz_`};AKPqf|72_&h}4%F;?3*KB&3O?|nJjhY~ z<%P=$kBZ6^DfX!Slk#lh*8IB&b4_j3dXwfJx8~0~cc@%_HuCTDk6zCSjj6k)Ovojw z;qDQ*1sz8aK;x(d5@Uc&YskVl4Vcx1<1UXY{kN<%xic<_ypa8PeqOo;SkV_BMX2ms zSa)yC?8|b8Jd6D5PU`_{-8UPaL(JF=H_rNhV#uw*5VNFlp}xTTsUKhW=1L2Il}5Dq z6|cMm8%54~fbZ&=YyM7~T5oRsMj?EQhJWr-qi$nPv9k~AGq@YWj#et-!re$Fp@0{h zw$vwWYt08udNIGpBebK9BUS)|jR88pULhUuCVDo2^`4LNP{@zy)2$`uNRnvIaWGOWYZAn5LKsj0 zyHgX4)k~OMv3|7(G%LTf_p|R24V&#}?1SRKvbO?nN2Y7uVKM;g=myhQy!$ecTV_TG zTvHuba=D==j0(zf(I4CFuMBxRn`HxB08Q!H67XfqS=1y2R?ALpd%`d}AbVZ;Tee#7 zL<6fs&^1GHpOt-iHJC@ae5@N|O+gwk0~fn3aed``oiJ5iTk+y2l9$i}C!F<%EHn0} zX4}N@Ub;C6c4P?5aIv#t!`4S`{HR0RWU}_r>#^r*CIsi$9Y3=^C7q?A2$g3eAPMAi z0Q@ft+VKitz}!w!bEaP+Pi0%MPNOWOscr$LbR&1MhsD5$A4quauuJA^;%5^a2DXL< z-#8z=1nd=LF}Se)$9X@#0e7tIM3qpQx;4-zn3*WZ1>9C%`1E`~fnQF$0j$$hHkd8+ zmoWsb#mv#*fA6Y9)abJQ)~N~~0YeE};6gY`R>_Iz4kk{q(t2ZD(Q&E1xhgM7JkNM# z*gcoS9l91OFCZF#ATt09vbBMM5!_nC!Wb2*F57TxDuNbfnuaEfP#Q_rB{D&qsZ!vy z3O&sx3oA{cF@&ZVX{;F%$c9>>KH*>3|WwXVntRlCac1Y>)9oZE=8c8?&K&zI~Yke>JlRQFH9C74D13q_(2z* zJlQUULT`dlSeOl$g?d6CCCab?$9mQcM(O`LM zq2_&tT;wi)UuY@0FGw%bt^^i5qK>P$qs~70eui$>#x!} zOuKF{00W$scfpK?$N=*DEd^&3iYMYhZ=>cQ%g&zuIpl&m>9Aemsno6|R5>!tiu+1DS%DjDq1B6NnqG60UfQm?v zf6?6dI&^XXZUk}1VE}T6&%}0hcCR8GnhAP#<^J#>Mce}( zG*_YE3&Sq&c-H^tSR0VN_TPJ1{%DOR=|?5Z^M-WGKI|vEV||~EY?9XiZpfXwz5X`1 z-j^#O$ljqxTw+XtA?U{r3xKh9;{#U$UHc-7qPW~%zB&g^c8~d*G#tF;fi_*7x#=VY z8a)hr5A^>rX2wl@7w$|RAw7Bj?TJilyi zwsEu-l;-`V2%kMqjrTclM%2-_t%HedDJG zn5Wf)V*~DAKfJp3{?8Xf*fc!ebx5dQW+Hr4zMsAFV$by?EfF$jv%P}x%;@qMbL$$# znU562hHy-WtE#|7kYR|!(_Q827xpGsSfC!n)fnBNpdd`h&Q9|T#Uy~0tMUFOBFi5A z^x|u!0@K;{TRMPr@0KEBRSc?dJj#0? z$XDF}&WCk=sbs_S@E+u1aL42UHteQn|FxH^ane>fKk#99Ji7oLZiM)C;F8@11y&|b z>%paEWJe)vsW5;pCh6DA>AkqKnUcjp_V^6Bnx@ktnB!rXWpaQ@^zdOB^sW_&z1C-o zi%4}KwjvJNj_BJ&8VAhgve~4309oCzcOujTMHqAm2&hm+3XN)+ifg-npyZxWtu{?5 zU~7#Eb2bLv62BO-PYE(Ft13Q`qlaB58LC)&DT#c84Y><~aDk*60-FRs^;HX}j9br2 zTnV}|NYkep)HK5q5DA3;?)On)Rni^jniUA4zFg7W2ZsBp%@sN|Q+1RWHPi$BFPl7P zg%P$tbR$)+m{k&@1bU2O^nl16HGeGtUuxgcM(sgO6mZr&#AwfX)d3a2E) zuQLv87wMvrFS{!V8&=N8pn5WSDloLwr1>J&!Kvezb2zpWv%5zc;;b$SmjDxqJp|q% zdQ-F>DQ2ivHuzSo5lr5}&6=H9W3fu)3FxnJIcwCRe2*HsMV})17j;5>u5MQK)AZH76 zcWD86gAt-9g7W1}1yoC;1O0(?)>q4l({}+!(%5bcPm@G$Q^CB)Cf#^J;%2i0+g*Z^ zX@R-|e0THFkc+DDoEY$>>nlsq10>2>ueQ&}EplN8tq#^+KqvDUgt1672PJ&GOpfql z%aO6Vx+aI4Q06JM`AkE>!OtVeY;;fXqeGRnym$pGF9S73dK$i!oz+-zWLxg!jkLwS zE6l=iu7Y{YG=eEbwAHGu3kL?R9{gjL8vWUJeWQNK(?J*%bJ6zN3;0Aa#8(_cMk)3x z0!@y)RgfQV;S~I%x>*#k2+S9Hsjk zmB7`TeDSHFKM@_NWj9%gdUH;+`|qEPWwvZBCe{Ekea){V9Wxiy5+zN$`F8f2-gPyIvHY0IOxJ#48JUUu8CF@S2_(BC2f?gUuGG+$TAHX zq3i#%Xwb{6Yz%i}^fl(5^t?qK2VXMftnHcKPo`X&BVy`8CYjoq^FNGjmV7(lUZOf) z{ZY1CMAIz2>NX0{%I=8?(iZ$4PNraflw%Am{Z`bOM^jpi%w%{g;=3if5@PV4{1o6dHdbaRfWc>s5x^i)3M z<54(-2Uw|!)LSZ76}QwjJ3o7}%kj&;G`363s{z$X|2mUVX>!4>*(=6Q;rFE9K>{qL zGJ65=W2E$d732eP*3Vu{exTxVgsh+}}}i(yk?m@VfWkwHzN)0;dUFT4Z~ zo2R&`?W|MnUt|XV7*2OVa&H|c9%`|jq)Y-92FQyI<}9`w&jbP}jwVk~Kvuxq>I7Rk zfH{HTDZQ=Rfri;d16e#1YLKb48}D(jSYwZBocEytz>R_5iai}N?cP^LR`oh&dcqQ; zy*Uy77zA0L++@;PKPd26kO0zVC*H0F-GvKS@vwN9HLi#52Mg$OllBhyBn)XGnnGJ^ znjA!gPJinKG>K%WAs-nD028+ z8mKV>S3XVaQ38v=tu1=0xf*mGFBGV(FKA6lB8wXjpmH_H(No>Vt@%<*tb$0^fn^ln zjgr`?0<9I37D;-LtcL{J1&-S2J8E#ac#eQgw-H)lbSPMpc(pZk;}94eQt?xl2^k=o z5#kt4EmDwJ&|q`?|6NCLQ5Qcq-qktrbR zZftGOHV=(*KM^|G2L@5s?d#r=eAOnF3;b0j9xTz2iH_eAKtCdAKE91=a!OT#nc=b9 z9f1Y+Scfa;SrbWYA!uq!lZ^m}ooec7S7mwbrYepP12#kruaoYj2=G&`;z(x`Xf^kS zAbZg&JrTCkz^|)8Mo52wFzpTo| z80!5M>#LsWs(~AHXqR!QY!r|;fb@q%cK`+$3qBa2z)Vo1U3wq|q$tVi;zZ6+?9RaMSQ48Ly2dgbJAQ>8pl84gl}|3MF^Vp^k&nI^?-dOLt=8 z{RGfjW!e@u^=cb>`)iUDVMz>ZZG;}=ct;IEE=EZFYrfe4SQJZfDXM|)EZq5;ZvGr{ zH-LWn)NySppC~j3tOZ1XsZ6V7Xx2tTfB8`GAjGdEI}5D~-au|z!i|25XLnKGxnOe= zWG#e94Zx{lXx;Io(|YXwiY2t#|t;Hm`4ZKxkI|x$nT=)!W{G{Kl+Z_(zI>o z4cUiYW9;R&J9QqfguDt$4k9Pk>#}cLsb@5t`}4CW8eaR~XW)edWQlRgCI8F{3sf+? zkaye`WKD7q_qMx#CP{W4d$d~^#<9n<>2oQPr*GV*1q;yC*+1SKn3^k!zO~W?k<%s#g+Tv5$wv39(U@uY@`;pMNF~`@CYWebSrlSKcm5Tda7X zwDCC_d8SjZ6^|@Y-VEN5H6rX8;o+*?BdXmWrf?@mlyeK+|I$vR%)?R#MGwio!Y03k zOK1InAmNo0=C!VUjpApHfRidHx5Kme@`+^A2X~%4#Lew{soW?lba~|-7c8cQ*T!QP79mWG$d!VlCRW<}^tfIW@Wo5wk1Crg{Ckx-&J=}@Q zESZ#?_2kz6kp)~!6>yZIPrJ!Nj#uRpjf&ecW?T==BjUbM5RC9Lc`tvM|5L@l@WCS2maY5@yq;_QMMUrL-zZaMRS7?0t;0$^ zgX<*3FQhr;Huyg~h<)|g!tB5iFZkf*WmY(L&m!&$Cq|*o#U{{33tfH%3SN7l`$|!F zyy$m;Kc?D-!aFEe=!xwoH-cm90Pg7dpEAdW)7)eqE~(n*Eu>$Nja~yz-JzQVzUzG< zaWB0(*J9k_6-j8X&7{X2$8Qi}r7kEK;7}ZK15gwf_gf2c3aO-ytg%Oz_m*YV$yx6b zDOa{&>NVg2w*9_EEl-6Z-J)5QqkL}43~dsn+z&nN%0C}~6@TT59yWwevetLUS}VZ) z@zcMDPzW!R>@8u69ve6u#s_93cketZ2G%$98W`tz1`wUH{q+x@dv|8uxB_~Q#|QbP zxUjLV3b3`~)A@v7sb zGZXVr$5%nw(XbIZp--43)==22i6H2A>m0Jz5?gJ|_RZFV9846HQdO|{VF!BfILNzn zK-Rh?*%uozLm>iEus4hCbrALw|~ve~_-0uw|CVZ-oc7no55gdM0mLVr#wFZDBQu^5KNQD)9beT4EBsw>kZH z+TDJ{QHS}D1HSFp7(_j4GOeAu$s{U}#B-#dj630rQI*kN3ftXm@+{JP=+k~gW5JUy zFf;zh&h!}{$F6Vwdb_t$@gfhb1rNY_{1oS^AHJYD2z#9f*7uWEJ40XI`%ljdw*EBD z27v$aS+LQ9Wg4O&Qp$TsKFxGhGZaDs=6V5pYoH&AsO}Y1jyAQU)ADRLVX%^Xxl1xFPXqvpHU0(?;Xv&TlNY5(7bNbE1e7|6IkS5XvU#LFd*7ZXa-?pcq=`x4(cClIN*he+DVgz_NaLF?D%_p^o zBiUr%hP%b~KO5{nWU9SJ9G^lT+&H-AUu?Gl4ldOhJ@|e@m1D2Qjy!0`mcLwb{^RAp z?#^JwhHIGbYtD#`{W$Ln9LaMn{W~apIN-L$ zI0nB=G+%s08oF8sHWWGPp(%-Xjibz!7Mw@u_-%};`(dk>qUa`xA$X_A$NpSHgJ#^ZjgiSl&W|NZimGk_*!pvBF$!y|v{C)ym_ z%mQ2gZ5}n&pN$1`KEKFxn+4CP^0rd>KF(QPBqQRfz@?oh<$c5&`5EO~0(VJD_mL@l zF~y5S6F^B2kTm*ybR_B3i~oZnJO^Hnf1G&t`Q5XxzkdJu``;u0V_4xj?PO2kSKEGr zBBdBZgIyC_m5mowFx~kvQ?D*Iqq+Oy6$AFMc$|x~MjF#oU`}J$?`^Fdo^Fn{c1~8B zDx;-jSO3=T*ZAa8ij8xQBBtR|G1bQ1bq!J5Xil)1+llJwDJ*Uy@wAMG_QACIP8x@; z^1fab(K&nrb$a7+6qeauQzsmfm5^xm2%<BFJs*$DG#mMe1gQ8c3v0^T~lBHg!#<@*mx}RTdEJBfyAwT$)sU|)z zL#Df;0Q-cGc9&s5&CruQ|%wWL@HA2KA7n)mCyzCKI*2vX!#6fXQWujIMvPc}S1I>O% zC_ucUoB^S~eLeW1HhJyq7dsUt4`)qfhe+)(Je5i2T9_yAg`qNo%E5NXu-L^Z&lrRm zEi;9dV4gG>O)?mJaMyPzTlcx_AgTaKvJOBw0`fWTkq71b_IYIxgUk*H;tD;Oc}o3u zuU4S|BM`*NFiwJXK^P$C{-MczVuL)m&E!<*McV!tc_|UnnhGHC9;wZKY#aMEXDD9< z;V*1swqopA7?t|+E!E0Hyku+S1C-^Vk3M-jqn7pQQw_`)k=vS|$ZzZDY$;f_Zq2BUr6Pu!7* zxqTgqpR@Ao-NYqFzursEegE~oqSWo%gY=y%zdbxhonbxjJATFXM?QVH+*O=sk3RcO zFXv7KO{;G^;UCoG_G8lcyRPD-;eSoZKOTqtFU|MXR>ya_*MHrswisA3x;Ssjj<9{c zy{Zd$K0p7lV%x2k`!BrrHC9%S=C1Hr_}F*2(_$0hQT=w7;mOP9KU*IiY$6aw)-~N( zcT;y8wzzd@-g%#=#oPs*&p#k$i28Po?mhSET zmJ7_ljqcZ=3e5KCAq`IInyS7WanBq z2ehDt79&`5@N#CLev1|3L6x)qnB>hMNRi`vo&HVB&xipg**5P`J$e=+G%%HYbJv4g!MvAWnY&&a2Jj(!a(4DQg4f-USK##b> zxIv3HdL4BiH28w%(ZJOsJE2kSdtK;>n?`7r=4SqIX?wZ3k8DFLIj zN#Pa3NZ(n=NYy@Ug%R$(0<2)F_BFRjuo5W|?VwlFeA8Mk2GOy~PW4;G1X9?F1EM?C zgm5;Z<^^Crd%U@2=2)<`KyQWs>rn{rU8|UvODF$(P1#Yvt>cdYm}CH^_G>%D{%WlK zr@;08JC}Ae^#GA_tG*p2O*Sfg`C=8A;cJFixKh2WSX6L4U4axRrKo7m@zo3XP=3A? zWIL#fw_Q$uusIUxECfmM&mA^o>CHk61z4?=Wl!9)5F>QKu?1!c%%WwaqCn~j1>)=# zQV){|Gw}+L)v7|QFsRL1U17_h$P97=Gv%zRE=P8s;HxQUj|Kuq+3HZ=@j=#$k06{; zgtX^Ega>Tc`AQI4LM-^zXhhOfb?LL})!KMzDlY>>c?*wZ4r$@U-nZD$i9=(F03v76 zoYJCC6`4E%%rW$@s~WAiiFZjb;YzAX%aHA2Pe_>J*?$( z6Sf3l%Ix> zp!md6+vxc@hm%!M>h#XF&TJZ^t*5lOt^mH`M8gw7)QwgBYd?n|G*_#DiXTzPKPAOe z<_4JNShtZkEb7^c7vu|{RC*u9$Lv`>_aCBj&6}kN(~t-K;8X~?RiD|EXNi&;ee;}w zn%tteD-dwqcC*5a%&0`pWQTNg5clc+ca}Wt>G`Jb!6irmwBf` zI<8+WOGs|KhZk%fT^>XIVr`E~441v|Aw^*o4bM`3u4$bA8RFG#7_J}tniy?6S+jqr zNWOkzjpcJbYw7)8`!fWp8Q1pT{eC60g^6HiNn z9Ed(%T=*9oKs^XpEhgZ!vTN1I`j?WwEd*2Bk(npfQ~b|^LZ+{Yd>}2&wt&klj#p0k z2~2A;g05FAT;tfzfb|n%rT$s1%8~4V)c(H#bdrJ%gWX#mbP*wr?Y*xf0-;k+d<%b@z~bn z`6j!x>P~Ve%>7SUXyrxlA;!IvZ+R~SM&;nBQuxBeGyMeprw9KNLeX~upX=86g=V}b z3XX-B;DW`~pS}Nj76^l(zrloEMrqZ9EfwB`c`crAC4~AgRf~DWs0NaZ`#en}K2sJM z*@QX)fgpv=EPV&=l$3`Sebakj<&JljhzTm`Zw<7#u_XQq!A4GqRasxks5n7_ezc07 zQlxXkWOMHWcg!Q~wGoGNPz9ZlN*^c21YSIzKr#YRLjYYf4H*kvDVxzfG}Bkin7qTq z8{NU@z(Hl+vermhd_)Oc-O{n}`*C&+XmFf)W|)JF2yk)a`w zm5` zZ1N@$wEv5;%)!eA9K|--1h6h{`qG`Dk9kMy@ZMXtKE)lB1pA_xkTdGL?nV^F<-g+g?{(%an*zr z+5S)hYGPp_KkrJnkA(_AitwK*XZI-p1yeS2atU_W`S-nI!@aptw z-GJj|63dX1gk<<=r~#E*!z(9kadb~wtZv0JzfK4Wv+6Gg;tTGs~ecUO^_K4jP03gYFASY={wV7 zTQZ^B0K3Z@bkW!+u^|^};}ao4X$2m0z_}}E@s^y+Lco~_fsWu$uzbYe!cbCNO}I_P z%3c8Ox`bVL5!$c|=`sSuROW0U!AJw>pPfD53urk$_s~m*6%j1bajVF1VEFD)1^ida zo)KK1DE5Q^XH)0VON!;|Og(bg#{iitV_l8Z|GZ7XG-R&>pD3XlxmI;Cv?pEA#FwxO z&?M|3g{Q?Z4G$o!1{Ug5&ML69acCw7Eb``J<*NlsaGO|8lM?=wLu4t;RwS4zl>ckS zZlD5>iAyvJtR1`HSvYJVgc3=hm`%bBS3Vs9{WPGH2HtXzNeCiHl+5ia$XWq6iU6bm zWupZJucBbxT0cjQ9RgpcYoc)=q|pRIKv6WY+oiD3c|nD4*3d)9^i({?gqTujgb1+M zpsaU&@gOZg2%DaIj#6}TKPVixtL`BUSFXexXHRx)vDKQ$jZlZOMQC(Ss9F?w$&#Kc zV6mfwDhF49t}}p11qWZ~4*yoxe_*ROq$1y{fM1%)-JQb+=f>@5d1+@#yMEkjthpC+ zrIth`!Y*%D4Xan&2!kCjCBW|C9-^HtMitxO_S+q!_JiFQ;Tj{J0N7TI4s1?bqo{pY|liFIrnBqopz@>UcJSLin}|a#uoSi!#rkw^WKiVu6hp8L}`O z^-4>mT!waMfd^7yq+)vq)HNy(+bvy@;?Lu--ESKq8);ISb<93B=q{g6FjyfS=5CML zkBbGT`R)`cKt%D1y~|*KW|xUsT>o`%Le|{DOW?wWSVtmd78B3ZabWGj7O*YJzzZ87 zw;Z>Fr9x~2#2t^%6S-I^q}@Lzy>v+yo@WU0Qi7ib=^I7R)gk?(2=k4EzhgyF?SyG% z#HrUUnwCl+BO@O%Z{=Ib&Dm?eIlgM@Mu zp6^JQhDhdh}{JGb^x7Q6=7(vYt$ zedF=HGc5Cl!`EfJ&fh(>c7ID>Zc(k*7r=^`S3ajV=y_D`pPnN%q1iV!+N-8jD@x{k zKmS6vJ@iXq_k#-`q#a4BN!5i1B3e$Ni$A<3P6WITm>N7?XgS5Hs30WR4hq6tMHP7G ziIVCpG-CK$OkhkR!Lnbq`HS_*PPIxr)uYhQdsJwL@T$| zK9BHqp6{R7^A(S;L=}poYE-h2^P9Nas>O^AKYceA6g|(5+@4$75Go`GrmBHlKO}UIW zaqJ`&r?w)Dv8Px$LJv$X?Jc>9OqE(Fw(UmsobT^57s5P=EPd$iP)4M(x9>cV z*zQTp+LkDYFZ&_rb-1*_Z5;^UkWkyxQ7j#6#oTf;B)HA5Z-Y-l>2qTqNe=>lhgQAC zK6hD{IRht_+d1j;XPw@(VWsq6+9h?SVC9TZ=6V5RC?&lgXwnR^!b8{oz-R9riafXG zylM!A?|5fWClN2qZNKnNTk@(NIYmnJHJvj(_6_lrTG#6*77I-m-vP33UIf|XYNtC zn;<_7A@HoI;m&-9gZT6wHiPwZ#y1qhwGk{@gtn0i>G>dPJv*{DB`SutV=q1;>3`w( zoOhb;-X1U*bTylueE0gI0|~GVN3{PExDRqoeMLVtvPB>VOc)xOnyTx`xi89WnF|pP z;!`38KX;ScMlA0fwW?9r;guN;`CyCXiRA@Q>DtQg4tVErjzGsq**%I7@7$INUR55x zbe9pbK4J^7G^5J?#qwD zIrtI&US!(em_-hY!QW<34dDP%p6t`2JSGBJPBx^;-Zd0u!l#!%1x6-a0o#z#;H;%o-KxkgUC1lQG(HOO zuUXgydMNM*yTIu6e}+y$t<%3zS0}Zs1J{3@bh1mO1?=AZHT}wO`GvFL1m7tH?7}t)5%J}cC>Y3ig_fytylmiC1IV}VlN1&aQ5O!oG92N zfIw%q+Db^ywp(aOSZu|&7dH`{TgB`orqCI5s^#&Rwrl~P$@8+mD7HxIbMj*E1~C{A zTQ1>aukB>oH{&scB%bI6XnT|AED&6FhLQ*pdp4`f*%YwsvCowC;HXK6p)!3%e{pyc zp(gy3K6vYv(#0V}X_~CoT#(~-jp!O>j%LT^C>j6K44&v5B)X1CRqj(~UzZ1TA;$`n~43TMr@D>-!Z z(Mjd#wY^a%k3Bh)_vO|UZSJaq6SIFkJ!+r#q4H$>b4YNbdpz|F=&1>R-~*IeHjmeq zN#87(&lCho^4|V*D?=Z!Uh-ky>4~)NgP{l3K2pKG-5pO}uKI0+UYb{ph1P*5gUpdz z7oJHt_FbKQ(%xZ+aUj<)cK5K!JGN=g^<=ZGpSSRVbo0m7dFQI#lY9R>a?e#q`+xC9 zegC}{XSO58Ye>U)&AEHqG;iqd0(I7FtfMTXgEc$0@@3Uff zDnkXA`{kw-)4xr=(v}ACpFb}B>$WyU&Y_tUc=+(b#?n8##vYb&oPTJG8Ih*zw>JEXv->?=kEWF86Z=+$4JzyBV>;RO z%}EmC%_@ALL)yZh&rvdutc`+0n=EiAS&i3c1P7Z9YK;SXRCirRdSFmc(EY zC8MUN9~;oU=9rm%7$bfeMf7E37W1^B*MSO*d#2|kM*lESEut)`SeJYi~8 zNA-{d#xt7rc6f_J8W2C#NebhsN>efs{HZw>CD0jrZb$4F_FQ(-O_FlQBuaWn;JZl+L|Eeb*iGe9#}g&L#PA|;9-guhZvNLK*R*-~?74M@vT zAzh6utO*uC=+>(dA?lC*M34}#LedqNn#IRPb>t(W8h!b zkC=X%ZLUQINH_+tgNcQ+^=z2;hlcSt6^HL>ks`qXUaYc^sQ{30U=Xg8aV4Tt2V2JX znE9%rn3n9VG`;kBcuJ8ugM(#j^suE~jYjBHRss%so-*1rWH2jeQzPZlJ(S^(dx}pj zoL5s!FL+qI_orV?!16V8euH=~)zyfH8VeYmO0s!t(=P{K6|t=lb|nU(B8B12KYJlo zw;t(j0C#3;%_wzJR3fne&w}B%L_T(R<-|IzB0JSs zeI4nmyktmZyM>IQN} z<9c(M5H6W3MG*4_Q<=JUOX3Nb$7nFeBo^jB*F)^OUH{ky{IlNw`zgcLV>ypJ3m+U( z!7N22_g!WJX)KH5CGSDH_NvV?^lRGdis1edn*I=V!B)laQTC)2O#E}hm!(2H5pd45 zj(8p>jisA@`9|$3aeb=MZd*DCVbasA3HW*;q z9=+)VHx>C#$G(WPna!JHYOJ)x`{}k@x+;L~!3G2|#o90gv^wfPY{uym1 zz`y$}bF|1Ad#r^{Kl^A(>0v9>LNkA-f-RoMA#&mhbo{j^UHA0h1ulp|t)EX`c8kL7 zF5T0R56xw<&367A{`EYjVEzJy)3iOzB?qI%WY)h74^vvQZtSwUt$VRxO;AnK$Dvxk zJIK)7z@VcWjx_zgxp?5vX2U%15Hu}1>Q?O~{OPBDE|ZhVIpnpyH&@8dwOv$IyN|Ds zuK3u+ASPfa`Tm5j6ci2iOU#FMnP*x{-Lj}%&sOryZKBA5>rS>VN$1BD)`xvvEB9te z*)Clf(H{vjE85i`3jS$%wq|5-vwY(R_n2#swyw=RS^A!h?Wzxc$uqzx_xDxxf1Vp| zZbj*-06yn4W#!Uc$u!{K*@wQUh@^@eRHb{)6e+Ta)6>tku^nmKy(shel6f>$#QGO} z(nQ-`w|A-7hZNXz;c!!a=-?Ai+_DS&MS@cIBMzj( z?nfI>+tT&WH(M2I!)(yYR}Y1#AbOdU>BW#@SU>?XPyt@CI&5|jU0{aW_sU5V0*B~S zFzP97>xGLWA#A9pn*DB!sD@(gp|x%QC60FPfUaa(xOm?M%j9~9(4U{v_8)-p)t_oe zf}e2rHE@KpU+O3+T?XKj><#)%}QX*GC(SRZa>YS6+{%qL{FInhfkVa~WD zNi&1skPsUWdgx>C-i4YiWn_JkJUtXEfsR;0)B0seQrPzdFck6CX{aA^BJxH%XJ4hlM0yYq5t}dP{Uw_C1j%vt+k(%T?AIA z2h}Jcs$zyM8^9=os!3o>I=HAa%1RmSCbXcaKn5Vj(xNi!kaTv$)Bd;vh}mC+GkfaN zzAHg_=cFgo03xNV&q51R>(mA)#f$?>a~2)3jKY5yN@se|J?tqUdM$_VGR%j}4+bgKRH>^@}hJg>{nBn@*H@ z6G7NWD)NE-gaA(miZsxgZ_8@0Y;)9=iVcvD7LsRUT}c^fAJ+jj`EnonwU3i zkfNDi7c(O`W6^^h<)$;DP@ZC=0&jJcy%7SNBvwWG+1@&w8!^}%02Zu)ZjA!lA;^yn z76|e8psiKl)(sa;(IYg|QuN0N2~^;$E`X&2|EpRws|I8f;XcWv$vOtpjezqIjtnEIGGC6i2hX_y~k8>P0PuDj;HK8aH?ahoMbF+f+; zrURdkaLrVm8`B1LpVT3%oG1n)l^=Ehx=hl=~w9qoVOMV?A=bkmDjZ zA;>|@oZf2Mv9C-05_)|Ewtk5d% zP}s&~dk&*}{g{$>Ta<+>ARKqxW>?AG_UhoRVc^o|gZhG2NV&=a00tmetM(Q@&n$eS zJ=at1fLcx$IKXtb%d!>IfGqw9F| z9|t?P@SCNFs)UK=BP{drNw;pM+e6|ZT-9n4nLl2S5BeW;vS4Dqa5YQ$~~w+VDvgQtELGwDG&f z`t1Ktm-jNCIkT3ZT(+@?1&xbW^^o`W3o@K_rq_|r*H|ZX01`|0JZXLHGv__#AGUS- zx3quWO3~Ohf^ERE%O^MleqP5* zj$MOF;h|UncFL^oyh(}100t|-Q7^k!NE3rW#&r<$n6y_ zw-KPgz>b|O4>nFt+mT><&ONgVUWX?=&M0l->wC|56PJDR?_eI5Hp z2~V?|h>J}z)eh?3+W8;mB*`sXezy~|PKQD)llHnh3btY6K{+(G_DG!d)*30Cb(+%_ z&<20Dqos0we?r*}+oP+j+RB$^t>v1NSJy~=)1j1VppYg4~JL0UXMC!lT{m9^IRxVsN4;qbT-)Ekb71s zBMT>G_D-M(fRO+}qGcD#BdvkC8MFXNVa#8H6yF>biU{4B=(bf^Nl}E6h(+?}We>VQ zjs~1|(53Nek?+gC^T8U|2~qiQ;L=lD$0NexIzdiOs0s8G)aC!0izXOnar9IEoHBha zc(k*DQe8nYVEzut%v09xIsi`Xz9{AgP}p_VD*q!ea|=RF_5%CjceQ!KxvjGMgP`?z zz(f7vB6mIafrhbfRvf+^Lmh_4eF?SbQW zAfdvVBb@TT5=c|5L$j{82hy_^SJ17X*Sguu*O&$e71f_OpeAs0-{f9gGo+6PsaX~* z1F2|wmJKslZk9w!x1QMrOZh?B)kV~CF_WJt%r0(^3!EMf*^NW(JK|gtKr9;Jc9>R4AW)uoTv9|copY-|Yh|R-H-@IT5!(=Drw@sGXvdP$Od}I_&F<1@ z8KcCeDKR6wzSmb6&t^@`nzAtdlaMRbAX9onC=aqREU^oPd46-ICP0e0yYeI%m_@ZS z&xR7=`ooN%wg4b3xNRW^fIuM_5-QDk}GYDC!a4u8_Sc+L=5(<>$J0KaP?7rFRpH-ywh zCR3wA-8>qCrGh5IRdIRwMUboa(viRe9@2kljxoCd&@!txZlhBR&VR$`^$p{<3YRKI_5`Gip_ZH3U?QkpXmS<5N zsy$m?bu`$kHwDl_+vLz=`M;ggbgW<&xu*Mm?XD%Wrg2lJ?%VXS{y{hOeRjXV$g%7VWb$FfmTLnJ{bn zJr01iv65$()W1G`e3HmizC~ZZTfgbuq#GOdbnt3ib)f3ZUabCu1MjC9|GO}2YwWtJ zxBQ{sc>|kH`DSs~czzgi$wIv1EKEIe?N*zfW$yv4W|k^BjmLU|ctcTq*LKEV3s$Lj=6dcix^v~J#d z`juXOT+5s00lwrem2oYp6a~Xg{|~Ge)WNu5zLC9j;!$% z1ff0elD6eQW+Ofs_+1S#68rJU4V6%gb0SkXy{qnsFQmezTWi$?c@tb_=V}8 zP;@l9hZ0k&beT>)KoX)(3j-ZhM02H;mkw$Zf=tEK9ovu7kJb{sm;`xDy2zh*$L$9Z zOX$uLF$j4{Y}ss{qf^pOVCU}oJ$v`<*ETdZO*S7m z*wT9F@R7Eo#|}crX*8+_)s^q)!eI$Td?8Zc1#`sbSR@XI#_BXrV%tzfG!d0!pG3bT zI7{WbyK!vkyir$%wKMBqb1S-=mo<_Pf;2wux|=Q4h35X}j^<*YiotMAXRw11rDjQ( z<2p9yQZYC*Q{i%gU0%qzXum>BV`H~qs1B_GRt<1DgV1i!$QzJYs(Dg|>bR`XyjUR2 zd7uY_iwRz?iH959OG+APi&yA{oa+??iSV>WsA8k$3PeS|q?E=`LI9bNk+O0D67OZN zkcwQd7eX#s#flhCpPQw1csfbLpN^bQ4ty|04UJwv!;}63;bzZX0u`HDltJn#L|ED; zDHS~Twy`D!v)EDIY)b|2wv4PJVn=zif%L=V(Yfit0NgkgNO6&R-D? z85K=^IGn3Ihj^&Fzui=dPc&$62KN$Nj!jpRf*^B(lfR|>%?O0;!KChCXi`iu_m(qiH#co^0-3;T>54T1zk^Bx^LuAE}Fb5YS5^ zg#K5cFZUdbS5nQz$?`(NqzO}48;9)%OxyE1&C|7OsX(8~UGuOPW1Xijhlml>LNPzR zL7J8Nh9WZ~qt*uDoD6ax&*K>I3~+q#VsN8Zzd>r|m9D)ZA-d_8VA=7~LcYH1&6^{- zOU^FJXmpzhVa701>=j9L<;)CKFxA5Kbcr<2GwTE z(EOqG>8HFh(lRhS39%)0o8|gmEnZ`kVrZ?>I*c1H4({eI5eDOJ@)YmZUz%a~bczrq z>xCyttbpVW+xg0%4ne;L3~@3sW%Z&mDILu(@|n+J_KSmy{;d=S;V5OxGqCS+3||nW zF`v&kadfDx)Qgg%@+&nE>D`7h-F&<_+H~(ZYRXsR_-mG5d2DVdhw!XF^J7hbG@TTf zk{gof(Bb{z$EYUkSUmus6pLvU6z`KO%f+`gzpA4wu6NK{d_#}!E1Y@Cp=ta12nV2M z+h)hEO=Q&t=QiKO*Sa&CHh-)$U-IiiOZ+YW_YHwmwPM%peVFn6QoE?vd(3Zd`Pdk2 zcjjwV?#I91jll~}!T6zrS7Acgg8Y?t{vUDg;nvi;uZxZ`Qb+?r57p2^5krwCV(3NC zP^1YM5fBhH(nLi~LN7{@E@J4-5;`hqC`u7A3JO@GA|SSa4a=09Ip^AIuXXO(=iXDE zd;bI;lJEWHt=reGeJ`7Og!;84{_x5lop%my(dvA7;Mb3}&a5C{cKAB)4}%1h$#a-A zFN2R}Yalyz%}4FM4tsR)M1?vHff(5`w&N00TtoTiyxf+R9UqdR3gS;-(FT;|m~xDR z7mb{`-}-q;@Cw?m1E?GF*3{%x?0I~;^N`y0kmSee=MbAg%e!bk$jd^aG8Vvy(95ap zV-!(hMBk$eV{t%_ldLSe^ve}0T$jOK7GppNDm4z1L19a`-vCfTH|CkAOA#Xd$Z?v( zv3Iy{DNdHR5Huvu53n(}DU}}QGK8EykY{LL8{jPItOkwoZ>(Et4@=g;A>`z6~08ITx}h16%4iYwK_Qm(k| zHsF?tn=>G34nwAh8#e6VyEqDj+&VL$@RgJC->tDlqu_w*cQ^t8 z7y_Kwc3?#sApwVuA~H@JUy@U-g;U%xtb=N}zB%{C8adcfKLdu#fKkAmeD;m+mP zZ>!&b+yMUg{qrA@j{annly2Y%r)n@AukKpm+**Azn_wLEWTdrbIG1RbrR369J9>uX z)f_n5R(HFEyl1S!#Y?ii+&p&RT|@icdbo9sAwj`J8(=%UMah-G4eFFqA{=9t_E8{A_|Xs#dc#a&=XEQ8eZp$goricA~E6h!0<#>dcK< zH=BS2t`;oK-V%Qt++wHw1^Z%abw>oYlLS;r{rb@4pl(z&vN!vr+OkHn!LRsg*wO5i zZ&?^44d)>n$C(wF)yYZq4HnXpgKL(MrDV0b*^nI@=S5x}FHBQ-_cTjBawzl(7){XEQrH1?MFxmwzlxtPLT4U$S;RD=zFyR;HvKY1 z)ItHxI<5C(^bE5xZ9&ah+?$x3yM3kG&eU;-$6JQx$}`&!ebB{uP~5NX+k4*@eo>u! zJv?hyKuoeeiF+D*S|qs?tJ7ZPy(tvxv#gfA*3J3i*2&H(2Kv~IkKMYGhkm}dzff?0 z;lgk0YV3{UcOESIp{G5zj$ zE4RtR`k%&4rlUXIF<-dwX~OE;yH9s1BI`f%?B(|Vd!$1-7y2(F9T5!|zdnlYe*bmW zb9nu?CvnsJzdcP{xcKc^($36zYs{~w-P`MCvqgQy2nR9_8IdbfewrzIoDk%ivt!s#b^mrdTDqgTQs9-oWW3i)NWXx#>^eJ#qke*DSe z{meV!^XETa*Qni^JU>4%Z2QO0)!dkqzkhxExV8r1*no&L7g7)~{@l5g8{r}?1x$Pn z8?No#j|m_vU%tjhnvL{}9Tg-KaaAZM=K;xbK?=#O3gbI6AbVAiO3tam?R6ehcqB+O zAFmQSJTj>ALy%6vRsRJy3dptwy3$sUE%761inKS+h~XTkYj4C( z<89%p@`jAvt6EBa3drx_tt?@oCoDG!t`bHsqkZ;Rla^0$2rn*W30z*rWzC#7l>MHe zR^@?T+B&MYUPmv06?9;ncZ1coFshYpP&adu8DJM?60lNn~_rS&SAiu><0Yl}5!HmKQNlF@l<5lQ0NvL$6($L;+$ef4a$u0EgEx6@nhURmzN zczkp8Sbwy~4u3&m=J8aK4$m>vStI)fkD(T|^{sbzNhjdrG*kD=s|G}6uv;=Wi)^#- zm}NbD+19G*fHgmseepWf)kj;sWHF5bJK3$FgIUhB%(@rbYJGfXP4?uF%~fCB>^W) zt8Zw<+9w@3Ci6q9x}$(*fXfeicAfgVH9dm9=H~yoHBS~AIC3Z}WpmGNN7{_WV~3$# zX8A2*E!5sSD8t0qw8wFThT}av>6rA!UG{8Wf=H)8n{h1Tfn@UVk!5@MyPXbd>b5=2 z!23gRaL$gAaI1tu-lWS8RO;%KH}gp^kg#E|7C_tu?gpiNDOXN~tOQlop*T4|JjpHo zW;!JO1*ecrY#ZtVZR$7VX9~qwO^rUvo->RwuUl}NTi#TSg zHpW|h0esYya9H|uAVb=VG=Ef@iTJu6z9xDqxLv`whbW*_**MlfZjwi(zhZ8To%UB$ zJ7a{8-PE?UU-tt;BGbpAS;}LdyR7XKz+&-gr2M|}Cy(%#(j2PJ-#Kj>`_iQBY5JGB z@sF&@@!89iM6(X}t*LuoJ^L~8P0UwR6ebP@4JSBpBU>YMPanmnzbn~pbUov%8U)*y zrXDQ+8?B>Qq3CX4-zU==kiB8x^)lUDO$@W-?W~lk(VZT2$^B{mi|?{Fz6}%W`U`76 z7QEh&-dqImKdaX>W;4ZXC3Ign!dB-Qw}#mjA$fmh(5_m~}=jc3|!-Veef% zo8{K*khczp;WLJ|f!C5*vs)L2t}8MRuh~>|3E1ZCwJpELw@OFjGuBd663zJ!r$*KgpChGH>2I)y z+!6!ueAyup^Zu_Z`>R*8XCzEdT*^H0^;|mq<6Ytti|iwcAs>x;j8vBnpx=u_ADU6t z1h2a&XwMdcx!kc6HHL|SjqB11yNAbf5B=Ud^yJIh;1;`)TG=0z7UHq(lC9@s07MK7;4^W!lz!8WpbxDg)J@ zHe@GrW}1;nNmKbMN$YXw(uUch+*M*w+9(New&NLTy=+Nl3Oluqm#qFd$tW+ST##JE z&nV&^oo58O`JK?~N}r@8&j`{lb2BYck~@I_0zY%L1C>QW)!k&-m4+G8g=Li4Y<5x! zH-ke1ANtyb)+T1*kEa08b#vTFO`~4Yj%Sq2Hh$Wjx*S|-NLOu$gkOB2SIAjBBVI>%K&ufh46|^yR|0$=PC48%JzqBlRDg>8*?}JfjL~WbNuB6H{ zOpP*&vy<7G6Eyc9b9P=advw03l8SvoWK-)2n7u`4oo}fA2+S7(Mszl(!Z&|bM0CT* z{;F=2`l_f`2$Ncv#bWq<^20z3=5E!@5;oY8evC)U5CFMIdl|psoC!ayi4F=I7DUiN zZ}vw)>@#b=r}QMw_d;dBQ0>7sym? zLLnnj0!P#biTulWpFwJ_LL_GO!7;-*{{#Lwg+}m6I@%x-U=s4$hcw(CgZ@d8>=Hz#+Do|_J2UD+69r-PD*%WAwqi!w4KiW#^sr?c`>Pp6}+ z{n20S2xpsYgDsr;3b&qSt8BZ1>RsN-uReX;nfkbsadms~gA+KVK^!b^3@lQt#%e0G=xmjgI=hLgfubWWcGtqH6 zXn&WrYNPL{QXQ0`0@kp*t)+^7 zvA{lh)nF6nzldsL(HmX~&Y#WmH_k#CI8|hGD_maW$4lwqwW?7&oJY!>sKX6a+(dCx z(Wu=mrm#kAI{M~}dxs#9b*TO=r$`;%B4&=7y&}G??9{L;3S>0zYeh>D*rpw%%~5NZ zpBia~yrwFK!BSgudOQ~H*|0vPsf&KGM9>HtX=(Do)znI{0G#_H?5j+)eU$yiX8iFh zD1CZ03#hfuLJefuUY>QzLgRR9mwSxjiYcvG_$uR?%Q7!6_Ve|7UC*|24fm9zR3GEL zsmkGmihY(wy5VQjfs58V+RAyHVOo2Ls&0?;$zzg$YPsmR_m;KDO@Aop-}04wpTX3= zjYsIAyApFNZlQt}E==)@QUtY&FQg{}q)tg+V&hvgiCM|~bJ=+y;kGm0rYnWa5oNkk zD5$n()X1b1xE1yJ5jy@XE18=a{I;`%4>hN7CU~Ly>$-CJ-H$)pHn*>(Umq#;Ev>x^ zN$?UOA3zxK6!t)2E`G*bb`e zo|oS^)nI#pYv{92vKMish}zLFj5o=3`|T6w?!#8Mpp}kc1xqLci>4x8uPOYXl3q_K zyE>KAd6v_=O%JmcbtL2%PWZ^&Jd2W{?f&|pBbVDZMr&qqudisrp5I2le^6OWuG9tk z%Bk0Dh<$ZHvqV_MkhC}4D!P_)<)WEgFDQK}y}ic28rRbyb9DC+4Uf*V3`r%?`DPQb z3bE_2Tj?6t0^|wLfB|Y~-)Y9cS5CSraHIGr_R&v=;jK7ht2O68cAUJXhs`e9ff`3e zUqcCHdcx~HhepGaDKP!4tY-3gmnVCci3jB9mhQc%Q&Ww{$I#_R(QU2e)t)(XdkaO$ zS7cqqE``>1f_h=){TO}28~7cM9-VBZ_un9B?={_8hqYnk>s{KJt_#YZSPmcknUKMi z)_Q_*)Y$Iu3pKQaIuzNH0dTu%H@bPTR|wbfzw9T!41Qvd-k{w~V{}U4yQ}!pOG~zo z7DkGAp^DMi?zA4Q7a7VItSpjnzxNq!bSqrtgCR-{DdZbD4m(?;>A3EW8u(8JxMwSc`Ug>i1oZU)8Q>LY@fT5p{5PT|H!r{7OyNI? zno=~nvbyG9bb)^oH9c3ZUhDl&qGotxbnN!{e-Jef9!}59K6?BgM9nLgxrI}};@fxc z3v53KiJC!N|JTpo|LWf8qvE(fop@4A)_+6PglOu^{!P?uM6Oz8S!vRQM9pJKfSUeK zqNct6&RO%=r6;594R_B|k}=Az9gX*DoX_Y6jde6lHc)F^&$<4`yxmx5%k*X1V3zXM zt_!p65tGe9x4Zr{ap%M>RT(_uC%?r zU244V+4z-lYcSHHZS5jwg5S(d#0dhhp7i<2$G6ES^1zjaf&=@vxC6$~oEQ;!RY}U}6e@M!T^diMMlJX*z5Z?GAO(|iqD*Ws53@V`Jv%@oUlv4|2 z>33y_Wg1vZLHgRaRx?r?=rr|>BELF963~3}+~iFP5SwUU>9uDqKb=RZ0bPtNa?WtZ ziFID6;HH0eZ|KaIh89Q8mqpY!&6h`ay_r8tzooO_A~7*~DkPh9xuXhF4(WeJd8Fg-xlnUajuWJ>DZMwC}e+8D$qSdN`<^VZEc+15n0Q}apa zh-#_6rLe93CRvwXCwea`$2BG9=&6g*VvGT_aq!@}wBrHxOAOt_xt5fkEGUbpy`tSF$8b1#81yy#rsu6~oUJI)#)LNQ^&eCUU}r7G zB&)TRQ^v;7t5>EOYT`q-AA6AcPex&yfAnl!8=T(e`9aSoq+)rPn6AGvqEVvcManVD>ck9DcPKBcc?Vztwy{iN1ge~~o!yL=3?X5cxpV(zD5 z^mCG zLvQz}c-MS$j@jhd6Da04`)TYJsV@hEo(zdkzj&JJR!2~RD1+y3u{zSuY{y%yKfR^E z;8pT5$WT50{QVy!Q4@~kt84csPz=f2Mql6F5UBVrZPaY(?(AKyd6Fy`1c9uuLQbktH420QpuUCQqqXD!KZPjxq3?0B%Uh(M)m3?e3N$y{C;_PnV3 z>}?FGcIx5BEjD#}_V93W-`WExDw$Jo`l@63iJLXRd%ylS1V078r!NtkXP?C{YU_z* z4J3y^RR)#5ZPI=``8|)*es;X#?v!r97)%%}#QyY%-w0k+U`de$+1; zzoqGekJO%tFL!7Ba$udzcP>a4v&R+Z;lsAMokFP>-E@kRkW(`O(Egt4xnZo79FOV_ zA({V>HUdjE;sUNO&rv7s+r&A(cn3&9D##*F# znaABkzKhQmHh{4P=yQ^0qb^6EEU&p=$G-ZtO;y7qp-pln^I1tq;+W5bI{lY`vM$Kw z_5nh3anE?2!C@C^kvjz?l~fVn1lrB5@zt4|NkgtELzsJ(YyKdqnh3G&TE;)DKfi~n zV&-AJ)o%jOR?ygtFU_cL@+3gSy#azr{g7v@qCpz-p0gngO6Y ziRIPr*sA;kxt)gqh7x{@lfS3j_+-|K<1+7J2EGhoShwCJN^Ro-s3!Kd2zvXF$F7dy zbE+3^GCfDok{yTah@wbW8PG7|Dq?TGQo8v%kE;gI)FwOWNOjo-wBHXX#5jYb)g>>> zlC@KoU){5QVm6~9JY@U*wb~SSIZaeEy532wCtT(@XqJ0at-etwQg=#Mw4*#ce9#-Y z)1}J0-4(Kl-JF}8GTQcARqb+|34E8TYHOB(8Y0#t1yM0u!M0G#D-|$yAPl$LRS2Y8 zs-q6I{lKQEgyb#pFPOQ~{Jh9U#+C8AwJLs~+(KZLt)R`uLxz2!nO{|dQ&Ztumg~9) zv|H;0>&@#D3k!M+&0CBBk26O~jz`i0_1&{=>QptJnQ9^%QnTaFNq9GqI7jHI!NI{%Wy;&^lO7jpfGNJ$D;o8)e1GM9 zZCjNvIC01_)a{kR_H;&F=OIlW%^f(IQq_x5U`l)rTGW|f%mn@cuy88y7^ZyUPtfO)1-+(#k<@x!^mR)zR3xQei>h?MW?fM^=)IYp^e)q-=A$^S`@fmR0 z2tE^~)yQYzOc(jdct;^HOZ!9!fjL;6BKIY1acy^eYEp(PLajLBWhSY<@ud)%7hh&i zyF;)39-cLyZ+vyy>g(dGTnbWWF3(;zaxP!KntvYY{8A$1OgxIGss~acUl;lPe$~&C z3e9_6BIAz!H(+k_qx=QT727hJLNFEjl!eM99CzV71KE5khb0@eSe2pGyjY!My0lo6 z=cxOpw$LZ)O&k2X z@}s1ly~t^;ENf`%>h5XAm3Cec3WWK6{Xh2V5 zgrk&5|C4v;PUe0@mMDoqvH5o3W?FJdEQ5mIgApS=@nP@miQOkAi-TxEi=b05GScj1;!jQa zS43oCCLj!_F<=sS3Xw%bD$!rtiRE!9Cye7bRi&1*j?6p_N$$Laxq_U>IkmtQwuDy3 zh_<^Xzt|6kchfm~sxXKHMUOX6JtrP~cvLC`MWS9%9o70qO~7k7^>^HQl%n6tnxjy})k3vB61tWj z&U37N9!rMw>{tXvNjM%Xfw2DY&XCyh7SE7gonsX7jdX8Sa78VA!`8{JvZqA~8Fa-g zh4tD3?!$+h?uBHmM=r13B<%f1=i7hWozW|!r2hqh@PE|#_Lo5D!(94nq~qTN!f)@t zJ!gm*tnyRj4y?Y&(7v?#GRN#MKZ?QkxkBFq-(Q#Rz4U#);_!#>!c?fikHy-O13%t0 zHeC9#bfNph-?Pf^I;Ic&eBZNh=`Vrs=SQx{hF^jqxr4u!N3<{hS{XO{_~%H+hCe<} z`5ye^%go-(e|&xNmmej4!|%1#xsrpwzb`gi{{7=!_s8Eqg$cs7U!SKBuKlsPaCzVYz<#xcMmA~)KQK27YrG$&CC#SoNhbVk19dWBSDj6LQ zxBOJb%c(bMaJdr|@Tq)eyxz2X^v;2!pU(1e4d%lx6EWqVDi+-uET=~&60UwaC&+2A zYSAvCK74)VNLhpR+cddt&u*UoV`^^mCV47r0&!mCOX%kJ--|s4Qme2#BJ4#UQK{Ps ztK-0kK>SgUoGyn#w9MibV+-o3H1AsZ)X-gDM?JawJL<@%n%wrfPL@CVTyK7-Y1`qk z$;uy}8z`d9)O6RWYK1S2<+y(_i2V8fe*~@m-5`>R%fV&+2k&5nMwb)`JtBV@68}7J zs?Rl^J)P5XnbXqTTG=Xm|5H1!^!6o}UC%t-KXkL5!xg^&<9Du)-nld}*}$9nlXn=p zb{lxifARAF==-lfy5_+$6T*#g~DXnao*HdBrLsYV5jLWHP#jj z_um@po0pm|bp7o|e0!neVbt4yj5K{+dV86R)O*JnlHK>NbwsP>UE8?n+js3eN4@tQ zQ$G9Ncg}>j{CVCyRysH=KX5j>9lf$^|C&UB!TzONT1xwS(Jwz-dESdX*z>-4AL{zE z0jbMZTHo(`d}vite?vbg&LVSvsK{*?fEo9a_akrf1Z&Z#?N2^he6b`ChU+BK%K=g0 zxFM>2Gux(Ige=Uq)y(c&CblstPhmQ6Y6fJS$8WodO=@6>SZW8NVpQ~r6pV4HpL6fq z18x&kFqAQXFqWqG!=974wrE1>Dg%uB5(B$YgZoyLuh2Pp6F=q3ijg^h}0Zh#Aj zw*k%BSEUmG7=ca^HCh0V%ixtd(Omd8GV^y44K$A6g0@s)GvYy@rG<-hq%kE5bEB~t zATm(cJDNhl%O& zL?N%#1nk&vq;-~yi-={&*Afvc@&Te+M*#6!KA`5u5Ob&j`@fHa3g(niT0MxEVwbL5 zc@k;Qy&Ymng(;vI2tflND(!_Be4=F#+aww&_Ig(lz8?XRuO9D%s!~WcFbP8{E2<{A z{rg>;1sTQk(VSiH)O-iHsfKxDZ+A;$OU7qzdY1cNsCmvM*suQ|z5mYc&7LJ=Q}vc# zny9CAFIH1?oc6G&xTTt?N$62| zNVU%}sf#+L$CbY2d$HL2Qp6X%!2#EYH*EE3#+y^F$zt#2)NQ>;tD6n-3NRc(nzlx( z`eO3tj2+Cmu#E!X$+M$MlA$yt*l1%t8PR%>JANs+$Y!G#wem8u%Xy1u*~Il1fFz1t zl9tHDnedGzsZK!;Tx=ZsA{3)<`5><;EnZa+Osoo=cYy*f+CER|x5mpD<5-d^#5J`w z2jFXMC4dPPcCIOBUx)J05s6m+5^Hy4iQS^}I>U}?kccpBzZgI~%T&?_5Nd?8vN8go z|F~0yy@}Eqnq}c4{LiHsQ~H6d5f&=rgQ83Z7$;6=w1S_&ST8PkT8b&-*WTZ6v;0Kz zFoVXLVCuP*_=$^_SX4P=&!5xI=AV0wQvlx01=F(FkO>M9_2!zrFaU0v<@D#n05=fuVvy>M zOSO-LfhZ5;`B=eWu9cCVw%9?+tulmdwwbs|WPwaF_Nsy}6JJO~$oEi0G}g$>b@$oX zKm>pVdYSkN227QI@B5{PEU7LoBx&9sDNA%(s^5N6*cu@a)@{1A5Rn15DcArWLA-;A zEcdd((o2}P=s!*xawup6+Iz5r4cF250+>Ewq8e!jo_g7+Y{x^wTt0GV$~pKgIp)_d z>ys6WZQzX}u;51f6#E%MM&F>wroi|?##gC%q*pSkyYM23y`NTg7P%;ORmrI#h zYaBR&z)g927);)7l)0slGO=M~1>eYk9ZgdGRHz8H+>0rY%n&vzY-&mySKCZM>VsSX~5 z?=OKQf`6WiI-$()&jS^44CGEnriec8ixD#Knc4yu<;@P-;zL7P(wImi9<%8f@yXU9 z#)K@F1vwKDn&ef4AEycx%{`^knD}}(V{E#cnAPx}g4Pg}O*b*%B7(Nn03KL*mIwRs z%ur-$FcSBOgOsD#VEqKb&!2ugk;8pYWwXR0au1QXjJcgXHL}smkOeKV@CB$zJSbd> zzrM#>k_WZR!3?RO93NCB9yg*xDqK*C0u$B{ZuN!afomklqfN(uIpXkQpynJOT77bn!}|%W5U8Gf|OCfSqD) z-nGX?b)JDLv0>3{Wf#bCHe}&a4u&k$(l@>F0jtemcCCOa&t$Wiv!-+Gwm94Sdu==9 z!j<`eLOrC|W%(B7w324K#Tzg<49d{#06eHItU%;Jom0^klb|BeR-bw(s{>pO2lX2q zLqE$WsVl&!juL$9mZ{^~c$jb+NpS>fire(D-%^$iy?qb^c5m58HpS1l%F{NkXMnX% zp`nc@;3;;jZZLI^T336FAuU6{+sdMl1!|uRHdR?qfl1In$%e@Bhks_g_1V_4c&HJz zNv;G$(AOYVGIMPY_QCf zi&Bv%Am1334InAB$eSp{D#dC6xK6(?gyGyuBuij1>F=3{Ae+^ziBb%X#8-yJlOG&0 z3r;1UuTgHkMJ-VGoRbgVmyq8lADrOnH_SBq`n_lvvG2T(4|KHvQnL`f%8pLkQ~x4wETc0Xhf|t&V=Zc9!D^6XWhwrm6WI zIqNYOtU^9-He{@2bWTelSfsA@c$k5hy*%a%TL%$jNOmU?f=OhRA0h4-UfARtPxPa$ zV69(PUQmgLNz+E7Z3WiA1xS zEA*GZv_%N~d_bG*u89Zzvp{8D1wpXMTn>`Qm&oTayS?Imf3u(IO4J~qQq~4ZeCR{| zN!z$hc>#cLp^HKyXv(&NM=-Mp;CBCmBnm_hwZo)BCU|Cxooi9n-sMGzWC}f?agHAs_q3dRGC7;#E`NQn%42?NA{1NWuv zn2XlW(+-LGLIDLQFl}^y#E<@GC@{3hO9@Dx`Ded9nS|_G6|e{CuOW z+N`9^L0P~_pA0Gyk4VzoP1%q`325!pM3FN!64+chlO#?DH|9aQT&P8(>FP}TOAJh( zu}e61u1eWlR_;XL3TJWR(t04JttUSi!u0tN41kssbHoV;6!7^UeZVjMc9SEJdY%hO z3q0K1C{G4-i1xoHPq{m-9ZMR7$|eu#Pj~uEZjt9ujy}wtG6q39V1NgI)OB>te#LK{^mEy@pi+Ojd95`83%pR+idMSCyU!EOonf5D+_psy6Dkui%IeJB3+Vf zN5vsm2^65hf$B(ByL~wXMy~bp#sqh5k&DQDepXF^v*pR&KD!?Pffubu zIq6>*y=xzMV950kKUe6;;ovl|X*wR~$9%pCgwe7ZUjyf)VQ;@(IXkv#gYPjJ#?=E` zO-Sn1#Vc!~b7Afh*nrTl7eokV3bYP(Ji~;1K#Bqp@t_*lwRcJ$Lxn^rFe!GnE-&<4 zYp}ceQ3XC2X$)SM4Uo!%6gcJzz~Qi4!SqRjsyg&8OihFV?RiHx5svZ7n(5$&Me2pg zT_qy*%BsW33|;qC)L{w1P(ys$;esFq;;BP0vyDKpgS~LUQaLy3qP!^#5CE@w01Y9Z zAYr7!Z3!X;92#$lf9GEKj*<`vD?CJ#$QyYyrj8LnB;Ixh_+iD&mb<36vVU#ydJGWp z(d{g1Pt-Cs}c{{D3r5aQ`( z9z2MLJkCR%<6-)ExTid^KX~{)u_cLnGvs^H$L|r&-Bakhr}Xrm${+WL%JD+zYzWe%5?;HGapR7D-w0Y7bXwvlfr1`l?%Tw!*U!7!A6-f_GeZ$SRo9?AL z`mLX&IVn$=DJzorF;5*GmWP=pwCI61EXy;|-K5+L3zK&(q?hDiid3+}4hlbOqR6(G z+5vo)h6>sNS)%*cy9Ymwq}L}fRP%&)0Z`FUqnIv)-Z;-}u)WH4%w{@4X3fAVeHWtJ z!L1%r=c?;cPD)ZcKgLDMQ=p)fnfU#Nbdhip5W%g1nq?l1z}z&+@N%6m z{wBXnkVnsPgnvU;^}cw&7o)S8+^N0syRL73G8FXWR**EJW>*bF4WwdLJxQ?xytko(|yx z=53HfvoaQ5o&fC0S<6Y>qyp^{0f5BtkfJQ8&K})>ALbslw{%`RBMAf;QdJ0I5K|Nu z5!w?r2^}$+HWZx}CAW%BJGz@ehjlrmMk_KOI*Yj`k2h7JXy{nOJdUY0ECGGVLrS!9 zlc(|l-)}=?n5nv%I0dGWP_pOxmFvZ{L$IJHb-<0BU1Nx{026n!KP=p%c7<97b8!Z5 z(U#m(_cuSCl&jexQbR_<#(#J&4lBPYuzph*{6=Sa!yRQbRox(MX$SRFgS_U`YU?FN z`OK@8ir9G16d_lUc0QB$B=36tu_B+TbAF;y81JIDxv5XXsviHc@O*p!tePf!x^Ktp zBl$SZ>KCIMa=sXRfcC|izSGFsK*RvUV*5lK&WG+ekGs0ILpiMSxk1%zw87JDRUPns#(=bNp3%WzO0}mld$&E@-m} zo`^&XYw_qdm2*Cz4!@aX(aHN#NZ0mIxlts-4OI}vt=W*24(!%G(^YSyp)Y2IRlukl zRJaTrbb2HiVf4)8QkSt`NQ&Gt0fme=M^CQwsU6vSX<}r_QJw##W%Tf0sJBAog+X?oY|d#*=^seB{;%s z#MBqNWQ2(Cj z`;)NEgN&4vj0gl-Wr7kQW?+a=RMLkj%PJYF%IXu8*BchW3}p;8l~hUEvSe8iBN1ge zn2Hft(b#ZRW=$EUZz!QHBcs1wN>10P$V5+B+YoD{p`>dlyB?-yq+VIHqBVrqB*RRS=76Ui2i74`rsRR^>o6)Yhm4#8!i1VX^gJ|iE zRv@0MYKQWc72GW44%i~m4f^JJRjkw$49qrkgk7D?LMlc8eOlgWC<4jH54HQE9b8P2 zT-Zpja@^D+8`9_}KX{XY)V2!ai-;#@VdO2R7R?ypISQZxE+T)oEuuljo3f{0b>P;H zMum|^f6xvm4Kuh9e=mg3^(JaX{=+Dy7{5rgi$LKvnph<=n2sn}odA0Qy`8%TmmCV| zF!#tzO(#f36plz#IWm6TjI`be^lLiQTF6hL8WD^dV z35QKl24WufhuPsYYMlm=@^R7w=29%;Q=E|%?KV;Y?#R;jJ0u(`A?QvaIOCNSwd5WOi3zYA>~M=3&V>|G<;h#J$$gE&=tu6xAag0v~b zMaaR)PZ3gad?o-&^ZG3`rs&NWDf5PbM5)jbF^pUyyC0EqDQvHZ=6EI+^Vo_GHEKqW z*u+W*&YVL?4bg3DWbFkFIQ=ox_wm3*maV2r?fqt7YziF`m1E;=&{DktcF4hM$^crv zgZ}|7hN5d@v&Fbj2=IDrS^kcJ1r9K-kHwBF*x@nemy%#EW zUcxho1*f{e2;=J9CkY=<;U2Rt6skQ=P?rMC^xpSm!<#A#ylD zL2PB>^W@1t%pS*{Jh1uU)xwGf~s24{1wo#9vl!l_pwe3_* zCm1vn{_ma{OZD)38Dfoc;ONM}z(p;f{+bHm1qrjoQkPQedM z-lN+}?4{Y-lzo~=b!3L07ov zBRmS+1Yn_flz>V5QMj7|N7Pvtfh-4ST-hEu;SA(>xjUi<28lM(v~~QvT0J=obP5*) zNj}|3aVGxNYXQ$_fjC4S}sh3+YG4)qwCZnkByB?i~;pD4&a0C zL0n{F>}|vp5wbzNt+6Lt#Wb>OrAnFJ=Oky)JYulN(*U81&{Hyxrl&(#dm|h%V2YS< zgH}V*TTMAzJ28AfpFe{ret6H@u()PY>3oaQPZBnd2&nLz9fRmhm=ba0%TJ8^x?o|&dgl-`RZu3Kg!oji%4j~^iWk$(uc78iFRMxsfpCxdCnT|Oh_2W?88 z6(v_cuvj3#(71^&Trq=50K$9xaVOIKGVd3663_c!7hexv@v@@S{ zYh;^8z-}otzDKJwFk3RUkhFk(4f`b9R#1gc&a6@WlnL%dUWWHQ^>LneG^N)#*S+AZ)b~_bY~h z5q9LR!`S4nqcf0JaO9-5fM!EoW5_mMfi97lBE8e)j+tg~b*hc1EoB}FCt6ADW8w(V z1}tYMOq327`g~>e>W~nq!(50axC{f>=0bKdZ9AaYfTKtomzEx=be$686_b?N{Z?5< zMM;siAZC?;bmg*OKSf|7c@)zb1(-r@q=~xu$CDbIF4tp!yv;%}kl{oKKcoxkl0a0j zX0rU}F!wjMuY)Fa87*!U0J}OGv|Z4g7DiE&!rLU|q-pjCBi>KG;JSQ#R3er0==~(c zhO#c9;Z$&lwkm!HtL~<9hup%YoE=PzLSLK$Uk`SlZF9|lT_MLIUh&tH?PvOy@1OX z&(*-iEPq`M@Vqa1As!6KT72rE6Bjp5+*hk`3RiT}b=K-$j(0%;j$h{kHdiY2XBWb?OM-OZ==;m0mm~P>gRN|H%Lr{Tdog#3O zvS$)d_R6K2YAf3-&ul58K(d@|*#bb4t}()>f zt=+N~M@gTv8DZ$%R)qpTyJj-1atCeIH5{lUDx$;U(%g1g^R(Gi+lTEgXU;gYr5&;K zH6Sl8t=VDf@VHop^%X zt~d%Co}5-|E|O>5H<)Z|;%pjcU$L5zyJ(Szav(UT)t3h8)jHG|?Rm#H1KHa&?3wQw zTXV=KQ|W*NCAmVCip>KjG$22K?#!l<9* zJ*RA^{9spCv$%1tQi4;;hqh-Bp_|SwXV@$ulchj`rZux02)T9A)*@^`OaR#IfRV@w zA`}n#1n^r%y51o`2Y`rl;o3Pg=m~6j38=ASJ~?^+G3d7ufSPO804y6Q6>cO6Y_V)` z|LQTZSpdWLQ{w?2OY%k7G2{*=M8zsx5k8j?$jCQSPeEkn8&!kNAhbW@#4Wb5hQPys zW4R|aZpaz-D>=OcWu?o3DrBJTvBsMufUbCHady5a%@@W7#i-WY9;OB(?`vtk7^mR& zM)$puHW+@I5j#I34ybM@TIat(%E^1L3l!E3IY|OZb%5+W0AS>Sd?6qmcd7z(*g%P$ z;`erVAt6H#o2ksCHepT{<-i)pstUnN zm!V)o;NQhnrCw&u_irGKPcmah!T2gwMz(DfB@cIOmW{k-Bw80QCA^`#Ss>g9ZO*{L zBU#If3Q;dqwXI{}L=|%eN^9KcpAoC8VnPX?`04=0jsZ~TAUL1YCM$1DJdNoGl?)Ia zM3_!1>L0#A2g`INKm*R$aTbn(OClA;s4l*i>MMd(FnInFry-*twm5IK-D%7tMC@vidRp4NOdyI zQdAe7vKB$vBx`MA;Ke2NvvO)9G=0=Gc;gO)4z7POPI^yPiOzOy}Q*Z`>u!K*oYZIsD2M68Ms zG!=k3(F8q_shYhyaRAzD$^hkamy0~!_tK#det^90w5Q)<4{4{jebzDSme z!qjgqDZTJl?_h6P!MRpg@4e#OqsUGtm!Ht)n?9Jws4$NmkxSK#zoI}CbWA~dcKYh|;3+pAEmaogs$g)Rlj z+X656`{U)>-hHhT%*Po{p)Dfql!yviImSDq_chRB=vm1w%k~5ux z?Q>JS)slb57I}wReT}Ejod_Cc7QNR>PHpSgsJ)@@eC@l_fc*IN1byJ+;c{mROuoAW zh^Qpg-guCdILu$~{g`^ub+B^Y@h_LNXq;2s?W{wkEQ_n(r1J8q8GmGUIDBvts$h6* zkMdxji8r8!v3qq%;g^`K5|(Sj%Idn{N;2S)Igkp_UfVymzeI^ogYyY1hZ&P`A_Jj|u{uv3l)-wfP# zfbJ}lfx%L$>_s`%u((kb7%MlI4ei8hZdXHvuRp>B6X{HESo=CZQXr&gfh^ zbhBP*5k95Gzldk=&R%)+YVB=*UV7o5SiMGd4Mih0=BTE-rVUH6%)rn(1ZLTcf{jxs z6xhimEp>puC2*=L4%;C#B-aC)#HZWtsRfMaWz|8qaq>feM*KXaA_3Ic9a+*J2)DI$ zJaYEiX=|yZZxQ-6?BG*ydXA*rKIG6dz#PTzehWQ?&NHiY5fNj>0m)oZFB+Gg>n;ikd|BU%J^R zR&->}z!>!(`oOx_JzAo@TKt4M!BpMdh66UymIiipsHF2%q+MNlWm$CrBpmzG{y!3M znFy&9de|#evj}TYeG!7=!d?60Eh+NC<<*(O_Fm4S{`6fm!Gq9t zs6(B}`pncdA>s!sy2>TyhEJh?(`pU+L5dK9DXQO%B*1alI>rt)+*_y3R1|^8E)>)9s8<+Bj8_jh&SXVn?}Eou6RLLvY@WvAtH$=U~LwBmLySZk6C|Uqk;<0`ff} zx1EL3;DDB-bc0@?0S*HQ@~cfkw`c_4Y^_LJ2Ya8WAK4s^heNsz>U6s*cZD6MRM@G1 zww$Vk?AR$AUH}RAzI{|rUG#+636*?2ppJUC{Zo)y0jgxEk>M_cq!Uohy&YqL^FP_JO z59IsWu1vQnpv9u8uCnK^DkK%PPoW#VoXh`03O8T(chvpv6A`=HWqfL!f!jDYMWAp? z<*(A$Ze?-q7}6VL?JIF}?j*de6a9@4z*{D3$m4b$7@lx-Cp%4uUJK~CG&|&; z0DeEn&_D&>G4`)t5Y&8)u_GpBJRMWCFU&Uo(#>FFG-J%)Fq5+(4_)0_Vm-O#p1ZC} zDv+K#IODEh$>SGC?X#pCyjrha+cx2sd!yDKmsFo2KFg0;QyIBredoWcy&9hyk?L#c zQWk1-fhLjsK{-5neSwO}psZ{$4PGFRr?6QL9-bf3k?=uY_W+a&#}CLFchNFYig=qu zr_bJWB$lABzAY`%1Nq*7mDb0)GMJATGU6^WXmFHr+-DPYmU}-Mqwg)4Ueyw1qVPKL z4A@b#K_U(H%9GL`rlu?j-%k{a0|5Om2SF4ul?p=|(TSP}+fM#T7-dk9kz?Su_#9&! zzFD3@H(bxg&S?<0DJwzyBmd$dPHIPm_D=gj_J%O79v7rEIE|iA(QBR4) zDz))wSRI}uTvlmVW=q_EHHa$K24uo5#1uB#f<=jyQ{@}5TdiYonf_!9(H*Wc-4-Z! zIBB>{2A0C~fh%!$foQ28{628?AccxHA0+mlTHQ5COvG>m!U;fXzRrNJ-^NJnR>BB5 zttwoxyPR1JbKKQ;M8at&Nk^kW8d6>;pb^T>K$!=LXmX}ZVZV&wPOSl{fr!-)*m`H5 zfx}PnKf*~uA=qs&NST*~4T>`^5>muamqn0ZudJy$F9-osKKynsOzwU^U>YiHml^n^ zO2ruEGrDapf@WzL71wN9w>6Up%HmhT+|kCN6t*l(AOd~#Qm!PU3q5hs$ai-I92r6) z+x=i&@S2ZE{a#9AD9rdC4WvAh_+iXW^F1(HsW^|lFuDlYeB?hBi_Ie}lMahS>Ma>| zu&5t{MKIm58WGef!&Pf#hN#FKL+O|89u;TEsWABn`sguHD|hK~|pG52vs*W{Rn@1`MQZ!-AD^J`rXXS^*q1bW!zQhypK&mZENf)FdWT zcX~!nRs#M<6O$Zcg+z~k96 zSdpfxnXpDKMk1rb7=!x-WTGS;j6X_rxof2sY4+Wa;Y@V+Rz@A8p6#zE5$Q1~8SqX) zpq7Z-rTN7cYc7HnrHcOOh%=B8?7iJdR5=>14j;kfs3|^2(o|J7q@KKI0}Vw@HrM2j z5Md^5A?U3_K$Xjstx0|geR8PXVHyvmr$>Xr(hT{*7Eog)W_Xtft9%52+p24|F{FC; zYu+}^dG7en?uzmsI^!*T-1~M(%$5C?WDGp|+f`YDYn^9dmaE>?Oez!Xs25plvfOhv z?F0>D1+qrdz)P|t7=H9NWa{kh6&}#27(sGOe;qlsBhqHS3}>gt0wXL<-ck6A=+We%#ed$ zCWWg`JfbRkhD{CD%dpSh_6t7~Y7;EYYRU$kFGe4J^OX?0v13=r?qWVq!dVC92HElD z3!DV9g=rgH0$3F^ne)B=J|80GshL5E_T7Q?xvQ)MMkb<(eE>JXmdj6OBb{Qqa_vyw zE9qq+v=*~2fGwLBR@4#9!_nV%1zcM}FrW!Tb48HWCtD|$HkaN6x8nqUP#7epls?7lSl6 zsthrd3Xdb?d9eku$9gCM$5u5UEPdatT4Hz2vra(wI2pbbYJz<@575zqaWB~>QW!s1 zZRqmg4}U6ZV9ndjY$|Mfli!Ztm7JXu%mK3-gRN3g3#7wKI!fA69ms#6khlUUwOsTo zyCR9w`qfv&W4|(IG++nW>@TLEqc`JTy-FvjH>@V>LhW6Plt8|m@K?0g9F-u^E>(o~ zk2j8_EX$(ZcqgetsFZ^XA|9#U9qD<}2(hbI0L)slyQ#9mr&TDJ>icPX?KAYfJT^Rs zFb%jeH=?-$8wDO46(X_F3KPv0dxRpKL|B#I$b;G)qA)tpj+zk2XtlA|{?lY#ztLOP z4gtyrQ&m@QbPA3{?4N<_iZYaHnVD+iuWzrpV_(=Y7&i9Aw;*OayV!LUIu=_tX0Yir zZjHGsbV2j+r$fFK_!6a!?}1MQkB=$6yI|(Sq4ftVHVjP=WlV>`qvpq;BbP0dhUBkF zUYNoZ`iQcoef_04HO{jzk$$v0QSO)`!0AugVkZVHl5JtI^;Ed!0Wb{_3MeEIWlHwv zlbpX=A%*{$fnX3etX8$qk?n6EhK`$lUgavoDY3T0b3`e+mPcH{<~Y7oXx~XFE!Z5_=9W+ zcKy8VGdwgg1@=xtrhs{!8kD22Zu*6Ggu7Ww0wEyB;T|wz3R*}}HSveRCXQQ-yA{?W zGu60vz99@K<|O9cuPOV~_{VLev)x4>mwu$hqJ``ME43a%6U`R?8oD8K`0XVwYB~L) z(tbs|jr!5bCSuTm!ypjX6gOJW@{L&0nJyI$Mq+DNpzSVWifKKlGHfG1WOH#)%6|s_ z9m~FGqbAQx(#*8}7ORZH=`FmpEBwrAxCMSq_OFqefk`o*LvE&utI*9HsB6IcZIr1^ zz3+yJLz=?@!H>WOJ-q|AKHnYEKJ0h#&P1(J+_y=jvXcmZI!)7p44wVAdtD#`Ap5=^rVn4Z(1r52(OV)MTO?<*C$ z0i*&ul*7V&HpZ3`5jWThpWfJ#n93&wz%o%K*dO(ErKkX=@PmPDVPVdHLyWVqC>fEfd%2IN^j z|BD#=bsG4N0Db`O&!x{00cc@@eZN?|J|iR(*IA51q7x#O9l+vu!%AivD4|$k^A^5> zDDW|^2s3uFi(R^ei;{c~dXrinKcZpvD)5ZG$vN)P$Vmk2;`(ZFc`!U-S4>6OdBB#n zBjHCyTyupo$UT-DNIe;p>#4*!6P#s&-;b;;#BJw0SCv)abJBvT##=Nqf(wv%c1Tt5 z*D8T?b<<2$icfXhTStHobk0<*A?6UP|2;2#H!0!ScH*9t@EqLP`rqK7rNFnmY_Y$NrpDU;1_v2!;{6vm$R-nh%Ox-4 z@wx4n{{s%Hoyy=mDF6Qf2mMftSLJSun{MBM&-i#P^upWGO8iwDZRK!id}pN5omQ&@ zbHcVgA*kz5KPOCG6u^N_)Y?fV=4<*nPfdNL-i;Mg{7oPb?ToDNNzB3)3n z{!x%DlSv0cPvF3M@o*4eFDmz`32jrymJ*h#)_pYbmNzHQ-@2Qg-PAZw^x4w0#q*qo zBLcAf+X?M1U|OJm64ZUag~#*T8DN>;o$4`iRTGt^>nSo7W~BZpAEYAhr4JV>(|6B><*Z1& z!Pl(aqxn|);~Z;e#C(_hC417{u2Tr=Icq0&@d(JB4e#tmnnppVD-%JMAwF+8%g{Q^ z^#O(xgudIFjt{@Ps`|Rtd$^}@akpRdE90%cSL=ji8@w;Y0q%IKEJ;m1+xrMYsg?2; zp_&_UXwk%j5tU60VHqVDxaSSrz0xA`&M_|VJMdkDOf7u0K(4`FWIY+i-+_7fsGjOP>McHSv2dh%xM4h2Iiss^!@F%B zVfm@8RG7}{cL5L2KcD$VM}4I6j(|iRZBZt#xAD{iC*I-YUDJUujtTV-xSdVbA38NDlmOv}<`pRy$Q~ zC@?BONsXjmA?npTF>MspDe*3gf$HQ;t=ISY`6BWD#$VapT8MY|kG>mj|JU21G%beI zMH{E=8^X3?}qZKHp7Kia{Pq!d949aYdtiw+4NQ55x0>7{?sE4b9Y$1 zwc^8I-ZaYPlXt*R%4m9z^{M9jxs1U@-NgIln}0L+pPuQ_yQf3)*qDk}0-oq~4UC`z zetNoJkAHdRj&r_ZwQWUg&{%c;0%nviE;3UYIuWzs9x$pHvOa1dc{oh#u<<;6U z`^MD1^*_B%RjLnfw(Z_>wbuKvWTr(==gHc?Z}SN|ceO`cRk~kty`;P`P1oM1o!lB3 ztz|i|yUR^!^S^ZlA-t3C_X_rF3b&l>Xky6+U2VIyzbRU9-J{5D9j%pi=WY8t>!&Kt zs@}(^XwfIN5@VG&T%Ee|?V_;YW9WqG(VFilt-jCRZT)^_dUWq5Wzn-w>EEwPu;)^Te4j5>f4}wyd+y-ld(XdJ z`F?$|;M|edzB>Ym0GP{StIi$XL1qYU06Lb(aw!tv@ui!yw*^FFCV+Yqf|J;sTs?Ee zj0e^DD*x&lJdW(-mFo-uYR}6tN{MWg!u$==DI|npvoX<>+lOq0i6)CX5Hj5&Njila zosUs-9T>`{JkCb@&+k$B5so*6_&=;;$T7GGFH7#w8uJ&AUDyzN!zrR=E%S7YaKuA( zsr-dMVm+ck2DG*%5t)|iAys{*j0@zKYx12QRjKsPSmYzfKRY}G%*o%M36pl@z} zL_bHh`kS6e{@~uyVSMadH_j)BTLj{`Jdqyaf%haSZ|xoE-X8U|=aqi4&k);pA9ga} zXTjD?*rKX`Dv6i5D8_h9z--my(5t4KX8pL@vxj?)#9xTYVzz5Y)CeMtJ2;dCpxU$3l7Y251PzImjNr-Cz4t!tJ>+WZ*Jd{5dLrGF{%LZiDc!wt`Uwa<1WA=#+ z4%~+xxc_Q=$>xZ6?n$Gl7hH*in0JItKFybLSj~kN?|oVA+0hv>EE@=UTb$Fdiy+o?Q zAIo!LMl*72m-@@gP@(sKof2AGH>{I~m8q}Tn%KM?Qn*BF6-+j_{k7>k@Mq@x>E;cp zY`fyPWv}B6-;;5SC}xTKlV0Si5o+EGiA_DU>03;P7hWNrolz3W|E3^M$;e@4)G*j~ z?i|fjj&UW&w2xyx&9PkJP}DPRoHFe~GaXVhohnx|UA*Nr`ZC>CGO6lZniH2E%3Ytz z^{(V@=;QiLb2qJU8R}U9PFX>rS;47Up_N%%`?4aYv$n5fG1ar9oU&s=vtv`U<14dw z^<^hcXYXCfW~t{SJLRN=<{V7TNv+ID@5?zdopWp@hpo=zIPtilyzEpSuacM7$IGAQ zMP+E_DSNjQ^`5Zwjy7o=r88nv411Mb*4X6k8}~cwpxbDeCs20Tyuj<4^t${~_nF-~ z{ulkbDSo4NCwd3 zD#V}?4ti#ccxDWZua_|v9^kTL_bwv{WMI)-MvY&{rJ81o6SIUglnDaoBQs`$P!*BZ zTdOFtW522!Kkm0O@RD(sIB1CxB(b7=8UmhxSn-0jo41vQhD`2M=5v|K zZzah(NV7gegoZJ8ZoP+2^qQTmCo@R|g)imxj9}Ie^`{ivl}c>)8?PtgidkWW13W)V zMDCnN9ZajpyIh$+vszjBqmr*tRU$oIgjJQNRaI71RbQ^EovAwYqe`Gr-5@<(gjKhs zRku}Dw_mRA%#G*F{O5F0pQbHyF`gBW7o41@k`*+J2uzsU974`x-bN$lPdpU*z9tza z%x_>eF=QU0my|=UDA#R`I^nkDmiJ|2g+c9Qjl7Y1zdN~_{m8K8GVJHEn#SoYAr&GM z0o%os&o3Z)o64dcN@gV(eE_Zd9f8|_^ev0V%XQ!|Pj~nFRtnKAts&CP4|czf?SO^G zS1cB=HdQoWm(-R46bKM7hx61}Ff!xhu5SQ&TKCWvL|7H_6$jE5;(i$vFNP@>zD6nb z${Uha(X;Cj(s-JX$S-7^%)}kmG}@WThyGNZ()wP|KEMK407OyIQKWB80nnfK>L}4~ ze9@;9n<6T=&?$gT0wNNHrT3Q|bx_e3mT)E33PR<*(V(IU!l&DkF#*DTU>0GJg$DiE zG&Fe-dc^~+sd4JW6k!lz?~wVLw~ZXO9fu9A@i9%6j&lJ|b8(4k4{iNiarpO>G_@AG z(2}g&a-LDF&9qEYY%#(?DpXU0#l0MsbP1=V)&zj;vMraj9aG%#f>fB0pN#{B?-Er- zkkAEmOeja)&AJ(Xnk&Q^`hyQj3RAq!)B+tFM%w6rb(2kJ7O}7fSZ$)?8Z+6D{UZ98 zF~Zk>_q)3YVLGTS0lj~e;$F0^#C4gt6kl&ZO!C2}NuV0gR2@RnoNG*$ZGYf`D7*_2 zO3pIhVB~Sg!k^6z0eTwVhqm}|o^O!Rknqonz{(9WW+})BSTX5W^SWGwS;g7suXYpe zf!31Z#bI+>3E!M@4%KlkE*7!V2a%)+OMcNNpDS%C@6i?)sIuHA4U@bB!SC@N^_myy zl08PmJ#RHzH5hz?FgXz4ngz5MQvmp7Nbs}pZ9uHlS^a*X%!si^EDfn|&9;6ApxFuv z)Uz+rjZG_hm-z{q8hO|r02C<5NdVpu5{+xjFj~dH!V%a(D?{(JLOw*jr2SM9OPQ)*NTR;Yd4Tz?BWQ%{s$VzV!?bxdr+p%Ita6 zc|LU2x1u*Z`_|jug&2gq5G}ivQGQ+}BE9mm1hqs;f`HR!DSgu#o+o;+3L=YtB)ahQ zqn?wx|D4&_%-uMHFTC8Oa#x9-tuL54>~+Jq;GZ+7()ilhFV#WD1T&dX4R-9)%QbXC z6E^DlZp}Qf(}fP4bw*!&0Mt3av9sd<8rRFLT7T$5ZTkGKHztT*xz}Q{9D0hi(lz{1 zH2SG6IkeWUEcO|{8O6!qOFz^*fP~dUNr%CeoY?s*U0lAhE@m%BR7PhWYM5Vxe4MC2 z6Y&It=iUp=Sx6Nh89M>#;CIE9-dj1${GFFUj0r+b!~ca(mHh7X!n>uZG0MfnLApek z$xI3eM?Aml#$|#25hr)$Blg}J)G|ZZq?L?pML70Ydfx)qMIbDh{e6L#c*Np7b42L< z?p#5W`TY}xCKy~ASkQ^|>jYG0C@>;8nTL3OWhi-rjK8^~?xFLSdO$NF)NYR08%R)P zo#Qa?Ku(CFHK^sSrDMUxaaz@;4Ct$vdhk#mM>NR6?H$H=kYn;m>!F5m${oF=_UvAr zHKJT*+d?&{DTp-tpUv#GtKDi?oDB^TG#DH|G^KBkcXERZHIv3}MAXoVD{ zYAYvfkkRHt&v>i5%#0kR`M&)2hnZOAU02G`_pKbiJS?tL$z+vaquU+~kRpGglLH&7 z{@@eyk@8`~%^#I?lF`tHHNEgs$3o|s%2Lppv$$bAsdBnPKJ3=HHISWI>SAht(jg+8mO zlLC%_9z-gnBLP=KVD_}TilVk1X@GT-q`?pIw$j5~kjQ0V_g;`kQ@RVnn{=dVC>GSa zsMcVI?R5|)x}L6tJe^XCW^KC4hzZm$$UpSK|xy6x3+Gd+Sq5)qo5Qbcz{Mt0xJgy2shxc5<_G)SXFxtb+bEc~vz zjxtlvdSAqPCjj29t4C=p;*LkaT0(kw?B2dWh#-dYMOKG4-@=SQ(BA!L{*4=R09PtN za!~n`Yq!pB8&;u+M=n@qYr=lrUM@m4eTZ%2A4Ncy2Q=${9lEpJFz_w&KTW?8V-ZPI zh|rwBnDzM{&}|!vL4frCOUakbktgLKbD+%fvMf$kd1e(II7KgqPSaa*Ot=tGSubeK zsy~+{mwTZmU!ko>$UWVedHGb?E$+D*1up6Yv|4xbVg4Q3%mH=PQKFYm%qCI=1+_8%POeSbGs&N{NLI8`Wx=7L!D}$dRt`x z%#35B+AOBeaFnszXnB?m?848{kV!G{A|8I|FAO4&Mk^s3E_ zGoxaIr%W${Gv^OX<{rteWv@>;a1O7bH(!T%?=h&5M(sW-{_#)NF5(i!ct!A>{z1tf zq`~VkirjA+vS08?G+8pvU(0m?51uC36Tb)QowK0M8nxphpCrD*FNMi0;Ri@-|Kj^G za@lPyAgUApn7uyp+MNN?&*oMw68^UXK-RFd@!(|LUwp==>yX`x#bMbmw*Y=ZJ+igF zA|bCZg)uCJZQAq~XNBULNx@q$d#9WAu)O1Q7$%XVSaJZHY=tQ?z^nGK`wOEK&%Yuo zO1y?^o;>p!mHWZR8`e$=AfL{TS$+vGy>y7De@vd^Ucrm`@s>za zjB+OxS)6&-o)eE(a4YMsRu1R(_za>5+(W}n+3_yC2G!aM?|r2l#(-Sb;x0tqeWIf& zK3iTfsw?Y$)o_z2n`n+-@)4Mkj;XHbk|Q`zo}7u^LmjNp4&BXb%R3S_9H)o*DIpSx zj%3nZnJi1h{$pmOD_q|0*vs6(DnvtOk2BDJem%ijQ0kLt?P@^h|3myzR{`SJF8%!6 z#br^tNP0CtHXwI2sAu+Z%beViL9!yvfd02bya&8^LR*?WW2RZQ+4Q^xspVoTn6u)X z&U-j~8#hO^R$j$Ed6+XC_fKjjkhTQUo~z7b&J{#>r{^NHW|6@iqUwi_@nbaB)*Xpb zC!bbB6A5EpW!kQUdL@=Px{xRL{9Rl=L`rfkiS)JGQ^s>Nbf7)iFQ(iX;X3Xav~PF+ z996rsp z^N6``Z$C6+h3N!s?G(JgI8N`g^h;O!YKwB7R3h^>KK9#>SYjV8@ijVe>(h<*-Kfb! z#SNuKmwPTfzOXN#N#(r6Wrk7{V)_-cV_~yN?-^Y^8Ahgefv?rS!VRuE(HHBkJ=`12 z^PBr%n0ey!>Md7QcI6!z@7yn6h7V%_MRL$I0t#lD2q1uH9iF7hBpym} zE{xmum?+lIcOS$83JCv9)j5&7vEbO!e~hZsK`BaW&rLn<11CBRd0+a676VDROF+1c z7l7hT3VvGY{Dv5Q3mWX-6EKc!Dn z$I*)G$u#+yVxzP_dH!6Usvgk+aoTwx_#Lo7bP7YLB8uVX@KGkO7kpHmmbRFxtL!pl zfU0HjL3mbmYx+eFjS0Y4=0r&Gfm4CnA2+Tc3=Xd+BGoW7#r-fP{Bte`gAu@2t>gP; zV<$K&e!F7al=WlgTNRSd-rB;k%NoGYWx(pVjXLVZeVgokuonaI*UR)s>COmwZ)Wa^ z(7?5iFVf{lnL%FjKpu_4UbP@Q?Rz)T%WNuCEV~OnFdsy!;B{=zG(c^iU$%s@C}h!x zc&By|vMfV+OYKm}QieOGEhqzyDf5sC4{Y6_N~a6j0{u<>O_bv|9f>h=(TX_fznIhg-lR5;AyYpnS=0W{^0|{ffZf3JVr<7L)M>IBO`Ts5~x%N`U zmNEK?5OqEH_rLl9?mO~Me|B11xNz$q+bmz|*xFZ!SGSZeX4$Sf`CmPoM(!VCZTR<7 z1#bJxzW)Bhxf=|ZRGFj3o`JX66Ag z0>_t109IoeS>7L&dyc_|yIn=17d;2K-WQA^N?hcdilFYaY`7g0KW$1@3r-VJWW?Za zy3>Q<@Hdx_P#k^)6mmI`33HP>p1bkq(T1>2v@7Rxx9 zrd*_+47>i&*3QA?U-nY`_3oxR7w7FRJC)(T&8uwR>aE&UWmBP3zbj7@7Q21c#;Om0 zrXF@MZSYq)i0e2Sa?X;$-h7$bWXlRUg86)g{q)}iYx02X!S)a3S8KJ8+Ld0x8IG?; z3N||1Jp$sX-9F9bxY4yT=;5`kiUvUosGs$-IDhXh>7)B{9F;{e^y|0IyrL*;ugw&ZKCSs?my3IFmdZ z910i840`IW6%d8XL>sru>dwy?ciDlZdY;jrpz-Qm#7^|h-^&)q(IngxU*g#lJ4)9$ z$!?-N4#ZN!a#+-w^!-~ElndO<7$Km(1PWix{k_@cR~gqySceH!-Bw0gVA&l6Gak}Xy2w8G`|HHH3gMVM_ku1Oa`XwI@Pu}D zVxqo~2uU>C-O=*_5NZ({p`vMCrt@gP!{~w)e1N1c0ryO3W{Gx}GfXvcsI+98izMBM zm&7F!VmON}9oWjHxRwU4DtvMG_wA1QKyfSNtJwpGg$|MbkaE5*s?Q2`l=RA@zMzgw zC!cD~?(#@@a?9^A~+BT%v8Hh+9Km#zx(!pCsvos+SDBi3@I7U|3Z=?Oan@D}5Yb3BlQ?w`^ zGBjm^Q4=^%hExVMDa&B2A^|Vi)H27Y5^7(Y+Khe!uASGm6M3An(@Ihz&>KDfx*KS+ z!PrJ!Q#%;VMr$0hx!v;%v%ME!5pHjh*J$<9n|O329pi#;@Yo{i6y zrNgZOzIvJ9&&QBC4yGc_V6iX+@@j>mdv=@WV9}3)kh5n zniB)|&70*dnLI2pXgv>>Fo+gHqZa3i31_A$MX&k1P8QMfc?RLmg_M@$&2~OAG#fyT z0Tw8Mt|cIG&zvid;L(h2*?n4&Q_+S+lC^uvj!O>lDuki+9Hxewa zHyzJdvWANdm+FlN`#s!SA#0Y-?-YHwP#eS_~<2@KfZXdnc%_@F-D|A8kg zp9URUFB3c-U~CKSo)7N$?Dtzk%jXGL!|*l+nv0ZSyT^S|a;pYQm%T`A0`awLs||P{ zSSu@ty;KEegxV3Js2r#|;KsGW62wO?r!;&TBPE75HSKcTl3lovQbBTZ|HO7~dn12*f1+MJf}&_}{6)S=Iop_D zzATKY;;Z%TaxQIT_HS*!qp2+spQwC;d>pMlvfS}YU46*d`M5W_<&EoTd;2e*vo)wn zZ#fa^FRxx4`Qmd&n00=U&6?*gx;~hyE5j3Rz;q4P^Sos&8dX4VbgnLpc$PWZ?DF7H^-*PUux&EZjDonxm4i??-BV8((X!E*b( z4fxDt+}by2d7n*yI zy3CqDVk$wNt4V{-6HCvAHj;0AJ#v2M=I?arjR%2VOb2*YL|d)hvK_=*Nsba8T1UO?&dyIatr zEp}Hg6l!Ucb84P00dO24_V(r(ijnJiFxv)jwb@D=)EPBOHW%2g4KT{Yv2;uw#a|3s zBEipRi2KhQw$2|lW_W+GvucdfuPQ^BEw1WYE*or!4ft4&$fwotaIB|u!9}?U?+j%l zfNn;#g7ghz$9>!R=wn0Bp63@Qp7FOeO%cz>)P?I)DAWEdU6~>H{Q73?$iW1Cg8hqFg6nsOqc*{ zpO@L>)BTBdOpu=i5rnH2tqsQecN(ez*BhiqH$|8d#nk4VNhy~=o3Bzh(n!y_mbGXA zc-X55^{z4l0Clnvi+Icid`?1W`)xRYPPu9aYv8ujRU3Ue862FBI2}NA?m2Ta*22F8 zd-@5aje{+WgO>n(Rk2R+1!mBidvv_xr7d~O2J-c!#G9V1=^of!DN zK>Vri#b>G~E1TR_I@~C{=cx=RNB{*&-cLGuq_h9`Qtt10tvr@?b3A=SA933t@is

        +XQAd+*CY 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

        @R=s@cnEnNO1q>I3{dxruD4TKk? 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%0AP{ZvB$@$sX#-y2)PCruUP5v>T?M`|0=Ntu3BB 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 h2K- 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

        YCO_wpaS14F6ot~Raw5?k+0uGQePbs)NOG+ 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

        LRtcKZ@(-ao8Hu&Nb!)y=+7^V? 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

        YvI}bhmIl|6iIM152JLBw^y-mM~z;y4~^(4%2 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�IRgCB$>kGhJ;AqNtnxfBr2 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�g1}2h}qk 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�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%0A#TSh9Mi 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�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 diff --git a/public/assets/plugins/angular-pdf/readme.md b/public/assets/plugins/angular-pdf/readme.md deleted file mode 100644 index 196acb2..0000000 --- a/public/assets/plugins/angular-pdf/readme.md +++ /dev/null @@ -1,219 +0,0 @@ -# angular-pdf [![Build Status](https://travis-ci.org/sayanee/angularjs-pdf.png)](https://travis-ci.org/sayanee/angularjs-pdf) [![Dependency Status](https://gemnasium.com/sayanee/angularjs-pdf.png)](https://gemnasium.com/sayanee/angularjs-pdf) - -Version: 0.4.0 - ->An [AngularJS](http://angularjs.org/) [directive](http://docs.angularjs.org/guide/directive) `ng-pdf` to display PDF files with [PDFJS](http://mozilla.github.io/pdf.js/). - -## Overview [[demo](http://sayan.ee/angularjs-pdf/)] - -Integrate PDF files right into web pages. - -![Angular PDF](ng-pdf.gif) - -##Requirements - -Check [`bower.json` file](https://github.com/sayanee/angularjs-pdf/blob/master/bower.json) for dependencies and their versions: - -1. [AngularJS](http://angularjs.org/) - get the latest [angular.min.js](https://developers.google.com/speed/libraries/devguide#angularjs) -- [PDFJS](http://mozilla.github.io/pdf.js/) - build the files [`pdf.js` and `pdf.worker.js`](https://github.com/mozilla/pdf.js#building-pdfjs) -- [Evergreen browsers](https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions#what-browsers-are-supported) - -###Features - -1. next / previous page -- zoom in / out -- rotate clockwise -- jump to a page number -- when scrolling, the pdf controls will get fixed position at the top -- define the view template -- define the path to pdf with scope variable -- handles error -- show loading of pdf -- show progress percentage of loading pdf - -## Getting Started - -1. install or copy over the file `dist/angular-pdf.min.js` or `dist/angular-pdf.js` - - ```shell - bower install angular-pdf - ``` -1. include the path to the direcitve file in `index.html` - - ```html - - ``` - -1. include the directive as a dependency when defining the angular app: - - ```js - var app = angular.module('App', ['pdf']); - ``` -1. include the directive with the attribute path to the partial under a controller - - ```html -

        - ``` - - `scale` as an option - - ```html - - ``` - - `scale` attribute can also be `page-fit` - - ```html - - ``` - - `page` as an option for initial page number - - ```html - - ``` - -1. include the `canvas` element to display the pdf in the template-url file - - ```html - - ``` -1. include the path to the pdf file in the controller - - ```js - app.controller('DocCtrl', function($scope) { - $scope.pdfUrl = '/pdf/relativity.pdf'; - }); - ``` - -###Options - -1. **Next / Previous page**: Include the controls in the view file as defined in the attribute `template-url` - - ``` - - - ``` -1. **Zoom in / out**: Include the controls in the view file as defined in the attribute `template-url` - - ``` - - - ``` -1. **Rotate clockwise**: Include the controls in the view file as defined in the attribute `template-url` and the initial class `rotate0` - - ```html - - ... - - ``` - - include the css styles: - - ```css - .rotate0 {-webkit-transform: rotate(0deg); transform: rotate(0deg); } - .rotate90 {-webkit-transform: rotate(90deg); transform: rotate(90deg); } - .rotate180 {-webkit-transform: rotate(180deg); transform: rotate(180deg); } - .rotate270 {-webkit-transform: rotate(270deg); transform: rotate(270deg); } - ``` -1. **Jump to page number**: Include the controls in the view file as defined in the attribute `template-url` - - ```html - Page: / {{pageCount}} - ``` -1. **Fixed pdf controls upon scrolling**: Wrap the controls in the view file as defined in the attribute `template-url` with a tag `nav` with an `ng-class`. Amend the scroll amount as required. - - ```html - - ``` - - And include the relevant css styles as required: - - ```css - .pdf-controls { width: 100%; display: block; background: #eee; padding: 1em;} - .fixed { position: fixed; top: 0; left: calc(50% - 480px); z-index: 100; width: 100%; padding: 1em; background: rgba(238, 238, 238,.9); width: 960px; } - ``` -1. open the file `index.html` with a web server - -###Handle error - -1. in the controller, you can call the function `$scope.onError`: - - ```js - $scope.onError = function(error) { - // handle the error - // console.log(error); - } - ``` - -###Show loading - -1. in the controller, you can call the function `$scope.onLoad` when the pdf succesfully loaded: - - ```js - $scope.loading = 'loading'; - - $scope.onLoad = function() { - // do something when pdf is fully loaded - // $scope.loading = ''; - } - ``` - -###Show progress percentage - -1. in the controller, you can call the function `$scope.onProgress` - - ```js - $scope.onProgress = function(progress) { - // handle a progress bar - // progress% = progress.loaded / progress.total - // console.log(progress); - } - ``` - - - -##Variations - -1. If using with [Angular UI modal](http://angular-ui.github.io/bootstrap/#/modal), `pageNum` attribute is no longer required. [Checkout the implementation](https://github.com/sayanee/angularjs-pdf/issues/12) - - -##Similar projects - -1. [angular-pdf-viewer](https://github.com/winkerVSbecks/angular-pdf-viewer) - a more self-contained directive -- [ng-pdfviewer](https://github.com/akrennmair/ng-pdfviewer) - - -##Credit - -PDF example used is [Relativity: The Special and General Theory by Albert Einstein](http://www.gutenberg.org/ebooks/30155) as kindly organized and made available free by [Project Gutenberg](http://www.gutenberg.org/wiki/Main_Page). - -#Contribute - -Please see [`CONTRIBUTING.md`](CONTRIBUTING.md) for details. - -#Versioning - -This repository follows the [Semantic Versioning](http://semver.org/) guidelines: - -1. For **patches**, run the command: - - ``` - grunt bump - ``` -- For **minor release**, run the command: - - ``` - grunt bump:minor - ``` -- For **major release**, run the command: - - ``` - grunt bump:major - ``` - -## License - -(C) Sayanee Basu 2014, released under an MIT license diff --git a/public/assets/plugins/ckeditor/.bower.json b/public/assets/plugins/ckeditor/.bower.json new file mode 100644 index 0000000..7c942ee --- /dev/null +++ b/public/assets/plugins/ckeditor/.bower.json @@ -0,0 +1,29 @@ +{ + "name": "ckeditor", + "description": "JavaScript WYSIWYG web text editor.", + "keywords": [ + "ckeditor", + "fckeditor", + "editor", + "wysiwyg", + "html", + "richtext", + "text", + "javascript" + ], + "authors": "CKSource (http://cksource.com/)", + "license": "For licensing, see LICENSE.md or http://ckeditor.com/license.", + "homepage": "http://ckeditor.com", + "main": "./ckeditor.js", + "moduleType": "globals", + "version": "4.5.9", + "_release": "4.5.9", + "_resolution": { + "type": "version", + "tag": "4.5.9", + "commit": "e3d4dba95343f1b33d8d9a08b78cd080efa0cdc1" + }, + "_source": "https://github.com/ckeditor/ckeditor-releases.git", + "_target": "^4.5.9", + "_originalSource": "ckeditor" +} \ No newline at end of file diff --git a/public/assets/plugins/ckeditor/CHANGES.md b/public/assets/plugins/ckeditor/CHANGES.md new file mode 100644 index 0000000..f1fb5c7 --- /dev/null +++ b/public/assets/plugins/ckeditor/CHANGES.md @@ -0,0 +1,1080 @@ +CKEditor 4 Changelog +==================== + +## CKEditor 4.5.9 + +Fixed Issues: + +* [#10685](http://dev.ckeditor.com/ticket/10685): Fixed: Unreadable toolbar icons after updating to the new editor version. Fixed with [6876179](https://github.com/ckeditor/ckeditor-dev/commit/6876179db4ee97e786b07b8fd72e6b4120732185) in [ckeditor-dev](https://github.com/ckeditor/ckeditor-dev) and [6c9189f4](https://github.com/ckeditor/ckeditor-presets/commit/6c9189f46392d2c126854fe8889b820b8c76d291) in [ckeditor-presets](https://github.com/ckeditor/ckeditor-presets). +* [#14573](https://dev.ckeditor.com/ticket/14573): Fixed: Missing [Widget](http://ckeditor.com/addon/widget) drag handler CSS when there are multiple editor instances. +* [#14620](https://dev.ckeditor.com/ticket/14620): Fixed: Setting both the `min-height` style for the `` element and the `height` style for the `` element breaks the [Auto Grow](http://ckeditor.com/addon/autogrow) plugin. +* [#14538](http://dev.ckeditor.com/ticket/14538): Fixed: Keyboard focus goes into an embedded `

        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≦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

        =l!ZJHfsSMgsToft9h{LNVRn+lz8 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 z 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∓&{>ZUA|_P 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 z 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 ZnFx4LyUXws)nh} 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